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

2021-10-04 Thread Nilesh Patra
On Sun, 3 Oct 2021 12:29:41 +0100 Simon McVittie  wrote:
> > 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.

That makes perfect sense!
@Felix, can I please ask you to follow this up with the respective
maintainer(s) and fix the dependency interpretation?
Since lintian seems to have catched this problem, it'd be really nice if you
could do so.

Nilesh


signature.asc
Description: PGP signature


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

2021-10-03 Thread Simon McVittie
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 < test-any.control < 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



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

2021-10-02 Thread Felix Lechner
Hi,

On Sat, Oct 2, 2021 at 1:45 AM Julien Puydt  wrote:
>
> so I think it's a false positive.

Actually, Lintian has required the ':any' for Python prerequisites
since 2013 [1] but the implementation was defective. [2] You are now
seeing an accurate picture of Lintian's settings [3][4][5][6][7]
because the diagnostics were fixed. [8] That being said, the current
settings are probably wrong.

There appears to have been no bootstrapping reason to require the
':any' for Python across the board. The setting is also not correct
for all cases. It will probably be removed in the near future.

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".

> If it's not, both lintian's output and the error description in
> /usr/share/lintian/tags/m/missing-build-dependency-for-dh-addon.tag
> fail to explain what the matter really is.

Thank you for the pointer. For the sake of consistency, I recently
adjusted several tag descriptions [10] but apparently missed that one.
Either way, the documentation changes will probably be reverted when
the ':any' is dropped from the Python prerequisites.

Thank you for bringing the matter to our attention!

Kind regards
Felix Lechner

[1] 
https://salsa.debian.org/lintian/lintian/-/commit/beb1094db955fd99b693fca1e4c87958676dfe74
[2] https://bugs.debian.org/994902
[3] 
https://salsa.debian.org/lintian/lintian/-/blob/master/lib/Lintian/Check/Debhelper.pm#L90
[4] 
https://salsa.debian.org/lintian/lintian/-/blob/master/lib/Lintian/Check/Debian/Rules.pm#L41-50
[5] 
https://salsa.debian.org/lintian/lintian/-/blob/master/lib/Lintian/Check/Testsuite.pm#L58-59
[6] 
https://salsa.debian.org/lintian/lintian/-/blob/master/data/scripts/interpreters#L80-81
[7] 
https://salsa.debian.org/lintian/lintian/-/blob/master/data/scripts/versioned-interpreters#L77-78
[8] 
https://salsa.debian.org/lintian/lintian/-/commit/9bc560a62571f2f1a70ce7044093c42ff14e3efa
[9] 
https://salsa.debian.org/lintian/lintian/-/commit/153961ead4ea6c7d38951f36852e43d110b8db30
[10] 
https://salsa.debian.org/lintian/lintian/-/commit/ec728f427a2aa4f1d2451117448e79979a106f07



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

2021-10-02 Thread Nilesh Patra
On Sat, 02 Oct 2021 10:40:14 +0200 Julien Puydt  wrote:
> E: python-anyio source: missing-build-dependency-for-dh-addon python3
> => python3:any | python3-all:any | python3-dev:any | python3-all-
> dev:any | dh-sequence-python3
> 
> but in d/control:
> Build-Depends: debhelper-compat (= 13),
>dh-python,
>python3,

I just got bit error by this as well. Adding a :any in front of python3
fixed it for me, but I am not sure if this is a right thing to do for
every package that might use python in dh process.

All the more, I don't really see why this should emit a lintian "error" at all, 
because
clearly, the build-deps are satisfied.
Unless I misunderstand, a missing :any should be demoted to something else and 
at the very least,
not be an error.

Nilesh


signature.asc
Description: PGP signature


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

2021-10-02 Thread Julien Puydt
Package: lintian
Version: 2.107.0
Severity: normal

Updating the python-anyio package, lintian complained quite vehemently
(an error):

E: python-anyio source: missing-build-dependency-for-dh-addon python3
=> python3:any | python3-all:any | python3-dev:any | python3-all-
dev:any | dh-sequence-python3

but in d/control:
Build-Depends: debhelper-compat (= 13),
   dh-python,
   python3,
   python3-hypothesis ,
   python3-pip,
   python3-setuptools,
   python3-setuptools-scm,
   python3-sniffio,
   python3-pytest (>= 6.2.5) ,
   python3-pytest-mock (>= 1.11.1) ,
   python3-trustme ,
   python3-uvloop 

so I think it's a false positive.

If it's not, both lintian's output and the error description in
/usr/share/lintian/tags/m/missing-build-dependency-for-dh-addon.tag
fail to explain what the matter really is.

Cheers,

J.Puydt