Derive debian13 library dir and Rust package from the architecture

- Make the libevent install patch take CMAKE_INSTALL_LIBDIR instead of
  hardcoding lib/x86_64-linux-gnu, and rename it to
  libevent-libdir-install.patch.
- Replace every hardcoded x86_64-linux-gnu in the debian13 Dockerfile with
  $(gcc -dumpmachine).
- Download the Rust tarball for `uname -m` and expose it to the Dockerfiles
  as the architecture-neutral rust-1.99.1.tar.xz (a hard link refreshed on
  every run), because podman cannot expand ARG in a --mount source.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
GuofangandClaude Sonnet 5.5 committed 2026-10-27 08:52:07 +08:00
1 parent 7f34cfcf9c
commit b21f7db67b
4 files changed
+103 -91

No files matched your search

+65 -64
View File
@@ -23,7 +23,7 @@ RUN sed -i 's|deb.debian.org|mirrors.ustc.edu.cn|g' /etc/apt/sources.list.d/debi
RUN git config --global url."https://wangguofang.net/github.com/".insteadOf "https://github.com/"
RUN --mount=type=bind,from=sources,source=rust-1.99.1-x86_64-unknown-linux-gnu.tar.xz,target=/tmp/rust.tar.xz \
RUN --mount=type=bind,from=sources,source=rust-1.99.1.tar.xz,target=/tmp/rust.tar.xz \
mkdir rust-src \
&& tar -xJf /tmp/rust.tar.xz -C rust-src --strip-components=1 \
&& rust-src/install.sh --prefix=/usr/local --without=rust-docs \
@@ -33,7 +33,7 @@ RUN --mount=type=bind,from=sources,source=boost_1_83_0.tar.bz2,target=/tmp/boost
mkdir src \
&& tar --extract --bzip2 --file=/tmp/boost.tar.bz2 --directory=src --strip-components=1 \
&& cd src \
&& ./bootstrap.sh --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu \
&& ./bootstrap.sh --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) \
&& ./b2 --jobs="$(nproc)" \
--with-atomic \
--with-chrono \
@@ -59,18 +59,19 @@ RUN --mount=type=bind,from=sources,source=openssl-openssl-3.0.15.tar.gz,target=/
mkdir src \
&& tar --extract --gzip --file=/tmp/openssl.tar.gz --directory=src --strip-components=1 \
&& cd src \
&& ./Configure --prefix=/usr/local --libdir=lib/x86_64-linux-gnu no-shared no-tests -fPIC \
&& ./Configure --prefix=/usr/local --libdir=lib/$(gcc -dumpmachine) no-shared no-tests -fPIC \
&& make --jobs="$(nproc)" \
&& make install_sw \
&& cd .. \
&& rm -rf src
COPY libevent-lib-x86_64-linux-gnu-install.patch /tmp/
COPY libevent-libdir-install.patch /tmp/
RUN --mount=type=bind,from=sources,source=libevent-release-2.1.12-stable.tar.gz,target=/tmp/libevent.tar.gz \
mkdir src \
&& tar --extract --gzip --file=/tmp/libevent.tar.gz --directory=src --strip-components=1 \
&& git -C src apply /tmp/libevent-lib-x86_64-linux-gnu-install.patch \
&& git -C src apply /tmp/libevent-libdir-install.patch \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DEVENT__DISABLE_BENCHMARK=ON \
-DEVENT__DISABLE_REGRESS=ON \
@@ -78,13 +79,13 @@ RUN --mount=type=bind,from=sources,source=libevent-release-2.1.12-stable.tar.gz,
-DEVENT__DISABLE_TESTS=ON \
-DEVENT__LIBRARY_TYPE=STATIC \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src /tmp/libevent-lib-x86_64-linux-gnu-install.patch
&& rm -rf build src /tmp/libevent-libdir-install.patch
RUN --mount=type=bind,from=sources,source=zstd-v1.5.7.tar.gz,target=/tmp/zstd.tar.gz \
mkdir src \
&& tar --extract --gzip --file=/tmp/zstd.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src/build/cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DZSTD_BUILD_CONTRIB=OFF \
-DZSTD_BUILD_PROGRAMS=OFF \
@@ -98,7 +99,7 @@ RUN --mount=type=bind,from=sources,source=zlib-v1.3.1.tar.gz,target=/tmp/zlib.ta
mkdir src \
&& tar --extract --gzip --file=/tmp/zlib.tar.gz --directory=src --strip-components=1 \
&& cd src \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu --static \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) --static \
&& make --jobs="$(nproc)" \
&& make install \
&& cd .. \
@@ -112,7 +113,7 @@ RUN --mount=type=bind,from=sources,source=protobuf-v3.21.12.tar.gz,target=/tmp/p
-Dprotobuf_WITH_ZLIB=ON \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src
@@ -124,7 +125,7 @@ RUN --mount=type=bind,from=sources,source=log4cplus-REL_2_0_5.tar.gz,target=/tmp
&& tar --extract --gzip --file=/tmp/threadpool.tar.gz --directory=src/threadpool --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DLOG4CPLUS_BUILD_TESTING=OFF \
-DWITH_UNIT_TESTS=OFF \
@@ -136,7 +137,7 @@ RUN --mount=type=bind,from=sources,source=fmt-12.2.0.tar.gz,target=/tmp/fmt.tar.
&& tar --extract --gzip --file=/tmp/fmt.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DFMT_DOC=OFF \
-DFMT_TEST=OFF \
@@ -148,7 +149,7 @@ RUN --mount=type=bind,from=sources,source=spdlog-v1.17.0.tar.gz,target=/tmp/spdl
&& tar --extract --gzip --file=/tmp/spdlog.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DSPDLOG_BUILD_BENCH=OFF \
-DSPDLOG_BUILD_EXAMPLE=OFF \
@@ -161,7 +162,7 @@ RUN --mount=type=bind,from=sources,source=magic_enum-v0.9.8.tar.gz,target=/tmp/m
mkdir src \
&& tar --extract --gzip --file=/tmp/magic_enum.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF \
-DMAGIC_ENUM_OPT_BUILD_TESTS=OFF \
-DMAGIC_ENUM_OPT_INSTALL=ON \
@@ -172,7 +173,7 @@ RUN --mount=type=bind,from=sources,source=fast_float-v8.2.10.tar.gz,target=/tmp/
mkdir src \
&& tar --extract --gzip --file=/tmp/fast_float.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DFASTFLOAT_BENCHMARKS=OFF \
-DFASTFLOAT_INSTALL=ON \
-DFASTFLOAT_TEST=OFF \
@@ -183,7 +184,7 @@ RUN --mount=type=bind,from=sources,source=sparse-map-v0.7.0.tar.gz,target=/tmp/s
mkdir src \
&& tar --extract --gzip --file=/tmp/sparse-map.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src
@@ -198,7 +199,7 @@ RUN --mount=type=bind,from=sources,source=gflags-v2.3.1.tar.gz,target=/tmp/gflag
-DINSTALL_HEADERS=ON \
-DINSTALL_SHARED_LIBS=OFF \
-DINSTALL_STATIC_LIBS=ON \
-DLIBRARY_INSTALL_DIR=/usr/local/lib/x86_64-linux-gnu \
-DLIBRARY_INSTALL_DIR=/usr/local/lib/$(gcc -dumpmachine) \
-DREGISTER_INSTALL_PREFIX=OFF \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src
@@ -209,7 +210,7 @@ RUN --mount=type=bind,from=sources,source=glog-v0.7.1.tar.gz,target=/tmp/glog.ta
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTING=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DWITH_GFLAGS=ON \
-DWITH_GTEST=OFF \
@@ -222,7 +223,7 @@ RUN --mount=type=bind,from=sources,source=liburing-liburing-2.15.tar.gz,target=/
mkdir src \
&& tar --extract --gzip --file=/tmp/liburing.tar.gz --directory=src --strip-components=1 \
&& cd src \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu --libdevdir=/usr/local/lib/x86_64-linux-gnu \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) --libdevdir=/usr/local/lib/$(gcc -dumpmachine) \
&& make --jobs="$(nproc)" ENABLE_SHARED=0 library \
&& make ENABLE_SHARED=0 install \
&& cd .. \
@@ -232,7 +233,7 @@ RUN --mount=type=bind,from=sources,source=libaio_0.3.113.orig.tar.gz,target=/tmp
mkdir src \
&& tar --extract --gzip --file=/tmp/libaio.tar.gz --directory=src --strip-components=1 \
&& make --directory=src --jobs="$(nproc)" ENABLE_SHARED=0 \
&& make --directory=src ENABLE_SHARED=0 prefix=/usr/local libdir=/usr/local/lib/x86_64-linux-gnu install \
&& make --directory=src ENABLE_SHARED=0 prefix=/usr/local libdir=/usr/local/lib/$(gcc -dumpmachine) install \
&& rm -rf src
RUN --mount=type=bind,from=sources,source=libdwarf-code-v2.3.2.tar.gz,target=/tmp/libdwarf-code.tar.gz \
@@ -244,7 +245,7 @@ RUN --mount=type=bind,from=sources,source=libdwarf-code-v2.3.2.tar.gz,target=/tm
-DBUILD_DWARFGEN=OFF \
-DBUILD_NON_SHARED=ON \
-DBUILD_SHARED=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DDO_TESTING=OFF \
-DENABLE_DECOMPRESSION=ON \
-DPIC_ALWAYS=ON \
@@ -256,7 +257,7 @@ RUN --mount=type=bind,from=sources,source=libsodium-1.0.20-RELEASE.tar.gz,target
&& tar --extract --gzip --file=/tmp/libsodium.tar.gz --directory=src --strip-components=1 \
&& cd src \
&& ./autogen.sh \
&& ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu --disable-shared --enable-static --with-pic \
&& ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) --disable-shared --enable-static --with-pic \
&& make --jobs="$(nproc)" \
&& make install \
&& cd .. \
@@ -267,7 +268,7 @@ RUN --mount=type=bind,from=sources,source=xxHash-v0.8.3.tar.gz,target=/tmp/xxHas
&& tar --extract --gzip --file=/tmp/xxHash.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src/cmake_unofficial -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DXXHASH_BUILD_XXHSUM=OFF \
&& cmake --build build --parallel "$(nproc)" --target install \
@@ -279,7 +280,7 @@ RUN --mount=type=bind,from=sources,source=googletest-v1.17.0.tar.gz,target=/tmp/
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_GMOCK=ON \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DINSTALL_GTEST=ON \
-Dgtest_build_samples=OFF \
@@ -292,7 +293,7 @@ RUN --mount=type=bind,from=sources,source=numactl-v2.0.19.tar.gz,target=/tmp/num
&& tar --extract --gzip --file=/tmp/numactl.tar.gz --directory=src --strip-components=1 \
&& cd src \
&& ./autogen.sh \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu --disable-shared --enable-static \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) --disable-shared --enable-static \
&& make --jobs="$(nproc)" \
&& make install \
&& cd .. \
@@ -307,9 +308,9 @@ RUN --mount=type=bind,from=sources,source=folly-v2026.08.03.00.tar.gz,target=/tm
-DBUILD_BENCHMARKS=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTS=OFF \
-DCMAKE_INSTALL_DIR=lib/x86_64-linux-gnu/cmake/folly \
-DCMAKE_INSTALL_DIR=lib/$(gcc -dumpmachine)/cmake/folly \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DLIB_INSTALL_DIR=lib/x86_64-linux-gnu \
-DLIB_INSTALL_DIR=lib/$(gcc -dumpmachine) \
-DPYTHON_EXTENSIONS=OFF \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src
@@ -322,9 +323,9 @@ RUN --mount=type=bind,from=sources,source=fizz-v2026.08.03.00.tar.gz,target=/tmp
-DBUILD_EXAMPLES=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTS=OFF \
-DCMAKE_INSTALL_DIR=lib/x86_64-linux-gnu/cmake/fizz \
-DCMAKE_INSTALL_DIR=lib/$(gcc -dumpmachine)/cmake/fizz \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DLIB_INSTALL_DIR=lib/x86_64-linux-gnu \
-DLIB_INSTALL_DIR=lib/$(gcc -dumpmachine) \
-Dsodium_USE_STATIC_LIBS=ON \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src
@@ -337,9 +338,9 @@ RUN --mount=type=bind,from=sources,source=wangle-v2026.08.03.00.tar.gz,target=/t
-DBUILD_EXAMPLES=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTS=OFF \
-DCMAKE_INSTALL_DIR=lib/x86_64-linux-gnu/cmake/wangle \
-DCMAKE_INSTALL_DIR=lib/$(gcc -dumpmachine)/cmake/wangle \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DLIB_INSTALL_DIR=lib/x86_64-linux-gnu \
-DLIB_INSTALL_DIR=lib/$(gcc -dumpmachine) \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src
@@ -352,7 +353,7 @@ RUN --mount=type=bind,from=sources,source=mvfst-v2026.08.03.00.tar.gz,target=/tm
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_TOOLS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src
@@ -363,9 +364,9 @@ RUN --mount=type=bind,from=sources,source=fbthrift-v2026.08.03.00.tar.gz,target=
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_DIR=lib/x86_64-linux-gnu/cmake/fbthrift \
-DCMAKE_INSTALL_DIR=lib/$(gcc -dumpmachine)/cmake/fbthrift \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DLIB_INSTALL_DIR=lib/x86_64-linux-gnu \
-DLIB_INSTALL_DIR=lib/$(gcc -dumpmachine) \
-DTHRIFT_BENCHMARKS=OFF \
-Denable_tests=OFF \
-Dthrift_python=OFF \
@@ -382,9 +383,9 @@ RUN --mount=type=bind,from=sources,source=CacheLib-v2026.08.03.00.tar.gz,target=
-DBOOST_LINK_STATIC=ON \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTS=OFF \
-DCMAKE_INSTALL_DIR=lib/x86_64-linux-gnu/cmake/cachelib \
-DCMAKE_INSTALL_DIR=lib/$(gcc -dumpmachine)/cmake/cachelib \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DLIB_INSTALL_DIR=lib/x86_64-linux-gnu \
-DLIB_INSTALL_DIR=lib/$(gcc -dumpmachine) \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src
@@ -392,7 +393,7 @@ RUN --mount=type=bind,from=sources,source=util-linux-2.42.2.tar.xz,target=/tmp/u
mkdir src \
&& tar --extract --xz --file=/tmp/util-linux.tar.xz --directory=src --strip-components=1 \
&& cd src \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) \
--disable-all-programs \
--disable-bash-completion \
--disable-makeinstall-chown \
@@ -412,7 +413,7 @@ RUN --mount=type=bind,from=sources,source=libzmq-v4.3.5.tar.gz,target=/tmp/libzm
-DBUILD_SHARED=OFF \
-DBUILD_STATIC=ON \
-DBUILD_TESTS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DENABLE_CPACK=OFF \
-DENABLE_CURVE=ON \
@@ -438,7 +439,7 @@ RUN --mount=type=bind,from=sources,source=czmq-v4.2.1.tar.gz,target=/tmp/czmq.ta
-DCZMQ_WITH_SYSTEMD=OFF \
-DCZMQ_WITH_UUID=ON \
-DENABLE_DRAFTS=OFF \
-DLIB_SUFFIX=/x86_64-linux-gnu \
-DLIB_SUFFIX=/$(gcc -dumpmachine) \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src
@@ -449,7 +450,7 @@ RUN --mount=type=bind,from=sources,source=jsoncpp-1.9.8.tar.gz,target=/tmp/jsonc
-DBUILD_OBJECT_LIBS=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_STATIC_LIBS=ON \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DJSONCPP_WITH_EXAMPLE=OFF \
-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF \
@@ -461,7 +462,7 @@ RUN --mount=type=bind,from=sources,source=librdkafka-v2.15.0.tar.gz,target=/tmp/
mkdir src \
&& tar --extract --gzip --file=/tmp/librdkafka.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DENABLE_LZ4_EXT=OFF \
-DRDKAFKA_BUILD_EXAMPLES=OFF \
@@ -484,7 +485,7 @@ RUN --mount=type=bind,from=sources,source=json-c-json-c-0.19-20260627.tar.gz,tar
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_STATIC_LIBS=ON \
-DBUILD_TESTING=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DDISABLE_EXTRA_LIBS=ON \
&& cmake --build build --parallel "$(nproc)" --target install \
@@ -496,7 +497,7 @@ RUN --mount=type=bind,from=sources,source=rapidjson-v1.1.0.tar.gz,target=/tmp/ra
&& tar --extract --gzip --file=/tmp/rapidjson.tar.gz --directory=src --strip-components=1 \
&& git -C src apply /tmp/rapidjson-generic-string-ref-assignment.patch \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DLIB_INSTALL_DIR=/usr/local/lib/x86_64-linux-gnu \
-DLIB_INSTALL_DIR=/usr/local/lib/$(gcc -dumpmachine) \
-DRAPIDJSON_BUILD_DOC=OFF \
-DRAPIDJSON_BUILD_EXAMPLES=OFF \
-DRAPIDJSON_BUILD_TESTS=OFF \
@@ -514,7 +515,7 @@ RUN --mount=type=bind,from=sources,source=curl-curl-8_21_0.tar.gz,target=/tmp/cu
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_STATIC_LIBS=ON \
-DBUILD_TESTING=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCURL_BROTLI=OFF \
-DCURL_USE_LIBPSL=OFF \
@@ -535,7 +536,7 @@ RUN --mount=type=bind,from=sources,source=hiredis-v1.4.1.tar.gz,target=/tmp/hire
&& tar --extract --gzip --file=/tmp/hiredis.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DENABLE_ASYNC_TESTS=OFF \
-DENABLE_EXAMPLES=OFF \
@@ -549,7 +550,7 @@ RUN --mount=type=bind,from=sources,source=gmp-6.3.0.tar.xz,target=/tmp/gmp.tar.x
mkdir src \
&& tar --extract --xz --file=/tmp/gmp.tar.xz --directory=src --strip-components=1 \
&& cd src \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu --disable-shared --enable-static \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) --disable-shared --enable-static \
&& make --jobs="$(nproc)" \
&& make install \
&& cd .. \
@@ -559,7 +560,7 @@ RUN --mount=type=bind,from=sources,source=nettle-3.10.2.tar.gz,target=/tmp/nettl
mkdir src \
&& tar --extract --gzip --file=/tmp/nettle.tar.gz --directory=src --strip-components=1 \
&& cd src \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) \
--disable-documentation \
--disable-shared \
--enable-static \
@@ -572,7 +573,7 @@ RUN --mount=type=bind,from=sources,source=gnutls-3.8.13.tar.xz,target=/tmp/gnutl
mkdir src \
&& tar --extract --xz --file=/tmp/gnutls.tar.xz --directory=src --strip-components=1 \
&& cd src \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) \
--with-included-libtasn1 \
--with-included-unistring \
--disable-cxx \
@@ -601,7 +602,7 @@ RUN --mount=type=bind,from=sources,source=libmaxminddb-1.13.3.tar.gz,target=/tmp
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTING=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DMAXMINDDB_BUILD_BINARIES=OFF \
&& cmake --build build --parallel "$(nproc)" --target install \
@@ -612,7 +613,7 @@ RUN --mount=type=bind,from=sources,source=libyaml-0.2.5.tar.gz,target=/tmp/libya
&& tar --extract --gzip --file=/tmp/libyaml.tar.gz --directory=src --strip-components=1 \
&& cd src \
&& ./bootstrap \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu --disable-shared --enable-static \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) --disable-shared --enable-static \
&& make --jobs="$(nproc)" \
&& make install \
&& cd .. \
@@ -623,7 +624,7 @@ RUN --mount=type=bind,from=sources,source=libxml2-v2.15.3.tar.gz,target=/tmp/lib
&& tar --extract --gzip --file=/tmp/libxml2.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DLIBXML2_WITH_DOCS=OFF \
-DLIBXML2_WITH_ICU=OFF \
@@ -639,7 +640,7 @@ RUN --mount=type=bind,from=sources,source=redis-plus-plus-1.3.15.tar.gz,target=/
mkdir src \
&& tar --extract --gzip --file=/tmp/redis-plus-plus.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DREDIS_PLUS_PLUS_BUILD_SHARED=OFF \
-DREDIS_PLUS_PLUS_BUILD_STATIC=ON \
-DREDIS_PLUS_PLUS_BUILD_STATIC_WITH_PIC=ON \
@@ -652,7 +653,7 @@ RUN --mount=type=bind,from=sources,source=libunwind-v1.8.3.tar.gz,target=/tmp/li
&& tar --extract --gzip --file=/tmp/libunwind.tar.gz --directory=src --strip-components=1 \
&& cd src \
&& autoreconf --install \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu \
&& CFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) \
--disable-shared \
--enable-static \
--disable-tests \
@@ -669,7 +670,7 @@ RUN --mount=type=bind,from=sources,source=jemalloc-5.3.1.tar.gz,target=/tmp/jema
&& tar --extract --gzip --file=/tmp/jemalloc.tar.gz --directory=src --strip-components=1 \
&& cd src \
&& ./autogen.sh \
&& CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/x86_64-linux-gnu \
&& CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --prefix=/usr/local --libdir=/usr/local/lib/$(gcc -dumpmachine) \
--disable-doc \
--disable-shared \
--enable-static \
@@ -684,7 +685,7 @@ RUN --mount=type=bind,from=sources,source=libproxyprotocol-v1.3.3.tar.gz,target=
mkdir src \
&& tar --extract --gzip --file=/tmp/libproxyprotocol.tar.gz --directory=src --strip-components=1 \
&& gcc -fPIC -c -o src/src/proxy_protocol.o src/src/proxy_protocol.c \
&& ar rcs /usr/local/lib/x86_64-linux-gnu/libproxyprotocol.a src/src/proxy_protocol.o \
&& ar rcs /usr/local/lib/$(gcc -dumpmachine)/libproxyprotocol.a src/src/proxy_protocol.o \
&& cp src/src/proxy_protocol.h /usr/local/include/ \
&& rm -rf src
@@ -693,7 +694,7 @@ RUN --mount=type=bind,from=sources,source=xsimd-14.2.0.tar.gz,target=/tmp/xsimd.
&& tar --extract --gzip --file=/tmp/xsimd.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src
@@ -705,10 +706,10 @@ RUN --mount=type=bind,from=sources,source=thrift-v0.22.0.tar.gz,target=/tmp/thri
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTING=OFF \
-DBUILD_TUTORIALS=OFF \
-DCMAKE_INSTALL_DIR=/usr/local/lib/x86_64-linux-gnu/cmake \
-DCMAKE_INSTALL_DIR=/usr/local/lib/$(gcc -dumpmachine)/cmake \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DLIB_INSTALL_DIR=/usr/local/lib/x86_64-linux-gnu \
-DPKGCONFIG_INSTALL_DIR=/usr/local/lib/x86_64-linux-gnu/pkgconfig \
-DLIB_INSTALL_DIR=/usr/local/lib/$(gcc -dumpmachine) \
-DPKGCONFIG_INSTALL_DIR=/usr/local/lib/$(gcc -dumpmachine)/pkgconfig \
-DWITH_AS3=OFF \
-DWITH_C_GLIB=OFF \
-DWITH_CPP=ON \
@@ -721,8 +722,8 @@ RUN --mount=type=bind,from=sources,source=thrift-v0.22.0.tar.gz,target=/tmp/thri
-DWITH_QT5=OFF \
-DWITH_ZLIB=OFF \
&& cmake --build build --parallel "$(nproc)" --target install \
&& sed -i 's|^libdir=.*|libdir=${prefix}/lib/x86_64-linux-gnu|' \
/usr/local/lib/x86_64-linux-gnu/pkgconfig/thrift.pc \
&& sed -i 's|^libdir=.*|libdir=${prefix}/lib/'"$(gcc -dumpmachine)"'|' \
/usr/local/lib/$(gcc -dumpmachine)/pkgconfig/thrift.pc \
&& rm -rf build src
RUN --mount=type=bind,from=sources,source=snappy-1.2.2.tar.gz,target=/tmp/snappy.tar.gz \
@@ -730,7 +731,7 @@ RUN --mount=type=bind,from=sources,source=snappy-1.2.2.tar.gz,target=/tmp/snappy
&& tar --extract --gzip --file=/tmp/snappy.tar.gz --directory=src --strip-components=1 \
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DSNAPPY_BUILD_BENCHMARKS=OFF \
-DSNAPPY_BUILD_TESTS=OFF \
@@ -743,7 +744,7 @@ RUN --mount=type=bind,from=sources,source=lz4-v1.10.0.tar.gz,target=/tmp/lz4.tar
&& cmake -G Ninja -S src/build/cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_STATIC_LIBS=ON \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DLZ4_BUILD_CLI=OFF \
-DLZ4_POSITION_INDEPENDENT_LIB=ON \
@@ -773,7 +774,7 @@ RUN --mount=type=bind,from=sources,source=arrow-apache-arrow-25.0.1.tar.gz,targe
-DARROW_WITH_SNAPPY=ON \
-DARROW_WITH_ZLIB=ON \
-DARROW_WITH_ZSTD=ON \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DPARQUET_BUILD_EXAMPLES=OFF \
-DPARQUET_BUILD_EXECUTABLES=OFF \
@@ -797,7 +798,7 @@ RUN --mount=type=bind,from=sources,source=duckdb-v1.5.6.tar.gz,target=/tmp/duckd
-DBUILD_BENCHMARKS=OFF \
-DENABLE_EXTENSION_AUTOLOADING=OFF \
-DENABLE_EXTENSION_AUTOINSTALL=OFF \
-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu \
-DCMAKE_INSTALL_LIBDIR=lib/$(gcc -dumpmachine) \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
&& cmake --build build --parallel "$(nproc)" --target install \
&& rm -rf build src ui-src