[Guix packaging] Martin's Dungeon Bash #438
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#438
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:31:46Z.
Goocastle recorded disposition: implementation-ready.
Created implementation ticket: #705.
Canonical upstream is Martin Read's official project page https://www.chiark.greenend.org.uk/~mpread/dungeonbash/; the candidate GitHub URL https://github.com/rsaarelm/martins-dungeon-bash currently returns HTTP 404 and must not be used. The official page identifies stable v1.7, released 2009-01-06, at https://www.chiark.greenend.org.uk/~mpread/dungeonbash/archive-1.7/dungeonbash-1.7.tar.gz; observed SHA-256 is 790bde04ff869ba2817ad1f07d062d75f7f15af4a2c99669dd60a4b98fdf1380. The fixed archive has no Git submodules, language registries, fonts, tiles, sounds, or bundled third-party dependencies: it contains C sources/headers, a Makefile, notes.txt, and project HTML spoiler documentation. notes.txt states copyright 2005-2009 Martin Read and reproduces the BSD 2-clause license; the C source headers carry the same redistribution grant. Install notes.txt or an extracted copy of that notice with the binary; omit the HTML spoiler files unless their documentation license is separately verified. Makefile metadata is a direct GCC build of dungeonbash with -lpanel -lncurses; use module path tay/packages/martins-dungeon-bash.scm and package name martins-dungeon-bash, native gcc-toolchain, ncurses for panel/curses, bash-minimal because upstream save/load use system(), gzip because they call gzip and gunzip, and util-linux for the PTY smoke wrapper. Current GNU Guix gnu/packages/games.scm and the local channel inventory contain no matching Martin's Dungeon Bash, dungeonbash, or Cave Chop package, so this is not a duplicate. Package by copying the built executable to libexec and provide a wrapper executable named dungeonbash with a safe --smoke mode: in a fresh temporary working directory and PTY, send a stand-still/gameplay key followed by S and an exit key to create dunbash.sav.gz, launch again in the same directory so the program loads that save, answer X/Y to quit, assert the observed Game loaded. message, and print the single-line marker MARTINS_DUNGEON_BASH_SMOKE_OK; use util-linux script and fixed store paths for helper tools, and keep all state outside the store. Normal invocation must preserve the upstream working-directory save behavior. This is implementation-ready from source metadata, but no package proof is claimed here because the host intentionally has no Guix daemon; the delivery phase must run lint, no-graft offline build/check, and the fresh-HOME/XDG wrapper smoke with the planned screenshot artifact.
Imported from GitHub comment. Originally posted by htayj on 2026-09-11T05:00:58Z.