Implement researched Guix package outcome for #438: [Guix packaging] Martin's Dungeon Bash #705
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#705
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 #438 ([Guix packaging] Martin's Dungeon Bash).
The host-validated research finding follows:
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.
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-11T05:00:45Z.
Goocastle verified runtime evidence.
Runtime receipt
martins-dungeon-bashsafe-package-proof["node","/opt/goocastle/bin/guix-package-proof.mjs","--package-name","martins-dungeon-bash","--module-path","tay/packages/martins-dungeon-bash.scm","--runtime-json","{"executable":"dungeonbash","invocation":{"file":"dungeonbash","args":["--smoke"]},"successMarker":"MARTINS_DUNGEON_BASH_SMOKE_OK"}"]runtime-screenshot["sh",".goocastle/capture-guix-package-screenshot.sh"]/gnu/store/76abxcbmr8r335alvp9kr1lggvrqs1w8-martins-dungeon-bash-1.7/bin/dungeonbash["/gnu/store/76abxcbmr8r335alvp9kr1lggvrqs1w8-martins-dungeon-bash-1.7/bin/dungeonbash","--smoke"]["dungeonbash","--smoke"]MARTINS_DUNGEON_BASH_SMOKE_OK.goocastle/runtime-evidence-contracts.json (issue #705, SHA-256 7b0de17c556bcee4000d2ec77eddac7833f821ac5215b58ea852254393e23e66).goocastle/evidence/issue-705.png642e6cb138727e8987f4bb0db9502ab59bbacb282aac4b08c9219324c7b76557acc3114744e7442063c8c163cc783b543ea831a631214 bytes / pngImported from GitHub comment. Originally posted by htayj on 2026-09-11T05:27:08Z.
Completed by Goocastle
Imported from GitHub comment. Originally posted by htayj on 2026-09-11T05:27:11Z.