From 331ce6f04c5f64862608d5d51544a857d8660520 Mon Sep 17 00:00:00 2001 From: ethanglaser Date: Mon, 6 Apr 2026 12:06:27 -0700 Subject: [PATCH 1/3] migrate manylinux2014 to manylinux2.28 --- .github/.licenserc.yaml | 1 - .github/workflows/cibuildwheel.yml | 4 ++-- bindings/python/pyproject.toml | 14 ++++++------- docker/x86_64/manylinux2014/Dockerfile | 28 ------------------------- docker/x86_64/manylinux2014/build.sh | 16 -------------- docker/x86_64/manylinux2014/entry.sh | 20 ------------------ docker/x86_64/manylinux2014/oneAPI.repo | 7 ------- 7 files changed, 9 insertions(+), 81 deletions(-) delete mode 100644 docker/x86_64/manylinux2014/Dockerfile delete mode 100755 docker/x86_64/manylinux2014/build.sh delete mode 100755 docker/x86_64/manylinux2014/entry.sh delete mode 100644 docker/x86_64/manylinux2014/oneAPI.repo diff --git a/.github/.licenserc.yaml b/.github/.licenserc.yaml index 0b1b372d5..edaafa792 100644 --- a/.github/.licenserc.yaml +++ b/.github/.licenserc.yaml @@ -48,7 +48,6 @@ header: - cmake/mkl_functions - cmake/mkl_functions_ivf - cmake/patches/tomlplusplus_v330.patch - - docker/x86_64/manylinux2014/oneAPI.repo - docs/cpp/index/loader-compatibility.csv - docs/requirements.txt - AGENTS.md diff --git a/.github/workflows/cibuildwheel.yml b/.github/workflows/cibuildwheel.yml index f854100fa..6ab5644f9 100644 --- a/.github/workflows/cibuildwheel.yml +++ b/.github/workflows/cibuildwheel.yml @@ -38,8 +38,8 @@ jobs: - name: Build Container run: | - cd ${GITHUB_WORKSPACE}/docker/x86_64/manylinux2014 - ./build.sh + cd ${GITHUB_WORKSPACE}/docker/x86_64/manylinux228 + docker build -t svs-manylinux228 . - name: Install cibuildwheel run: python -m pip install cibuildwheel diff --git a/bindings/python/pyproject.toml b/bindings/python/pyproject.toml index 444c13297..c2fe0d049 100644 --- a/bindings/python/pyproject.toml +++ b/bindings/python/pyproject.toml @@ -35,8 +35,8 @@ archs = ["x86_64"] build-frontend = "pip" config-settings = {} dependency-versions = "pinned" -environment.CC = "/opt/rh/devtoolset-11/root/usr/bin/cc" -environment.CXX = "/opt/rh/devtoolset-11/root/usr/bin/c++" +environment.CC = "/opt/rh/gcc-toolset-11/root/usr/bin/cc" +environment.CXX = "/opt/rh/gcc-toolset-11/root/usr/bin/c++" # Compile multiple versions for difference microarchitectures environment.SVS_MULTIARCH = "YES" environment-pass = [] @@ -45,7 +45,7 @@ build-verbosity = "3" # Run inside the container because the version of pip used depends on the python version # we're building for. before-build = "pip install ninja" -before-all = "yum --disablerepo=epel install -y devtoolset-11-gcc devtoolset-11-gcc-c++" +before-all = "yum install -y gcc-toolset-11" repair-wheel-command = "" test-command = "" @@ -55,10 +55,10 @@ test-extras = [] container-engine = "docker" -# Requires creation of the `svs-manylinux2014` container image. -# Execute the build script SVS_ROOT/docker/x86_64/manylinux2014/build.sh -manylinux-x86_64-image = "svs-manylinux2014" -manylinux-pypy_x86_64-image = "svs-manylinux2014" +# Requires creation of the `svs-manylinux228` container image. +# Execute: docker build -t svs-manylinux228 SVS_ROOT/docker/x86_64/manylinux228/ +manylinux-x86_64-image = "svs-manylinux228" +manylinux-pypy_x86_64-image = "svs-manylinux228" [tool.cibuildwheel.linux] repair-wheel-command = "auditwheel repair -w {dest_dir} {wheel}" diff --git a/docker/x86_64/manylinux2014/Dockerfile b/docker/x86_64/manylinux2014/Dockerfile deleted file mode 100644 index 1935f6aef..000000000 --- a/docker/x86_64/manylinux2014/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2024 Intel Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM quay.io/pypa/manylinux2014_x86_64:2024-07-15-c746fd8 - -COPY ./oneAPI.repo /etc/yum.repos.d/oneAPI.repo - -# Install gcc-11 -RUN yum --disablerepo=epel install -y \ - devtoolset-11-gcc \ - devtoolset-11-gcc-c++ \ - intel-oneapi-mkl \ - intel-oneapi-mkl-devel - -# Enable CMake to find the config files for Intel(R) MKL. -COPY ./entry.sh . -ENTRYPOINT ["./entry.sh"] diff --git a/docker/x86_64/manylinux2014/build.sh b/docker/x86_64/manylinux2014/build.sh deleted file mode 100755 index 9eb35ee38..000000000 --- a/docker/x86_64/manylinux2014/build.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -# Copyright 2024 Intel Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -docker build -t svs-manylinux2014 . diff --git a/docker/x86_64/manylinux2014/entry.sh b/docker/x86_64/manylinux2014/entry.sh deleted file mode 100755 index 8f3a5d8c6..000000000 --- a/docker/x86_64/manylinux2014/entry.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# Copyright 2024 Intel Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -# setup Intel(R) MKL environment variables -source /opt/intel/oneapi/setvars.sh -# Run the requested command -exec "$@" diff --git a/docker/x86_64/manylinux2014/oneAPI.repo b/docker/x86_64/manylinux2014/oneAPI.repo deleted file mode 100644 index ba35b673e..000000000 --- a/docker/x86_64/manylinux2014/oneAPI.repo +++ /dev/null @@ -1,7 +0,0 @@ -[oneAPI] -name=IntelĀ® oneAPI repository -baseurl=https://yum.repos.intel.com/oneapi -enabled=1 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB From 8bf4feea09ff005ee0901abab2aaee6a12a53602 Mon Sep 17 00:00:00 2001 From: ethanglaser Date: Mon, 6 Apr 2026 12:20:54 -0700 Subject: [PATCH 2/3] add MKL setup for ci build wheel --- bindings/python/pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bindings/python/pyproject.toml b/bindings/python/pyproject.toml index c2fe0d049..e74db41a1 100644 --- a/bindings/python/pyproject.toml +++ b/bindings/python/pyproject.toml @@ -37,6 +37,8 @@ config-settings = {} dependency-versions = "pinned" environment.CC = "/opt/rh/gcc-toolset-11/root/usr/bin/cc" environment.CXX = "/opt/rh/gcc-toolset-11/root/usr/bin/c++" +environment.MKLROOT = "/opt/intel/oneapi/mkl/2025.3" +environment.CMAKE_PREFIX_PATH = "/opt/intel/oneapi/mkl/2025.3/lib/cmake" # Compile multiple versions for difference microarchitectures environment.SVS_MULTIARCH = "YES" environment-pass = [] From d1ebf2d54bd61d7225b3f355ec3fdb0855137e0f Mon Sep 17 00:00:00 2001 From: ethanglaser Date: Mon, 6 Apr 2026 17:09:26 -0700 Subject: [PATCH 3/3] restore oneAPI.repo and generalize env vars in pyproject.toml --- .github/.licenserc.yaml | 1 + bindings/python/pyproject.toml | 4 ++-- docker/x86_64/manylinux228/oneAPI.repo | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 docker/x86_64/manylinux228/oneAPI.repo diff --git a/.github/.licenserc.yaml b/.github/.licenserc.yaml index edaafa792..089b97a9f 100644 --- a/.github/.licenserc.yaml +++ b/.github/.licenserc.yaml @@ -48,6 +48,7 @@ header: - cmake/mkl_functions - cmake/mkl_functions_ivf - cmake/patches/tomlplusplus_v330.patch + - docker/x86_64/manylinux228/oneAPI.repo - docs/cpp/index/loader-compatibility.csv - docs/requirements.txt - AGENTS.md diff --git a/bindings/python/pyproject.toml b/bindings/python/pyproject.toml index e74db41a1..2081845c6 100644 --- a/bindings/python/pyproject.toml +++ b/bindings/python/pyproject.toml @@ -37,8 +37,8 @@ config-settings = {} dependency-versions = "pinned" environment.CC = "/opt/rh/gcc-toolset-11/root/usr/bin/cc" environment.CXX = "/opt/rh/gcc-toolset-11/root/usr/bin/c++" -environment.MKLROOT = "/opt/intel/oneapi/mkl/2025.3" -environment.CMAKE_PREFIX_PATH = "/opt/intel/oneapi/mkl/2025.3/lib/cmake" +environment.MKLROOT = "/opt/intel/oneapi/mkl/latest" +environment.CMAKE_PREFIX_PATH = "/opt/intel/oneapi/mkl/latest/lib/cmake" # Compile multiple versions for difference microarchitectures environment.SVS_MULTIARCH = "YES" environment-pass = [] diff --git a/docker/x86_64/manylinux228/oneAPI.repo b/docker/x86_64/manylinux228/oneAPI.repo new file mode 100644 index 000000000..ba35b673e --- /dev/null +++ b/docker/x86_64/manylinux228/oneAPI.repo @@ -0,0 +1,7 @@ +[oneAPI] +name=IntelĀ® oneAPI repository +baseurl=https://yum.repos.intel.com/oneapi +enabled=1 +gpgcheck=1 +repo_gpgcheck=1 +gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB