[Guix packaging] RapidBrogue #480

Closed
opened 2026-08-24 17:32:46 +00:00 by htayj · 2 comments
htayj commented 2026-08-24 17:32:46 +00:00 (Migrated from github.com)

Candidate

  • Project: RapidBrogue
  • Candidate upstream/homepage: https://github.com/flend/RapidBrogue
  • Discovery evidence: Variant catalogs
  • Reported license: AGPL-3.0
  • License status: reported free license; verify exact terms and asset coverage against the pinned upstream source

Scope

Package the independently playable roguelike variant from source. The canonical repository, latest stable release, source hash, complete dependency closure, and relationship to parent games or sibling forks must be established before implementation. Do not substitute an opaque prebuilt binary.

Research checklist

  • Identify the canonical maintained source repository and immutable release/commit.
  • Verify the exact FOSS license for code and every installed font, tile, sound, map, documentation, and bundled dependency.
  • Check GNU Guix and the channel audit set for an equivalent same-upstream package.
  • Determine the offline build system and source closure, including submodules or language registries.
  • Identify updater, telemetry, runtime download, mutable-state, and network behavior that needs Guix integration.

Acceptance checks

  • guix lint -L . <package> has no package-specific findings.
  • guix build -L . --no-grafts <package> succeeds without network access or opaque binaries.
  • Upstream tests run where available, and guix build -L . --no-grafts --check <package> verifies reproducibility.
  • A fresh HOME/XDG smoke test starts a real local game, exercises meaningful gameplay or save/load behavior, and proves no store writes.
  • Installed license and third-party notices cover the shipped closure and assets.

Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-24T17:32:46Z.

## Candidate - Project: RapidBrogue - Candidate upstream/homepage: https://github.com/flend/RapidBrogue - Discovery evidence: [Variant catalogs](https://www.roguebasin.com/index.php/Brogue) - Reported license: AGPL-3.0 - License status: reported free license; verify exact terms and asset coverage against the pinned upstream source ## Scope Package the independently playable roguelike variant from source. The canonical repository, latest stable release, source hash, complete dependency closure, and relationship to parent games or sibling forks must be established before implementation. Do not substitute an opaque prebuilt binary. ## Research checklist - Identify the canonical maintained source repository and immutable release/commit. - Verify the exact FOSS license for code and every installed font, tile, sound, map, documentation, and bundled dependency. - Check GNU Guix and the channel audit set for an equivalent same-upstream package. - Determine the offline build system and source closure, including submodules or language registries. - Identify updater, telemetry, runtime download, mutable-state, and network behavior that needs Guix integration. ## Acceptance checks - `guix lint -L . <package>` has no package-specific findings. - `guix build -L . --no-grafts <package>` succeeds without network access or opaque binaries. - Upstream tests run where available, and `guix build -L . --no-grafts --check <package>` verifies reproducibility. - A fresh HOME/XDG smoke test starts a real local game, exercises meaningful gameplay or save/load behavior, and proves no store writes. - Installed license and third-party notices cover the shipped closure and assets. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/480). Originally posted by [htayj](https://github.com/htayj) on 2026-08-24T17:32:46Z.
htayj commented 2026-09-12 00:50:56 +00:00 (Migrated from github.com)

Goocastle recorded disposition: implementation-ready.

Created implementation ticket: #714.

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.


Imported from GitHub comment. Originally posted by htayj on 2026-09-12T00:50:56Z.

<!-- goocastle-disposition:sequential-reviewer:480:1:implementation-ready --> Goocastle recorded disposition: implementation-ready. Created implementation ticket: #714. 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 <immutable-data>, 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. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/480#issuecomment-5642307783). Originally posted by [htayj](https://github.com/htayj) on 2026-09-12T00:50:56Z.
Owner

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.

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.
tay closed this issue 2026-10-01 22:15:29 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tay/guix-channel#480
No description provided.