bzip2, xz: enforce the final Wasm artifact contract - #126
Conversation
Independent devil's-advocate review: ACCEPTNo findings on the exact source reviewed:
Scope and installed-artifact completenessThe diff is exactly seven additions across
All three distinct binaries use the truthful Revision and dependency reviewNo Formula revision bump is needed. The new dependencies are native inspection tools, and the validator is read-only; this change does not alter or replace installed target bytes. Target runtime dependency closure is empty for both Formulae. The retained evidence is bound to exact tap head
I also compared the six synthetic future-stack commits with the current #913/#874/#883/#938 heads by stable patch ID; every pair is identical, so that proof remains current despite the cherry-picked commit IDs. Validation reproducedRun through Kandelo's
Gates retainedThis accepts the source change; it does not waive the PR's declared merge/publication gates. #936, #913, #874, #883, and #938 must land, and the canonical ABI 39 package index must be refreshed after main settles. If tap PR #106 lands first, this PR should be restacked and the exact source evidence rerun before merge. |
e09da2c to
3bd7156
Compare
Independent devil's-advocate review: ACCEPTNo findings on the exact source reviewed:
The seven-line diff is complete and correctly placed:
The source-build evidence remains exact after the final peer-Formula restack: Bzip2 blob Fresh source builds, all in-Formula guards, full Formula tests, independent archive inspection, source closures, syntax/style, 48/380 Ruby support assertions, and 15/15 TypeScript support tests passed as recorded in the PR body. The source tap was the clean detached This accepts source merge now. Automattic/kandelo#936, #913, #874, #883, #938, tap #22, tap #106, the final ABI 39 index refresh, and fresh exact-merged-head pour evidence remain authoritative bottle-publication gates only. The local validation archives are not publication artifacts. |
Purpose
Make the Bzip2 and XZ pilot Formulae fail before installation if their final linked executables are not valid Kandelo Wasm artifacts.
These are peer compression pilots receiving the same artifact policy, so the changes are intentionally one commit and one PR.
Change
bzip2executable after linking and before installation;xzandxzdec, after linking and before installation; andfork: :forbiddencontract for all three executables.XZ's other command names remain symlinks whose target is exactly
xz, so they do not represent additional executable identities.No Formula revision is bumped. The validators and native build dependencies do not change installed target bytes. This PR contains no bottle block, archive, sidecar, receipt, provenance record, generated Wasm, or Kandelo ABI change.
Source merge readiness
This source-only PR is ready to merge now.
The Formulae call the existing tap-owned
kandelo_validate_wasm_artifacthelper and existing Kandelo artifact guards. Declaring WABT and Binaryen ensures the validator uses structural Wasm inspection. The source change does not depend on Automattic/kandelo#936, #913, #874, #883, #938, tap #22, or published bottles.Tap PR #106 touches a separate XZ hunk and composes cleanly with this change. Either source PR may land first; the later one must be restacked and revalidated on current tap
main.Exact source
deb07626ce0078d578dd890712756373a4a4d5ce3bd7156d775dd1347f114cf5db2f854678dfbcdbc2115f7e355c61b98724043903433aa328fc491c350e04a2e9a0684804c96feb60ddd1b49f867dfd1aa6995595d24f4dd698a4195f4932970f03ec160210cd45a64d098164b6fa18aa9e62c15e7caa3be9f4d1372824afa8e4ade31df0073e8d8c317e6aThe stable patch ID and both Formula blobs are identical to the prior reviewed head.
Validation
Exact final head
Run through Kandelo's declared dev shell where applicable:
brew style: 2 files, no offenses;git diff --check; andIndependent devil's-advocate review accepted the exact head, tree, and patch ID above with no findings.
Fresh source and Formula tests
Fresh supported source builds and full Formula tests ran on source-test head
04775b99f2ce01234617fc7f85e5956a9ef3394e. Its Bzip2 blob, XZ blob, and complete Formula-support tree are byte-identical to the exact final head above; the later base commits changed only peer Formulae.Build context:
256cb8844a26468fbde2dd77d6f93f0828a35fc4;34c40c18ffa2029b611b61c73273e32c003d0842;/private/tmp/kandelo-pr126-build-tapat04775b99f2ce01234617fc7f85e5956a9ef3394e; andscripts/dev-shell.sh.Both Formulae source-built successfully, all three in-Formula artifact guards passed, and both full Formula tests passed. Independent bottle inspection reported ABI 39, wasm32, fork-not-required, and an empty runtime dependency closure for each Formula.
Local validation archives:
a639866932c2e462e9ca6f55f92b45dbb2852ce97323db4a309aca7918cad39d42dd8fd64ba7a6bf389e6425cec486dc20f5901b3f63425f4556458293af0affThese archives are local evidence only. They were not published and must not be reused as authoritative bottles. The conflicted shared checkout under
/opt/homebrew/Library/Tapswas not used or modified by this validation.Authoritative bottle publication
Publication remains a separate post-merge operation. It waits for:
mainsettles; andNo canonical bottle bytes or metadata are changed by this PR.