Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-ldap for openSUSE:Factory checked in at 2023-12-15 21:48:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ldap (Old)
and /work/SRC/openSUSE:Factory/.python-ldap.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ldap"
Fri Dec 15 21:48:28 2023 rev:60 rq:1133198 version:3.4.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ldap/python-ldap.changes 2023-08-14 22:36:10.100572023 +0200
+++ /work/SRC/openSUSE:Factory/.python-ldap.new.25432/python-ldap.changes 2023-12-15 21:48:39.081167355 +0100
@@ -1,0 +2,9 @@
+Thu Dec 14 21:14:57 UTC 2023 - Dirk Müller
+
+- update to 3.4.4:
+ * Reconnect race condition in ReconnectLDAPObject is now fixed
+ * Socket ownership is now claimed once we've passed it to
+ libldap LDAP_set_option string formats are now compatible
+ with Python 3.12
+
+-------------------------------------------------------------------
Old:
----
python-ldap-3.4.3.tar.gz
New:
----
python-ldap-3.4.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ldap.spec ++++++
--- /var/tmp/diff_new_pack.qiztSr/_old 2023-12-15 21:48:39.833195024 +0100
+++ /var/tmp/diff_new_pack.qiztSr/_new 2023-12-15 21:48:39.833195024 +0100
@@ -21,7 +21,7 @@
%define skip_python2 1
Name: python-ldap
-Version: 3.4.3
+Version: 3.4.4
Release: 0
Summary: Python LDAP interface
License: Python-2.0
++++++ python-ldap-3.4.3.tar.gz -> python-ldap-3.4.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/CHANGES new/python-ldap-3.4.4/CHANGES
--- old/python-ldap-3.4.3/CHANGES 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/CHANGES 2023-11-17 21:30:16.000000000 +0100
@@ -1,3 +1,20 @@
+Released 3.4.4 2022-11-17
+
+Fixes:
+* Reconnect race condition in ReconnectLDAPObject is now fixed
+* Socket ownership is now claimed once we've passed it to libldap
+* LDAP_set_option string formats are now compatible with Python 3.12
+
+Doc/
+* Security Policy was created
+* Broken article links are fixed now
+* Bring Conscious Language improvements
+
+Infrastructure:
+* Add testing and document support for Python 3.10, 3.11, and 3.12
+
+
+----------------------------------------------------------------
Released 3.4.3 2022-09-15
This is a minor release to bring back the removed OPT_X_TLS option.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Doc/conf.py new/python-ldap-3.4.4/Doc/conf.py
--- old/python-ldap-3.4.3/Doc/conf.py 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/Doc/conf.py 2023-11-03 01:32:59.000000000 +0100
@@ -50,8 +50,8 @@
# The suffix of source filenames.
source_suffix = '.rst'
-# The master toctree document.
-master_doc = 'index'
+# The root toctree document.
+root_doc = 'index'
# General substitutions.
project = 'python-ldap'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Doc/faq.rst new/python-ldap-3.4.4/Doc/faq.rst
--- old/python-ldap-3.4.3/Doc/faq.rst 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/Doc/faq.rst 2023-11-03 01:32:59.000000000 +0100
@@ -13,7 +13,7 @@
**A3**: see file CHANGES in source distribution
or `repository`_.
-.. _repository: https://github.com/python-ldap/python-ldap/blob/master/CHANGES
+.. _repository: https://github.com/python-ldap/python-ldap/blob/main/CHANGES
Usage
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Doc/resources.rst new/python-ldap-3.4.4/Doc/resources.rst
--- old/python-ldap-3.4.3/Doc/resources.rst 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/Doc/resources.rst 2023-11-03 01:32:59.000000000 +0100
@@ -8,13 +8,13 @@
*Python LDAP Applications* articles by Matt Butcher
---------------------------------------------------
-* `Part 1 - Installing and Configuring the Python-LDAP Library and Binding to an LDAP Directory https://www.packtpub.com/article/installing-and-configuring-the-python-ldap-...`_
+* `Part 1 - Installing and Configuring the Python-LDAP Library and Binding to an LDAP Directory https://hub.packtpub.com/python-ldap-applications-part-1-installing-and-conf...`_
This also covers SASL.
-* `Part 2 - LDAP Operations https://www.packtpub.com/article/python-ldap-applications-ldap-opearations`_
-* `Part 3 - More LDAP Operations and the LDAP URL Library https://www.packtpub.com/article/python-ldap-applications-more-ldap-operatio...`_
-* `Part 4 - LDAP Schema https://www.packtpub.com/article/python-ldap-applications-ldap-schema`_
+* `Part 2 - LDAP Operations https://hub.packtpub.com/configuring-and-securing-python-ldap-applications-p...`_
+* `Part 3 - More LDAP Operations and the LDAP URL Library https://hub.packtpub.com/python-ldap-applications-extra-ldap-operations-and-...`_
+* `Part 4 - LDAP Schema https://hub.packtpub.com/python-ldap-applications-part-4-ldap-schema/`_
Gee, someone waded through the badly documented mysteries of module
:mod:`ldap.schema`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Lib/ldap/ldapobject.py new/python-ldap-3.4.4/Lib/ldap/ldapobject.py
--- old/python-ldap-3.4.3/Lib/ldap/ldapobject.py 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/Lib/ldap/ldapobject.py 2023-11-03 01:32:59.000000000 +0100
@@ -893,7 +893,7 @@
self._reconnect_lock = ldap.LDAPLock(desc='reconnect lock within %s' % (repr(self)))
# XXX cannot pickle file, use default trace file
self._trace_file = ldap._trace_file
- self.reconnect(self._uri)
+ self.reconnect(self._uri,force=True)
def _store_last_bind(self,_method,*args,**kwargs):
self._last_bind = (_method,args,kwargs)
@@ -914,11 +914,16 @@
def passwd_s(self,*args,**kwargs):
return self._apply_method_s(SimpleLDAPObject.passwd_s,*args,**kwargs)
- def reconnect(self,uri,retry_max=1,retry_delay=60.0):
+ def reconnect(self,uri,retry_max=1,retry_delay=60.0,force=True):
# Drop and clean up old connection completely
# Reconnect
self._reconnect_lock.acquire()
try:
+ if hasattr(self,'_l'):
+ if force:
+ SimpleLDAPObject.unbind_s(self)
+ else:
+ return
reconnect_counter = retry_max
while reconnect_counter:
counter_text = '%d. (of %d)' % (retry_max-reconnect_counter+1,retry_max)
@@ -962,14 +967,12 @@
return # reconnect()
def _apply_method_s(self,func,*args,**kwargs):
- if not hasattr(self,'_l'):
- self.reconnect(self._uri,retry_max=self._retry_max,retry_delay=self._retry_delay)
+ self.reconnect(self._uri,retry_max=self._retry_max,retry_delay=self._retry_delay,force=False)
try:
return func(self,*args,**kwargs)
except ldap.SERVER_DOWN:
- SimpleLDAPObject.unbind_s(self)
# Try to reconnect
- self.reconnect(self._uri,retry_max=self._retry_max,retry_delay=self._retry_delay)
+ self.reconnect(self._uri,retry_max=self._retry_max,retry_delay=self._retry_delay,force=True)
# Re-try last operation
return func(self,*args,**kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Lib/ldap/pkginfo.py new/python-ldap-3.4.4/Lib/ldap/pkginfo.py
--- old/python-ldap-3.4.3/Lib/ldap/pkginfo.py 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/Lib/ldap/pkginfo.py 2023-11-17 21:30:16.000000000 +0100
@@ -1,6 +1,6 @@
"""
meta attributes for packaging which does not import any dependencies
"""
-__version__ = '3.4.3'
+__version__ = '3.4.4'
__author__ = 'python-ldap project'
__license__ = 'Python style'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Lib/ldapurl.py new/python-ldap-3.4.4/Lib/ldapurl.py
--- old/python-ldap-3.4.3/Lib/ldapurl.py 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/Lib/ldapurl.py 2023-11-17 21:30:16.000000000 +0100
@@ -4,7 +4,7 @@
See https://www.python-ldap.org/ for details.
"""
-__version__ = '3.4.3'
+__version__ = '3.4.4'
__all__ = [
# constants
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Lib/ldif.py new/python-ldap-3.4.4/Lib/ldif.py
--- old/python-ldap-3.4.3/Lib/ldif.py 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/Lib/ldif.py 2023-11-17 21:30:16.000000000 +0100
@@ -3,7 +3,7 @@
See https://www.python-ldap.org/ for details.
"""
-__version__ = '3.4.3'
+__version__ = '3.4.4'
__all__ = [
# constants
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Lib/python_ldap.egg-info/PKG-INFO new/python-ldap-3.4.4/Lib/python_ldap.egg-info/PKG-INFO
--- old/python-ldap-3.4.3/Lib/python_ldap.egg-info/PKG-INFO 2022-09-20 17:33:49.000000000 +0200
+++ new/python-ldap-3.4.4/Lib/python_ldap.egg-info/PKG-INFO 2023-11-17 21:46:39.000000000 +0100
@@ -1,13 +1,12 @@
Metadata-Version: 2.1
Name: python-ldap
-Version: 3.4.3
+Version: 3.4.4
Summary: Python modules for implementing LDAP clients
Home-page: https://www.python-ldap.org/
+Download-URL: https://pypi.org/project/python-ldap/
Author: python-ldap project
Author-email: python-ldap@python.org
License: Python style
-Download-URL: https://pypi.org/project/python-ldap/
-Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
@@ -22,6 +21,9 @@
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Database
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries :: Python Modules
@@ -29,6 +31,8 @@
Classifier: License :: OSI Approved :: Python Software Foundation License
Requires-Python: >=3.6
License-File: LICENCE
+Requires-Dist: pyasn1>=0.3.7
+Requires-Dist: pyasn1_modules>=0.1.5
python-ldap:
python-ldap provides an object-oriented API to access LDAP directory servers
@@ -37,4 +41,3 @@
(e.g. processing LDIF, LDAPURLs, LDAPv3 schema, LDAPv3 extended operations
and controls, etc.).
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Lib/slapdtest/__init__.py new/python-ldap-3.4.4/Lib/slapdtest/__init__.py
--- old/python-ldap-3.4.3/Lib/slapdtest/__init__.py 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/Lib/slapdtest/__init__.py 2023-11-17 21:30:16.000000000 +0100
@@ -4,7 +4,7 @@
See https://www.python-ldap.org/ for details.
"""
-__version__ = '3.4.3'
+__version__ = '3.4.4'
from slapdtest._slapdtest import SlapdObject, SlapdTestCase, SysLogHandler
from slapdtest._slapdtest import requires_ldapi, requires_sasl, requires_tls
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Modules/options.c new/python-ldap-3.4.4/Modules/options.c
--- old/python-ldap-3.4.3/Modules/options.c 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/Modules/options.c 2023-11-17 21:30:11.000000000 +0100
@@ -207,8 +207,8 @@
}
else {
PyErr_Format(PyExc_ValueError,
- "timeout must be >= 0 or -1/None for infinity, got %f",
- doubleval);
+ "timeout must be >= 0 or -1/None for infinity, got %S",
+ value);
return 0;
}
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/PKG-INFO new/python-ldap-3.4.4/PKG-INFO
--- old/python-ldap-3.4.3/PKG-INFO 2022-09-20 17:33:49.643415000 +0200
+++ new/python-ldap-3.4.4/PKG-INFO 2023-11-17 21:46:39.785235600 +0100
@@ -1,13 +1,12 @@
Metadata-Version: 2.1
Name: python-ldap
-Version: 3.4.3
+Version: 3.4.4
Summary: Python modules for implementing LDAP clients
Home-page: https://www.python-ldap.org/
+Download-URL: https://pypi.org/project/python-ldap/
Author: python-ldap project
Author-email: python-ldap@python.org
License: Python style
-Download-URL: https://pypi.org/project/python-ldap/
-Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
@@ -22,6 +21,9 @@
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Database
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries :: Python Modules
@@ -29,6 +31,8 @@
Classifier: License :: OSI Approved :: Python Software Foundation License
Requires-Python: >=3.6
License-File: LICENCE
+Requires-Dist: pyasn1>=0.3.7
+Requires-Dist: pyasn1_modules>=0.1.5
python-ldap:
python-ldap provides an object-oriented API to access LDAP directory servers
@@ -37,4 +41,3 @@
(e.g. processing LDIF, LDAPURLs, LDAPv3 schema, LDAPv3 extended operations
and controls, etc.).
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/Tests/t_ldapobject.py new/python-ldap-3.4.4/Tests/t_ldapobject.py
--- old/python-ldap-3.4.3/Tests/t_ldapobject.py 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/Tests/t_ldapobject.py 2023-11-03 01:32:59.000000000 +0100
@@ -647,24 +647,14 @@
@requires_init_fd()
class Test03_SimpleLDAPObjectWithFileno(Test00_SimpleLDAPObject):
def _open_ldap_conn(self, who=None, cred=None, **kwargs):
- if hasattr(self, '_sock'):
- raise RuntimeError("socket already connected")
- self._sock = socket.create_connection(
+ sock = socket.create_connection(
(self.server.hostname, self.server.port)
)
- return super()._open_ldap_conn(
- who=who, cred=cred, fileno=self._sock.fileno(), **kwargs
+ result = super()._open_ldap_conn(
+ who=who, cred=cred, fileno=sock.fileno(), **kwargs
)
-
- def tearDown(self):
- self._sock.close()
- delattr(self, '_sock')
- super().tearDown()
-
- def reset_connection(self):
- self._sock.close()
- delattr(self, '_sock')
- super(Test03_SimpleLDAPObjectWithFileno, self).reset_connection()
+ sock.detach()
+ return result
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/setup.py new/python-ldap-3.4.4/setup.py
--- old/python-ldap-3.4.3/setup.py 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/setup.py 2023-11-17 21:30:11.000000000 +0100
@@ -90,6 +90,9 @@
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
+ 'Programming Language :: Python :: 3.10',
+ 'Programming Language :: Python :: 3.11',
+ 'Programming Language :: Python :: 3.12',
# Note: when updating Python versions, also change tox.ini and .github/workflows/*
'Topic :: Database',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ldap-3.4.3/tox.ini new/python-ldap-3.4.4/tox.ini
--- old/python-ldap-3.4.3/tox.ini 2022-09-20 17:33:12.000000000 +0200
+++ new/python-ldap-3.4.4/tox.ini 2023-11-03 01:32:59.000000000 +0100
@@ -5,7 +5,7 @@
[tox]
# Note: when updating Python versions, also change setup.py and .github/worlflows/*
-envlist = py{36,37,38,39,310},c90-py{36,37},py3-nosasltls,doc,py3-trace,pypy3
+envlist = py{36,37,38,39,310,311,312},c90-py{36,37},py3-nosasltls,doc,py3-trace,pypy3.9
minver = 1.8
[gh-actions]
@@ -14,7 +14,10 @@
3.7: py37
3.8: py38, doc, py3-nosasltls
3.9: py39, py3-trace
- pypy3: pypy3
+ 3.10: py310
+ 3.11: py311
+ 3.12: py312
+ pypy3.9: pypy3.9
[testenv]
deps =
@@ -26,6 +29,11 @@
commands = {envpython} -bb -Werror \
-m unittest discover -v -s Tests -p 't_*' {posargs}
+[testenv:py312]
+# Python 3.12 headers are incompatible with declaration-after-statement
+setenv =
+ CFLAGS=-Wno-int-in-bool-context -Werror -std=c99
+
[testenv:py3-nosasltls]
basepython = python3
# don't install, install dependencies manually