diff --git a/.gitignore b/.gitignore index 6a210252..2fa9b573 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ Cargo.lock.orig # hammer local state (never commit the store, build work tree o runtime state) /store/ +/store-*/ /var/ /.dev-fs/ /work/ diff --git a/docs/runbooks/stage1-vm-boot.md b/docs/runbooks/stage1-vm-boot.md index 03bb30ed..16a50c51 100644 --- a/docs/runbooks/stage1-vm-boot.md +++ b/docs/runbooks/stage1-vm-boot.md @@ -404,11 +404,24 @@ cierra de paso el AVX/SIGILL del §7 (el binario corre en qemu64 sin `-cpu Broad que el default NO era baseline) y **los 3 componentes rebuildan limpio** (`stage1 rc=0`). Nueva referencia **CPU-independiente**: `of_tree(stage1-baseline)=b3:4408e44e2ec51c3769deffcd64dd1f6c2010d414418937c3fa7930a0ded3f845` (con musl `57b66a2e`+busybox `56664d70`+arje `bd0f8475`+hammerd `d08fd273`, todos baseline salvo arje -que quedó preseed nativo). **Próxima iteración:** re-correr el builder con el toolchain baseline y -verificar que el rebuild in-VM de `hammerd` reproduce `4408e44e…` (✓); para el **4/4** pleno, -rebuild baseline también de arje-zero. Nota de fondo (plan C.2): el flag de CPU **no** entra hoy en -`of_inputs`, así que un cambio de toolchain/flags da cache-hit con bytes viejos — la misma tensión -"pin de toolchain al hash" que conviene cerrar para que Stage 2 no dependa de borrar el store a mano. +que quedó preseed nativo). Nota de fondo (plan C.2): el flag de CPU **no** entra hoy en `of_inputs`, +así que un cambio de toolchain/flags da cache-hit con bytes viejos — la misma tensión "pin de +toolchain al hash" que conviene cerrar para que Stage 2 no dependa de borrar el store a mano (por eso +el refresh de abajo borró los artefactos viejos a mano antes de reconstruir). + +**Store refrescado a baseline 4/4 + builder listo (2026-06-11).** Se reconstruyeron los **4** +componentes con el toolchain baseline (incluido `arje-zero`, que re-vendorea el monorepo) en un store +limpio, y se promovió a `./store` (el nativo quedó en `store-native-bak`). `arje-zero` baseline +**difiere** del nativo (char 25) ⇒ baseline aplicado. Referencia **CPU-independiente full-4/4**: +`of_tree(stage1)=b3:198f209f5e2c9d3a37411823b2ea42a09074d4e482f044278958b1b86f232dbb` +(rootfs key `b3:2bd7c91b…`; nótese que el key `of_inputs` es **idéntico** al del preseed-nativo — +el cambio de bytes de arje no movió su key: la misma escotilla C.2). El builder se re-ensambló con +ese toolchain + el `hammer` baseline + `--ref-content 198f209f…` (embebida en +`/etc/hammer/rebuild.env`) y se repackó **`work/builder.cpio.gz`** (415 MB, 27 027 entradas, +`--owner=root:root`). **Listo para bootear:** `scripts/boot-builder-vm.sh` (o `work/drive-rebuild.py` +no-interactivo) → adentro `rebuild-stage1` debe reproducir **`198f209f…`** ⇒ **✓ REPRODUCIBLE** +cerraría el auto-alojamiento **4/4** bit a bit. Bajo TCG es lento y la RAM va justa; el veredicto +pleno gana con **KVM + más RAM** (y boot desde disco). ## 9. Cross-check opcional — `arje-packager`