Materialize FreeBSD source inputs
This commit is contained in:
@@ -1,5 +1,76 @@
|
||||
# Progress
|
||||
|
||||
## 2026-04-03 — Phase 16.2 completed: Fruix now materializes FreeBSD source inputs under its control
|
||||
|
||||
Completed work:
|
||||
|
||||
- added a new exported source materializer in `modules/fruix/system/freebsd.scm`:
|
||||
- `materialize-freebsd-source`
|
||||
- added cache-backed materialization for source kinds:
|
||||
- `local-tree`
|
||||
- `git`
|
||||
- `src-txz`
|
||||
- added cache locations under:
|
||||
- `/frx/var/cache/fruix/freebsd-source/git`
|
||||
- `/frx/var/cache/fruix/freebsd-source/archives`
|
||||
- materialized source outputs now live in `/frx/store` as:
|
||||
- `*-freebsd-source-*`
|
||||
- each materialized source now records:
|
||||
- declared source
|
||||
- effective/resolved source
|
||||
- source store path
|
||||
- effective source root
|
||||
- source tree sha256
|
||||
- cache path
|
||||
- added automatic effective-root detection so archive-backed sources that unpack as `usr/src/...` are still usable later:
|
||||
- Git exports use `.../tree`
|
||||
- `src.txz` archives use `.../tree/usr/src`
|
||||
- added a new user-facing CLI path in `scripts/fruix.scm`:
|
||||
- `fruix source materialize SOURCE-FILE`
|
||||
- new source command options:
|
||||
- `--source NAME`
|
||||
- `--store DIR`
|
||||
- `--cache DIR`
|
||||
- `--help`
|
||||
- source CLI now emits machine-readable metadata for:
|
||||
- declared source fields
|
||||
- materialized store path/root
|
||||
- source tree hash
|
||||
- cache path
|
||||
- resolved Git commit
|
||||
- verified archive sha256
|
||||
- tightened `src-txz` validation so materialization now requires:
|
||||
- URL
|
||||
- sha256
|
||||
- added validation artifacts:
|
||||
- `tests/system/phase16-git-freebsd-source.scm.in`
|
||||
- `tests/system/phase16-txz-freebsd-source.scm.in`
|
||||
- `tests/system/run-phase16-source-materialization.sh`
|
||||
- wrote:
|
||||
- `docs/reports/phase16-source-materialization-freebsd.md`
|
||||
|
||||
Validation:
|
||||
|
||||
- `PASS phase16-source-materialization`
|
||||
- `PASS phase16-declarative-source-build`
|
||||
- verified Git source fetch/materialization from:
|
||||
- `https://git.FreeBSD.org/src.git`
|
||||
- ref: `stable/15`
|
||||
- resolved commit during validation:
|
||||
- `332708a606f6bf0841c1d4a74c0d067f5640fe89`
|
||||
- verified canonical release archive fetch/materialization from:
|
||||
- `https://download.freebsd.org/releases/amd64/15.0-RELEASE/src.txz`
|
||||
- sha256:
|
||||
- `83c3e8157b6d7afcae57167fda75693bf1e5f581ca149a6ecb2d398b71bdfab0`
|
||||
- verified repeated materialization returns stable store paths for both the Git and `src.txz` cases
|
||||
|
||||
Current assessment:
|
||||
|
||||
- Phase 16.2 is complete
|
||||
- Fruix can now fetch or materialize declared FreeBSD source trees into `/frx/store` with cache-backed provenance under `/frx/var/cache/fruix/freebsd-source`
|
||||
- the next step is Phase 16.3:
|
||||
- teach native FreeBSD kernel/world/runtime builds to consume these materialized source artifacts instead of ambient `/usr/src`
|
||||
|
||||
## 2026-04-03 — Phase 16.1 completed: FreeBSD source inputs are now explicit Fruix objects
|
||||
|
||||
Completed work:
|
||||
|
||||
Reference in New Issue
Block a user