From a6f0c426a8a07ef9289ea9f97ab865d182ac684a Mon Sep 17 00:00:00 2001 From: mattip Date: Sat, 11 Oct 2025 20:10:06 +0300 Subject: [PATCH 1/7] used macos-15 images --- .github/workflows/posix.yml | 13 ++++--------- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/posix.yml b/.github/workflows/posix.yml index 2943422..6de0a38 100644 --- a/.github/workflows/posix.yml +++ b/.github/workflows/posix.yml @@ -23,16 +23,16 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest, macos-15-intel] PLAT: [i686, x86_64] INTERFACE64: ['0', '1'] MB_ML_VER: ['2014'] MB_ML_LIBC: ['manylinux'] include: - - os: macos-latest + - os: macos-15 PLAT: arm64 INTERFACE64: '1' - - os: macos-latest + - os: macos-15 PLAT: arm64 INTERFACE64: '0' - os: ubuntu-latest @@ -67,7 +67,7 @@ jobs: exclude: - PLAT: i686 - os: macos-latest + os: macos-15-intel - PLAT: i686 INTERFACE64: '1' env: @@ -93,11 +93,6 @@ jobs: run: | echo "DOCKER_TEST_IMAGE=$(echo multibuild/xenial_${{ matrix.PLAT}})" >> $GITHUB_ENV; - - uses: maxim-lobanov/setup-xcode@v1.6.0 - if: ${{ matrix.os == 'macos-latest' }} - with: - xcode-version: '15.4' - - name: Print some Environment variable run: | echo "PLAT: ${PLAT}" diff --git a/pyproject.toml b/pyproject.toml index 90bc7f9..15d4f1a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "scipy-openblas64" # v0.3.30 -version = "0.3.30.0.2" +version = "0.3.30.0.3" requires-python = ">=3.7" description = "Provides OpenBLAS for python packaging" readme = "README.md" From 425177cec5d736a5a759f71bff3def79cbb89eca Mon Sep 17 00:00:00 2001 From: mattip Date: Sat, 11 Oct 2025 20:28:50 +0300 Subject: [PATCH 2/7] use LLVM 20.1.8 on win-arm64 builds --- .github/workflows/windows-arm.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/windows-arm.yml b/.github/workflows/windows-arm.yml index e0e5181..7232174 100644 --- a/.github/workflows/windows-arm.yml +++ b/.github/workflows/windows-arm.yml @@ -48,7 +48,13 @@ jobs: - name: Download and install LLVM installer run: | - Invoke-WebRequest https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.5/LLVM-19.1.5-woa64.exe -UseBasicParsing -OutFile LLVM-woa64.exe + Invoke-WebRequest https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.8/LLVM-20.1.8-woa64.exe -UseBasicParsing -OutFile LLVM-woa64.exe + $expectedHash = "7c4ac97eb2ae6b960ca5f9caf3ff6124c8d2a18cc07a7840a4d2ea15537bad8e" + $fileHash = (Get-FileHash -Path "LLVM-woa64.exe" -Algorithm SHA256).Hash + if ($fileHash -ne $expectedHash) { + Write-Error "Checksum verification failed. The downloaded file may be corrupted or tampered with." + exit 1 + } Start-Process -FilePath ".\LLVM-woa64.exe" -ArgumentList "/S" -Wait echo "C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append From 857fe2d04730e4b512b3f1d14480c4d4c355fb39 Mon Sep 17 00:00:00 2001 From: mattip Date: Sat, 11 Oct 2025 22:34:50 +0300 Subject: [PATCH 3/7] use regex --- .github/workflows/posix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/posix.yml b/.github/workflows/posix.yml index 6de0a38..d9f26e4 100644 --- a/.github/workflows/posix.yml +++ b/.github/workflows/posix.yml @@ -132,7 +132,7 @@ jobs: version=$(cd OpenBLAS && git describe --tags --abbrev=8 | sed -e "s/^v\(.*\)-g.*/\1/" | sed -e "s/-/./g") sed -e "s/^version = .*/version = \"${version}\"/" -i.bak pyproject.toml fi - if [ "macos-latest" == "${{ matrix.os }}" ]; then + if [[ "${{ matrix.os }}" =~ "macos" ]]; then source tools/build_wheel.sh else libc=${MB_ML_LIBC:-manylinux} From 7acd8fcfbb36c46ae6a048253082c80bbac4f359 Mon Sep 17 00:00:00 2001 From: Matti Picus Date: Sun, 12 Oct 2025 09:15:15 +0300 Subject: [PATCH 4/7] use gfortran from macos-15 images --- .gitmodules | 3 --- gfortran-install | 1 - tools/build_steps.sh | 13 ++++--------- 3 files changed, 4 insertions(+), 13 deletions(-) delete mode 160000 gfortran-install diff --git a/.gitmodules b/.gitmodules index 9a0ddc0..3556447 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,6 +4,3 @@ [submodule "multibuild"] path = multibuild url = https://github.com/multi-build/multibuild.git -[submodule "gfortran-install"] - path = gfortran-install - url = https://github.com/MacPython/gfortran-install.git diff --git a/gfortran-install b/gfortran-install deleted file mode 160000 index 3dd38d9..0000000 --- a/gfortran-install +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3dd38d9ce78b3890598cb0eff18a7bec50c06f5e diff --git a/tools/build_steps.sh b/tools/build_steps.sh index f87758b..0a31a94 100644 --- a/tools/build_steps.sh +++ b/tools/build_steps.sh @@ -21,14 +21,8 @@ function before_build { fi source ${ROOT_DIR}/multibuild/osx_utils.sh get_macpython_environment ${MB_PYTHON_VERSION} venv - # Since install_fortran uses `uname -a` to determine arch, - # force the architecture - arch -${PLAT} bash -s << EOF -source ${ROOT_DIR}/gfortran-install/gfortran_utils.sh -install_gfortran -EOF - # Deployment target set by gfortran_utils - echo "Deployment target $MACOSX_DEPLOYMENT_TARGET" + + alias gfortran gfortran-15 # Build the objconv tool (cd ${ROOT_DIR}/objconv && bash ../tools/build_objconv.sh) @@ -166,6 +160,7 @@ function do_build_lib { # Pick up the gfortran runtime libraries export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH CFLAGS="$CFLAGS -arch x86_64" + export MACOSX_DEPLOYMENT_TARGET="11.0" export SDKROOT=${SDKROOT:-$(xcrun --show-sdk-path)} ;; *-i686) @@ -181,7 +176,7 @@ function do_build_lib { local bitness=64 local target="VORTEX" CFLAGS="$CFLAGS -ftrapping-math -mmacos-version-min=11.0" - MACOSX_DEPLOYMENT_TARGET="11.0" + export MACOSX_DEPLOYMENT_TARGET="11.0" export SDKROOT=${SDKROOT:-$(xcrun --show-sdk-path)} export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH ;; From 31f7567e3491169b123887076357278ba6563a6a Mon Sep 17 00:00:00 2001 From: Matti Picus Date: Sun, 12 Oct 2025 09:20:17 +0300 Subject: [PATCH 5/7] typo --- tools/build_steps.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build_steps.sh b/tools/build_steps.sh index 0a31a94..b45cb9b 100644 --- a/tools/build_steps.sh +++ b/tools/build_steps.sh @@ -22,7 +22,7 @@ function before_build { source ${ROOT_DIR}/multibuild/osx_utils.sh get_macpython_environment ${MB_PYTHON_VERSION} venv - alias gfortran gfortran-15 + alias gfortran=gfortran-15 # Build the objconv tool (cd ${ROOT_DIR}/objconv && bash ../tools/build_objconv.sh) From 0f0cc03b11cc869e5bc454a8063197499f847e67 Mon Sep 17 00:00:00 2001 From: Matti Picus Date: Sun, 12 Oct 2025 22:45:38 +0300 Subject: [PATCH 6/7] fix MACOSX_DEPLOYMENT_TARGET --- tools/build_steps.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/build_steps.sh b/tools/build_steps.sh index b45cb9b..499beba 100644 --- a/tools/build_steps.sh +++ b/tools/build_steps.sh @@ -158,9 +158,9 @@ function do_build_lib { local bitness=64 local target="CORE2" # Pick up the gfortran runtime libraries - export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH + # export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH CFLAGS="$CFLAGS -arch x86_64" - export MACOSX_DEPLOYMENT_TARGET="11.0" + export MACOSX_DEPLOYMENT_TARGET="10.9" export SDKROOT=${SDKROOT:-$(xcrun --show-sdk-path)} ;; *-i686) From e627edc7767a7ef04d1a127ed0bc35f1544f97ea Mon Sep 17 00:00:00 2001 From: Matti Picus Date: Sun, 12 Oct 2025 22:47:34 +0300 Subject: [PATCH 7/7] rebase on main and bump build number --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 15d4f1a..a5e1b05 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "scipy-openblas64" # v0.3.30 -version = "0.3.30.0.3" +version = "0.3.30.0.4" requires-python = ">=3.7" description = "Provides OpenBLAS for python packaging" readme = "README.md"