[Guix packaging] aap/pdp11 #51

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

Candidate

  • Upstream canonical URL: https://github.com/aap/pdp11
  • Source pinned commit/release when known: 5b5b734f9b574cc3257670595eee6be084f2c8aa (default-branch snapshot checked 2026-08-14)
  • Target concrete installed deliverable: PDP-11 CPU emulator suite
  • Primary category: emulator
  • Tags: historical-computing, pdp-11
  • Primary language normalized: C
  • Build system: gnu-build-system with custom make phase
  • SPDX expression: MIT
  • License status: confirmed-free
  • License evidence: The upstream LICENSE was previously inspected at the pinned snapshot and identifies MIT.
  • Difficulty: moderate — Headless emulator binaries should be separated from optional SDL/network-console components if needed.
  • 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 host PDP-11 emulator binaries only.

Acceptance checks

  • guix lint -L. <package-name> and guix build -L. <package-name> pass once a package definition exists.
  • Run a selected emulator with a local fixture or its noninteractive usage path.

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

## Candidate - Upstream canonical URL: https://github.com/aap/pdp11 - Source pinned commit/release when known: `5b5b734f9b574cc3257670595eee6be084f2c8aa` (default-branch snapshot checked 2026-08-14) - Target concrete installed deliverable: PDP-11 CPU emulator suite - Primary category: emulator - Tags: historical-computing, pdp-11 - Primary language normalized: C - Build system: gnu-build-system with custom make phase - SPDX expression: MIT - License status: confirmed-free - License evidence: The upstream LICENSE was previously inspected at the pinned snapshot and identifies MIT. - Difficulty: moderate — Headless emulator binaries should be separated from optional SDL/network-console components if needed. - 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 host PDP-11 emulator binaries only. ## Acceptance checks - `guix lint -L. <package-name>` and `guix build -L. <package-name>` pass once a package definition exists. - Run a selected emulator with a local fixture or its noninteractive usage path. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/51). Originally posted by [htayj](https://github.com/htayj) on 2026-08-14T13:16:43Z.
htayj commented 2026-08-25 15:08:21 +00:00 (Migrated from github.com)

Goocastle recorded disposition: implementation-ready.

Created implementation ticket: #612.

Implementation-ready for package pdp11 in a new (tay packages pdp11) module, importing the existing larsbrinkhoff-pdp11-source from (tay packages larsbrinkhoff-n-s). Canonical upstream is https://github.com/aap/pdp11; use version 0-5b5b734 and the immutable source https://codeload.github.com/aap/pdp11/tar.gz/5b5b734f9b574cc3257670595eee6be084f2c8aa with the channel-recorded Guix base32 SHA-256 0jqwsyafpdsp6bx19vsqpq5j0chxnrb4jlzjp0a6pgybpb0kx3c0. The pinned parent commit is a C source tree whose root LICENSE at exactly 5b5b734f9b574cc3257670595eee6be084f2c8aa is the MIT License, including permission to use, copy, modify, publish, distribute, sublicense, and sell, so license:expat is the Guix license and the source is legally redistributable. The parent tree has one independently identified submodule, lodepng from https://github.com/lvandeve/lodepng at exactly d398e0f10d152a5d17fa30463474dc9f56523f9c; its own LICENSE at that revision separately grants use for any purpose including commercial use, alteration, and redistribution subject to attribution/non-misrepresentation, marking altered versions, and retaining the notice, with an as-is disclaimer (a zlib-style permissive grant). The parent license is not evidence for that submodule. The selected host-only build does not fetch or compile lodepng: GitHub codeload does not include submodule contents, and the four required Makefile targets do not reference it. Use gnu-build-system, delete configure, select Make targets pdp1105, pdp1120, pdp1140, and pdp1145, and replace the absent upstream check target with the package smoke phase. No package inputs or propagated inputs are required beyond the compiler/make machinery supplied by the GNU build system; the selected targets link against the normal C runtime and contain no SDL dependency. The upstream default all target must not be used: tv11 is the network-console emulator requiring a PDP-10 peer and listening service, while xgp11 is the network-console/XGP path and is also the only target that consumes the separately licensed lodepng submodule; neither is part of the host PDP-11 CPU deliverable. Install the four resulting native binaries and the parent LICENSE under the package documentation directory; do not install or fetch disk images, mem.txt, tv11, or xgp11. No wrapper or dynamic-library runtime setup is needed. Preserve the caller's working directory because upstream resolves mem.txt relative to the current directory, pdp1120 opens unix1/rf0.dsk, unix1/rf1.dsk, and unix1/rk0.dsk with r+/w+, and pdp1140 opens unix6/disk0.rk, unix6/disk1.rk, and unix6/disk2.rk likewise; these images and their writable parent directories are user-supplied runtime fixtures, and the emulators also hardcode their console device as /tmp/tty. pdp1145 is the safe noninteractive path: its main allocates the microcode state, runs the built-in three-cycle diagnostic trace, and returns zero without network, console, or image inputs. Local channel inspection finds only the already-present larsbrinkhoff-pdp11-source preservation package at this revision, not an installed executable package; the 2026-08-14 inventory for GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE likewise found no equivalent package with this upstream origin. Specific implementation acceptance: guix lint -L. pdp11 and guix build -L. pdp11 must succeed; the output must contain exactly pdp1105, pdp1120, pdp1140, and pdp1145 in bin; and the package-specific smoke must create a fresh temporary working directory with isolated HOME, XDG_CONFIG_HOME, XDG_CACHE_HOME, and XDG_STATE_HOME, run timeout 10s $out/bin/pdp1145 there, require exit status zero and output markers T1, T5, and ----------, and verify that the fixture directory contains no files other than the captured log. This is a research delivery brief, not a claim that Guix build or package proof has already passed.


Imported from GitHub comment. Originally posted by htayj on 2026-08-25T15:08:21Z.

<!-- goocastle-disposition:sequential-reviewer:51:1:implementation-ready --> Goocastle recorded disposition: implementation-ready. Created implementation ticket: #612. Implementation-ready for package `pdp11` in a new `(tay packages pdp11)` module, importing the existing `larsbrinkhoff-pdp11-source` from `(tay packages larsbrinkhoff-n-s)`. Canonical upstream is https://github.com/aap/pdp11; use version `0-5b5b734` and the immutable source https://codeload.github.com/aap/pdp11/tar.gz/5b5b734f9b574cc3257670595eee6be084f2c8aa with the channel-recorded Guix base32 SHA-256 `0jqwsyafpdsp6bx19vsqpq5j0chxnrb4jlzjp0a6pgybpb0kx3c0`. The pinned parent commit is a C source tree whose root `LICENSE` at exactly `5b5b734f9b574cc3257670595eee6be084f2c8aa` is the MIT License, including permission to use, copy, modify, publish, distribute, sublicense, and sell, so `license:expat` is the Guix license and the source is legally redistributable. The parent tree has one independently identified submodule, `lodepng` from https://github.com/lvandeve/lodepng at exactly `d398e0f10d152a5d17fa30463474dc9f56523f9c`; its own `LICENSE` at that revision separately grants use for any purpose including commercial use, alteration, and redistribution subject to attribution/non-misrepresentation, marking altered versions, and retaining the notice, with an as-is disclaimer (a zlib-style permissive grant). The parent license is not evidence for that submodule. The selected host-only build does not fetch or compile `lodepng`: GitHub codeload does not include submodule contents, and the four required Makefile targets do not reference it. Use `gnu-build-system`, delete `configure`, select Make targets `pdp1105`, `pdp1120`, `pdp1140`, and `pdp1145`, and replace the absent upstream `check` target with the package smoke phase. No package inputs or propagated inputs are required beyond the compiler/make machinery supplied by the GNU build system; the selected targets link against the normal C runtime and contain no SDL dependency. The upstream default `all` target must not be used: `tv11` is the network-console emulator requiring a PDP-10 peer and listening service, while `xgp11` is the network-console/XGP path and is also the only target that consumes the separately licensed `lodepng` submodule; neither is part of the host PDP-11 CPU deliverable. Install the four resulting native binaries and the parent `LICENSE` under the package documentation directory; do not install or fetch disk images, `mem.txt`, `tv11`, or `xgp11`. No wrapper or dynamic-library runtime setup is needed. Preserve the caller's working directory because upstream resolves `mem.txt` relative to the current directory, `pdp1120` opens `unix1/rf0.dsk`, `unix1/rf1.dsk`, and `unix1/rk0.dsk` with `r+`/`w+`, and `pdp1140` opens `unix6/disk0.rk`, `unix6/disk1.rk`, and `unix6/disk2.rk` likewise; these images and their writable parent directories are user-supplied runtime fixtures, and the emulators also hardcode their console device as `/tmp/tty`. `pdp1145` is the safe noninteractive path: its `main` allocates the microcode state, runs the built-in three-cycle diagnostic trace, and returns zero without network, console, or image inputs. Local channel inspection finds only the already-present `larsbrinkhoff-pdp11-source` preservation package at this revision, not an installed executable package; the 2026-08-14 inventory for GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE likewise found no equivalent package with this upstream origin. Specific implementation acceptance: `guix lint -L. pdp11` and `guix build -L. pdp11` must succeed; the output must contain exactly `pdp1105`, `pdp1120`, `pdp1140`, and `pdp1145` in `bin`; and the package-specific smoke must create a fresh temporary working directory with isolated `HOME`, `XDG_CONFIG_HOME`, `XDG_CACHE_HOME`, and `XDG_STATE_HOME`, run `timeout 10s $out/bin/pdp1145` there, require exit status zero and output markers `T1`, `T5`, and `----------`, and verify that the fixture directory contains no files other than the captured log. This is a research delivery brief, not a claim that Guix build or package proof has already passed. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/51#issuecomment-5412483749). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T15:08:21Z.
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#51
No description provided.