Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: manylinux_2_34 based on AlmaLinux 9 #1575

Closed
wants to merge 39 commits into from
Closed
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
27ed896
feat: manylinux_2_34 based on AlmaLinux 9
Feb 14, 2024
8e46ddd
fix: PowerTools repo is called CRB in AlmaLinux 9
Feb 20, 2024
cf32755
lint: line indent
Feb 20, 2024
88eea20
Merge branch 'main' into pr/1575
mayeut Mar 16, 2024
b0bc4be
fix build
mayeut Mar 16, 2024
f55bf3a
feat: use gcc 13
mayeut Mar 16, 2024
5c9c1dd
fix: reduce hardlink verbosity
mayeut Mar 17, 2024
faf6aea
Merge branch 'main' into main
mayeut Mar 18, 2024
c7abce2
Merge branch 'main' into main
mayeut Mar 27, 2024
1e6fb72
Merge branch 'main' into main
mayeut Apr 14, 2024
08e1b3c
Merge branch 'main' into main
mayeut May 7, 2024
1832486
Merge branch 'main' into pr/1575
mayeut May 9, 2024
038dd11
Merge remote-tracking branch 'upstream/main' into pr/1575
mayeut May 9, 2024
c39b602
Merge branch 'main' into pr/1575
mayeut May 10, 2024
0842107
Merge branch 'main' into pr/1575
mayeut May 13, 2024
5394c97
Merge branch 'main' into main
mayeut Jun 9, 2024
6410ea6
Merge branch 'main' into main
mayeut Jun 9, 2024
5156b02
Merge branch 'main' into pr/1575
mayeut Jun 23, 2024
8a8c32a
install missing graalpy runtime dependency
mayeut Jun 23, 2024
3f76a7b
feat: make sqlite an implementation detail in manylinux_2_34
mayeut Jun 25, 2024
eba51a1
fix
mayeut Jun 25, 2024
5f7f584
fix
mayeut Jun 25, 2024
a25fb4c
Merge branch 'main' into pr/1575
mayeut Jun 29, 2024
b9d515c
Update README.rst
mayeut Jun 29, 2024
fc6105c
Merge branch 'main' into pr/1575
mayeut Jul 2, 2024
12ed09f
Merge branch 'main' into pr/1575
mayeut Aug 3, 2024
65807e0
Merge branch 'main' into pr/1575
mayeut Aug 31, 2024
724c946
Merge branch 'main' into pr/1575
mayeut Sep 6, 2024
37f47d8
Merge branch 'main' into pr/1575
mayeut Sep 7, 2024
dc43475
Merge branch 'main' into pr/1575
mayeut Sep 8, 2024
3fe30db
chore: simplify update-system-packages.sh
mayeut Sep 8, 2024
c8d4a34
chore: future proof build-sqlite3.sh
mayeut Sep 8, 2024
00c4d61
Merge branch 'main' into pr/1575
mayeut Sep 9, 2024
e199d3b
Merge branch 'main' into pr/1575
mayeut Sep 22, 2024
3bd48ee
Merge branch 'main' into pr/1575
mayeut Sep 22, 2024
d2abf66
Merge branch 'main' into pr/1575
mayeut Oct 2, 2024
924788c
Merge branch 'main' into pr/1575
mayeut Oct 19, 2024
b34be63
Merge branch 'main' into pr/1575
mayeut Oct 19, 2024
677f7be
Merge branch 'main' into pr/1575
mayeut Oct 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ jobs:
include:
- policy: "manylinux_2_28"
platform: "x86_64"
- policy: "manylinux_2_34"
platform: "x86_64"

env:
POLICY: ${{ matrix.policy }}
Expand Down
8 changes: 8 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,14 @@ jobs:
env: POLICY="manylinux_2_28" PLATFORM="s390x"
- arch: ppc64le
env: POLICY="manylinux_2_28" PLATFORM="ppc64le"
- arch: arm64-graviton2
virt: vm
group: edge
env: POLICY="manylinux_2_34" PLATFORM="aarch64"
- arch: s390x
env: POLICY="manylinux_2_34" PLATFORM="s390x"
- arch: ppc64le
env: POLICY="manylinux_2_34" PLATFORM="ppc64le"
- arch: arm64-graviton2
virt: vm
group: edge
Expand Down
12 changes: 12 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ The manylinux project supports:

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

- ``manylinux_2_34`` images for ``x86_64``, ``aarch64``, ``ppc64le`` and ``s390x``.


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

manylinux_2_34 (AlmaLinux 9 based)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Toolchain: GCC 12

- x86_64 image: ``quay.io/pypa/manylinux_2_34_x86_64``
- aarch64 image: ``quay.io/pypa/manylinux_2_34_aarch64``
- ppc64le image: ``quay.io/pypa/manylinux_2_34_ppc64le``
- s390x image: ``quay.io/pypa/manylinux_2_34_s390x``


manylinux_2_28 (AlmaLinux 8 based)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
5 changes: 5 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ 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_34" ]; then
BASEIMAGE="${MULTIARCH_PREFIX}almalinux:9"
DEVTOOLSET_ROOTPATH="/opt/rh/gcc-toolset-12/root"
PREPEND_PATH="${DEVTOOLSET_ROOTPATH}/usr/bin:"
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst"
elif [ "${POLICY}" == "manylinux_2_28" ]; then
BASEIMAGE="${MULTIARCH_PREFIX}almalinux:8"
DEVTOOLSET_ROOTPATH="/opt/rh/gcc-toolset-12/root"
Expand Down
4 changes: 2 additions & 2 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# default to latest supported policy, x86_64
ARG BASEIMAGE=amd64/almalinux:8
ARG POLICY=manylinux_2_28
ARG BASEIMAGE=amd64/almalinux:9
mayeut marked this conversation as resolved.
Show resolved Hide resolved
ARG POLICY=manylinux_2_34
ARG PLATFORM=x86_64
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
Expand Down
11 changes: 7 additions & 4 deletions docker/build_scripts/install-build-packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,16 @@ source $MY_DIR/build_utils.sh
# make sure the corresponding library is added to RUNTIME_DEPS if applicable

if [ "${BASE_POLICY}" == "manylinux" ]; 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 perl-IPC-Cmd"
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 curl-devel uuid-devel libffi-devel kernel-headers libdb-devel perl-IPC-Cmd"
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
PACKAGE_MANAGER=yum
COMPILE_DEPS="${COMPILE_DEPS} libXft-devel"
COMPILE_DEPS="${COMPILE_DEPS} libidn-devel libXft-devel"
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
PACKAGE_MANAGER=dnf
COMPILE_DEPS="${COMPILE_DEPS} libidn-devel tk-devel"
else
PACKAGE_MANAGER=dnf
COMPILE_DEPS="${COMPILE_DEPS} tk-devel"
COMPILE_DEPS="${COMPILE_DEPS} libidn2-devel tk-devel"
fi
elif [ "${BASE_POLICY}" == "musllinux" ]; then
PACKAGE_MANAGER=apk
Expand All @@ -40,7 +43,7 @@ elif [ "${PACKAGE_MANAGER}" == "apk" ]; then
elif [ "${PACKAGE_MANAGER}" == "dnf" ]; then
dnf -y install --allowerasing ${COMPILE_DEPS}
dnf clean all
rm -rf /var/cache/yum
rm -rf /var/cache/dnf
else
echo "Not implemented"
exit 1
Expand Down
7 changes: 2 additions & 5 deletions docker/build_scripts/install-libxcrypt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,8 @@ MY_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $MY_DIR/build_utils.sh

if [ "$BASE_POLICY" == "musllinux" ]; then
echo "Skip libxcrypt installation on musllinux"
exit 0
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
echo "Skip libxcrypt installation on manylinux_2_28"
if [ "${AUDITWHEEL_POLICY}" != "manylinux2014" ]; then
echo "Skip libxcrypt installation on ${AUDITWHEEL_POLICY}"
exit 0
fi

Expand Down
22 changes: 14 additions & 8 deletions docker/build_scripts/install-runtime-packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ 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
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; 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"
mayeut marked this conversation as resolved.
Show resolved Hide resolved
elif [ "${BASE_POLICY}" == "musllinux" ]; then
MANYLINUX_DEPS="musl-dev libstdc++ glib-dev libx11-dev libxext-dev libxrender-dev mesa-dev libice-dev libsm-dev zlib-dev expat-dev"
Expand All @@ -42,12 +42,14 @@ else
fi

# RUNTIME_DEPS: Runtime dependencies. c.f. install-build-packages.sh
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
RUNTIME_DEPS="zlib bzip2 expat ncurses readline gdbm libpcap xz openssl keyutils-libs libkadm5 libcom_err libidn libcurl uuid libffi libdb"
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; then
RUNTIME_DEPS="zlib bzip2 expat ncurses readline gdbm libpcap xz openssl keyutils-libs libkadm5 libcom_err libcurl uuid libffi libdb"
if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
RUNTIME_DEPS="${RUNTIME_DEPS} libXft"
RUNTIME_DEPS="${RUNTIME_DEPS} libXft libidn"
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
RUNTIME_DEPS="${RUNTIME_DEPS} tk"
RUNTIME_DEPS="${RUNTIME_DEPS} libidn tk"
else
RUNTIME_DEPS="${RUNTIME_DEPS} libidn2 tk"
fi
elif [ "${BASE_POLICY}" == "musllinux" ]; then
RUNTIME_DEPS="zlib bzip2 expat ncurses-libs readline tk gdbm db xz openssl keyutils-libs krb5-libs libcom_err libidn2 libcurl libuuid libffi"
Expand Down Expand Up @@ -86,7 +88,7 @@ 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_28" ]; then
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; then
PACKAGE_MANAGER=dnf
BASETOOLS="${BASETOOLS} curl glibc-locale-source glibc-langpack-en hardlink hostname libcurl libnsl libxcrypt which"
# See https://unix.stackexchange.com/questions/41784/can-yum-express-a-preference-for-x86-64-over-i386-packages
Expand All @@ -96,8 +98,12 @@ elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
# Make sure that locale will not be removed
sed -i '/^override_install_langs=/d' /etc/yum.conf
dnf -y upgrade
dnf -y install dnf-plugins-core
dnf config-manager --set-enabled powertools # for yasm
dnf -y install dnf-plugins-core epel-release # for yasm
if [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
dnf config-manager --set-enabled powertools
else
dnf config-manager --set-enabled crb
fi
mayeut marked this conversation as resolved.
Show resolved Hide resolved
TOOLCHAIN_DEPS="gcc-toolset-12-binutils gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-gcc-gfortran"
if [ "${AUDITWHEEL_ARCH}" == "x86_64" ]; then
TOOLCHAIN_DEPS="${TOOLCHAIN_DEPS} yasm"
Expand Down
4 changes: 2 additions & 2 deletions docker/build_scripts/update-system-packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
fi
yum clean all
rm -rf /var/cache/yum
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; then
dnf -y upgrade
dnf clean all
rm -rf /var/cache/yum
rm -rf /var/cache/dnf
elif [ "${BASE_POLICY}" == "musllinux" ]; then
apk upgrade --no-cache
else
Expand Down
2 changes: 1 addition & 1 deletion tests/run_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ if [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
PACKAGE_MANAGER=yum
elif [ "${AUDITWHEEL_POLICY:0:10}" == "musllinux_" ]; then
PACKAGE_MANAGER=apk
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ]; then
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_28" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux_2_34" ]; then
PACKAGE_MANAGER=dnf
else
echo "Unsupported policy: '${AUDITWHEEL_POLICY}'"
Expand Down
Loading