Implement researched Guix package outcome for #56: [Guix packaging] aap/vt05 #616
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#616
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 #56 ([Guix packaging] aap/vt05).
The host-validated research finding follows:
Canonical source: https://github.com/aap/vt05.git at fixed commit 934fe8898bd656749b323abbdab62939148cfe3e (2025-05-29, suggested Guix version 0.1-1.934fe88); a git-fetch origin can use recursive source hash 02mwxyh88afcw8pwqcaykbn28rz13c4vygr3bn4knv4bz9k8w3l6. At that exact revision,
github.com/aap/vt05@934fe8898b/LICENSEgrants MIT redistribution, modification, and distribution rights (Guix license:expat); git ls-tree shows only the repository files, no .gitmodules, and git submodule status is empty, so there are no separately fetched submodule origins whose licenses remain unevidenced. The font/ROM tables mentioned in comments are embedded tracked headers, not additional package fetches. The source is technically source-buildable on Guix GNU/Linux: Makefile target all builds exactly vt05, vt52, vt50, dp3300, gecon, and dm2500 with cc, sdl2-config, -lm, and -lpthread; there is no configure script, test suite, generated resource, network fetch, or runtime data file. Package it as public vt05 in a new (tay packages vt05) module using gnu-build-system, deleting configure, invoking the upstream makefile, and using sdl2 as the input that supplies SDL headers, sdl2-config, and runtime SDL libraries; compiler, make, libc, libm, and pthread support come from the standard Guix build environment, and no pkg-config or extra source input is required. The custom install phase must install all six Makefile outputs under $out/bin and LICENSE under $out/share/doc/vt05. No wrapper is required or desirable: each binary creates an SDL window, allocates a POSIX PTY, requires a user-supplied command argument, sets TERM=vt52 for vt52 and vt50 and TERM=dumb for vt05, dp3300, gecon, and dm2500, and execvp's that command; the SDL2 input supplies the linked runtime closure. Existing coverage is only the local larsbrinkhoff-vt05-source source snapshot at the same commit (tay/packages/larsbrinkhoff-t-z.scm, codeload hash 09kxszk89cmm3nyvc8n62ahngj3drlbvggfq499znnwvh96yg8ga), which does not build or install these binaries; no equivalent package was found in the local channel or guix search. Acceptance must run guix lint -L. vt05 and guix build -L. vt05, assert executable $out/bin/vt05, $out/bin/vt50, $out/bin/vt52, $out/bin/dp3300, $out/bin/gecon, and $out/bin/dm2500, then perform an isolated offline smoke: start the Guix xorg-server Xvfb on DISPLAY=:99 with -nolisten tcp, software SDL rendering, cleared proxy variables, and a temporary HOME; launch $out/bin/vt52 /bin/sh -c with a command that checks TERM=vt52, writes a VT05_SMOKE marker in the temporary directory, and sleeps; poll xwininfo -root -tree for the VT52 window title, require the marker and absence of SDL startup errors, then terminate the client and Xvfb. This proves the selected installed binary creates its local display window and PTY child without network access; no Guix build or lint proof is claimed in this research because the local Guix daemon socket was unavailable.Acceptance criteria
Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-25T16:41:34Z.
Completed by Goocastle
Imported from GitHub comment. Originally posted by htayj on 2026-08-25T23:13:34Z.
Published signed Guix-authenticated commit
c2e982a030. Main independently passed local source build, --check reproducibility, offline lint and isolated runtime/integrated target. All six SDL emulators rendered real PTY text then erased to zero differing pixels; private Xvfb/mount/network/PID isolation and immutable store checks. Actual VT52 screenshot616 visually inspected. Existing legacy compiler warnings remain disclosed in README. No physical keyboard/tape hardware, host display or deployed profile changed. PDP worker violated no-execution/no-Goocastle-renderer instructions on deleted temporary artifacts; none accepted as proof. All final gates and committed screenshots independently produced by Main without Goocastle execution.