Implement researched Guix package outcome for #72: [Guix packaging] Heroic-Games-Launcher/heroic-gogdl #622
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#622
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 #72 ([Guix packaging] Heroic-Games-Launcher/heroic-gogdl).
The host-validated research finding follows:
Delivery brief: package
heroic-gogdl(the installed executable remainsgogdl) from the canonical upstream repository https://github.com/Heroic-Games-Launcher/heroic-gogdl at release v1.3.0, fixed commit 4fe373914d625cbce75973e92f6c5c4faf9815e2 (commit date 2026-08-07); a recursive checkout of that parent plus its submodule has the Guix base32 tree hash 0pcs9drldv48lqbdw7khf8x13law0xfx8h5sq3bycg7iwzb7hdxm when hashed withguix hash -rx. The parent source is source-buildable: pyproject.toml declares setuptools.build_meta, requires Python >=3.8, declares onlyrequestsat runtime, exposes thegogdlconsole entry point, and builds thegogdl_xdelta3stable-ABI C extension fromgogdl_xdelta3.cand the checked-in submodule source; no opaque binary, game, download, or build-time network fetch is needed. Parent license evidence is the exact-revision pyproject metadata and LICENSE atgithub.com/Heroic-Games-Launcher/heroic-gogdl@4fe373914d/pyproject.tomlandgithub.com/Heroic-Games-Launcher/heroic-gogdl@4fe373914d/LICENSE, which support GPL-3.0-only. The only independently fetched submodule is declared at the exact parent revision ingithub.com/Heroic-Games-Launcher/heroic-gogdl@4fe373914d/.gitmodulesand is jmacd/xdelta commit 0525275fe4b553a10f38e455d30c60dc6ed9b45d; its own exact-revision LICENSE is Apache-2.0 atgithub.com/jmacd/xdelta@0525275fe4/xdelta3/LICENSE. Both origins therefore have clear redistribution grants; retain both license texts in the installed documentation and represent the package legal closure as GPL-3.0-only plus the bundled Apache-2.0 component. Add the package in(gnu packages games)usingpyproject-build-systemand agit-fetch/git-referencewith(recursive? #t); usepython-requestsas a propagated runtime input andpython-setuptoolspluspython-wheelas native build inputs matching pyproject.toml, with the normal Guix C toolchain supplied by the build environment and no separate xdelta runtime input. The local channel has no equivalent installed package:tay/packages/starred-d-h.scmcontains onlyheroic-games-launcher-heroic-gogdl-source, a codeload preservation snapshot that does not provide the CLI/module and does not replace the recursive package source; the issue-supplied coverage also reports no equivalent in GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, or RDE. The upstream tree has no test suite, so set#:tests? #f, add an install phase for the parent LICENSE andxdelta3/xdelta3/LICENSE, and rely on the package-specific smoke. Do not use upstream zipapp_main.py or PyInstaller: the PEP 517 build generatesgogdl, and Guix's pyproject wrapper must preserveGUIX_PYTHONPATHso the installedgogdl_xdelta3.abi3.soremains importable. Leave authentication and paths to the caller:--auth-config-pathis the explicit token-file contract, whileXDG_CONFIG_HOME/GOGDL_CONFIG_PATHcontrol non-secret state; do not add credential files or wrappers that set credentials. Smoke proof plan fortests/heroic-gogdl-smoke.sh: accept an optional built output path, create fresh temporary HOME, XDG_CONFIG_HOME, GOGDL_CONFIG_PATH, and work directories, clear proxy variables, run the help/version and parser-only checks in an isolated no-network process (preferunshare --user --map-root-user --netwhen available), assertgogdl --versionis exactly1.3.0,gogdl --helpexposes the downloader/auth commands, and an installed-Python snippet importsgogdl_xdelta3, callsgogdl.args.init_parser()with['gogdl','lang-match','en'], and asserts the parsed command/language without contacting GOG; assert the fresh state directories remain empty, the output tree digest is unchanged, the output is not writable, and both installed license documents contain the GPL and Apache notices. Then runguix lint -L. heroic-gogdl,guix build -L. heroic-gogdl, and the smoke with the built output; these are implementation acceptance checks and are not claimed as completed here. Upstream issue https://github.com/Heroic-Games-Launcher/heroic-gogdl/issues/72 reports a live GOG auth endpoint failure for an older gogdl release, and the pinned 1.3.0 auth module retains the same external authentication design; this is outside the stated credential-free offline acceptance, so the package must make no live-login claim, and any future requirement to prove current GOG login must be re-evaluated against a newer upstream fixed revision rather than solved by packaging credentials.Acceptance criteria
Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-25T20:32:42Z.
Classified as
complexity:medium(recursive Python source with bundled C extension and submodule). This preserves the requested easy-to-hard queue: the existing low-complexity package tickets run first.Imported from GitHub comment. Originally posted by htayj on 2026-08-25T22:34:54Z.
Completed by Goocastle
Imported from GitHub comment. Originally posted by htayj on 2026-08-26T03:37:21Z.
Published signed Guix-authenticated commit74918398a3a73d7c1998a127b03b9a7c7fd00f8e. Main independently passed source build, --check and integrated offline runtime for /gnu/store/fsw0yxhzlf5v3bwnmwg2yf2js6bim793-heroic-gogdl-1.3.0. Offline lint advisory python-wheel retained: pinned pyproject requires it and build system does not implicitly supply it. Actual CLI language/import/parser checks, v2 manifest DLC/language/size and chunk offsets, local checksum boundary, deterministic gzip/UTC SyncFile metadata and native VCDIFF COPY+ADD exact output passed under network isolation. PNG622 actual CLI output visually inspected. Existing native C warnings disclosed. No GOG accounts/credentials/live downloads/cloud calls or deployed profile changes; no new independent reviewer approval claimed.