From b42e4009d8d75283d886d8d656bd44fdd9892592 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Tue, 29 Sep 2026 22:22:36 +0900 Subject: [PATCH 01/22] GH-51634: [C++][CI] Pin OpenSSL 3.x on macOS --- cpp/Brewfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/Brewfile b/cpp/Brewfile index 811712516bf..bd5934ba38f 100644 --- a/cpp/Brewfile +++ b/cpp/Brewfile @@ -34,7 +34,7 @@ brew "lz4" brew "mimalloc" brew "ninja" brew "node" -brew "openssl" +brew "openssl@4" brew "pkgconf" brew "protobuf" brew "python" From 35a97469ba6890cb317dfb953dd47a57367cf921 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Tue, 29 Sep 2026 22:39:23 +0900 Subject: [PATCH 02/22] Use openssl@3 --- cpp/Brewfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/Brewfile b/cpp/Brewfile index bd5934ba38f..3f62b9cb1a6 100644 --- a/cpp/Brewfile +++ b/cpp/Brewfile @@ -34,7 +34,7 @@ brew "lz4" brew "mimalloc" brew "ninja" brew "node" -brew "openssl@4" +brew "openssl@3" brew "pkgconf" brew "protobuf" brew "python" From ec9a2436055aa0c7dd9180a6e0a3d0f766107ca3 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Tue, 29 Sep 2026 23:05:12 +0900 Subject: [PATCH 03/22] Set OpenSSL@3 path --- .github/workflows/cpp.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml index 493e7ab567a..46fcc842c7e 100644 --- a/.github/workflows/cpp.yml +++ b/.github/workflows/cpp.yml @@ -228,6 +228,7 @@ jobs: ARROW_WITH_SNAPPY: ON ARROW_WITH_ZLIB: ON ARROW_WITH_ZSTD: ON + OPENSSL_ROOT_DIR: /opt/homebrew/opt/openssl@ steps: - name: CPU Info run: | @@ -246,6 +247,11 @@ jobs: run: | $(brew --prefix bash)/bin/bash \ ci/scripts/install_minio.sh latest ${ARROW_HOME} + - name: OpenSSL check + run: | + brew uses --installed openssl@4 + brew deps --installed --tree + env - name: Set up Python uses: actions/setup-python@v7 with: From 52039c72140b8e7865aad2891ca3e05979d67979 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Tue, 29 Sep 2026 23:10:26 +0900 Subject: [PATCH 04/22] Update GitHub Actions --- .github/workflows/cpp.yml | 2 +- .github/workflows/ruby.yml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml index 46fcc842c7e..3b472650dec 100644 --- a/.github/workflows/cpp.yml +++ b/.github/workflows/cpp.yml @@ -228,7 +228,7 @@ jobs: ARROW_WITH_SNAPPY: ON ARROW_WITH_ZLIB: ON ARROW_WITH_ZSTD: ON - OPENSSL_ROOT_DIR: /opt/homebrew/opt/openssl@ + OPENSSL_ROOT_DIR: /opt/homebrew/opt/openssl@3 steps: - name: CPU Info run: | diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 7feb8296a31..33057ce8098 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -158,6 +158,7 @@ jobs: ARROW_WITH_SNAPPY: ON ARROW_WITH_ZLIB: ON ARROW_WITH_ZSTD: ON + OPENSSL_ROOT_DIR: /opt/homebrew/opt/openssl@3 steps: - name: Checkout Arrow uses: actions/checkout@v7 @@ -184,6 +185,11 @@ jobs: for ruby_package_gemfile in ruby/*/Gemfile; do \ bundle install --gemfile ${ruby_package_gemfile} done + - name: OpenSSL check + run: | + brew uses --installed openssl@4 + brew deps --installed --tree + env - name: Setup ccache run: | ci/scripts/ccache_setup.sh From 1c71f3704caac19781245d42225cded6b9d43ad4 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 09:02:03 +0900 Subject: [PATCH 05/22] Revert "Update GitHub Actions" This reverts commit 52039c72140b8e7865aad2891ca3e05979d67979. --- .github/workflows/cpp.yml | 2 +- .github/workflows/ruby.yml | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml index 3b472650dec..46fcc842c7e 100644 --- a/.github/workflows/cpp.yml +++ b/.github/workflows/cpp.yml @@ -228,7 +228,7 @@ jobs: ARROW_WITH_SNAPPY: ON ARROW_WITH_ZLIB: ON ARROW_WITH_ZSTD: ON - OPENSSL_ROOT_DIR: /opt/homebrew/opt/openssl@3 + OPENSSL_ROOT_DIR: /opt/homebrew/opt/openssl@ steps: - name: CPU Info run: | diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 33057ce8098..7feb8296a31 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -158,7 +158,6 @@ jobs: ARROW_WITH_SNAPPY: ON ARROW_WITH_ZLIB: ON ARROW_WITH_ZSTD: ON - OPENSSL_ROOT_DIR: /opt/homebrew/opt/openssl@3 steps: - name: Checkout Arrow uses: actions/checkout@v7 @@ -185,11 +184,6 @@ jobs: for ruby_package_gemfile in ruby/*/Gemfile; do \ bundle install --gemfile ${ruby_package_gemfile} done - - name: OpenSSL check - run: | - brew uses --installed openssl@4 - brew deps --installed --tree - env - name: Setup ccache run: | ci/scripts/ccache_setup.sh From 28c9e9d77a48e064df563e1d6014444d2ea61935 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 09:02:05 +0900 Subject: [PATCH 06/22] Revert "Set OpenSSL@3 path" This reverts commit ec9a2436055aa0c7dd9180a6e0a3d0f766107ca3. --- .github/workflows/cpp.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml index 46fcc842c7e..493e7ab567a 100644 --- a/.github/workflows/cpp.yml +++ b/.github/workflows/cpp.yml @@ -228,7 +228,6 @@ jobs: ARROW_WITH_SNAPPY: ON ARROW_WITH_ZLIB: ON ARROW_WITH_ZSTD: ON - OPENSSL_ROOT_DIR: /opt/homebrew/opt/openssl@ steps: - name: CPU Info run: | @@ -247,11 +246,6 @@ jobs: run: | $(brew --prefix bash)/bin/bash \ ci/scripts/install_minio.sh latest ${ARROW_HOME} - - name: OpenSSL check - run: | - brew uses --installed openssl@4 - brew deps --installed --tree - env - name: Set up Python uses: actions/setup-python@v7 with: From f748b064e268745c152f6f8a2e6330ddf130b668 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 09:02:06 +0900 Subject: [PATCH 07/22] Revert "Use openssl@3" This reverts commit 35a97469ba6890cb317dfb953dd47a57367cf921. --- cpp/Brewfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/Brewfile b/cpp/Brewfile index 3f62b9cb1a6..bd5934ba38f 100644 --- a/cpp/Brewfile +++ b/cpp/Brewfile @@ -34,7 +34,7 @@ brew "lz4" brew "mimalloc" brew "ninja" brew "node" -brew "openssl@3" +brew "openssl@4" brew "pkgconf" brew "protobuf" brew "python" From 46951f37a8ee05711e42585ba0eb5c785c02445c Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 09:02:08 +0900 Subject: [PATCH 08/22] Revert "GH-51634: [C++][CI] Pin OpenSSL 3.x on macOS" This reverts commit b42e4009d8d75283d886d8d656bd44fdd9892592. --- cpp/Brewfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/Brewfile b/cpp/Brewfile index bd5934ba38f..811712516bf 100644 --- a/cpp/Brewfile +++ b/cpp/Brewfile @@ -34,7 +34,7 @@ brew "lz4" brew "mimalloc" brew "ninja" brew "node" -brew "openssl@4" +brew "openssl" brew "pkgconf" brew "protobuf" brew "python" From d8444ee16c904fd20132b82143185a09b742a7a1 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 09:06:47 +0900 Subject: [PATCH 09/22] [C++][CI] Prefer OpenSSL 3.x on macOS --- cpp/cmake_modules/FindOpenSSLAlt.cmake | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cpp/cmake_modules/FindOpenSSLAlt.cmake b/cpp/cmake_modules/FindOpenSSLAlt.cmake index 03c61e6ea2a..60575630bf7 100644 --- a/cpp/cmake_modules/FindOpenSSLAlt.cmake +++ b/cpp/cmake_modules/FindOpenSSLAlt.cmake @@ -22,7 +22,13 @@ endif() if(APPLE AND NOT OPENSSL_ROOT_DIR) find_program(BREW brew) if(BREW) - foreach(BREW_OPENSSL_VERSION "" "3" "3.0" "1.1") + # Homebrew on macOS now provides OpenSSL 4.x. + # However, google-cloud-cpp, which depends on OpenSSL, does not yet support OpenSSL 4.x. + # Therefore, explicitly prefer OpenSSL 3.x here. + # + # TODO: Once google-cloud-cpp supports OpenSSL 4.x, add `""` before `"3"`. + # https://github.com/apache/arrow/issues/51634 + foreach(BREW_OPENSSL_VERSION "3" "3.0" "1.1") set(BREW_OPENSSL_PACKAGE "openssl") if(BREW_OPENSSL_VERSION) string(APPEND BREW_OPENSSL_PACKAGE "@${BREW_OPENSSL_VERSION}") From aca7782c6b0b9b2cb082959344f940edd308bde9 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 09:10:43 +0900 Subject: [PATCH 10/22] Fix lint --- cpp/cmake_modules/FindOpenSSLAlt.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/cmake_modules/FindOpenSSLAlt.cmake b/cpp/cmake_modules/FindOpenSSLAlt.cmake index 60575630bf7..7d53e7ae091 100644 --- a/cpp/cmake_modules/FindOpenSSLAlt.cmake +++ b/cpp/cmake_modules/FindOpenSSLAlt.cmake @@ -25,7 +25,7 @@ if(APPLE AND NOT OPENSSL_ROOT_DIR) # Homebrew on macOS now provides OpenSSL 4.x. # However, google-cloud-cpp, which depends on OpenSSL, does not yet support OpenSSL 4.x. # Therefore, explicitly prefer OpenSSL 3.x here. - # + # # TODO: Once google-cloud-cpp supports OpenSSL 4.x, add `""` before `"3"`. # https://github.com/apache/arrow/issues/51634 foreach(BREW_OPENSSL_VERSION "3" "3.0" "1.1") From 075f7b49f8edf2ca6ab7b2c23b97ad0f90d1cf5d Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 10:00:22 +0900 Subject: [PATCH 11/22] Add openssl check --- .github/workflows/ruby.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 7feb8296a31..dd2e051628a 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -184,6 +184,13 @@ jobs: for ruby_package_gemfile in ruby/*/Gemfile; do \ bundle install --gemfile ${ruby_package_gemfile} done + - name: OpenSSL check + run: | + brew info openssl@4 + brew --prefix openssl@4 + brew --prefix openssl@3 + brew unlink openssl@4 + brew link openssl@3 - name: Setup ccache run: | ci/scripts/ccache_setup.sh From a2013f20891174817f0d9d9520328759a21e32a4 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 10:21:49 +0900 Subject: [PATCH 12/22] Remove debug --- .github/workflows/ruby.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index dd2e051628a..81de0e0abae 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -184,11 +184,15 @@ jobs: for ruby_package_gemfile in ruby/*/Gemfile; do \ bundle install --gemfile ${ruby_package_gemfile} done - - name: OpenSSL check + # Homebrew on macOS now provides OpenSSL 4.x. + # However, google-cloud-cpp, which depends on OpenSSL, + # does not yet support OpenSSL 4.x. + # Therefore, explicitly prefer OpenSSL 3.x here. + # + # TODO: Once google-cloud-cpp supports OpenSSL 4.x, remove this part + # https://github.com/googleapis/google-cloud-cpp/issues/16510 + - name: Link OpenSSL 3.x run: | - brew info openssl@4 - brew --prefix openssl@4 - brew --prefix openssl@3 brew unlink openssl@4 brew link openssl@3 - name: Setup ccache From 57ce834efc0ef0060c1e154f172980ad27d19556 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 10:22:04 +0900 Subject: [PATCH 13/22] Change reference link --- cpp/cmake_modules/FindOpenSSLAlt.cmake | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cpp/cmake_modules/FindOpenSSLAlt.cmake b/cpp/cmake_modules/FindOpenSSLAlt.cmake index 7d53e7ae091..e6f21f2d92f 100644 --- a/cpp/cmake_modules/FindOpenSSLAlt.cmake +++ b/cpp/cmake_modules/FindOpenSSLAlt.cmake @@ -23,11 +23,12 @@ if(APPLE AND NOT OPENSSL_ROOT_DIR) find_program(BREW brew) if(BREW) # Homebrew on macOS now provides OpenSSL 4.x. - # However, google-cloud-cpp, which depends on OpenSSL, does not yet support OpenSSL 4.x. + # However, google-cloud-cpp, which depends on OpenSSL, + # does not yet support OpenSSL 4.x. # Therefore, explicitly prefer OpenSSL 3.x here. # # TODO: Once google-cloud-cpp supports OpenSSL 4.x, add `""` before `"3"`. - # https://github.com/apache/arrow/issues/51634 + # https://github.com/googleapis/google-cloud-cpp/issues/16510 foreach(BREW_OPENSSL_VERSION "3" "3.0" "1.1") set(BREW_OPENSSL_PACKAGE "openssl") if(BREW_OPENSSL_VERSION) From 561f11fd47c8a11854d1c7513a7fec62f3d6bb30 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 11:48:34 +0900 Subject: [PATCH 14/22] Revert "Change reference link" This reverts commit 57ce834efc0ef0060c1e154f172980ad27d19556. --- cpp/cmake_modules/FindOpenSSLAlt.cmake | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cpp/cmake_modules/FindOpenSSLAlt.cmake b/cpp/cmake_modules/FindOpenSSLAlt.cmake index e6f21f2d92f..7d53e7ae091 100644 --- a/cpp/cmake_modules/FindOpenSSLAlt.cmake +++ b/cpp/cmake_modules/FindOpenSSLAlt.cmake @@ -23,12 +23,11 @@ if(APPLE AND NOT OPENSSL_ROOT_DIR) find_program(BREW brew) if(BREW) # Homebrew on macOS now provides OpenSSL 4.x. - # However, google-cloud-cpp, which depends on OpenSSL, - # does not yet support OpenSSL 4.x. + # However, google-cloud-cpp, which depends on OpenSSL, does not yet support OpenSSL 4.x. # Therefore, explicitly prefer OpenSSL 3.x here. # # TODO: Once google-cloud-cpp supports OpenSSL 4.x, add `""` before `"3"`. - # https://github.com/googleapis/google-cloud-cpp/issues/16510 + # https://github.com/apache/arrow/issues/51634 foreach(BREW_OPENSSL_VERSION "3" "3.0" "1.1") set(BREW_OPENSSL_PACKAGE "openssl") if(BREW_OPENSSL_VERSION) From 3d08d907171bab0e6b80f650a4db7bf93387b553 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 11:48:36 +0900 Subject: [PATCH 15/22] Revert "Remove debug" This reverts commit a2013f20891174817f0d9d9520328759a21e32a4. --- .github/workflows/ruby.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 81de0e0abae..dd2e051628a 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -184,15 +184,11 @@ jobs: for ruby_package_gemfile in ruby/*/Gemfile; do \ bundle install --gemfile ${ruby_package_gemfile} done - # Homebrew on macOS now provides OpenSSL 4.x. - # However, google-cloud-cpp, which depends on OpenSSL, - # does not yet support OpenSSL 4.x. - # Therefore, explicitly prefer OpenSSL 3.x here. - # - # TODO: Once google-cloud-cpp supports OpenSSL 4.x, remove this part - # https://github.com/googleapis/google-cloud-cpp/issues/16510 - - name: Link OpenSSL 3.x + - name: OpenSSL check run: | + brew info openssl@4 + brew --prefix openssl@4 + brew --prefix openssl@3 brew unlink openssl@4 brew link openssl@3 - name: Setup ccache From 4be3ec3e4b1661a41ae479db9d2beb9e708bb603 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 11:48:37 +0900 Subject: [PATCH 16/22] Revert "Add openssl check" This reverts commit 075f7b49f8edf2ca6ab7b2c23b97ad0f90d1cf5d. --- .github/workflows/ruby.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index dd2e051628a..7feb8296a31 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -184,13 +184,6 @@ jobs: for ruby_package_gemfile in ruby/*/Gemfile; do \ bundle install --gemfile ${ruby_package_gemfile} done - - name: OpenSSL check - run: | - brew info openssl@4 - brew --prefix openssl@4 - brew --prefix openssl@3 - brew unlink openssl@4 - brew link openssl@3 - name: Setup ccache run: | ci/scripts/ccache_setup.sh From 0ddbb641a631c89ddbc95d43929745b8c16e5142 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 11:48:38 +0900 Subject: [PATCH 17/22] Revert "Fix lint" This reverts commit aca7782c6b0b9b2cb082959344f940edd308bde9. --- cpp/cmake_modules/FindOpenSSLAlt.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/cmake_modules/FindOpenSSLAlt.cmake b/cpp/cmake_modules/FindOpenSSLAlt.cmake index 7d53e7ae091..60575630bf7 100644 --- a/cpp/cmake_modules/FindOpenSSLAlt.cmake +++ b/cpp/cmake_modules/FindOpenSSLAlt.cmake @@ -25,7 +25,7 @@ if(APPLE AND NOT OPENSSL_ROOT_DIR) # Homebrew on macOS now provides OpenSSL 4.x. # However, google-cloud-cpp, which depends on OpenSSL, does not yet support OpenSSL 4.x. # Therefore, explicitly prefer OpenSSL 3.x here. - # + # # TODO: Once google-cloud-cpp supports OpenSSL 4.x, add `""` before `"3"`. # https://github.com/apache/arrow/issues/51634 foreach(BREW_OPENSSL_VERSION "3" "3.0" "1.1") From c76a6fc23416d352f003832a740f3388882b0b40 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 11:48:39 +0900 Subject: [PATCH 18/22] Revert "[C++][CI] Prefer OpenSSL 3.x on macOS" This reverts commit d8444ee16c904fd20132b82143185a09b742a7a1. --- cpp/cmake_modules/FindOpenSSLAlt.cmake | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/cpp/cmake_modules/FindOpenSSLAlt.cmake b/cpp/cmake_modules/FindOpenSSLAlt.cmake index 60575630bf7..03c61e6ea2a 100644 --- a/cpp/cmake_modules/FindOpenSSLAlt.cmake +++ b/cpp/cmake_modules/FindOpenSSLAlt.cmake @@ -22,13 +22,7 @@ endif() if(APPLE AND NOT OPENSSL_ROOT_DIR) find_program(BREW brew) if(BREW) - # Homebrew on macOS now provides OpenSSL 4.x. - # However, google-cloud-cpp, which depends on OpenSSL, does not yet support OpenSSL 4.x. - # Therefore, explicitly prefer OpenSSL 3.x here. - # - # TODO: Once google-cloud-cpp supports OpenSSL 4.x, add `""` before `"3"`. - # https://github.com/apache/arrow/issues/51634 - foreach(BREW_OPENSSL_VERSION "3" "3.0" "1.1") + foreach(BREW_OPENSSL_VERSION "" "3" "3.0" "1.1") set(BREW_OPENSSL_PACKAGE "openssl") if(BREW_OPENSSL_VERSION) string(APPEND BREW_OPENSSL_PACKAGE "@${BREW_OPENSSL_VERSION}") From c66fffbe8d96ebcd634ea80b9b3aab043a961364 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 11:51:45 +0900 Subject: [PATCH 19/22] Add google-cloud-cpp openssl4 patch Co-authored-by: Sutou Kouhei --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 15 +++++++++++++++ .../google-cloud-cpp-openssl4-compatibility.patch | 13 +++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 cpp/cmake_modules/google-cloud-cpp-openssl4-compatibility.patch diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 2b703a3e1ca..2545ea6a18f 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -3715,6 +3715,21 @@ function(build_google_cloud_cpp_storage) ${CMAKE_CURRENT_LIST_DIR}/google-cloud-cpp-reproducible-builds.patch) endif() + # google-cloud-cpp, which depends on OpenSSL, + # does not yet support OpenSSL 4.x. + # + # TODO: Once google-cloud-cpp supports, + # remove this part and /google-cloud-cpp-openssl4-compatibility.patch file + # https://github.com/googleapis/google-cloud-cpp/issues/16510 + if(PATCH) + list(APPEND + GOOGLE_CLOUD_CPP_PATCH_COMMAND + ${PATCH} + -p1 + -i + ${CMAKE_CURRENT_LIST_DIR}/google-cloud-cpp-openssl4-compatibility.patch) + endif() + fetchcontent_declare(google_cloud_cpp ${FC_DECLARE_COMMON_OPTIONS} PATCH_COMMAND ${GOOGLE_CLOUD_CPP_PATCH_COMMAND} diff --git a/cpp/cmake_modules/google-cloud-cpp-openssl4-compatibility.patch b/cpp/cmake_modules/google-cloud-cpp-openssl4-compatibility.patch new file mode 100644 index 00000000000..cbf69cde4ca --- /dev/null +++ b/cpp/cmake_modules/google-cloud-cpp-openssl4-compatibility.patch @@ -0,0 +1,13 @@ +diff --git a/google/cloud/internal/openssl/parse_service_account_p12_file.cc b/google/cloud/internal/openssl/parse_service_account_p12_file.cc +index bb0462dcf0..9dfb59750b 100644 +--- a/google/cloud/internal/openssl/parse_service_account_p12_file.cc ++++ b/google/cloud/internal/openssl/parse_service_account_p12_file.cc +@@ -85,7 +85,7 @@ StatusOr ParseServiceAccountP12File( + } + + // This is automatically deleted by `cert`. +- X509_NAME* name = X509_get_subject_name(cert.get()); ++ auto* name = X509_get_subject_name(cert.get()); + + std::string service_account_id = [&name]() -> std::string { + auto openssl_free = [](void* addr) { OPENSSL_free(addr); }; From f5feca54f39b40842208be84375c668feea5cdfd Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 11:54:42 +0900 Subject: [PATCH 20/22] Fix message --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 2545ea6a18f..3c10c420c5a 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -3718,8 +3718,8 @@ function(build_google_cloud_cpp_storage) # google-cloud-cpp, which depends on OpenSSL, # does not yet support OpenSSL 4.x. # - # TODO: Once google-cloud-cpp supports, - # remove this part and /google-cloud-cpp-openssl4-compatibility.patch file + # TODO: Once google-cloud-cpp supports OpenSSL 4.x, + # remove this workaround and google-cloud-cpp-openssl4-compatibility.patch. # https://github.com/googleapis/google-cloud-cpp/issues/16510 if(PATCH) list(APPEND From 4c6bfbb46b3bb09fe54f6c67f28ecbeaef4d38c5 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 12:29:50 +0900 Subject: [PATCH 21/22] Add lisence --- ...oogle-cloud-cpp-openssl4-compatibility.patch | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cpp/cmake_modules/google-cloud-cpp-openssl4-compatibility.patch b/cpp/cmake_modules/google-cloud-cpp-openssl4-compatibility.patch index cbf69cde4ca..8a4dfae3a7b 100644 --- a/cpp/cmake_modules/google-cloud-cpp-openssl4-compatibility.patch +++ b/cpp/cmake_modules/google-cloud-cpp-openssl4-compatibility.patch @@ -1,3 +1,20 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. + diff --git a/google/cloud/internal/openssl/parse_service_account_p12_file.cc b/google/cloud/internal/openssl/parse_service_account_p12_file.cc index bb0462dcf0..9dfb59750b 100644 --- a/google/cloud/internal/openssl/parse_service_account_p12_file.cc From 8a0950e47279c7eb1e40231f33e3eebc1552a314 Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Wed, 30 Sep 2026 12:30:07 +0900 Subject: [PATCH 22/22] Update patch command --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 3c10c420c5a..807387fa830 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -3722,6 +3722,10 @@ function(build_google_cloud_cpp_storage) # remove this workaround and google-cloud-cpp-openssl4-compatibility.patch. # https://github.com/googleapis/google-cloud-cpp/issues/16510 if(PATCH) + if(GOOGLE_CLOUD_CPP_PATCH_COMMAND) + list(APPEND GOOGLE_CLOUD_CPP_PATCH_COMMAND COMMAND) + endif() + list(APPEND GOOGLE_CLOUD_CPP_PATCH_COMMAND ${PATCH}