Bug#942673: warn about b-d on python3-all-dev and package not building for all supported python versions

2019-10-21 Thread Chris Lamb
Hi again Matthias,

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

Ah, I guess this the crux of my question; how might Lintian check this
statically? From the list of filenames in the binary package? Is there
some binary package field I am missing...?

> The error should trigger,
> 
>   - if the .buildinfo lists more than one python3.X-dev,

Using the .buildinfo in Lintian is a little problematic as most
processes, tools and scripts pass the .changes, so if we could weaken
this to source packages that Build-Depend on python-all-dev then that
would actually catch a lot more instances.


Best wishes,

-- 
  ,''`.
 : :'  : Chris Lamb
 `. `'`  la...@debian.org 🍥 chris-lamb.co.uk
   `-



Bug#942673: warn about b-d on python3-all-dev and package not building for all supported python versions

2019-10-21 Thread Matthias Klose

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



Bug#942673: warn about b-d on python3-all-dev and package not building for all supported python versions

2019-10-21 Thread Chris Lamb
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.


Regards,

-- 
  ,''`.
 : :'  : Chris Lamb
 `. `'`  la...@debian.org 🍥 chris-lamb.co.uk
   `-



Bug#942673: warn about b-d on python3-all-dev and package not building for all supported python versions

2019-10-20 Thread Matthias Klose

On 20.10.19 23:17, Chris Lamb wrote:

Hi Matthias,


Can you clarify what you mean here regarding "not building for all
supported Python versions"? I'm looking at src:jsonnet and do not
immediately see what is wrong.


see
https://launchpadlibrarian.net/447355407/buildlog_ubuntu-focal-amd64.jsonnet_0.14.0+ds-1build1_BUILDING.txt.gz


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 don't think that analyzing the rules 
file is the way to go. I'm not sure how you would be able to do without the 
.buildinfo file.


Matthias



Bug#942673: warn about b-d on python3-all-dev and package not building for all supported python versions

2019-10-20 Thread Chris Lamb
Hi Matthias,

> > Can you clarify what you mean here regarding "not building for all
> > supported Python versions"? I'm looking at src:jsonnet and do not
> > immediately see what is wrong.
> 
> see
> https://launchpadlibrarian.net/447355407/buildlog_ubuntu-focal-amd64.jsonnet_0.14.0+ds-1build1_BUILDING.txt.gz

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


Regards,

-- 
  ,''`.
 : :'  : Chris Lamb
 `. `'`  la...@debian.org 🍥 chris-lamb.co.uk
   `-



Bug#942673: warn about b-d on python3-all-dev and package not building for all supported python versions

2019-10-20 Thread Chris Lamb
severity 942673 wishlist
thanks

Matthias Klose wrote:

> please warn about b-d on python3-all-dev and package not building for all 
> supported python versions.

Can you clarify what you mean here regarding "not building for all
supported Python versions"? I'm looking at src:jsonnet and do not
immediately see what is wrong.


Regards,

-- 
  ,''`.
 : :'  : Chris Lamb
 `. `'`  la...@debian.org 🍥 chris-lamb.co.uk
   `-



Bug#942673: warn about b-d on python3-all-dev and package not building for all supported python versions

2019-10-20 Thread Matthias Klose

On 20.10.19 18:57, Chris Lamb wrote:

severity 942673 wishlist
thanks

Matthias Klose wrote:


please warn about b-d on python3-all-dev and package not building for all
supported python versions.


Can you clarify what you mean here regarding "not building for all
supported Python versions"? I'm looking at src:jsonnet and do not
immediately see what is wrong.


see
https://launchpadlibrarian.net/447355407/buildlog_ubuntu-focal-amd64.jsonnet_0.14.0+ds-1build1_BUILDING.txt.gz

the build system doesn't loop over the python3 versions, it just builds for the 
default, and not for python3.8.




Bug#942673: warn about b-d on python3-all-dev and package not building for all supported python versions

2019-10-19 Thread Matthias Klose

Package: lintian

please warn about b-d on python3-all-dev and package not  building for all 
supported python versions.  Not sure if that's implementable, because you can 
only warn about that when there are currently multiple supported python3 
versions (like in python3-defaults in experimental). Or can you reference the 
buildinfo file for that?


Examples which I found so far:

jsonnet
ldb
apparmor
libkdtree++