Uh oh!
There was an error while loading. Please reload this page.
GH-48926: [C++] Upgrade Abseil/Protobuf/GRPC/Google-Cloud-CPP bundled versions - #48964
Conversation
raulcd
commented
Jan 23, 2026
@kou I am submitting this to show some issues I am facing and see if you have any idea on how to solve them. Basically I've tried to bump protobuf/grpc and the related abseil used by default on that version of protobuf. Building flight with bundled dependencies works great but when I want to also build google cloud cpp I start having some problems because newer abseil defines a crc32c target but crc32c also defines the same target name and Google Cloud requires both abseil and crc32c. I've tried several things locally but to be fair none of them seem to help me move forward. Any idea of how to proceed with those? |
kou
commented
Jan 23, 2026
googleapis/google-cloud-cpp#15402 may solve it. |
Uh oh!
There was an error while loading. Please reload this page.
kou
commented
Jan 25, 2026
googleapis/google-cloud-cpp#15402 (comment)
|
raulcd
commented
Jan 27, 2026
@kou should we try patching ourselves with the patch (or similar) you proposed? I haven't been able to get a clear understanding on when are they planning to have v3 |
kou
commented
Jan 27, 2026
If we want to try before the v3.0.0 release, we can use We don't need to use my suggested patch. |
raulcd
commented
Jan 28, 2026
I gave that a quick try building from the tag and removing crc32c, see last commit: cdf2f31 Some more work is required to upgrade :( |
raulcd
commented
Mar 13, 2026
@kou I've been able to have a fully bundled dependency build locally with the updated versions! 🥳 we are closer to having this done! Now we have to fix the rest of CI jobs! The main friction is currently coming from the fact that Google Cloud CPP seems to unconditionally require OpenTelemetry to build and we have several jobs where we are not building with OpenTelemetry enabled. Nonetheless I think this is a great step, I've been able to build with all our dependencies ( |
raulcd
commented
Mar 13, 2026
Note to self, I should fix this warning: CMakeWarning (dev) atC:/hostedtoolcache/windows/Ruby/4.0.1/x64/msys64/ucrt64/share/cmake/Modules/FetchContent.cmake:1963 (message):CallingFetchContent_Populate(opentelemetry_cpp) isdeprecated,callFetchContent_MakeAvailable(opentelemetry_cpp) instead.PolicyCMP0169canbesettoOLDtoallowFetchContent_Populate(opentelemetry_cpp) tobecalleddirectlyfornow,buttheabilitytocallitwithdeclareddetailswillberemovedcompletelyinafutureversion.CallStack (mostrecentcallfirst):cmake_modules/ThirdpartyToolchain.cmake:3505 (fetchcontent_populate)
cmake_modules/ThirdpartyToolchain.cmake:193 (build_google_cloud_cpp_storage)
cmake_modules/ThirdpartyToolchain.cmake:304 (build_dependency)
cmake_modules/ThirdpartyToolchain.cmake:3577 (resolve_dependency)
CMakeLists.txt:538 (include) |
kou
commented
Mar 14, 2026
Great! I'll also take a look at the Google Cloud C++ and OpenTelemetry later. |
raulcd
commented
Mar 26, 2026
The MinGW failures seems related to something that happened in the past but I can't really understand what is happening: Seems related to old issues raised by us on both MinGW and GCP, @kou you did open the original issues, any idea?
The only thing I've found is that MinGW's On another note, I've been able to fix some more CI jobs, I'll continue pushing this. |
kou
commented
Mar 26, 2026
Hmm. I checked Google Cloud C++ changes but I couldn't find any related changes... How about specifying arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake Lines 3878 to 3884 in 560ef02 BTW, we can switch to (Sorry. I haven't taken a look at the Google Cloud C++ and OpenTelemetry...) |
raulcd
commented
Mar 27, 2026
@kou that was a nice one. I also have had to apply a patch to google-cloud-cpp with the guard for some new bcrypt algorithms missing on old MinGW, probably something we can share upstream for a patch (similar to the previous one). I'll start exercising extended CI (Linux Packaging, extra C++) next week to continue fixing CI but this is "looking better" than some weeks ago now. |
kou
commented
Mar 28, 2026
Let's try it. But they may reject it because the latest MinGW doesn't need the workaround. If it's reject, let's keep the patch in our end until we drop support for old MinGW. Or we may want to disable GCS on Windows with R build like we did for macOS: #49068 @thisisnic@jonkeane Do you have any opinion for GCS on Windows? |
thisisnic
commented
Mar 28, 2026
CRAN uses MinGW-w64 version 11.0.1, so we will end up with that issue there. Hard to say as it's unclear how many users use GCS on Windows - what do you think @jonkeane ? |
raulcd
commented
Mar 30, 2026
@github-actions crossbow submit -g cpp |
…raries Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
…able instead of fetchcontent_populate with old policy
raulcd
commented
Apr 14, 2026
@github-actions crossbow submit -g cpp |
Revision: fc3cb96 Submitted crossbow builds: ursacomputing/crossbow @ actions-1bc4f30025 |
raulcd
commented
Apr 14, 2026
I've rebased and re-triggered CI. As RC0 looks good and CI looks good here. I plan to merge tomorrow targeting 25.0.0 |
After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit b95645d. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. It also includes information about 2 possible false positives for unstable benchmarks that are known to sometimes produce them. |
…undled versions (apache#48964) ### Rationale for this change The versions we are currently using are really old. There are several advantages on using newer bundled versions but in general they'll bring bug fixes, security fixes and new features. ### What changes are included in this PR? - Update ABSL from `20211102.0` to `20250127.0` - Remove now unnecessary CRC32C - Update Google Cloud CPP from `v2.22.0` to `v3.2.0` - Updatge gRPC from `v1.46.3` to `v1.76.0` - Update Protobuf from `v21.3` to `v31.1` - Older Ubuntu, Debian and RHEL will have to bundle newer ABSL due to CRC32C requirements. - A couple of minor patches required for Google Cloud old MINGW and protobuf emscripten builds. - Other minor changes and requirements to build. ### Are these changes tested? Yes via CI ### Are there any user-facing changes? Not directly but some old versions (like compiling Google Cloud with old system Abseil) might stop working. * GitHub Issue: apache#48926 Lead-authored-by: Raúl Cumplido <raulcumplido@gmail.com> Co-authored-by: Sutou Kouhei <kou@cozmixng.org> Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
Rationale for this change
The versions we are currently using are really old. There are several advantages on using newer bundled versions but in general they'll bring bug fixes, security fixes and new features.
What changes are included in this PR?
20211102.0to20250127.0v2.22.0tov3.2.0v1.46.3tov1.76.0v21.3tov31.1Are these changes tested?
Yes via CI
Are there any user-facing changes?
Not directly but some old versions (like compiling Google Cloud with old system Abseil) might stop working.