[Distutils] [final version?] PEP 513 - A Platform Tag for Portable Linux Built Distributions

Nathaniel Smith njs at pobox.com
Sat Jan 30 03:37:14 EST 2016

On Fri, Jan 29, 2016 at 11:52 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> On 30 January 2016 at 09:29, Nathaniel Smith <njs at pobox.com> wrote:
>> Hi all,
>> I think this is ready for pronouncement now -- thanks to everyone for
>> all their feedback over the last few weeks!
>> The only change relative to the last posting is that we rewrote the
>> section on "Platform detection for installers", to switch to letting
>> distributors explicitly control manylinux1 compatibility by means of a
>> _manylinux module.
> In terms of the proposal itself, I think this version is excellent :)
> However, I realised that there's an implicit assumption we've been
> making that really should be spelled out explicitly: manylinux1 wheels
> targeting CPython 3.2 and earlier need to be compiled against a
> CPython built in wide Unicode mode, and in those cases, the detection
> of manylinux1 compatibility at the platform level should include
> checking for "sys.maxunicode > 0xFFFF".

Doh, excellent catch!

I've just pushed the obvious update to handle this directly to the
copy of the PEP in the manylinux repository.

Diff: https://github.com/manylinux/manylinux/commit/2e49cd16b89e0d6e84a5dc98ddb1a916968b73bc

New text in full:

I haven't sent to the PEP editors, because they already have another
diff from me sitting in their inboxes and I'm not sure how to do this
in a way that doesn't confuse things :-)

> The main reason we need to spell this out explicitly is that while
> distros (and I believe other redistributors) build CPython-for-Linux
> in wide mode as a matter of course, a Linux checkout of CPython 2.7
> will build in narrow mode by default.

I can confirm that Debian and Anaconda builds of CPython 2.7 both have
sys.maxunicode == 0x10ffff, but Enthought Canopy has sys.maxunicode ==
0xffff. Hmm. I guess they should fix that.

Also the manylinux docker image currently has sys.maxunicode ==
0xffff, so we should definitely fix that :-).


Nathaniel J. Smith -- https://vorpus.org

More information about the Distutils-SIG mailing list