[Distutils] Working toward Linux wheel support

Leonardo Rochael Almeida leorochael at gmail.com
Thu Aug 13 21:30:31 CEST 2015

On 13 August 2015 at 11:07, Nate Coraor <nate at bx.psu.edu> wrote:

> On Wed, Aug 12, 2015 at 9:05 PM, Nathaniel Smith <njs at pobox.com> wrote:
>> On Aug 12, 2015 13:57, "Nate Coraor" <nate at bx.psu.edu> wrote:
>> >
>> > Hello all,
>> >
>> > I've implemented the wheel side of Nick's suggestion from very early in
>> this thread to support a vendor-providable binary-compatibility.cfg.
>> >
>> >   https://bitbucket.org/pypa/wheel/pull-request/54/
>> >
>> > If this is acceptable, I'll add support for it to the pip side. What
>> else should be implemented at this stage to get the PR accepted?
>> From my reading of what the Enthought and Continuum folks were saying
>> about how they are successfully distributing binaries across different
>> distributions, it sounds like the additional piece that would take this
>> from a interesting experiment to basically-immediately-usable would be to
>> teach pip that if no binary-compatibility.cfg is provided, then it should
>> assume by default that the compatible systems whose wheels should be
>> installed are: (1) the current system's exact tag,
> This should already be the case - the default tag will no longer be
> -linux_x86_64, it'd be linux_x86_64_distro_version.
>> (2) the special hard-coded tag "centos5". (That's what everyone actually
>> uses in practice, right?)
> The idea here is that we should attempt to install centos5 wheels if more
> specific wheels for the platform aren't available?

Just my opinion, but although I'm +1 on Nate's efforts, I'm -1 on both the
standard behavior for installation being the exact platform tag, and an
automatic fallback to cento5.

IMO, on Linux, the default should always be to opt in to the desired
platform tags.

We could make it so that the word `default` inside
`binary-compatibility.cfg` means an exact match on the distro version, so
that we could simplify the documentation.

But I don't want to upgrade to pip and suddenly find myself installing
binary wheels compiled by whomever for whatever platform I have no control
with, even assuming the best of the package builders intentions.

And I certainly don't want centos5 wheels accidentally installed on my
ubuntu servers unless I very specifically asked for them.

The tiny pain inflicted by telling users to add a one-line text file in a
very well known location (or two lines, for the added centos5), so that
they can get the benefit of binary wheels on linux, is very small compared
to the pain of repeatable install scripts suddenly behaving differently and
installing binary wheels in systems that were prepared to pay the price of
source installs, including the setting of build environment variables that
correctly tweaked their build process.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20150813/c3d9967d/attachment-0001.html>

More information about the Distutils-SIG mailing list