From b0811311ff1fe37acfd7d2b2a3db53469577874a Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 2 Jul 2026 15:43:20 +0200 Subject: [PATCH 1/2] Build Linux aarch64 wheels (#74) --- .github/workflows/wheels.yml | 72 +++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 975e5162..fb9b25b8 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -78,6 +78,71 @@ jobs: UDA_REF: "2.9.3" FMT_REF: "11.1.4" + - os: ubuntu-24.04-arm + triplet: arm64-linux + python: 310 + cibw_platform: linux + cibw_archs: aarch64 + platform_id: manylinux_aarch64 + manylinux_image: quay.io/pypa/manylinux_2_28_aarch64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=ON + UDA_REF: "2.9.3" + FMT_REF: "11.1.4" + + - os: ubuntu-24.04-arm + triplet: arm64-linux + python: 311 + cibw_platform: linux + cibw_archs: aarch64 + platform_id: manylinux_aarch64 + manylinux_image: quay.io/pypa/manylinux_2_28_aarch64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=ON + UDA_REF: "2.9.3" + FMT_REF: "11.1.4" + + - os: ubuntu-24.04-arm + triplet: arm64-linux + python: 312 + cibw_platform: linux + cibw_archs: aarch64 + platform_id: manylinux_aarch64 + manylinux_image: quay.io/pypa/manylinux_2_28_aarch64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=ON + UDA_REF: "2.9.3" + FMT_REF: "11.1.4" + + - os: ubuntu-24.04-arm + triplet: arm64-linux + python: 313 + cibw_platform: linux + cibw_archs: aarch64 + platform_id: manylinux_aarch64 + manylinux_image: quay.io/pypa/manylinux_2_28_aarch64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=ON + UDA_REF: "2.9.3" + FMT_REF: "11.1.4" + + - os: ubuntu-24.04-arm + triplet: arm64-linux + python: 314 + cibw_platform: linux + cibw_archs: aarch64 + platform_id: manylinux_aarch64 + manylinux_image: quay.io/pypa/manylinux_2_28_aarch64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=ON + UDA_REF: "2.9.3" + FMT_REF: "11.1.4" + - os: macos-14 triplet: arm64-osx python: 310 @@ -288,14 +353,17 @@ jobs: CIBW_PLATFORM: ${{ matrix.cibw_platform }} CIBW_ARCHS: ${{ matrix.cibw_archs }} CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux_image }} + CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.manylinux_image }} CIBW_SKIP: "cp31?t-*" # Skip free-threading builds (not supported yet) # Install system libraries # NOTE: manylinux_2_28 is AlmaLinux 8 based, e.g. use yum/dnf + # NOTE: MDSplus RPMs are only distributed for x86_64, skip on other + # architectures (the MDSplus backend is OFF for wheel builds anyway) CIBW_BEFORE_ALL_LINUX: > dnf update -y >&2; dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm >&2; - dnf install -y http://www.mdsplus.org/dist/rhel8/stable/RPMS/noarch/mdsplus-repo-7.142-81.el8.noarch.rpm >&2; + if [ "$(uname -m)" = "x86_64" ]; then dnf install -y http://www.mdsplus.org/dist/rhel8/stable/RPMS/noarch/mdsplus-repo-7.142-81.el8.noarch.rpm >&2; fi; dnf -y install openssl-devel >&2; dnf -y install ninja-build >&2; dnf -y install boost1.78-devel >&2; @@ -304,7 +372,7 @@ jobs: dnf -y install spdlog spdlog-devel libxml2-devel libtirpc-devel >&2; dnf -y install libxslt >&2; dnf -y install hdf5-devel >&2; - dnf -y install mdsplus mdsplus-java mdsplus-java_bin mdsplus-devel >&2; + if [ "$(uname -m)" = "x86_64" ]; then dnf -y install mdsplus mdsplus-java mdsplus-java_bin mdsplus-devel >&2; fi; curl -LO https://github.com/ukaea/UDA/archive/refs/tags/${{matrix.UDA_REF}}.tar.gz >&2; tar zxf ${{matrix.UDA_REF}}.tar.gz >&2; cd UDA-${{matrix.UDA_REF}} >&2; From 7faabae9b7197b622c522282ea0178dae76ec387 Mon Sep 17 00:00:00 2001 From: Simon Pinches Date: Thu, 2 Jul 2026 17:14:14 +0200 Subject: [PATCH 2/2] Drop installation of unused packages when building wheels --- .github/workflows/wheels.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index fb9b25b8..c64d447c 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -363,7 +363,6 @@ jobs: CIBW_BEFORE_ALL_LINUX: > dnf update -y >&2; dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm >&2; - if [ "$(uname -m)" = "x86_64" ]; then dnf install -y http://www.mdsplus.org/dist/rhel8/stable/RPMS/noarch/mdsplus-repo-7.142-81.el8.noarch.rpm >&2; fi; dnf -y install openssl-devel >&2; dnf -y install ninja-build >&2; dnf -y install boost1.78-devel >&2; @@ -372,7 +371,6 @@ jobs: dnf -y install spdlog spdlog-devel libxml2-devel libtirpc-devel >&2; dnf -y install libxslt >&2; dnf -y install hdf5-devel >&2; - if [ "$(uname -m)" = "x86_64" ]; then dnf -y install mdsplus mdsplus-java mdsplus-java_bin mdsplus-devel >&2; fi; curl -LO https://github.com/ukaea/UDA/archive/refs/tags/${{matrix.UDA_REF}}.tar.gz >&2; tar zxf ${{matrix.UDA_REF}}.tar.gz >&2; cd UDA-${{matrix.UDA_REF}} >&2;