From 1e0bc98ad4a7bc934275b84f4987bb7d4d2aebc9 Mon Sep 17 00:00:00 2001 From: sergio Date: Wed, 15 Jul 2026 20:53:11 -0400 Subject: [PATCH] =?UTF-8?q?matar=20gcc:=20rollout=20de=20cmake=20HECHO=20e?= =?UTF-8?q?n=20la=20granja=20=E2=80=94=20y=20los=20consumidores=20no=20hac?= =?UTF-8?q?=C3=ADan=20falta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- docs/16-harkaq-jaula.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) 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.