From 8317812214514d42fdf593da09f5035d61c4ac40 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 10 Aug 2025 16:44:21 +1000 Subject: [PATCH 1/2] Add manylinux_2_28 ppc64le wheels --- .github/workflows/wheels.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index d217d9292..ac2875d29 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -93,6 +93,31 @@ jobs: os: ubuntu-24.04-arm cibw_arch: aarch64 build: "*manylinux*" + - name: "manylinux_2_28 3.10 ppc64le" + platform: linux + os: ubuntu-latest + cibw_arch: ppc64le + build: "*cp310-manylinux*" + - name: "manylinux_2_28 3.11 ppc64le" + platform: linux + os: ubuntu-latest + cibw_arch: ppc64le + build: "*cp311-manylinux*" + - name: "manylinux_2_28 3.12 ppc64le" + platform: linux + os: ubuntu-latest + cibw_arch: ppc64le + build: "*cp312-manylinux*" + - name: "manylinux_2_28 3.13 ppc64le" + platform: linux + os: ubuntu-latest + cibw_arch: ppc64le + build: "*cp313*-manylinux*" + - name: "manylinux_2_28 3.14 ppc64le" + platform: linux + os: ubuntu-latest + cibw_arch: ppc64le + build: "*cp314*-manylinux*" - name: "iOS arm64 device" platform: ios os: macos-latest @@ -115,6 +140,10 @@ jobs: with: python-version: "3.x" + - name: Set up QEMU + if: "matrix.cibw_arch == 'ppc64le'" + uses: docker/setup-qemu-action@v3 + - name: Install cibuildwheel run: | python3 -m pip install -r .ci/requirements-cibw.txt From 6fde8d5aacc4c051d415164212ea3fa7322e966e Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 10 Aug 2025 11:03:59 +1000 Subject: [PATCH 2/2] Skip several dependencies for ppc64le --- .github/workflows/wheels-dependencies.sh | 4 ++++ checks/check_wheel.py | 7 +++++++ pyproject.toml | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/.github/workflows/wheels-dependencies.sh b/.github/workflows/wheels-dependencies.sh index c79cd2f17..f250cda20 100755 --- a/.github/workflows/wheels-dependencies.sh +++ b/.github/workflows/wheels-dependencies.sh @@ -276,6 +276,10 @@ function build { build_simple libxcb $LIBXCB_VERSION https://www.x.org/releases/individual/lib build_libjpeg_turbo + if [[ "$AUDITWHEEL_ARCH" == "ppc64le" ]]; then + return + fi + if [[ -n "$IS_MACOS" ]]; then # Custom tiff build to include jpeg; by default, configure won't include # headers/libs in the custom macOS/iOS prefix. Explicitly disable webp, diff --git a/checks/check_wheel.py b/checks/check_wheel.py index 937722c4b..ba27674df 100644 --- a/checks/check_wheel.py +++ b/checks/check_wheel.py @@ -27,11 +27,16 @@ def test_wheel_modules() -> None: # tkinter is not available on iOS expected_modules.remove("tkinter") + elif platform.processor() == "ppc64le": + expected_modules -= {"freetype2", "littlecms2", "webp", "avif"} + assert set(features.get_supported_modules()) == expected_modules def test_wheel_codecs() -> None: expected_codecs = {"jpg", "jpg_2000", "zlib", "libtiff"} + if platform.processor() == "ppc64le": + expected_codecs -= {"jpg_2000", "libtiff"} assert set(features.get_supported_codecs()) == expected_codecs @@ -54,5 +59,7 @@ def test_wheel_features() -> None: # Can't distribute raqm due to licensing, and there's no system version; # fribidi and harfbuzz won't be available if raqm isn't available. expected_features -= {"raqm", "fribidi", "harfbuzz"} + elif platform.processor() == "ppc64le": + expected_features -= {"raqm", "fribidi", "harfbuzz"} assert set(features.get_supported_features()) == expected_features diff --git a/pyproject.toml b/pyproject.toml index 137726a1c..7404718ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -150,6 +150,11 @@ environment.PATH = "$(pwd)/build/deps/iphonesimulator/bin:$PATH" select = "*-win32" test-requires = [ ] +[[tool.cibuildwheel.overrides]] +select = "*_ppc64le" +config-settings = "raqm=disable fribidi=disable imagequant=disable" +test-requires = [ ] + [tool.black] exclude = "wheels/multibuild"