Skip to content

Commit a75487c

Browse files
committed
feat: add manylinux_2_31_armv7l image
This reverts commit e09f5845680c23699efbb240d8e466efe2de11ed.
1 parent 86578cd commit a75487c

8 files changed

+53
-8
lines changed

.travis.yml

+4
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ jobs:
4545
env: POLICY="manylinux_2_28" PLATFORM="s390x"
4646
- arch: ppc64le
4747
env: POLICY="manylinux_2_28" PLATFORM="ppc64le"
48+
- arch: arm64-graviton2
49+
virt: vm
50+
group: edge
51+
env: POLICY="manylinux_2_31" PLATFORM="armv7l"
4852
- arch: arm64-graviton2
4953
virt: vm
5054
group: edge

build.sh

+5
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ elif [ "${POLICY}" == "manylinux_2_28" ]; then
3737
DEVTOOLSET_ROOTPATH="/opt/rh/gcc-toolset-14/root"
3838
PREPEND_PATH="${DEVTOOLSET_ROOTPATH}/usr/bin:"
3939
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst"
40+
elif [ "${POLICY}" == "manylinux_2_31" ]; then
41+
BASEIMAGE="ubuntu:20.04"
42+
DEVTOOLSET_ROOTPATH=
43+
PREPEND_PATH=
44+
LD_LIBRARY_PATH_ARG=
4045
elif [ "${POLICY}" == "manylinux_2_34" ]; then
4146
BASEIMAGE="almalinux:9"
4247
DEVTOOLSET_ROOTPATH="/opt/rh/gcc-toolset-14/root"

docker/build_scripts/build-cpython.sh

+3-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] ; then
5151
export TCLTK_LIBS="-ltk8.6 -ltcl8.6"
5252
fi
5353

54-
if [ "${BASE_POLICY}_${AUDITWHEEL_ARCH}" == "musllinux_armv7l" ]; then
54+
if [ "${BASE_POLICY}_${AUDITWHEEL_ARCH}" == "manylinux_armv7l" ]; then
55+
CONFIGURE_ARGS+=(--build=armv7l-unknown-linux-gnueabihf)
56+
elif [ "${BASE_POLICY}_${AUDITWHEEL_ARCH}" == "musllinux_armv7l" ]; then
5557
CONFIGURE_ARGS+=(--build=arm-linux-musleabihf)
5658
fi
5759

docker/build_scripts/build-openssl.sh

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ fi
3232

3333
if [ "${OS_ID_LIKE}" = "rhel" ];then
3434
manylinux_pkg_remove openssl-devel
35+
elif [ "${OS_ID_LIKE}" = "debian" ];then
36+
manylinux_pkg_remove libssl-dev
3537
elif [ "${OS_ID_LIKE}" = "alpine" ]; then
3638
manylinux_pkg_remove openssl-dev
3739
fi

docker/build_scripts/build_utils.sh

+11
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ else
1919
PACKAGE_MANAGER=dnf
2020
elif command -v yum >/dev/null 2>&1; then
2121
PACKAGE_MANAGER=yum
22+
elif command -v apt-get >/dev/null 2>&1; then
23+
PACKAGE_MANAGER=apt
2224
else
2325
echo "unsupported image"
2426
exit 1
@@ -29,6 +31,7 @@ fi
2931
OS_ID_LIKE=$(. /etc/os-release; echo "${ID} ${ID_LIKE:-}")
3032
case "${OS_ID_LIKE}" in
3133
*rhel*) OS_ID_LIKE=rhel;;
34+
*debian) OS_ID_LIKE=debian;;
3235
*alpine*) OS_ID_LIKE=alpine;;
3336
*) echo "unsupported image"; exit 1;;
3437
esac
@@ -89,6 +92,9 @@ function manylinux_pkg_install {
8992
yum -y install "$@"
9093
elif [ "${PACKAGE_MANAGER}" = "dnf" ]; then
9194
dnf -y install --allowerasing "$@"
95+
elif [ "${PACKAGE_MANAGER}" = "apt" ]; then
96+
DEBIAN_FRONTEND=noninteractive apt-get update -qq
97+
DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends "$@"
9298
elif [ "${PACKAGE_MANAGER}" = "apk" ]; then
9399
apk add --no-cache "$@"
94100
else
@@ -101,6 +107,8 @@ function manylinux_pkg_remove {
101107
yum erase -y "$@"
102108
elif [ "${PACKAGE_MANAGER}" = "dnf" ];then
103109
dnf erase -y "$@"
110+
elif [ "${PACKAGE_MANAGER}" = "apt" ];then
111+
DEBIAN_FRONTEND=noninteractive apt-get remove -y "$@"
104112
elif [ "${PACKAGE_MANAGER}" = "apk" ]; then
105113
apk del "$@"
106114
else
@@ -115,6 +123,9 @@ function manylinux_pkg_clean {
115123
elif [ "${PACKAGE_MANAGER}" = "dnf" ]; then
116124
dnf clean all
117125
rm -rf /var/cache/dnf
126+
elif [ "${PACKAGE_MANAGER}" = "apt" ]; then
127+
DEBIAN_FRONTEND=noninteractive apt-get clean -qq
128+
rm -rf /var/lib/apt/lists/*
118129
elif [ "${PACKAGE_MANAGER}" = "apk" ]; then
119130
:
120131
else

docker/build_scripts/install-build-packages.sh

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ if [ "${OS_ID_LIKE}" = "rhel" ]; then
2323
else
2424
COMPILE_DEPS+=(libidn2-devel tk-devel)
2525
fi
26+
elif [ "${OS_ID_LIKE}" == "debian" ]; then
27+
COMPILE_DEPS=(libbz2-dev libncurses-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-headers-generic)
2628
elif [ "${OS_ID_LIKE}" == "alpine" ]; then
2729
COMPILE_DEPS=(bzip2-dev ncurses-dev readline-dev tk-dev gdbm-dev libpcap-dev xz-dev openssl openssl-dev keyutils-dev krb5-dev libcom_err libidn-dev curl-dev util-linux-dev libffi-dev linux-headers)
2830
else

docker/build_scripts/install-runtime-packages.sh

+12
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ source "${MY_DIR}/build_utils.sh"
3535
# MANYLINUX_DEPS: Install development packages (except for libgcc which is provided by gcc install)
3636
if [ "${OS_ID_LIKE}" == "rhel" ]; then
3737
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)
38+
elif [ "${OS_ID_LIKE}" == "debian" ]; then
39+
MANYLINUX_DEPS=(libc6-dev libglib2.0-dev libx11-dev libxext-dev libxrender-dev libgl1-mesa-dev libice-dev libsm-dev zlib1g-dev libexpat1-dev libssl-dev)
3840
elif [ "${OS_ID_LIKE}" == "alpine" ]; then
3941
MANYLINUX_DEPS=(musl-dev libstdc++ glib-dev libx11-dev libxext-dev libxrender-dev mesa-dev libice-dev libsm-dev zlib-dev expat-dev)
4042
else
@@ -54,6 +56,13 @@ if [ "${OS_ID_LIKE}" == "rhel" ]; then
5456
# for graalpy
5557
RUNTIME_DEPS+=(libxcrypt-compat)
5658
fi
59+
elif [ "${OS_ID_LIKE}" == "debian" ]; then
60+
RUNTIME_DEPS=(zlib1g libbz2-1.0 libexpat1 libncurses6 libreadline8 tk libgdbm6 libdb5.3 libpcap0.8 liblzma5 libkeyutils1 libkrb5-3 libcom-err2 libidn2-0 libcurl4 uuid)
61+
if [ "${AUDITWHEEL_POLICY}" == "manylinux_2_31" ]; then
62+
RUNTIME_DEPS+=(libffi7 libssl1.1)
63+
else
64+
RUNTIME_DEPS+=(libffi8 libssl3)
65+
fi
5766
elif [ "${OS_ID_LIKE}" == "alpine" ]; then
5867
RUNTIME_DEPS=(zlib bzip2 expat ncurses-libs readline tk gdbm db xz openssl keyutils-libs krb5-libs libcom_err libidn2 libcurl libuuid libffi)
5968
else
@@ -120,6 +129,9 @@ elif [ "${OS_ID_LIKE}" == "rhel" ]; then
120129
if [ "${AUDITWHEEL_ARCH}" == "x86_64" ]; then
121130
TOOLCHAIN_DEPS+=(yasm)
122131
fi
132+
elif [ "${OS_ID_LIKE}" == "debian" ]; then
133+
TOOLCHAIN_DEPS+=(binutils gcc g++ gfortran)
134+
BASE_TOOLS+=(gpg gpg-agent hardlink hostname locales xz-utils)
123135
elif [ "${OS_ID_LIKE}" == "alpine" ]; then
124136
TOOLCHAIN_DEPS=(binutils gcc g++ gfortran)
125137
BASE_TOOLS+=(gnupg util-linux shadow tar)

docker/build_scripts/update-system-packages.sh

+14-7
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ if [ "${PACKAGE_MANAGER}" == "yum" ]; then
2121
fi
2222
elif [ "${PACKAGE_MANAGER}" == "dnf" ]; then
2323
dnf -y upgrade
24+
elif [ "${PACKAGE_MANAGER}" == "apt" ]; then
25+
DEBIAN_FRONTEND=noninteractive apt-get update -qq
26+
DEBIAN_FRONTEND=noninteractive apt-get upgrade -qq -y
2427
elif [ "${PACKAGE_MANAGER}" == "apk" ]; then
2528
apk upgrade --no-cache
2629
else
@@ -31,20 +34,24 @@ manylinux_pkg_clean
3134
fixup-mirrors
3235

3336
# do we want to update locales ?
34-
if [ "${OS_ID_LIKE}" == "rhel" ]; then
37+
if [ "${OS_ID_LIKE}" == "rhel" ] || [ "${OS_ID_LIKE}" == "debian" ]; then
3538
LOCALE_ARCHIVE=/usr/lib/locale/locale-archive
3639
TIMESTAMP_FILE=${LOCALE_ARCHIVE}.ml.timestamp
3740
if [ ! -f "${TIMESTAMP_FILE}" ] || [ "${LOCALE_ARCHIVE}" -nt "${TIMESTAMP_FILE}" ]; then
3841
# upgrading glibc-common can end with removal on en_US.UTF-8 locale
3942
localedef -i en_US -f UTF-8 en_US.UTF-8
4043

4144
# if we updated glibc, we need to strip locales again...
42-
if localedef --list-archive | grep -sq -v -i ^en_US.utf8; then
43-
localedef --list-archive | grep -v -i ^en_US.utf8 | xargs localedef --delete-from-archive
44-
fi
45-
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
46-
mv -f "${LOCALE_ARCHIVE}" "${LOCALE_ARCHIVE}.tmpl"
47-
build-locale-archive --install-langs="en_US.utf8"
45+
if [ "${OS_ID_LIKE}" == "rhel" ]; then
46+
if localedef --list-archive | grep -sq -v -i ^en_US.utf8; then
47+
localedef --list-archive | grep -v -i ^en_US.utf8 | xargs localedef --delete-from-archive
48+
fi
49+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
50+
mv -f "${LOCALE_ARCHIVE}" "${LOCALE_ARCHIVE}.tmpl"
51+
build-locale-archive --install-langs="en_US.utf8"
52+
fi
53+
elif [ "${OS_ID_LIKE}" == "debian" ]; then
54+
update-locale LANG=en_US.UTF-8
4855
fi
4956
touch ${TIMESTAMP_FILE}
5057
fi

0 commit comments

Comments
 (0)