Repository navigation
Conversation
sineld
force-pushed
the
feat/linux-services
branch
from
October 19, 2026 02:37
0f5b173 to
c3f0584
Compare
This was referenced Oct 19, 2026
Author
|
Closing: superseded by #34, see #24 (comment). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds on #24: the first three commits are that PR's. Only the last one,
feat: build PostgreSQL, Valkey and Redis for Linux, is new here, and I'll rebase once #24 is in.This builds PostgreSQL (14–18), Valkey (9.1) and Redis (7.2, 7.4, 8.4, 8.10) from source for
linux-x64andlinux-arm64, the services Flock on Linux (flock-php/flock#12) can't get by mirroring.How
build-service.ymlbuilds them in themanylinux_2_28container (AlmaLinux 8, the image Python wheels are built in), so the binaries need glibc 2.28: Debian 10, Ubuntu 20.04, RHEL 8 and later. PHP (feat: Linux packages: PHP for x64 and arm64, and the mirrored services #24) targets glibc 2.17 through static-php-cli's own container; the services have no such tooling, and 2.28 keeps current compilers and maintained package repositories.packages/{valkey,redis}/linux/build.share the macOS scripts withnproc:src/only, no TLS, no systemd, libc's malloc. The bundled jemalloc is built for the build machine's page size, and arm64 kernels with 16K or 64K pages exist. They need nothing but glibc.packages/postgres/linux/build.sh) mirrors the macOS script:scripts/linux/openssl.sh, the sameOPENSSL_VERSION), built withno-dso: nothing loads OpenSSL modules here. Without it, every library that linkslibcrypto.awould also need-ldlon glibc 2.28; MariaDB's client plugins hit that.nmwrapper for the libpq exit-function check.scripts/linux/bundle.shis the Linux counterpart ofscripts/macos/relocate.sh.lib/: for PostgreSQL that's libz, libuuid, libedit and libtinfo.$ORIGIN-relative RUNPATH; other rpaths are dropped.scripts/verify-linux.shnow also accepts libraries that resolve into the package, and RUNPATHs that start with$ORIGIN. It still rejects anything else and any glibc symbol aboveMIN_GLIBC(2.28 here, in each package'senv).smoke-service.shruns unchanged in analmalinux:8container, as the runner's user with its/etc/passwdmounted: PostgreSQL refuses root, and initdb looks the user up.scripts/lib.sh:--retry-all-errorsis only passed when curl knows it (7.71+; AlmaLinux 8 has 7.61).Testing
All of this ran on my fork with
publishoff (https://github.com/sineld/binaries/actions/workflows/build-service.yml):no-dsochange and passed.lib/.bundle.shbundled curl's 29 libraries in a local test, after which curl still ran from the package.flockrel:go testpasses. Aplandry run lists the 20 Linux service builds.Not in this PR
lib/private/.bundle.shpublish the source of a bundled LGPL library.