[Guix packaging] Grippy Socks #383
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#383
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:30:27Z.
Goocastle recorded disposition: implementation-ready.
Created implementation ticket: #689.
Canonical upstream is the author mirror https://github.com/CruiserOne/Daedalus at tag v3.5, fixed commit 32af46ddf22e53c9bfd7bd7eacca1e249c60a5e8 (tag resolves to that commit); official source archive https://www.astrolog.org/labyrnth/daedalus/dae35zip.zip has SHA-256 19ec305be102c8425d8a0d16475ba1ba9b7b04e3bd58c341525b808d81f364b0. The official Daedalus 3.5 documentation identifies GRIPSOX.DS as the Grippy Socks script, dates 3.5 to 2024-10-31, and says the distribution includes complete C++ source and a Unix Makefile; the Makefile builds with g++ and -lm, while util.h documents the command-line Unix mode obtained by disabling WIN. The source headers and retained license.htm identify Walter D. Pullen and GPL-2.0-or-later; all shipped Grippy Socks content is from this one fixed upstream origin. The script has no external file references or separately fetched dependencies: its map/bitmap content is embedded in gripsox.ds, and the package should install only that script, the rebuilt engine, and upstream license/author documentation, with no fonts, tiles, sounds, submodules, language registries, updater, telemetry, runtime download, or network path. There is no same-project package in the local channel or audit files. tay/packages/dragonslayer.scm is a distinct Daedalus-script package with issue #681 runtime contract/evidence; it shares the engine but installs dragon.ds, so grippy-socks is a separately justified variant, not a duplicate. Deliver tay/packages/grippy-socks.scm with gnu-build-system/git-fetch at the fixed commit (the existing Daedalus precedent records the matching Git checkout hash base32 0fdzx2zzqbd3p99yljksmbh0s3mbzzmq2dq42a9yz5rfkn9gjy2r), no configure phase, and native gcc-toolchain plus bash-minimal/coreutils-minimal for the wrapper. Apply the proven Unix patches: disable WIN and PC, use unsigned int for the bitmap dword on LP64, and add the Linux-sized-delete compatibility definition; build with upstream make daedalus. Install the engine privately under libexec and a package-owned grippy-socks launcher that uses a state directory only for ordinary interactive play, never writes the store, and supports exactly --smoke. That mode must load the installed gripsox.ds and perform a deterministic normal movement/interaction through the command-line engine before printing the declared marker. Research could not run Guix because the host explicitly provides no daemon; this is an authoritative metadata assessment, not package proof. Delivery acceptance: preflight package load/parser, guix lint -L . grippy-socks with no package-specific findings, offline guix build -L . --no-grafts --no-substitutes grippy-socks, upstream has no test target so run the bounded wrapper smoke, then guix build -L . --no-grafts --no-substitutes --check grippy-socks. The isolated proof must use fresh HOME/XDG directories, empty PATH and proxy-disabled network, bounded-validation with util-linux unshare --user --map-root-user --net --fork, assert stdout GRIPPY_SOCKS_SMOKE_OK plus a visible Grippy Socks start/gameplay line, verify no files appear in HOME/XDG/work, compare the output NAR hash before/after, and assert the installed tree is non-writable; capture the screenshot at .goocastle/evidence/issue-383.png. Retain license.htm and the upstream author notices in share/doc/grippy-socks.
Imported from GitHub comment. Originally posted by htayj on 2026-09-05T05:38:39Z.