Implement researched Guix package outcome for #73: [Guix packaging] Interlisp/medley #623
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#623
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?
Context
This delivery ticket was created from research issue #73 ([Guix packaging] Interlisp/medley).
The host-validated research finding follows:
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.Acceptance criteria
Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-26T09:02:41Z.
Blocked by the authoritative safe-package proof.
guix build -L . --no-grafts interlisp-medleybuilds Maiko successfully, starts the private Xvfb loadup, then Medley crashes duringloadup-initwith*Error* Segmentation fault at address (nil). Its error path then attemptsfreopen("/dev/tty", ...), which is unavailable in Guix builders. A writable build-only HOME was verified and committed (a54ddc4) but does not resolve the underlying loadup crash.The signed implementation branch is preserved at
goocastle/sequential-reviewer/issue-623-1787779436251-1; future work needs an upstream-compatible noninteractive loadup strategy or a source-level fix for the crash before this package can be delivered.Imported from GitHub comment. Originally posted by htayj on 2026-08-26T22:15:49Z.
Goocastle blocked this legacy delivery issue because its per-issue runtime contract is not safely derivable.
Workflow:
guix-package-quality-gatesContract file:
.goocastle/runtime-evidence-contracts.jsonIssue body digest:
23e1154b73c9a7d7760dba305ea47884056615d1f5e3d44e2e9708ecd6b59c20Bounded audit evidence:
Manual repair: review the original handoff, add only exact package/runtime/artifact values to the named contract file, commit it, then rerun
goocastle audit-runtime-contracts --writeandgoocastle explain-readiness ISSUEbefore restoringready-for-agent.Imported from GitHub comment. Originally posted by htayj on 2026-08-29T22:07:51Z.