Skip to content

Commit b95645d

Browse files
raulcdkou
andauthored
GH-48926: [C++] Upgrade Abseil/Protobuf/GRPC/Google-Cloud-CPP bundled versions (#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: #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>
1 parent 720dcbe commit b95645d

10 files changed

Lines changed: 396 additions & 222 deletions

File tree

.github/workflows/package_linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ jobs:
8484
needs.check-labels.outputs.force == 'true' ||
8585
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
8686
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: Package: Linux')
87-
timeout-minutes: 75
87+
timeout-minutes: 120
8888
strategy:
8989
fail-fast: false
9090
matrix:

.github/workflows/ruby.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ jobs:
108108
-e ARROW_FLIGHT=ON \
109109
-e ARROW_FLIGHT_SQL=ON \
110110
-e ARROW_GCS=ON \
111+
-e nlohmann_json_SOURCE=BUNDLED \
111112
-e Protobuf_SOURCE=BUNDLED \
112113
-e gRPC_SOURCE=BUNDLED \
113114
ubuntu-ruby

ci/docker/ubuntu-24.04-cpp.dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,10 @@ RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin
174174
#
175175
# The following dependencies will be downloaded due to missing/invalid packages
176176
# provided by the distribution:
177+
# - Abseil is old and we require a version that has CRC32C
177178
# - opentelemetry-cpp-dev is not packaged
178-
ENV ARROW_ACERO=ON \
179+
ENV absl_SOURCE=BUNDLED \
180+
ARROW_ACERO=ON \
179181
ARROW_AZURE=ON \
180182
ARROW_BUILD_STATIC=ON \
181183
ARROW_BUILD_TESTS=ON \

ci/scripts/cpp_build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ else
272272
-DgRPC_SOURCE=${gRPC_SOURCE:-} \
273273
-DGTest_SOURCE=${GTest_SOURCE:-} \
274274
-Dlz4_SOURCE=${lz4_SOURCE:-} \
275+
-Dnlohmann_json_SOURCE=${nlohmann_json_SOURCE:-} \
275276
-Dopentelemetry-cpp_SOURCE=${opentelemetry_cpp_SOURCE:-} \
276277
-DORC_SOURCE=${ORC_SOURCE:-} \
277278
-DPARQUET_BUILD_EXAMPLES=${PARQUET_BUILD_EXAMPLES:-OFF} \

0 commit comments

Comments
 (0)