Clarify transitional FreeBSD base package boundary
This commit is contained in:
@@ -2810,3 +2810,67 @@ Next recommended step:
|
||||
1. complete Phase 12.3 by making the host-staged FreeBSD base boundary explicit in the package/model layer and docs
|
||||
2. document the first intended replacement order for native world/kernel work
|
||||
3. then begin Phase 13 with a clearer transitional boundary
|
||||
|
||||
## 2026-04-02 — Phase 12.3: made the host-staged FreeBSD base boundary explicit
|
||||
|
||||
Completed work:
|
||||
|
||||
- wrote the Phase 12.3 report:
|
||||
- `docs/reports/phase12-host-staged-base-boundary-freebsd.md`
|
||||
- refined `modules/fruix/packages/freebsd.scm` so the transitional host-copy base boundary is now explicit in the package/model layer
|
||||
- added and exported named transitional package sets:
|
||||
- `%freebsd-host-staged-all-packages`
|
||||
- `%freebsd-host-staged-core-packages`
|
||||
- `%freebsd-host-staged-development-profile-packages`
|
||||
- `%freebsd-host-staged-system-packages`
|
||||
- added and exported:
|
||||
- `freebsd-host-staged-package?`
|
||||
- `%freebsd-host-staged-replacement-order`
|
||||
- preserved compatibility aliases so existing callers still work:
|
||||
- `%freebsd-core-packages`
|
||||
- `%freebsd-development-profile-packages`
|
||||
- `%freebsd-system-packages`
|
||||
- encoded the intended first replacement order for native base-build work directly in the package layer:
|
||||
1. `freebsd-kernel`, `freebsd-bootloader`
|
||||
2. `freebsd-runtime`, `freebsd-libc`, `freebsd-userland`, `freebsd-rc-scripts`
|
||||
3. `freebsd-networking`, `freebsd-openssh`
|
||||
4. `freebsd-kernel-headers`, `freebsd-clang-toolchain`
|
||||
5. `freebsd-gmake`, `freebsd-autotools`, `freebsd-openssl`, `freebsd-zlib`, `freebsd-sh`, `freebsd-bash`
|
||||
- updated `modules/fruix/system/freebsd.scm` so the generated closure metadata now carries this boundary information too:
|
||||
- `metadata/store-layout.scm` now includes:
|
||||
- `host-base-stores`
|
||||
- `fruix-runtime-stores`
|
||||
- `host-base-replacement-order`
|
||||
- `init-mode`
|
||||
|
||||
Validation:
|
||||
|
||||
- confirmed package-layer behavior directly with Guile:
|
||||
- `(freebsd-host-staged-package? freebsd-runtime)` => `#t`
|
||||
- `%freebsd-host-staged-replacement-order` prints the expected staged replacement order
|
||||
- `tests/system/run-phase7-system-closure.sh` still passes after the package-layer clarification:
|
||||
- workdir: `/tmp/phase12-3-closure-1775162784`
|
||||
- inspected generated closure metadata file:
|
||||
- `/frx/store/25ae9bb85da60b8c77971325e0e11d5390a064132a35e1bab0866cabb802a606-fruix-system-fruix-freebsd/metadata/store-layout.scm`
|
||||
- confirmed it now includes:
|
||||
- `host-base-stores`
|
||||
- `fruix-runtime-stores`
|
||||
- `host-base-replacement-order`
|
||||
|
||||
Important findings:
|
||||
|
||||
- the current host-staged FreeBSD base model is no longer just an implicit fact of the implementation; it is now named and documented as a transitional boundary
|
||||
- preserving compatibility aliases means the current working system model does not need a broad rename/refactor just to make that boundary explicit
|
||||
- encoding the replacement order directly in the package/model layer gives Phase 13 a clearer starting point for native `world`/`kernel` work
|
||||
|
||||
Current assessment:
|
||||
|
||||
- Phase 12 is now complete
|
||||
- the current Fruix pipeline is better documented, easier to diagnose, less noisy at runtime, and clearer about what remains transitional in the FreeBSD base layer
|
||||
- this is a good stopping point before beginning native FreeBSD base-build artifacts in `/frx/store`
|
||||
|
||||
Next recommended step:
|
||||
|
||||
1. begin Phase 13.1 by modeling FreeBSD `world` and `kernel` as Fruix-managed build artifacts rather than host-copy packages
|
||||
2. use `/usr/src` as the initial source of truth on the builder side
|
||||
3. target the first bootable replacement for the current host-staged kernel and core runtime path
|
||||
|
||||
Reference in New Issue
Block a user