Skip to content

Commit fa3dfaf

Browse files
authored
Merge pull request #1345 from mayeut/drop-manylinux2010
Drop support for manylinux2010
2 parents 4535177 + f004f72 commit fa3dfaf

14 files changed

+41
-111
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,6 @@ jobs:
3535
policy: ["manylinux2014", "manylinux_2_24", "musllinux_1_1"]
3636
platform: ["i686", "x86_64"]
3737
include:
38-
- policy: "manylinux2010"
39-
platform: "i686"
40-
- policy: "manylinux2010"
41-
platform: "x86_64"
4238
- policy: "manylinux_2_28"
4339
platform: "x86_64"
4440

README.rst

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,33 +106,47 @@ for repeatable builds.
106106
manylinux_2_28 (AlmaLinux 8 based)
107107
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
108108

109+
Toolchain: GCC 11
110+
109111
- x86_64 image: ``quay.io/pypa/manylinux_2_28_x86_64``
110112
- aarch64 image: ``quay.io/pypa/manylinux_2_28_aarch64``
111113
- ppc64le image: ``quay.io/pypa/manylinux_2_28_ppc64le``
112114

113-
manylinux_2_24 (Debian 9 based)
114-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
115-
116-
- x86_64 image: ``quay.io/pypa/manylinux_2_24_x86_64``
117-
- i686 image: ``quay.io/pypa/manylinux_2_24_i686``
118-
- aarch64 image: ``quay.io/pypa/manylinux_2_24_aarch64``
119-
- ppc64le image: ``quay.io/pypa/manylinux_2_24_ppc64le``
120-
- s390x image: ``quay.io/pypa/manylinux_2_24_s390x``
121-
122115

123116
manylinux2014 (CentOS 7 based)
124117
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
125118

119+
Toolchain: GCC 10
120+
126121
- x86_64 image: ``quay.io/pypa/manylinux2014_x86_64``
127122
- i686 image: ``quay.io/pypa/manylinux2014_i686``
128123
- aarch64 image: ``quay.io/pypa/manylinux2014_aarch64``
129124
- ppc64le image: ``quay.io/pypa/manylinux2014_ppc64le``
130125
- s390x image: ``quay.io/pypa/manylinux2014_s390x``
131126

132127

128+
manylinux_2_24 (Debian 9 based)
129+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
130+
131+
These images have some caveats mentioned in different issues.
132+
Deprecation for these images is `being discussed <https://github.com/pypa/manylinux/issues/1332>`_.
133+
134+
Toolchain: GCC 6
135+
136+
- x86_64 image: ``quay.io/pypa/manylinux_2_24_x86_64``
137+
- i686 image: ``quay.io/pypa/manylinux_2_24_i686``
138+
- aarch64 image: ``quay.io/pypa/manylinux_2_24_aarch64``
139+
- ppc64le image: ``quay.io/pypa/manylinux_2_24_ppc64le``
140+
- s390x image: ``quay.io/pypa/manylinux_2_24_s390x``
141+
142+
133143
manylinux2010 (CentOS 6 based - EOL)
134144
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
135145

146+
Support for ``manylinux2010`` has `ended on August 1st, 2022 <https://github.com/pypa/manylinux/issues/1281>`_.
147+
148+
Toolchain: GCC 8
149+
136150
- x86-64 image: ``quay.io/pypa/manylinux2010_x86_64``
137151
- i686 image: ``quay.io/pypa/manylinux2010_i686``
138152

@@ -144,6 +158,8 @@ Code and details regarding ``manylinux1`` can be found in the `manylinux1 branch
144158

145159
Support for ``manylinux1`` will `end on January 1st, 2022 <https://github.com/pypa/manylinux/issues/994>`_.
146160

161+
Toolchain: GCC 4.8
162+
147163
- x86-64 image: ``quay.io/pypa/manylinux1_x86_64``
148164
- i686 image: ``quay.io/pypa/manylinux1_i686``
149165

build.sh

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,7 @@ else
2828
fi
2929

3030
# setup BASEIMAGE and its specific properties
31-
if [ "${POLICY}" == "manylinux2010" ]; then
32-
if [ "${PLATFORM}" == "x86_64" ]; then
33-
BASEIMAGE="quay.io/pypa/manylinux2010_x86_64_centos6_no_vsyscall"
34-
elif [ "${PLATFORM}" == "i686" ]; then
35-
BASEIMAGE="${MULTIARCH_PREFIX}centos:6"
36-
else
37-
echo "Policy '${POLICY}' does not support platform '${PLATFORM}'"
38-
exit 1
39-
fi
40-
DEVTOOLSET_ROOTPATH="/opt/rh/devtoolset-8/root"
41-
PREPEND_PATH="${DEVTOOLSET_ROOTPATH}/usr/bin:"
42-
if [ "${PLATFORM}" == "i686" ]; then
43-
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst"
44-
else
45-
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst:/usr/local/lib64"
46-
fi
47-
elif [ "${POLICY}" == "manylinux2014" ]; then
31+
if [ "${POLICY}" == "manylinux2014" ]; then
4832
if [ "${PLATFORM}" == "s390x" ]; then
4933
BASEIMAGE="s390x/clefos:7"
5034
else

docker/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ RUN manylinux-entrypoint /build_scripts/install-build-packages.sh
7676

7777
FROM build_base AS build_git
7878
COPY build_scripts/build-git.sh /build_scripts/
79-
RUN export GIT_ROOT=git-2.36.2 && \
80-
export GIT_HASH=6dc2cdea5fb23d823ba4871cc23222c1db31dfbb6d6c6ff74c4128700df57c68 && \
79+
RUN export GIT_ROOT=git-2.37.1 && \
80+
export GIT_HASH=7dded96a52e7996ce90dd74a187aec175737f680dc063f3f33c8932cf5c8d809 && \
8181
export GIT_DOWNLOAD_URL=https://www.kernel.org/pub/software/scm/git && \
8282
manylinux-entrypoint /build_scripts/build-git.sh
8383

docker/build_scripts/build-cpython.sh

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,6 @@ function pyver_dist_dir {
2323
echo $1 | awk -F "." '{printf "%d.%d.%d", $1, $2, $3}'
2424
}
2525

26-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ] && [ "${CPYTHON_VERSION:0:4}" == "3.11" ]; then
27-
echo "skip CPython 3.11 on manylinux2010"
28-
mkdir /opt/_internal
29-
exit 0
30-
fi
31-
3226
CPYTHON_DIST_DIR=$(pyver_dist_dir ${CPYTHON_VERSION})
3327
fetch_source Python-${CPYTHON_VERSION}.tgz ${CPYTHON_DOWNLOAD_URL}/${CPYTHON_DIST_DIR}
3428
fetch_source Python-${CPYTHON_VERSION}.tgz.asc ${CPYTHON_DOWNLOAD_URL}/${CPYTHON_DIST_DIR}
@@ -38,14 +32,6 @@ tar -xzf Python-${CPYTHON_VERSION}.tgz
3832
pushd Python-${CPYTHON_VERSION}
3933
PREFIX="/opt/_internal/cpython-${CPYTHON_VERSION}"
4034
mkdir -p ${PREFIX}/lib
41-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ]; then
42-
# The _ctypes stdlib module build started to fail with 3.10.0rc1
43-
# No clue what changed exactly yet
44-
# This workaround fixes the build
45-
LIBFFI_INCLUDEDIR=$(pkg-config --cflags-only-I libffi | tr -d '[:space:]')
46-
LIBFFI_INCLUDEDIR=${LIBFFI_INCLUDEDIR:2}
47-
cp ${LIBFFI_INCLUDEDIR}/ffi.h ${LIBFFI_INCLUDEDIR}/ffitarget.h /usr/include/
48-
fi
4935
# configure with hardening options only for the interpreter & stdlib C extensions
5036
# do not change the default for user built extension (yet?)
5137
./configure \
@@ -54,9 +40,6 @@ fi
5440
--prefix=${PREFIX} --disable-shared --with-ensurepip=no > /dev/null
5541
make > /dev/null
5642
make install > /dev/null
57-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ]; then
58-
rm -f /usr/include/ffi.h /usr/include/ffitarget.h
59-
fi
6043
popd
6144
rm -rf Python-${CPYTHON_VERSION} Python-${CPYTHON_VERSION}.tgz Python-${CPYTHON_VERSION}.tgz.asc
6245

docker/build_scripts/build-git.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ if [ "${AUDITWHEEL_POLICY}" == "musllinux_1_1" ]; then
1414
export NO_REGEX=NeedsStartEnd
1515
fi
1616

17-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then
17+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then
1818
export NO_UNCOMPRESS2=1
1919
fi
2020

docker/build_scripts/fixup-mirrors.sh

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,3 @@
33

44
# Stop at any error, show all commands
55
set -exuo pipefail
6-
7-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ]; then
8-
# Centos 6 is EOL and is no longer available from the usual mirrors, so switch
9-
# to https://vault.centos.org
10-
sed -i 's/enabled=1/enabled=0/g' /etc/yum/pluginconf.d/fastestmirror.conf
11-
sed -i 's/^mirrorlist/#mirrorlist/g' /etc/yum.repos.d/*.repo
12-
sed -i 's;^.*baseurl=http://mirror;baseurl=https://vault;g' /etc/yum.repos.d/*.repo
13-
sed -i 's;^.*baseurl=http://download.fedoraproject.org/pub;baseurl=https://archives.fedoraproject.org/pub/archive;g' /etc/yum.repos.d/*.repo
14-
fi

docker/build_scripts/install-build-packages.sh

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,13 @@ set -exuo pipefail
88
# if a devel package is added to COMPILE_DEPS,
99
# make sure the corresponding library is added to RUNTIME_DEPS if applicable
1010

11-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
12-
if [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
13-
PACKAGE_MANAGER=dnf
14-
else
11+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
12+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
1513
PACKAGE_MANAGER=yum
16-
fi
17-
COMPILE_DEPS="bzip2-devel ncurses-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel openssl openssl-devel keyutils-libs-devel krb5-devel libcom_err-devel libidn-devel curl-devel uuid-devel libffi-devel kernel-headers"
18-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ]; then
19-
COMPILE_DEPS="${COMPILE_DEPS} db4-devel"
2014
else
21-
COMPILE_DEPS="${COMPILE_DEPS} libdb-devel"
15+
PACKAGE_MANAGER=dnf
2216
fi
17+
COMPILE_DEPS="bzip2-devel ncurses-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel openssl openssl-devel keyutils-libs-devel krb5-devel libcom_err-devel libidn-devel curl-devel uuid-devel libffi-devel kernel-headers libdb-devel"
2318
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then
2419
PACKAGE_MANAGER=apt
2520
COMPILE_DEPS="libbz2-dev libncurses5-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev liblzma-dev openssl libssl-dev libkeyutils-dev libkrb5-dev comerr-dev libidn2-0-dev libcurl4-openssl-dev uuid-dev libffi-dev linux-kernel-headers"

docker/build_scripts/install-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ set -exu
1010
MY_DIR=$(dirname "$0")
1111

1212

13-
if [ "${AUDITWHEEL_PLAT}" = "manylinux2010_i686" ] || [ "${AUDITWHEEL_PLAT}" = "manylinux2014_i686" ]; then
13+
if [ "${AUDITWHEEL_PLAT}" = "manylinux2014_i686" ]; then
1414
echo "i386" > /etc/yum/vars/basearch
1515
fixup-mirrors
1616
yum -y update

docker/build_scripts/install-pypy.sh

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,6 @@ case ${AUDITWHEEL_ARCH} in
3535
*) echo "No PyPy for ${AUDITWHEEL_ARCH}"; exit 0;;
3636
esac
3737

38-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ]; then
39-
PYPY_VERSION=7.3.7 # versions after this one do not support manylinux2010
40-
if [ "${PYTHON_VERSION}" != "3.7" ] && [ "${PYTHON_VERSION}" != "3.8" ]; then
41-
echo "No PyPy ${PYTHON_VERSION} for ${AUDITWHEEL_POLICY}"
42-
exit 0
43-
fi
44-
fi
45-
4638
EXPAND_NAME=pypy${PYTHON_VERSION}-v${PYPY_VERSION}-${PYPY_ARCH}
4739
TMPDIR=/tmp/${EXPAND_NAME}
4840
TARBALL=${EXPAND_NAME}.tar.bz2

docker/build_scripts/install-runtime-packages.sh

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ source $MY_DIR/build_utils.sh
3232

3333

3434
# MANYLINUX_DEPS: Install development packages (except for libgcc which is provided by gcc install)
35-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
35+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
3636
MANYLINUX_DEPS="glibc-devel libstdc++-devel glib2-devel libX11-devel libXext-devel libXrender-devel mesa-libGL-devel libICE-devel libSM-devel zlib-devel expat-devel"
3737
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then
3838
MANYLINUX_DEPS="libc6-dev libstdc++-6-dev libglib2.0-dev libx11-dev libxext-dev libxrender-dev libgl1-mesa-dev libice-dev libsm-dev libz-dev libexpat1-dev"
@@ -44,13 +44,8 @@ else
4444
fi
4545

4646
# RUNTIME_DEPS: Runtime dependencies. c.f. install-build-packages.sh
47-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
48-
RUNTIME_DEPS="zlib bzip2 expat ncurses readline tk gdbm libpcap xz openssl keyutils-libs libkadm5 libcom_err libidn libcurl uuid libffi"
49-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ]; then
50-
RUNTIME_DEPS="${RUNTIME_DEPS} db4"
51-
else
52-
RUNTIME_DEPS="${RUNTIME_DEPS} libdb"
53-
fi
47+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
48+
RUNTIME_DEPS="zlib bzip2 expat ncurses readline tk gdbm libpcap xz openssl keyutils-libs libkadm5 libcom_err libidn libcurl uuid libffi libdb"
5449
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then
5550
RUNTIME_DEPS="zlib1g libbz2-1.0 libexpat1 libncurses5 libreadline7 tk libgdbm3 libdb5.3 libpcap0.8 liblzma5 libssl1.1 libkeyutils1 libkrb5-3 libcomerr2 libidn2-0 libcurl3 uuid libffi6"
5651
elif [ "${AUDITWHEEL_POLICY}" == "musllinux_1_1" ]; then
@@ -61,28 +56,7 @@ else
6156
fi
6257

6358
BASETOOLS="autoconf automake bison bzip2 diffutils file make patch unzip"
64-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ]; then
65-
PACKAGE_MANAGER=yum
66-
BASETOOLS="${BASETOOLS} hardlink which"
67-
# See https://unix.stackexchange.com/questions/41784/can-yum-express-a-preference-for-x86-64-over-i386-packages
68-
echo "multilib_policy=best" >> /etc/yum.conf
69-
fixup-mirrors
70-
yum -y update
71-
fixup-mirrors
72-
yum -y install https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm curl
73-
fixup-mirrors
74-
TOOLCHAIN_DEPS="devtoolset-8-binutils devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-gcc-gfortran yasm"
75-
if [ "${AUDITWHEEL_ARCH}" == "x86_64" ]; then
76-
# Software collection (for devtoolset-8)
77-
yum -y install centos-release-scl
78-
fixup-mirrors
79-
elif [ "${AUDITWHEEL_ARCH}" == "i686" ]; then
80-
# Add libgfortran4 for devtoolset-7 compat
81-
TOOLCHAIN_DEPS="${TOOLCHAIN_DEPS} libgfortran4"
82-
# Install mayeut/devtoolset-8 repo to get devtoolset-8
83-
curl -fsSLo /etc/yum.repos.d/mayeut-devtoolset-8.repo https://copr.fedorainfracloud.org/coprs/mayeut/devtoolset-8-i386/repo/custom-1/mayeut-devtoolset-8-i386-custom-1.repo
84-
fi
85-
elif [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
59+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
8660
PACKAGE_MANAGER=yum
8761
BASETOOLS="${BASETOOLS} hardlink hostname which"
8862
# See https://unix.stackexchange.com/questions/41784/can-yum-express-a-preference-for-x86-64-over-i386-packages

docker/build_scripts/update-system-packages.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ MY_DIR=$(dirname "${BASH_SOURCE[0]}")
1111
source $MY_DIR/build_utils.sh
1212

1313
fixup-mirrors
14-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
14+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
1515
yum -y update
1616
if ! localedef -V &> /dev/null; then
1717
# somebody messed up glibc-common package to squeeze image size, reinstall the package
@@ -57,7 +57,7 @@ if [ "${BASE_POLICY}" == "manylinux" ]; then
5757
if localedef --list-archive | grep -sq -v -i ^en_US.utf8; then
5858
localedef --list-archive | grep -v -i ^en_US.utf8 | xargs localedef --delete-from-archive
5959
fi
60-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
60+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
6161
mv -f ${LOCALE_ARCHIVE} ${LOCALE_ARCHIVE}.tmpl
6262
build-locale-archive --install-langs="en_US.utf8"
6363
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then

tests/run_tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set -exuo pipefail
66
# Get script directory
77
MY_DIR=$(dirname "${BASH_SOURCE[0]}")
88

9-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
9+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
1010
PACKAGE_MANAGER=yum
1111
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then
1212
export DEBIAN_FRONTEND=noninteractive

update_native_dependencies.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ def _update_with_root(tool, dry_run):
5656
}
5757
major = {
5858
"openssl": "1.1",
59-
"git": "2.36",
6059
}
6160
dockerfile = Path(__file__).parent / "docker" / "Dockerfile"
6261
lines = dockerfile.read_text().splitlines()

0 commit comments

Comments
 (0)