[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#995498: FP? missing-build-dependency-for-dh-addon python3



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


Reply to: