Skip to content

Commit 043cfe8

Browse files
author
Cyprien Courtot
committed
feat: manylinux_2_34 based on AlmaLinux 9
1 parent a1b4ddc commit 043cfe8

File tree

9 files changed

+38
-8
lines changed

9 files changed

+38
-8
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ jobs:
3737
include:
3838
- policy: "manylinux_2_28"
3939
platform: "x86_64"
40+
- policy: "manylinux_2_34"
41+
platform: "x86_64"
4042

4143
env:
4244
POLICY: ${{ matrix.policy }}

.travis.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ jobs:
3838
env: POLICY="manylinux_2_28" PLATFORM="s390x"
3939
- arch: ppc64le
4040
env: POLICY="manylinux_2_28" PLATFORM="ppc64le"
41+
- arch: arm64-graviton2
42+
virt: vm
43+
group: edge
44+
env: POLICY="manylinux_2_34" PLATFORM="aarch64"
45+
- arch: s390x
46+
env: POLICY="manylinux_2_34" PLATFORM="s390x"
47+
- arch: ppc64le
48+
env: POLICY="manylinux_2_34" PLATFORM="ppc64le"
4149
- arch: arm64-graviton2
4250
virt: vm
4351
group: edge

README.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ The manylinux project supports:
4545

4646
- ``manylinux_2_28`` images for ``x86_64``, ``aarch64``, ``ppc64le`` and ``s390x``.
4747

48+
- ``manylinux_2_34`` images for ``x86_64``, ``aarch64``, ``ppc64le`` and ``s390x``.
49+
4850

4951
Wheel packages compliant with those tags can be uploaded to
5052
`PyPI <https://pypi.python.org>`_ (for instance with `twine
@@ -98,6 +100,16 @@ etc., we provide `Docker <https://docker.com/>`_ images where we've
98100
done the work for you. The images are uploaded to `quay.io`_ and are tagged
99101
for repeatable builds.
100102

103+
manylinux_2_34 (AlmaLinux 9 based)
104+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105+
106+
Toolchain: GCC 12
107+
108+
- x86_64 image: ``quay.io/pypa/manylinux_2_34_x86_64``
109+
- aarch64 image: ``quay.io/pypa/manylinux_2_34_aarch64``
110+
- ppc64le image: ``quay.io/pypa/manylinux_2_34_ppc64le``
111+
- s390x image: ``quay.io/pypa/manylinux_2_34_s390x``
112+
101113

102114
manylinux_2_28 (AlmaLinux 8 based)
103115
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

build.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ if [ "${POLICY}" == "manylinux2014" ]; then
4141
else
4242
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"
4343
fi
44+
elif [ "${POLICY}" == "manylinux_2_34" ]; then
45+
BASEIMAGE="${MULTIARCH_PREFIX}almalinux:9"
46+
DEVTOOLSET_ROOTPATH="/opt/rh/gcc-toolset-12/root"
47+
PREPEND_PATH="${DEVTOOLSET_ROOTPATH}/usr/bin:"
48+
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst"
4449
elif [ "${POLICY}" == "manylinux_2_28" ]; then
4550
BASEIMAGE="${MULTIARCH_PREFIX}almalinux:8"
4651
DEVTOOLSET_ROOTPATH="/opt/rh/gcc-toolset-12/root"

docker/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# default to latest supported policy, x86_64
2-
ARG BASEIMAGE=amd64/almalinux:8
3-
ARG POLICY=manylinux_2_28
2+
ARG BASEIMAGE=amd64/almalinux:9
3+
ARG POLICY=manylinux_2_34
44
ARG PLATFORM=x86_64
55
ARG DEVTOOLSET_ROOTPATH=/opt/rh/gcc-toolset-12/root
66
ARG LD_LIBRARY_PATH_ARG=${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst

docker/build_scripts/install-libxcrypt.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ if [ "$BASE_POLICY" == "musllinux" ]; then
1616
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
1717
echo "Skip libxcrypt installation on manylinux_2_28"
1818
exit 0
19+
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; then
20+
echo "Skip libxcrypt installation on manylinux_2_34"
21+
exit 0
1922
fi
2023

2124
# We need perl 5.14+

docker/build_scripts/install-runtime-packages.sh

Lines changed: 4 additions & 4 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}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
35+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; 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 [ "${BASE_POLICY}" == "musllinux" ]; then
3838
MANYLINUX_DEPS="musl-dev libstdc++ glib-dev libx11-dev libxext-dev libxrender-dev mesa-dev libice-dev libsm-dev zlib-dev expat-dev"
@@ -42,11 +42,11 @@ else
4242
fi
4343

4444
# RUNTIME_DEPS: Runtime dependencies. c.f. install-build-packages.sh
45-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
45+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; then
4646
RUNTIME_DEPS="zlib bzip2 expat ncurses readline gdbm libpcap xz openssl keyutils-libs libkadm5 libcom_err libidn libcurl uuid libffi libdb"
4747
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
4848
RUNTIME_DEPS="${RUNTIME_DEPS} libXft"
49-
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
49+
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; then
5050
RUNTIME_DEPS="${RUNTIME_DEPS} tk"
5151
fi
5252
elif [ "${BASE_POLICY}" == "musllinux" ]; then
@@ -86,7 +86,7 @@ if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
8686
# Install mayeut/devtoolset-10 repo to get devtoolset-10
8787
curl -fsSLo /etc/yum.repos.d/mayeut-devtoolset-10.repo https://copr.fedorainfracloud.org/coprs/mayeut/devtoolset-10/repo/custom-1/mayeut-devtoolset-10-custom-1.repo
8888
fi
89-
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
89+
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; then
9090
PACKAGE_MANAGER=dnf
9191
BASETOOLS="${BASETOOLS} curl glibc-locale-source glibc-langpack-en hardlink hostname libcurl libnsl libxcrypt which"
9292
# 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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
2020
fi
2121
yum clean all
2222
rm -rf /var/cache/yum
23-
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
23+
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; then
2424
dnf -y upgrade
2525
dnf clean all
2626
rm -rf /var/cache/yum

tests/run_tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
1010
PACKAGE_MANAGER=yum
1111
elif [ "${AUDITWHEEL_POLICY:0:10}" == "musllinux_" ]; then
1212
PACKAGE_MANAGER=apk
13-
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
13+
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; then
1414
PACKAGE_MANAGER=dnf
1515
else
1616
echo "Unsupported policy: '${AUDITWHEEL_POLICY}'"

0 commit comments

Comments
 (0)