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

Reply via email to