Validate real FreeBSD package builds
This commit is contained in:
@@ -1723,3 +1723,34 @@ Next recommended step:
|
||||
- Fruix at the product boundary
|
||||
- `/frx` as the canonical store root
|
||||
- stable upstream-derived internal names unless there is strong architectural value in renaming them
|
||||
|
||||
## 2026-04-01 — Phase 6.1 completed: real package build validated into `/frx/store`
|
||||
|
||||
Completed work:
|
||||
|
||||
- added a runnable real-package harness:
|
||||
- `tests/guix/run-phase6-real-package-build.sh`
|
||||
- wrote the Phase 6.1 report:
|
||||
- `docs/reports/phase6-real-package-build-freebsd.md`
|
||||
- ran the real-package harness successfully and captured metadata under:
|
||||
- `/tmp/phase6-real-package-metadata.txt`
|
||||
|
||||
Important findings:
|
||||
|
||||
- the checkout can now build a real package definition derived from Guix's `hello` package through:
|
||||
- `./pre-inst-env fruix build -f ...`
|
||||
- the FreeBSD-aware daemon
|
||||
- `/frx/store`
|
||||
- this moves the project beyond the deliberately minimal Phase 5 custom derivation path and into a real package-definition flow
|
||||
- the current successful path still uses a prefetched local GNU Hello tarball as the package source because the built-in downloader path remains a separate unresolved FreeBSD/root-daemon issue
|
||||
- observed metadata confirmed:
|
||||
- `drv_path=/frx/store/...-hello-2.12.3.drv`
|
||||
- `out_path=/frx/store/...-hello-2.12.3`
|
||||
- `source_store_path=/frx/store/...-hello-2.12.3.tar.gz`
|
||||
- `runtime_output=Hello, world!`
|
||||
- a daemon-side references query confirmed that the built output preserved the declared source store item as a direct reference
|
||||
|
||||
Current assessment:
|
||||
|
||||
- Phase 6.1 is now satisfied on the current FreeBSD prototype track
|
||||
- the next step is to move the already validated jail/build-user model into this live package-build path rather than keeping it prototype-only
|
||||
|
||||
65
docs/reports/phase6-real-package-build-freebsd.md
Normal file
65
docs/reports/phase6-real-package-build-freebsd.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# 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:
|
||||
|
||||
```sh
|
||||
METADATA_OUT=/tmp/phase6-real-package-metadata.txt \
|
||||
./tests/guix/run-phase6-real-package-build.sh
|
||||
```
|
||||
|
||||
## What the harness does
|
||||
|
||||
The harness:
|
||||
|
||||
1. reuses the patched Phase 5 checkout/runtime setup
|
||||
2. fetches GNU Hello `2.12.3` and verifies the expected SHA256
|
||||
3. starts the patched daemon on a temporary Unix socket
|
||||
4. generates a package file that inherits from Guix's real `hello` package definition
|
||||
5. replaces the source with a prefetched local tarball store item to avoid the still-unresolved built-in downloader/root path on FreeBSD
|
||||
6. lowers that package through a tiny FreeBSD host build system and invokes it through:
|
||||
- `./pre-inst-env fruix build -f ...`
|
||||
7. validates the built result in `/frx/store`
|
||||
8. queries the daemon for direct references of the output path
|
||||
|
||||
## Observed results
|
||||
|
||||
Observed metadata included:
|
||||
|
||||
- `drv_path=/frx/store/...-hello-2.12.3.drv`
|
||||
- `out_path=/frx/store/...-hello-2.12.3`
|
||||
- `source_store_path=/frx/store/...-hello-2.12.3.tar.gz`
|
||||
- `runtime_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 `hello` package 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 `hello` package 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
|
||||
Reference in New Issue
Block a user