Package: debhelper Version: 13.3 Severity: normal X-Debbugs-Cc: debian-p...@lists.debian.org
Hi, as noted by josch in https://lists.debian.org/debian-perl/2021/10/msg00020.html dh_perl generates incorrect unversioned dependencies for packages containing binary Perl modules. I think this regressed with https://salsa.debian.org/debian/debhelper/-/commit/7da36e893a975680654c1448c7bcba7dc1786551 which looks incorrect: $version is not always empty and when it isn't it should be used. This got into unstable with 13.3 in December 2020, shortly before the bullseye freeze started and after the Perl 5.32 transition. Quoting the Perl policy at https://www.debian.org/doc/packaging-manuals/perl-policy/ch-module_packages.html#s-binary-modules Binary modules must specify a dependency on either perl or perl-base with a minimum version of the perl package used to build the module. A quick count [1] indicates that 150 or so packages are currently violating this, presumably because of the dh_perl change. Fortunately I don't think this is as bad as it might seem (and I guess we'd have noticed sooner if it was.) Clearly the policy requirement is there to guarantee that partial upgrades don't result in a binary module getting loaded by a Perl version older than the one it was compiled with. The perlapi-* dependencies already ensure this for the upstream Perl version, and we have made only minimal changes in the Debian packaging during the time, partially because of the freeze. I'm not sure how necessary the policy requirement is nowadays. We certainly take care not to change the XS module ABI, and if we had to we'd change the perlapi-* virtual package too to force a full Perl transition. I guess C toolchain changes might cause issues, but even that seems improbable. In any case, it would probably be good to fix this before the Perl 5.34 transition when all the binary modules get rebuilt. (There is no timeline yet for that but that's just because I haven't got around to pushing it.) [1] grep-aptavail -FDepends perlapi- | grep-dctrl -sPackage -v -FDepends -e 'perl(-base)? \(' -- Niko Tyni nt...@debian.org