[Guix packaging] Interlisp/medley #73

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

Candidate

  • Upstream canonical URL: https://github.com/Interlisp/medley
  • Source pinned commit/release when known: 634d092ed802314ada447878418686fbfeeb3048 (default-branch snapshot checked 2026-08-14)
  • Target concrete installed deliverable: Medley Interlisp environment
  • Primary category: emulator
  • Tags: common-lisp, historical-computing, lisp-machine
  • Primary language normalized: Common Lisp
  • Build system: custom build system with Maiko VM dependency
  • SPDX expression: MIT
  • License status: declared-free
  • License evidence: GitHub repository metadata declares MIT; the upstream license text still needs package-review confirmation.
  • Difficulty: hard — The environment depends on a separate VM/build pipeline and has a large historical asset/runtime boundary.
  • 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

Package the host Medley environment with its free runtime components only.

Acceptance checks

  • guix lint -L. <package-name> and guix build -L. <package-name> pass once a package definition exists.
  • Start the local interpreter with a temporary user directory and no network.

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

## Candidate - Upstream canonical URL: https://github.com/Interlisp/medley - Source pinned commit/release when known: `634d092ed802314ada447878418686fbfeeb3048` (default-branch snapshot checked 2026-08-14) - Target concrete installed deliverable: Medley Interlisp environment - Primary category: emulator - Tags: common-lisp, historical-computing, lisp-machine - Primary language normalized: Common Lisp - Build system: custom build system with Maiko VM dependency - SPDX expression: MIT - License status: declared-free - License evidence: GitHub repository metadata declares MIT; the upstream license text still needs package-review confirmation. - Difficulty: hard — The environment depends on a separate VM/build pipeline and has a large historical asset/runtime boundary. - 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 Package the host Medley environment with its free runtime components only. ## Acceptance checks - `guix lint -L. <package-name>` and `guix build -L. <package-name>` pass once a package definition exists. - Start the local interpreter with a temporary user directory and no network. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/73). Originally posted by [htayj](https://github.com/htayj) on 2026-08-14T13:17:01Z.
htayj commented 2026-08-26 09:02:45 +00:00 (Migrated from github.com)

Goocastle recorded disposition: implementation-ready.

Created implementation ticket: #623.

Package name should be interlisp-medley in a new tay/packages/interlisp-medley.scm module. Canonical upstream is https://github.com/Interlisp/medley; use the fixed Medley tag medley-260810-634d092e_260319-9259716e and commit 634d092ed802314ada447878418686fbfeeb3048, with git-fetch recursive hash 1d3dmhwcbwqi060679a9dsxsw45r37ppjskfn3a6n8d61h83bl95. Its required VM is the independently fetched canonical origin https://github.com/Interlisp/maiko at fixed tag maiko-260319-9259716e and commit 9259716e9a797fefcdb59b6418b00f434c48dc40, with recursive hash 1sd8w4rfjmc485qkg8jm0qv7hfcfy6nvxaa240sin03fjb1w7992. These are the only two independently fetched source origins: both exact trees have no gitlink entries and Medley has an empty .gitmodules file; do not fetch LOOPS, Notecards, or the apps-stage Notecards origin. Revision-specific license evidence is Medley LICENSE at github.com/Interlisp/medley@634d092ed8/LICENSE, which is an explicit MIT grant naming Interlisp.org and acknowledging Xerox, Venue, John Sybalsky, and other contributors, and Maiko LICENSE plus NOTICE at github.com/Interlisp/maiko@9259716e9a/LICENSE and github.com/Interlisp/maiko@9259716e9a/NOTICE, where the NOTICE explicitly grants permission from the Venue-rights holder to release Venue works under MIT. Maiko bin/config.guess and bin/config.sub at that same fixed revision carry the FSF GPLv3 plus Autoconf exception and are build-only. The source is legally packageable only with historical notices preserved and with the free runtime scope kept narrow: include Medley source/runtime trees needed by full.sysout, clos, rooms, greetfiles, scripts, library, lispusers, sources, internal runtime files, loadups/full.sysout and loadups/lisp.sysout, fonts/medleydisplayfonts, fonts/postscriptfonts/c0, and unicode/xerox text mappings; omit unicode/vendors, unicode/eastasia, unicode/iso8859, optional/random font trees, the unknown-provenance unicode/xerox XCCStoUni binary and Xerox PDF, and Maiko legacy/proprietary build metadata such as bin/copyright. The Apple and IBM Unicode readmes provide no permissive redistribution grant, but those trees are not needed by the default full loadup; do not copy them. Install both upstream license files and the Maiko NOTICE, while retaining file-level historical copyright notices in shipped source/assets. Local coverage contains only the non-executable interlisp-medley-source copy snapshot in tay/packages/starred-i-m.scm; the local channel and the supplied coverage review found no equivalent installable package. Use gnu-build-system for the top-level custom pipeline, a fixed Maiko origin input, and fixed Medley git-fetch source. Build Maiko first with cmake and ninja using MAIKO_DISPLAY_X11=ON, MAIKO_DISPLAY_SDL=OFF, MAIKO_NETWORK_TYPE=NONE, gcc-toolchain, cmake, ninja, pkg-config, libbsd, libx11, and the required shell tools; stage lde, ldex, ldeinit under a Maiko tree containing linux.x86_64 and bin/osversion plus bin/machinetype. The source BUILDING.md and loadup scripts establish the source-build path: run Xvfb on a private display with -nolisten tcp, set DISPLAY, MAIKODIR, and a writable LOADUP_OUTDIR, then run scripts/loadups/loadup-all.sh -f -d to execute the starter.sysout bootstrap through ldeinit and produce full.sysout; do not run the apps target because it requires the omitted Notecards origin, and do not fetch anything during build. Install a read-only Medley tree below libexec/medley with the generated loadups and required assets, install Maiko below libexec/maiko, and provide bin/medley that sets or passes MEDLEYDIR to libexec/medley and --maikodir to libexec/maiko before execing scripts/medley/medley.command --full. The launcher must leave HOME and LOGINDIR user-controlled so upstream creates writable per-user il/vmem state, must work with an existing X display, and must not enable Maiko networking. Specific smoke proof: in a network-disabled test environment create a temporary HOME and REM.CM containing a sentinel print followed by IL:LOGOUT T 0, start Xvfb :99 -screen 0 1024x768x24 -nolisten tcp, invoke bin/medley with DISPLAY=:99, --config -, --full, --greet -, --id guix-smoke, --logindir /il, and the absolute REM.CM path, then require exit status 0, the sentinel in the captured output/dribble, and creation of the run's lisp_guix-smoke.virtualmem under the temporary user directory; this proves the installed wrapper selects full.sysout, Maiko, local runtime assets, and writable user state without network. Acceptance is guix lint -L. interlisp-medley followed by guix build -L. interlisp-medley and the isolated smoke above. Those commands were not run here and are not package proof because the workspace lacks /var/guix/daemon-socket/socket; this is an implementation brief, not a claim that the package already exists or passes.


Imported from GitHub comment. Originally posted by htayj on 2026-08-26T09:02:45Z.

<!-- goocastle-disposition:sequential-reviewer:73:1:implementation-ready --> Goocastle recorded disposition: implementation-ready. Created implementation ticket: #623. Package name should be interlisp-medley in a new tay/packages/interlisp-medley.scm module. Canonical upstream is https://github.com/Interlisp/medley; use the fixed Medley tag medley-260810-634d092e_260319-9259716e and commit 634d092ed802314ada447878418686fbfeeb3048, with git-fetch recursive hash 1d3dmhwcbwqi060679a9dsxsw45r37ppjskfn3a6n8d61h83bl95. Its required VM is the independently fetched canonical origin https://github.com/Interlisp/maiko at fixed tag maiko-260319-9259716e and commit 9259716e9a797fefcdb59b6418b00f434c48dc40, with recursive hash 1sd8w4rfjmc485qkg8jm0qv7hfcfy6nvxaa240sin03fjb1w7992. These are the only two independently fetched source origins: both exact trees have no gitlink entries and Medley has an empty .gitmodules file; do not fetch LOOPS, Notecards, or the apps-stage Notecards origin. Revision-specific license evidence is Medley LICENSE at https://github.com/Interlisp/medley/blob/634d092ed802314ada447878418686fbfeeb3048/LICENSE, which is an explicit MIT grant naming Interlisp.org and acknowledging Xerox, Venue, John Sybalsky, and other contributors, and Maiko LICENSE plus NOTICE at https://github.com/Interlisp/maiko/blob/9259716e9a797fefcdb59b6418b00f434c48dc40/LICENSE and https://github.com/Interlisp/maiko/blob/9259716e9a797fefcdb59b6418b00f434c48dc40/NOTICE, where the NOTICE explicitly grants permission from the Venue-rights holder to release Venue works under MIT. Maiko bin/config.guess and bin/config.sub at that same fixed revision carry the FSF GPLv3 plus Autoconf exception and are build-only. The source is legally packageable only with historical notices preserved and with the free runtime scope kept narrow: include Medley source/runtime trees needed by full.sysout, clos, rooms, greetfiles, scripts, library, lispusers, sources, internal runtime files, loadups/full.sysout and loadups/lisp.sysout, fonts/medleydisplayfonts, fonts/postscriptfonts/c0, and unicode/xerox text mappings; omit unicode/vendors, unicode/eastasia, unicode/iso8859, optional/random font trees, the unknown-provenance unicode/xerox XCCStoUni binary and Xerox PDF, and Maiko legacy/proprietary build metadata such as bin/copyright. The Apple and IBM Unicode readmes provide no permissive redistribution grant, but those trees are not needed by the default full loadup; do not copy them. Install both upstream license files and the Maiko NOTICE, while retaining file-level historical copyright notices in shipped source/assets. Local coverage contains only the non-executable interlisp-medley-source copy snapshot in tay/packages/starred-i-m.scm; the local channel and the supplied coverage review found no equivalent installable package. Use gnu-build-system for the top-level custom pipeline, a fixed Maiko origin input, and fixed Medley git-fetch source. Build Maiko first with cmake and ninja using MAIKO_DISPLAY_X11=ON, MAIKO_DISPLAY_SDL=OFF, MAIKO_NETWORK_TYPE=NONE, gcc-toolchain, cmake, ninja, pkg-config, libbsd, libx11, and the required shell tools; stage lde, ldex, ldeinit under a Maiko tree containing linux.x86_64 and bin/osversion plus bin/machinetype. The source BUILDING.md and loadup scripts establish the source-build path: run Xvfb on a private display with -nolisten tcp, set DISPLAY, MAIKODIR, and a writable LOADUP_OUTDIR, then run scripts/loadups/loadup-all.sh -f -d <staged-maiko> to execute the starter.sysout bootstrap through ldeinit and produce full.sysout; do not run the apps target because it requires the omitted Notecards origin, and do not fetch anything during build. Install a read-only Medley tree below libexec/medley with the generated loadups and required assets, install Maiko below libexec/maiko, and provide bin/medley that sets or passes MEDLEYDIR to libexec/medley and --maikodir to libexec/maiko before execing scripts/medley/medley.command --full. The launcher must leave HOME and LOGINDIR user-controlled so upstream creates writable per-user il/vmem state, must work with an existing X display, and must not enable Maiko networking. Specific smoke proof: in a network-disabled test environment create a temporary HOME and REM.CM containing a sentinel print followed by IL:LOGOUT T 0, start Xvfb :99 -screen 0 1024x768x24 -nolisten tcp, invoke bin/medley with DISPLAY=:99, --config -, --full, --greet -, --id guix-smoke, --logindir <temporary-home>/il, and the absolute REM.CM path, then require exit status 0, the sentinel in the captured output/dribble, and creation of the run's lisp_guix-smoke.virtualmem under the temporary user directory; this proves the installed wrapper selects full.sysout, Maiko, local runtime assets, and writable user state without network. Acceptance is guix lint -L. interlisp-medley followed by guix build -L. interlisp-medley and the isolated smoke above. Those commands were not run here and are not package proof because the workspace lacks /var/guix/daemon-socket/socket; this is an implementation brief, not a claim that the package already exists or passes. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/73#issuecomment-5423020227). Originally posted by [htayj](https://github.com/htayj) on 2026-08-26T09:02:45Z.
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#73
No description provided.