Bug#1033353: libpwquality failing to build on bookworm with python 3.11

Mayer, Dirk dirk.mayer at siemens.com
Thu Mar 23 08:54:18 GMT 2023


Source: libpwquality
Version: 1.4.5-1
Tags: bookworm ftbfs

When I build this package from source, the build fails. Please see log output at the end.
My build environment is a container image based on Debian testing bookworm, which already includes python3.11

After some research I guess it may be related to the upgrade to pyhton3.11 and the new behavior which enforces pip install packages only in venv.
There is also a separation of user und system packages which may be the problem in an isolated buildroot.
There maybe a new PEP668 involved: https://peps.python.org/pep-0668/
https://peps.python.org/pep-0668/#keep-the-marker-file-in-container-images
https://discuss.python.org/t/python3-m-pip-install-user-broken-in-debian-testing/24268
And a long discussion about distros:
https://discuss.python.org/t/pep-668-marking-python-base-environments-as-externally-managed/10302/72

debuild -F -uc -us
dpkg-buildpackage -us -uc -ui -F
dpkg-buildpackage: info: source package libpwquality
dpkg-buildpackage: info: source version 1.4.5-1
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Jeremy Bicha <jbicha at ubuntu.com>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
 debian/rules clean
dh clean
   dh_gnome_clean
   debian/rules override_dh_clean
make[1]: Entering directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5'
dh_clean
rm -rf python/build
make[1]: Leaving directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5'
 dpkg-source -b .
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building libpwquality using existing ./libpwquality_1.4.5.orig.tar.bz2
dpkg-source: info: building libpwquality in libpwquality_1.4.5-1.debian.tar.xz
dpkg-source: info: building libpwquality in libpwquality_1.4.5-1.dsc
 debian/rules binary
dh binary
   dh_update_autotools_config
   debian/rules override_dh_autoreconf
make[1]: Entering directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5'
dh_autoreconf --as-needed
....
...
...
Making install in python
make[2]: Entering directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5/python'
CFLAGS="-g -O2 -ffile-prefix-map=/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5=. -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-aliasing" python3 setup.py build --build-base py3.11
make[3]: Entering directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5/python'
CFLAGS="-g -O2 -ffile-prefix-map=/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5=. -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-aliasing" python3 setup.py build --build-base py3.11 install --prefix=/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5/debian/tmp/usr
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/usr/lib/python3/dist-packages/setuptools/command/easy_install.py:146: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
TEST FAILED: /work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5/debian/tmp/usr/local/lib/python3.11/dist-packages/ does NOT support .pth files
bad install directory or PYTHONPATH

You are attempting to install a package to a directory that is not
on PYTHONPATH and which Python does not read ".pth" files from.  The
installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5/debian/tmp/usr/local/lib/python3.11/dist-packages/

and your PYTHONPATH environment variable currently contains:

    ''

Here are some of your options for correcting the problem:

* You can choose a different installation directory, i.e., one that is
  on PYTHONPATH or supports .pth files

* You can add the installation directory to the PYTHONPATH environment
  variable.  (It must then also be on PYTHONPATH whenever you run
  Python and want to use the package(s) you are installing.)

* You can set up the installation directory to support ".pth" files by
  using one of the approaches described here:

  https://setuptools.pypa.io/en/latest/deprecated/easy_install.html#custom-installation-locations


Please make the appropriate changes for your system and try again.
zip_safe flag not set; analyzing archive contents...
__pycache__.pwquality.cpython-311: module references __file__
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5/python'
make[2]: Leaving directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5/python'
make[2]: Entering directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5'
make[3]: Entering directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5'
make[2]: Leaving directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5'
make[1]: Leaving directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5'
   debian/rules execute_before_dh_install
make[1]: Entering directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5'
find debian/tmp -name '*.a' -print -delete
debian/tmp/usr/lib/x86_64-linux-gnu/libpwquality.a
debian/tmp/lib/x86_64-linux-gnu/security/pam_pwquality.a
find debian/tmp -name '*.la' -print -delete
debian/tmp/usr/lib/x86_64-linux-gnu/libpwquality.la
debian/tmp/lib/x86_64-linux-gnu/security/pam_pwquality.la
make[1]: Leaving directory '/work/tmp/libpwquality_1.4.5-1/libpwquality-1.4.5'
   dh_install
dh_install: warning: Cannot find (any matches for) "usr/lib/python3*" (tried in ., debian/tmp)

dh_install: warning: python3-pwquality missing files: usr/lib/python3*
dh_install: error: missing files, aborting
make: *** [debian/rules:15: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
debuild: fatal error at line 1182:
dpkg-buildpackage -us -uc -ui -F failed



By the way: 
There are multiple other python based source packages, which are also failing to build in a bookworm based build environment, all with a similar error message:
dh_install: warning: Cannot find (any matches for) "usr/lib/python3*" (tried in ., debian/tmp)
dh_install: warning: python3-pwquality missing files: usr/lib/python3*
dh_install: error: missing files, aborting
make: *** [debian/rules:15: binary] Error 25

These are: libprelude_5.2.0-5, libseccomp_2.5.4-1





More information about the pkg-gnome-maintainers mailing list