[Guix packaging] mmcdole/rune #245

Closed
opened 2026-08-22 05:13:21 +00:00 by htayj · 2 comments
htayj commented 2026-08-22 05:13:21 +00:00 (Migrated from github.com)

Candidate

User-facing deliverable

Terminal MUD client with Lua scripting, aliases, triggers, timers, TLS, GMCP, and MCCP2.

Packaging approach

Package the pinned Go module graph once a sufficient Go toolchain exists, or determine whether the declared Go version can be safely lowered.

Known blockers and investigation points

go.mod requires Go 1.26.5 while the audited Guix provides Go 1.25.3.

Acceptance checks

  • Pin an immutable upstream release or commit and record a real Guix source hash.
  • Build without network access using Guix-provided dependencies; do not download runtimes or plugins during the build.
  • Preserve all applicable project and bundled-component license notices.
  • Verify the installed launcher/version output and run an offline protocol smoke test against a local fake MUD endpoint where the platform permits it.
  • Keep profiles, logs, maps, plugins, and other mutable state outside the store.

Existing-package coverage

Checked on 2026-08-22 against GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix R Us, and RDE, plus all states of this repository issue tracker. No same-upstream package or existing ticket was found. GNU Guix already packages TinTin++ and POWWOW; this candidate is distinct.


Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-22T05:13:21Z.

## Candidate - Canonical upstream: [https://github.com/mmcdole/rune](https://github.com/mmcdole/rune) - Packaging target: v0.10.1 (2026-08-16) - Category: MUD client - Tags: mud-client, terminal, Go, Lua, TLS, GMCP, MCCP - Primary language/build ecosystem: Go with Lua scripting - License: MIT - License evidence: https://github.com/mmcdole/rune/blob/main/LICENSE - Expected Guix packaging difficulty: hard ## User-facing deliverable Terminal MUD client with Lua scripting, aliases, triggers, timers, TLS, GMCP, and MCCP2. ## Packaging approach Package the pinned Go module graph once a sufficient Go toolchain exists, or determine whether the declared Go version can be safely lowered. ## Known blockers and investigation points go.mod requires Go 1.26.5 while the audited Guix provides Go 1.25.3. ## Acceptance checks - Pin an immutable upstream release or commit and record a real Guix source hash. - Build without network access using Guix-provided dependencies; do not download runtimes or plugins during the build. - Preserve all applicable project and bundled-component license notices. - Verify the installed launcher/version output and run an offline protocol smoke test against a local fake MUD endpoint where the platform permits it. - Keep profiles, logs, maps, plugins, and other mutable state outside the store. ## Existing-package coverage Checked on 2026-08-22 against GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix R Us, and RDE, plus all states of this repository issue tracker. No same-upstream package or existing ticket was found. GNU Guix already packages TinTin++ and POWWOW; this candidate is distinct. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/245). Originally posted by [htayj](https://github.com/htayj) on 2026-08-22T05:13:21Z.
htayj commented 2026-08-22 12:35:49 +00:00 (Migrated from github.com)

Feasibility research is complete: Rune v0.10.1 is source-buildable with the authenticated Guix Go 1.25.3 toolchain, so this issue is moving to state:ready while retaining difficulty:hard.

Evidence and packaging outline:

  • The canonical project is mmcdole/rune; the alternate albertodemichelis/rune name returns 404.
  • Pin v0.10.1 to commit a4a172c2d8f3f5d440dbc86e77e8849479482def with Guix NAR hash 1lkmwfk19d82c6n9vwwbrd732w6d27yxlf03w1ivcssvmmkd15pr.
  • The go.mod 1.26.5 directive is not an actual source-language requirement. A module-mode probe with only that directive lowered to 1.25 passed the complete offline suite and static build under Guix Go 1.25.3; the Guix GOPATH build system does not consult go.mod during compilation.
  • Package the default pure-Go Lunar backend, not the optional LuaJIT build tag. Add NSS certificate roots for MUD TLS and the intentional Lua HTTPS API.
  • The exact release graph has 21 modules. Roughly 16 require new or version-specific private definitions, especially the Charm v2 stack; this is the reason the task remains hard.
  • Mutable state already follows RUNE_CONFIG_DIR or XDG config. Rune has no self-updater.
  • Project code is MIT/Expat. Embedded Lua files are project-owned; irrelevant website GIF/JPEG/MP4 assets should be removed from the source used by the package.
  • Upstream has 76 Go test files, roughly 559 named tests/examples, and 20 local E2E scenarios covering Lua, Telnet, MCCP2, GMCP, TLS, sessions, and terminal behavior. Acceptance should add exact version, fresh config, loopback fake-MUD, NSS trust, and store-immutability checks.

The same-day audit found no Rune package in GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix R Us, or RDE.


Imported from GitHub comment. Originally posted by htayj on 2026-08-22T12:35:49Z.

Feasibility research is complete: Rune v0.10.1 is source-buildable with the authenticated Guix Go 1.25.3 toolchain, so this issue is moving to state:ready while retaining difficulty:hard. Evidence and packaging outline: - The canonical project is mmcdole/rune; the alternate albertodemichelis/rune name returns 404. - Pin v0.10.1 to commit a4a172c2d8f3f5d440dbc86e77e8849479482def with Guix NAR hash 1lkmwfk19d82c6n9vwwbrd732w6d27yxlf03w1ivcssvmmkd15pr. - The go.mod 1.26.5 directive is not an actual source-language requirement. A module-mode probe with only that directive lowered to 1.25 passed the complete offline suite and static build under Guix Go 1.25.3; the Guix GOPATH build system does not consult go.mod during compilation. - Package the default pure-Go Lunar backend, not the optional LuaJIT build tag. Add NSS certificate roots for MUD TLS and the intentional Lua HTTPS API. - The exact release graph has 21 modules. Roughly 16 require new or version-specific private definitions, especially the Charm v2 stack; this is the reason the task remains hard. - Mutable state already follows RUNE_CONFIG_DIR or XDG config. Rune has no self-updater. - Project code is MIT/Expat. Embedded Lua files are project-owned; irrelevant website GIF/JPEG/MP4 assets should be removed from the source used by the package. - Upstream has 76 Go test files, roughly 559 named tests/examples, and 20 local E2E scenarios covering Lua, Telnet, MCCP2, GMCP, TLS, sessions, and terminal behavior. Acceptance should add exact version, fresh config, loopback fake-MUD, NSS trust, and store-immutability checks. The same-day audit found no Rune package in GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix R Us, or RDE. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/245#issuecomment-5380452182). Originally posted by [htayj](https://github.com/htayj) on 2026-08-22T12:35:49Z.
htayj commented 2026-08-22 14:06:49 +00:00 (Migrated from github.com)

Packaged and published Rune 0.10.1 in signed commit 82d323e4b4. The package pins the exact 21-module Go graph, builds and tests offline, retains recursive license notices, and wraps Guix CA roots. Validation passed: all upstream package tests, reproducibility --check, focused lint, and a private-network-namespace smoke covering fresh state, Lunar scripting, Telnet/TTYPE, GMCP, MCCP2, trusted TLS, explicit untrusted-certificate rejection, and store immutability.


Imported from GitHub comment. Originally posted by htayj on 2026-08-22T14:06:49Z.

Packaged and published Rune 0.10.1 in signed commit 82d323e4b4f82fc1978c78753a769c438b609b67. The package pins the exact 21-module Go graph, builds and tests offline, retains recursive license notices, and wraps Guix CA roots. Validation passed: all upstream package tests, reproducibility --check, focused lint, and a private-network-namespace smoke covering fresh state, Lunar scripting, Telnet/TTYPE, GMCP, MCCP2, trusted TLS, explicit untrusted-certificate rejection, and store immutability. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/245#issuecomment-5380816281). Originally posted by [htayj](https://github.com/htayj) on 2026-08-22T14:06:49Z.
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#245
No description provided.