Package: dh-python Version: 4.20201102+nmu1 Severity: important dh_python3 looks for .egg-info/ (in dhpython/fs.py:Scan). flit uses .dist-info/. As a result, install-time dependencies (Depends) do not auto-populate.
I think this needs more than a one-line fix, so I have not produced a fix yet, sorry. I think class Scan needs to be restructured a little to expect either .egg-info/ or .dist-info/ - or both? A test case is jeepney=0.6.0-1 (below) Likely a few other packages are affected. bash5$ grep-dctrl -ns Package -F Build-Depends,Build-Depends-Indep flit /var/lib/apt/lists/*Sources | sort -u asterisk-flite basic256 brltty eflite ffmpeg flightgear gnustep-gui gst-plugins-bad1.0 jeepney pd-flite python-aiosqlite python-hashids python-mediafile qtspeech-opensource-src solo-python speech-dispatcher speech-dispatcher-contrib typer bash5$ dgit clone jeepney ⋮ synthesised git commit from .dsc 0.6.0-1 bash5$ cd jeepney/ bash5$ cat >>debian/rules # Crank up debugging override_dh_python3: dh_python3 -O--buildsystem=pybuild --verbose bash5$ debuild ⋮ make[1]: Entering directory '/tmp/with-temp-dir.gKYsMQ/jeepney' dh_python3 -O--buildsystem=pybuild --verbose D: dh_python3 dh_python3:161: version: 4.20201102+nmu1 D: dh_python3 dh_python3:162: argv: ['/usr/bin/dh_python3', '-O--buildsystem=pybuild', '--verbose'] D: dh_python3 dh_python3:163: options: {'guess_deps': True, 'skip_private': False, 'verbose': True, 'arch': None, 'package': None, 'no_package': None, 'compile_all': False, 'vrange': None, 'regexpr': None, 'accept_upstream_versions': False, 'depends': None, 'depends_section': None, 'recommends': None, 'recommends_section': None, 'suggests': None, 'suggests_section': None, 'requires': None, 'shebang': None, 'ignore_shebangs': False, 'clean_dbg_pkg': True, 'no_ext_rename': False, 'no_shebang_rewrite': False, 'O': '--buildsystem=pybuild'} D: dh_python3 dh_python3:164: args: [] D: dh_python3 dh_python3:165: supported Python versions: 3.9 (default=3.9) D: dh_python3 debhelper:99: skipping package jeepney-doc (missing ${python3:Depends} in Depends) D: dh_python3 debhelper:152: source=jeepney, binary packages=['python3-jeepney'] D: dh_python3 dh_python3:183: processing package python3-jeepney... D: dh_python3 fs:49: moving files from debian/python3-jeepney/usr/lib/python3.9/dist-packages to debian/python3-jeepney/usr/lib/python3/dist-packages/ D: dh_python3 fs:260: package python3-jeepney details = { 'requires.txt': set(), <-------- PROBLEM 'egg-info': set(), <-------- PROBLEM 'nsp.txt': set(), 'shebangs': set(), 'public_vers': {Version('3')}, 'private_dirs': {}, 'compile': True, 'ext_vers': set(), 'ext_no_version': set()} D: dh_python3 depends:117: generating dependencies for package python3-jeepney D: dh_python3 depends:275: D={'python3:any'}; R=[]; S=[]; E=[], B=[]; RT=[] make[1]: Leaving directory '/tmp/with-temp-dir.gKYsMQ/jeepney' ⋮ bash5$ cat debian/*substvar* sphinxdoc:Depends=libjs-sphinxdoc (>= 1.0), libjs-sphinxdoc (>= 1.8), libjs-sphinxdoc (>= 2.0), libjs-sphinxdoc (>= 2.4.3-5~), sphinx-rtd-theme-common (>= 0.5.1+dfsg) sphinxdoc:Built-Using=sphinx (= 3.4.3-2) misc:Depends= misc:Pre-Depends= python3:Depends=python3:any <--------- PROBLEM misc:Depends= misc:Pre-Depends= bash5$ find debian/ -type d -name '*-info' -print -execdir grep -r Require {} + debian/python3-jeepney/usr/lib/python3/dist-packages/jeepney-0.6.0.dist-info ./jeepney-0.6.0.dist-info/METADATA:Requires-Python: >=3.6 ./jeepney-0.6.0.dist-info/METADATA:Requires-Dist: pytest ; extra == "test" ./jeepney-0.6.0.dist-info/METADATA:Requires-Dist: pytest-trio ; extra == "test" ./jeepney-0.6.0.dist-info/METADATA:Requires-Dist: pytest-asyncio ; extra == "test" ./jeepney-0.6.0.dist-info/METADATA:Requires-Dist: testpath ; extra == "test" ./jeepney-0.6.0.dist-info/METADATA:Requires-Dist: trio ; extra == "test" Hrm, maybe the fact that those are all "test" means they are ignored. Can I reproduce this somewhere else? OK yes, attached is a minimal test package and its output deb. -- System Information: Debian Release: bullseye/sid APT prefers testing APT policy: (990, 'testing'), (500, 'testing-security'), (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 5.10.0-6-amd64 (SMP w/8 CPU threads) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages dh-python depends on: ii python3 3.9.2-2 ii python3-distutils 3.9.2-1 dh-python recommends no packages. Versions of packages dh-python suggests: ii dpkg-dev 1.20.7.1 ii libdpkg-perl 1.20.7.1 -- no debconf information
Format: 3.0 (native) Source: xx Binary: python3-xx Architecture: all Version: 0~1 Maintainer: abuse@ai Standards-Version: 4.5.0 Build-Depends: debhelper-compat (= 13), dh-sequence-python3, flit, python3-all Package-List: python3-xx deb devel optional arch=all Checksums-Sha1: 1f4061320292d5746371d92da9747e76c99f73c1 1036 xx_0~1.tar.xz Checksums-Sha256: 212dabdcb4e0365548c0d02021cbc71cc8e8b3ec5aa1f873e8037b1354e72d0c 1036 xx_0~1.tar.xz Files: 19f7e10cd43514a0e2203c6082029abe 1036 xx_0~1.tar.xz
xx_0~1.tar.xz
Description: application/xz
python3-xx_0~1_all.deb
Description: application/vnd.debian.binary-package