Unblock Fruix checkout runtime on FreeBSD
This commit is contained in:
@@ -1564,3 +1564,54 @@ Current assessment:
|
||||
- first make the upstream-derived checkout runnable on FreeBSD,
|
||||
- then introduce a deliberate `fruix` command boundary,
|
||||
- rather than destabilizing the codebase with a whole-tree `guix`/`gnu` rename too early
|
||||
|
||||
## 2026-04-01 — Phase 5.1 completed: checkout runtime unblocked and first `fruix` frontend boundary established
|
||||
|
||||
Completed work:
|
||||
|
||||
- added a reusable phase-5 checkout setup helper:
|
||||
- `tests/guix/setup-phase5-checkout.sh`
|
||||
- added a checkout runtime patch queue for the upstream-derived source tree:
|
||||
- `tests/guix/patches/phase5-checkout-runtime.patch`
|
||||
- added a FreeBSD daemon/build patch queue needed for later phase-5 work:
|
||||
- `tests/guix/patches/phase5-guix-daemon-freebsd.patch`
|
||||
- added a runtime validation harness:
|
||||
- `tests/guix/run-phase5-checkout-runtime.sh`
|
||||
- wrote the Phase 5.1 report:
|
||||
- `docs/reports/phase5-checkout-runtime-freebsd.md`
|
||||
- ran the runtime harness successfully and captured metadata under:
|
||||
- `/tmp/phase5-runtime-metadata.txt`
|
||||
|
||||
Important findings:
|
||||
|
||||
- the earlier checkout blocker
|
||||
- `./pre-inst-env guix --version`
|
||||
- `Wrong type to apply: #<syntax-transformer leave-on-EPIPE>`
|
||||
is now explained by top-level definition ordering in `guix/ui.scm`:
|
||||
- `show-version-and-exit` called `leave-on-EPIPE` before the syntax transformer was defined later in the file
|
||||
- on this FreeBSD path, that became a runtime application of a syntax-transformer object instead of a macro expansion site
|
||||
- the phase-5 runtime patch fixes this by:
|
||||
- making `(guix ui)` explicitly non-declarative
|
||||
- rewriting `show-version-and-exit` to use direct `catch 'system-error` handling
|
||||
- parameterizing `program-name` in `guix-main`
|
||||
- deriving the top-level version banner name from `program-name`
|
||||
- making `(guix scripts repl)` explicitly non-declarative as well
|
||||
- the checkout now successfully runs the following commands on FreeBSD:
|
||||
- `./pre-inst-env guix --version`
|
||||
- `./pre-inst-env guix repl --help`
|
||||
- `./pre-inst-env guix build --help`
|
||||
- the first user-facing Fruix command boundary is now implemented in the checkout setup via:
|
||||
- `scripts/fruix`
|
||||
as a front-end alias next to `scripts/guix`
|
||||
- observed runtime metadata confirmed:
|
||||
- `first_guix_version_line=guix (GNU Guix) ...`
|
||||
- `first_fruix_version_line=fruix (GNU Guix) ...`
|
||||
- this matches the agreed naming policy:
|
||||
- Fruix at the user-facing boundary
|
||||
- stable upstream-derived internal `guix`/`gnu` names unless there is a concrete reason to rename them
|
||||
|
||||
Current assessment:
|
||||
|
||||
- Phase 5.1 is now satisfied on the current FreeBSD prototype track
|
||||
- the key boundary has shifted from “the checkout still crashes immediately” to “the checkout runs, and can now be used as the basis for real derivation/store experiments”
|
||||
- the next step is to prove that a real derivation can be emitted against `/frx/store` from the now-runnable checkout
|
||||
|
||||
Reference in New Issue
Block a user