From 0bd90e86caefef41488aa34989b29491af03b927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Fri, 28 Aug 2026 15:21:44 +0200 Subject: [PATCH] MINOR: Don't install Homebrew's aws-sdk-cpp and gRPC for JNI macOS build The "JNI macos-15-intel x86_64" job fails in "Install dependencies": ##[error]aws-sdk-cpp: no bottle available! ##[error]grpc: no bottle available! `brew bundle` failed! 2 Brewfile dependencies failed to install Homebrew treats x86_64 macOS as a tier 3 configuration and rarely publishes bottles for it. "brew bundle" doesn't build from source, so arrow/cpp/Brewfile can no longer be installed as-is. We don't use Homebrew's aws-sdk-cpp and gRPC anyway. The JNI build uses ARROW_DEPENDENCY_USE_SHARED=OFF and Homebrew provides only shared libraries for them, so we uninstall both just after "brew bundle". We skip installing them with HOMEBREW_BUNDLE_BREW_SKIP instead of installing and uninstalling them. "brew uninstall aws-sdk-cpp" needs "|| :" now because it's no longer installed by "brew bundle". It's still called because it may be pre-installed on GitHub Actions runner images. --- .github/workflows/rc.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rc.yml b/.github/workflows/rc.yml index 835198a8e8..59b461c5d5 100644 --- a/.github/workflows/rc.yml +++ b/.github/workflows/rc.yml @@ -236,13 +236,29 @@ jobs: brew uninstall pkg-config@0.29.2 || : fi - brew bundle --file=arrow/cpp/Brewfile + # We don't use Homebrew's aws-sdk-cpp and gRPC. See the + # "brew uninstall" calls below for details. So we don't install + # them instead of installing and uninstalling them. + # + # This is also needed because Homebrew doesn't provide bottles + # for them on x86_64 macOS. Homebrew treats x86_64 macOS as a + # tier 3 configuration and rarely builds bottles for it: + # + # https://docs.brew.sh/Support-Tiers#tier-3 + # + # "brew bundle" fails with "no bottle available!" without this + # because it doesn't build them from source. + HOMEBREW_BUNDLE_BREW_SKIP="aws-sdk-cpp grpc" \ + brew bundle --file=arrow/cpp/Brewfile # We want to link aws-sdk-cpp statically but Homebrew's # aws-sdk-cpp provides only shared library. If we have # Homebrew's aws-sdk-cpp, our build mix Homebrew's # aws-sdk-cpp and bundled aws-sdk-cpp. We uninstall Homebrew's # aws-sdk-cpp to ensure using only bundled aws-sdk-cpp. - brew uninstall aws-sdk-cpp + # + # Homebrew's aws-sdk-cpp may be pre-installed on GitHub Actions + # runner images even if we skip installing it above. + brew uninstall aws-sdk-cpp || : # We want to use bundled RE2 for static linking. If # Homebrew's RE2 is installed, its header file may be used. # We uninstall Homebrew's RE2 to ensure using bundled RE2.