From 52af2a62f917c157413892824792b013a3ecbb98 Mon Sep 17 00:00:00 2001 From: Bissbert <43237892+Bissbert@users.noreply.github.com> Date: Sun, 15 Feb 2026 09:14:08 +0700 Subject: [PATCH] fix: skip i686 builds and add EPEL for Linux wheel builds - Add *_i686 to CIBW_SKIP to avoid 32-bit Linux builds that lack compatible scipy/OpenBLAS packages in manylinux containers - Install epel-release before eigen3/openblas on CentOS-based images - Add || true fallbacks so missing packages don't fail the entire build --- .github/workflows/pypi-publish.yml | 9 +++++---- pyproject.toml | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 2f241a9..262824b 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -35,8 +35,8 @@ jobs: env: # Build for Python 3.10, 3.11, 3.12, 3.13 CIBW_BUILD: "cp310-* cp311-* cp312-* cp313-*" - # Skip musllinux (Alpine) and PyPy - CIBW_SKIP: "*-musllinux* pp*" + # Skip musllinux (Alpine), PyPy, and 32-bit Linux (i686) + CIBW_SKIP: "*-musllinux* pp* *_i686" # Skip in-container tests (CI already runs the full test suite). # Testing inside cibuildwheel fails because scipy needs OpenBLAS # to build from source in the manylinux container. @@ -44,9 +44,10 @@ jobs: # Install Eigen and OpenBLAS before building CIBW_BEFORE_ALL_LINUX: | if command -v yum &> /dev/null; then - yum install -y eigen3-devel openblas-devel + yum install -y epel-release || true + yum install -y eigen3-devel openblas-devel || true elif command -v apt-get &> /dev/null; then - apt-get update && apt-get install -y libeigen3-dev libopenblas-dev + apt-get update && apt-get install -y libeigen3-dev libopenblas-dev || true fi CIBW_BEFORE_ALL_MACOS: | brew install eigen diff --git a/pyproject.toml b/pyproject.toml index af49d5a..5f53077 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -92,14 +92,14 @@ USE_OPENMP = "OFF" [tool.cibuildwheel] # Build for Python 3.10-3.13 build = "cp310-* cp311-* cp312-* cp313-*" -# Skip musllinux and PyPy -skip = "*-musllinux* pp*" +# Skip musllinux (Alpine), PyPy, and 32-bit Linux (i686) +skip = "*-musllinux* pp* *_i686" # Skip in-container tests (CI runs the full test suite separately). # Testing inside cibuildwheel fails because scipy needs OpenBLAS in manylinux. test-skip = "*" [tool.cibuildwheel.linux] -before-all = "yum install -y eigen3-devel openblas-devel || (apt-get update && apt-get install -y libeigen3-dev libopenblas-dev)" +before-all = "(yum install -y epel-release && yum install -y eigen3-devel openblas-devel) || (apt-get update && apt-get install -y libeigen3-dev libopenblas-dev) || true" repair-wheel-command = "auditwheel repair -w {dest_dir} {wheel}" [tool.cibuildwheel.macos]