[Guix packaging] Hellcrawl #392
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#392
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 variant 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:30:40Z.
Goocastle recorded disposition: implementation-ready.
Created implementation ticket: #694.
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.
Imported from GitHub comment. Originally posted by htayj on 2026-09-06T14:12:40Z.
Implemented and published in signed, Guix-authenticated commit
62f09e33feb2119a835d7b346606d7811d9d3500.Hellcrawl: original dungeon UI, turns 0→1, native save/exit, independent exact restore at turn1 and continuation to turn2; unchanged NAR. Output yya0gqyzrvcvd2iwprvw2g3kifv0vzir.
Source build, final reproducibility
--check, offline lint without package-specific findings, standalone and integrated Make acceptance passed. README records exact commands and limits; unrelated Fourk/flex/legacy Cargo diagnostics are not claimed clean. No deployed system changed; no OKF deployment update applies.