From 8096f8f35636e7f3abe9ec4af247cb93eac0da25 Mon Sep 17 00:00:00 2001 From: mayeut Date: Thu, 29 Dec 2022 15:50:44 +0100 Subject: [PATCH] Drop manylinux_2_24 support --- .github/workflows/build.yml | 2 +- .travis.yml | 8 -------- README.rst | 7 ++++--- build.sh | 5 ----- docker/Dockerfile | 10 +++++----- docker/build_scripts/build-git.sh | 2 +- docker/build_scripts/build-openssl.sh | 4 +--- docker/build_scripts/build-tcltk.sh | 2 +- docker/build_scripts/install-build-packages.sh | 15 ++------------- .../build_scripts/install-runtime-packages.sh | 15 --------------- docker/build_scripts/update-system-packages.sh | 17 ----------------- tests/run_tests.sh | 6 ------ 12 files changed, 15 insertions(+), 78 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4b12ebe0..917d9639 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,7 @@ jobs: strategy: fail-fast: false matrix: - policy: ["manylinux2014", "manylinux_2_24", "musllinux_1_1"] + policy: ["manylinux2014", "musllinux_1_1"] platform: ["i686", "x86_64"] include: - policy: "manylinux_2_28" diff --git a/.travis.yml b/.travis.yml index 3489faa3..c7aa270b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,14 +30,6 @@ jobs: env: POLICY="manylinux2014" PLATFORM="s390x" - arch: ppc64le env: POLICY="manylinux2014" PLATFORM="ppc64le" - - arch: arm64-graviton2 - virt: vm - group: edge - env: POLICY="manylinux_2_24" PLATFORM="aarch64" - - arch: s390x - env: POLICY="manylinux_2_24" PLATFORM="s390x" - - arch: ppc64le - env: POLICY="manylinux_2_24" PLATFORM="ppc64le" - arch: arm64-graviton2 virt: vm group: edge diff --git a/README.rst b/README.rst index 3e3fa16f..43d90b74 100644 --- a/README.rst +++ b/README.rst @@ -122,11 +122,12 @@ Toolchain: GCC 10 - s390x image: ``quay.io/pypa/manylinux2014_s390x`` -manylinux_2_24 (Debian 9 based) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +manylinux_2_24 (Debian 9 based) - EOL +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Support for ``manylinux_2_24`` has `ended on January 1st, 2023 `_. These images have some caveats mentioned in different issues. -Deprecation for these images is `being discussed `_. Toolchain: GCC 6 diff --git a/build.sh b/build.sh index 9234d458..054b5a05 100755 --- a/build.sh +++ b/build.sh @@ -41,11 +41,6 @@ if [ "${POLICY}" == "manylinux2014" ]; then else 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" fi -elif [ "${POLICY}" == "manylinux_2_24" ]; then - BASEIMAGE="${MULTIARCH_PREFIX}debian:9" - DEVTOOLSET_ROOTPATH= - PREPEND_PATH= - LD_LIBRARY_PATH_ARG= elif [ "${POLICY}" == "manylinux_2_28" ]; then BASEIMAGE="${MULTIARCH_PREFIX}almalinux:8" DEVTOOLSET_ROOTPATH="/opt/rh/gcc-toolset-12/root" diff --git a/docker/Dockerfile b/docker/Dockerfile index 693ed64e..d727a80b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,10 +1,10 @@ # default to latest supported policy, x86_64 -ARG BASEIMAGE=amd64/debian:9 -ARG POLICY=manylinux_2_24 +ARG BASEIMAGE=amd64/almalinux:8 +ARG POLICY=manylinux_2_28 ARG PLATFORM=x86_64 -ARG DEVTOOLSET_ROOTPATH= -ARG LD_LIBRARY_PATH_ARG= -ARG PREPEND_PATH= +ARG DEVTOOLSET_ROOTPATH=/opt/rh/gcc-toolset-12/root +ARG LD_LIBRARY_PATH_ARG=${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst +ARG PREPEND_PATH=${DEVTOOLSET_ROOTPATH}/usr/bin: FROM $BASEIMAGE AS runtime_base ARG POLICY diff --git a/docker/build_scripts/build-git.sh b/docker/build_scripts/build-git.sh index a99f55a9..9c0b02d2 100755 --- a/docker/build_scripts/build-git.sh +++ b/docker/build_scripts/build-git.sh @@ -14,7 +14,7 @@ if [ "${AUDITWHEEL_POLICY}" == "musllinux_1_1" ]; then export NO_REGEX=NeedsStartEnd fi -if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then +if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then export NO_UNCOMPRESS2=1 fi diff --git a/docker/build_scripts/build-openssl.sh b/docker/build_scripts/build-openssl.sh index b93e209a..668deb68 100755 --- a/docker/build_scripts/build-openssl.sh +++ b/docker/build_scripts/build-openssl.sh @@ -31,10 +31,8 @@ fi if which yum; then yum erase -y openssl-devel -elif which apk; then - apk del openssl-dev else - apt-get remove -y libssl-dev + apk del openssl-dev fi fetch_source ${OPENSSL_ROOT}.tar.gz ${OPENSSL_DOWNLOAD_URL} diff --git a/docker/build_scripts/build-tcltk.sh b/docker/build_scripts/build-tcltk.sh index cecefe08..ee8c52ab 100755 --- a/docker/build_scripts/build-tcltk.sh +++ b/docker/build_scripts/build-tcltk.sh @@ -21,7 +21,7 @@ check_var ${TK_HASH} if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] ; then yum erase -y tcl tk else - exit 0 + exit 0 fi fetch_source ${TCL_ROOT}-src.tar.gz ${TCL_DOWNLOAD_URL} diff --git a/docker/build_scripts/install-build-packages.sh b/docker/build_scripts/install-build-packages.sh index 344eaac3..408bc332 100755 --- a/docker/build_scripts/install-build-packages.sh +++ b/docker/build_scripts/install-build-packages.sh @@ -9,18 +9,13 @@ set -exuo pipefail # make sure the corresponding library is added to RUNTIME_DEPS if applicable if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then + COMPILE_DEPS="bzip2-devel ncurses-devel readline-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" if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then PACKAGE_MANAGER=yum else PACKAGE_MANAGER=dnf + COMPILE_DEPS="${COMPILE_DEPS} tk-devel" fi - COMPILE_DEPS="bzip2-devel ncurses-devel readline-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" - if [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then - COMPILE_DEPS="${COMPILE_DEPS} tk-devel" - fi -elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then - PACKAGE_MANAGER=apt - 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" elif [ "${AUDITWHEEL_POLICY}" == "musllinux_1_1" ]; then PACKAGE_MANAGER=apk 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" @@ -34,12 +29,6 @@ if [ "${PACKAGE_MANAGER}" == "yum" ]; then yum -y install ${COMPILE_DEPS} yum clean all rm -rf /var/cache/yum -elif [ "${PACKAGE_MANAGER}" == "apt" ]; then - export DEBIAN_FRONTEND=noninteractive - apt-get update -qq - apt-get install -qq -y --no-install-recommends ${COMPILE_DEPS} - apt-get clean -qq - rm -rf /var/lib/apt/lists/* elif [ "${PACKAGE_MANAGER}" == "apk" ]; then apk add --no-cache ${COMPILE_DEPS} elif [ "${PACKAGE_MANAGER}" == "dnf" ]; then diff --git a/docker/build_scripts/install-runtime-packages.sh b/docker/build_scripts/install-runtime-packages.sh index fac26640..61bd137a 100755 --- a/docker/build_scripts/install-runtime-packages.sh +++ b/docker/build_scripts/install-runtime-packages.sh @@ -34,8 +34,6 @@ source $MY_DIR/build_utils.sh # MANYLINUX_DEPS: Install development packages (except for libgcc which is provided by gcc install) if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then 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" -elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then - 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" elif [ "${AUDITWHEEL_POLICY}" == "musllinux_1_1" ]; then MANYLINUX_DEPS="musl-dev libstdc++ glib-dev libx11-dev libxext-dev libxrender-dev mesa-dev libice-dev libsm-dev zlib-dev expat-dev" else @@ -49,8 +47,6 @@ if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == if [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then RUNTIME_DEPS="${RUNTIME_DEPS} tk" fi -elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then - 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" elif [ "${AUDITWHEEL_POLICY}" == "musllinux_1_1" ]; then RUNTIME_DEPS="zlib bzip2 expat ncurses5-libs readline tk gdbm db xz openssl keyutils-libs krb5-libs libcom_err libidn2 libcurl libuuid libffi" else @@ -88,15 +84,6 @@ if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then # Install mayeut/devtoolset-10 repo to get devtoolset-10 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 fi -elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then - PACKAGE_MANAGER=apt - BASETOOLS="${BASETOOLS} hardlink hostname" - export DEBIAN_FRONTEND=noninteractive - sed -i 's/none/en_US/g' /etc/apt/apt.conf.d/docker-no-languages - apt-get update -qq - apt-get upgrade -qq -y - apt-get install -qq -y --no-install-recommends ca-certificates gpg curl locales - TOOLCHAIN_DEPS="binutils gcc g++ gfortran" elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then PACKAGE_MANAGER=dnf BASETOOLS="${BASETOOLS} curl glibc-locale-source glibc-langpack-en hardlink hostname libcurl libnsl libxcrypt which" @@ -125,8 +112,6 @@ fi if [ "${PACKAGE_MANAGER}" == "yum" ]; then yum -y install ${BASETOOLS} ${TOOLCHAIN_DEPS} ${MANYLINUX_DEPS} ${RUNTIME_DEPS} -elif [ "${PACKAGE_MANAGER}" == "apt" ]; then - apt-get install -qq -y --no-install-recommends ${BASETOOLS} ${TOOLCHAIN_DEPS} ${MANYLINUX_DEPS} ${RUNTIME_DEPS} elif [ "${PACKAGE_MANAGER}" == "apk" ]; then apk add --no-cache ${BASETOOLS} ${TOOLCHAIN_DEPS} ${MANYLINUX_DEPS} ${RUNTIME_DEPS} elif [ "${PACKAGE_MANAGER}" == "dnf" ]; then diff --git a/docker/build_scripts/update-system-packages.sh b/docker/build_scripts/update-system-packages.sh index d70adf10..c56c0b01 100755 --- a/docker/build_scripts/update-system-packages.sh +++ b/docker/build_scripts/update-system-packages.sh @@ -20,19 +20,6 @@ if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then fi yum clean all rm -rf /var/cache/yum -elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then - export DEBIAN_FRONTEND=noninteractive - apt-get update -qq - apt-get upgrade -qq -y - apt-get clean -qq - rm -rf /var/lib/apt/lists/* - if [ "${AUDITWHEEL_ARCH}" == "s390x" ] || [ "${AUDITWHEEL_ARCH}" == "ppc64le" ]; then - # those arch are missing some updates - # we need to manually delete some certificates... - sed -i '/DST_Root_CA_X3.crt$/d' /etc/ca-certificates.conf - find /etc/ssl/certs -name 'DST_Root_CA_X3.pem' -delete - update-ca-certificates - fi elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then dnf -y upgrade dnf clean all @@ -60,10 +47,6 @@ if [ "${BASE_POLICY}" == "manylinux" ]; then if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then mv -f ${LOCALE_ARCHIVE} ${LOCALE_ARCHIVE}.tmpl build-locale-archive --install-langs="en_US.utf8" - elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then - rm ${LOCALE_ARCHIVE} - localedef -i en_US -f UTF-8 en_US.UTF-8 - update-locale LANG=en_US.UTF-8 fi touch ${TIMESTAMP_FILE} fi diff --git a/tests/run_tests.sh b/tests/run_tests.sh index 28e44cc4..01b1c800 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -8,10 +8,6 @@ MY_DIR=$(dirname "${BASH_SOURCE[0]}") if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then PACKAGE_MANAGER=yum -elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then - export DEBIAN_FRONTEND=noninteractive - PACKAGE_MANAGER=apt - apt-get update -qq elif [ "${AUDITWHEEL_POLICY}" == "musllinux_1_1" ]; then PACKAGE_MANAGER=apk elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then @@ -63,8 +59,6 @@ nox --version # c.f. https://github.com/pypa/manylinux/issues/1022 if [ "${PACKAGE_MANAGER}" == "yum" ]; then yum -y install openssh-clients -elif [ "${PACKAGE_MANAGER}" == "apt" ]; then - apt-get install -qq -y --no-install-recommends openssh-client elif [ "${PACKAGE_MANAGER}" == "apk" ]; then apk add --no-cache openssh-client elif [ "${PACKAGE_MANAGER}" == "dnf" ]; then