From 3c1f37e1d55de23b027bb33a2d43e42b27e8ad54 Mon Sep 17 00:00:00 2001 From: Guofang Date: Mon, 14 Sep 2026 15:15:52 +0800 Subject: [PATCH] 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 Claude-Session: https://claude.ai/code/session_016Xj6cCTEVsr5PM43uTsbq8 --- INCLUDED_LIBRARIES.md | 1 + alpine3.24/Dockerfile | 10 ++++++++++ debian13/Dockerfile | 12 ++++++++++++ rockylinux9/Dockerfile | 12 ++++++++++++ 4 files changed, 35 insertions(+) diff --git a/INCLUDED_LIBRARIES.md b/INCLUDED_LIBRARIES.md index 1780f79..1117808 100644 --- a/INCLUDED_LIBRARIES.md +++ b/INCLUDED_LIBRARIES.md @@ -44,6 +44,7 @@ | libmaxminddb | `1.13.3` | | libyaml | `0.2.5` | | libxml2 | `2.15.3` | +| libproxyprotocol | `v1.3.3` | 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. diff --git a/alpine3.24/Dockerfile b/alpine3.24/Dockerfile index 44209d2..e790d70 100644 --- a/alpine3.24/Dockerfile +++ b/alpine3.24/Dockerfile @@ -644,6 +644,16 @@ RUN curl --fail --location --output jemalloc.tar.gz \ && cd .. \ && rm -rf src +RUN curl --fail --location --output libproxyprotocol.tar.gz \ + https://wangguofang.net/github.com/kosmas-valianos/libproxyprotocol/archive/v1.3.3.tar.gz \ + && mkdir src \ + && tar --extract --gzip --file=libproxyprotocol.tar.gz --directory=src --strip-components=1 \ + && rm libproxyprotocol.tar.gz \ + && gcc -fPIC -c -o src/src/proxy_protocol.o src/src/proxy_protocol.c \ + && ar rcs /usr/local/lib/libproxyprotocol.a src/src/proxy_protocol.o \ + && cp src/src/proxy_protocol.h /usr/local/include/ \ + && rm -rf src + RUN curl --fail --location --output makeself.tar.gz \ https://wangguofang.net/github.com/megastep/makeself/archive/release-2.7.1.tar.gz \ && mkdir src \ diff --git a/debian13/Dockerfile b/debian13/Dockerfile index 2a3cb74..03e6c40 100644 --- a/debian13/Dockerfile +++ b/debian13/Dockerfile @@ -563,4 +563,16 @@ RUN git clone --branch=5.3.1 --depth=1 https://github.com/jemalloc/jemalloc.git && cd .. \ && rm -rf src +RUN curl --fail --location --output libproxyprotocol.tar.gz \ + https://gh-proxy.com/https://github.com/kosmas-valianos/libproxyprotocol/archive/v1.3.3.tar.gz \ + && echo "4f1cbd714e5b52a91a9a43228d55c8165b578b738f743d057ae321b69b8437f7 libproxyprotocol.tar.gz" \ + | sha256sum --check - \ + && mkdir src \ + && tar --extract --gzip --file=libproxyprotocol.tar.gz --directory=src --strip-components=1 \ + && rm libproxyprotocol.tar.gz \ + && gcc -fPIC -c -o src/src/proxy_protocol.o src/src/proxy_protocol.c \ + && ar rcs /usr/local/lib/libproxyprotocol.a src/src/proxy_protocol.o \ + && cp src/src/proxy_protocol.h /usr/local/include/ \ + && rm -rf src + CMD ["/bin/bash"] diff --git a/rockylinux9/Dockerfile b/rockylinux9/Dockerfile index a9c7e75..2cdee5c 100644 --- a/rockylinux9/Dockerfile +++ b/rockylinux9/Dockerfile @@ -573,6 +573,18 @@ RUN git clone --branch=5.3.1 --depth=1 https://github.com/jemalloc/jemalloc.git && cd .. \ && rm -rf src +RUN curl --fail --location --output libproxyprotocol.tar.gz \ + https://gh-proxy.com/https://github.com/kosmas-valianos/libproxyprotocol/archive/v1.3.3.tar.gz \ + && echo "4f1cbd714e5b52a91a9a43228d55c8165b578b738f743d057ae321b69b8437f7 libproxyprotocol.tar.gz" \ + | sha256sum --check - \ + && mkdir src \ + && tar --extract --gzip --file=libproxyprotocol.tar.gz --directory=src --strip-components=1 \ + && rm libproxyprotocol.tar.gz \ + && gcc -fPIC -c -o src/src/proxy_protocol.o src/src/proxy_protocol.c \ + && ar rcs /usr/local/lib/libproxyprotocol.a src/src/proxy_protocol.o \ + && cp src/src/proxy_protocol.h /usr/local/include/ \ + && rm -rf src + RUN cp --archive /usr/local/lib/. /usr/local/lib64/ RUN RUSTUP_VERSION=1.28.2 \