[Guix packaging] larsbrinkhoff/fmacs #43

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

Candidate

  • Upstream canonical URL: https://github.com/larsbrinkhoff/fmacs
  • Source pinned commit/release when known: e1564eaa0035de0529821ccf70269965d5dbd4cf (default-branch snapshot checked 2026-08-14)
  • Target concrete installed deliverable: fmacs standalone Forth block editor
  • Primary category: terminal-application
  • Tags: terminal-ui, text-editor
  • Primary language normalized: Forth
  • Build system: gnu-build-system with custom make phase
  • SPDX expression: GPL-3.0-only
  • License status: confirmed-free
  • License evidence: The upstream LICENSE/COPYING was previously inspected at the pinned snapshot and identifies GPL-3.0-only.
  • Difficulty: hard — The build and runtime depend on lbForth, requiring a reproducible bootstrap/load-path arrangement.
  • 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 fmacs with a wrapper that locates lbForth and its sources.

Acceptance checks

  • guix lint -L. <package-name> and guix build -L. <package-name> pass once a package definition exists.
  • Launch fmacs against a temporary block file in a pseudo-TTY.

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

## Candidate - Upstream canonical URL: https://github.com/larsbrinkhoff/fmacs - Source pinned commit/release when known: `e1564eaa0035de0529821ccf70269965d5dbd4cf` (default-branch snapshot checked 2026-08-14) - Target concrete installed deliverable: fmacs standalone Forth block editor - Primary category: terminal-application - Tags: terminal-ui, text-editor - Primary language normalized: Forth - Build system: gnu-build-system with custom make phase - SPDX expression: GPL-3.0-only - License status: confirmed-free - License evidence: The upstream LICENSE/COPYING was previously inspected at the pinned snapshot and identifies GPL-3.0-only. - Difficulty: hard — The build and runtime depend on lbForth, requiring a reproducible bootstrap/load-path arrangement. - 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 fmacs with a wrapper that locates lbForth and its sources. ## Acceptance checks - `guix lint -L. <package-name>` and `guix build -L. <package-name>` pass once a package definition exists. - Launch fmacs against a temporary block file in a pseudo-TTY. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/43). Originally posted by [htayj](https://github.com/htayj) on 2026-08-14T13:16:37Z.
htayj commented 2026-08-25 13:08:29 +00:00 (Migrated from github.com)

Goocastle recorded disposition: blocked.

Canonical upstream is https://github.com/larsbrinkhoff/fmacs at fixed commit e1564eaa0035de0529821ccf70269965d5dbd4cf; it has no release, and its LICENSE identifies GPL-3.0-only. The pinned Makefile/build.fth can technically produce an x86/Linux standalone image only by running lbForth's forth against its lib/src/targets tree; the upstream README says fmacs only runs in lbForth. The local channel has source snapshots for fmacs, lbForth, and the metacompiler but no equivalent installable fmacs or lbForth package, and read-only guix search found no such package. The required lbForth revision 912433b150b64252070116a5fd5c1a29ff29b26d is GPL-3.0 and its INSTALL requires GCC with C headers, GNU make, and a Lisp compiler, but its .gitmodules pins the bootstrap submodule https://github.com/larsbrinkhoff/forth-metacompiler to 40b99c09628f616d94649009ba9894340088d77c. The exact forth-metacompiler tree contains only .gitattributes, .gitignore, README, lisp.sh, meta.lisp, and words.lisp: it has no LICENSE/COPYING or explicit redistribution grant, and the local channel records that snapshot with its no-permission marker. That required bootstrap source is therefore not legally cleared for an unattended Guix source/native input or published package. Separately, the pinned fmacs README states that C-x C-f is a stub and does not load a file, so the literal acceptance check to launch against a temporary block file has no supported upstream behavior. Unblock only when upstream supplies an explicit license covering forth-metacompiler commit 40b99c09628f616d94649009ba9894340088d77c or a clear-license replacement bootstrap source is fixed, and the acceptance is revised to a scratch-buffer PTY smoke or upstream adds fixed-source block-file loading. After those conditions, implement tay/packages/fmacs.scm with gnu-build-system and custom phases, exact fmacs/lbForth/metacompiler revisions, native inputs for a Lisp compiler, GCC toolchain, GNU make, and grep/coreutils, stage the metacompiler at lbForth/lisp, build the x86 Linux image with a fixed lbForth sysdir, install the standalone image plus a wrapper that resolves the packaged lbForth forth and source tree, and smoke it in an isolated PTY with a temporary block fixture; do not treat that plan as package proof.


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

<!-- goocastle-disposition:sequential-reviewer:43:1:blocked --> Goocastle recorded disposition: blocked. Canonical upstream is https://github.com/larsbrinkhoff/fmacs at fixed commit e1564eaa0035de0529821ccf70269965d5dbd4cf; it has no release, and its LICENSE identifies GPL-3.0-only. The pinned Makefile/build.fth can technically produce an x86/Linux standalone image only by running lbForth's forth against its lib/src/targets tree; the upstream README says fmacs only runs in lbForth. The local channel has source snapshots for fmacs, lbForth, and the metacompiler but no equivalent installable fmacs or lbForth package, and read-only guix search found no such package. The required lbForth revision 912433b150b64252070116a5fd5c1a29ff29b26d is GPL-3.0 and its INSTALL requires GCC with C headers, GNU make, and a Lisp compiler, but its .gitmodules pins the bootstrap submodule https://github.com/larsbrinkhoff/forth-metacompiler to 40b99c09628f616d94649009ba9894340088d77c. The exact forth-metacompiler tree contains only .gitattributes, .gitignore, README, lisp.sh, meta.lisp, and words.lisp: it has no LICENSE/COPYING or explicit redistribution grant, and the local channel records that snapshot with its no-permission marker. That required bootstrap source is therefore not legally cleared for an unattended Guix source/native input or published package. Separately, the pinned fmacs README states that C-x C-f is a stub and does not load a file, so the literal acceptance check to launch against a temporary block file has no supported upstream behavior. Unblock only when upstream supplies an explicit license covering forth-metacompiler commit 40b99c09628f616d94649009ba9894340088d77c or a clear-license replacement bootstrap source is fixed, and the acceptance is revised to a scratch-buffer PTY smoke or upstream adds fixed-source block-file loading. After those conditions, implement tay/packages/fmacs.scm with gnu-build-system and custom phases, exact fmacs/lbForth/metacompiler revisions, native inputs for a Lisp compiler, GCC toolchain, GNU make, and grep/coreutils, stage the metacompiler at lbForth/lisp, build the x86 Linux image with a fixed lbForth sysdir, install the standalone image plus a wrapper that resolves the packaged lbForth forth and source tree, and smoke it in an isolated PTY with a temporary block fixture; do not treat that plan as package proof. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/43#issuecomment-5410834336). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T13:08:29Z.
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#43
No description provided.