On Sat, 02 Oct 2021 at 22:48:23 -0700, Felix Lechner wrote: > I am still researching my recent commit [8] in the context of the > rationale presented in 2013. [9] My position is that "python:any" > implies the ability to satisfy "python".
It depends exactly what you mean by that. Being able to satisfy Depends: python3:any does not imply the ability to satisfy Depends: python3, and it's easy to verify this on any system with a foreign architecture enabled (I used i386 on amd64). $ apt install python3:amd64 $ cat > test.control <<EOF Section: misc Priority: optional Standards-Version: 4.6.0 Package: depends-on-python3 Depends: python3:any Description: this dummy package depends on python3 EOF $ cat > test-any.control <<EOF Section: misc Priority: optional Standards-Version: 4.6.0 Package: depends-on-python3-any Depends: python3:any Description: this dummy package depends on python3:any EOF $ equivs-build --arch=i386 test.control $ equivs-build --arch=i386 test-any.control $ apt install --dry-run ./depends-on-python3_1.0_i386.deb [apt would remove python3:amd64 and install python3:i386] $ apt install --dry-run ./depends-on-python3-any_1.0_i386.deb [apt would install it without any other changes] However, Depends: python3:any *does* imply that /usr/bin/python3 will be provided (for some architecture). > Either way, the documentation changes will probably be reverted when > the ':any' is dropped from the Python prerequisites. I don't think removing the :any from the package names in e.g. /usr/share/lintian/data/scripts/interpreters is the right solution. If I'm reading correctly, I think a better solution would probably be fixing the interpretation of comparing dependencies with "implies", so that it recognises that python3 is a "stronger" dependency than python3:any - that way, the data file could still list python3:any as the required dependency, and Lintian would recognise that a package with "Depends: python3" also guarantees that the necessary package to satisfy "Depends: python3:any" is available. smcv