frankenphp
1a03bc23 - build: make UPX packing opt-in via COMPRESS env var (#2429)

Commit
148 days ago
build: make UPX packing opt-in via COMPRESS env var (#2429) ## Summary UPX is now disabled by default for the static build. To pack the binary with UPX (Linux only), set `COMPRESS=1` at build time. The previous `NO_COMPRESS` flag is removed; CI invocations and the `static-builder-{musl,gnu}` Dockerfiles were updated accordingly. Docs (all locales) were refreshed. ## Why drop UPX from the default? - **AV false positives.** UPX-packed binaries get flagged routinely on Windows and macOS, generating recurring support friction for end users. - **Permanent memory cost.** UPX decompresses the whole binary into anonymous memory at launch, so the OS can no longer share read-only text pages across processes or demand-page from disk. For a long-running server with workers, the savings on disk are paid back continuously in RAM. - **Startup latency.** ~100–300 ms added per launch — noticeable for container cold starts and test runs. - **Tooling friction.** Complicates debugging, core dumps, SBOM/attestation, and trips up some security scanners. - **Modest upside.** ~60% size reduction is nice, but FrankenPHP is mostly distributed via Docker layers (cached) or downloaded once per host. If artifact size is the concern, `xz`-compressing the release asset gives similar savings without any of the runtime downsides. Users who still want a packed binary can opt in explicitly with `COMPRESS=1`.
Author
Parents
Loading