From 44db5e2386835b8a80712a3023cbd541c258ff74 Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Thu, 3 Sep 2026 15:54:25 +0300 Subject: [PATCH 1/5] Remove seemingly stray openblas config for mac CI --- .github/workflows/macos-install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/macos-install.sh b/.github/workflows/macos-install.sh index e95a786d758..a63a82b2cce 100755 --- a/.github/workflows/macos-install.sh +++ b/.github/workflows/macos-install.sh @@ -3,7 +3,6 @@ set -e brew bundle --file=.github/workflows/Brewfile -export PKG_CONFIG_PATH="/usr/local/opt/openblas/lib/pkgconfig" python3 -m pip install coverage python3 -m pip install defusedxml From eb3b1875af5b26102995e7fcc5983d42ca9a6583 Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Thu, 3 Sep 2026 15:37:18 +0300 Subject: [PATCH 2/5] Install apt packages in CI in one invocation --- .ci/install.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.ci/install.sh b/.ci/install.sh index db680db96b6..af7b379f94e 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -17,10 +17,17 @@ aptget_update || aptget_update retry || aptget_update retry set -e -sudo apt-get -qq install libfreetype6-dev liblcms2-dev libtiff-dev python3-tk\ - ghostscript libjpeg-turbo8-dev libopenjp2-7-dev\ - cmake meson imagemagick libharfbuzz-dev libfribidi-dev\ - sway wl-clipboard libopenblas-dev nasm +packages=(libfreetype6-dev liblcms2-dev libtiff-dev python3-tk + ghostscript libjpeg-turbo8-dev libopenjp2-7-dev + cmake meson imagemagick libharfbuzz-dev libfribidi-dev + sway wl-clipboard libopenblas-dev nasm) + +# PyQt6 doesn't support PyPy3 +if [[ $GHA_PYTHON_VERSION == 3.* ]]; then + packages+=(libegl1 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 + libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxkbcommon-x11-0) +fi +sudo apt-get -qq install "${packages[@]}" python3 -m pip install --upgrade pip python3 -m pip install --upgrade wheel @@ -37,7 +44,6 @@ python3 -m pip install --only-binary=:all: pyarrow || true # PyQt6 doesn't support PyPy3 if [[ $GHA_PYTHON_VERSION == 3.* ]]; then - sudo apt-get -qq install libegl1 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxkbcommon-x11-0 # pyqt6 doesn't yet support free-threading; only install if a wheel is available python3 -m pip install --only-binary=:all: pyqt6 || true fi From f02b2b4e994340b91b1f1b17886952ec1c197304 Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Thu, 3 Sep 2026 15:37:17 +0300 Subject: [PATCH 3/5] Adjust packages installed by apt in CI - add `--no-install-recommends` - libopenblas-dev doesn't seem to be required - add netpbm explicitly - note why imagemagick is needed --- .ci/install.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.ci/install.sh b/.ci/install.sh index af7b379f94e..b7300451b48 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -19,15 +19,19 @@ set -e packages=(libfreetype6-dev liblcms2-dev libtiff-dev python3-tk ghostscript libjpeg-turbo8-dev libopenjp2-7-dev - cmake meson imagemagick libharfbuzz-dev libfribidi-dev - sway wl-clipboard libopenblas-dev nasm) + cmake meson libharfbuzz-dev libfribidi-dev + sway wl-clipboard nasm + # ImageMagick is used by Tests/test_file_palm.py + imagemagick + # netpbm provides ppmquant and ppmtogif for GifImagePlugin._save_netpbm + netpbm) # PyQt6 doesn't support PyPy3 if [[ $GHA_PYTHON_VERSION == 3.* ]]; then packages+=(libegl1 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxkbcommon-x11-0) fi -sudo apt-get -qq install "${packages[@]}" +sudo apt-get -qq install --no-install-recommends "${packages[@]}" python3 -m pip install --upgrade pip python3 -m pip install --upgrade wheel From 5dc690348eac29c48c04e2836dc8cf5c6a11628a Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Thu, 3 Sep 2026 15:51:33 +0300 Subject: [PATCH 4/5] Install Python packages in one batch (sans wheel) --- .ci/install.sh | 13 +++++-------- .github/workflows/macos-install.sh | 11 ++++------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.ci/install.sh b/.ci/install.sh index b7300451b48..71c54abadc3 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -34,14 +34,11 @@ fi sudo apt-get -qq install --no-install-recommends "${packages[@]}" python3 -m pip install --upgrade pip -python3 -m pip install --upgrade wheel -python3 -m pip install coverage -python3 -m pip install defusedxml -python3 -m pip install ipython -python3 -m pip install olefile -python3 -m pip install -U pytest -python3 -m pip install -U pytest-cov -python3 -m pip install -U pytest-timeout + +python_packages=(coverage defusedxml ipython olefile + pytest pytest-cov pytest-timeout) +python3 -m pip install --upgrade "${python_packages[@]}" + # optional test dependencies, only install if there's a binary package. python3 -m pip install --only-binary=:all: numpy || true python3 -m pip install --only-binary=:all: pyarrow || true diff --git a/.github/workflows/macos-install.sh b/.github/workflows/macos-install.sh index a63a82b2cce..6e8b1e5933d 100755 --- a/.github/workflows/macos-install.sh +++ b/.github/workflows/macos-install.sh @@ -4,13 +4,10 @@ set -e brew bundle --file=.github/workflows/Brewfile -python3 -m pip install coverage -python3 -m pip install defusedxml -python3 -m pip install ipython -python3 -m pip install olefile -python3 -m pip install -U pytest -python3 -m pip install -U pytest-cov -python3 -m pip install -U pytest-timeout +python_packages=(coverage defusedxml ipython olefile + pytest pytest-cov pytest-timeout) +python3 -m pip install --upgrade "${python_packages[@]}" + # optional test dependencies, only install if there's a binary package. python3 -m pip install --only-binary=:all: numpy || true python3 -m pip install --only-binary=:all: pyarrow || true From 1b780e93774fdd0805233274c8faaf4ad4fd9ce6 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 5 Sep 2026 18:29:31 +1000 Subject: [PATCH 5/5] Simplify code --- .ci/install.sh | 6 ++---- .github/workflows/macos-install.sh | 5 ++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.ci/install.sh b/.ci/install.sh index 5955c35a077..78b584cb291 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -28,10 +28,8 @@ packages=(libfreetype6-dev liblcms2-dev libtiff-dev python3-tk sudo apt-get -qq install --no-install-recommends "${packages[@]}" python3 -m pip install --upgrade pip - -python_packages=(coverage defusedxml ipython olefile - pytest pytest-cov pytest-timeout) -python3 -m pip install --upgrade "${python_packages[@]}" +python3 -m pip install --upgrade coverage defusedxml ipython olefile \ + pytest pytest-cov pytest-timeout # optional test dependencies, only install if there's a binary package. python3 -m pip install --only-binary=:all: numpy || true diff --git a/.github/workflows/macos-install.sh b/.github/workflows/macos-install.sh index 6e8b1e5933d..3e76c11517b 100755 --- a/.github/workflows/macos-install.sh +++ b/.github/workflows/macos-install.sh @@ -4,9 +4,8 @@ set -e brew bundle --file=.github/workflows/Brewfile -python_packages=(coverage defusedxml ipython olefile - pytest pytest-cov pytest-timeout) -python3 -m pip install --upgrade "${python_packages[@]}" +python3 -m pip install --upgrade coverage defusedxml ipython olefile \ + pytest pytest-cov pytest-timeout # optional test dependencies, only install if there's a binary package. python3 -m pip install --only-binary=:all: numpy || true