2.7 KiB
2.7 KiB
Phase 6.1: Real FreeBSD-backed package build into /frx/store
Date: 2026-04-01
Summary
This step moves beyond the Phase 5 minimal custom derivation path and validates a real package definition derived from Guix's hello package through the live Fruix/Guix checkout, daemon, and /frx/store path on FreeBSD.
Added file:
tests/guix/run-phase6-real-package-build.sh
Validation command
Run command:
METADATA_OUT=/tmp/phase6-real-package-metadata.txt \
./tests/guix/run-phase6-real-package-build.sh
What the harness does
The harness:
- reuses the patched Phase 5 checkout/runtime setup
- fetches GNU Hello
2.12.3and verifies the expected SHA256 - starts the patched daemon on a temporary Unix socket
- generates a package file that inherits from Guix's real
hellopackage definition - replaces the source with a prefetched local tarball store item to avoid the still-unresolved built-in downloader/root path on FreeBSD
- lowers that package through a tiny FreeBSD host build system and invokes it through:
./pre-inst-env fruix build -f ...
- validates the built result in
/frx/store - queries the daemon for direct references of the output path
Observed results
Observed metadata included:
drv_path=/frx/store/...-hello-2.12.3.drvout_path=/frx/store/...-hello-2.12.3source_store_path=/frx/store/...-hello-2.12.3.tar.gzruntime_output=Hello, world!frontend_invocation=./pre-inst-env fruix build -f ...
The direct references query included both:
- the built output path itself
- the source tarball store item recorded by the build output metadata
Important findings
- this is the first validated
fruix build-style package build on the current FreeBSD track that lands a real package output in/frx/store - the package definition was not invented from scratch; it inherits from the real Guix
hellopackage and only swaps in a FreeBSD-specific build-system path plus a prefetched source item - the live daemon/store path is now strong enough to materialize and execute a genuine package output rather than only the earlier minimal derivation-backed probes
- the built-in downloader path is still not ready for this FreeBSD/root daemon flow, so Phase 6.1 currently uses a prefetched local tarball to isolate the package-build boundary from that separate runtime issue
Conclusion
Phase 6.1 is satisfied on the current FreeBSD prototype track:
- a real package definition derived from Guix's
hellopackage builds successfully through the Fruix/Guix checkout and daemon path - the output lands in
/frx/store - the package runs successfully from the store
- the output preserves a declared source reference that can be queried through the daemon