On 21.10.19 18:57, Chris Lamb wrote:
Matthias Klose wrote:

Thanks for the link. I don't immediately see how Lintian can
statically check for this lack of "looping" though. Can you help?

My idea would be to look at the .buildinfo file, seeing python3-all-dev, and
then python3.7-dev and python3.8-dev.

I'm still not 100% clear what you mean, particularly on the "seeing
python3.7-dev and python3.8-dev"? Perhaps if you could provide some
concrete good and bad examples that would be the most efficient way
to move forward from here.

The failures I want to catch are:

 - build-depends on python3-all-dev, but only builds
   for the default python3 version.

 - build-depends on python3-all-dev, builds for all
   supported python3 versions, but then somehow fails
   to include the extensions for all python3 versions.
   This seems to happen with 3.8, because the m modifier
   in file and directory names was dropped.

The error should trigger,

 - if the .buildinfo lists more than one python3.X-dev,
   (this is usually only the case when python3-all-dev
   pulls in more than one python3 version, like currently
   in experimental).

 - if the binary package python3-* has at least extensions
   built for one python version,

 - but not for all python versions you find in the .buildinfo.
   The expected result would be an extension built for all
   supported python3 versions.

this is a succeeding build which fails to package the 3.8 extensions:

https://launchpad.net/ubuntu/+source/python-crypto/2.6.1-10ubuntu1
https://launchpad.net/ubuntu/+source/python-crypto/2.6.1-10ubuntu1/+build/17935886

this is a fixed build:

https://launchpad.net/ubuntu/+source/python-crypto/2.6.1-10ubuntu2
https://launchpad.net/ubuntu/+source/python-crypto/2.6.1-10ubuntu2/+build/17938600

These are package which currently just bulld for the default but depend on python3-all-dev:

ldb
apparmor
libkdtree++
zbar

Reply via email to