diff --git a/debian13/Dockerfile b/debian13/Dockerfile index a69a918..77c9831 100644 --- a/debian13/Dockerfile +++ b/debian13/Dockerfile @@ -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 diff --git a/debian13/libevent-lib-x86_64-linux-gnu-install.patch b/debian13/libevent-libdir-install.patch similarity index 56% rename from debian13/libevent-lib-x86_64-linux-gnu-install.patch rename to debian13/libevent-libdir-install.patch index 75c1e4b..f46b023 100644 --- a/debian13/libevent-lib-x86_64-linux-gnu-install.patch +++ b/debian13/libevent-libdir-install.patch @@ -1,15 +1,14 @@ -diff --git a/cmake/AddEventLibrary.cmake b/cmake/AddEventLibrary.cmake ---- a/cmake/AddEventLibrary.cmake 2026-09-17 14:40:01.091049579 +0800 -+++ b/cmake/AddEventLibrary.cmake 2026-09-17 14:40:01.103049846 +0800 +--- a/cmake/AddEventLibrary.cmake ++++ b/cmake/AddEventLibrary.cmake @@ -31,7 +31,7 @@ configure_file("lib${LIB_NAME}.pc.in" "lib${LIB_NAME}.pc" @ONLY) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/lib${LIB_NAME}.pc" - DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" -+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/x86_64-linux-gnu/pkgconfig" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) endmacro() - + @@ -40,9 +40,9 @@ macro(export_install_target TYPE LIB_NAME OUTER_INCLUDES) if("${LIB_NAME}" STREQUAL "event") @@ -17,9 +16,9 @@ diff --git a/cmake/AddEventLibrary.cmake b/cmake/AddEventLibrary.cmake - LIBRARY DESTINATION "lib" COMPONENT lib - ARCHIVE DESTINATION "lib" COMPONENT lib - RUNTIME DESTINATION "lib" COMPONENT lib -+ LIBRARY DESTINATION "lib/x86_64-linux-gnu" COMPONENT lib -+ ARCHIVE DESTINATION "lib/x86_64-linux-gnu" COMPONENT lib -+ RUNTIME DESTINATION "lib/x86_64-linux-gnu" COMPONENT lib ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib ++ RUNTIME DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib COMPONENT dev ) else() @@ -30,9 +29,9 @@ diff --git a/cmake/AddEventLibrary.cmake b/cmake/AddEventLibrary.cmake - LIBRARY DESTINATION "lib" COMPONENT lib - ARCHIVE DESTINATION "lib" COMPONENT lib - RUNTIME DESTINATION "lib" COMPONENT lib -+ LIBRARY DESTINATION "lib/x86_64-linux-gnu" COMPONENT lib -+ ARCHIVE DESTINATION "lib/x86_64-linux-gnu" COMPONENT lib -+ RUNTIME DESTINATION "lib/x86_64-linux-gnu" COMPONENT lib ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib ++ RUNTIME DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib COMPONENT dev ) endif() @@ -41,19 +40,26 @@ diff --git a/cmake/AddEventLibrary.cmake b/cmake/AddEventLibrary.cmake install(FILES "$/${LIB_LINK_NAME}" - DESTINATION "lib" -+ DESTINATION "lib/x86_64-linux-gnu" ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib) endif() endif() -diff --git a/CMakeLists.txt b/CMakeLists.txt ---- a/CMakeLists.txt 2026-09-17 14:40:01.091049579 +0800 -+++ b/CMakeLists.txt 2026-09-17 14:40:01.103049846 +0800 -@@ -1453,7 +1453,7 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -946,6 +946,7 @@ # - + # Create the libraries. + # ++include(GNUInstallDirs) + include(AddEventLibrary) + add_event_library(event_core SOURCES ${SRC_CORE}) + add_event_library(event_extra +@@ -1453,7 +1454,7 @@ + # + set(EVENT_INSTALL_CMAKE_DIR - "${CMAKE_INSTALL_PREFIX}/lib/cmake/libevent") -+ "${CMAKE_INSTALL_PREFIX}/lib/x86_64-linux-gnu/cmake/libevent") - ++ "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/libevent") + export(PACKAGE libevent) - + diff --git a/fetch-sources.sh b/fetch-sources.sh index 5c28223..da0a0cc 100755 --- a/fetch-sources.sh +++ b/fetch-sources.sh @@ -134,12 +134,17 @@ 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 -fetch rust-1.99.1-x86_64-unknown-linux-gnu.tar.xz \ - https://mirrors.cloud.tencent.com/rustup/dist/rust-1.99.1-x86_64-unknown-linux-gnu.tar.xz \ - https://mirrors.tuna.tsinghua.edu.cn/rustup/dist/2026-10-15/rust-1.99.1-x86_64-unknown-linux-gnu.tar.xz \ - https://repo.huaweicloud.com/rustup/dist/rust-1.99.1-x86_64-unknown-linux-gnu.tar.xz \ - https://mirrors.ustc.edu.cn/rust-static/dist/rust-1.99.1-x86_64-unknown-linux-gnu.tar.xz \ - https://static.rust-lang.org/dist/rust-1.99.1-x86_64-unknown-linux-gnu.tar.xz +# Rust ships one standalone tarball per architecture, named after `uname -m` (x86_64, aarch64). +# The Dockerfiles mount it under the architecture-neutral name rust-1.99.1.tar.xz (a hard link +# that is refreshed on every run, so switching architectures never leaves a stale archive). +rust_triple="$(uname -m)-unknown-linux-gnu" +fetch "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" +ln -f "rust-1.99.1-$rust_triple.tar.xz" rust-1.99.1.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 \ diff --git a/rocky9/Dockerfile b/rocky9/Dockerfile index 23bbe78..ff3c200 100644 --- a/rocky9/Dockerfile +++ b/rocky9/Dockerfile @@ -36,7 +36,7 @@ RUN dnf install --assumeyes --enablerepo=crb \ 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 \