Implement researched Guix package outcome for #487: [Guix packaging] Robotfindskitten #717
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
tay/guix-channel#717
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 #487 ([Guix packaging] Robotfindskitten).
The host-validated research finding follows:
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.
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-12T06:51:03Z.
Goocastle verified runtime evidence.
Runtime receipt
robotfindskittensafe-package-proof["node","/opt/goocastle/bin/guix-package-proof.mjs","--package-name","robotfindskitten","--module-path","tay/packages/robotfindskitten.scm","--runtime-json","{"executable":"robotfindskitten","invocation":{"file":"robotfindskitten","args":["--guix-smoke"]},"successMarker":"GUIX_SMOKE_OK robotfindskitten"}"]runtime-screenshot["sh",".goocastle/capture-guix-package-screenshot.sh"]/gnu/store/rllykw8szalksnbqjymbaavi4bxvy49h-robotfindskitten-3.0000000.726/bin/robotfindskitten["/gnu/store/rllykw8szalksnbqjymbaavi4bxvy49h-robotfindskitten-3.0000000.726/bin/robotfindskitten","--guix-smoke"]["robotfindskitten","--guix-smoke"]GUIX_SMOKE_OK robotfindskitten.goocastle/runtime-evidence-contracts.json (issue #717, SHA-256 48ed117cebe5fdf28aa9c00d8ded09bf6a4f6a178549519d914b0814adbefede).goocastle/evidence/issue-717.png4d2e4cda7a11d0cc2e16713b1b07180bd4c7223a9fb672ceb205251fba10b0c13f78ebcd759e4cd9bd1d7b67c6bdac0bb4a333656192 bytes / pngImported from GitHub comment. Originally posted by htayj on 2026-09-12T07:28:48Z.
Completed by Goocastle
Imported from GitHub comment. Originally posted by htayj on 2026-09-12T07:28:53Z.