From 9608a9616f51554771dce340add21e3ebec35617 Mon Sep 17 00:00:00 2001 From: Guofang Date: Wed, 11 Nov 2026 15:28:58 +0800 Subject: [PATCH] Add SQLite 3.54.1 Build from the official autoconf amalgamation in debian13, rocky9 and alpine3.24; rocky9-system uses the distribution sqlite-devel. Co-Authored-By: Claude Sonnet 5.5 --- INCLUDED_LIBRARIES.md | 1 + alpine3.24/Dockerfile | 10 ++++++++++ debian13/Dockerfile | 10 ++++++++++ fetch-sources.sh | 2 ++ rocky9-system/Dockerfile | 1 + rocky9/Dockerfile | 10 ++++++++++ 6 files changed, 34 insertions(+) diff --git a/INCLUDED_LIBRARIES.md b/INCLUDED_LIBRARIES.md index 7a0afea..50de265 100644 --- a/INCLUDED_LIBRARIES.md +++ b/INCLUDED_LIBRARIES.md @@ -50,6 +50,7 @@ | Snappy | `1.2.2` | | LZ4 | `v1.10.0` | | Apache Arrow / Parquet | `25.0.1` | +| SQLite | `3.54.1` | The image includes position-independent static builds of these libraries. Protobuf and libxml2 enable zlib support, and LibDwarf enables compressed debug section support using zlib and Zstd. ZeroMQ enables CURVE security using static libsodium. CZMQ enables UUID support using static util-linux libuuid while disabling undeclared optional integrations. librdkafka includes SSL, zlib, Zstd, and bundled LZ4 support while disabling undeclared optional integrations. spdlog uses external fmt, glog uses gflags, and all Meta libraries share the same release tag. Apache Arrow is built with Parquet (including OpenSSL-based Parquet encryption) and Snappy, LZ4, zlib, and Zstd compression using only the pinned system dependencies above (`ARROW_DEPENDENCY_SOURCE=SYSTEM`), with the bundled jemalloc and mimalloc allocators disabled. Apache Thrift only builds its C++ library, and its headers sit next to fbthrift's under `include/thrift` without overlapping. diff --git a/alpine3.24/Dockerfile b/alpine3.24/Dockerfile index 9fed66f..e435fa3 100644 --- a/alpine3.24/Dockerfile +++ b/alpine3.24/Dockerfile @@ -607,4 +607,14 @@ RUN --mount=type=bind,from=sources,source=makeself-release-2.7.1.tar.gz,target=/ && ln -s makeself.sh /usr/local/bin/makeself \ && rm -rf src +RUN --mount=type=bind,from=sources,source=sqlite-autoconf-3540100.tar.gz,target=/tmp/sqlite.tar.gz \ + mkdir src \ + && tar --extract --gzip --file=/tmp/sqlite.tar.gz --directory=src --strip-components=1 \ + && cd src \ + && CFLAGS="-O2 -fPIC" ./configure --prefix=/usr/local --libdir=/usr/local/lib --disable-shared --enable-static \ + && make --jobs="$(nproc)" \ + && make install \ + && cd .. \ + && rm -rf src + CMD ["/bin/sh"] diff --git a/debian13/Dockerfile b/debian13/Dockerfile index 4304e5f..4bd326e 100644 --- a/debian13/Dockerfile +++ b/debian13/Dockerfile @@ -819,6 +819,16 @@ RUN --mount=type=bind,from=sources,source=duckdb-v1.5.6.tar.gz,target=/tmp/duckd && cmake --build build --parallel "$(nproc)" --target install \ && rm -rf build src ui-src +RUN --mount=type=bind,from=sources,source=sqlite-autoconf-3540100.tar.gz,target=/tmp/sqlite.tar.gz \ + mkdir src \ + && tar --extract --gzip --file=/tmp/sqlite.tar.gz --directory=src --strip-components=1 \ + && cd src \ + && CFLAGS="-O2 -fPIC" ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib/$(gcc -dumpmachine) --disable-shared --enable-static \ + && make --jobs="$(nproc)" \ + && make install \ + && cd .. \ + && rm -rf src + COPY source-stack.cmake.in /tmp/ RUN mkdir -p ${PREFIX}/share/source-stack \ && sed "s|@MULTIARCH@|$(gcc -dumpmachine)|" /tmp/source-stack.cmake.in \ diff --git a/fetch-sources.sh b/fetch-sources.sh index a74ec1b..fbed664 100755 --- a/fetch-sources.sh +++ b/fetch-sources.sh @@ -162,3 +162,5 @@ fetch log4cplus-REL_2_0_5.tar.gz \ https://wangguofang.net/github.com/log4cplus/log4cplus/archive/REL_2_0_5.tar.gz fetch ThreadPool-cc0b6371d3963f7028c2da5fc007733f9f3bf205.tar.gz \ https://wangguofang.net/github.com/log4cplus/ThreadPool/archive/cc0b6371d3963f7028c2da5fc007733f9f3bf205.tar.gz +fetch sqlite-autoconf-3540100.tar.gz \ + https://www.sqlite.org/2026/sqlite-autoconf-3540100.tar.gz diff --git a/rocky9-system/Dockerfile b/rocky9-system/Dockerfile index 7f53873..71e6268 100644 --- a/rocky9-system/Dockerfile +++ b/rocky9-system/Dockerfile @@ -80,6 +80,7 @@ RUN dnf install --assumeyes --enablerepo=crb,epel \ librdkafka-devel \ snappy-devel \ spdlog-devel \ + sqlite-devel \ thrift-devel \ tsl-sparse-map-devel \ xsimd-devel \ diff --git a/rocky9/Dockerfile b/rocky9/Dockerfile index b751a67..9ed376f 100644 --- a/rocky9/Dockerfile +++ b/rocky9/Dockerfile @@ -814,6 +814,16 @@ RUN --mount=type=bind,from=sources,source=duckdb-v1.5.6.tar.gz,target=/tmp/duckd && cmake --build build --parallel "$(nproc)" --target install \ && rm -rf build src ui-src +RUN --mount=type=bind,from=sources,source=sqlite-autoconf-3540100.tar.gz,target=/tmp/sqlite.tar.gz \ + mkdir src \ + && tar --extract --gzip --file=/tmp/sqlite.tar.gz --directory=src --strip-components=1 \ + && cd src \ + && CFLAGS="-O2 -fPIC" ./configure --prefix=${PREFIX} --libdir=${PREFIX}/lib64 --disable-shared --enable-static \ + && make --jobs="$(nproc)" \ + && make install \ + && cd .. \ + && rm -rf src + COPY source-stack.cmake ${PREFIX}/share/source-stack/source-stack.cmake CMD ["/bin/bash"]