Commit Graph
36 Commits
Author SHA1 Message Date
Guofang bf48c9edd2 Remove git config for GitHub URL redirection from Dockerfile 2026-11-05 10:45:10 +08:00
GuofangandClaude Sonnet 5.5 7f5012dd94 Build GMP as a fat library to support older CPUs
--enable-fat selects the optimized code at run time, so the static
library also works on x86_64 CPUs without AVX, BMI2 or ADX. It is
ignored on architectures that do not support it, such as aarch64.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 12:45:17 +08:00
GuofangandClaude Sonnet 5.5 729ada5769 Generate a CMake file that locates the debian13 dependencies
Install ${PREFIX}/share/source-stack/source-stack.cmake as the last step. It
mirrors the image's ENV block (prefix, pkg-config and library paths) for
CMake and can restrict lookups to the prefix with GW_SOURCE_STACK_ONLY.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 09:56:57 +08:00
GuofangandClaude Sonnet 5.5 f18e95dace Make the debian13 install prefix configurable
Replace the hard-coded /usr/local with a PREFIX build argument (default
/usr/local) and add a MULTIARCH argument for the Debian multiarch library
directory. The toolchain only searches /usr/local by default, so export
PATH, C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, LIBRARY_PATH, PKG_CONFIG_PATH,
CMAKE_PREFIX_PATH and CMAKE_INSTALL_PREFIX for other prefixes. build.sh
passes PREFIX and derives MULTIARCH from uname -m.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 16:39:15 +08:00
GuofangandClaude Sonnet 5.5 eb0e3ba5d9 Mount the Rust archive from its own sources/rust directory
Download the per-architecture Rust tarball into sources/rust/ and have the
rocky9 and debian13 Dockerfiles bind that directory and pick the archive
with uname -m. This drops the architecture-neutral hard link and keeps the
Rust layer's cache key independent of other source archives.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 09:54:32 +08:00
GuofangandClaude Sonnet 5.5 b21f7db67b 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>
2026-10-27 08:52:07 +08:00
GuofangandClaude Sonnet 5.5 7f34cfcf9c Build log4cplus from source archives instead of git clone
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:39:51 +08:00
GuofangandClaude Sonnet 5.5 d5cd8b4665 Move debian13 Rust installation to the same position as rocky9
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:36:11 +08:00
GuofangandClaude Sonnet 5.5 b50918a3f3 Pass the DuckDB version explicitly so the ui extension picks the 1.5 API
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:28:54 +08:00
GuofangandClaude Sonnet 5.5 df7af62648 Build DuckDB with the ui extension and import sources via a build context
- Build the ui extension (pinned duckdb-ui commit for DuckDB 1.5.6) into
  DuckDB on debian13 and rocky9 so the shell supports -ui.
- Add fetch-sources.sh, which downloads source archives with aria2c into the
  git-ignored sources/ repository.
- debian13: replace per-dependency downloads with
  RUN --mount=type=bind,from=sources, passed by build.sh through
  --build-context, so archives are not stored in image layers.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:02:15 +08:00
GuofangandClaude Sonnet 5.5 9a2b8b5db4 Add DuckDB build to debian13 and drop Boost submodule rule from AGENTS.md
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 14:30:19 +08:00
Guofang b3676923c3 Update CMake installation paths to use /usr/local for libraries and pkgconfig 2026-10-22 16:01:39 +08:00
Guofang 5222ae6843 Replace Rust installation with aria2 downloads from multiple mirrors 2026-10-22 14:40:05 +08:00
GuofangandClaude Sonnet 5.5 86f11507e1 Download gmp and nettle with aria2 using USTC and Tsinghua mirrors
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 12:14:46 +08:00
GuofangandClaude Sonnet 5.5 97dc5c4561 Download Boost with aria2 using two mirrors
Install aria2 in the image and fetch Boost from the Aliyun and official
mirrors, limited to one connection per host.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 12:14:46 +08:00
GuofangandClaude Sonnet 5.5 7f2ad60c18 Fix missing line continuation in Rust installation step
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 12:14:46 +08:00
Guofang dd06661179 Add Rust installation with USTC mirrors and symlink binaries in Dockerfile 2026-09-24 15:32:18 +08:00
GuofangandClaude Opus 5.5 aa85a6f77b Build Apache Arrow and Parquet from source in debian13 image
Add pinned xsimd 14.2.0, Apache Thrift v0.22.0 (C++ library only),
Snappy 1.2.2, LZ4 v1.10.0, and Apache Arrow 25.0.1 with Parquet as
static PIC builds. Arrow uses ARROW_DEPENDENCY_SOURCE=SYSTEM so no
dependencies are fetched implicitly, disables the bundled jemalloc and
mimalloc allocators, and enables Parquet encryption via OpenSSL.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M5XtQocmT1zExJBt4oh3YK
2026-09-24 15:17:12 +08:00
Guofang 3a0bb4e0c8 Add 'which' package to installation in Dockerfiles for Debian and Rocky9 2026-09-20 14:26:26 +08:00
GuofangandClaude Sonnet 5 52ea874506 Fetch debian13 sources via curl and unify libs under lib/x86_64-linux-gnu
Mirrors rocky9's curl-based fetching and consistent-libdir goals but
adapted to Debian's own conventions: replaces git clone with curl
tarball downloads (matching rocky9's URLs), drops sha256sum checks, and
installs every vendored library under /usr/local/lib/x86_64-linux-gnu
instead of rocky9's lib64.

lib64 was tried first but abandoned: on Debian, CMake's find_package()
Config-mode search, find_library(), and pkg-config's default search
path all detect /etc/debian_version and never look in lib64 (that's an
RHEL-only default), so cross-package lookups like spdlog finding fmt
or folly's FindLibEvent.cmake kept failing. lib/x86_64-linux-gnu is
Debian's native multiarch path and is found by all three mechanisms
with no extra CMAKE_PREFIX_PATH/PKG_CONFIG_PATH workarounds, verified
by building the full image end to end.

libevent-lib64-install.patch is renamed and retargeted at
lib/x86_64-linux-gnu since libevent hardcodes "lib" in its CMake
install rules with no override flag. CacheLib keeps building its
default interface/cachebench targets (no patch needed here, unlike
rocky9).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UV2yJRkL6CnChX3D2zhoXH
2026-09-17 16:48:53 +08:00
GuofangandClaude Sonnet 5 e685a177d5 Enable jemalloc heap profiling with libunwind backtraces
Build libunwind 1.8.3 as a static library before jemalloc, then
configure jemalloc with --enable-prof --enable-prof-libunwind so the
static libjemalloc.a can dump heap profiles with accurate stack
traces.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sd7pBDVxQENBX1CP2z6Lip
2026-09-17 13:59:41 +08:00
GuofangandClaude Sonnet 5 30f1a3f771 Use wangguofang.net proxy and Tsinghua mirror for GitHub and libaio downloads
Switches the remaining gh-proxy.com references (rockylinux9, debian13) to
wangguofang.net for consistency with alpine3.24, and points the libaio
0.3.113 download at the Tsinghua mirror instead of releases.pagure.org for
faster access from mainland China.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019T6ypNZ1EUpKJQkXLopojx
2026-09-14 16:09:12 +08:00
Guofang 0852115a0e Update log4cplus clone URL to use GitHub instead of Gitee 2026-09-14 16:00:31 +08:00
GuofangandClaude Sonnet 5 3c1f37e1d5 Add libproxyprotocol to the Debian, Rocky, and Alpine build environments
Upstream ships only a Makefile with no install target, so each image
compiles src/proxy_protocol.c with -fPIC, archives it into
libproxyprotocol.a, and installs the header manually, matching this
project's static-PIC-library convention.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Xj6cCTEVsr5PM43uTsbq8
2026-09-14 15:15:52 +08:00
Guofang e384a71dc9 Add epel-release and makeself to Dockerfile dependencies 2026-09-10 13:54:57 +08:00
Guofang 056b7dc854 Add CXXFLAGS to jemalloc configuration for static build 2026-09-10 08:48:50 +08:00
GuofangandClaude Sonnet 5 951ebf0907 Build jemalloc from source instead of via package manager
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QKAbAkPvqqKCRZKXtZAvTx
2026-09-07 13:03:27 +08:00
Guofang 3cbeb5340c Fix RapidJSON compatibility with newer compilers 2026-08-31 17:10:02 +08:00
Guofang eac0b8df0d Use USTC mirror for Nettle source 2026-08-28 09:52:56 +08:00
Guofang 79bcac2040 Use USTC mirror for GMP source 2026-08-28 09:51:25 +08:00
Guofang 3e8418da24 Use Ninja for CMake builds 2026-08-28 09:17:33 +08:00
Guofang 03fb4aece5 build: use autotools for libyaml 2026-08-28 08:59:17 +08:00
Guofang ebf0867db6 build: add redis-plus-plus 2026-08-25 14:35:49 +08:00
Guofang 68d8bfef21 Update RapidJSON version in Dockerfiles and included libraries 2026-08-19 11:07:27 +08:00
Guofang 3d679d8682 Add Zstd and zlib installation to Dockerfiles and update dependencies 2026-08-13 15:58:09 +08:00
Guofang 2a96844f99 Initial commit 2026-08-13 15:50:03 +08:00