From 9c1985072d50a269b3024c72b95e87444eef9201 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Wed, 9 Sep 2026 09:38:29 +0200 Subject: [PATCH 1/2] GH-51254: [C++][CI] Move ubuntu-cpp-bundled-offline to C++ Extra --- .github/workflows/cpp_extra.yml | 5 +++++ dev/tasks/tasks.yml | 9 --------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cpp_extra.yml b/.github/workflows/cpp_extra.yml index 536dc5a3a82a..36ef29822167 100644 --- a/.github/workflows/cpp_extra.yml +++ b/.github/workflows/cpp_extra.yml @@ -113,6 +113,11 @@ jobs: -e BUILD_WARNING_LEVEL=PRODUCTION runs-on: "runs-on=${{ github.run_id }}/family=x8i.2xlarge/volume=80gb/spot=capacity-optimized" title: AMD64 Ubuntu Large Memory Tests + - image: ubuntu-cpp-bundled-offline + runs-on: ubuntu-latest + envs: + - UBUNTU=24.04 + title: AMD64 Ubuntu offline bundled build - image: conda-cpp run-options: >- -e ARROW_USE_MESON=ON diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml index 523e9a1fbf87..65e22508bcd3 100644 --- a/dev/tasks/tasks.yml +++ b/dev/tasks/tasks.yml @@ -382,15 +382,6 @@ tasks: UBUNTU: 22.04 image: ubuntu-cpp-bundled - test-ubuntu-24.04-cpp-bundled-offline: - ci: github - template: docker-tests/github.linux.yml - params: - env: - UBUNTU: 24.04 - image: ubuntu-cpp-bundled-offline - timeout: 120 - test-ubuntu-24.04-cpp-gcc-13-bundled: ci: github template: docker-tests/github.linux.yml From d6f1ee1133a29d5d3051974d6aa25147ca5d7b1f Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Wed, 9 Sep 2026 11:59:11 +0200 Subject: [PATCH 2/2] Remove ccache double-wrapping --- .github/workflows/cpp_extra.yml | 2 +- ci/docker/alpine-linux-3.22-cpp.dockerfile | 1 - ci/docker/debian-13-cpp.dockerfile | 1 - ci/docker/debian-experimental-cpp.dockerfile | 1 - ci/docker/fedora-42-cpp.dockerfile | 1 - ci/docker/ubuntu-22.04-cpp-minimal.dockerfile | 1 - ci/docker/ubuntu-22.04-cpp.dockerfile | 1 - ci/docker/ubuntu-24.04-cpp-minimal.dockerfile | 1 - ci/docker/ubuntu-24.04-cpp.dockerfile | 1 - compose.yaml | 1 - cpp/CMakeLists.txt | 3 +++ cpp/thirdparty/download_dependencies.sh | 2 ++ 12 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.github/workflows/cpp_extra.yml b/.github/workflows/cpp_extra.yml index 36ef29822167..5236ea63573a 100644 --- a/.github/workflows/cpp_extra.yml +++ b/.github/workflows/cpp_extra.yml @@ -117,7 +117,7 @@ jobs: runs-on: ubuntu-latest envs: - UBUNTU=24.04 - title: AMD64 Ubuntu offline bundled build + title: AMD64 Ubuntu Bundled Offline - image: conda-cpp run-options: >- -e ARROW_USE_MESON=ON diff --git a/ci/docker/alpine-linux-3.22-cpp.dockerfile b/ci/docker/alpine-linux-3.22-cpp.dockerfile index 766e02e24cbf..edf2481ef34a 100644 --- a/ci/docker/alpine-linux-3.22-cpp.dockerfile +++ b/ci/docker/alpine-linux-3.22-cpp.dockerfile @@ -104,7 +104,6 @@ ENV ARROW_ACERO=ON \ AWSSDK_SOURCE=BUNDLED \ google_cloud_cpp_storage_SOURCE=BUNDLED \ MUSL_LOCPATH=/usr/share/i18n/locales/musl \ - PATH=/usr/lib/ccache/bin:$PATH \ # We can remove this once # https://gitlab.alpinelinux.org/alpine/aports/-/work_items/18353 # is fixed. diff --git a/ci/docker/debian-13-cpp.dockerfile b/ci/docker/debian-13-cpp.dockerfile index ebda8f3847dc..31ba71076357 100644 --- a/ci/docker/debian-13-cpp.dockerfile +++ b/ci/docker/debian-13-cpp.dockerfile @@ -137,7 +137,6 @@ ENV ARROW_ACERO=ON \ Azure_SOURCE=BUNDLED \ google_cloud_cpp_storage_SOURCE=BUNDLED \ ORC_SOURCE=BUNDLED \ - PATH=/usr/lib/ccache/:$PATH \ PYTHON=python3 \ simdjson_SOURCE=BUNDLED \ xsimd_SOURCE=BUNDLED diff --git a/ci/docker/debian-experimental-cpp.dockerfile b/ci/docker/debian-experimental-cpp.dockerfile index 359ac700806b..d658127063e6 100644 --- a/ci/docker/debian-experimental-cpp.dockerfile +++ b/ci/docker/debian-experimental-cpp.dockerfile @@ -143,6 +143,5 @@ ENV ARROW_ACERO=ON \ CXX=g++${gcc:+-${gcc}} \ google_cloud_cpp_storage_SOURCE=BUNDLED \ ORC_SOURCE=BUNDLED \ - PATH=/usr/lib/ccache/:$PATH \ PYTHON=python3 \ xsimd_SOURCE=BUNDLED diff --git a/ci/docker/fedora-42-cpp.dockerfile b/ci/docker/fedora-42-cpp.dockerfile index f3bdda00a1b4..ae49ad18dbb6 100644 --- a/ci/docker/fedora-42-cpp.dockerfile +++ b/ci/docker/fedora-42-cpp.dockerfile @@ -109,7 +109,6 @@ ENV ARROW_ACERO=ON \ opentelemetry_cpp_SOURCE=BUNDLED \ PARQUET_BUILD_EXAMPLES=ON \ PARQUET_BUILD_EXECUTABLES=ON \ - PATH=/usr/lib/ccache/:$PATH \ PYARROW_TEST_GANDIVA=OFF \ simdjson_SOURCE=BUNDLED \ xsimd_SOURCE=BUNDLED diff --git a/ci/docker/ubuntu-22.04-cpp-minimal.dockerfile b/ci/docker/ubuntu-22.04-cpp-minimal.dockerfile index e77675b8a847..e0f548cb6f8e 100644 --- a/ci/docker/ubuntu-22.04-cpp-minimal.dockerfile +++ b/ci/docker/ubuntu-22.04-cpp-minimal.dockerfile @@ -108,5 +108,4 @@ ENV ARROW_ACERO=ON \ CMAKE_GENERATOR="Unix Makefiles" \ PARQUET_BUILD_EXAMPLES=ON \ PARQUET_BUILD_EXECUTABLES=ON \ - PATH=/usr/lib/ccache/:$PATH \ PYTHON=python3 diff --git a/ci/docker/ubuntu-22.04-cpp.dockerfile b/ci/docker/ubuntu-22.04-cpp.dockerfile index 54b671c7a57e..64b2f8c1dda8 100644 --- a/ci/docker/ubuntu-22.04-cpp.dockerfile +++ b/ci/docker/ubuntu-22.04-cpp.dockerfile @@ -225,7 +225,6 @@ ENV absl_SOURCE=BUNDLED \ ORC_SOURCE=BUNDLED \ PARQUET_BUILD_EXAMPLES=ON \ PARQUET_BUILD_EXECUTABLES=ON \ - PATH=/usr/lib/ccache/:$PATH \ PYTHON=python3 \ simdjson_SOURCE=BUNDLED \ xsimd_SOURCE=BUNDLED diff --git a/ci/docker/ubuntu-24.04-cpp-minimal.dockerfile b/ci/docker/ubuntu-24.04-cpp-minimal.dockerfile index 4ba362f82667..3a79b28598ef 100644 --- a/ci/docker/ubuntu-24.04-cpp-minimal.dockerfile +++ b/ci/docker/ubuntu-24.04-cpp-minimal.dockerfile @@ -105,5 +105,4 @@ ENV ARROW_ACERO=ON \ CMAKE_GENERATOR="Unix Makefiles" \ PARQUET_BUILD_EXAMPLES=ON \ PARQUET_BUILD_EXECUTABLES=ON \ - PATH=/usr/lib/ccache/:$PATH \ PYTHON=python3 diff --git a/ci/docker/ubuntu-24.04-cpp.dockerfile b/ci/docker/ubuntu-24.04-cpp.dockerfile index 00cc8796c546..9cdd3c562dce 100644 --- a/ci/docker/ubuntu-24.04-cpp.dockerfile +++ b/ci/docker/ubuntu-24.04-cpp.dockerfile @@ -219,7 +219,6 @@ ENV absl_SOURCE=BUNDLED \ ORC_SOURCE=BUNDLED \ PARQUET_BUILD_EXAMPLES=ON \ PARQUET_BUILD_EXECUTABLES=ON \ - PATH=/usr/lib/ccache/:$PATH \ PYTHON=python3 \ simdjson_SOURCE=BUNDLED \ xsimd_SOURCE=BUNDLED diff --git a/compose.yaml b/compose.yaml index 5cf62a13aa20..04a8cf36fb2c 100644 --- a/compose.yaml +++ b/compose.yaml @@ -514,7 +514,6 @@ services: ARROW_OFFLINE: ON # Apache ORC always uses external orc-format. ARROW_ORC: OFF - CMAKE_GENERATOR: "Unix Makefiles" volumes: *ubuntu-volumes command: *cpp-command diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index fd5eaf77f23b..b4dd0e1a7779 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -263,6 +263,9 @@ if(ARROW_USE_CCACHE AND NOT CMAKE_C_COMPILER_LAUNCHER AND NOT CMAKE_CXX_COMPILER_LAUNCHER) + # XXX This does not detect if ccache is enabled externally, for example + # by adding `/usr/lib/ccache` to PATH in which case `cc` resolves to + # `/usr/lib/ccache/cc`. Such double-wrapping of ccache is suboptimal. find_program(CCACHE_FOUND ccache) if(CCACHE_FOUND) diff --git a/cpp/thirdparty/download_dependencies.sh b/cpp/thirdparty/download_dependencies.sh index e85e1cc0b3b5..de6c5b5b88b3 100755 --- a/cpp/thirdparty/download_dependencies.sh +++ b/cpp/thirdparty/download_dependencies.sh @@ -38,6 +38,8 @@ download_dependency() { local url=$1 local out=$2 + echo "Downloading ${url}" 1>&2 + wget --quiet --continue --output-document="${out}" "${url}" || \ (echo "Failed downloading ${url}" 1>&2; exit 1) }