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 2026-05-28 23:07:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-ldap (Old) and /work/SRC/openSUSE:Factory/.python-ldap.new.1937 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ldap" Thu May 28 23:07:30 2026 rev:64 rq:1355075 version:3.4.7 Changes: -------- --- /work/SRC/openSUSE:Factory/python-ldap/python-ldap.changes 2025-10-15 12:44:50.207533227 +0200 +++ /work/SRC/openSUSE:Factory/.python-ldap.new.1937/python-ldap.changes 2026-05-28 23:07:34.316622261 +0200 @@ -1,0 +2,12 @@ +Mon May 25 15:19:00 UTC 2026 - Dirk Müller <[email protected]> + +- update to 3.4.7: + * No code changes, correcting for the fact that the previous + release artifacts uploaded to PyPI contained unintended files. + * ``attrlist`` parameter is now properly checked before use, + avoiding memory errors due to type mismatches + * Fixed errors with requestName/requestValue in ``extop.dds`` + * ``ldif`` and ``ldap.schema`` modules now actively close + sockets as they're finished with them + +------------------------------------------------------------------- Old: ---- python_ldap-3.4.5.tar.gz New: ---- python_ldap-3.4.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-ldap.spec ++++++ --- /var/tmp/diff_new_pack.cEVHjc/_old 2026-05-28 23:07:37.824766698 +0200 +++ /var/tmp/diff_new_pack.cEVHjc/_new 2026-05-28 23:07:37.840767356 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-ldap # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-ldap -Version: 3.4.5 +Version: 3.4.7 Release: 0 Summary: Python LDAP interface License: Python-2.0 ++++++ python_ldap-3.4.5.tar.gz -> python_ldap-3.4.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/.github/workflows/ci.yml new/python_ldap-3.4.7/.github/workflows/ci.yml --- old/python_ldap-3.4.5/.github/workflows/ci.yml 2025-10-10 21:11:54.000000000 +0200 +++ new/python_ldap-3.4.7/.github/workflows/ci.yml 2026-05-19 15:50:05.000000000 +0200 @@ -1,7 +1,7 @@ --- name: CI -on: +on: push: pull_request: schedule: @@ -20,7 +20,6 @@ fail-fast: false matrix: python-version: - - "3.8" - "3.9" - "3.10" - "3.11" @@ -28,11 +27,11 @@ - "3.13" - "pypy3.9" - "pypy3.10" - image: + image: - "ubuntu-22.04" steps: - name: Checkout - uses: "actions/checkout@v4" + uses: "actions/checkout@v6" - name: Install apt dependencies run: | set -ex @@ -41,7 +40,7 @@ - name: Disable AppArmor run: sudo aa-disable /usr/sbin/slapd - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} allow-prereleases: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/.github/workflows/tox-fedora.yml new/python_ldap-3.4.7/.github/workflows/tox-fedora.yml --- old/python_ldap-3.4.5/.github/workflows/tox-fedora.yml 2025-10-10 21:11:54.000000000 +0200 +++ new/python_ldap-3.4.7/.github/workflows/tox-fedora.yml 2026-05-19 15:50:05.000000000 +0200 @@ -9,7 +9,7 @@ tox_test: name: Tox env "${{matrix.tox_env}}" on Fedora steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Run Tox tests uses: fedora-python/tox-github-action@main with: @@ -21,7 +21,6 @@ strategy: matrix: tox_env: - - py38 - py39 - py310 - py311 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/CHANGES new/python_ldap-3.4.7/CHANGES --- old/python_ldap-3.4.5/CHANGES 2025-10-10 21:11:54.000000000 +0200 +++ new/python_ldap-3.4.7/CHANGES 2026-05-19 15:54:56.000000000 +0200 @@ -1,3 +1,22 @@ +Released 3.4.7 2026-05-19 + +No code changes, correcting for the fact that the previous release artifacts +uploaded to PyPI contained unintended files. + +---------------------------------------------------------------- +Released 3.4.6 2026-05-14 + +Fixes: +* ``attrlist`` parameter is now properly checked before use, avoiding memory + errors due to type mismatches +* Fixed errors with requestName/requestValue in ``extop.dds`` +* ``ldif`` and ``ldap.schema`` modules now actively close sockets as they're + finished with them + +Infrastructure: +* Package no longer requires setuptools-scm + +---------------------------------------------------------------- Released 3.4.5 2025-10-10 Security fixes: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/Lib/ldap/extop/dds.py new/python_ldap-3.4.7/Lib/ldap/extop/dds.py --- old/python_ldap-3.4.5/Lib/ldap/extop/dds.py 2025-10-07 05:13:06.000000000 +0200 +++ new/python_ldap-3.4.7/Lib/ldap/extop/dds.py 2026-05-19 15:50:05.000000000 +0200 @@ -35,6 +35,7 @@ ) def __init__(self,requestName=None,entryName=None,requestTtl=None): + super().__init__(requestName or self.requestName, b'') self.entryName = entryName self.requestTtl = requestTtl or self.defaultRequestTtl diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/Lib/ldap/pkginfo.py new/python_ldap-3.4.7/Lib/ldap/pkginfo.py --- old/python_ldap-3.4.5/Lib/ldap/pkginfo.py 2025-10-10 21:11:54.000000000 +0200 +++ new/python_ldap-3.4.7/Lib/ldap/pkginfo.py 2026-05-19 15:58:25.000000000 +0200 @@ -1,6 +1,6 @@ """ meta attributes for packaging which does not import any dependencies """ -__version__ = '3.4.5' +__version__ = '3.4.7' __author__ = 'python-ldap project' __license__ = 'Python style' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/Lib/ldap/schema/subentry.py new/python_ldap-3.4.7/Lib/ldap/schema/subentry.py --- old/python_ldap-3.4.5/Lib/ldap/schema/subentry.py 2025-10-07 05:13:06.000000000 +0200 +++ new/python_ldap-3.4.7/Lib/ldap/schema/subentry.py 2026-05-19 15:50:05.000000000 +0200 @@ -476,10 +476,10 @@ l.unbind_s() del l else: - ldif_file = urlopen(uri) - ldif_parser = ldif.LDIFRecordList(ldif_file,max_entries=1) - ldif_parser.parse() - subschemasubentry_dn,s_temp = ldif_parser.all_records[0] + with urlopen(uri) as ldif_file: + ldif_parser = ldif.LDIFRecordList(ldif_file,max_entries=1) + ldif_parser.parse() + subschemasubentry_dn,s_temp = ldif_parser.all_records[0] # Work-around for mixed-cased attribute names subschemasubentry_entry = ldap.cidict.cidict() s_temp = s_temp or {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/Lib/ldapurl.py new/python_ldap-3.4.7/Lib/ldapurl.py --- old/python_ldap-3.4.5/Lib/ldapurl.py 2025-10-10 21:11:54.000000000 +0200 +++ new/python_ldap-3.4.7/Lib/ldapurl.py 2026-05-19 15:51:40.000000000 +0200 @@ -4,7 +4,7 @@ See https://www.python-ldap.org/ for details. """ -__version__ = '3.4.5' +__version__ = '3.4.7' __all__ = [ # constants diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/Lib/ldif.py new/python_ldap-3.4.7/Lib/ldif.py --- old/python_ldap-3.4.5/Lib/ldif.py 2025-10-10 21:11:54.000000000 +0200 +++ new/python_ldap-3.4.7/Lib/ldif.py 2026-05-19 15:51:46.000000000 +0200 @@ -3,7 +3,7 @@ See https://www.python-ldap.org/ for details. """ -__version__ = '3.4.5' +__version__ = '3.4.7' __all__ = [ # constants @@ -373,7 +373,8 @@ if self._process_url_schemes: u = urlparse(url) if u[0] in self._process_url_schemes: - attr_value = urlopen(url).read() + with urlopen(url) as fd: + attr_value = fd.read() else: # All values should be valid ascii; we support UTF-8 as a # non-official, backwards compatibility layer. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/Lib/python_ldap.egg-info/PKG-INFO new/python_ldap-3.4.7/Lib/python_ldap.egg-info/PKG-INFO --- old/python_ldap-3.4.5/Lib/python_ldap.egg-info/PKG-INFO 2025-10-10 21:52:10.000000000 +0200 +++ new/python_ldap-3.4.7/Lib/python_ldap.egg-info/PKG-INFO 2026-05-20 15:13:06.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: python-ldap -Version: 3.4.5 +Version: 3.4.7 Summary: Python modules for implementing LDAP clients Author-email: python-ldap project <[email protected]> License: python-ldap diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/Lib/slapdtest/__init__.py new/python_ldap-3.4.7/Lib/slapdtest/__init__.py --- old/python_ldap-3.4.5/Lib/slapdtest/__init__.py 2025-10-10 21:11:54.000000000 +0200 +++ new/python_ldap-3.4.7/Lib/slapdtest/__init__.py 2026-05-19 15:51:33.000000000 +0200 @@ -4,7 +4,7 @@ See https://www.python-ldap.org/ for details. """ -__version__ = '3.4.5' +__version__ = '3.4.7' 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.5/Modules/LDAPObject.c new/python_ldap-3.4.7/Modules/LDAPObject.c --- old/python_ldap-3.4.5/Modules/LDAPObject.c 2025-10-07 05:15:19.000000000 +0200 +++ new/python_ldap-3.4.7/Modules/LDAPObject.c 2026-05-19 15:50:05.000000000 +0200 @@ -303,7 +303,10 @@ if (seq == NULL) goto error; - len = PySequence_Length(attrlist); + len = PySequence_Size(seq); + if (len == -1) { + goto error; + } attrs = PyMem_NEW(char *, len + 1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/PKG-INFO new/python_ldap-3.4.7/PKG-INFO --- old/python_ldap-3.4.5/PKG-INFO 2025-10-10 21:52:10.226567000 +0200 +++ new/python_ldap-3.4.7/PKG-INFO 2026-05-20 15:13:06.491265800 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: python-ldap -Version: 3.4.5 +Version: 3.4.7 Summary: Python modules for implementing LDAP clients Author-email: python-ldap project <[email protected]> License: python-ldap diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/Tests/t_ldapobject.py new/python_ldap-3.4.7/Tests/t_ldapobject.py --- old/python_ldap-3.4.5/Tests/t_ldapobject.py 2025-10-10 21:11:54.000000000 +0200 +++ new/python_ldap-3.4.7/Tests/t_ldapobject.py 2026-05-19 15:50:05.000000000 +0200 @@ -478,6 +478,7 @@ [self.server.suffix.encode('utf-8')] ) + def test_compare_s_true(self): base = self.server.suffix l = self._ldap_conn @@ -569,6 +570,38 @@ ("myAttribute", b'foobar'), ]) + def test_valid_attrlist_parameter_types(self): + """Tests the case when a valid parameter type is passed to search_ext + + Any iterable which only contains strings should not raise any errors. + """ + + l = self._ldap_conn + + valid_attrlist_parameters = [{"a": "2"}, ["a", "b"], {}, set(), set(["a", "b"])] + + for attrlist in valid_attrlist_parameters: + out = l.search_ext( + "%s" % self.server.suffix, ldap.SCOPE_SUBTREE, attrlist=attrlist + ) + + def test_invalid_attrlist_parameter_types(self): + """Tests the case when an invalid parameter type is passed to search_ext + + Any object type that is either not a interable or does contain something + that isn't a string should raise a TypeError. The exception is the string type itself. + """ + + invalid_attrlist_parameters = [{1: 2}, 0, object(), "string"] + + l = self._ldap_conn + + for attrlist in invalid_attrlist_parameters: + with self.assertRaises(TypeError): + l.search_ext( + "%s" % self.server.suffix, ldap.SCOPE_SUBTREE, attrlist=attrlist + ) + class Test01_ReconnectLDAPObject(Test00_SimpleLDAPObject): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/pyproject.toml new/python_ldap-3.4.7/pyproject.toml --- old/python_ldap-3.4.5/pyproject.toml 2025-10-10 21:46:46.000000000 +0200 +++ new/python_ldap-3.4.7/pyproject.toml 2026-05-19 15:50:05.000000000 +0200 @@ -1,7 +1,6 @@ [build-system] requires = [ "setuptools", - "setuptools-scm", ] build-backend = "setuptools.build_meta" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python_ldap-3.4.5/tox.ini new/python_ldap-3.4.7/tox.ini --- old/python_ldap-3.4.5/tox.ini 2025-10-10 21:11:54.000000000 +0200 +++ new/python_ldap-3.4.7/tox.ini 2026-05-19 15:50:05.000000000 +0200 @@ -5,13 +5,12 @@ [tox] # Note: when updating Python versions, also change setup.py and .github/worlflows/* -envlist = py{38,39,310,311,312,313},py3-nosasltls,doc,py3-trace,pypy3.9 +envlist = py{39,310,311,312,313},py3-nosasltls,doc,py3-trace,pypy3.9 minver = 1.8 [gh-actions] python = - 3.8: py38, doc, py3-nosasltls - 3.9: py39, py3-trace + 3.9: py39, py3-trace, doc, py3-nosasltls 3.10: py310 3.11: py311 3.12: py312
