On Aug 12, 2015 13:57, "Nate Coraor" <nate@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, (2) the special hard-coded tag "centos5". (That's what everyone actually uses in practice, right?)
To make this *really* slick, it would be cool if, say, David C. could make a formal list of exactly which system libraries are important to depend on (xlib, etc.), and we could hard-code two compatibility profiles "centos5-minimal" (= just glibc and the C++ runtime) and "centos5" (= that plus the core too-hard-to-ship libraries), and possibly teach pip how to check whether that hard-coded core set is available.
Compare with osx, where there are actually a ton of different ABIs but in practice everyone distributing wheels basically sat down and picked one and wrote some ad hoc tools to make it work, and it does: https://github.com/MacPython/wiki/wiki/Spinning-wheels
-n