| Store | Cart

Re: [Distutils] Working toward Linux wheel support

From: Daniel Holth <dho...@gmail.com>
Tue, 08 Sep 2015 19:32:09 +0000
https://www.python.org/dev/peps/pep-0425/#platform-tag is currently defined
in terms of distutils get_platform(). Instead, it could be defined more
abstractly to read something like "The platform tag expresses which
system(s) might be capable of running or linking with binary components of
the package." This would express what the tag is for rather than the list
of allowed values. Then a "legal" change in the list of allowed values
would not necessarily be effected by changing the distutils get_platform
function.

As for whether a binary is allowed from a particular server the idea of
using a different list of compatible/allowed tags per-package-source has
floated around. Distasteful amount of configuration though. Something like
the Internet Explorer security zones where you have categories of remotes...

On Tue, Sep 8, 2015 at 3:14 PM Wes Turner <wes....@gmail.com> wrote:

>> On Sep 8, 2015 1:33 PM, "Donald Stufft" <don...@stufft.io> wrote:> >> > On September 8, 2015 at 1:29:53 PM, Nate Coraor (n...@bx.psu.edu) wrote:> > > On Mon, Sep 7, 2015 at 12:02 PM, Donald Stufft wrote:> > >> > > > On September 3, 2015 at 1:23:03 PM, Nate Coraor (n...@bx.psu.edu)> wrote:> > > > > >>>> > > > > >>> I'll create PRs for this against wheel and pip shortly. I can> also> > > > work> > > > > >>> on a PEP for the platform tag - I don't think it's going to> need to> > > > be a> > > > > >>> big one. Are there any preferences as to whether this should> be a> > > > new PEP> > > > > >>> or an update to 425?> > > > > >>>> > > >> > > > Coming back to this, I'm wondering if we should include the libc> > > > implementation/version in a less generic, but still generic linux> wheel.> > > > Right> > > > now if you staticly link I think the only platform ABIs you need to> worry> > > > about> > > > are libc and Python itself. Python itself is handled already but> libc is> > > > not.> > >> > > The only thing I've seen so far is "build on an old enough version of> glibc> > > > that it handles anything sane", but not all versions of Linux even> use> > > > glibc at> > > > all.> > >> > >> > > This proposal makes a lot of sense to me. pip will need an update to> do the> > > backwards compatibility, and it may be a little ugly to do this all on> the> > > platform tag. For example, linux_x86_64_ubuntu_12_04 wheels should not> be> > > installed on systems that identify as linux_x86_64_ubuntu_14_04, but> > > linux_x86_64_glibc_2_15 wheels can be installed on systems that> identify as> > > linux_x86_64_glibc_2_19. pip would need to maintain a list of which tag> > > prefixes or patterns should be considered backward compatible, and> which> > > should not. Granted, new libcs do not pop up overnight, so it's not> exactly> > > a nightmare scenario.>> Could there be shim packages here?> How is this a different dependency?>> > >> > > Wheel should be updated to generate the "libc-generic" wheels by> default> > > when nothing other than libc is dynamically linked. It'll need libc> > > vendor/version detection.> > >> > > Alternatively, the platform tag could be split in two, in which case> you> > > have a "generic" portion (which would probably be what it currently is,> > > distutils.util.get_platform()) and a "specific" portion (the distro or> > > libc), possibly prefixed with something to avoid having to maintain a> list> > > of what's version compatible and what's not, (e.g. 'd_ubuntu_14_04' vs.> > > 'c_glibc_2_19')?> > >> > > I don't think there is a strong case to include the libc version in the> > > specific portion when a distro version will also be specified, because> the> > > distro is supposed to define the ABI (at least in the case of distros> with> > > stable ABIs), and that includes the libc compatibility. So for psycopg2> > > wheels you'd get a "distro" wheel (linux_x86_64-d_ubuntu_14_04) but for> > > SQLAlchemy, you'd get a "libc-generic" wheel> (linux_x86_64-c_glibc_2_19).> > >> > > It's then up to PyPI project owners to build on whatever platforms they> > > wish to support.> > >> >> > I think it's reasonable to not include the libc when the wheel is distro> > specific. I think the barrier to entry on adding new tags is far lower> than> > adding a whole new type of tag. Right now, I think our longest tag is> for OSX> > which is something like macosx_10_10_x86_64 at 19 chars, I don't think> it's> > much worse to have something like linux_glibc_2_19_x86_64 at 23 chars, or> > linux_ubuntu_14_04_x86_64 at 25 chars. I don't think we need the special> c or> > d prefix, we can just treat it as ==, and special case glibc as >= like> we're> > currently special casing the macosx wheels to be >=.> >> > -----------------> > Donald Stufft> > PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372> DCFA> >> >>

_______________________________________________
Distutils-SIG maillist  -  Dist...@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Recent Messages in this Thread
Nate Coraor Jul 16, 2015 05:41 pm
Nick Coghlan Sep 06, 2015 11:32 pm
Nick Coghlan Sep 05, 2015 02:56 am
Marcus Smith Sep 07, 2015 04:11 am
Nate Coraor Sep 03, 2015 05:22 pm
Nick Coghlan Sep 07, 2015 04:26 am
Daniel Holth Aug 20, 2015 07:22 pm
Donald Stufft Aug 20, 2015 07:25 pm
Donald Stufft Sep 02, 2015 11:45 pm
Daniel Holth Sep 03, 2015 12:15 pm
Nate Coraor Aug 24, 2015 03:03 pm
Wes Turner Aug 24, 2015 05:51 pm
Nick Coghlan Jul 17, 2015 08:22 am
Chris Barker Jul 17, 2015 03:36 pm
Antoine Pitrou Jul 17, 2015 03:46 pm
Chris Barker Jul 17, 2015 03:53 pm
Andrea Bedini Jul 18, 2015 07:00 am
Tres Seaver Jul 21, 2015 03:25 am
Leonardo Rochael Almeida Jul 21, 2015 03:07 pm
Marcus Smith Jul 17, 2015 04:50 pm
Olivier Grisel Jul 17, 2015 06:34 pm
Daniel Holth Jul 17, 2015 08:18 pm
Chris Barker - NOAA Federal Jul 18, 2015 01:13 am
Daniel Holth Jul 18, 2015 02:11 am
Paul Moore Jul 18, 2015 11:51 am
Nick Coghlan Jul 20, 2015 05:50 am
Chris Barker Jul 20, 2015 05:37 pm
Paul Moore Jul 20, 2015 06:37 pm
Nick Coghlan Jul 27, 2015 02:19 pm
Nate Coraor Jul 27, 2015 07:07 pm
Oscar Benjamin Jul 21, 2015 04:38 pm
Chris Barker Jul 24, 2015 06:52 pm
Oscar Benjamin Jul 28, 2015 03:02 pm
Wes Turner Jul 28, 2015 04:21 pm
Nate Coraor Aug 12, 2015 08:21 pm
Robert Collins Aug 12, 2015 11:49 pm
Nathaniel Smith Aug 13, 2015 01:05 am
Nate Coraor Aug 13, 2015 02:07 pm
Leonardo Rochael Almeida Aug 13, 2015 07:30 pm
Wes Turner Aug 13, 2015 07:43 pm
Nathaniel Smith Aug 14, 2015 01:47 am
Wes Turner Aug 14, 2015 01:50 am
Nathaniel Smith Aug 14, 2015 02:33 am
Wes Turner Aug 14, 2015 02:41 am
Leonardo Rochael Almeida Sep 08, 2015 07:18 pm
Donald Stufft Sep 08, 2015 07:22 pm
Leonardo Rochael Almeida Sep 08, 2015 07:39 pm
Nathaniel Smith Aug 14, 2015 01:25 am
Robert Collins Aug 14, 2015 01:31 am
Wes Turner Aug 14, 2015 01:38 am
Robert Collins Aug 14, 2015 01:44 am
Wes Turner Aug 14, 2015 01:44 am
Nathaniel Smith Aug 14, 2015 02:14 am
Wes Turner Aug 14, 2015 02:24 am
Robert Collins Aug 14, 2015 02:27 am
Nathaniel Smith Aug 14, 2015 07:38 am
David Cournapeau Aug 13, 2015 05:52 pm
Nathaniel Smith Aug 14, 2015 04:07 am
Chris Barker Aug 14, 2015 04:04 pm
David Cournapeau Aug 14, 2015 04:20 pm
Chris Barker Aug 14, 2015 04:00 pm
Leonardo Rochael Almeida Jul 20, 2015 01:42 am
Nick Coghlan Jul 20, 2015 06:00 am
Chris Barker Jul 20, 2015 05:39 pm
Marcus Smith Sep 06, 2015 04:09 pm
Nick Coghlan Sep 05, 2015 08:35 am
Nick Coghlan Sep 05, 2015 06:44 am
Nick Coghlan Sep 05, 2015 06:43 am
Nathaniel Smith Sep 05, 2015 06:46 am
Donald Stufft Sep 05, 2015 03:06 am
Wes Turner Sep 08, 2015 07:14 pm
Daniel Holth Sep 08, 2015 07:32 pm
Nathaniel Smith Sep 09, 2015 11:49 pm
Nate Coraor Sep 21, 2015 03:33 pm
Nate Coraor Sep 09, 2015 03:06 pm
Donald Stufft Sep 08, 2015 06:33 pm
Donald Stufft Sep 07, 2015 04:02 pm
Marcus Smith Sep 07, 2015 05:51 pm
Wes Turner Sep 07, 2015 10:16 pm
Nate Coraor Sep 03, 2015 02:04 pm
Daniel Holth Sep 03, 2015 01:56 pm
Antoine Pitrou Aug 20, 2015 07:51 pm
Nate Coraor Aug 20, 2015 07:40 pm
Donald Stufft Aug 20, 2015 07:19 pm
Antoine Pitrou Aug 20, 2015 07:14 pm
Steve Dower Aug 14, 2015 04:17 pm
Daniel Holth Aug 20, 2015 06:38 pm
Chris Barker Aug 14, 2015 08:16 pm
Alexander Walters Aug 14, 2015 10:32 pm
Nate Coraor Aug 20, 2015 06:26 pm
Nick Coghlan Sep 05, 2015 02:12 am
Daniel Holth Sep 01, 2015 01:57 pm
Wes Turner Aug 26, 2015 01:42 am
Nate Coraor Aug 27, 2015 07:21 pm
Ben Finney Sep 06, 2015 11:42 pm
Messages in this thread