[Distutils] Wheel files for PPC64le

Bruno Alexandre Rosa bruno.rosa at eldorado.org.br
Thu Mar 30 16:09:20 EDT 2017

Hi there,

First of all, thanks for checking out the information about Docker images, Nick!

Since Leonardo's last email got some formatting issues, I'm fixing it (mostly manually) and sending it here again.

Kind regards,
Bruno Rosa

> Having manylinuxN consistently align with CentOS(N+4) seems reasonable to me for simplicity's sake, but there should be a discussion in the PEP around how that aligns with ppc64le support on other LTS distros (mainly Debian and Ubuntu).
> Given the relative dates involved, I'd expect manylinux-style binaries compiled on CentOS 7 to also work on Ubuntu 14.04, 16.04 and Debian 8, but the PEP should explicitly confirm that the nominated symbol versions above are available on all of those distros.

Ok, I can add it to the PEP, but regarding the supported distros, the older than CentOS 7 may not be compatible, based on the backward compatibility rules, that does not guarantee compatibility with older versions, only with newer. I sent a message about it here https://mail.python.org/pipermail/wheel-builders/2017-March/000265.html.
> I don't think is quite that simple, as installers need to be able to figure out:
> - on manylinux3 compatible platforms, prefer manylinux3 to manylinux1
> - on manylinux3 *in*compatible platforms, only consider manylinux1
> And that means asking the question: when combined with the option of the distro-provided `_manylinux` module, is "have_compatible_glibc(2, 5) and not have_compatible_glibc(2, 17)" an adequate check for the latter case? (My inclination is to say "yes", but it would be helpful to have some more concrete data on glibc versions in different distros of interest)

Well, I didn’t realize that proposing a new tag would require an additional check about the tags, which will be a requirement for the manylinux2 as well, when the CentOS 5 be replaced by CentOS 6 for x86_64/i686. I need to check where and how the method “is_manylinux1_compatible” is used to think how it would be done. I will check that and propose how to do it.

> Beyond that, I think the main open question would be: do we go ahead and define the full `manylinux3` specification now? CentOS 7+, Ubuntu 14.04+, Debian 8+ compatibility still covers a *lot* of distros and deployments, and doing so means folks can bring the latest versions of gcc to bear on their code,   rather than being limited to the last version that was made available for RHEL/CentOS 5 (gcc 4.8).

 Actually the idea was make it available for PPC64le, just as it is available to x86_64/i686 nowadays, like porting it. I didn’t think about the definition of all requirements for the manylinux3 for all architectures, as it can change until x86_64/i686 get to the manylinux3.
Being limited to an old version, as CentOS 5 (gcc 4.8) is a requirement from PEP 513, which guarantees the backward compatibility, right? I do not want to change it, this proposal is just to create a tag for PPC64le, until both architectures get to the same base distro version. As I said above, I have already sent a message about basing it on CentOS 7, which does not guarantee the compatibility with older distros (example: Ubuntu 14.04).

Is there any thinking about base on a newer distro and make the wheel files compatible with distros older than it? Sorry if I’m missing something here.

I’m coping the Bruno Rosa, which will be involved with this PEP as well.

Leonardo Bianconi.

More information about the Distutils-SIG mailing list