Commit Graph
74 Commits
Author SHA1 Message Date
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
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
Guofang 56ba35005d Add rpm-build to the Rocky Linux 9 Dockerfile dependencies 2026-09-14 15:40:56 +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
GuofangandClaude Sonnet 5 874c6ead1b Clone log4cplus from GitHub instead of the gitee mirror
Its ThreadPool submodule already comes from
github.com/log4cplus/ThreadPool, so pull the main repo from the
canonical github.com/log4cplus/log4cplus too, keeping both fetches
consistently routed through the wangguofang.net/github.com proxy
instead of mixing sources. Verified with a full build.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WGpSs9pKTbvPkmFvBaWhBp
2026-09-12 17:22:27 +08:00
GuofangandClaude Sonnet 5 c6d2f963d2 Remove dead Meta ecosystem build steps from the Alpine Dockerfile
Delete the commented-out Folly/Fizz/Wangle/mvfst/fbthrift/CacheLib RUN
blocks instead of carrying them as dead code; keep a short explanatory
comment in the Dockerfile and move the fuller rationale to
INCLUDED_LIBRARIES.md, scoped explicitly to alpine3.24 since debian13
and rockylinux9 are glibc-based and build the full Meta stack.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WGpSs9pKTbvPkmFvBaWhBp
2026-09-12 17:12:20 +08:00
GuofangandClaude Sonnet 5 1f23774796 Fetch source archives instead of git clone in the Alpine image
Replace every git-clone-based dependency fetch with a plain
curl-and-extract of the corresponding tagged source archive (GitHub
repos via the wangguofang.net/github.com proxy's /archive/<ref>.tar.gz,
libxml2 via GitLab's -/archive/ endpoint), verified one at a time
bottom-up so each change stayed isolated and cheap to test against the
build cache. This avoids the git protocol/proxy round-trip per
dependency and matches the plain curl+tar pattern already used
elsewhere in this Dockerfile (boost, libaio, gmp, nettle, gnutls,
util-linux).

log4cplus keeps git clone, since it needs `git submodule update --init`
for its ThreadPool dependency, which a source archive can't provide.
Folly/Fizz/Wangle/mvfst/fbthrift/CacheLib remain untouched and
commented out.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WGpSs9pKTbvPkmFvBaWhBp
2026-09-12 17:06:42 +08:00
GuofangandClaude Sonnet 5 d1ce99a0d0 Add Alpine (musl) build environment alongside Debian 13 and Rocky Linux 9
Mirrors the same pinned third-party library build sequence as debian13/
on Alpine 3.24, targeting musl libc, with the fixes needed to get the
whole non-Meta stack building cleanly:

- Adjusts the package install step for apk; builds makeself from a
  pinned source tag since it isn't packaged for stable Alpine releases;
  adds coreutils so GNU realpath (needed by liburing's configure script)
  is available in place of busybox's; drops sha256 checksum verification
  on curl-fetched archives.
- CMake on 3.24 is 4.x, which removed compatibility with
  cmake_minimum_required() versions below 3.5. Adds
  -DCMAKE_POLICY_VERSION_MINIMUM=3.5 (CMake's own sanctioned workaround,
  not a source patch) to every cmake configure call so unmigrated
  CMakeLists.txt in our pinned dependencies still configure.
- GCC on 3.24 is 15, which defaults to C23; C23 redefines an empty `()`
  in a function declaration to mean "no parameters" instead of the old
  K&R "unspecified parameters", which breaks a decades-old conftest in
  GMP 6.3.0's configure. Pins GMP's build to -std=gnu17 to restore the
  old semantics for that one dependency.
- Switches the GitHub mirror from gh-proxy.com (which started rejecting
  some repos with a content-filter 403 in this environment) to the
  project's own reverse proxy at wangguofang.net/github.com/.

Folly/Fizz/Wangle/mvfst/fbthrift/CacheLib are left commented out: their
portability layer reaches for glibc-only macros/symbols in multiple
places with no musl branch (off64_t/lseek64/pread64 in
folly/portability/Unistd.h, __ELF_NATIVE_CLASS in
folly/debugging/symbolizer/Elf.cpp, and likely more further in), and
patching each one as it surfaces risks introducing subtle bugs in code
we don't own. The reasoning is recorded inline for anyone revisiting
this later.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WGpSs9pKTbvPkmFvBaWhBp
2026-09-12 17:05:45 +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 30039fa8ff Install Rust toolchain on Rocky Linux 9 2026-08-28 15:31:14 +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 5c931a69e2 build: install GCC Toolset 15 C++ compiler 2026-08-28 09:08:45 +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