Implement researched Guix package outcome for #392: [Guix packaging] Hellcrawl #694
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#694
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 #392 ([Guix packaging] Hellcrawl).
The host-validated research finding follows:
Canonical upstream: https://github.com/Hellmonk/hellcrawl, published stable tag 5.7 at immutable commit 8abd87763372e1c1be472510ac55faeff7b0dca7; moving master 1886dd7e54ed54f9cfa2baff6c7f3b7d5ef9a806 is not the pin. A Guix git-fetch tree hash was computed as base32 105593jwy1k7s25m1nlvszcy3hqc616hkmvdh6n5qmyy4lwagc79 (raw git-archive SHA-256 0f0fb566c6af9ecd1fdf1306fb2c2984b8cbda71f19b5bc5d31ff32b3b8bbffb). Hellcrawl is an independently playable DCSS 0.19-era fork, materially distinct from local bloatcrawl2 and bcrawl sibling packages; no exact Hellcrawl package or duplicate delivery is present in the local channel. crawl-ref/licence.txt grants the program GPLv2-or-later and identifies compatible BSD-2/BSD-3, CC0/public-domain, MIT, zlib, and Apache-2.0 components. The terminal-only closure installs code, maps/data, documentation, CREDITS, and docs/license notices; it deliberately excludes tiles, fonts, sound, webserver content, and all contrib gitlink contents, avoiding the upstream artwork caveat and separately fetched origins. The 11 fixed contrib gitlinks (fonts, freetype, libpng, Lua, LuaJIT, PCRE, SDL2, SDL2-image, SDL2-mixer, SQLite, zlib) must not be recursively fetched; crawl-ref/INSTALL.txt explicitly says the listed external development libraries are the complete set and avoid bundled contribs. Implement tay/packages/hellcrawl.scm with gnu-build-system, deleting configure, entering crawl-ref/source, setting a fixed release version for generated metadata, and building with TILES=, DATADIR=$out/share/hellcrawl, LUA_PACKAGE=lua-5.1, system SQLite headers/libs, and forced gcc/g++. Expected native inputs are bison, flex, perl, pkg-config, and which; inputs are bash-minimal/coreutils-minimal/findutils, lua-5.1, ncurses, sqlite, and zlib, with the GNU toolchain supplied by gnu-build-system. Install only terminal data and the upstream docs/license notices, and provide a launcher that keeps mutable saves/logs under XDG_DATA_HOME (fallback $HOME/.local/share/hellcrawl), preserves a read-only store, and has no updater, telemetry, or runtime download. Add a wrapper-only --smoke mode: it must use a fresh HOME/XDG tree, TERM=xterm-256color and LC_ALL=C, run the real installed terminal game through a PTY with deterministic normal-game arguments -seed 285 -no-save -name Goocastle -species Hu -background Fi, and assert character creation plus dungeon entry before emitting the single-line marker 'hellcrawl smoke: terminal UI OK; no store writes'. Acceptance is guix lint -L . hellcrawl with no package findings; offline guix build -L . --no-grafts --no-substitutes hellcrawl; upstream nondebug tests where available; guix build -L . --no-grafts --no-substitutes --check hellcrawl; then the isolated runtime proof through bounded-validation/unshare, asserting the marker, captured PTY gameplay evidence, empty HOME/XDG config/cache/state/runtime trees, immutable output, and .goocastle/evidence/issue-392.png. No package proof is claimed in this research phase.
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-06T14:12:25Z.
Goocastle verified runtime evidence.
Runtime receipt
hellcrawlsafe-package-proof["node","/opt/goocastle/bin/guix-package-proof.mjs","--package-name","hellcrawl","--module-path","tay/packages/hellcrawl.scm","--runtime-json","{"executable":"hellcrawl","invocation":{"file":"hellcrawl","args":["--smoke"]},"successMarker":"hellcrawl smoke: terminal UI OK; no store writes"}"]runtime-screenshot["sh",".goocastle/capture-guix-package-screenshot.sh"]/gnu/store/znbfx4avvj4sd3p8prnhcb50qd48qp07-hellcrawl-5.7/bin/hellcrawl["/gnu/store/znbfx4avvj4sd3p8prnhcb50qd48qp07-hellcrawl-5.7/bin/hellcrawl","--smoke"]["hellcrawl","--smoke"]hellcrawl smoke: terminal UI OK; no store writes.goocastle/runtime-evidence-contracts.json (issue #694, SHA-256 0f1f9cda9ef0b999da5ce2e09157b62940ea04de402b74b7db62a95b102de9fd).goocastle/evidence/issue-694.png3a09b9ca63031ee83b1faa0bd0311aa667d29b2573337f96cd1c7371db2ceed6c4c8e836be9348c0eebb97d63d37a339414ba26751625 bytes / pngImported from GitHub comment. Originally posted by htayj on 2026-09-08T20:31:23Z.
Completed by Goocastle
Imported from GitHub comment. Originally posted by htayj on 2026-09-08T20:31:27Z.