[Guix packaging] Robotfindskitten #487

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

Candidate

  • Project: Robotfindskitten
  • Candidate upstream/homepage: http://robotfindskitten.org/
  • Discovery evidence: IRLDb
  • Reported license: Depends on platform:<br/>GPL for POSIX<br/>Also found public domain and open source
  • 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. Originally posted by htayj on 2026-08-24T17:32:56Z.

## Candidate - Project: Robotfindskitten - Candidate upstream/homepage: http://robotfindskitten.org/ - Discovery evidence: [IRLDb](https://forums.roguetemple.com/irldb/index.php?i=47e013c) - Reported license: Depends on platform:&lt;br/&gt;[[GPL]] for POSIX&lt;br/&gt;Also found [[public domain]] and [[open source]] - 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/487). Originally posted by [htayj](https://github.com/htayj) on 2026-08-24T17:32:56Z.
htayj commented 2026-09-12 06:51:21 +00:00 (Migrated from github.com)

Goocastle recorded disposition: implementation-ready.

Created implementation ticket: #717.

Implementation-ready as a materially distinct update of the existing GNU Guix robotfindskitten package, not a duplicate: the official Guix module gnu/packages/games.scm currently defines package robotfindskitten at 2.8284271.702, while the maintained canonical repository is https://codeberg.org/robotfindskitten/robotfindskitten and its latest stable tag is 3.0000000.726, dereferenced at commit 471872786ca3a40db5b53f7baf96233a3793c45d (tag commit date 2026-06-16). Use a new channel module tay/packages/robotfindskitten.scm (or the channel's equivalent games module) retaining package name robotfindskitten and updating the existing identity. Use the immutable Codeberg commit archive URL https://codeberg.org/robotfindskitten/robotfindskitten/archive/471872786ca3a40db5b53f7baf96233a3793c45d.tar.gz; the observed SHA-256 is 6be0c9bab746e8484e29b2033bb915a59880cc1205c9f4ec3a377c62ca6cd5e7. The release is an Autotools C project: configure.ac requires AC_PROG_CC, LT_INIT, ncurses, and signal/ncurses headers; Makefile.am builds src/robotfindskitten.c and installs the game under games, nki/vanilla.nki under share/games/robotfindskitten, the man/info documentation, desktop/metainfo files, and PNG/SVG icons. The archive has no generated configure or Makefiles, so add native inputs autoconf, automake, and libtool and run autoreconf -vfi before configure; add ncurses as the runtime/build input. Upstream CI runs autoreconf, configure, make, make check, and make distcheck. README build metadata mentions gnulib and TeX tools for regenerating documentation, but the release's configure.ac and installed-file manifests show no language registry, vendored dependency, or submodule; use the minimal declared toolchain and verify whether texinfo is needed by the release's doc target. All shipped project files carry SPDX GPL-2.0-or-later metadata or are covered by REUSE.toml, and LICENSES/GPL-2.0-or-later.txt is included; no separately fetched origin or unlicensed asset was found. Upstream has no updater, telemetry, runtime download, or network behavior; the program reads optional user .robotfindskitten/*.nki content from HOME and otherwise remains local. Preserve the upstream program while adding a safe wrapper mode for the required proof: install the real binary in libexec and a wrapper named robotfindskitten in bin; the wrapper's exact accepted proof mode is --guix-smoke, and its normal path passes ordinary arguments through. In proof mode, use a small Python PTY helper (python-minimal runtime input) to run the real ncurses game with fixed child args -n 1 -s 0, fresh HOME and XDG_CONFIG_HOME/XDG_DATA_HOME/XDG_STATE_HOME/XDG_CACHE_HOME below a private temporary directory, TERM=xterm, and a finite deterministic h/j/k/l movement sequence followed by q; require clean child exit and print exactly one stdout line GUIX_SMOKE_OK robotfindskitten. Acceptance: guix lint -L . robotfindskitten has no package-specific findings; offline guix build -L . --no-grafts succeeds with no opaque binary or network access; upstream autoreconf/configure/make/check/distcheck checks run where available and --check is left to the authorized Guix phase; the smoke proof uses artifact .goocastle/evidence/issue-487.png, checks meaningful gameplay state, uses fresh HOME/XDG, and verifies no store writes. Research could not run Guix builds because the host boundary explicitly provides no Guix daemon; that is an environment limitation, not an upstream build failure.


Imported from GitHub comment. Originally posted by htayj on 2026-09-12T06:51:21Z.

<!-- goocastle-disposition:sequential-reviewer:487:1:implementation-ready --> Goocastle recorded disposition: implementation-ready. Created implementation ticket: #717. Implementation-ready as a materially distinct update of the existing GNU Guix robotfindskitten package, not a duplicate: the official Guix module gnu/packages/games.scm currently defines package robotfindskitten at 2.8284271.702, while the maintained canonical repository is https://codeberg.org/robotfindskitten/robotfindskitten and its latest stable tag is 3.0000000.726, dereferenced at commit 471872786ca3a40db5b53f7baf96233a3793c45d (tag commit date 2026-06-16). Use a new channel module tay/packages/robotfindskitten.scm (or the channel's equivalent games module) retaining package name robotfindskitten and updating the existing identity. Use the immutable Codeberg commit archive URL https://codeberg.org/robotfindskitten/robotfindskitten/archive/471872786ca3a40db5b53f7baf96233a3793c45d.tar.gz; the observed SHA-256 is 6be0c9bab746e8484e29b2033bb915a59880cc1205c9f4ec3a377c62ca6cd5e7. The release is an Autotools C project: configure.ac requires AC_PROG_CC, LT_INIT, ncurses, and signal/ncurses headers; Makefile.am builds src/robotfindskitten.c and installs the game under games, nki/vanilla.nki under share/games/robotfindskitten, the man/info documentation, desktop/metainfo files, and PNG/SVG icons. The archive has no generated configure or Makefiles, so add native inputs autoconf, automake, and libtool and run autoreconf -vfi before configure; add ncurses as the runtime/build input. Upstream CI runs autoreconf, configure, make, make check, and make distcheck. README build metadata mentions gnulib and TeX tools for regenerating documentation, but the release's configure.ac and installed-file manifests show no language registry, vendored dependency, or submodule; use the minimal declared toolchain and verify whether texinfo is needed by the release's doc target. All shipped project files carry SPDX GPL-2.0-or-later metadata or are covered by REUSE.toml, and LICENSES/GPL-2.0-or-later.txt is included; no separately fetched origin or unlicensed asset was found. Upstream has no updater, telemetry, runtime download, or network behavior; the program reads optional user .robotfindskitten/*.nki content from HOME and otherwise remains local. Preserve the upstream program while adding a safe wrapper mode for the required proof: install the real binary in libexec and a wrapper named robotfindskitten in bin; the wrapper's exact accepted proof mode is --guix-smoke, and its normal path passes ordinary arguments through. In proof mode, use a small Python PTY helper (python-minimal runtime input) to run the real ncurses game with fixed child args -n 1 -s 0, fresh HOME and XDG_CONFIG_HOME/XDG_DATA_HOME/XDG_STATE_HOME/XDG_CACHE_HOME below a private temporary directory, TERM=xterm, and a finite deterministic h/j/k/l movement sequence followed by q; require clean child exit and print exactly one stdout line GUIX_SMOKE_OK robotfindskitten. Acceptance: guix lint -L . robotfindskitten has no package-specific findings; offline guix build -L . --no-grafts succeeds with no opaque binary or network access; upstream autoreconf/configure/make/check/distcheck checks run where available and --check is left to the authorized Guix phase; the smoke proof uses artifact .goocastle/evidence/issue-487.png, checks meaningful gameplay state, uses fresh HOME/XDG, and verifies no store writes. Research could not run Guix builds because the host boundary explicitly provides no Guix daemon; that is an environment limitation, not an upstream build failure. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/487#issuecomment-5644299854). Originally posted by [htayj](https://github.com/htayj) on 2026-09-12T06:51:21Z.
Owner

Published signed/authenticated8428b6c83505fd3a0d291bc4c733e6742e9a99e0. Native robotfindskitten3.0000000.726 exactCodebergpin471872786ca3a40db5b53f7baf96233a3793c45d; direct ELF bincommand replaces productionPython/bash/--guix-smoke wrapper, fullnativeassets/features retained. GPL2+code/data REUSE notices preserved; AppStream explicitCCBYSA4 metadata declaration distinguished from conflictingGPLheader. Local daemon build,--check reproducibility, offline package lint and integrated make check-source-count check-robotfindskitten passed. Actual isolated80x24PTY:62observedrobotmoves, exactinstallednon-kitten-description interaction, kittenwin andexit0; everymovement checked against screenstate, notmarkers. ReadonlyNAR0vl4amqjjndf0zzsb3h7a5m1cni264gyqqfphz5ra2ns7mj8mm0d unchanged. Actualwinframe /tmp/omp-robot-kitten-final.raw rendered/inspected .goocastle/evidence/issue-487.png: You found kitten! Way to go, robot! Upstream makecheck enabled but no testprograms; gameplay is independentproof. Obsolete issue717 wrappercontract removed, noGoocastleexecution. No userprofiledeployment; unrelatedFourkwarning remains.

Published signed/authenticated8428b6c83505fd3a0d291bc4c733e6742e9a99e0. Native robotfindskitten3.0000000.726 exactCodebergpin471872786ca3a40db5b53f7baf96233a3793c45d; direct ELF bincommand replaces productionPython/bash/--guix-smoke wrapper, fullnativeassets/features retained. GPL2+code/data REUSE notices preserved; AppStream explicitCCBYSA4 metadata declaration distinguished from conflictingGPLheader. Local daemon build,--check reproducibility, offline package lint and integrated make check-source-count check-robotfindskitten passed. Actual isolated80x24PTY:62observedrobotmoves, exactinstallednon-kitten-description interaction, kittenwin andexit0; everymovement checked against screenstate, notmarkers. ReadonlyNAR0vl4amqjjndf0zzsb3h7a5m1cni264gyqqfphz5ra2ns7mj8mm0d unchanged. Actualwinframe /tmp/omp-robot-kitten-final.raw rendered/inspected .goocastle/evidence/issue-487.png: You found kitten! Way to go, robot! Upstream makecheck enabled but no testprograms; gameplay is independentproof. Obsolete issue717 wrappercontract removed, noGoocastleexecution. No userprofiledeployment; unrelatedFourkwarning remains.
tay closed this issue 2026-10-02 15:19:37 +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#487
No description provided.