Skip to content

Commit f1344e5

Browse files
committed
feat: manylinux_2_35_armv7l
Ubuntu 20.04 standard support is over. Let's get an armv7l image that still gets standard support and with a more recent gcc toolchain.
1 parent 1761148 commit f1344e5

File tree

3 files changed

+42
-6
lines changed

3 files changed

+42
-6
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
("x86_64", "ubuntu-24.04", ("manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2")),
4949
("aarch64", "ubuntu-24.04-arm", ("manylinux2014", "manylinux_2_28", "manylinux_2_34", "manylinux_2_39", "musllinux_1_2")),
5050
("i686", "ubuntu-24.04", ("manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2")),
51-
("armv7l", "ubuntu-24.04-arm", ("manylinux_2_31", "musllinux_1_2")),
51+
("armv7l", "ubuntu-24.04-arm", ("manylinux_2_31", "manylinux_2_35", "musllinux_1_2")),
5252
("ppc64le", "ubuntu-24.04", ("manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2")),
5353
("riscv64", "ubuntu-24.04", ("manylinux_2_39", "musllinux_1_2")),
5454
("s390x", "ubuntu-24.04", ("manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2")),

README.rst

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,12 @@ The manylinux project supports:
3636

3737
- ``manylinux_2_28`` images for ``x86_64``, ``i686``, ``aarch64``, ``ppc64le`` and ``s390x``.
3838

39+
- ``manylinux_2_31`` images for ``armv7l``.
40+
3941
- ``manylinux_2_34`` images for ``x86_64``, ``i686``, ``aarch64``, ``ppc64le`` and ``s390x``.
4042

43+
- ``manylinux_2_35`` images for ``armv7l``.
44+
4145
- ``manylinux_2_39`` images for ``aarch64`` and ``riscv64``.
4246

4347
- ``musllinux_1_2`` images for ``x86_64``, ``i686``, ``aarch64``, ``ppc64le``, ``s390x``, ``armv7l`` and ``riscv64``.
@@ -112,6 +116,36 @@ distros using glibc 2.39 or later, including:
112116
- CentOS/RHEL 10+
113117

114118

119+
manylinux_2_35 (Ubuntu 22.04 based) - armv7l only
120+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
121+
122+
Caveat:
123+
124+
Only Debian derivatives are available for armv7l. They do not provide recent builds of the GCC toolchain
125+
compatible with a vanilla install of the distribution. As such, we only get the GCC toolchain shipped with
126+
the base distribution.
127+
128+
The package manager & packages names are different than what is found on other manylinux images.
129+
Other images are using RHEL derivatives only for now so using yum/dnf as a package manager and RHEL like
130+
packages names this image is using apt and Debian like packages names.
131+
132+
If one depends on let's say OpenSSL development package, then, the commands to issue to install it are a bit different:
133+
134+
- ``dnf -y install openssl-devel`` on RHEL derivatives
135+
- ``apt-get update && apt-get install -y libssl-dev`` on Debian derivatives
136+
137+
138+
Toolchain: GCC 11
139+
140+
- armv7l image: ``quay.io/pypa/manylinux_2_35_armv7l``
141+
142+
Built wheels are also expected to be compatible with other
143+
distros using glibc 2.35 or later, including:
144+
145+
- Debian 12+
146+
- Ubuntu 22.04+
147+
148+
115149
manylinux_2_34 (AlmaLinux 9 based) - ALPHA
116150
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117151

@@ -140,8 +174,8 @@ distros using glibc 2.34 or later, including:
140174
- CentOS/RHEL 9+
141175

142176

143-
manylinux_2_31 (Ubuntu 20.04 based) - armv7l only - BETA
144-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
177+
manylinux_2_31 (Ubuntu 20.04 based) - armv7l only
178+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
145179

146180
Caveat:
147181

deploy_multiarch.sh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,20 @@
22

33
set -euo pipefail
44

5-
IMAGES=(manylinux2014 manylinux_2_28 manylinux_2_31 manylinux_2_34 manylinux_2_39 musllinux_1_2)
5+
IMAGES=(manylinux2014 manylinux_2_28 manylinux_2_31 manylinux_2_34 manylinux_2_35 manylinux_2_39 musllinux_1_2)
66

77
podman login -u "${QUAY_USERNAME}" -p "${QUAY_PASSWORD}" quay.io
88

99
for IMAGE in "${IMAGES[@]}"; do
1010
echo "::group::${IMAGE} check"
11-
LAST_TAG="$(oras repo tags --last "2025.06.08-1" "quay.io/pypa/${IMAGE}" | tail -2 | head -1)"
11+
LAST_TAG="$(oras repo tags --last "2025.11.08-2" "quay.io/pypa/${IMAGE}" | tail -2 | head -1)"
1212
if [ "${LAST_TAG}" == "" ]; then
13-
LAST_TAG=2025.06.08-1
13+
LAST_TAG=2025.11.08-2
1414
fi
1515
echo "last tag is ${LAST_TAG}"
1616
case ${IMAGE} in
1717
manylinux_2_31) REF_IMAGE=manylinux_2_31_armv7l;;
18+
manylinux_2_35) REF_IMAGE=manylinux_2_35_armv7l;;
1819
manylinux_2_39) REF_IMAGE=manylinux_2_39_aarch64;;
1920
*) REF_IMAGE=${IMAGE}_x86_64;;
2021
esac
@@ -33,6 +34,7 @@ for IMAGE in "${IMAGES[@]}"; do
3334

3435
case ${IMAGE} in
3536
manylinux_2_31) ARCHS=("armv7l");;
37+
manylinux_2_35) ARCHS=("armv7l");;
3638
manylinux_2_39) ARCHS=("aarch64" "riscv64");;
3739
musllinux_1_2) ARCHS=("x86_64" "i686" "aarch64" "armv7l" "ppc64le" "s390x" "riscv64");;
3840
*) ARCHS=("x86_64" "i686" "aarch64" "ppc64le" "s390x");;

0 commit comments

Comments
 (0)