This repository was archived by the owner on Jul 21, 2026. It is now read-only.
nginx: serve forked HTTP workloads with rewrite and gzip - #46
Closed
brandonpayton wants to merge 1 commit into
Closed
nginx: serve forked HTTP workloads with rewrite and gzip#46brandonpayton wants to merge 1 commit into
brandonpayton wants to merge 1 commit into
Conversation
brandonpayton
force-pushed
the
migrate/pcre2-dependency-root
branch
from
July 11, 2026 23:09
40ad3b5 to
adb2364
Compare
brandonpayton
force-pushed
the
migrate/nginx-service
branch
from
July 12, 2026 00:15
18c7526 to
ab36a14
Compare
brandonpayton
force-pushed
the
migrate/nginx-service
branch
from
July 12, 2026 00:53
ab36a14 to
f9401d8
Compare
brandonpayton
changed the base branch from
migrate/pcre2-dependency-root
to
main
July 12, 2026 00:53
Member
Author
|
Superseded by the clean split now in place:
The replacement Formula also moves from Nginx 1.24.0 to official stable 1.30.3 after review identified current upstream security advisories affecting the older release. #79 has fresh exact-head source-build and Kandelo service evidence and remains deliberately unmerged behind its dependency-bottle and main-repository gates. Closing this stale, conflict-bearing branch so there is one authoritative Nginx review surface. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Purpose
Replace the source-only nginx registry artifact with a first-class Kandelo Homebrew formula that runs the unmodified nginx 1.24.0 service through the normal ABI 18 SDK, fork instrumentation, VFS, process, and in-kernel TCP paths.
The formula preserves nginx's real master/worker process model and publishes a useful HTTP surface: PCRE2-backed rewrites, zlib-backed compression, static files, and the upstream configuration/manual files.
Registry reconciliation
packages/registry/nginx/package.tomlremains authoritative for:77a2541637b92a621e3ee76776c8b7b40cf6d707e69ba53a940283e30ff2f55dThe registry recipe disabled rewrite and gzip and used hard-coded/compile-only configure answers. This formula instead declares the first-class pcre2 and zlib formulae and exercises the resulting modules at runtime. PCRE2 #37 is merged into tap main, so the declared pcre2 build/runtime dependency now resolves from the PR base.
zlib #39 is not a merge dependency for nginx: that PR makes
libz.ausable inside Wasm side modules, while nginx links zlib statically into a main executable. The zlib formula already on tap main satisfies this formula's link contract.Build and runtime contract
Upstream's supported
--crossbuildpath still executes target feature probes directly. The formula makes a narrow configure patch that routes those target binaries through Kandelo's Node host. Configure therefore observes actual wasm32/Kandelo behavior for sizes, endianness, poll, mmap, PCRE2, zlib, and the remaining feature surface instead of inheriting host facts or guessed cache values.The build also:
/home/linuxbrew/.linuxbrew/opt/nginx;nobodyaccount instead of probing the build host's account database;The shared formula support gains a persistent HTTP-service runner. It boots the regular Kandelo rootfs, mounts the formula test tree and keg, starts the service with explicit guest credentials, issues requests through
fetchInKernel, and returns status, headers, and response bytes without a host TCP shortcut.The formula test runs
master_process onand checks:/old/message.txtto/new/message.txt;Accept-Encoding: gzip;Platform and publication gates
The PCRE2 dependency is resolved on tap main. Bottle construction and publication still wait for the applicable platform and publisher gates:
No bottle block is included.
Validation
All build and runtime validation ran through
scripts/dev-shell.shagainst the ABI 18 integration runtime. The final source content is commit18c7526d8d09efa87300fb73f3e6f3e4d32877e9; the staged formula checksum recorded by Homebrew iscc7483494eb0f3c8b30961249df479f9002c3fd2aa673b1f184211dd06aa323d.brew reinstall --build-from-sourcepassed: 19 installed files, 2 MB, built in 38 seconds.brew test --verbose automattic/kandelo-homebrew/nginxpassed, including the forked master/worker service, rewrite, gzip, and 404 assertions.bb40ef62fb5bc1d4f70df639b34345620912a70bceda6577c5226a6c5e7fda3b; ABI 18; complete fork instrumentation; no legacy Asyncify; no host/build paths; stable guest prefix present. This is validation evidence, not a publishable bottle hash while determinism is gated.brew style,brew audit --strict,brew readall --aliases, andgit diff --checkpassed.Current-main restack
Replayed the single nginx-owned commit from the old PCRE2 branch head
adb23647f1f93bc856cbfcf7a9c2f375f7e6226eonto tap main306d72707b97a92f174876615b2861655ce80bd5, which contains squash-merged PCRE2 #37. The replay was conflict-free. Stable patch ID617c2cc7de6d67acf4b09317ae197f52df8f484ais unchanged from the previous nginx head.The nginx formula blob
0849a983667e6f093af9d269da73f10258652571and HTTP runner blobcf2fd2d12893101987f0cc68b9a28be10e024711are byte-for-byte identical to both the previous branch head and validated18c7526d8d09efa87300fb73f3e6f3e4d32877e9. The main-relative PR diff contains onlyFormula/nginx.rb, the nginx HTTP formula-support helper and tests, and the nginx README entry.Current head:
f9401d829ddca8ec8ce2bf1f9bd0a76f8687f693. Throughscripts/dev-shell.sh, Homebrew Ruby syntax passed for the formula and shared support, literal formula loading through the installed tap passed,brew style Formula/nginx.rbpassed, the combined support suite passed 22 runs / 200 assertions, andgit diff --checkpassed. The worktree is clean.No source build, runtime result, or bottle is newly claimed by this restack. The unchanged formula and runner retain the exact artifact evidence above. PCRE2 #37 is now resolved; the remaining bottle gates are the platform and publisher items listed above.