Commit Graph
22 Commits
Author SHA1 Message Date
GuofangandClaude Sonnet 5.5 ac50e86249 Generate a CMake file that locates the rocky9 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 under
lib64) 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-11-06 12:25:23 +08:00
Guofang be9078f5af Update Dockerfile and build script to support custom installation prefix 2026-11-06 11:23:25 +08:00
Guofang 606029b332 Add gcc-toolset-15 and libasan-devel to Dockerfile dependencies 2026-11-03 16:57:30 +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 8f24cf0e17 Build Apache Arrow/Parquet and its dependencies on rocky9
Add xsimd, Thrift, Snappy, LZ4 and Arrow/Parquet before DuckDB, in the
same order as debian13, using lib64 as the library directory.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 13:49:48 +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 195a389f8a Parameterize the rocky9 libevent install patch by CMAKE_INSTALL_LIBDIR
Share the debian13 patch content, renamed to libevent-libdir-install.patch,
so the install directory follows CMAKE_INSTALL_LIBDIR instead of a
hardcoded lib64. On Rocky Linux GNUInstallDirs already defaults it to
lib64, so the Dockerfile does not need to pass it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 08:58:00 +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 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 ee653608bc Install Rust in rocky9 from the standalone tarball in sources
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:09:19 +08:00
GuofangandClaude Sonnet 5.5 5f0422f3f0 Import rocky9 source archives via the sources build context
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:07:02 +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 659dd05269 Add DuckDB build to rocky9
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 14:36:47 +08:00
GuofangandClaude Sonnet 5 1170f8f353 Use USTC EPEL mirror and upgrade packages in rocky9 Dockerfile
Port the EPEL mirror rewrite from develop's test/Dockerfile, and run
dnf upgrade before cleaning the cache.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012LvSM3NjBSCNsRwDpWeGfu
2026-09-21 09:48:21 +08:00
Guofang 3a0bb4e0c8 Add 'which' package to installation in Dockerfiles for Debian and Rocky9 2026-09-20 14:26:26 +08:00
Guofang eb8ac43354 Update Rust installation process in Dockerfile to use USTC mirrors 2026-09-18 13:14:20 +08:00
Guofang 0563551eed Remove architecture-specific SHA256 checks for rustup installation in Dockerfile 2026-09-18 11:14:41 +08:00
GuofangandClaude Sonnet 5 ef0079c3ee Install all vendored libraries into lib64 consistently
Verified every third-party build step by building and inspecting the
resulting image, and fixed each one that landed in /usr/local/lib
instead of /usr/local/lib64: CMake projects got -DLIB_INSTALL_DIR,
-DCMAKE_INSTALL_LIBDIR, -DLIBRARY_INSTALL_DIR or -DLIB_SUFFIX as
appropriate, autotools projects got --libdir=/usr/local/lib64, and
libevent (which hardcodes lib with no override) is now patched via
libevent-lib64-install.patch before building. Also drops the boost/
libaio/util-linux/gmp/nettle/gnutls/libproxyprotocol checksum checks,
removes the now-unused lib->lib64 copy fallback, and switches libxml2
to the wangguofang.net GitHub mirror since gitlab.gnome.org is
unreachable from the build environment.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QUU2cEU5XgLpfGVN8Jpa7d
2026-09-17 15:25:07 +08:00
GuofangandClaude Sonnet 5 a425237759 Fetch rocky9 GitHub sources via curl through wangguofang.net proxy
Switch rocky9's GitHub-hosted dependency downloads from `git clone` to
curl-fetched release tarballs via the wangguofang.net proxy, matching
the approach already used in alpine3.24/Dockerfile. log4cplus keeps
git clone since it needs a submodule checkout.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WE1kAAo7iusPxLSuu88HaU
2026-09-17 14:08:08 +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 195ad299cd Rename rockylinux9 build directory to rocky9
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 12:09:19 +08:00