
Hi, On Sat, Dec 1, 2018 at 5:18 PM Thomas Kluyver <thomas@kluyver.me.uk> wrote:
Thanks Nathaniel for the explanation.
On Sat, Dec 1, 2018, at 4:39 AM, Nathaniel Smith wrote:
So the proposal here is to refactor the spec to match how this actually works: the official definition of a manylinux_${glibc version}_${arch} wheel would be "I promise this wheel will work on any Linux system with glibc >=${glibc version} and an ${arch} processor".
I'm still a bit unsure how this works with the other libraries specified in PEP 571 (glib, libXrender, etc.). Would they be entirely dropped from a hypothetical manylinux_2_20, so wheels need to bundle everything apart from glibc itself? Or is it reasonable to assume that any system built with glibc has certain other libraries available? And is there any need to specify versions of these libraries, or is e.g. libX11.so.6 sticking around forever?
I think this is the key point. For Mac - Apple has already done the specification work for us, with its MACOSX_DEPLOYMENT_TARGET specifiers. These versions, such as '10.6' specify compatible versions for all the system libraries. I don't know Windows well, but I suppose that the equivalent APIs to the PEP 571 libraries are stable across many Windows versions, and it's standard Windows practice to compile against old and stable APIs. Cheers, Matthew