[Guix packaging] Interlisp/medley #73
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#73
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
634d092ed802314ada447878418686fbfeeb3048(default-branch snapshot checked 2026-08-14)Scope and blockers
Package the host Medley environment with its free runtime components 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:17:01Z.
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 atgithub.com/Interlisp/maiko@9259716e9a/LICENSEandgithub.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.