[Guix packaging] aap/pdp6 #52
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#52
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
2645ed907d0267710866fd8228863ce8867f4dc6(default-branch snapshot checked 2026-08-14)Scope and blockers
Install the host PDP-6 emulator only.
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:44Z.
Goocastle recorded disposition: implementation-ready.
Created implementation ticket: #613.
Canonical upstream is https://github.com/aap/pdp6, fixed as version 0-2645ed9 at commit 2645ed907d0267710866fd8228863ce8867f4dc6 (the pinned master snapshot, commit date 2026-03-19); use the existing Guix codeload source origin and hash recorded by larsbrinkhoff-pdp6-source in tay/packages/larsbrinkhoff-n-s.scm: https://codeload.github.com/aap/pdp6/tar.gz/2645ed907d0267710866fd8228863ce8867f4dc6, base32 0n9mg2qz85vcmpn5az9jw5i8xa6rc5h35pmhch8jbxx3rz9gvm9i. LICENSE at that exact revision grants MIT permission to use, modify, and redistribute the source and associated documentation. The exact revision has no .gitmodules file and no gitlink entries, so the only independently fetched upstream origin is aap/pdp6 itself; there is no separately fetched submodule whose license must be supplied. The external Guix build inputs are sdl2 (Modified BSD), sdl2-image (Zlib), and native pkg-config (GPL-2-or-later); pthread and libm come from the normal GNU build environment. The source-buildable host target is emu/pdp6: its pinned emu/Makefile has a concrete custom make recipe equivalent to make -C emu pdp6 and requires gcc, sdl2-config, pkg-config SDL2_image, pthread, and libm. Use gnu-build-system with the configure phase deleted, build only that target, and install the resulting C SDL2 host emulator. Do not select newemu: its pinned Makefile names newemu/ttytelnet.c, which is absent at the same revision; do not build emu/pdp6_s, emu/pdp6_n, fe6, panel, or other serial, network, FPGA, and cross-hardware paths. The local channel already has larsbrinkhoff-pdp6-source at this exact revision, but guix search and the local package inventory contain no equivalent installable package for this upstream origin. Implement module (tay packages pdp6) with public package name pdp6, inheriting that source snapshot, inputs sdl2, sdl2-image, and bash-minimal, native input pkg-config, and the implicit GCC/make toolchain. Install the binary under a private libexec runtime root and provide a bin/pdp6 launcher that changes directory to that root before exec. Ship a controlled init.ini containing only the local defaultconfig device and bus/memory setup from emu/emu.c (APR, TTY, paper-tape reader/punch, DC/DECtape, fast/core memory and connect lines), with no netmem or netcons commands and no mount directives; do not ship the stock init.ini because it attempts localhost:10007 and references absent dump/tape paths. The launcher must therefore start the graphical SDL virtual console from any caller directory without writing to the store, while excluding hardware serial, standalone-panel, FPGA, and network setup. Acceptance is: guix lint -L. pdp6 and guix build -L. pdp6 both succeed; then run the installed launcher in an isolated Guix container with no -N network permission, no device bindings, a fresh HOME/XDG tree, Xvfb :99 -screen 0 1399x740x24 -nolisten tcp, DISPLAY=:99, SDL_VIDEODRIVER=x11, SDL_AUDIODRIVER=dummy, SDL_JOYSTICK_DISABLED=1, and strace -f -e trace=network. Poll xwininfo -root -tree until it finds the window title PDP-6 console, terminate the emulator, and require the trace to contain no AF_INET or AF_INET6 calls; this proves the packaged host UI starts on a local display under network isolation without the excluded FPGA or network paths. This is a delivery brief and source audit, not a claim that the package has already passed lint, build, or runtime proof.
Imported from GitHub comment. Originally posted by htayj on 2026-08-25T15:27:09Z.