Implement researched Guix package outcome for #480: [Guix packaging] RapidBrogue #714
Labels
No labels
accessibility
bug
category:ai-tool
category:browser
category:command-line-tool
category:compiler-toolchain
category:desktop-application
category:developer-tool
category:editor-extension
category:emulator
category:font
category:game
category:input-accessibility
category:library-framework
category:mud-client
category:multimedia
category:networking-client
category:programming-language
category:roguelike
category:storage-media-tool
category:system-tool
category:terminal-application
complexity:high
complexity:low
complexity:medium
difficulty:blocked
difficulty:easy
difficulty:hard
difficulty:moderate
documentation
duplicate
enhancement
good first issue
gooflow:guix-package-high
gooflow:guix-package-moderate
gooflow:guix-package-quality-gates
gooflow:guix-research-disposition
gooflow:guix-runtime-evidence-refresh
help wanted
invalid
kind:disposition
kind:packaging
needs:license-investigation
priority:quick
question
ready-for-agent
state:available-elsewhere
state:blocked
state:deferred
state:out-of-scope
state:ready
state:research
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
tay/guix-channel#714
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
This delivery ticket was created from research issue #480 ([Guix packaging] RapidBrogue).
The host-validated research finding follows:
RapidBrogue has a concrete source-buildable Guix outcome as a separately justified variant, distinct from the channel's existing parent Brogue CE packages (tay/packages/brogue.scm and tay/packages/brogue-lite.scm); no package or exact flend/RapidBrogue upstream match was found in the local package audit. Canonical source is https://github.com/flend/RapidBrogue at the immutable stable tag rapid_brogue-v1.4.0, dereferenced commit 02e6715fd81c4c9da1546943700da7b2b3ed482a (2023-03-11); the recursive source hash computed with guix hash -rx is 1j8qs94zgdf0rrn5j99r97q20xg27iivl5m27wnlga0iknzb9rhh. README/CHANGELOG identify the ten-level Rapid variant and v1.4.0; BUILD.md and Makefile specify an ordinary offline C/Make build. Use tay/packages/rapidbrogue.scm with gnu-build-system, native gcc-toolchain and make, and ncurses as the terminal runtime/build input; invoke make with RELEASE=YES, TERMINAL=YES, GRAPHICS=NO, WEBBROGUE=NO, RAPIDBROGUE=YES, and DATADIR set to the output data directory. The terminal configuration excludes SDL2 and avoids installing the graphical icon/tile assets; install keymap.txt and upstream docs/license under share, retaining the source's explicit root AGPL-3.0 text and the separate bin/assets/LICENSE.txt CC BY-SA 4.0 tile notice as provenance (the omitted graphical assets are not part of the installed closure). The root LICENSE.txt is the GNU AGPL version 3; no git submodules or language registries are present, and the tracked source tree has no font, sound, map, vendored, or other bundled dependency origin beyond the noted assets. No updater, telemetry, or runtime download behavior was found; the selected terminal build has no network path (the only socket code is optional web-platform.c and is excluded by WEBBROGUE=NO). The game writes mutable scores, saves, and recordings relative to its working directory, so the wrapper must set a per-user state directory (XDG_STATE_HOME/rapidbrogue or HOME/.local/state/rapidbrogue), copy/use keymap data without writing to the store, set TERMINFO_DIRS for ncurses, and pass --data-dir to the immutable package data. Provide normal executable rapidbrogue plus package-owned --guix-smoke: run the private binary through a fixed 100x34 PTY with exact child args -t -s 1 -n --data-dir , send one legal movement after the dungeon screen appears, quit and confirm, verify the recording/save-side effects stay below the isolated state tree, then print the single-line marker RAPIDBROGUE_GUIX_SMOKE_OK. This is a real gameplay lifecycle contract, not metadata output. The research host has no Guix daemon and the trusted boundary forbids guix shell/daemon-backed build or runtime proof here; later delivery must run guix lint, offline no-grafts build/check, upstream tests if available, and the isolated smoke screenshot at .goocastle/evidence/issue-480.png.
Acceptance criteria
Runtime evidence contract
Implementation workflow:
guix-package-quality-gatesReviewed contract file:
.goocastle/runtime-evidence-contracts.jsonRequired proof phase:
safe-package-proof; screenshot phase:runtime-screenshotEvidence adapter:
github-issue-commentCopy this reviewed contract into the named file before running the package proof workflow.
Imported from GitHub issue/PR. Originally posted by htayj on 2026-09-12T00:50:28Z.
Goocastle verified runtime evidence.
Runtime receipt
rapidbroguesafe-package-proof["node","/opt/goocastle/bin/guix-package-proof.mjs","--package-name","rapidbrogue","--module-path","tay/packages/rapidbrogue.scm","--runtime-json","{"executable":"rapidbrogue","invocation":{"file":"rapidbrogue","args":["--guix-smoke"]},"successMarker":"RAPIDBROGUE_GUIX_SMOKE_OK"}"]runtime-screenshot["sh",".goocastle/capture-guix-package-screenshot.sh"]/gnu/store/j78bpkcibrplza2xybkn9qxafipmi6pf-rapidbrogue-1.4.0/bin/rapidbrogue["/gnu/store/j78bpkcibrplza2xybkn9qxafipmi6pf-rapidbrogue-1.4.0/bin/rapidbrogue","--guix-smoke"]["rapidbrogue","--guix-smoke"]RAPIDBROGUE_GUIX_SMOKE_OK.goocastle/runtime-evidence-contracts.json (issue #714, SHA-256 ca51d95a857dd3f5976990e365bd2bc0ee7fb62c5eeab3ef8561ddbb88af00b5).goocastle/evidence/issue-714.png6b4049d68d08cbca92d7014ec4962d311ef11355a85d5b8ca568bc94a201bd32c7d4eaaa2fb1b0c0f8ddf6f4c4e77c73b9be2f0831989 bytes / pngImported from GitHub comment. Originally posted by htayj on 2026-09-12T01:29:56Z.
Completed by Goocastle
Imported from GitHub comment. Originally posted by htayj on 2026-09-12T01:30:10Z.
Delivered signed/authenticated commit70c369222934ce1789ab72f5639f827ac74b3250. Restored full original SDL text/tiles/hybrid assets plus ncurses frontend, removed fake package smoke option/runtime scaffolding and retired obsolete issue714 contract. Canonical source pin and AGPL/GPL/CC-BY-SA notices preserved. Final output /gnu/store/10dlxiymqhm57x592gvjwkv2gb3jqn3s-rapidbrogue-1.4.0 source build --check/offline lint passed. Integrated isolated real SDL and terminal gameplay/save/resume passed both seed1 depth1 turns3 to5, preserved native event prefix/load marker and additional rest events. Store NAR unchanged. Final native PNG714 hybrid screenshot inspected Str12 Armor3 Depth1 and actual hybrid message/map; text/tiles captures retained. Legacy compiler warnings disclosed, not suppressed. No Goocastle execution, fullcampaign/GPU proof or profile deployment claimed.