Rust is a build tool, not a library, so it should not follow the library install prefix. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
820 lines
34 KiB
Docker
820 lines
34 KiB
Docker
FROM docker.io/library/rockylinux:9
|
|
|
|
RUN dnf install --assumeyes --enablerepo=crb \
|
|
autoconf \
|
|
automake \
|
|
bzip2 \
|
|
ca-certificates \
|
|
cmake \
|
|
curl-minimal \
|
|
gcc \
|
|
gcc-c++ \
|
|
libasan \
|
|
gcc-toolset-15-gcc-c++ \
|
|
gcc-toolset-15-libasan-devel \
|
|
git \
|
|
libtool \
|
|
make \
|
|
ninja-build \
|
|
patch \
|
|
perl-core \
|
|
pkgconf-pkg-config \
|
|
rpm-build \
|
|
tar \
|
|
xz \
|
|
which \
|
|
epel-release \
|
|
&& sed \
|
|
-e 's!^metalink=!#metalink=!g' \
|
|
-e 's!^#baseurl=!baseurl=!g' \
|
|
-e 's!https\?://download\.example/pub/epel!https://mirrors.ustc.edu.cn/epel!g' \
|
|
-i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo \
|
|
&& dnf install --assumeyes \
|
|
makeself \
|
|
&& dnf upgrade --assumeyes \
|
|
&& dnf clean all \
|
|
&& rm -rf /var/cache/dnf
|
|
|
|
RUN git config --global url."https://wangguofang.net/github.com/".insteadOf "https://github.com/"
|
|
|
|
# Install prefix of every dependency. Libraries are installed under ${PREFIX}/lib64.
|
|
ARG PREFIX=/usr/local
|
|
|
|
# Make the compiler, CMake, pkg-config and the shell find earlier dependencies under a prefix other
|
|
# than the default /usr/local. CMake (>= 3.29) takes its default install prefix from the environment.
|
|
ENV PATH=${PREFIX}/bin:${PATH} \
|
|
C_INCLUDE_PATH=${PREFIX}/include \
|
|
CPLUS_INCLUDE_PATH=${PREFIX}/include \
|
|
LIBRARY_PATH=${PREFIX}/lib64:${PREFIX}/lib \
|
|
PKG_CONFIG_PATH=${PREFIX}/lib64/pkgconfig:${PREFIX}/lib/pkgconfig:${PREFIX}/share/pkgconfig \
|
|
CMAKE_PREFIX_PATH=${PREFIX} \
|
|
CMAKE_INSTALL_PREFIX=${PREFIX}
|
|
|
|
RUN test "$(cmake --version | sed -n '1s/[^0-9]*//p' | cut -d. -f2)" -ge 29
|
|
|
|
# Rust is a build tool, not a library, so it is installed under /usr/local regardless of ${PREFIX}.
|
|
RUN --mount=type=bind,from=sources,source=rust,target=/tmp/rust \
|
|
mkdir rust-src \
|
|
&& tar -xJf "/tmp/rust/rust-1.99.1-$(uname -m)-unknown-linux-gnu.tar.xz" -C rust-src --strip-components=1 \
|
|
&& rust-src/install.sh --prefix=/usr/local --without=rust-docs \
|
|
&& rm -rf rust-src
|
|
|
|
RUN --mount=type=bind,from=sources,source=boost_1_83_0.tar.bz2,target=/tmp/boost.tar.bz2 \
|
|
mkdir src \
|
|
&& tar --extract --bzip2 --file=/tmp/boost.tar.bz2 --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& ./bootstrap.sh --prefix=${PREFIX} --libdir=${PREFIX}/lib64 \
|
|
&& ./b2 --jobs="$(nproc)" \
|
|
--with-atomic \
|
|
--with-chrono \
|
|
--with-context \
|
|
--with-date_time \
|
|
--with-filesystem \
|
|
--with-program_options \
|
|
--with-regex \
|
|
--with-system \
|
|
--with-thread \
|
|
cflags=-fPIC \
|
|
cxxflags=-fPIC \
|
|
link=static \
|
|
pch=off \
|
|
runtime-link=shared \
|
|
threading=multi \
|
|
variant=release \
|
|
install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=openssl-openssl-3.0.15.tar.gz,target=/tmp/openssl.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/openssl.tar.gz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& ./Configure --prefix=${PREFIX} no-shared no-tests -fPIC \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install_sw \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
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-libdir-install.patch \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DEVENT__DISABLE_BENCHMARK=ON \
|
|
-DEVENT__DISABLE_REGRESS=ON \
|
|
-DEVENT__DISABLE_SAMPLES=ON \
|
|
-DEVENT__DISABLE_TESTS=ON \
|
|
-DEVENT__LIBRARY_TYPE=STATIC \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& 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_POSITION_INDEPENDENT_CODE=ON \
|
|
-DZSTD_BUILD_CONTRIB=OFF \
|
|
-DZSTD_BUILD_PROGRAMS=OFF \
|
|
-DZSTD_BUILD_SHARED=OFF \
|
|
-DZSTD_BUILD_STATIC=ON \
|
|
-DZSTD_BUILD_TESTS=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=zlib-v1.3.1.tar.gz,target=/tmp/zlib.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/zlib.tar.gz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& CFLAGS=-fPIC ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 --static \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=protobuf-v3.21.12.tar.gz,target=/tmp/protobuf.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/protobuf.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -Dprotobuf_BUILD_TESTS=OFF \
|
|
-Dprotobuf_BUILD_SHARED_LIBS=OFF \
|
|
-Dprotobuf_WITH_ZLIB=ON \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=log4cplus-REL_2_0_5.tar.gz,target=/tmp/log4cplus.tar.gz \
|
|
--mount=type=bind,from=sources,source=ThreadPool-cc0b6371d3963f7028c2da5fc007733f9f3bf205.tar.gz,target=/tmp/threadpool.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/log4cplus.tar.gz --directory=src --strip-components=1 \
|
|
&& 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_POSITION_INDEPENDENT_CODE=ON \
|
|
-DLOG4CPLUS_BUILD_TESTING=OFF \
|
|
-DWITH_UNIT_TESTS=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=fmt-12.2.0.tar.gz,target=/tmp/fmt.tar.gz \
|
|
mkdir src \
|
|
&& 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_POSITION_INDEPENDENT_CODE=ON \
|
|
-DFMT_DOC=OFF \
|
|
-DFMT_TEST=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=spdlog-v1.17.0.tar.gz,target=/tmp/spdlog.tar.gz \
|
|
mkdir src \
|
|
&& 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_POSITION_INDEPENDENT_CODE=ON \
|
|
-DSPDLOG_BUILD_BENCH=OFF \
|
|
-DSPDLOG_BUILD_EXAMPLE=OFF \
|
|
-DSPDLOG_BUILD_TESTS=OFF \
|
|
-DSPDLOG_FMT_EXTERNAL=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=magic_enum-v0.9.8.tar.gz,target=/tmp/magic_enum.tar.gz \
|
|
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 \
|
|
-DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF \
|
|
-DMAGIC_ENUM_OPT_BUILD_TESTS=OFF \
|
|
-DMAGIC_ENUM_OPT_INSTALL=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=fast_float-v8.2.10.tar.gz,target=/tmp/fast_float.tar.gz \
|
|
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 \
|
|
-DFASTFLOAT_BENCHMARKS=OFF \
|
|
-DFASTFLOAT_INSTALL=ON \
|
|
-DFASTFLOAT_TEST=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=sparse-map-v0.7.0.tar.gz,target=/tmp/sparse-map.tar.gz \
|
|
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 \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=gflags-v2.3.1.tar.gz,target=/tmp/gflags.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/gflags.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_STATIC_LIBS=ON \
|
|
-DBUILD_TESTING=OFF \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DINSTALL_HEADERS=ON \
|
|
-DINSTALL_SHARED_LIBS=OFF \
|
|
-DINSTALL_STATIC_LIBS=ON \
|
|
-DLIBRARY_INSTALL_DIR=${PREFIX}/lib64 \
|
|
-DREGISTER_INSTALL_PREFIX=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=glog-v0.7.1.tar.gz,target=/tmp/glog.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/glog.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_TESTING=OFF \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DWITH_GFLAGS=ON \
|
|
-DWITH_GTEST=OFF \
|
|
-DWITH_PKGCONFIG=ON \
|
|
-DWITH_UNWIND=none \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=liburing-liburing-2.15.tar.gz,target=/tmp/liburing.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/liburing.tar.gz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& CFLAGS=-fPIC ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 --libdevdir=${PREFIX}/lib64 \
|
|
&& make --jobs="$(nproc)" ENABLE_SHARED=0 library \
|
|
&& make ENABLE_SHARED=0 install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=libaio_0.3.113.orig.tar.gz,target=/tmp/libaio.tar.gz \
|
|
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=${PREFIX} libdir=${PREFIX}/lib64 install \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=libdwarf-code-v2.3.2.tar.gz,target=/tmp/libdwarf-code.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/libdwarf-code.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_DWARFDUMP=OFF \
|
|
-DBUILD_DWARFEXAMPLE=OFF \
|
|
-DBUILD_DWARFGEN=OFF \
|
|
-DBUILD_NON_SHARED=ON \
|
|
-DBUILD_SHARED=OFF \
|
|
-DDO_TESTING=OFF \
|
|
-DENABLE_DECOMPRESSION=ON \
|
|
-DPIC_ALWAYS=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=libsodium-1.0.20-RELEASE.tar.gz,target=/tmp/libsodium.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/libsodium.tar.gz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& ./autogen.sh \
|
|
&& ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 --disable-shared --enable-static --with-pic \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=xxHash-v0.8.3.tar.gz,target=/tmp/xxHash.tar.gz \
|
|
mkdir src \
|
|
&& 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_POSITION_INDEPENDENT_CODE=ON \
|
|
-DXXHASH_BUILD_XXHSUM=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=googletest-v1.17.0.tar.gz,target=/tmp/googletest.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/googletest.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_GMOCK=ON \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DINSTALL_GTEST=ON \
|
|
-Dgtest_build_samples=OFF \
|
|
-Dgtest_build_tests=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=numactl-v2.0.19.tar.gz,target=/tmp/numactl.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/numactl.tar.gz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& ./autogen.sh \
|
|
&& CFLAGS=-fPIC ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 --disable-shared --enable-static \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=folly-v2026.08.03.00.tar.gz,target=/tmp/folly.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/folly.tar.gz --directory=src --strip-components=1 \
|
|
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
|
cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBOOST_LINK_STATIC=ON \
|
|
-DBUILD_BENCHMARKS=OFF \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_TESTS=OFF \
|
|
-DCMAKE_INSTALL_DIR=lib64/cmake/folly \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DLIB_INSTALL_DIR=lib64 \
|
|
-DPYTHON_EXTENSIONS=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=fizz-v2026.08.03.00.tar.gz,target=/tmp/fizz.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/fizz.tar.gz --directory=src --strip-components=1 \
|
|
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
|
cmake -G Ninja -S src/fizz -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_EXAMPLES=OFF \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_TESTS=OFF \
|
|
-DCMAKE_INSTALL_DIR=lib64/cmake/fizz \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DLIB_INSTALL_DIR=lib64 \
|
|
-Dsodium_USE_STATIC_LIBS=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=wangle-v2026.08.03.00.tar.gz,target=/tmp/wangle.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/wangle.tar.gz --directory=src --strip-components=1 \
|
|
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
|
cmake -G Ninja -S src/wangle -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_EXAMPLES=OFF \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_TESTS=OFF \
|
|
-DCMAKE_INSTALL_DIR=lib64/cmake/wangle \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DLIB_INSTALL_DIR=lib64 \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=mvfst-v2026.08.03.00.tar.gz,target=/tmp/mvfst.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/mvfst.tar.gz --directory=src --strip-components=1 \
|
|
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
|
cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SAMPLES=OFF \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_TESTS=OFF \
|
|
-DBUILD_TOOLS=OFF \
|
|
-DCMAKE_INSTALL_LIBDIR=lib64 \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=fbthrift-v2026.08.03.00.tar.gz,target=/tmp/fbthrift.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/fbthrift.tar.gz --directory=src --strip-components=1 \
|
|
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
|
cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DCMAKE_INSTALL_DIR=lib64/cmake/fbthrift \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DLIB_INSTALL_DIR=lib64 \
|
|
-DTHRIFT_BENCHMARKS=OFF \
|
|
-Denable_tests=OFF \
|
|
-Dthrift_python=OFF \
|
|
-Dthriftpy=OFF \
|
|
-Dthriftpy3=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
COPY cachelib-optional-interface.patch /tmp/
|
|
RUN --mount=type=bind,from=sources,source=CacheLib-v2026.08.03.00.tar.gz,target=/tmp/CacheLib.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/CacheLib.tar.gz --directory=src --strip-components=1 \
|
|
&& git -C src apply /tmp/cachelib-optional-interface.patch \
|
|
&& CXXFLAGS="-DGLOG_USE_GLOG_EXPORT" \
|
|
cmake -G Ninja -S src/cachelib -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBOOST_LINK_STATIC=ON \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_TESTS=OFF \
|
|
-DCMAKE_INSTALL_DIR=lib64/cmake/cachelib \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DLIB_INSTALL_DIR=lib64 \
|
|
-DBUILD_CACHELIB_INTERFACE=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src /tmp/cachelib-optional-interface.patch
|
|
|
|
RUN --mount=type=bind,from=sources,source=util-linux-2.42.2.tar.xz,target=/tmp/util-linux.tar.xz \
|
|
mkdir src \
|
|
&& tar --extract --xz --file=/tmp/util-linux.tar.xz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& CFLAGS=-fPIC ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 \
|
|
--disable-all-programs \
|
|
--disable-bash-completion \
|
|
--disable-makeinstall-chown \
|
|
--disable-nls \
|
|
--disable-shared \
|
|
--enable-libuuid \
|
|
--enable-static \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=libzmq-v4.3.5.tar.gz,target=/tmp/libzmq.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/libzmq.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SHARED=OFF \
|
|
-DBUILD_STATIC=ON \
|
|
-DBUILD_TESTS=OFF \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DENABLE_CPACK=OFF \
|
|
-DENABLE_CURVE=ON \
|
|
-DENABLE_DRAFTS=OFF \
|
|
-DWITH_DOC=OFF \
|
|
-DWITH_DOCS=OFF \
|
|
-DWITH_LIBSODIUM=ON \
|
|
-DWITH_LIBSODIUM_STATIC=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=czmq-v4.2.1.tar.gz,target=/tmp/czmq.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/czmq.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DCZMQ_BUILD_SHARED=OFF \
|
|
-DCZMQ_BUILD_STATIC=ON \
|
|
-DCZMQ_WITH_LZ4=OFF \
|
|
-DCZMQ_WITH_LIBCURL=OFF \
|
|
-DCZMQ_WITH_LIBMICROHTTPD=OFF \
|
|
-DCZMQ_WITH_NSS=OFF \
|
|
-DCZMQ_WITH_SYSTEMD=OFF \
|
|
-DCZMQ_WITH_UUID=ON \
|
|
-DENABLE_DRAFTS=OFF \
|
|
-DLIB_SUFFIX=64 \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=jsoncpp-1.9.8.tar.gz,target=/tmp/jsoncpp.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/jsoncpp.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_OBJECT_LIBS=OFF \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_STATIC_LIBS=ON \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DJSONCPP_WITH_EXAMPLE=OFF \
|
|
-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF \
|
|
-DJSONCPP_WITH_TESTS=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=librdkafka-v2.15.0.tar.gz,target=/tmp/librdkafka.tar.gz \
|
|
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_POSITION_INDEPENDENT_CODE=ON \
|
|
-DENABLE_LZ4_EXT=OFF \
|
|
-DRDKAFKA_BUILD_EXAMPLES=OFF \
|
|
-DRDKAFKA_BUILD_STATIC=ON \
|
|
-DRDKAFKA_BUILD_TESTS=OFF \
|
|
-DWITH_CURL=OFF \
|
|
-DWITH_PLUGINS=OFF \
|
|
-DWITH_SASL=OFF \
|
|
-DWITH_SSL=ON \
|
|
-DWITH_ZLIB=ON \
|
|
-DWITH_ZSTD=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=json-c-json-c-0.19-20260627.tar.gz,target=/tmp/json-c.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/json-c.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_APPS=OFF \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_STATIC_LIBS=ON \
|
|
-DBUILD_TESTING=OFF \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DDISABLE_EXTRA_LIBS=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
COPY rapidjson-generic-string-ref-assignment.patch /tmp/
|
|
RUN --mount=type=bind,from=sources,source=rapidjson-v1.1.0.tar.gz,target=/tmp/rapidjson.tar.gz \
|
|
mkdir src \
|
|
&& 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=${PREFIX}/lib64 \
|
|
-DRAPIDJSON_BUILD_DOC=OFF \
|
|
-DRAPIDJSON_BUILD_EXAMPLES=OFF \
|
|
-DRAPIDJSON_BUILD_TESTS=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src /tmp/rapidjson-generic-string-ref-assignment.patch
|
|
|
|
RUN --mount=type=bind,from=sources,source=curl-curl-8_21_0.tar.gz,target=/tmp/curl.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/curl.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_CURL_EXE=OFF \
|
|
-DBUILD_EXAMPLES=OFF \
|
|
-DBUILD_LIBCURL_DOCS=OFF \
|
|
-DBUILD_MISC_DOCS=OFF \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_STATIC_LIBS=ON \
|
|
-DBUILD_TESTING=OFF \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DCURL_BROTLI=OFF \
|
|
-DCURL_USE_LIBPSL=OFF \
|
|
-DCURL_USE_LIBSSH=OFF \
|
|
-DCURL_USE_LIBSSH2=OFF \
|
|
-DCURL_USE_OPENSSL=ON \
|
|
-DENABLE_CURL_MANUAL=OFF \
|
|
-DHTTP_ONLY=ON \
|
|
-DUSE_LIBIDN2=OFF \
|
|
-DUSE_NGHTTP2=OFF \
|
|
-DUSE_NGTCP2=OFF \
|
|
-DUSE_QUICHE=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=hiredis-v1.4.1.tar.gz,target=/tmp/hiredis.tar.gz \
|
|
mkdir src \
|
|
&& 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_POSITION_INDEPENDENT_CODE=ON \
|
|
-DENABLE_ASYNC_TESTS=OFF \
|
|
-DENABLE_EXAMPLES=OFF \
|
|
-DENABLE_NUGET=OFF \
|
|
-DENABLE_SSL=OFF \
|
|
-DENABLE_SSL_TESTS=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=gmp-6.3.0.tar.xz,target=/tmp/gmp.tar.xz \
|
|
mkdir src \
|
|
&& tar --extract --xz --file=/tmp/gmp.tar.xz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& CFLAGS=-fPIC ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 --disable-shared --enable-static --enable-fat \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=nettle-3.10.2.tar.gz,target=/tmp/nettle.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/nettle.tar.gz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& CFLAGS=-fPIC ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 \
|
|
--disable-documentation \
|
|
--disable-shared \
|
|
--enable-static \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=gnutls-3.8.13.tar.xz,target=/tmp/gnutls.tar.xz \
|
|
mkdir src \
|
|
&& tar --extract --xz --file=/tmp/gnutls.tar.xz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& CFLAGS=-fPIC ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 \
|
|
--with-included-libtasn1 \
|
|
--with-included-unistring \
|
|
--disable-cxx \
|
|
--disable-doc \
|
|
--disable-manpages \
|
|
--disable-nls \
|
|
--disable-shared \
|
|
--disable-tests \
|
|
--disable-tools \
|
|
--enable-static \
|
|
--without-brotli \
|
|
--without-idn \
|
|
--without-p11-kit \
|
|
--without-tpm \
|
|
--without-tpm2 \
|
|
--without-zlib \
|
|
--without-zstd \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=libmaxminddb-1.13.3.tar.gz,target=/tmp/libmaxminddb.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/libmaxminddb.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_TESTING=OFF \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DMAXMINDDB_BUILD_BINARIES=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=libyaml-0.2.5.tar.gz,target=/tmp/libyaml.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/libyaml.tar.gz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& ./bootstrap \
|
|
&& CFLAGS=-fPIC ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 --disable-shared --enable-static \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=libxml2-v2.15.3.tar.gz,target=/tmp/libxml2.tar.gz \
|
|
mkdir src \
|
|
&& 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_POSITION_INDEPENDENT_CODE=ON \
|
|
-DLIBXML2_WITH_DOCS=OFF \
|
|
-DLIBXML2_WITH_ICU=OFF \
|
|
-DLIBXML2_WITH_MODULES=OFF \
|
|
-DLIBXML2_WITH_PROGRAMS=OFF \
|
|
-DLIBXML2_WITH_PYTHON=OFF \
|
|
-DLIBXML2_WITH_TESTS=OFF \
|
|
-DLIBXML2_WITH_ZLIB=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=redis-plus-plus-1.3.15.tar.gz,target=/tmp/redis-plus-plus.tar.gz \
|
|
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 \
|
|
-DREDIS_PLUS_PLUS_BUILD_SHARED=OFF \
|
|
-DREDIS_PLUS_PLUS_BUILD_STATIC=ON \
|
|
-DREDIS_PLUS_PLUS_BUILD_STATIC_WITH_PIC=ON \
|
|
-DREDIS_PLUS_PLUS_BUILD_TEST=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=libunwind-v1.8.3.tar.gz,target=/tmp/libunwind.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/libunwind.tar.gz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& autoreconf --install \
|
|
&& CFLAGS=-fPIC ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 \
|
|
--disable-shared \
|
|
--enable-static \
|
|
--disable-tests \
|
|
--disable-documentation \
|
|
--disable-minidebuginfo \
|
|
--disable-zlibdebuginfo \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=jemalloc-5.3.1.tar.gz,target=/tmp/jemalloc.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/jemalloc.tar.gz --directory=src --strip-components=1 \
|
|
&& cd src \
|
|
&& ./autogen.sh \
|
|
&& CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 \
|
|
--disable-doc \
|
|
--disable-shared \
|
|
--enable-static \
|
|
--enable-prof \
|
|
--enable-prof-libunwind \
|
|
&& make --jobs="$(nproc)" \
|
|
&& make install \
|
|
&& cd .. \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=libproxyprotocol-v1.3.3.tar.gz,target=/tmp/libproxyprotocol.tar.gz \
|
|
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 ${PREFIX}/lib64/libproxyprotocol.a src/src/proxy_protocol.o \
|
|
&& cp src/src/proxy_protocol.h ${PREFIX}/include/ \
|
|
&& rm -rf src
|
|
|
|
RUN --mount=type=bind,from=sources,source=xsimd-14.2.0.tar.gz,target=/tmp/xsimd.tar.gz \
|
|
mkdir src \
|
|
&& 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=lib64 \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=thrift-v0.22.0.tar.gz,target=/tmp/thrift.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/thrift.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_COMPILER=OFF \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_TESTING=OFF \
|
|
-DBUILD_TUTORIALS=OFF \
|
|
-DCMAKE_INSTALL_DIR=${PREFIX}/lib64/cmake \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DLIB_INSTALL_DIR=${PREFIX}/lib64 \
|
|
-DPKGCONFIG_INSTALL_DIR=${PREFIX}/lib64/pkgconfig \
|
|
-DWITH_AS3=OFF \
|
|
-DWITH_C_GLIB=OFF \
|
|
-DWITH_CPP=ON \
|
|
-DWITH_JAVA=OFF \
|
|
-DWITH_JAVASCRIPT=OFF \
|
|
-DWITH_LIBEVENT=OFF \
|
|
-DWITH_NODEJS=OFF \
|
|
-DWITH_OPENSSL=OFF \
|
|
-DWITH_PYTHON=OFF \
|
|
-DWITH_QT5=OFF \
|
|
-DWITH_ZLIB=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& sed -i 's|^libdir=.*|libdir=${prefix}/lib64|' \
|
|
${PREFIX}/lib64/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 \
|
|
mkdir src \
|
|
&& 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=lib64 \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DSNAPPY_BUILD_BENCHMARKS=OFF \
|
|
-DSNAPPY_BUILD_TESTS=OFF \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=lz4-v1.10.0.tar.gz,target=/tmp/lz4.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/lz4.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src/build/cmake -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_STATIC_LIBS=ON \
|
|
-DCMAKE_INSTALL_LIBDIR=lib64 \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DLZ4_BUILD_CLI=OFF \
|
|
-DLZ4_POSITION_INDEPENDENT_LIB=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=arrow-apache-arrow-25.0.1.tar.gz,target=/tmp/arrow.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/arrow.tar.gz --directory=src --strip-components=1 \
|
|
&& cmake -G Ninja -S src/cpp -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DARROW_BUILD_BENCHMARKS=OFF \
|
|
-DARROW_BUILD_EXAMPLES=OFF \
|
|
-DARROW_BUILD_SHARED=OFF \
|
|
-DARROW_BUILD_STATIC=ON \
|
|
-DARROW_BUILD_TESTS=OFF \
|
|
-DARROW_BUILD_UTILITIES=OFF \
|
|
-DARROW_DEPENDENCY_SOURCE=SYSTEM \
|
|
-DARROW_DEPENDENCY_USE_SHARED=OFF \
|
|
-DARROW_IPC=ON \
|
|
-DARROW_JEMALLOC=OFF \
|
|
-DARROW_MIMALLOC=OFF \
|
|
-DARROW_PARQUET=ON \
|
|
-DARROW_POSITION_INDEPENDENT_CODE=ON \
|
|
-DARROW_WITH_BROTLI=OFF \
|
|
-DARROW_WITH_BZ2=OFF \
|
|
-DARROW_WITH_LZ4=ON \
|
|
-DARROW_WITH_SNAPPY=ON \
|
|
-DARROW_WITH_ZLIB=ON \
|
|
-DARROW_WITH_ZSTD=ON \
|
|
-DCMAKE_INSTALL_LIBDIR=lib64 \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DPARQUET_BUILD_EXAMPLES=OFF \
|
|
-DPARQUET_BUILD_EXECUTABLES=OFF \
|
|
-DPARQUET_REQUIRE_ENCRYPTION=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src
|
|
|
|
RUN --mount=type=bind,from=sources,source=duckdb-v1.5.6.tar.gz,target=/tmp/duckdb.tar.gz \
|
|
--mount=type=bind,from=sources,source=duckdb-ui-0628932f74b1e2e9eaf68a05b22d737455541dca.tar.gz,target=/tmp/duckdb-ui.tar.gz \
|
|
mkdir src \
|
|
&& tar --extract --gzip --file=/tmp/duckdb.tar.gz --directory=src --strip-components=1 \
|
|
&& mkdir ui-src \
|
|
&& tar --extract --gzip --file=/tmp/duckdb-ui.tar.gz --directory=ui-src --strip-components=1 \
|
|
&& cmake -G Ninja -S src -B build -DCMAKE_BUILD_TYPE=Release \
|
|
-DOVERRIDE_GIT_DESCRIBE=v1.5.6-0-g069cc9f9b5 \
|
|
-DDUCKDB_EXTENSION_CONFIGS="$PWD/ui-src/extension_config.cmake" \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_EXTENSIONS="core_functions;parquet;json" \
|
|
-DBUILD_SHELL=ON \
|
|
-DBUILD_UNITTESTS=OFF \
|
|
-DBUILD_BENCHMARKS=OFF \
|
|
-DENABLE_EXTENSION_AUTOLOADING=OFF \
|
|
-DENABLE_EXTENSION_AUTOINSTALL=OFF \
|
|
-DCMAKE_INSTALL_LIBDIR=lib64 \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
&& cmake --build build --parallel "$(nproc)" --target install \
|
|
&& rm -rf build src ui-src
|
|
|
|
COPY source-stack.cmake ${PREFIX}/share/source-stack/source-stack.cmake
|
|
|
|
CMD ["/bin/bash"]
|