[Guix packaging] larsbrinkhoff/terminal-simulator #54

Open
opened 2026-08-14 13:16:46 +00:00 by htayj · 1 comment
htayj commented 2026-08-14 13:16:46 +00:00 (Migrated from github.com)

Candidate

  • Upstream canonical URL: https://github.com/larsbrinkhoff/terminal-simulator
  • Source pinned commit/release when known: 0fe6abf2656ea052ef68a9e17e46891f31a526f7 (default-branch snapshot checked 2026-08-14)
  • Target concrete installed deliverable: VT52 and VT100 SDL/OpenGL terminal hardware simulators
  • Primary category: emulator
  • Tags: historical-computing
  • Primary language normalized: C
  • Build system: gnu-build-system with vendored vcd source
  • SPDX expression: GPL-3.0-only
  • License status: confirmed-free
  • License evidence: The upstream LICENSE/COPYING was previously inspected at the pinned snapshot and identifies GPL-3.0-only.
  • Difficulty: hard — The VT52 build initializes a vcd submodule, which must be explicitly sourced without network during builds.
  • Workflow state: research
  • Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found.

Scope and blockers

Install the VT52/VT100 host simulators only.

Acceptance checks

  • guix lint -L. <package-name> and guix build -L. <package-name> pass once a package definition exists.
  • Start each simulator with a local display and no network access.

Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-14T13:16:46Z.

## Candidate - Upstream canonical URL: https://github.com/larsbrinkhoff/terminal-simulator - Source pinned commit/release when known: `0fe6abf2656ea052ef68a9e17e46891f31a526f7` (default-branch snapshot checked 2026-08-14) - Target concrete installed deliverable: VT52 and VT100 SDL/OpenGL terminal hardware simulators - Primary category: emulator - Tags: historical-computing - Primary language normalized: C - Build system: gnu-build-system with vendored vcd source - SPDX expression: GPL-3.0-only - License status: confirmed-free - License evidence: The upstream LICENSE/COPYING was previously inspected at the pinned snapshot and identifies GPL-3.0-only. - Difficulty: hard — The VT52 build initializes a vcd submodule, which must be explicitly sourced without network during builds. - Workflow state: research - Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found. ## Scope and blockers Install the VT52/VT100 host simulators only. ## Acceptance checks - `guix lint -L. <package-name>` and `guix build -L. <package-name>` pass once a package definition exists. - Start each simulator with a local display and no network access. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/54). Originally posted by [htayj](https://github.com/htayj) on 2026-08-14T13:16:46Z.
htayj commented 2026-08-25 16:02:37 +00:00 (Migrated from github.com)

Goocastle recorded disposition: blocked.

Blocked. Canonical upstream is https://github.com/larsbrinkhoff/terminal-simulator at fixed commit 0fe6abf2656ea052ef68a9e17e46891f31a526f7 (commit dated 2024-03-03; no release tag is used). Its LICENSE is the GNU GPL version 3, and the requested VT52/VT100 deliverables are C programs built by separate vt52/Makefile and vt100/Makefile files. The VT52 Makefile unconditionally compiles ../vcd/vcd.c and has a git submodule update --init fallback, while the parent .gitmodules fixes the independently fetched origin https://github.com/larsbrinkhoff/value-change-dumper at submodule commit cc6f1fea7e25ed1ae336cbe336106145596072d. At that exact vcd revision, the authoritative tree contains only .gitignore, Makefile, README.md, check.c, check.vcd, vcd.c, and vcd.h; it has no LICENSE, COPYING, NOTICE, or other license file, and those files contain no copyright, permission, GPL, redistribution, or public-domain grant. The parent GPL-3.0-only file cannot establish a redistribution grant for a separately fetched submodule, so including the required vcd source in an unattended Guix package is legally unverified and unsafe. The technical path after clearance is otherwise viable in principle with gnu-build-system: supply vcd explicitly at the pinned revision before the build so no build-time network is used; build and install vt52 and vt100 with direct inputs sdl2, sdl2-image, and an OpenGL implementation such as mesa (the upstream Makefiles use sdl2-config, -lSDL2_image, and -lGL); install common/vertex.shader and common/crt.shader and replace the hard-coded relative SHADERDIR so either binary works outside the source tree. No same-origin package was found in the local channel or the installed Guix package index; libtsm is only a terminal-state-machine library and is not an equivalent hardware simulator. After licensing is resolved, the isolated smoke proof should start Xvfb with -nolisten tcp and software GL, run both installed binaries from a network-isolated environment on that local display (vt100 with -Q and a short command that emits VT100 control bytes and exits; vt52 with its built-in shell), verify each SDL window/process starts and exits under timeout, and assert no non-local network access. Unblock only when the copyright holder provides an authoritative redistribution grant covering value-change-dumper at exact commit cc6f1fea7e25ed1ae336cbe336106145596072d2, or upstream supplies a later clearly licensed vcd commit and the parent is repinned to it with fresh fixed source hashes; then recheck every fetched origin before implementation.


Imported from GitHub comment. Originally posted by htayj on 2026-08-25T16:02:37Z.

<!-- goocastle-disposition:sequential-reviewer:54:1:blocked --> Goocastle recorded disposition: blocked. Blocked. Canonical upstream is https://github.com/larsbrinkhoff/terminal-simulator at fixed commit 0fe6abf2656ea052ef68a9e17e46891f31a526f7 (commit dated 2024-03-03; no release tag is used). Its LICENSE is the GNU GPL version 3, and the requested VT52/VT100 deliverables are C programs built by separate vt52/Makefile and vt100/Makefile files. The VT52 Makefile unconditionally compiles ../vcd/vcd.c and has a git submodule update --init fallback, while the parent .gitmodules fixes the independently fetched origin https://github.com/larsbrinkhoff/value-change-dumper at submodule commit cc6f1fea7e25ed1ae336cbe336106145596072d. At that exact vcd revision, the authoritative tree contains only .gitignore, Makefile, README.md, check.c, check.vcd, vcd.c, and vcd.h; it has no LICENSE, COPYING, NOTICE, or other license file, and those files contain no copyright, permission, GPL, redistribution, or public-domain grant. The parent GPL-3.0-only file cannot establish a redistribution grant for a separately fetched submodule, so including the required vcd source in an unattended Guix package is legally unverified and unsafe. The technical path after clearance is otherwise viable in principle with gnu-build-system: supply vcd explicitly at the pinned revision before the build so no build-time network is used; build and install vt52 and vt100 with direct inputs sdl2, sdl2-image, and an OpenGL implementation such as mesa (the upstream Makefiles use sdl2-config, -lSDL2_image, and -lGL); install common/vertex.shader and common/crt.shader and replace the hard-coded relative SHADERDIR so either binary works outside the source tree. No same-origin package was found in the local channel or the installed Guix package index; libtsm is only a terminal-state-machine library and is not an equivalent hardware simulator. After licensing is resolved, the isolated smoke proof should start Xvfb with -nolisten tcp and software GL, run both installed binaries from a network-isolated environment on that local display (vt100 with -Q and a short command that emits VT100 control bytes and exits; vt52 with its built-in shell), verify each SDL window/process starts and exits under timeout, and assert no non-local network access. Unblock only when the copyright holder provides an authoritative redistribution grant covering value-change-dumper at exact commit cc6f1fea7e25ed1ae336cbe336106145596072d2, or upstream supplies a later clearly licensed vcd commit and the parent is repinned to it with fresh fixed source hashes; then recheck every fetched origin before implementation. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/54#issuecomment-5413174242). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T16:02:37Z.
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#54
No description provided.