From 9e3d6862ca9fa1e1c9d7fede0251de3c6e72e9c2 Mon Sep 17 00:00:00 2001 From: Sergio Date: Thu, 11 Jun 2026 20:58:51 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20runbook=20=C2=A78c=20=E2=80=94=20store?= =?UTF-8?q?=20refrescado=20a=20baseline=204/4=20+=20builder=20listo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refresca los 4 componentes (musl, busybox, hammerd, arje-zero — éste re-vendorea el monorepo) con el toolchain baseline en un store limpio y lo promueve a ./store (el nativo queda en store-native-bak, gitignored). arje-zero baseline difiere del nativo ⇒ el fix -mcpu=baseline alcanza también al monorepo. Referencia CPU-independiente full-4/4: of_tree(stage1)= b3:198f209f5e2c9d3a37411823b2ea42a09074d4e482f044278958b1b86f232dbb (rootfs key b3:2bd7c91b…, idéntico al del preseed-nativo: el cambio de bytes de arje no movió su key of_inputs — la escotilla C.2 de nuevo). Builder re-ensamblado con ese toolchain + hammer baseline + --ref-content 198f209f (embebida en /etc/hammer/rebuild.env) y repackado a work/builder.cpio.gz (415 MB, 27027 entradas, --owner=root:root). Queda listo para bootear: adentro rebuild-stage1 debe reproducir 198f209f ⇒ ✓ REPRODUCIBLE cerraría el auto-alojamiento 4/4 bit a bit. .gitignore: ignora /store-*/ (stores scratch/backup) — evita commitear el store. Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitignore | 1 + docs/runbooks/stage1-vm-boot.md | 23 ++++++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) 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`