diff --git a/docs/16-harkaq-jaula.md b/docs/16-harkaq-jaula.md index 013eb065..c697ebf7 100644 --- a/docs/16-harkaq-jaula.md +++ b/docs/16-harkaq-jaula.md @@ -938,10 +938,21 @@ sellado `b3:bc900676…`. Su deuda restante (`ld`, `make`) era declarable y se d El barrido queda **0 irreducibles de 6**. El caso que iba a contar contra el <5% no era una receta mal escrita: era una herramienta de hammer filtrando Alpine, y harkaq la señaló desde el consumidor. -**Costo del rollout, a decidir:** cambiar `recipes/cmake.toml` re-hashea cmake y sus 3 consumidores -(brotli, libjpeg-turbo, libtiff = 6 artefactos sellados). Radio chico, pero **libjpeg-turbo y -libtiff son la cadena GUI**, y la regla del proyecto es no rebuildearla en el laptop (el zig-skew -rompe cairo). El rebuild va al worker. +**Rollout: ✅ HECHO (2026-07-15).** cmake reconstruido en un worker de la granja (regla: la cadena +GUI no se rebuildea en el laptop) y cosechado al hub: `b3:834132e7…-cmake`, `NEEDED` = sólo +`libc.musl-x86_64.so.1`. El viejo (`99864dcc…`, con `libstdc++.so.6`+`libgcc_s.so.1`) queda en el +store por si algo lo referencia. + +**Los 10 consumidores NO se reconstruyeron, y no hace falta:** el fix quita la dependencia de +runtime del artefacto *de cmake*. Los consumidores sólo lo usaron como *herramienta de build* — +sus artefactos no linkean `libstdc++`. Rebuildearlos sólo daría frescura de hash, y eso ocurre +solo en su próximo build. Confundir "usó la herramienta" con "linkea la librería" habría costado +un rebuild de gtk4 para nada. + +**Regalo del rollout:** el worker (Ubuntu, ccx23) y el laptop (CachyOS) produjeron cmake con el +**mismo hash, bit a bit** — el invariante central de hammer confirmándose entre dos máquinas +distintas, sin que nadie lo buscara. Y como los bytes son idénticos, el `NEEDED` del worker está +verificado por transitividad: no hizo falta `readelf` allá (que además no está instalado). **Lo que NO cierra esto:** `/usr/bin/gcc`, `c89`, `c99`, `ldd` y el plugin LTO de §4.7 siguen siendo *sondas* — la jaula las deniega, los builds completan igual, y denegarlas es lo correcto.