tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1574Shell 204Rust 111Markdown 993763 Definiciones

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>

1e0bc98ad4a7bc934275b84f4987bb7d4d2aebc9 · por sergio · (hace 3 meses) · padre ee51e5d59 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +15 −4

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.