On 30.06.2017 22:00, Tristan Seligmann wrote:
> Control: severity -1 important
> 
> On Fri, 30 Jun 2017 at 19:33 Scott Kitterman <deb...@kitterman.com> wrote:
> 
>> Technically, it builds, but in a way that's not useful.  It would actually
>> be
>> better if it had failed (I noticed this from reviewing build logs after the
>> python3 interpreter depends weren't generated correctly).
>>
> 
> In fact, the package works fine on python3.5 as well as python3.6 (the
> module imports, and the full test suite passes against the installed
> modules), thus I'm downgrading the severity of this bug.
> 
> During the build, the extension modules are first built on python3.5, and
> it is these modules that land in /usr/lib/python3, with the "abi3" ABI tag.
> The extension modules are then built again on python3.6, but these don't
> get moved into /usr/lib/python3 due to the files from the python3.5 build
> having the same name, thus landing in an incorrect directory in the  final
> package and serving no useful purpose.
> 
> The reason the package still works is the "abi3" ABI tag; these modules
> (like all CFFI-built modules, by default) are using the Python 3 "stable
> ABI"[1] so the modules built on python3.5 work fine when imported on
> python3.6, and vice-versa. I think what this means is that we only need to
> run the Python 3 build once (using the default version?); also, I think the
> interpreter depends are in fact correct in light of this. I tested
> downgrading to 1.7.1-3 and the module still imports and works on python3.6,
> even though 1.7.1-3 was only ever built against python3.5.
> 
> However, testing against all supported versions at build time is probably
> still appropriate.
> 
> I'm looping in debian-python here as others may be surprised by this
> combination of effects as well, and we should probably be handling the
> issue of modules using the stable ABI consistently. Also, I'm not 100%
> certain what the best way forward is here; teach pybuild/dh_python3 about
> the stable ABI?

I think testing the build against all supported python versions makes sense. But
how do we make sure that a package built against the new supported version end
up in the archive for a release?

Matthias

Reply via email to