From 2b918eec0db2628afde52fcb919d5b1b72fc0aa5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 15:24:44 +0000 Subject: [PATCH 1/7] Initial plan From 7ab4cafc514d32642f0be72b08b23ca121eb8177 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 15:29:14 +0000 Subject: [PATCH 2/7] ci: update cibuildwheel to v3.3.1 for Python 3.14 support Co-authored-by: ipmb <319156+ipmb@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b21edf9..3c4b3f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -71,13 +71,13 @@ jobs: run: brew unlink pcre2 - name: Build wheels - uses: pypa/cibuildwheel@v2.20.0 + uses: pypa/cibuildwheel@v3.3.1 with: output-dir: dist package-dir: ./${{ needs.build_sdist.outputs.sdist_name }} env: CIBW_ARCHS: ${{ matrix.arch }} - CIBW_SKIP: cp36-* cp38-macosx_arm64 pp* + CIBW_SKIP: cp36-* cp38-macosx_arm64 pp* cp31?t-* CIBW_ENVIRONMENT: UWSGI_PROFILE=pyuwsginossl CIBW_TEST_COMMAND: "pyuwsgi --help" CIBW_BEFORE_BUILD_MACOS: "find . -name '*.o' -delete && IS_MACOS=1 ./pre_build.sh" From 5a71799d4d69d9871f7b3668b0212affbfd2b2b9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 15:37:32 +0000 Subject: [PATCH 3/7] ci: remove invalid cibuildwheel v3 skip selectors cp36-* and pp* Co-authored-by: ipmb <319156+ipmb@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3c4b3f6..29a1f62 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -77,7 +77,7 @@ jobs: package-dir: ./${{ needs.build_sdist.outputs.sdist_name }} env: CIBW_ARCHS: ${{ matrix.arch }} - CIBW_SKIP: cp36-* cp38-macosx_arm64 pp* cp31?t-* + CIBW_SKIP: cp38-macosx_arm64 cp31?t-* CIBW_ENVIRONMENT: UWSGI_PROFILE=pyuwsginossl CIBW_TEST_COMMAND: "pyuwsgi --help" CIBW_BEFORE_BUILD_MACOS: "find . -name '*.o' -delete && IS_MACOS=1 ./pre_build.sh" From 0c4453c3032eb70e9c95859ac55df6f1dbd2a3d0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 15:48:48 +0000 Subject: [PATCH 4/7] fix: update pre_build.sh macOS deployment target detection for Python 3.14 Co-authored-by: ipmb <319156+ipmb@users.noreply.github.com> --- pre_build.sh | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/pre_build.sh b/pre_build.sh index 01c9bdd..c1dd42c 100755 --- a/pre_build.sh +++ b/pre_build.sh @@ -3,14 +3,26 @@ set -eu -o pipefail if [ -n "${IS_MACOS:-}" ]; then # make sure the linked binaries are equivalent to our target - python="$(command -v python)" - min_ver="$( - otool -l "$python" | - grep -A2 LC_VERSION_MIN_MACOSX | - tail -1 | - awk '{print $2}' - )" - export MACOSX_DEPLOYMENT_TARGET="$min_ver" + if [ -z "${MACOSX_DEPLOYMENT_TARGET:-}" ]; then + python="$(command -v python)" + # Python < 3.14 uses LC_VERSION_MIN_MACOSX; Python 3.14+ uses LC_BUILD_VERSION + min_ver="$( + otool -l "$python" | + grep -A2 LC_VERSION_MIN_MACOSX | + tail -1 | + awk '{print $2}' + )" || min_ver="$( + otool -l "$python" | + grep -A4 LC_BUILD_VERSION | + grep "minos" | + awk '{print $2}' + )" + if [ -z "$min_ver" ]; then + echo "ERROR: Could not determine MACOSX_DEPLOYMENT_TARGET from binary" >&2 + exit 1 + fi + export MACOSX_DEPLOYMENT_TARGET="$min_ver" + fi make_install=(sudo make install) else make_install=(make install) From e08b3c557bf6d9152de13853c1d643bec91063dd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 16:17:17 +0000 Subject: [PATCH 5/7] fix: replace retired macos-13 runner with macos-14 cross-compiling x86_64 Co-authored-by: ipmb <319156+ipmb@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- pre_build.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 29a1f62..5b8a271 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: - {os: ubuntu-24.04-arm, arch: aarch64} - {os: ubuntu-latest, arch: i686} - {os: ubuntu-latest, arch: x86_64} - - {os: macos-13, arch: x86_64} + - {os: macos-14, arch: x86_64} - {os: macos-14, arch: arm64} fail-fast: false diff --git a/pre_build.sh b/pre_build.sh index c1dd42c..0eaf8db 100755 --- a/pre_build.sh +++ b/pre_build.sh @@ -90,7 +90,7 @@ function build_pcre2 { fetch_unpack "${PCRE2_DOWNLOAD_URL}" check_sha256sum "${ARCHIVES_SDIR:-archives}/${PCRE2_ROOT}.tar.gz" "$PCRE2_HASH" (cd "${PCRE2_ROOT}" \ - && ./configure --prefix="$BUILD_PREFIX" \ + && CFLAGS="${ARCHFLAGS:-}" LDFLAGS="${ARCHFLAGS:-}" ./configure --prefix="$BUILD_PREFIX" \ && make -j4 \ && "${make_install[@]}") touch pcre2-stamp @@ -118,7 +118,7 @@ function build_jansson { fetch_unpack "${JANSSON_DOWNLOAD_URL}" check_sha256sum "${ARCHIVE_SDIR:-archives}/${JANSSON_ROOT}.tar.gz" "${JANSSON_HASH}" (cd "${JANSSON_ROOT}" \ - && ./configure --prefix="$BUILD_PREFIX" \ + && CFLAGS="${ARCHFLAGS:-}" LDFLAGS="${ARCHFLAGS:-}" ./configure --prefix="$BUILD_PREFIX" \ && make -j4 \ && "${make_install[@]}") touch jansson-stamp From 829cf314a2cb9b28aa6711d2e849372c74d2e5fe Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 16:31:30 +0000 Subject: [PATCH 6/7] fix: pass ARCHFLAGS to uWSGI build for macOS x86_64 cross-compilation Co-authored-by: ipmb <319156+ipmb@users.noreply.github.com> --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5b8a271..f534bf3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,6 +79,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_SKIP: cp38-macosx_arm64 cp31?t-* CIBW_ENVIRONMENT: UWSGI_PROFILE=pyuwsginossl + CIBW_ENVIRONMENT_MACOS: UWSGI_PROFILE=pyuwsginossl APPEND_CFLAGS="${ARCHFLAGS:-}" LDFLAGS="${ARCHFLAGS:-}" CIBW_TEST_COMMAND: "pyuwsgi --help" CIBW_BEFORE_BUILD_MACOS: "find . -name '*.o' -delete && IS_MACOS=1 ./pre_build.sh" CIBW_BEFORE_BUILD_LINUX: "find . -name '*.o' -delete && ./pre_build.sh && (yum install -y zlib-devel || apk add zlib-dev)" From bd6cb88c1f9bdcf2e48295112d5afe692b12231c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 17:22:51 +0000 Subject: [PATCH 7/7] fix: set explicit macOS arch flags for cibuildwheel cross builds Co-authored-by: ipmb <319156+ipmb@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f534bf3..215fc65 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,7 +79,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_SKIP: cp38-macosx_arm64 cp31?t-* CIBW_ENVIRONMENT: UWSGI_PROFILE=pyuwsginossl - CIBW_ENVIRONMENT_MACOS: UWSGI_PROFILE=pyuwsginossl APPEND_CFLAGS="${ARCHFLAGS:-}" LDFLAGS="${ARCHFLAGS:-}" + CIBW_ENVIRONMENT_MACOS: UWSGI_PROFILE=pyuwsginossl ARCHFLAGS="${{ matrix.arch == 'x86_64' && '-arch x86_64' || '-arch arm64' }}" APPEND_CFLAGS="${{ matrix.arch == 'x86_64' && '-arch x86_64' || '-arch arm64' }}" LDFLAGS="${{ matrix.arch == 'x86_64' && '-arch x86_64' || '-arch arm64' }}" CIBW_TEST_COMMAND: "pyuwsgi --help" CIBW_BEFORE_BUILD_MACOS: "find . -name '*.o' -delete && IS_MACOS=1 ./pre_build.sh" CIBW_BEFORE_BUILD_LINUX: "find . -name '*.o' -delete && ./pre_build.sh && (yum install -y zlib-devel || apk add zlib-dev)"