Skip to content

Commit 6514b95

Browse files
committed
feat: add manylinux_2_31_armv7l image
This reverts commit e09f5845680c23699efbb240d8e466efe2de11ed.
1 parent d88418f commit 6514b95

9 files changed

+54
-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
@@ -44,6 +44,11 @@ elif [ "${POLICY}" == "manylinux_2_28" ]; then
4444
DEVTOOLSET_ROOTPATH="/opt/rh/gcc-toolset-13/root"
4545
PREPEND_PATH="${DEVTOOLSET_ROOTPATH}/usr/bin:"
4646
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst"
47+
elif [ "${POLICY}" == "manylinux_2_31" ]; then
48+
BASEIMAGE="ubuntu:20.04"
49+
DEVTOOLSET_ROOTPATH=
50+
PREPEND_PATH=
51+
LD_LIBRARY_PATH_ARG=
4752
elif [ "${POLICY}" == "manylinux_2_34" ]; then
4853
BASEIMAGE="almalinux:9"
4954
DEVTOOLSET_ROOTPATH="/opt/rh/gcc-toolset-13/root"

docker/build_scripts/build-cpython.sh

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

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

docker/build_scripts/build-openssl.sh

+2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ fi
3131
3232
if [ "${OS_ID_LIKE}" = "rhel" ];then
3333
manylinux_pkg_remove openssl-devel
34+
elif [ "${OS_ID_LIKE}" = "debian" ];then
35+
manylinux_pkg_remove libssl-dev
3436
elif [ "${OS_ID_LIKE}" = "alpine" ]; then
3537
manylinux_pkg_remove openssl-dev
3638
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
@@ -28,6 +30,7 @@ fi
2830
OS_ID_LIKE=$(. /etc/os-release; echo "${ID} ${ID_LIKE:-}")
2931
case "${OS_ID_LIKE}" in
3032
*rhel*) OS_ID_LIKE=rhel;;
33+
*debian) OS_ID_LIKE=debian;;
3134
*alpine*) OS_ID_LIKE=alpine;;
3235
*) echo "unsupported image"; exit 1;;
3336
esac
@@ -88,6 +91,9 @@ function manylinux_pkg_install {
8891
yum -y install "$@"
8992
elif [ "${PACKAGE_MANAGER}" = "dnf" ]; then
9093
dnf -y install --allowerasing "$@"
94+
elif [ "${PACKAGE_MANAGER}" = "apt" ]; then
95+
DEBIAN_FRONTEND=noninteractive apt-get update -qq
96+
DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends "$@"
9197
elif [ "${PACKAGE_MANAGER}" = "apk" ]; then
9298
apk add --no-cache "$@"
9399
else
@@ -100,6 +106,8 @@ function manylinux_pkg_remove {
100106
yum erase -y "$@"
101107
elif [ "${PACKAGE_MANAGER}" = "dnf" ];then
102108
dnf erase -y "$@"
109+
elif [ "${PACKAGE_MANAGER}" = "apt" ];then
110+
DEBIAN_FRONTEND=noninteractive apt-get remove -y "$@"
103111
elif [ "${PACKAGE_MANAGER}" = "apk" ]; then
104112
apk del "$@"
105113
else
@@ -114,6 +122,9 @@ function manylinux_pkg_clean {
114122
elif [ "${PACKAGE_MANAGER}" = "dnf" ]; then
115123
dnf clean all
116124
rm -rf /var/cache/dnf
125+
elif [ "${PACKAGE_MANAGER}" = "apt" ]; then
126+
DEBIAN_FRONTEND=noninteractive apt-get clean -qq
127+
rm -rf /var/lib/apt/lists/*
117128
elif [ "${PACKAGE_MANAGER}" = "apk" ]; then
118129
:
119130
else

docker/build_scripts/finalize.sh

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ pipx upgrade-shared --pip-args="--no-index --find-links=/tmp/pinned-wheels"
8383
for TOOL_PATH in $(find ${MY_DIR}/requirements-tools -type f); do
8484
TOOL=$(basename ${TOOL_PATH})
8585
case ${AUDITWHEEL_PLAT}-${TOOL} in
86+
manylinux*_armv7l-swig|manylinux*_armv7l-cmake) apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y ${TOOL};;
8687
musllinux*_s390x-uv) continue;; # uv doesn't provide musl s390x wheels due to Rust issues
8788
*) pipx install --pip-args="--require-hashes -r ${TOOL_PATH} --only-binary" ${TOOL};;
8889
esac

docker/build_scripts/install-build-packages.sh

+2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ if [ "${OS_ID_LIKE}" = "rhel" ]; then
2222
else
2323
COMPILE_DEPS="${COMPILE_DEPS} libidn2-devel tk-devel"
2424
fi
25+
elif [ "${OS_ID_LIKE}" == "debian" ]; then
26+
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"
2527
elif [ "${OS_ID_LIKE}" == "alpine" ]; then
2628
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"
2729
else

docker/build_scripts/install-runtime-packages.sh

+12
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ source $MY_DIR/build_utils.sh
3434
# MANYLINUX_DEPS: Install development packages (except for libgcc which is provided by gcc install)
3535
if [ "${OS_ID_LIKE}" == "rhel" ]; 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"
37+
elif [ "${OS_ID_LIKE}" == "debian" ]; then
38+
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"
3739
elif [ "${OS_ID_LIKE}" == "alpine" ]; then
3840
MANYLINUX_DEPS="musl-dev libstdc++ glib-dev libx11-dev libxext-dev libxrender-dev mesa-dev libice-dev libsm-dev zlib-dev expat-dev"
3941
else
@@ -53,6 +55,13 @@ if [ "${OS_ID_LIKE}" == "rhel" ]; then
5355
# for graalpy
5456
RUNTIME_DEPS="${RUNTIME_DEPS} libxcrypt-compat"
5557
fi
58+
elif [ "${OS_ID_LIKE}" == "debian" ]; then
59+
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"
60+
if [ "${AUDITWHEEL_POLICY}" == "manylinux_2_31" ]; then
61+
RUNTIME_DEPS="${RUNTIME_DEPS} libffi7 libssl1.1"
62+
else
63+
RUNTIME_DEPS="${RUNTIME_DEPS} libffi8 libssl3"
64+
fi
5665
elif [ "${OS_ID_LIKE}" == "alpine" ]; then
5766
RUNTIME_DEPS="zlib bzip2 expat ncurses-libs readline tk gdbm db xz openssl keyutils-libs krb5-libs libcom_err libidn2 libcurl libuuid libffi"
5867
else
@@ -119,6 +128,9 @@ elif [ "${OS_ID_LIKE}" == "rhel" ]; then
119128
if [ "${AUDITWHEEL_ARCH}" == "x86_64" ]; then
120129
TOOLCHAIN_DEPS="${TOOLCHAIN_DEPS} yasm"
121130
fi
131+
elif [ "${OS_ID_LIKE}" == "debian" ]; then
132+
TOOLCHAIN_DEPS="binutils gcc g++ gfortran"
133+
BASETOOLS="${BASETOOLS} gpg gpg-agent hardlink hostname locales xz-utils"
122134
elif [ "${OS_ID_LIKE}" == "alpine" ]; then
123135
TOOLCHAIN_DEPS="binutils gcc g++ gfortran"
124136
BASETOOLS="${BASETOOLS} gnupg util-linux shadow tar"

docker/build_scripts/update-system-packages.sh

+14-7
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ if [ "${PACKAGE_MANAGER}" == "yum" ]; then
2020
fi
2121
elif [ "${PACKAGE_MANAGER}" == "dnf" ]; then
2222
dnf -y upgrade
23+
elif [ "${PACKAGE_MANAGER}" == "apt" ]; then
24+
DEBIAN_FRONTEND=noninteractive apt-get update -qq
25+
DEBIAN_FRONTEND=noninteractive apt-get upgrade -qq -y
2326
elif [ "${PACKAGE_MANAGER}" == "apk" ]; then
2427
apk upgrade --no-cache
2528
else
@@ -30,20 +33,24 @@ manylinux_pkg_clean
3033
fixup-mirrors
3134

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

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

0 commit comments

Comments
 (0)