Skip to content

Unable to install python-ldap 3.4.5 #598

@selimt

Description

@selimt

We are building docker images that require python-ldap . With 3.4.5 which was released 2 days ago we run into the following issue:

#13 0.416 Using Python 3.9.18 environment at: /usr
#13 11.15 Resolved 145 packages in 10.72s
#13 11.16    Building mercury-server @ file:///app/src
#13 11.26 Downloading cryptography (4.3MiB)
#13 11.27 Downloading gevent (2.1MiB)
#13 11.29 Downloading pygments (1.2MiB)
#13 11.44 Downloading django (7.6MiB)
#13 11.52 Downloading twisted (3.0MiB)
#13 11.56 Downloading djangorestframework (1.0MiB)
#13 11.62 Downloading pynacl (1.3MiB)
#13 11.71 Downloading psycopg2-binary (4.0MiB)
#13 11.73    Building poise==117.0
#13 11.73    Building core-platform==0.7.5
#13 11.74    Building ilm-logging==1.2.1
#13 11.74    Building qualname==0.1.0
#13 11.75    Building tabulate==0.8.3
#13 11.75    Building ilm-filepath==1.1.0
#13 11.76    Building shotgun-api3==3.2.2
#13 11.76    Building openapi-codec==1.3.2
#13 11.76    Building python-ldap==3.4.5
#13 11.98  Downloading pynacl
#13 12.05    Building coreschema==0.0.4
#13 12.11  Downloading cryptography
#13 12.12  Downloading psycopg2-binary
#13 12.28       Built mercury-server @ file:///app/src
#13 12.44  Downloading gevent
#13 12.45  Downloading djangorestframework
#13 12.48  Downloading pygments
#13 12.48    Building tornado==6.0.3
#13 12.52       Built core-platform==0.7.5
#13 12.57       Built openapi-codec==1.3.2
#13 12.58       Built ilm-logging==1.2.1
#13 12.59       Built poise==117.0
#13 12.62       Built ilm-filepath==1.1.0
#13 12.63       Built qualname==0.1.0
#13 12.64       Built tabulate==0.8.3
#13 12.66       Built shotgun-api3==3.2.2
#13 12.72  Downloading twisted
#13 13.46  Downloading django
#13 13.54       Built coreschema==0.0.4
#13 14.38       Built tornado==6.0.3
#13 14.53   × Failed to build `python-ldap==3.4.5`
#13 14.53   ├─▶ The build backend returned an error
#13 14.53   ╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
#13 14.53 
#13 14.53       [stdout]
#13 14.53       running bdist_wheel
#13 14.53       running build
#13 14.53       running build_py
#13 14.53       creating build/lib.linux-x86_64-cpython-39
#13 14.53       copying Lib/ldapurl.py -> build/lib.linux-x86_64-cpython-39
#13 14.53       copying Lib/ldif.py -> build/lib.linux-x86_64-cpython-39
#13 14.53       creating build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/cidict.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/compat.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/logger.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/modlist.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/__init__.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/pkginfo.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/dn.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/syncrepl.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/ldapobject.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/functions.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/resiter.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/asyncsearch.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/sasl.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/constants.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/filter.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       copying Lib/ldap/async.py -> build/lib.linux-x86_64-cpython-39/ldap
#13 14.53       creating build/lib.linux-x86_64-cpython-39/slapdtest
#13 14.53       copying Lib/slapdtest/_slapdtest.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest
#13 14.53       copying Lib/slapdtest/__init__.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest
#13 14.53       creating build/lib.linux-x86_64-cpython-39/ldap/schema
#13 14.53       copying Lib/ldap/schema/tokenizer.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/schema
#13 14.53       copying Lib/ldap/schema/__init__.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/schema
#13 14.53       copying Lib/ldap/schema/subentry.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/schema
#13 14.53       copying Lib/ldap/schema/models.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/schema
#13 14.53       creating build/lib.linux-x86_64-cpython-39/ldap/extop
#13 14.53       copying Lib/ldap/extop/__init__.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/extop
#13 14.53       copying Lib/ldap/extop/passwd.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/extop
#13 14.53       copying Lib/ldap/extop/dds.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/extop
#13 14.53       creating build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/pagedresults.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/ppolicy.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/pwdpolicy.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/readentry.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/libldap.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/__init__.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/deref.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/sessiontrack.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/psearch.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/openldap.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/vlv.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/sss.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       copying Lib/ldap/controls/simple.py ->
#13 14.53       build/lib.linux-x86_64-cpython-39/ldap/controls
#13 14.53       running egg_info
#13 14.53       writing Lib/python_ldap.egg-info/PKG-INFO
#13 14.53       writing dependency_links to Lib/python_ldap.egg-info/dependency_links.txt
#13 14.53       writing requirements to Lib/python_ldap.egg-info/requires.txt
#13 14.53       writing top-level names to Lib/python_ldap.egg-info/top_level.txt
#13 14.53       reading manifest file 'Lib/python_ldap.egg-info/SOURCES.txt'
#13 14.53       reading manifest template 'MANIFEST.in'
#13 14.53       adding license file 'LICENCE'
#13 14.53       adding license file 'LICENCE.MIT'
#13 14.53       writing manifest file 'Lib/python_ldap.egg-info/SOURCES.txt'
#13 14.53       creating build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/README ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/ca.conf ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/ca.pem ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/client.conf ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/client.key ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/client.pem ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/gencerts.sh ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/gennssdb.sh ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/server.conf ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/server.key ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       copying Lib/slapdtest/certs/server.pem ->
#13 14.53       build/lib.linux-x86_64-cpython-39/slapdtest/certs
#13 14.53       running build_ext
#13 14.53       building '_ldap' extension
#13 14.53       creating build/temp.linux-x86_64-cpython-39/Modules
#13 14.53       gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1
#13 14.53       -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe
#13 14.53       -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
#13 14.53       -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -march=x86-64-v2
#13 14.53       -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection
#13 14.53       -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions
#13 14.53       -g -grecord-gcc-switches -pipe -Wall -Werror=format-security
#13 14.53       -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
#13 14.53       -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic
#13 14.53       -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
#13 14.53       -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches
#13 14.53       -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
#13 14.53       -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64
#13 14.53       -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables
#13 14.53       -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC
#13 14.53       -fwrapv -fPIC -DHAVE_SASL -DHAVE_TLS -DLDAPMODULE_VERSION=3.4.5
#13 14.53       "-DLDAPMODULE_AUTHOR=python-ldap project" "-DLDAPMODULE_LICENSE=Python
#13 14.53       style" -IModules -I/root/.cache/uv/builds-v0/.tmp2kQtqe/include
#13 14.53       -I/usr/include/python3.9 -c Modules/LDAPObject.c -o
#13 14.53       build/temp.linux-x86_64-cpython-39/Modules/LDAPObject.o
#13 14.53 
#13 14.53       [stderr]
#13 14.53       toml section missing PosixPath('pyproject.toml') does not contain a
#13 14.53       tool.setuptools_scm section
#13 14.53       /root/.cache/uv/builds-v0/.tmp2kQtqe/lib64/python3.9/site-packages/setuptools_scm/_integration/deprecation.py:7:
#13 14.53       UserWarning: pyproject.toml: at [tool.setuptools.dynamic]
#13 14.53       version = {attr = ...} is forcing setuptools to override the version
#13 14.53       setuptools-scm did already set
#13 14.53       When using setuptools-scm it's invalid to use setuptools dynamic version
#13 14.53       as well, please remove it.
#13 14.53       Setuptools-scm is responsible for setting the version, forcing
#13 14.53       setuptools to override creates errors.
#13 14.53         warnings.warn(
#13 14.53       /root/.cache/uv/builds-v0/.tmp2kQtqe/lib64/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:82:
#13 14.53       SetuptoolsDeprecationWarning: `project.license` as a TOML table is
#13 14.53       deprecated
#13 14.53       !!
#13 14.53 
#13 14.53       
#13 14.53       ********************************************************************************
#13 14.53               Please use a simple string containing a SPDX expression for
#13 14.53       `project.license`. You can also use `project.license-files`. (Both
#13 14.53       options available on setuptools>=77.0.0).
#13 14.53 
#13 14.53               By 2026-Feb-18, you need to update your project and remove
#13 14.53       deprecated calls
#13 14.53               or your builds will no longer be supported.
#13 14.53 
#13 14.53               See
#13 14.53       https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
#13 14.53       for details.
#13 14.53       
#13 14.53       ********************************************************************************
#13 14.53 
#13 14.53       !!
#13 14.53         corresp(dist, value, root_dir)
#13 14.53       /root/.cache/uv/builds-v0/.tmp2kQtqe/lib64/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:55:
#13 14.53       SetuptoolsDeprecationWarning: 'tool.setuptools.license-files'
#13 14.53       is deprecated in favor of 'project.license-files' (available on
#13 14.53       setuptools>=77.0.0).
#13 14.53       !!
#13 14.53 
#13 14.53       
#13 14.53       ********************************************************************************
#13 14.53 
#13 14.53               By 2026-Feb-18, you need to update your project and remove
#13 14.53       deprecated calls
#13 14.53               or your builds will no longer be supported.
#13 14.53 
#13 14.53               See
#13 14.53       https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license-files
#13 14.53       for details.
#13 14.53       
#13 14.53       ********************************************************************************
#13 14.53 
#13 14.53       !!
#13 14.53         _apply_tool_table(dist, config, filename)
#13 14.53       /root/.cache/uv/builds-v0/.tmp2kQtqe/lib64/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:61:
#13 14.53       SetuptoolsDeprecationWarning: License classifiers are deprecated.
#13 14.53       !!
#13 14.53 
#13 14.53       
#13 14.53       ********************************************************************************
#13 14.53               Please consider removing the following classifiers in favor of a
#13 14.53       SPDX license expression:
#13 14.53 
#13 14.53               License :: OSI Approved :: Python Software Foundation License
#13 14.53 
#13 14.53               See
#13 14.53       https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
#13 14.53       for details.
#13 14.53       
#13 14.53       ********************************************************************************
#13 14.53 
#13 14.53       !!
#13 14.53         dist._finalize_license_expression()
#13 14.53       /root/.cache/uv/builds-v0/.tmp2kQtqe/lib64/python3.9/site-packages/setuptools/dist.py:759:
#13 14.53       SetuptoolsDeprecationWarning: License classifiers are deprecated.
#13 14.53       !!
#13 14.53 
#13 14.53       
#13 14.53       ********************************************************************************
#13 14.53               Please consider removing the following classifiers in favor of a
#13 14.53       SPDX license expression:
#13 14.53 
#13 14.53               License :: OSI Approved :: Python Software Foundation License
#13 14.53 
#13 14.53               See
#13 14.53       https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
#13 14.53       for details.
#13 14.53       
#13 14.53       ********************************************************************************
#13 14.53 
#13 14.53       !!
#13 14.53         self._finalize_license_expression()
#13 14.53       no previously-included directories found matching 'Doc/.build'
#13 14.53       warning: build_py: byte-compiling is disabled, skipping.
#13 14.53 
#13 14.53       error: command 'gcc' failed: No such file or directory
#13 14.53 
#13 14.53       hint: This usually indicates a problem with the package or the build
#13 14.53       environment.
#13 14.53   help: `python-ldap` (v3.4.5) was included because `mercury-server` (v1.21.0)
#13 14.53         depends on `python-ldap`
#13 ERROR: process "/bin/sh -c if [ \"x$BUILD_ENV\" = \"xdev\" ]; then         uv pip install --system -e .[dev] ;     else         uv pip install --system . ;     fi" did not complete successfully: exit code: 1
------
 > [8/9] RUN if [ "xdev" = "xdev" ]; then         uv pip install --system -e .[dev] ;     else         uv pip install --system . ;     fi:
14.53         self._finalize_license_expression()
14.53       no previously-included directories found matching 'Doc/.build'
14.53       warning: build_py: byte-compiling is disabled, skipping.
14.53 
14.53       error: command 'gcc' failed: No such file or directory
14.53 
14.53       hint: This usually indicates a problem with the package or the build
14.53       environment.
14.53   help: `python-ldap` (v3.4.5) was included because `mercury-server` (v1.21.0)
14.53         depends on `python-ldap`
------
Dockerfile:26

Everything works fine with 3.4.4 .

Thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions