[Guix packaging] nickgammon/mushclient #240

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

Candidate

User-facing deliverable

Feature-rich open-source Windows MUD/MUSH client used by many game-specific packages, including Aardwolf.

Packaging approach

Determine whether Guix can produce a source-built MinGW/Wine deliverable or whether a native compatibility client such as Mushkin should supersede it; do not package opaque release binaries by default.

Known blockers and investigation points

Upstream is MFC/Visual-Studio-specific and requires Windows resources/runtime files; a reproducible Linux user experience and writable profile layout must be demonstrated.

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:16Z.

## Candidate - Canonical upstream: [https://github.com/nickgammon/mushclient](https://github.com/nickgammon/mushclient) - Packaging target: v5.06 plus current maintained source head - Category: MUD client - Tags: mud-client, desktop, Windows, Wine, MUSH, Lua, accessibility - Primary language/build ecosystem: C/C++, Visual Studio/MFC, Lua - License: MIT/Expat-like for MUSHclient, with separate bundled-component licenses - License evidence: https://github.com/nickgammon/mushclient/blob/master/docs/agreement.txt - Expected Guix packaging difficulty: hard ## User-facing deliverable Feature-rich open-source Windows MUD/MUSH client used by many game-specific packages, including Aardwolf. ## Packaging approach Determine whether Guix can produce a source-built MinGW/Wine deliverable or whether a native compatibility client such as Mushkin should supersede it; do not package opaque release binaries by default. ## Known blockers and investigation points Upstream is MFC/Visual-Studio-specific and requires Windows resources/runtime files; a reproducible Linux user experience and writable profile layout must be demonstrated. ## 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/240). Originally posted by [htayj](https://github.com/htayj) on 2026-08-22T05:13:16Z.
htayj commented 2026-08-22 09:58:33 +00:00 (Migrated from github.com)

Feasibility investigation completed: original MUSHclient is not currently source-buildable for Guix/Linux.

Key evidence:

  • Stable v5.06 is commit 201cf7392b54e0843c5cde08514712331f57aec2; maintained head is 789c236064faf7cbe4371a07f693b7251229df17.
  • Stable uses Visual Studio v140_xp with static MFC; current head uses VS2022 v143, Windows SDK 10, Win32, and static MFC. Source directly depends on MFC plus Windows Script Host, COM/OLE, GDI, DirectSound, Crypt32, and other Windows APIs.
  • MinGW and Wine/Winelib do not supply a source-compatible free MFC implementation. Upstream itself identifies proprietary/nonportable MFC as the native-port blocker.
  • The Git tree is not a self-contained runtime: it requires binary-distribution files such as lua5.1.dll, help/locale data, spell data, and Lua assets; current source also tracks opaque OpenSSL static libraries.
  • Own code is MIT/Expat, but the complete runtime is mixed-license and needs its full inventory preserved.
  • Wine can run the 32-bit PE on Guix, but that would require an explicit policy exception for packaging opaque Windows artifacts and would not satisfy this issue's source-build acceptance criteria.
  • No same-upstream package was found in GNU Guix or the surveyed channels.

Disposition: changing this ticket from research/hard to blocked/blocked. Keep it open only as an upstream free/native-build prerequisite. The credible native alternative is the separate Qt/CMake Mushkin rewrite tracked in #246; it is not the same upstream package.

If an opaque-binary exception is ever authorized, use an immutable numbered bundle, Wine on x86_64-linux, a per-user Wine prefix/XDG data copy, complete license inventory, and Xvfb plus loopback fake-MUD tests. Do not use moving latest_commit artifacts.


Imported from GitHub comment. Originally posted by htayj on 2026-08-22T09:58:33Z.

Feasibility investigation completed: original MUSHclient is not currently source-buildable for Guix/Linux. Key evidence: - Stable v5.06 is commit `201cf7392b54e0843c5cde08514712331f57aec2`; maintained head is `789c236064faf7cbe4371a07f693b7251229df17`. - Stable uses Visual Studio `v140_xp` with static MFC; current head uses VS2022 `v143`, Windows SDK 10, Win32, and static MFC. Source directly depends on MFC plus Windows Script Host, COM/OLE, GDI, DirectSound, Crypt32, and other Windows APIs. - MinGW and Wine/Winelib do not supply a source-compatible free MFC implementation. Upstream itself identifies proprietary/nonportable MFC as the native-port blocker. - The Git tree is not a self-contained runtime: it requires binary-distribution files such as `lua5.1.dll`, help/locale data, spell data, and Lua assets; current source also tracks opaque OpenSSL static libraries. - Own code is MIT/Expat, but the complete runtime is mixed-license and needs its full inventory preserved. - Wine can run the 32-bit PE on Guix, but that would require an explicit policy exception for packaging opaque Windows artifacts and would not satisfy this issue's source-build acceptance criteria. - No same-upstream package was found in GNU Guix or the surveyed channels. Disposition: changing this ticket from research/hard to blocked/blocked. Keep it open only as an upstream free/native-build prerequisite. The credible native alternative is the separate Qt/CMake Mushkin rewrite tracked in #246; it is not the same upstream package. If an opaque-binary exception is ever authorized, use an immutable numbered bundle, Wine on `x86_64-linux`, a per-user Wine prefix/XDG data copy, complete license inventory, and Xvfb plus loopback fake-MUD tests. Do not use moving `latest_commit` artifacts. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/240#issuecomment-5379658056). Originally posted by [htayj](https://github.com/htayj) on 2026-08-22T09:58:33Z.
htayj commented 2026-08-22 17:19:56 +00:00 (Migrated from github.com)

Rechecked against upstream head 789c236064faf7cbe4371a07f693b7251229df17 and current Guix. The application still requires static MFC and Windows-only Visual Studio/SDK facilities that Guix/MinGW cannot source-build. A Wine package would require opaque Windows artifacts and falls outside this ticket source-build policy.

Closing as not planned. Reopen if upstream supplies a portable/free build, or if an explicit binary/Wine exception is authorized with immutable artifacts, a complete license inventory, XDG-scoped state, and loopback protocol tests.


Imported from GitHub comment. Originally posted by htayj on 2026-08-22T17:19:56Z.

Rechecked against upstream head 789c236064faf7cbe4371a07f693b7251229df17 and current Guix. The application still requires static MFC and Windows-only Visual Studio/SDK facilities that Guix/MinGW cannot source-build. A Wine package would require opaque Windows artifacts and falls outside this ticket source-build policy. Closing as not planned. Reopen if upstream supplies a portable/free build, or if an explicit binary/Wine exception is authorized with immutable artifacts, a complete license inventory, XDG-scoped state, and loopback protocol tests. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/240#issuecomment-5381642627). Originally posted by [htayj](https://github.com/htayj) on 2026-08-22T17:19:56Z.
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#240
No description provided.