Build the static client libraries (libsybdb, libct) from the official release tarball with OpenSSL; ODBC, the command-line apps, server and pool are disabled. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
171 lines
8.9 KiB
Bash
Executable File
171 lines
8.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Downloads every source archive used by the Dockerfiles into the sources/ directory.
|
|
# Each entry is "<file name> <url> [<fallback url> ...]"; 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
|
|
fetch sqlite-autoconf-3540100.tar.gz \
|
|
https://www.sqlite.org/2026/sqlite-autoconf-3540100.tar.gz
|
|
fetch wireguard-tools-v1.0.20260223.tar.xz \
|
|
https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-v1.0.20260223.tar.xz
|
|
fetch freetds-1.5.21.tar.gz \
|
|
https://www.freetds.org/files/stable/freetds-1.5.21.tar.gz
|