Subject: Bug#1033553: libprelude failing to build from source on bookworm with python 3.11

From: "Mayer, Dirk" <[email-masked]>
Date: Mon, 27 Mar 2023 11:16:21 +0000

Source: libprelude

Version: 5.2.0-5

Tags: bookworm ftbfs

Severity: serious

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

apt-get source --only-source libprelude=5.2.0-5

Reading package lists...

NOTICE: 'libprelude' packaging is maintained in the 'Git' version control system at:

https://salsa.debian.org/totol-guest/libprelude.git

Please use:

git clone https://salsa.debian.org/totol-guest/libprelude.git

to retrieve the latest (possibly unreleased) updates to the package.

Need to get 2,934 kB of source archives.

Get:1 https://snapshot.debian.org/archive/debian/20230325T212848Z bookworm/main libprelude 5.2.0-5 (dsc) [3,121 B]

Get:2 https://snapshot.debian.org/archive/debian/20230325T212848Z bookworm/main libprelude 5.2.0-5 (tar) [2,902 kB]

Get:3 https://snapshot.debian.org/archive/debian/20230325T212848Z bookworm/main libprelude 5.2.0-5 (asc) [163 B]

Get:4 https://snapshot.debian.org/archive/debian/20230325T212848Z bookworm/main libprelude 5.2.0-5 (diff) [28.6 kB]

dpkg-source: info: extracting libprelude in libprelude-5.2.0

dpkg-source: info: unpacking libprelude_5.2.0.orig.tar.gz

dpkg-source: info: unpacking libprelude_5.2.0-5.debian.tar.xz

dpkg-source: info: using patch list from debian/patches/series

dpkg-source: info: applying 001-ruby-m4.patch

dpkg-source: info: applying 004-fix_prelude_tests_timer.patch

dpkg-source: info: applying 005-fix_pthread_atfork.patch

dpkg-source: info: applying 006-fix_timegm.patch

dpkg-source: info: applying 007-fix_libprelude-error_hurd.patch

dpkg-source: info: applying 008-disable_test-poll_on_kfreebsd.patch

dpkg-source: info: applying 013-fix-test_rwlock1.patch

dpkg-source: info: applying 018-fix_gtkdoc_1.32.patch

dpkg-source: info: applying 020-ruby27.patch

dpkg-source: info: applying 021-Update_libprelude.m4.patch

dpkg-source: info: applying 022-Fix_libprelude_pkg-config-file.patch

dpkg-source: info: applying 023-Disable_GnuLib_Tests_perror2_strerror.patch

dpkg-source: info: applying 024-Fix_Config_H.patch

dpkg-source: info: applying 025-Fix-PyIOBase_Type.patch

Fetched 2,934 kB in 1min 24s (35.0 kB/s)

++ find . -maxdepth 1 -type d

++ tail -n1

+ UNPACKED_FOLDER=./libprelude-5.2.0

+ pushd ./libprelude-5.2.0

/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0 /work/tmp/libprelude_5.2.0-5 ~

+ [[ -d /git/customization/bookworm/libprelude ]]

+ popd

+ tar cJf /work/libprelude_5.2.0-5.combined.tar.xz ./libprelude-5.2.0

/work/tmp/libprelude_5.2.0-5 ~

/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0 /work/tmp/libprelude_5.2.0-5 ~

--- BUILDING libprelude 5.2.0-5+ pushd ./libprelude-5.2.0

+ echo -n '--- BUILDING libprelude 5.2.0-5'

+ sudo -E apt-get build-dep --only-source -y libprelude=5.2.0-5

Reading package lists...

Building dependency tree...

Reading state information...

The following NEW packages will be installed:

  dh-python docbook docbook-to-man docbook-xml docbook-xsl gawk gem2deb

  gem2deb-test-runner gtk-doc-tools libblkid-dev libevent-2.1-7 libffi-dev

  libgcrypt20-dev libglib2.0-dev libglib2.0-dev-bin libgmp-dev libgmpxx4ldbl

  libgnutls-dane0 libgnutls-openssl27 libgnutls28-dev libgnutlsxx30

  libgpg-error-dev libidn2-dev libltdl-dev libltdl7 liblua5.1-0

  liblua5.1-0-dev libmount-dev libncurses-dev libncurses6 libosp5

  libp11-kit-dev libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3

  libperl-dev libpkgconf3 libpython3-all-dev libreadline-dev libruby

  libruby3.1 libselinux1-dev libsepol-dev libsigsegv2 libtasn1-6-dev

  libunbound8 libxslt1.1 lua5.1 nettle-dev opensp pkg-config pkgconf

  pkgconf-bin python3-all python3-all-dev python3-lxml python3-pygments rake

  ruby ruby-all-dev ruby-net-telnet ruby-rubygems ruby-sdbm ruby-webrick

  ruby-xmlrpc ruby3.1 ruby3.1-dev rubygems-integration sgml-data swig swig4.0

  uuid-dev xsltproc

…

…

..

…

..

Making install in tests

make[4]: Entering directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/tests'

make[5]: Entering directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/tests'

make[5]: Nothing to be done for 'install-exec-am'.

make[5]: Nothing to be done for 'install-data-am'.

make[5]: Leaving directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/tests'

make[4]: Leaving directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/tests'

make[4]: Entering directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0'

make[5]: Entering directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0'

/usr/bin/mkdir -p '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/usr/bin'

/usr/bin/install -c ./libprelude-config '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/usr/bin'

/usr/bin/install -c -d -m 711 /work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/var/spool/prelude;

/usr/bin/install -c -d -m 755 /work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/etc/prelude;

/usr/bin/install -c -d -m 755 /work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/etc/prelude/default;

/usr/bin/install -c -d -m 711 /work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/etc/prelude/profile;

/usr/bin/mkdir -p '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/usr/include/libprelude'

/usr/bin/install -c -m 644 prelude-config.h '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/usr/include/libprelude'

make[5]: Leaving directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0'

make[4]: Leaving directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0'

make[3]: Leaving directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0'

make[2]: Leaving directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0'

find . -name "__pycache__" -exec rm -rvf {} +

removed './debian/tmp/usr/local/lib/python3.11/dist-packages/__pycache__/prelude.cpython-311.pyc'

removed directory './debian/tmp/usr/local/lib/python3.11/dist-packages/__pycache__'

find . -name "*.la" -exec sed -i -e 's/^dependency_libs=.*$/dependency_libs=/g' {} +

mkdir -pv /work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/usr/share/doc/libprelude-doc

mkdir: created directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/usr/share/doc'

mkdir: created directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/usr/share/doc/libprelude-doc'

ln -s /usr/share/gtk-doc/html/libprelude /work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp/usr/share/doc/libprelude-doc/html

cd bindings/python && python3.11 setup.py install --root /work/tmp/libprelude_5.2.0-5/libprelude-5.2.0/debian/tmp

/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(

dh override_dh_auto_install --with ruby

make[1]: Leaving directory '/work/tmp/libprelude_5.2.0-5/libprelude-5.2.0'

   dh_install

dh_install: warning: Cannot find (any matches for) "debian/tmp/usr/lib/python3*/*/*" (tried in ., debian/tmp)

dh_install: warning: python3-prelude missing files: debian/tmp/usr/lib/python3*/*/*

dh_install: error: missing files, aborting

make: *** [debian/rules:59: 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: libpwquality_1.4.5-1, libseccomp_2.5.4-1

For reference: libpwquality already reported here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1033353

---

From: Bastian Germann <[email-masked]>
Date: Tue, 18 Mar 2025 22:19:19 +0100

Control: tags -1 unreproducible

I cannot reproduce this issue.