[Guix packaging] aap/blincolnlights #41
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
tay/guix-channel#41
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?
Candidate
932d2cedfaec3368d6e1890b15645decc4815429(default-branch snapshot checked 2026-08-14)Scope and blockers
Install virtual panel and emulator programs; exclude GPIO and physical-panel drivers.
Acceptance checks
guix lint -L. <package-name>andguix build -L. <package-name>pass once a package definition exists.Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-14T13:16:35Z.
Goocastle recorded disposition: implementation-ready.
Created implementation ticket: #605.
Canonical upstream is https://github.com/aap/blincolnlights at fixed revision 932d2cedfaec3368d6e1890b15645decc4815429 (commit date 2026-08-14; use Guix version 0-932d2ce, git-fetch with recursive? #f; the locally audited non-recursive checkout hash is 1dq8h2y8hc7avszsb36b5war8cahkiyyig3z1fx7f1fhxb6246s9). Upstream README at
github.com/aap/blincolnlights@932d2cedfa/README.mddocuments three SDL virtual panels (Blincolnlights 18, PDP-1, Whirlwind), host emulators for Whirlwind, TX-0, PDP-1, and PDP-5, and mmap panel files; the root Makefile atgithub.com/aap/blincolnlights@932d2cedfa/Makefilealso confirms that the default build mixes hardware drivers with host targets, so do not invoke root make. The root LICENSE atgithub.com/aap/blincolnlights@932d2cedfa/LICENSEis MIT, matching Guix license:expat; the selected host-side files do not require the Lua gitlink or Raspberry Pi code, so the source is legally redistributable and statically source-buildable with GNU C, libc, pthread, and math plus SDL2 for PDP-1 audio and SDL2 plus SDL2_image for the three virtual panels. No installable equivalent exists in this channel: tay/packages/larsbrinkhoff-a-f.scm:25 contains only the older source-only preservation package at 660f37803bd3c7ff8c3e24154c7d9cc7f29c2d34, generated by the copy-only helper in tay/packages/source-snapshot.scm; it is not the pinned revision and does not build or install emulators. Add a new module tay/packages/blincolnlights.scm with module (tay packages blincolnlights), package blincolnlights, gnu-build-system, native input pkg-config, and SDL2/SDL2_image inputs; use an explicit custom build phase or direct compiler invocations because the upstream Makefiles hard-code cc and library flags. Build and install these exact host artifacts: vpanel_b18/panel_b18 as blincolnlights-panel-b18, vpanel_pdp1/panel_pdp1 as blincolnlights-panel-pdp1, vpanel_whirlwind/panel_whirlwind as blincolnlights-panel-whirlwind, pdp1/pdp1 and pdp1_b18 as blincolnlights-pdp1 and blincolnlights-pdp1-b18, pdp5/pdp5 as blincolnlights-pdp5, tx0/tx0_pdp1 and tx0_b18 as blincolnlights-tx0-pdp1 and blincolnlights-tx0-b18, whirlwind/whirlwind and whirlwind_b18 as blincolnlights-whirlwind and blincolnlights-whirlwind-b18, and tools/mkptyfl plus tools/mkptyfio as support utilities. Exclude panel_b18, panel_pidp1, panel_pidp10, panel_pidp1_user, panel_pidp1_kernel, pinctrl, gpio.c, vpanel_pdp6, pdp6, pdp_periph, tapevis, and netmem_cache; those are hardware, Raspberry Pi, unvendored-Lua, peripheral, or out-of-scope paths. Install the PDP-1 maindec and tapes under share/blincolnlights/pdp1 and add the package-owned alias tapes/dpys5.rim -> tapes/ddt.rim: pinned pdp1/main.c:322-325 opens the absent relative default tapes/dpys5.rim even though ddt.rim is present. Each host-emulator launcher must create or use ${XDG_STATE_HOME:-$HOME/.local/state}/blincolnlights/, symlink the read-only packaged data there, cd to that writable directory before exec so coremem and punch.out never target the Guix store, and preserve all user arguments; virtual-panel launchers may exec directly because their PNG assets are compiled into the binaries. The shared panel paths are hard-coded as /tmp/b18_panel, /tmp/pdp1_panel, and /tmp/whirlwind_panel in common/panel code, and the emulators expose fixed TCP services documented by the README (PDP-1 1040-1043 and 3400-3401; PDP-5 1550), so document single-user/port-collision behavior and do not claim network isolation. Acceptance must be exact and bounded: after the definition exists, run guix lint -L. blincolnlights and guix build -L. blincolnlights; then create a fresh HOME and XDG_STATE_HOME, remove only the test-owned /tmp/pdp1_panel with a trap, run xvfb-run -a with SDL_VIDEODRIVER=x11, start blincolnlights-panel-pdp1, wait until /tmp/pdp1_panel exists and is nonempty, start blincolnlights-pdp5, require both processes to remain alive for at least two seconds, verify the PDP-5 state directory receives writable runtime state after clean termination, and assert neither log reports cannot find operator panel before cleaning up both processes and the shared file. This is a delivery plan, not a claim that Guix lint/build or the smoke has already passed.Imported from GitHub comment. Originally posted by htayj on 2026-08-25T12:32:23Z.