[Guix packaging] UnAngband #571
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#571
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:34:57Z.
Goocastle recorded disposition: blocked.
BLOCKED on unresolved non-free licensing in the canonical UnAngband source; no equivalent exists in this channel (
rg 'Un[Aa]ngband' --glob '*.scm'over the worktree returned nothing), so this is a first-time delivery, not a duplicate or a proof remediation.CANONICAL UPSTREAM AND REVISION (established). Repository https://github.com/DGoldDragon28/Unangband is the maintained continuation (
docs/_posts/2017-01-24-New-Maintainer.md). Default branchmaster= commit 70ca6de7b7e454052c5eb0dd9b0cc1e1c15b27c4 (2025-05-26). Tags stop at v.0.6.6 (d3bc4ed...) / v.0.7.0-pre1 (65496b9...); master carries later compile fixes (2a8c8ce fixingsrc/externs.h, 70ca6de allowing play without base X fonts), so a package would have to pin the git commit rather than a stale tag. No submodules exist:git ls-tree -r origin/HEADshows no.gitmodulesand no gitlink entries, so there is no separately fetched origin requiring its own license evidence.BLOCKER 1 - bundled audio is explicitly non-commercial.
lib/xtra/sound/sound.cfglines 13-15 declare: "This is the Dubtrain Angband Sound config list, v.3.1.0" ... "Licensed under a Creative Commons non-commercial agreement". 213 accompanying.wavfiles ship inlib/xtra/sound/and are wired into the automake install set (lib/Makefile.amSUBDIRS includesxtra;configure.inemitslib/xtra/sound/Makefile). A CC NC grant is not a free/redistributable-for-any-purpose license and is unacceptable in the store closure. No per-asset LICENSE/README exists anywhere underlib/xtra(a boundedfindfor readme/license/copying/txt returned zero files), so there is no alternative grant to rely on.BLOCKER 2 - the core game code's effective license is self-contradictory. Top-level
LICENSEis GPL-2, andsrc/util.clines 10-13 state UnAngband's modifications to Angband 2.9.6 are GPL. But the shippedlib/help/version.txtstates the governing terms of the inherited base: line 404 "Copyright (c) 1989 James E. Wilson, Robert A. Keoneke" with line 406 permitting copying "not for profit purposes"; line 428 repeats this for "Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke" (lines 431-432); and lines 436-440 conclude that only parts are GPL and "Until all parts of Angband are distributed under the GPL the only valid license remains the original Moria/Angband license."lib/file/news.txtline 19 likewise cites "the traditional Angband license and GNU GPL." UnAngband forked from Angband 2.9.6, which predates upstream Angband's GPL-2 relicensing, so the field-of-use ('not for profit') restriction is not superseded by the repository'sLICENSEfile. This matches the issue's NOASSERTION report and itsneeds:license-investigationlabel. A GPL-2LICENSEfile cannot override the retained non-free grant on inherited code, andguix lint/ Guix's free-software requirement cannot be satisfied on this evidence.BLOCKER 3 - no runtime contract. There is no noninteractive or headless mode.
src/main.clines 435-565 accept only-n,-f,-w,-v,-g,-r,-o,-s<n>,-u<name>,-m<module>; the fallback is ausage:text dump, which is explicitly forbidden as a proof invocation. The curses front end (src/main-gcu.c) callsinitscr/noechoand blocks ingetch()(Term_xtra_gcu_event), and on broken input callsexit_game_panic(); it emits no deterministic single-line stdout marker. Character creation is a multi-screen interactive birth flow. Upstream therefore provides no safe deterministic gameplay invocation, and none can be specified until the licensing is resolved.BUILD/RUNTIME NOTES (recorded, not a proof). No Guix daemon is available to this phase per the host capability boundary, so no
guix shellbuild was attempted and no build command was run; source-buildability was assessed from build metadata only.configure.in(autoconf/automake, AM_INIT_AUTOMAKE UnAngband) supports--with-libpathand--with-setgid, andsrc/Makefile.stdbuilds a plain C99 binaryunangbandfromSYS_gcu = -DUSE_GCU -DUSE_NCURSES -lncursesplusSYS_x11 = -DUSE_X11 -lX11, needing only gcc-toolchain, make, ncurses, libx11 (autoconf/automake/pkg-config to regenerate). Offline building is otherwise plausible: no network fetch, no updater, and no telemetry were found. Mutable state is confined toPRIVATE_USER_PATH "~/.angband"viacreate_user_dirs()(src/config.h462-464,src/main.c425-430) withANGBAND_DIR_USER/ANGBAND_DIR_SAVEoverridable by-dsuboptions, so a HOME/XDG-isolated run would not write to the store; notesrc/Makefile.stdinstallmerely copies the binary to../andDEFAULT_PATHdefaults to./lib/, so the data path must be set explicitly.CONDITION TO UNBLOCK. All three must be satisfied: (1) an authoritative upstream grant placing the inherited Angband 2.9.6 base code under a free license, or confirmation that every retained 'not for profit' file has been relicensed/removed, superseding
lib/help/version.txt404-440; (2) a free license for thelib/xtra/soundassets at commit 70ca6de..., or a confirmed decision plus a verified build that omits the CC-NC sound set (and equivalent explicit evidence for the 26lib/xtra/font/*.fonfiles and 11lib/xtra/graftiles, which carry no stated license at all); and (3) a defined noninteractive smoke invocation - an upstream flag or a package-provided wrapper - that drives real gameplay and prints one deterministic stdout marker. Until (1) and (2) are resolved, packaging cannot lawfully proceed and no delivery ticket should be created.