fbdoom: preserve the framebuffer game runtime - #64
Conversation
|
Independent devil review covered the exact formula patch later restacked as 6d3d2c3; its stable patch ID is unchanged from reviewed commit e2e88a0. No blocking formula finding remains. The reviewer independently verified immutable provenance, all downloaded hashes, the eight-patch application sequence, byte identity for registry patches 0001-0007, formula style, and diff cleanliness. Long source-build and Chromium results remain explicitly relayed implementer evidence rather than a redundant reviewer rerun. The stated ABI, stack, guard, sidecar, bottle, and stock-guest gates remain mandatory before merge. |
6d3d2c3 to
7c33861
Compare
|
Independent exact-head review completed for
No Formula blocker was found. |
Why
Migrate the registry fbDOOM port into the tap as a first-class source-built Formula. The installed program uses Kandelo framebuffer, input, sound, and music paths; no demo renderer or bundled game data substitutes for the engine.
Reusable framebuffer support landed separately in tap #63.
The legacy package-registry recipe cannot be installed or updated through normal Homebrew workflows. Moving the real engine into the tap gives Kandelo users one reviewed package path while keeping framebuffer, input, and audio behavior tied to the platform rather than a game-specific workaround.
What changed
fork: :forbidden.Exact source head
Base:
c5705667a90b05754d2244a362f3f7fc95d2f9c3Head:
7c3386159d03fd564f7290667c3d544009065379Two commits:
dfa40fdpreserves accepted Formula/patch/test/runner bytes; only README aggregation context changes.7c338615adds Binaryen and migrates generic checks to sharedkandelo_validate_wasm_artifact(..., fork: :forbidden)while retaining the exactenvimport allowlist.Final Formula SHA-256:
3d12b9bcaf50838d7f0d3dff7196ffbe0cb38777c8d2838f12354687e0892bedPatches 0001-0007 are byte-identical to the registry, and all eight patch files are byte-identical to the accepted prior head. Formula test and framebuffer runner/page bytes are unchanged. Ruby syntax, diff, ancestry, patch identity, and clean-worktree checks pass.
Historical functional evidence
The accepted content-equivalent Formula previously established on ABI 18:
bbb651c33ce6f1eaf35d31f7d663f3c6b58549e45c96d1a361e5bf546ca9d640That is historical source/runtime evidence, not an exact-head rebuild or ABI 39 bottle/pour claim.
Gates
Locked #907 establishes ABI 39. Its green registry fbdoom matrix proves the platform registry recipe/artifact only; it does not validate this Formula, bottle, sidecars, stock Homebrew pour, or execution of the poured keg.
Direct Formula gates are #842 and #882. #888 is not a direct fbDOOM gate because the final artifact forbids fork imports and instrumentation.
Publication requires the trusted #881/#887/#890/#885/#900 path, exact ABI 39 source builds, generated sidecars, a forced stock Homebrew bottle pour inside Kandelo, and Node timedemo plus Chromium framebuffer checks using that poured keg. fbDOOM has no same-tap target dependency closure, but #900 remains the supported publisher handoff.
Residual coverage remains explicit and nonblocking: save/config persistence, mouse input, and audio/OPL output are not asserted.
No bottle block, binary artifact, platform change, or ABI change is included.