# 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. ARG arch=amd64 FROM ${arch}/debian:13 ARG arch ENV DEBIAN_FRONTEND noninteractive ARG llvm RUN apt-get update -y -q && \ apt-get install -y -q --no-install-recommends \ apt-transport-https \ ca-certificates \ gnupg \ lsb-release \ wget && \ if [ ${llvm} -ge 20 ]; then \ wget -O /usr/share/keyrings/llvm-snapshot.asc \ https://apt.llvm.org/llvm-snapshot.gpg.key && \ (echo "Types: deb"; \ echo "URIs: https://apt.llvm.org/$(lsb_release --codename --short)/"; \ echo "Suites: llvm-toolchain-$(lsb_release --codename --short)-${llvm}"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/llvm-snapshot.asc") | \ tee /etc/apt/sources.list.d/llvm.sources; \ fi && \ apt-get update -y -q && \ apt-get install -y -q --no-install-recommends \ autoconf \ cargo \ ccache \ clang-${llvm} \ cmake \ curl \ g++ \ gcc \ gdb \ git \ libbenchmark-dev \ libboost-filesystem-dev \ libboost-system-dev \ libbrotli-dev \ libbz2-dev \ libcurl4-openssl-dev \ libgflags-dev \ libgmock-dev \ libgoogle-glog-dev \ libgrpc++-dev \ liblz4-dev \ libopentelemetry-proto-dev \ libprotobuf-dev \ libprotoc-dev \ libre2-dev \ libsnappy-dev \ libsqlite3-dev \ libssl-dev \ libthrift-dev \ libutf8proc-dev \ libxml2-dev \ libzstd-dev \ llvm-${llvm}-dev \ make \ ninja-build \ nlohmann-json3-dev \ npm \ opentelemetry-cpp-dev \ patch \ pkg-config \ protobuf-compiler-grpc \ python3-dev \ python3-pip \ python3-venv \ rapidjson-dev \ rsync \ rustc \ tzdata \ tzdata-legacy \ zlib1g-dev && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* COPY ci/scripts/install_minio.sh /arrow/ci/scripts/ RUN /arrow/ci/scripts/install_minio.sh latest /usr/local COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts/ RUN /arrow/ci/scripts/install_gcs_testbench.sh default COPY ci/scripts/install_azurite.sh /arrow/ci/scripts/ RUN /arrow/ci/scripts/install_azurite.sh COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/ RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin # Prioritize system packages and local installation. ENV ARROW_ACERO=ON \ ARROW_AZURE=ON \ ARROW_BUILD_TESTS=ON \ ARROW_DATASET=ON \ ARROW_DEPENDENCY_SOURCE=SYSTEM \ ARROW_DATASET=ON \ ARROW_FLIGHT=ON \ ARROW_FLIGHT_SQL=ON \ ARROW_GANDIVA=ON \ ARROW_GCS=ON \ ARROW_HOME=/usr/local \ ARROW_JEMALLOC=ON \ ARROW_ORC=ON \ ARROW_PARQUET=ON \ ARROW_S3=ON \ ARROW_SUBSTRAIT=ON \ ARROW_USE_CCACHE=ON \ ARROW_WITH_BROTLI=ON \ ARROW_WITH_BZ2=ON \ ARROW_WITH_LZ4=ON \ ARROW_WITH_OPENTELEMETRY=ON \ ARROW_WITH_SNAPPY=ON \ ARROW_WITH_ZLIB=ON \ ARROW_WITH_ZSTD=ON \ AWSSDK_SOURCE=BUNDLED \ Azure_SOURCE=BUNDLED \ google_cloud_cpp_storage_SOURCE=BUNDLED \ ORC_SOURCE=BUNDLED \ PATH=/usr/lib/ccache/:$PATH \ PYTHON=python3 \ xsimd_SOURCE=BUNDLED