[Homebrew/Packages] Build seven programs from sealed tap recipes - #129
Draft
brandonpayton wants to merge 11 commits into
Draft
[Homebrew/Packages] Build seven programs from sealed tap recipes#129brandonpayton wants to merge 11 commits into
brandonpayton wants to merge 11 commits into
Conversation
brandonpayton
force-pushed
the
homebrew/close-shell-demo-recipes-qk044
branch
from
July 28, 2026 19:54
c0163f2 to
ba5dae6
Compare
This was referenced Jul 29, 2026
brandonpayton
force-pushed
the
homebrew/close-shell-demo-recipes-qk044
branch
3 times, most recently
from
July 29, 2026 11:46
97fcdb8 to
e705a19
Compare
The sealed tap recipes change the payload authority for seven Formulae, while their registry-built GHCR references are already immutable and public. Advance only each bottle rebuild number, retain the last-green hashes and sidecars, and enforce the exact successor set in the Formula support contract suite.
Use the runner-projected glue and fork-instrument tools instead of reaching through the broad Kandelo checkout root. Add a repository-wide regression that prevents closed recipe scripts from reintroducing broad checkout authority, and refresh the authenticated recipe manifests.
Closed recipe sources are authenticated and mounted read-only. Copy the four upstream projects that require in-tree writes into recipe-owned work directories before configure, generation, patching, or make. Use declared gpatch, Bison, and Flex tools instead of ambient publisher commands. Refresh recipe manifests and Formula attestations, and document the contract.
Use wasm32posix-cc so the SDK remains the single owner of target flags, compiler glue, linker selection, shared memory, and ABI exports. Refresh the sealed recipe manifest and Formula attestation.
Place generated bottle blocks and aligned keyword arguments where Homebrew style expects them so all eight Formulae in this batch pass brew style.
Closed source is root-owned, while each recipe runs as an unprivileged uid. Preserve source structure, links, modes, and timestamps without trying to transfer root ownership into private work space. Refresh all four recipe manifests and Formula attestations.
Homebrew core installs the gpatch executable as patch on Linux. The closed recipes were invoking the macOS-only gpatch name and hiding command-not-found behind patch-drift diagnostics. Bind both patch-using closed recipes to the declared versioned gpatch keg, verify native keg paths precede system tools, and refresh the recipe manifests and Formula attestations.
brandonpayton
force-pushed
the
homebrew/close-shell-demo-recipes-qk044
branch
from
July 29, 2026 12:13
e705a19 to
a9bddb5
Compare
Formula browser tests previously invoked npx, so PATH or package-manager behavior could select mutable code outside the publisher closure. Derive one exact Vite CLI from the frozen Formula runtime, validate its canonical file identity in a shared launcher, and execute it through the current Node binary. All three browser helpers use that contract, with coverage for Ruby injection and every rejected path shape.
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.
Why
Seven shell and demo programs still get their build recipes from
Kandelo's legacy package registry. This change makes each Homebrew
Formula and its tap-owned recipe the complete, reviewable source of its
build instead.
The publisher verifies recipe inputs and mounts them read-only. Some
upstream build systems write generated files into their source tree, so
those builds need a private writable copy. That copy must not weaken the
authenticated source boundary.
Homebrew also treats
Formula#systemdifferently from Ruby'sKernel.system: it raises on failure and returnsnilon success. Theold support code treated that successful
nilas a failure.What changes
bc,fbdoom,lsof,modeset,netcat,nethack, andposix-utils-litefrom sealedKandelo/recipes/<name>manifests.tools, and package dependencies.
bc,fbdoom,netcat, andnethacksources intorecipe-owned scratch space before their build systems write to them.
undeclared publisher tools.
lsofthroughwasm32posix-cc, which keeps target and ABIflags under the Kandelo SDK's control.
whitespace with a scoped
.gitattributesrule.Formula#system's normal success result while retainingHomebrew's bounded command log for real failures.
installation instead of consuming the same one-shot response twice.
Current evidence
The branch is rebased on tap
mainat8af204c. Generic publisher,resource-attestation, staging, and sealed-projection support now comes
from merged tap prerequisites rather than being duplicated here. The
base also owns the credential-free
homebrew-bootstrapsupport-datapath. This PR contains only the seven migrations and their focused
support tests.
Both fresh exact-head tap contract checks pass at
a9bddb5.The previous parallel dry run built and installed all seven programs.
Every job reached
brew test, where the same missing closed Node/tsxruntime stopped the test launcher. No bottle was uploaded or published.
That shared publisher gap is addressed by Automattic/kandelo #1134.
Local and tap validation also covers:
brew stylefor all seven Formulae;git diff --check.Prior dry run:
https://github.com/kandelo-dev/homebrew-tap-core/actions/runs/30436084638
Next
commits.
main.runbook.
This PR remains a draft until step 2 supplies exact-head evidence.