[Guix packaging] Robotfindskitten #487
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#487
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?
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
Acceptance checks
guix lint -L . <package>has no package-specific findings.guix build -L . --no-grafts <package>succeeds without network access or opaque binaries.guix build -L . --no-grafts --check <package>verifies reproducibility.Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-24T17:32:56Z.
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.
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.