system: prototype self-hosted native builds
This commit is contained in:
@@ -42,6 +42,10 @@ Fruix currently has:
|
||||
- real XCP-ng boot of a development-enabled Fruix system
|
||||
- in-guest `buildworld` / `buildkernel`
|
||||
- staged `installworld` / `distribution` / `installkernel`
|
||||
- a validated controlled guest self-hosted native base-build prototype via:
|
||||
- `/usr/local/bin/fruix-self-hosted-native-build`
|
||||
- result roots under `/var/lib/fruix/native-builds`
|
||||
- in-guest source recovery from current-system metadata
|
||||
|
||||
Validated boot modes still are:
|
||||
|
||||
@@ -54,33 +58,32 @@ The validated Phase 18 installation work currently uses:
|
||||
|
||||
## Latest completed achievement
|
||||
|
||||
### 2026-04-05 — Phase 20.2 completed
|
||||
### 2026-04-05 — Phase 20.3 completed
|
||||
|
||||
Fruix now has a validated intermediate path where the host still orchestrates the workflow, but real FreeBSD native base-build work runs inside a booted Fruix-managed FreeBSD guest.
|
||||
Fruix now has a validated first controlled guest self-hosted native base-build prototype, on top of the already validated host-initiated in-guest build path.
|
||||
|
||||
Highlights:
|
||||
|
||||
- development-enabled systems now expose canonical native-build compatibility links at:
|
||||
- `/usr/include -> /run/current-system/development-profile/usr/include`
|
||||
- `/usr/share/mk -> /run/current-system/development-profile/usr/share/mk`
|
||||
- media builder versions were bumped so booted images and future installed targets pick up that rootfs layout change
|
||||
- the validated guest build path now runs real FreeBSD native build steps inside the Fruix-managed guest:
|
||||
- `buildworld`
|
||||
- `buildkernel`
|
||||
- `installworld`
|
||||
- `distribution`
|
||||
- `installkernel`
|
||||
- staged install steps use:
|
||||
- `DB_FROM_SRC=yes`
|
||||
- so the staged install is driven by the declared source tree's account database rather than by the guest's minimal local `/etc` state
|
||||
- the validated result now includes staged native artifact outputs for:
|
||||
- development-enabled systems now ship an in-guest helper at:
|
||||
- `/usr/local/bin/fruix-self-hosted-native-build`
|
||||
- the helper recovers the declared materialized FreeBSD source store from:
|
||||
- `/run/current-system/metadata/store-layout.scm`
|
||||
- the helper records self-hosted build results under:
|
||||
- `/var/lib/fruix/native-builds/<run-id>`
|
||||
- `/var/lib/fruix/native-builds/latest`
|
||||
- heavy object/stage work remains under:
|
||||
- `/var/tmp/fruix-self-hosted-native-builds/<run-id>`
|
||||
- the prototype exposed an important contract detail:
|
||||
- a naive reuse of the development-shell exports polluted `buildworld`
|
||||
- the validated helper therefore sanitizes development-oriented variables such as `MAKEFLAGS`, `CPPFLAGS`, `CFLAGS`, `CXXFLAGS`, and `LDFLAGS` before world/kernel bootstrap
|
||||
- the validated result includes guest-recorded native artifact outputs for:
|
||||
- kernel
|
||||
- bootloader slice
|
||||
- headers / `usr/share/mk`
|
||||
|
||||
Validation:
|
||||
|
||||
- `PASS phase20-host-initiated-native-build-xcpng`
|
||||
- `PASS phase20-self-hosted-native-build-xcpng`
|
||||
|
||||
Reports:
|
||||
|
||||
@@ -88,6 +91,7 @@ Reports:
|
||||
- `docs/GUIX_DIFFERENCES.md`
|
||||
- `docs/reports/phase20-development-environment-freebsd.md`
|
||||
- `docs/reports/phase20-host-initiated-native-builds-freebsd.md`
|
||||
- `docs/reports/phase20-self-hosted-native-builds-freebsd.md`
|
||||
|
||||
## Recent major milestones
|
||||
|
||||
@@ -111,8 +115,11 @@ Reports:
|
||||
|
||||
## Next step
|
||||
|
||||
Per `docs/PLAN_4.md`, the next planned step is:
|
||||
`docs/PLAN_4.md` currently ends at Phase 20.3, and that milestone sequence is now complete.
|
||||
|
||||
- **Phase 20.3** — reassess and potentially prototype guest self-hosted base builds
|
||||
The next practical follow-up is therefore no longer another planned `PLAN_4` phase, but a product decision:
|
||||
|
||||
Phase 20.2 is now complete: Fruix validates host-initiated native FreeBSD base builds running inside the approved real XCP-ng Fruix guest path.
|
||||
- whether to keep the new guest self-hosted helper as a narrow prototype while Phase 20.2 remains the default operator path
|
||||
- or whether to invest in a broader guest-driven Fruix-native native-build workflow
|
||||
|
||||
Phase 20.3 is now complete: Fruix validates a first controlled guest self-hosted native FreeBSD base-build prototype on the approved real XCP-ng path.
|
||||
|
||||
Reference in New Issue
Block a user