#1152191 contourpy: FTBFS with latest dh-python (failed to merge _build_config.py)

Package:
src:contourpy
Source:
src:contourpy
Submitter:
Margarita Manterola
Date:
2026-10-27 08:41:00 UTC
Severity:
normal
Tags:
#1152191#5
Date:
2026-10-26 17:20:55 UTC
From:
To:
Hi!

While preparing the Python 3.15 migration we realized that some Python packages
were shipping broken metadata directories, which leads to errors when trying to
import these directories with code running on Python 3.15.

To avoid shipping any additional broken directories, dh-python now throws an
error at build-time when the contents of the directories for two different
versions don't match.

Unfortunately, contourpy is one of the affected packages and fails to build with
the latest dh-python.

https://debusine.debian.net/debian/r-python-python3.15/artifact/5177968/

  W: dh_python3 fs:157: Paths differ: debian/python3-contourpy/usr/lib/python3.15/dist-packages/contourpy/util/  _build_config.py and debian/python3-contourpy/usr/lib/python3/dist-packages/contourpy/util/_build_config.py
  E: dh_python3 fs:173: Not everything in 'debian/python3-contourpy/usr/lib/python3.15/dist-packages/contourpy/util' was able to be merged into 'debian/python3-contourpy/usr/lib/python3/dist-packages/contourpy/util'.
  I: dh_python3 fs:180: Remaining files: debian/python3-contourpy/usr/lib/python3.15/dist-packages/contourpy/util/_build_config.py
  make: *** [debian/rules:7: binary-arch] Error 1
  dpkg-buildpackage: error: debian/rules binary-arch subprocess failed with exit status 2

The _build_config.py files indeed can't be merged. One alternative is to use the
new dh-python flag --allow-unmerged-dist-packages to allow this divergence (in
this case, it wouldn't lead to broken metadata directories, as they are not in
such a directory).  Another option would be to patch the code to not need this
file at all, as this seems mostly to be for debugging purposes.

This is a release critical issue, because we need to rebuild the package for the
3.15 transition.

#1152191#10
Date:
2026-10-27 08:39:07 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
contourpy, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1152191@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Maximiliano Curia <maxy@debian.org> (supplier of updated contourpy package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Tue, 27 Oct 2026 09:14:17 +0100
Source: contourpy
Architecture: source
Version: 1.3.3-3
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+python@tracker.debian.org>
Changed-By: Maximiliano Curia <maxy@debian.org>
Closes: 1152191
Changes:
 contourpy (1.3.3-3) unstable; urgency=medium
 .
   * Team upload.
   * Allow unmerged _build_config.py (Closes: #1152191)
Checksums-Sha1:
 bec2342864cd5087cee8b7437395b37fee749d32 2279 contourpy_1.3.3-3.dsc
 e2ed6440ce1dde7a35cbeec5484aa972ab53f14a 3624 contourpy_1.3.3-3.debian.tar.xz
 c9a835de77a84a0666074dfd63d1e21ce48e8ace 11227 contourpy_1.3.3-3_source.buildinfo
Checksums-Sha256:
 f171bbcb4659a864c47ddf7ba0605770cf190c7a3df0bb7ba24df20791267eac 2279 contourpy_1.3.3-3.dsc
 2098bf41cf91ff433671a47835db7dc11262b9c1ad14f763be8b3110a01942b4 3624 contourpy_1.3.3-3.debian.tar.xz
 2137af400903f96d5769428cae71df7f2ffa2cda7410a6dbc515bf30d32d0749 11227 contourpy_1.3.3-3_source.buildinfo
Files:
 1a8d6b751503831e9317e3eab6a0e1ee 2279 python optional contourpy_1.3.3-3.dsc
 42e80410493226814bc89e0dd7955bac 3624 python optional contourpy_1.3.3-3.debian.tar.xz
 cfff0201eda4494a446805f4d6c94f22 11227 python optional contourpy_1.3.3-3_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE+JIdOnQEyG4RNSIVxxl2mbKbIyoFAmrgXiAACgkQxxl2mbKb
IyoHaRAAn9gvuHnkTyiM767Zj1QNNGc6SwWDzy9GzF0rbLwwtlxqwRzArSFBN+QU
mfRh3lO7gBFwnoC9+uGDtpBye5N9Rcz8yWyCvOkS2F0FnCFYlIGi+cLA4iOFGbHN
UleyTcPbN+DbomKrHPad6T0HXdmrQxkZur6QwLJHkUDFOmlq6qEbncgsGB8itxc5
o1akR61kKQN5cVqBt0dmNGPLtaAHllHSOibpJM7FRG8EEPcg/7PPyUqhUKtpbB1Q
N79MtC3Ap7t6CsQqTWxFuF97Up+EF82qaiYwxstPbWWRouVSA+V+m5+6pBEl+wiO
EvFd2QLS7MtE5bXFRaUdpMbKw3K+PjZ9XXyt+gtsz6C4tX5q7Od7Hu2jcfu7cXFt
anFJCu1nFBKZ4VeZXj3SFW5Nc181pP8wo2VK6MXXcsV79GlYUxKxTJG1Ltf6VdUO
vsn0FFaWUh/Sk78xepRdYcchfR77o9658keTSbsrZbAkdb3UF4g8tlZmxR6wtpp8
MMJ+gORJD/TAj7EGo+otJ+3SvLCwOZxWRPMi2wq9mBMHfoWfmZGVSNLGgm2VxxXV
epfPElTSLkF5GbymqgWCIo79FmXHdOxtIj/PGJ4bv2fiz8nrzBm6ojMp1i3QY5Qx
05vFsU+BGXJvxTmeZc85JXiwRtk8plamZF+aVEugcvMEEB/0PEg=
=foDT
-----END PGP SIGNATURE-----