[Guix packaging] Hunger Games #397

Open
opened 2026-08-24 17:30:47 +00:00 by htayj · 1 comment
htayj commented 2026-08-24 17:30:47 +00:00 (Migrated from github.com)

Candidate

Scope

Package the independently playable roguelike 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:30:47Z.

## Candidate - Project: Hunger Games - Candidate upstream/homepage: http://www.astrolog.org/labyrnth/daedalus/hunger.htm - Discovery evidence: [IRLDb](https://forums.roguetemple.com/irldb/index.php?i=47e013c) - Reported license: [[GPL]]v2 - License status: reported free license; verify exact terms and asset coverage against the pinned upstream source - Catalog note: IRLDb status: stable. ## Scope Package the independently playable roguelike 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/397). Originally posted by [htayj](https://github.com/htayj) on 2026-08-24T17:30:47Z.
htayj commented 2026-09-08 18:31:27 +00:00 (Migrated from github.com)

Goocastle recorded disposition: implementation-ready.

Created implementation ticket: #695.

Canonical upstream is https://github.com/CruiserOne/Daedalus at fixed tag v3.5, commit 32af46ddf22e53c9bfd7bd7eacca1e249c60a5e8 (Guix recursive source hash already used by the local Daedalus-derived packages: 0fdzx2zzqbd3p99yljksmbh0s3mbzzmq2dq42a9yz5rfkn9gjy2r). The fixed checkout's README identifies it as the official Daedalus 3.5 release copied from dae35zip.zip; its Makefile documents an offline Unix build with g++ and -lm, and no submodules or language registries are present. util.h must select the Unix command-line build by disabling WIN/PC (and the existing LP64 dword/allocator fixes used by the sibling packages should be retained). license.htm is the complete GPL version 2 text; the upstream documentation's LICENSE section grants Daedalus and its routines under GPLv2-or-later, while the Makefile requires preserving credits/notices. The shipped Hunger origin is the same fixed repository: hunger.ds and source/hunger.bmp are present and covered by that distribution license evidence. Do not fetch or install the separate DAE35HGS.EXE or its hunger/*.wav bundle: the authoritative Hunger Games page says those optional bitmap/sound extras are only in that Windows download, while the script embeds an arena and remains playable without those unredistributed sounds. No equivalent hunger-games package exists in the local channel. tay/packages/dragonslayer.scm and tay/packages/grippy-socks.scm are sibling Daedalus-script variants at the same revision, not duplicates; Hunger Games is separately justified by its distinct script and gameplay. Add tay/packages/hunger-games.scm as a gnu-build-system package named hunger-games, using git-fetch at the revision above, native gcc-toolchain, and bash-minimal/coreutils-minimal for a deterministic launcher; install the rebuilt engine privately, hunger.ds plus hunger.bmp under share/hunger-games, and the complete upstream license/README/documentation under share/doc/hunger-games. The wrapper must keep normal mutable state below XDG_STATE_HOME/hunger-games (or HOME/.local/state/hunger-games), perform no downloads/store writes, and offer exactly hunger-games --smoke; that mode must invoke the rebuilt engine on the installed script from its data directory, execute one normal movement after script load, and emit HUNGER_GAMES_SMOKE_OK on stdout. Acceptance: run the package lint, offline no-grafts build and --check in the authorized Guix phase, run any upstream test target if added (the upstream Makefile has none), then run the fresh-HOME/XDG smoke proof using executable hunger-games, args [--smoke], screenshot .goocastle/evidence/issue-397.png, assert the single-line marker, and verify the store is unchanged. Research did not claim a build proof because this phase has no Guix daemon.


Imported from GitHub comment. Originally posted by htayj on 2026-09-08T18:31:27Z.

<!-- goocastle-disposition:sequential-reviewer:397:1:implementation-ready --> Goocastle recorded disposition: implementation-ready. Created implementation ticket: #695. Canonical upstream is https://github.com/CruiserOne/Daedalus at fixed tag v3.5, commit 32af46ddf22e53c9bfd7bd7eacca1e249c60a5e8 (Guix recursive source hash already used by the local Daedalus-derived packages: 0fdzx2zzqbd3p99yljksmbh0s3mbzzmq2dq42a9yz5rfkn9gjy2r). The fixed checkout's README identifies it as the official Daedalus 3.5 release copied from dae35zip.zip; its Makefile documents an offline Unix build with g++ and -lm, and no submodules or language registries are present. util.h must select the Unix command-line build by disabling WIN/PC (and the existing LP64 dword/allocator fixes used by the sibling packages should be retained). license.htm is the complete GPL version 2 text; the upstream documentation's LICENSE section grants Daedalus and its routines under GPLv2-or-later, while the Makefile requires preserving credits/notices. The shipped Hunger origin is the same fixed repository: hunger.ds and source/hunger.bmp are present and covered by that distribution license evidence. Do not fetch or install the separate DAE35HGS.EXE or its hunger/*.wav bundle: the authoritative Hunger Games page says those optional bitmap/sound extras are only in that Windows download, while the script embeds an arena and remains playable without those unredistributed sounds. No equivalent hunger-games package exists in the local channel. tay/packages/dragonslayer.scm and tay/packages/grippy-socks.scm are sibling Daedalus-script variants at the same revision, not duplicates; Hunger Games is separately justified by its distinct script and gameplay. Add tay/packages/hunger-games.scm as a gnu-build-system package named hunger-games, using git-fetch at the revision above, native gcc-toolchain, and bash-minimal/coreutils-minimal for a deterministic launcher; install the rebuilt engine privately, hunger.ds plus hunger.bmp under share/hunger-games, and the complete upstream license/README/documentation under share/doc/hunger-games. The wrapper must keep normal mutable state below XDG_STATE_HOME/hunger-games (or HOME/.local/state/hunger-games), perform no downloads/store writes, and offer exactly `hunger-games --smoke`; that mode must invoke the rebuilt engine on the installed script from its data directory, execute one normal movement after script load, and emit HUNGER_GAMES_SMOKE_OK on stdout. Acceptance: run the package lint, offline no-grafts build and --check in the authorized Guix phase, run any upstream test target if added (the upstream Makefile has none), then run the fresh-HOME/XDG smoke proof using executable hunger-games, args [--smoke], screenshot .goocastle/evidence/issue-397.png, assert the single-line marker, and verify the store is unchanged. Research did not claim a build proof because this phase has no Guix daemon. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/397#issuecomment-5589954832). Originally posted by [htayj](https://github.com/htayj) on 2026-09-08T18:31:27Z.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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#397
No description provided.