#!/bin/sh # Downloads every source archive used by the Dockerfiles into the sources/ directory. # Each entry is " [ ...]"; existing files are kept. set -eu if ! command -v aria2c >/dev/null 2>&1; then echo "Error: aria2c is required." >&2 exit 1 fi SOURCES_DIR="${SOURCES_DIR:-$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)/sources}" mkdir -p "$SOURCES_DIR" cd "$SOURCES_DIR" fetch() { name=$1 shift if [ -s "$name" ]; then return 0 fi # aria2c fails over between the mirror URLs of one file. if ! aria2c --max-connection-per-server=1 --retry-wait=3 --max-tries=3 \ --allow-overwrite=true --auto-file-renaming=false \ --dir=. --out="$name.part" "$@"; then rm -f "$name.part" "$name.part.aria2" echo "Error: failed to download $name" >&2 return 1 fi mv "$name.part" "$name" } fetch boost_1_83_0.tar.bz2 \ https://mirrors.aliyun.com/blfs/conglomeration/boost/boost_1_83_0.tar.bz2 \ https://archives.boost.io/release/1.83.0/source/boost_1_83_0.tar.bz2 \ https://ftp.osuosl.org/pub/blfs/conglomeration/boost/boost_1_83_0.tar.bz2 \ https://downloads.sourceforge.net/project/boost/boost/1.83.0/boost_1_83_0.tar.bz2 fetch openssl-openssl-3.0.15.tar.gz \ https://wangguofang.net/github.com/openssl/openssl/archive/openssl-3.0.15.tar.gz fetch libevent-release-2.1.12-stable.tar.gz \ https://wangguofang.net/github.com/libevent/libevent/archive/release-2.1.12-stable.tar.gz fetch zstd-v1.5.7.tar.gz \ https://wangguofang.net/github.com/facebook/zstd/archive/v1.5.7.tar.gz fetch zlib-v1.3.1.tar.gz \ https://wangguofang.net/github.com/madler/zlib/archive/v1.3.1.tar.gz fetch protobuf-v3.21.12.tar.gz \ https://wangguofang.net/github.com/protocolbuffers/protobuf/archive/v3.21.12.tar.gz fetch fmt-12.2.0.tar.gz \ https://wangguofang.net/github.com/fmtlib/fmt/archive/12.2.0.tar.gz fetch spdlog-v1.17.0.tar.gz \ https://wangguofang.net/github.com/gabime/spdlog/archive/v1.17.0.tar.gz fetch magic_enum-v0.9.8.tar.gz \ https://wangguofang.net/github.com/Neargye/magic_enum/archive/v0.9.8.tar.gz fetch fast_float-v8.2.10.tar.gz \ https://wangguofang.net/github.com/fastfloat/fast_float/archive/v8.2.10.tar.gz fetch sparse-map-v0.7.0.tar.gz \ https://wangguofang.net/github.com/Tessil/sparse-map/archive/v0.7.0.tar.gz fetch gflags-v2.3.1.tar.gz \ https://wangguofang.net/github.com/gflags/gflags/archive/v2.3.1.tar.gz fetch glog-v0.7.1.tar.gz \ https://wangguofang.net/github.com/google/glog/archive/v0.7.1.tar.gz fetch liburing-liburing-2.15.tar.gz \ https://wangguofang.net/github.com/axboe/liburing/archive/liburing-2.15.tar.gz fetch libaio_0.3.113.orig.tar.gz \ https://mirrors.tuna.tsinghua.edu.cn/debian/pool/main/liba/libaio/libaio_0.3.113.orig.tar.gz fetch libdwarf-code-v2.3.2.tar.gz \ https://wangguofang.net/github.com/davea42/libdwarf-code/archive/v2.3.2.tar.gz fetch libsodium-1.0.20-RELEASE.tar.gz \ https://wangguofang.net/github.com/jedisct1/libsodium/archive/1.0.20-RELEASE.tar.gz fetch xxHash-v0.8.3.tar.gz \ https://wangguofang.net/github.com/Cyan4973/xxHash/archive/v0.8.3.tar.gz fetch googletest-v1.17.0.tar.gz \ https://wangguofang.net/github.com/google/googletest/archive/v1.17.0.tar.gz fetch numactl-v2.0.19.tar.gz \ https://wangguofang.net/github.com/numactl/numactl/archive/v2.0.19.tar.gz fetch folly-v2026.08.03.00.tar.gz \ https://wangguofang.net/github.com/facebook/folly/archive/v2026.08.03.00.tar.gz fetch fizz-v2026.08.03.00.tar.gz \ https://wangguofang.net/github.com/facebookincubator/fizz/archive/v2026.08.03.00.tar.gz fetch wangle-v2026.08.03.00.tar.gz \ https://wangguofang.net/github.com/facebook/wangle/archive/v2026.08.03.00.tar.gz fetch mvfst-v2026.08.03.00.tar.gz \ https://wangguofang.net/github.com/facebook/mvfst/archive/v2026.08.03.00.tar.gz fetch fbthrift-v2026.08.03.00.tar.gz \ https://wangguofang.net/github.com/facebook/fbthrift/archive/v2026.08.03.00.tar.gz fetch CacheLib-v2026.08.03.00.tar.gz \ https://wangguofang.net/github.com/facebook/CacheLib/archive/v2026.08.03.00.tar.gz fetch util-linux-2.42.2.tar.xz \ https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz fetch libzmq-v4.3.5.tar.gz \ https://wangguofang.net/github.com/zeromq/libzmq/archive/v4.3.5.tar.gz fetch czmq-v4.2.1.tar.gz \ https://wangguofang.net/github.com/zeromq/czmq/archive/v4.2.1.tar.gz fetch jsoncpp-1.9.8.tar.gz \ https://wangguofang.net/github.com/open-source-parsers/jsoncpp/archive/1.9.8.tar.gz fetch librdkafka-v2.15.0.tar.gz \ https://wangguofang.net/github.com/confluentinc/librdkafka/archive/v2.15.0.tar.gz fetch json-c-json-c-0.18-20240915.tar.gz \ https://wangguofang.net/github.com/json-c/json-c/archive/json-c-0.18-20240915.tar.gz fetch rapidjson-v1.1.0.tar.gz \ https://wangguofang.net/github.com/Tencent/rapidjson/archive/v1.1.0.tar.gz fetch curl-curl-8_21_0.tar.gz \ https://wangguofang.net/github.com/curl/curl/archive/curl-8_21_0.tar.gz fetch hiredis-v1.4.1.tar.gz \ https://wangguofang.net/github.com/redis/hiredis/archive/v1.4.1.tar.gz fetch gmp-6.3.0.tar.xz \ https://mirrors.ustc.edu.cn/gnu/gmp/gmp-6.3.0.tar.xz \ https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.3.0.tar.xz fetch nettle-3.10.2.tar.gz \ https://mirrors.ustc.edu.cn/gnu/nettle/nettle-3.10.2.tar.gz \ https://mirrors.tuna.tsinghua.edu.cn/gnu/nettle/nettle-3.10.2.tar.gz fetch gnutls-3.8.13.tar.xz \ https://mirrors.dotsrc.org/gcrypt/gnutls/v3.8/gnutls-3.8.13.tar.xz fetch libmaxminddb-1.13.3.tar.gz \ https://wangguofang.net/github.com/maxmind/libmaxminddb/archive/1.13.3.tar.gz fetch libyaml-0.2.5.tar.gz \ https://wangguofang.net/github.com/yaml/libyaml/archive/0.2.5.tar.gz fetch libxml2-v2.15.3.tar.gz \ https://wangguofang.net/github.com/GNOME/libxml2/archive/refs/tags/v2.15.3.tar.gz fetch redis-plus-plus-1.3.15.tar.gz \ https://wangguofang.net/github.com/sewenew/redis-plus-plus/archive/1.3.15.tar.gz fetch libunwind-v1.8.3.tar.gz \ https://wangguofang.net/github.com/libunwind/libunwind/archive/v1.8.3.tar.gz fetch jemalloc-5.3.1.tar.gz \ https://wangguofang.net/github.com/jemalloc/jemalloc/archive/5.3.1.tar.gz fetch libproxyprotocol-v1.3.3.tar.gz \ https://wangguofang.net/github.com/kosmas-valianos/libproxyprotocol/archive/v1.3.3.tar.gz fetch xsimd-14.2.0.tar.gz \ https://wangguofang.net/github.com/xtensor-stack/xsimd/archive/14.2.0.tar.gz fetch thrift-v0.22.0.tar.gz \ https://wangguofang.net/github.com/apache/thrift/archive/v0.22.0.tar.gz fetch snappy-1.2.2.tar.gz \ https://wangguofang.net/github.com/google/snappy/archive/1.2.2.tar.gz fetch lz4-v1.10.0.tar.gz \ https://wangguofang.net/github.com/lz4/lz4/archive/v1.10.0.tar.gz fetch arrow-apache-arrow-25.0.1.tar.gz \ https://wangguofang.net/github.com/apache/arrow/archive/apache-arrow-25.0.1.tar.gz # Rust ships one standalone tarball per architecture, named after `uname -m` (x86_64, aarch64). # It lives in its own sources/rust/ directory, which the Dockerfiles mount as a whole and pick the # archive from by architecture, so adding other sources never invalidates the Rust build layer. rust_arch="$(uname -m)" # macOS reports arm64 where Linux (and Rust) call it aarch64. [ "$rust_arch" = arm64 ] && rust_arch=aarch64 rust_triple="$rust_arch-unknown-linux-gnu" mkdir -p rust fetch "rust/rust-1.99.1-$rust_triple.tar.xz" \ "https://mirrors.cloud.tencent.com/rustup/dist/rust-1.99.1-$rust_triple.tar.xz" \ "https://mirrors.tuna.tsinghua.edu.cn/rustup/dist/2026-10-15/rust-1.99.1-$rust_triple.tar.xz" \ "https://repo.huaweicloud.com/rustup/dist/rust-1.99.1-$rust_triple.tar.xz" \ "https://mirrors.ustc.edu.cn/rust-static/dist/rust-1.99.1-$rust_triple.tar.xz" \ "https://static.rust-lang.org/dist/rust-1.99.1-$rust_triple.tar.xz" fetch duckdb-v1.5.6.tar.gz \ https://wangguofang.net/github.com/duckdb/duckdb/archive/v1.5.6.tar.gz fetch duckdb-ui-0628932f74b1e2e9eaf68a05b22d737455541dca.tar.gz \ https://wangguofang.net/github.com/duckdb/duckdb-ui/archive/0628932f74b1e2e9eaf68a05b22d737455541dca.tar.gz fetch gitlab-libxml2-v2.15.3.tar.gz \ https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.15.3/libxml2-v2.15.3.tar.gz fetch makeself-release-2.7.1.tar.gz \ https://wangguofang.net/github.com/megastep/makeself/archive/release-2.7.1.tar.gz fetch log4cplus-REL_2_0_5.tar.gz \ https://wangguofang.net/github.com/log4cplus/log4cplus/archive/REL_2_0_5.tar.gz fetch ThreadPool-cc0b6371d3963f7028c2da5fc007733f9f3bf205.tar.gz \ https://wangguofang.net/github.com/log4cplus/ThreadPool/archive/cc0b6371d3963f7028c2da5fc007733f9f3bf205.tar.gz