Package Release Info

python-ldap3-2.6.1-bp152.3.1

Update Info: Base Release
Available in Package Hub : 15 SP2

platforms

AArch64
ppc64le
s390x
x86-64

subpackages

python2-ldap3
python3-ldap3

Change Logs

* Mon Oct 14 2019 Matej Cepl <mcepl@suse.com>
- Replace %fdupes -s with plain %fdupes; hardlinks are better.
* Thu Oct 10 2019 Tomá? Chvátal <tchvatal@suse.com>
- Update to 2.6.1:
  - added eDirectory 9.1.4 (EDIR_9_1_4) to offline schemas
  - added json converter for timedelta (thanks dirkjanm)
  - strip parameter defaults to False in utils.dn.parse_dn()
  - escaped space is allowed as trailing character in attribute_value in utils.dn.parse_dn() (thanks phi1010)
  - connection.extend.standard.paged_search doesn't raise exceptions when raise_exceptions is False
  - the Search operation returns the entries fetched by the server when size or time limits are reached even if raise_exceptions is set to True
  - Handle the minimum value that can be stored in an Int64 in format_ad_timedelta (thanks mprahl)
  - EntryState: `entry_raw_attributes` is populated instead of `raw_attributes` (thanks Christian)
  - Removed restriction to perform rename and move simultaneously in modify_dn (thanks Fabian)
  - fixed checking for hexdigits in parse_dn (thanks Michael)
  - fixed escaping when multiple backslashes are present in parse_dn (thanks Phillip)
  - fixed multiple NoneType exceptions in entry_to_json() (thanks David and cfelder)
  - allowing Microsoft specific syntax (<WKGUID=xxx>) for WellKnownObjects in DN (thanks David)
  - connection.extend.standard.paged_search() now follows referrals when auto_referrals=True (thanks kprativa)
  - fixed a bug in decoding replica list in connection.extend.novell.list_replicas()
  - fixed a bug when adding duplicate alias in CaseInsensitiveWithAliasDict()
  - added ignore_duplicates=False in set_aliases in CaseInsensitiveWithAliasDict() to ignore a duplicate alias (either in aliases or in keys)
  - Schema info now uses CaseInsensitiveWithAlias dict as default so object and attributes can also be referentiated with OID (thanks ahoffm11)
  - added block mode and timeout parameters to next() method of persistent_search
  - when using the pyasn1 decoder raw_dn is not returned as a pyasn1 object anymore but as bytes
  - Return offset timezone aware datetime for max AD timestamp (thanks Jussi)
* Tue May 14 2019 Gary Smith <GSmith@suse.com>
- update to version 2.6
  [#] 2.6 - 2019.03.24
  - fixed empty digestMd5.py file in 2.5.2 package
  - explicitly declare digest module md5 in util.ntlm (thanks adawalli)
  - change object passed to modify() was unexpectedly mutated (thanks John)
  - added LDAPInfoError exception
  - added Server.has_control(control) method to check if a server has a specific control
  - added Server.has_extension(extension) method to check if a server has a specific extension
  - added Server.has_feature(feature) method to check if a server has a specific feature
  - fixed checking of \\ in safe_dn (thanks Maxim)
  - fixed uuid checking with 5c byte value
  - added single=True parameter to the ServerPool object definition. Servers state is shared between connections using the same pool
  - updated copyright notice
* Mon Feb 18 2019 Tomá? Chvátal <tchvatal@suse.com>
- Use the actual upstream distributed archive
* Sat Feb 16 2019 Michael Ströder <michael@stroeder.com>
- update to version 2.5.2
  [#] 2.5.2 - 2018.12.28
  - when starting tls before binding the connection is automatically open
  - fixed changelog date (thanks Adam)
  - support for AD timedeltas (thanks mprahl)
  - fixed WhoAmI in mock strategies (thanks mprahl)
  - prevent unnecessary exception in extend/standard/ModifyPassword (thanks Johnny)
  - added support for external gssapi credentials to be passed to the sasl connection (thanks Firstyear)
  - added support for gssapi store in sasl connection (thanks clhendrick)
  - fixed LdifProducer (thanks antoinell)
  - fixed NTLM bind (thanks ribx)
  - server state in ServerPool is now a namedtuple "ServerState" (thanks Krisztian)
  - fixed error when adding member to AD group with unsafe DN (thanks Maxim)
  - properly restore lazy status in reusable strategy (thanks Krisztian)
  - ServerState namedtuple converted to class in core/pooling (thanks Krisztian)
  - empty schema doesn't raise exception in Abstraction Layer (thanks ghost)
  [#] 2.5.1 - 2018.08.01
  - connection.result is populated when exception raised with raise_exceptions=True
  - fixed objectSid in mocking strategies
  - fixed circular reference in exception history
  - added objectSid validator
  - byte values are properly searched in MOCK strategies (thanks dyj216)
  - exception history refactored (thanks Tamas)
  - connections in context manager don't bind anymore when auto_bind is set to AUTO_BIND_NONE (Thanks Tim)
  - Cython compatible build (thanks Pedro)
  - more detailed exception message in Mock strategy (thanks Janne)
  - exceptions flow refactored in reusable strategy (thanks kxt)
  - pwdlastset accept any positive integer (thanks abenbecker)
  - fixed an exception while logging packet with pyasn1 decoder
  - fixed importing abc from collections for Python 3.8
* Tue Dec 04 2018 Matej Cepl <mcepl@suse.com>
- Remove superfluous devel dependency for noarch package
Version: 2.5-bp150.1.3
* Mon Apr 16 2018 tchvatal@suse.com
- Use real URL, not some inventive lies
* Sun Apr 15 2018 michael@stroeder.com
- update to version 2.5
  * abstract layer now handles auxiliary classes
  * pwdLAstSet in AD is valid for 0 and -1 (thanks Taylor)
  * fixed extend.novell.get_universal_password (thanks Fernando)
  * entryUUID is properly validated in search filters (thanks FriedrichI)
  * custom attribute formatters are properly applied when parsing the search filter
  * REUSABLE strategy now honours credentials when changed in the original connection (thanks Prof Hase)
  * add operation doesn't change passed attribute dict anymore (thanks Daniele)
  * missing entry's attribute return False when searching instead of raising an exception (thanks Maxsond)
  * fixed ad_timestamp evaluation for integers (thanks Flynn)
  * wrong exception raised when user name is empty in simple binding (thanks Ivan)
  * exception is raised if size limit is exceed when searchin in mocking strategies with raise_exceptions=True (thanks David)
  * fixed validator for novell guid
  * fixed validator for openldap EntryUUID
  * fixed validator for AD objectGUID, now follows MS-DTYP
  * fixed formatter for AD objectGUID
  * fixed exception when adding binary values (thanks guidow)
  * added escape_rdn_chars() to ldap3.utils.dn for safe checking untrusted input while building DNs (thanks Alex)
  * fixed search for binary values in mock strategies
  * fixed exception with unicode chars in subfilters for python 2 (thanks Friedrich)
  * connection.extend.paged_search() doens't miss the last entries anymore when size limit is exceeded for the search on the server (thanks Friedrich)
  * validators are not applied when loading data from json dump in Mock strategies (thanks Derek)
  * additional validator to check for erroneous bytes to string conversion in Python 3 (thanks Brian)
  * additional formatter and validator to check for generalizedtime with 0 year (thanks Brian)
  * added ADDITIONAL_CLIENT_ENCODINGS parameter
  * fixed AD dir_sync extended operation (thanks Lucas)
  * ad_unlock_account works properly (thanks Francowxu)
  * added Microsoft security descriptor control (thanks Dirk-jan)
  * fixed search in mock strategies when raise_exceptions=True (thanks Derek)
  * formatters never raise exceptions but returns the raw_value when unable to format
  * fixed comtrols duplication in paged search (thanks Dirk-jan)
* Wed Jan 24 2018 tchvatal@suse.com
- Reenable testsuite
  * Pass || : as some of the tests fail with UNKNOWN-EDIR this means
    the testsuite needs localy running ldap server to communicate with
    as such it does not make sense to fix those FAILED (errors=39)
* Wed Jan 24 2018 michael@stroeder.com
- update to version 2.4.1
  * tested against pyasn1 from version 0.1.8 up to version 0.4.2, Python 2.6.6, Python 2.7.14, Python 3.6.4
  * auto_encode parameter is honored when binding (thanks jkolo)
  * fixed organizationalName definition in oid (thanks mingulov)
  * automatic byte to int conversion working again (thanks Brian)
  * mock connection searchs correctly escape filters (thanks kiddick)
  * fixed bind with not unicode characters in Python 2 (thanks jkolo)
  * extended filter attributes should work again with pyasn1 0.4.1 (thanks Dirk-jan)
  * fixed error when reading incomplete server info
  * NOT keyword properly handled in dit_content_rules (thanks Michael)
  * operational attributes are prorerly returned in Cursor whit get_operational_attributes = True (thanks a23s4a)
  * start_tls() is properly executed with AD when raise_exceptions=True (thanks Andrew)
  * reopening a Connection honours auto_bind setting (thanks calken)
  * an attribute returned with no value from a flaky server doesn't raise exception anymore (thanks Terrence)
  * pwdLastSet in AD is valid only for -1 (thanks Thane)
  * fixed docs for ldifProducer (thanks lhoekenga)
  * fixed monkeypatching of pyasn1 for Boolean Value in BER encoding (thanks tmarlok88)
  * check_names was not honoured while validating attribute values (thanks ymcymc)
  * locks refactored in Connection and in Async strategy
  * socket properly closed when checking availability of an invalid server
  * security fix in the rebind() method of the Connection object (thanks Daniel)
  * fix for Sasl credentials in Python 3 (thanks Busuwe)
  * fixed bug when checking for equality in MockBase
  * added validator parameter to Server object for custom validators
  * attribute values are now validated in add/compare/modify operations in the Connection object
  * Python types can now be used in add/compare/modify operations
  * compatible with the pyasn1 library from version 0.1.8 up to latest (0.3.3 for now) version
  * fixed compatibility with Twisted on Windows on Python 2.7 (thanks Pmisik)
  * fixed paged_search behaviour in Reader object
  * fixed regression in MockBase (thanks Markus)
  * fixed invalid filter sequence in MockBase (thanks SignedBit)
  * added compatibility with Cython (thanks Pedro)
  * fixed auto_encode check in validate_attribute_value for unknown attrs (thanks CFelder)
  * don't encode response_value as extended_response_to_dict expects a decoded value (thanks Matthias)
  * compatible with the pyasn1 library from version 0.1.8 up to latest (0.3.7 for now) version
  * added LDAPObjectDereferenceError exception
  * LDAPObjectDereferenceError is raised when an object tries to dereference itself in the Abstraction Layer (thanks Daniele)
  * async module renamed to asynchronous for compatibility with Python 3.7 (thank Barry)
  * long integer are properly checked in mocking strategies (thanks gregn610)
  * NUMERIC_TYPES includes long for Python 2
* Sat Sep 30 2017 arun@gmx.de
- update to version 2.3:
  * compatible with the pyasn1 library from version 0.1.8 up to latest
    (0.3.1 for now) version
  * MockAsync strategy is available
  * added __ne__ method to Attribute in abstraction layer (thank
    Rodrigo)
  * added LDAPUserNameIsMandatoryError exception in simple bind when
    user name is empty
  * search referrals are properly decoded with fast decoder
  * paged search works in mock strategies
  * paged_search in extend.standard namespace raises an exception of
    class LDAPOperationResult if the search returns an error
  * search_paged() method of Cursor object now return the whole list
    of entries if generator=False
  * updated docs for defaults parameters (thanks Guarnacciaa)
  * fixed mockBase for integer matching (thanks Jijo)
  * boolean values are now uppercase in LDIF (thanks Linus)
  * fixed timeout in ssl connection on Linux and Mac (thanks Allan)
  * changed some internal functions to private in ldap3.utils.dn
  * operational attribute entryDN is properly managed in Mock
    strategies (thanks Mark)
  * new rdn in renamed entry is properly set in Mock strategies
    (thanks Mark)
  * metrics are now updated for Mock strategies, except that for
    received bytes (thanks joehy)
  * better managing of missing schema from the server (thanks Deborah)
  * fixed error while schema is not in string format (thanks
    Alexandre)
  * SNI support added when the underlying python library allows it
    (thanks Edmund)
  * added pool_keepalive parameter to Connection object for REUSABLE
    strategy
  * connection.extend.microsoft.modify_password returns False when
    change is not successful (thanks Ashley)
  * added validators for uuid and uuid_le
  * fixed error while searching for bytes
  * fixed pickling and unpickling of datetime values (thanks David)
  * fixed error that resulted in valid generalizedTime strings not
    being parsed (thanks Busuwe)
  * fixed error with modify operation on referrals (thanks Busuwe)
  * fixed error in mockBase add_entry() with raw rdn (thanks Chad)
  * fixed error when stdin has not encoding in config.py (thanks
    cronicryo)
  * fixed error when optional field are not present in pyasn1 requests
    (thanks Ilya)
  * added DEFAULT_SERVER_ENCODING config parameter, should always be
    utf-8
  * DEFAULT_ENCODING config parameter renamed to
    DEFAULT_CLIENT_ENCODING
  * ADDITIONAL_ENCODINGS config parameter renamed to
    ADDITIONAL_SERVER_ENCONDINGS
  * additional encodings are applied to all data received from the
    server
  * additional encodings are not applied to client data
  * added from_server=False parameter to to_unicode() to not try
    client encoding while decoding data from server
* Wed May 10 2017 michael@stroeder.com
- Update to version 2.2.4
  - leading and trailing spaces in server name don't raise exception anymore
  - DitContentRule is properly read from the schema
  - added validator for Active Directory timestamp
  - Mock strategies raise an exception if a non-bytes value is added to the schema when no offline schema is provided (str and int are automatically converted)
  - added custom_validators property to Mock strategies
  - modifying objectClass with bytes values doesn't raise an exception anymore (but it may fail anyway because of server constraints)
  - ensure that config sequence parameters are properly set
  - allow case insensitive attribute and class names in config parameters
  - added server.schema.is_valid() to check if the schema is available
  - empty schema properties are set to empty dict() instead of None
  - schema definitions with traling and leading spaces are now properly parsed and don't raise an LDAPSchemaError exception anymore
  - fixed error when flaky servers (OpenLDAP) don't return the correct response with StartTls
* Wed May 03 2017 michael@stroeder.com
- Update to version 2.2.3
  - abstraction layer query converts int values to string (thanks dgadmin)
  - CaseInsensitiveDictWithAlias doesn't raise an exception anymore if alias is set multiple times to the same key
  - friendly names in AttrDef are properly managed when performing commits in Writer cursors
  - no more errors when server returns an empty schema (thanks Glen)
  - range attributes in entries are properly recognized when auto_range is False
  - fixed random errors in auto_range searches (thanks James)
  - fixed checking of malformed schema
  - added configuration parameter IGNORE_MALFORMED_SCHEMA to not raise exception for servers that don't follow the LDAP RFCs (defaults to False)
  - test config moved to test/config.py
  - testcase_id generated randomly for each test
  - added ATTRIBUTES_EXCLUDED_FROM_OBJECT_DEF parmeter to exclude some attribute from automatic populate of ObjectDef in Abstract Layer (helpful for AD)
  - added IGNORED_MANDATORY_ATTRIBUTES_IN_OBJECT_DEF parmeter to exclude some attribute from mandatory attribute list in ObjectDef in Abstract Layer (helpful for AD)
  - fixed error when using implicit assigning in WritableEntry
  - added LDAPInvalidValueError Exception
  - in Python 3 byte filter are converted to unicode before parsing
  - RESPONSE_DN_ENCODING parameter renamed to ADDITIONAL_ENCODINGS
  - to_unicode(value, encoding=None, additional_encodings=False) now checks for additional encoodings in ADDITIONAL_ENCODINGS list if additional_encoding is set to True
  - Reusable strategy uses not lazy Restartable connections
  . Reusable strategy doesn't keep requesting the schema
  - connection pool size in Reusable strategy defaults to 5
  - optimized usage of configuration parameters
* Fri Apr 14 2017 toddrme2178@gmail.com
- Update to version 2.2.2
  - PLAIN mechanism added to SASL authentication (thanks Janusz)
  - added RESULT_RESERVED return code (thanks Rak)
  - added RESPONSE_DN_ENCODING in config for flaky servers that return non utf-8 encoded DN. Set it to a list of encoding to sequentially try for decodign DNs.
  - removed StopIteration in generators (deprecated by PEP 479)
  - fixed a bug when converting AD datetimes on Windows systems
  - added compatibility with pyasn1 0.2.3
  - fixed NTLM authentication with pyasn1 0.2.3
  - fixed an error when installing via executable on Windows (thanks TrumSteven)
  - added 'raw_dn' key in search response dictionary. It contains the DN byte value returned for DN by the server
  - attributes with ";binary" tag can now be retrieved in abstraction layer with the usual entry.atttribute syntax
  - updated tests for OpenLDAP
  - fixed error when in add/remove extend operation for case mismatch in user or group dn
  - integer validator now automatically convert valid string numbers to int
  - invalid timezone are checked when validating Generalized Time Format
  - added test cases for validators
- Implement single-spec version
* Thu Mar 09 2017 joop.boonen@opensuse.org
- Build version 2.2.1
  - 2.2.1 2017.02.12
  - tested against pyasn1 0.2.2 (thanks Ilya)
  - get_response() has an optional new parameter "get_request" to return the request too, helpful in asynchronous strategies
  - connection.request, connection.response and connection result are now properly blanked in async strategies
  - ldap3.utils.dn.safe_dn() now checks for AD names only if no equal sign is present in the dn
  - abstraction layer properly works with asynchronous strategies
  - added a named tuple "Operation" used to store the request, result and response of an LDAP operation in Cursor history
  - cursors in the Abstraction Layer keep history of executed LDAP operations for the last Cursor operation in the cursor.operation property
  - Cursors in the Abstraction Layer keep history of errors for the last Cursor operation in the cursor.errors property
  - if any error has occurred in the last operation of a Cursor the cursor.failed property is set to True
  - added a named tuple "Operation" for storing request, result and response of an LDAP operation in Cursor history
  - Cursor honours raise_exception parameter of the Connection.
  - Cursor commit() return True if operations are successful and False if not. All pending commits are executed even if some fail
  - new entries that have no additional mandatory attributes other those defined in dn are properly managed in Writers (thanks Matt)
  - CaseInsensitiveDict now properly strips blanks from keys
  - updated hashing alghoritm SHA to SHA1 (thanks Satoh)
  - added match_dn(dn) to Cursor for matching entries with specified text in DN
  - added match(attributes, value) for matching entries with specified value in one or more attribute values. It checks values and raw_values
  - Cursors have simple match capability. When key is a string Cursor tries to match it against the DN of entries found.
  - 2.2.0 2017.01.16
  - tested againsts Python 3.6.0, Python 2.7.13 and Python 2.6.6
  - updated docs regarding search response attributes (thanks James)
  - fixed LDIF representation for operation_to_ldif (thanks m7four)
  - fixed rebind for pooled connections
  - fixed custom sort order in LDIF representation of entry
  - added Active Directory GUID syntax for safe_dn() (thanks dinhngtu)
  - added pre-post read control (thanks Elizabeth)
  - added add_members_to_groups in microsoft.extend namespace for Active Directory
  - added remove_members_to_groups in microsoft.extend namespace for Active Directory
  - refactored internal extend.microsoft and extend.novell structures
  - fixed auto_escape for extended characters (thanks asand3r)
  - validators now transform the Python value to a valid LDAP value when appropriate (thanks Sjd-Risca)
  - added validator for boolean types
  - added validator for date types
  - fixed representation of binary data in Abstraction Layer for Python 2
  - added auto_encode parameter to Connection object (defaults to True)
  - limited auto_escape feature only to filter values
  - escape_filter_chars doens't try anymore to guess if the value is already escaped.
  - added ldap3.conv.is_filter_safe() (thanks Robert)
  - added auto_escape parameter to connection.search() to override connection auto_escape behaviour (defaults to None)
  - auto_escape is not applied to filter value if already escaped
  - automatically encode output to stdout encoding for repr() and str() (for printing and logging attributes values).
  - binary data are converted to a hex values string in repr() and str() (for printing and logging attributes values).
  - auto_encoding is performed only for well known attribute types that use Unicode format in LDAP
  - CLASSES_EXCLUDED_FROM_CHECK and ATTRIBUTES_EXCLUDED_FROM_CHECK moved to ldap3.utils.config and made available via get_config_parameter()
  - added UTF8_ENCODED_SYNTAXES in ldap3.config.utils and made available via get_config_parameter()
  - added UTF8_ENCODED_TYPES in ldap3.config.utils and made available via get_config_parameter()
  - config parameters made available only via get_config_parameters()
  - removed to_bytes() and check_escape() from ldap3.utils.conv (ambiguous functions)
  - added connection.request to MockSync (thanks Fabian)
  - tags are properly managed in add, compare and modify requests (thanks guidow)
  - in Mock strategies single-valued attributes are properly managed
  - in Mock strategies attributes type names are properly managed
  - implemented extended operation machinery in MockBase
  - implemented WhoAmI [RFC4532] in Mock strategies
  - implemented GetBindDn [NOVELL] in Mock strategies
  - implemented operational attributes machinery in MockBase
  - implemented entryDN [RFC5020] operational attribute in MockBase
  - Sphinx updated to 1.5.1
  - 2.1.1 2016.11.18
  - Mock strategy uses case insensitive matching when appropriate
  - fixed error when adding a virtual attribute in the abstract Entry object
  - fixed error messages in Entry moving and renaming
  - Reverted default connection strategy to SYNC (thanks Mauro)
  - Fixed tutorials (thanks Mauro)
  - Fixed checking of schema in ObjectDef (thanks Pierre)
  - Fixed checking of stdin in config (thanks Oleg)
  - fixed commit of entry with async strategies
  - fixed reading of entries in async strategies
  - added cipher argument to Tls (thanks Nicolas)
  - fixed bug when using the abstraction layer with lazy connections
  - fixed case matching while adding new entry in Writer cursor (thanks t0neg)
  - disabled auto_escape for byte values
  - fixed auto_escape for python 2
  - fixed tutorials (thanks Ivano)
  - 2.1.0 2016.11.03
  - changed default Connection strategy from SYNC to RESTARTABLE
  - enable automatic escaping of assertion values
  - fixed decoding error with check_name=False
  - added auto_escape parameter in connection, for trying automatic filter and attribute values escape
  - fixed checking of schema in MockBase
  - SASLBindInProgress doesn't raise an exception anymore with raise_exceptions=True
  - standard formatters are applied in mocking strategies when serching for exact match
  - 2.0.9 2016.10.28
  - removed sanitization of DN in bind operation because some servers accept non standard DN for Simple Bind
  - 2.0.8 2016.10.28
  - included referral caching (thanks TWAC)
  - 2.0.7 2016.10.27
  - FIRST RELEASE OF LDAP3 V2
  - changed signature of ldap3.abstract.Reader object
  - removed search_size_limit(), search_time_limit() and search_types_only in the Reader cursor
  - fixed SASL in progress error (thanks Styleex)
  - fixed ALL_ATTRIBUTES in MOCK_SYNC strategy (thanks Belgarion)
  - ncorrect attribute type error message now includes the name of the attribute (Thanks Andrej)
  - relaxed dn checking for Active Directory UserPrincipalName
  - relaxed dn checking for Active Directory SamAccountName
  - added checking of attribute name in add, compare and search operations
  - added checking of class name in add operation
  - renamed exception LDAPTypeError to LDAPAttributeError
  - in sync strategies LDAP operations populate the last_error attribute of the connection in case of not RESULT_SUCCESS
  - connection.return_empty_attributes defaults to True
  - escaped filter by default
  - fixed escaping of filter
  - add move and rename to abstraction layer entry
  - ldap3 namespace decluttered
  - RESULT_CODES moved to ldap3.core.results
  - compatability constants removed
  - exceptions removed from ldap3 namespace, defined in ldap3.core.exceptions only
  - ADDRESS_INFO_REFRESH_TIME is now configurable via set_config_parameter
  - Operational attribute prefix set to 'OA_'
  - Allows cert and key file in the same file (thanks Jan-Philip)
  - Removed logging info when logging is disabled (thanks Dan)
  - Updated copyright notice
  - Refactored abstraction layer with full support for CRUD (Create, Read, Update, Delete) abstract operations
  - Added WritableEntry and WritableAttribute to abstraction layer
  - Added standard validators for attribute types and syntaxes defined in the standard LDAP schema
  - Added custom validators for attribute values
  - Added update capability to abstraction layer
  - Fixed typo in docs (thanks Gerardwx)
  - Fixed Object and Attribute representation in schema (superior class not shown)
  - ObjectDef automatically populates attributes from schema, following object_class hierarchy
  - Added attributes parameter to search* methods of Cursor, so that only needed attributes are read even if attr_defs defines more
  - Fixed connect_timeout not honored while wrapping socket in tls (thanks Kyle)
  - Added 'set' to SEQUENCE_TYPES (thanks Christian)
  - Entries returned by search are now writable via the abstraction layer
  - LDAPReaderError exception renamed to LDAPCursorError
  - auto_range parameter in Connection defaults to True (thanks Ashley)
  - get_info defaults to SCHEMA while defining Server object
  - Included ordereddict 1.1 (# Copyright (c) 2009 Raymond Hettinger) in ldap3.utils.ordDict for backporting OrderedDict in Python 2.6
  - Added config parameter RESET_AVAILABILITY_TIMEOUT to reinsert invalid address in candidate_addresses while checking connection, defaults to 5 seconds
  - Fixed inability to connect to a server if the connection starts when the server is unavailable and then it becomes available again
  - All DNs are sanitized if connection.check_names is True
  - LDAPControlsError exception renamed to LDAPControlError
  - LDAPChangesError exception renamed to LDAPChangeError
  - The following older constants in ldap3 have been removed, please use the suggested ones:
  - AUTH_ANONYMOUS = ANONYMOUS
  - AUTH_SIMPLE = SIMPLE
  - AUTH_SASL = SASL
  - SEARCH_SCOPE_BASE_OBJECT = BASE
  - SEARCH_SCOPE_SINGLE_LEVEL = LEVEL
  - SEARCH_SCOPE_WHOLE_SUBTREE = SUBTREE
  - SEARCH_NEVER_DEREFERENCE_ALIASES = DEREF_NEVER
  - SEARCH_DEREFERENCE_IN_SEARCHING = DEREF_SEARCH
  - SEARCH_DEREFERENCE_FINDING_BASE_OBJECT = DEREF_BASE
  - SEARCH_DEREFERENCE_ALWAYS = DEREF_ALWAYS
  - STRATEGY_SYNC = SYNC
  - STRATEGY_ASYNC_THREADED = ASYNC
  - STRATEGY_LDIF_PRODUCER = LDIF
  - STRATEGY_SYNC_RESTARTABLE = RESTARTABLE
  - STRATEGY_REUSABLE_THREADED = REUSABLE
  - STRATEGY_MOCK_SYNC = MOCK_SYNC
  - STRATEGY_MOCK_ASYNC = MOCK_SYNC
  - POOLING_STRATEGY_FIRST = FIRST
  - POOLING_STRATEGY_ROUND_ROBIN = ROUND_ROBIN
  - POOLING_STRATEGY_RANDOM = RANDOM
  - GET_NO_INFO = NONE
  - GET_DSA_INFO = DSA
  - GET_SCHEMA_INFO = SCHEMA
  - GET_ALL_INFO = ALL
* Sun Oct 02 2016 mardnh@gmx.de
- Update to version 1.4.0
  - upstream does not provide a changelog
- Fix source-url
- Specfile cleanup
* Thu Jun 23 2016 rhafer@suse.de
- Fix License string to confirm with spdx.org
* Wed Sep 09 2015 tbechtold@suse.com
- Initial packaging (version 0.9.8.8)