matar gcc: rollout de cmake HECHO en la granja — y los consumidores no hacían falta

cmake reconstruido en un worker efímero (regla: la cadena GUI no se rebuildea en
el laptop, el zig-skew rompe cairo) 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 pasa solo en su próximo build. Confundir "usó
la herramienta" con "linkea la librería" habría costado un rebuild de gtk4 para
nada. (Yo mismo había propuesto los 11; el radio real es 1.)

REGALO DEL ROLLOUT: el worker (Ubuntu 24.04, 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 queda verificado por transitividad: no
hizo falta readelf allá (que además no está instalado en la golden).

Limpieza: removido store/834132e7…-cmake-nogcc (mi artefacto experimental).
harkaq-suggest INDEXA el store, así que un artefacto huérfano aparecería como
"proveedor" de paths y ensuciaría los diagnósticos.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-15 20:53:11 -04:00
co-authored by Claude Opus 4.8
parent ee51e5d596
commit 1e0bc98ad4
+15 -4
View File
@@ -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.