From 335d19538c9f136e6fc5e19b9d4af7089b0b2ab6 Mon Sep 17 00:00:00 2001 From: Andrea Debernardi Date: Tue, 10 Nov 2026 06:09:47 +0000 Subject: [PATCH 1/2] fix(release): build darwin-x64 natively on an Intel runner Homebrew's installer now refuses to install an x86_64 Homebrew under Rosetta on Apple Silicon, so the cross-compile path for darwin-x64 could no longer get the unixODBC it links against, and the v0.1.0 release run failed there. The Intel macOS runner has Homebrew preinstalled and builds the target natively, like darwin-arm64. --- .github/workflows/release.yml | 16 ++++++---------- .github/workflows/tmp-darwin-x64.yml | 24 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/tmp-darwin-x64.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a77d21a..9b328a5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -92,8 +92,11 @@ jobs: runner: ubuntu-24.04-arm target: aarch64-unknown-linux-gnu binary-suffix: "" + # Built natively on an Intel runner: Homebrew's installer refuses + # x86_64 under Rosetta on Apple Silicon, so the unixODBC an Intel + # build links against can no longer be installed there. - platform-label: darwin-x64 - runner: macos-latest + runner: macos-15-intel target: x86_64-apple-darwin binary-suffix: "" - platform-label: darwin-arm64 @@ -119,17 +122,10 @@ jobs: sudo apt-get update sudo apt-get install -y unixodbc-dev zip - - name: Install ODBC build dependencies (macOS native) - if: runner.os == 'macOS' && matrix.target == 'aarch64-apple-darwin' + - name: Install ODBC build dependencies (macOS) + if: runner.os == 'macOS' run: brew install unixodbc - - name: Install ODBC build dependencies (macOS x86_64 cross-compile) - if: runner.os == 'macOS' && matrix.target == 'x86_64-apple-darwin' - run: | - softwareupdate --install-rosetta --agree-to-license || true - arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - arch -x86_64 /usr/local/bin/brew install unixodbc - - name: Build env: LIBRARY_PATH: ${{ matrix.target == 'x86_64-apple-darwin' && '/usr/local/lib' || '' }} diff --git a/.github/workflows/tmp-darwin-x64.yml b/.github/workflows/tmp-darwin-x64.yml new file mode 100644 index 0000000..9a63664 --- /dev/null +++ b/.github/workflows/tmp-darwin-x64.yml @@ -0,0 +1,24 @@ +# Temporary: checks the darwin-x64 release build on this PR. Removed before merge. +name: darwin-x64 build check +on: + pull_request: + branches: [master] +jobs: + darwin-x64: + runs-on: macos-15-intel + steps: + - uses: actions/checkout@v7 + - uses: dtolnay/rust-toolchain@stable + with: + targets: x86_64-apple-darwin + - run: brew install unixodbc + - name: Build + env: + LIBRARY_PATH: /usr/local/lib + run: cargo build --release --target x86_64-apple-darwin + - name: Inspect and smoke test + run: | + B=target/x86_64-apple-darwin/release/tabularis-db2-plugin + file "$B" + otool -L "$B" + echo '{"jsonrpc":"2.0","method":"initialize","id":1}' | "$B" From 96a8ac63eff4e75f1ca4de882b857c0ed645c656 Mon Sep 17 00:00:00 2001 From: Andrea Debernardi Date: Tue, 10 Nov 2026 06:11:59 +0000 Subject: [PATCH 2/2] ci: drop the temporary darwin-x64 build check --- .github/workflows/tmp-darwin-x64.yml | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 .github/workflows/tmp-darwin-x64.yml diff --git a/.github/workflows/tmp-darwin-x64.yml b/.github/workflows/tmp-darwin-x64.yml deleted file mode 100644 index 9a63664..0000000 --- a/.github/workflows/tmp-darwin-x64.yml +++ /dev/null @@ -1,24 +0,0 @@ -# Temporary: checks the darwin-x64 release build on this PR. Removed before merge. -name: darwin-x64 build check -on: - pull_request: - branches: [master] -jobs: - darwin-x64: - runs-on: macos-15-intel - steps: - - uses: actions/checkout@v7 - - uses: dtolnay/rust-toolchain@stable - with: - targets: x86_64-apple-darwin - - run: brew install unixodbc - - name: Build - env: - LIBRARY_PATH: /usr/local/lib - run: cargo build --release --target x86_64-apple-darwin - - name: Inspect and smoke test - run: | - B=target/x86_64-apple-darwin/release/tabularis-db2-plugin - file "$B" - otool -L "$B" - echo '{"jsonrpc":"2.0","method":"initialize","id":1}' | "$B"