@@ -68,11 +68,11 @@ wheels, and the manylinux approach has achieved substantial uptake
6868among both package maintainers and end-users. But any manylinux PEP
6969needs some way to address these complexities.
7070
71- In previous manylinux PEPs (:pep: `513 `, :pep: `571 `), we've done this
72- by attempting to write down in the PEP the exact set of libraries,
73- symbol versions, Python configuration, etc. that we believed would
74- lead to wheels that work on all mainstream glibc-based Linux systems.
75- But this created several problems:
71+ In previous manylinux PEPs (:pep: `513 `, :pep: `571 `, , :pep: ` 599 `),
72+ we've done this by attempting to write down in the PEP the exact set
73+ of libraries, symbol versions, Python configuration, etc. that we
74+ believed would lead to wheels that work on all mainstream glibc-based
75+ Linux systems. But this created several problems:
7676
7777First, PEPs are generally supposed to be normative references: if
7878software doesn't match the PEP, then we fix the software. But in this
@@ -248,6 +248,13 @@ tags:
248248- ``manylinux1_i686 `` is now an alias for ``manylinux_2_5_i686 ``
249249- ``manylinux2010_x86_64 `` is now an alias for ``manylinux_2_12_x86_64 ``
250250- ``manylinux2010_i686 `` is now an alias for ``manylinux_2_12_i686 ``
251+ - ``manylinux2014_x86_64 `` is now an alias for ``manylinux_2_17_x86_64 ``
252+ - ``manylinux2014_i686 `` is now an alias for ``manylinux_2_17_i686 ``
253+ - ``manylinux2014_aarch64 `` is now an alias for ``manylinux_2_17_aarch64 ``
254+ - ``manylinux2014_armv7l `` is now an alias for ``manylinux_2_17_armv7l ``
255+ - ``manylinux2014_ppc64 `` is now an alias for ``manylinux_2_17_ppc64 ``
256+ - ``manylinux2014_ppc64le `` is now an alias for ``manylinux_2_17_ppc64le ``
257+ - ``manylinux2014_s390x `` is now an alias for ``manylinux_2_17_s390x ``
251258
252259This redefinition is largely a no-op, but does affect a few things:
253260
@@ -299,11 +306,14 @@ the default logic should be used.
299306
300307For compatibility with previous specifications, if the tag is
301308``manylinux1 `` or ``manylinux_2_5 `` exactly, then we also check the
302- module for a boolean attribute ``manylinux1_compatible ``, and if the
309+ module for a boolean attribute ``manylinux1_compatible ``, if the
303310tag version is ``manylinux2010 `` or ``manylinux_2_12 `` exactly, then
304311we also check the module for a boolean attribute
305- ``manylinux2010_compatible ``. If both the new and old attributes are
306- defined, then ``manylinux_compatible `` takes precedence.
312+ ``manylinux2010_compatible ``, and if the tag version is
313+ ``manylinux2014 `` or ``manylinux_2_17 `` exactly, then we also check
314+ the module for a boolean attribute ``manylinux2014_compatible ``. If
315+ both the new and old attributes are defined, then
316+ ``manylinux_compatible `` takes precedence.
307317
308318Here's some example code. You don't have to actually use this code,
309319but you can use it for reference if you have questions about the exact
@@ -314,6 +324,13 @@ semantics::
314324 "manylinux1_i686": "manylinux_2_5_i686",
315325 "manylinux2010_x86_64": "manylinux_2_12_x86_64",
316326 "manylinux2010_i686": "manylinux_2_12_i686",
327+ "manylinux2014_x86_64": "manylinux_2_17_x86_64",
328+ "manylinux2014_i686": "manylinux_2_17_i686",
329+ "manylinux2014_aarch64": "manylinux_2_17_aarch64",
330+ "manylinux2014_armv7l": "manylinux_2_17_armv7l",
331+ "manylinux2014_ppc64": "manylinux_2_17_ppc64",
332+ "manylinux2014_ppc64le": "manylinux_2_17_ppc64le",
333+ "manylinux2014_s390x": "manylinux_2_17_s390x",
317334 }
318335
319336 def manylinux_tag_is_compatible_with_this_system(tag):
@@ -368,6 +385,7 @@ matches the following regexes:
368385
369386- ``manylinux1_(x86_64|i686) ``
370387- ``manylinux2010_(x86_64|i686) ``
388+ - ``manylinux2014_(x86_64|i686|aarch64|armv7l|ppc64|ppc64le|s390x) ``
371389- ``manylinux_[0-9]+_[0-9]+_(.*) ``
372390
373391Package indexes may impose additional requirements; for example, they
0 commit comments