[Guix packaging] CoreRL #311

Open
opened 2026-08-24 17:28:41 +00:00 by htayj · 1 comment
htayj commented 2026-08-24 17:28:41 +00:00 (Migrated from github.com)

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

  • Identify the canonical maintained source repository and immutable release/commit.
  • Verify the exact FOSS license for code and every installed font, tile, sound, map, documentation, and bundled dependency.
  • Check GNU Guix and the channel audit set for an equivalent same-upstream package.
  • Determine the offline build system and source closure, including submodules or language registries.
  • Identify updater, telemetry, runtime download, mutable-state, and network behavior that needs Guix integration.

Acceptance checks

  • guix lint -L . <package> has no package-specific findings.
  • guix build -L . --no-grafts <package> succeeds without network access or opaque binaries.
  • Upstream tests run where available, and guix build -L . --no-grafts --check <package> verifies reproducibility.
  • A fresh HOME/XDG smoke test starts a real local game, exercises meaningful gameplay or save/load behavior, and proves no store writes.
  • Installed license and third-party notices cover the shipped closure and assets.

Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-24T17:28:41Z.

## Candidate - Project: CoreRL - Candidate upstream/homepage: http://www.roguelikeeducation.org/2.html - Discovery evidence: [IRLDb](https://forums.roguetemple.com/irldb/index.php?i=47e013c) - Reported license: [[Licensing#Public domain|Public Domain]], [[freeware]] - License status: reported free license; verify exact terms and asset coverage against the pinned upstream source - Catalog note: IRLDb status: stable. ## 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 - Identify the canonical maintained source repository and immutable release/commit. - Verify the exact FOSS license for code and every installed font, tile, sound, map, documentation, and bundled dependency. - Check GNU Guix and the channel audit set for an equivalent same-upstream package. - Determine the offline build system and source closure, including submodules or language registries. - Identify updater, telemetry, runtime download, mutable-state, and network behavior that needs Guix integration. ## Acceptance checks - `guix lint -L . <package>` has no package-specific findings. - `guix build -L . --no-grafts <package>` succeeds without network access or opaque binaries. - Upstream tests run where available, and `guix build -L . --no-grafts --check <package>` verifies reproducibility. - A fresh HOME/XDG smoke test starts a real local game, exercises meaningful gameplay or save/load behavior, and proves no store writes. - Installed license and third-party notices cover the shipped closure and assets. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/311). Originally posted by [htayj](https://github.com/htayj) on 2026-08-24T17:28:41Z.
htayj commented 2026-09-02 09:13:28 +00:00 (Migrated from github.com)

Goocastle recorded disposition: implementation-ready.

Created implementation ticket: #668.

Canonical upstream is the Studio Tectorum/Roguelike Education static article https://www.roguelikeeducation.org/2.html (published 2013-10-24; page SHA-256 4550fbe5ff17a58b2c4ec80d74587a4c043dbf24440881556aaddcbc7852e3c6) and its complete direct source https://www.roguelikeeducation.org/vault/core/1kcore.c. No maintained VCS repository, tags, submodules, or newer CoreRL release was found; treat the dated 1 KiB article/source as fixed revision 1kib-20131024 and pin the direct source with SHA-256 05d55844b30fbfae72bd87ab9e26539cfb8232e540bc0d0ce50b04d6d1369e24 (Guix base32 axkvqrftb67244v5q6vz4jsttt5yemxfic6a2dhfbmcnnujwtysa). The page says the 1023-byte C source is released into the public domain, and the package need ship only that source-derived executable plus a generated notice recording the upstream URL and grant; the linked screenshot, Haiku/OS X binaries, and DCPU-16 port are not package inputs, so there are no bundled fonts, tiles, sounds, maps, documentation assets, or fetched submodules requiring separate grants. The source uses only curses and libc, has no updater, telemetry, runtime download, file-state, or network behavior, and gives the authoritative build command gcc -o corerl 1kcore.c -lncurses. Use a gnu-build-system package module (tay packages corerl), delete configure, disable nonexistent upstream tests, and compile directly with gcc-toolchain as a native input and ncurses as an input; use -std=gnu89 for the intentionally pre-C99 source (implicit main/time declarations), with bash-minimal, coreutils-minimal, and util-linux additionally declared for the launcher-owned smoke path. GNU Guix package search returned no corerl result, and the local channel has no corerl/CoreRL definition or prior issue/runtime proof. CoreRL is the 1 KiB revision of the earlier 4 KiB Core at https://www.roguelikeeducation.org/1.html; Measter/NanoRL is a distinct Rust/Arduino port (master tip cadf54cbec0c36afa50a3b72b1d8f9b585337826, with Arduino-derived LGPL-2.1 files) and must not be substituted. Install /bin/corerl as a wrapper around a private compiled real binary: normal invocations exec the real game, while --smoke sets C locale and package-owned TERM/TERMINFO_DIRS, starts the real game through util-linux script in a PTY, feeds deterministic Up/Down/q input, captures the transcript outside the store, asserts the generated map contains @, e, and < plus the normal Quit on level 1. result, then prints the single-line marker CORERL_RUNTIME_OK. The wrapper must create no persistent state and perform no network access. Later delivery acceptance is guix lint -L . corerl with no package-specific findings; networkless guix build -L . --no-grafts corerl; upstream tests are unavailable; guix build -L . --no-grafts --check corerl; and a fresh HOME/XDG smoke run of corerl --smoke with the planned screenshot proving the real local game starts, processes gameplay input, emits the marker, and writes neither the store nor persistent HOME/XDG state. The research environment had no Guix daemon, so no build or package proof was claimed.


Imported from GitHub comment. Originally posted by htayj on 2026-09-02T09:13:28Z.

<!-- goocastle-disposition:sequential-reviewer:311:1:implementation-ready --> Goocastle recorded disposition: implementation-ready. Created implementation ticket: #668. Canonical upstream is the Studio Tectorum/Roguelike Education static article https://www.roguelikeeducation.org/2.html (published 2013-10-24; page SHA-256 4550fbe5ff17a58b2c4ec80d74587a4c043dbf24440881556aaddcbc7852e3c6) and its complete direct source https://www.roguelikeeducation.org/vault/core/1kcore.c. No maintained VCS repository, tags, submodules, or newer CoreRL release was found; treat the dated 1 KiB article/source as fixed revision 1kib-20131024 and pin the direct source with SHA-256 05d55844b30fbfae72bd87ab9e26539cfb8232e540bc0d0ce50b04d6d1369e24 (Guix base32 axkvqrftb67244v5q6vz4jsttt5yemxfic6a2dhfbmcnnujwtysa). The page says the 1023-byte C source is released into the public domain, and the package need ship only that source-derived executable plus a generated notice recording the upstream URL and grant; the linked screenshot, Haiku/OS X binaries, and DCPU-16 port are not package inputs, so there are no bundled fonts, tiles, sounds, maps, documentation assets, or fetched submodules requiring separate grants. The source uses only curses and libc, has no updater, telemetry, runtime download, file-state, or network behavior, and gives the authoritative build command gcc -o corerl 1kcore.c -lncurses. Use a gnu-build-system package module (tay packages corerl), delete configure, disable nonexistent upstream tests, and compile directly with gcc-toolchain as a native input and ncurses as an input; use -std=gnu89 for the intentionally pre-C99 source (implicit main/time declarations), with bash-minimal, coreutils-minimal, and util-linux additionally declared for the launcher-owned smoke path. GNU Guix package search returned no corerl result, and the local channel has no corerl/CoreRL definition or prior issue/runtime proof. CoreRL is the 1 KiB revision of the earlier 4 KiB Core at https://www.roguelikeeducation.org/1.html; Measter/NanoRL is a distinct Rust/Arduino port (master tip cadf54cbec0c36afa50a3b72b1d8f9b585337826, with Arduino-derived LGPL-2.1 files) and must not be substituted. Install /bin/corerl as a wrapper around a private compiled real binary: normal invocations exec the real game, while --smoke sets C locale and package-owned TERM/TERMINFO_DIRS, starts the real game through util-linux script in a PTY, feeds deterministic Up/Down/q input, captures the transcript outside the store, asserts the generated map contains @, e, and < plus the normal Quit on level 1. result, then prints the single-line marker CORERL_RUNTIME_OK. The wrapper must create no persistent state and perform no network access. Later delivery acceptance is guix lint -L . corerl with no package-specific findings; networkless guix build -L . --no-grafts corerl; upstream tests are unavailable; guix build -L . --no-grafts --check corerl; and a fresh HOME/XDG smoke run of corerl --smoke with the planned screenshot proving the real local game starts, processes gameplay input, emits the marker, and writes neither the store nor persistent HOME/XDG state. The research environment had no Guix daemon, so no build or package proof was claimed. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/311#issuecomment-5507253908). Originally posted by [htayj](https://github.com/htayj) on 2026-09-02T09:13:28Z.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tay/guix-channel#311
No description provided.