On Jan 21, 2016 2:07 AM, "M.-A. Lemburg" <m...@egenix.com> wrote: > > On 21.01.2016 10:31, Nick Coghlan wrote: > > On 21 January 2016 at 19:03, M.-A. Lemburg <m...@egenix.com> wrote: > >> By using the version based approach, we'd not run into this > >> problem and gain a lot more. > > > > I think it's better to start with a small core that we *know* works, > > then expand later, rather than trying to make the first iteration too > > wide. The "manylinux1" tag itself is versioned (hence the "1" at the > > end), so "manylinux2" may simply have *more* libraries defined, rather > > than newer ones. > > My argument is that the file based approach taken by the PEP > is too limiting to actually make things work for a large > set of Python packages. > > It will basically only work for packages that do not interface > to other external libraries (except for the few cases listed in > the PEP, e.g. X11, GL, which aren't always installed or > available either).
The list of allowed libraries is exactly the same list of libraries as are required by the Anaconda python distribution, so we *know* that it works for about a hundred different python packages, including lots of tricky ones (the whole scientific stack), and had been tested by tens or hundreds of thousands of users. (I posted a link above to some actual working, compliant pyside and numpy packages, which we picked for testing because they're particular interesting/difficult packages that need to interface to external libraries.) Yes, various extra tricks are needed to get things working on top of this base, including strategies for shipping libraries that are not in the baseline set, but these are problems that can be solved on a project-by-project basis, and don't need a PEP. [...] > Another detail we have found when external dependencies > is that some platforms use different names for the libraries, > e.g. RedHat has a tendency to use non-standard OpenSSL > library names (/lib64/libssl.so.10 instead of the more > common libssl.so.1.0.0). > > > The key is that we only have one chance to make a good first > > impression with binary Linux wheel support on PyPI, and we want that > > to be positive for everyone: > > Sure, but if we get the concept wrong, it'll be difficult > to switch later on and since there will always be libs not in the > set, we'll need to address this in some way. There's no lock-in here -- any alternative approach just needs its own platform tag. Pypi and pip can easily support multiple such tags at the same time, if more sophisticated proposals arise in the future. In the mean time, for packagers targeting manylinux is at least as easy as targeting windows (which also provides very few libraries "for free"). -n
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig