diff --git a/docs/plan-freebsd-aprovechables.md b/docs/plan-freebsd-aprovechables.md index ca07d815..daa44bb2 100644 --- a/docs/plan-freebsd-aprovechables.md +++ b/docs/plan-freebsd-aprovechables.md @@ -52,6 +52,25 @@ accesos condicionales entre corridas (mitigación: la poda sugiere, nunca aplica contrato que suggest). Piloto: 3 recetas ya instrumentadas (zlib, tar, brotli), en el worker (el laptop no compila C). +**PILOTO MEDIDO (2026-07-17, worker, builds reales de zlib-ng y dwarves):** + +1. **Ceguera-overlay — el hallazgo que corrige el diseño.** `FAN_MARK_FILESYSTEM` sobre el + fs del host (donde vive el store) NO ve los reads que el build hace a través del + `--tmp-overlay` del sandbox: el superbloque del overlay es OTRO, y overlayfs abre los + lower por dentro sin fsnotify en el sb de abajo. Medido: build completo de zlib-ng con + traza sobre el store = **0 eventos**; los binds sí aparecen (206 eventos de `/src` vía + `work/sources`, mismo sb) e incluso los reads host-side de hammer (`recipes/*.toml` al + resolver deps — la traza ya sirve para auditar el hub). +2. **La salida, validada**: marcar `--fs /proc//root` — el magic-link cruza al + mount-ns y la marca cae sobre el SB DEL OVERLAY. Test sintético en el worker (overlay en + mntns aparte, lector externo): la lectura del lower a través del overlay **aparece** en + la traza. Bonus: los paths salen EN EL NAMESPACE DEL SANDBOX (`/usr/include/zlib.h`) — + el mismo idioma de la política harkaq, sin traducción host↔jaula. Cero código nuevo: + `harkaq-trace --fs /proc/$PID/root --prefix /usr`. +3. **Pendiente de orquestación**: alguien tiene que darle al tracer el pid del bwrap en + vuelo (wrapper sobre `hammer build`, o hammerd). Ese es el siguiente paso de T1.1, y + donde toca coordinar con el harness (carril de Opus) para no duplicar lanzadores. + --- ## 2. Capsicum / casper → la taxonomía del cierre §3 (política runtime) diff --git a/recipes/dwarves.toml b/recipes/dwarves.toml index 0d5cf53a..9b0215ae 100644 --- a/recipes/dwarves.toml +++ b/recipes/dwarves.toml @@ -11,8 +11,13 @@ # libbpf EMBEBIDO (-DLIBBPF_EMBEDDED=ON, el default del tarball que vendorea libbpf): evita # una receta libbpf aparte hoy; si libbpf entra al catálogo por otro frente, se despega. # -# PENDIENTE construir en el WORKER (el laptop no compila recetas C). sha256 verificado del -# tarball de fedorapeople 2026-07-17. Deps reales: libdw de elfutils + zlib (ambas selladas). +# BLOQUEADA (intento real en worker 2026-07-17): el cmake no halla libdw/dwarf.h porque el +# artefacto sellado de elfutils sólo empaqueta LIBELF (headers + .a/.so — lo que kbuild +# necesita), no libdw. Y elfutils.toml es INTOCABLE: es build-dep de los kernels sellados +# (linux.toml load-bearing del selfhost-verify). Destrabar = receta variante +# `elfutils-libdw` (elfutils completo, que en musl arrastra shims argp/fts/obstack — los +# parches de Alpine) que SÓLO dwarves consuma. Es un sub-proyecto de la cola clib, no un +# retoque de flags. sha256 del tarball verificado (fedorapeople 2026-07-17). name = "dwarves" version = "1.30" diff --git a/tandas/planes-freebsd-2.txt b/tandas/planes-freebsd-2.txt index 1a9f9556..2098fa96 100644 --- a/tandas/planes-freebsd-2.txt +++ b/tandas/planes-freebsd-2.txt @@ -1,7 +1,7 @@ # planes-freebsd-2 — segunda cola worker de los planes (2026-07-17) -# zlib-ng: veredicto T5 de plan-variantes-cpu (dispatch runtime > variantes); modo compat, -# NO reemplaza a zlib.toml — entra al catálogo para medir y adoptar por consumidor. -# dwarves: pahole, destraba sched-ext (plan-jaula-juegos T1.2); el kernel NO lo declara aún -# (falta el análisis de repro de BTF/pahole-skew). +# zlib-ng: ✅ SELLADA (b3:93d1da8a…, 1er intento, build trazado del piloto T1; cosechada al +# laptop). Veredicto T5: dispatch runtime > variantes; ZLIB_COMPAT, zlib.toml intocada. +# dwarves: ⛔ BLOQUEADA — elfutils sellado sólo trae libelf, no libdw; destrabar = receta +# `elfutils-libdw` (musl: shims argp/fts/obstack, parches Alpine) para la cola clib. +# Detalle en el comentario de recipes/dwarves.toml. zlib-ng -dwarves