The final runtime stage installed full -dev packages (headers, static
archives, build-time deps) when only the runtime shared libraries are
needed. Replace them with the runtime-only equivalents, verified via
`ldd` on the built p2pool binary against the pinned base.
Changes:
- Final stage: install runtime libs instead of -dev packages
(libuv1t64, libzmq5, libsodium23, libpgm-5.3-0t64, libnorm1t64,
libgssapi-krb5-2, libcurl4t64, libidn2-0). Note the t64 names on
Ubuntu 24.04 due to the 64-bit time_t transition.
- Pin both stages to ubuntu:24.04 (current LTS) instead of
ubuntu:latest for reproducible builds. Renovate's docker manager
keeps this current.
- Add --depth 1 --shallow-submodules to the git clone for faster,
lighter source checkout.
Local verification (native arm64):
- Build succeeds (exit 0).
- `docker run --rm p2pool:test --help` prints "P2Pool v4.17" + usage.
- `ldd` on the binary in the final image: all libs resolve, none missing.
- Image size: 317MB -> 188MB (-129MB, -41%).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Changes in v3.10
New features:
Updated RandomX code to v1.2.1
Added RISC-V build
Bugfixes:
Fixed Peers could ban each other erroneously for "not broadcasting blocks"
Fixed incorrect timing values when logging found shares