[Distutils] Proposal: using /etc/os-release in the "platform tag" definition for wheel files
Marcus Smith
qwcode at gmail.com
Mon Dec 1 02:41:16 CET 2014
+1 to the idea in general.
Would this be an *edit* to PEP425/427/Wheel-1.0 OR new peps, and a new
wheel version?
As someone using cent6 daily (with no os-release file), I'm greedy for
another fallback technique, but the simplicity of just using os-release
makes sense.
Could a published "linux_x86_64_fedora_20" wheel ever become broken just
due to normal "yum update" activity on fedora_20? When? Why?
On Thu, Nov 27, 2014 at 10:03 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> We've discussed the idea of changing the wheel file naming scheme to
> deal with Linux previously, but never put together a concrete
> proposal.
>
> The closest we've got is the idea of allowing the platform tag to be
> customised in pip and perhaps bdist_wheel, and while that's good from
> an "enabling experimentation" perspective, it may be overkill if the
> primary goal is just to better support handling of Linux distros.
>
> For starters, here's the current definition of the platform tag in PEP 425:
>
> =================
> The platform tag is simply distutils.util.get_platform() with all
> hyphens - and periods . replaced with underscore _ .
>
> * win32
> * linux_i386
> * linux_x86_64
> =================
>
> Here's my proposed change:
>
> =================
> The default platform tag is distutils.util.get_platform() with all
> hyphens - and periods . replaced with underscore _ . If
> /etc/os-release [N] exists on the system, then the values in the 'ID'
> and 'VERSION_ID' fields are read, all hyphens - and periods . replaced
> with underscore _ , and the results appended to the default tag after
> a separating underscore."
>
> Examples:
>
> * win32
> * macosx_10_6_intel
> * linux_x86_64_fedora_20
> * linux_x86_64_rhel_7_0
> * linux_x86_64_debian_7_0
> * linux_x86_64_ubuntu_14_04
> =================
>
> The [N] reference would then be a reference to
> http://www.freedesktop.org/software/systemd/man/os-release.html for
> the definition of the format of os-release. (Note that while the
> format originated with systemd, plenty of distros have also started
> providing it regardless of which init system they use)
>
> Now, this slightly overspecifies on the *consumer* side. A binary
> wheel that works on "rhel_7_0" for example, should almost certainly
> work on "rhel_7_1". However, that can be addressed on the tooling side
> (e.g. permitting the specification of "additional compatible
> platforms" when invoking pip), rather than needing to be in the
> specification.
>
> This also won't help with older Linux distros that don't offer
> /etc/os-release, but I'm OK with that - those can just continue to
> show up as "linux_x86_64", and PyPI can continue to disallow those
> uploads.
>
> Cheers,
> Nick.
>
> --
> Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
> _______________________________________________
> Distutils-SIG maillist - Distutils-SIG at python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20141130/f528ff85/attachment.html>
More information about the Distutils-SIG
mailing list