gioser

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 1389Shell 137Markdown 80Rust 802602 Definiciones

paso 2 verificado: se hidrata y se mira, no se declara

El criterio de terminado del paso 2 decía «y la imagen los lleva», y eso no se
comprueba declarando. Hidratación real con el orden del ensamblado (busybox
primero, el userland encima, como USERLAND_COMPONENTS): ningún binario de los
declarados lo sigue ganando busybox — grep, sed, find, xargs, diff, cmp, gzip,
zcat, xz, bc, dc, vi, cpio, killall, pstree, fuser y los de coreutils salen todos
del paquete que corresponde.

Y la prueba que faltaba: hidratar la xz canónica ENCIMA de xz-tools —el escenario
que motivó quitarle lib/ e include/ a la variante— deja liblzma.a de la canónica,
usr/bin/xz de la variante, y xz --version sigue contestando. Conviven, que es lo
que la receta afirmaba y ahora está medido en vez de razonado.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

c8fcd04945e77deb11c06c6119cc0f6c70b77d68 · por Sergio · (hace 1 mes) · padre e5485d650 · ver el árbol en este commit

Delta semántico

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

1 archivos · +18 −0

diff --git a/docs/plan-botar-busybox.md b/docs/plan-botar-busybox.md
index 52236dfa..36125147 100644
--- a/docs/plan-botar-busybox.md
+++ b/docs/plan-botar-busybox.md
@@ -1360,3 +1360,21 @@ Recortar otra vez ahora duplica ese trabajo para la granja.
 **El siguiente recorte junta todo lo que ya está decidido y se hace UNA vez:** los 6 de kmod, los 3
 de /dev, y los 6 alias internos de iproute2 (`ipaddr iplink ipneigh iproute iprule iptunnel`, que no
 son comandos de nadie) — **15 applets, 277 → 262**, sin escribir una línea y sin reemplazar nada.
+
+## El paso 2, verificado en una hidratación real (2026-09-22)
+
+El criterio de terminado del paso 2 era «cuando `build-state.py` los marca con perfil **y la imagen
+los lleva**». Lo segundo no se comprueba declarando: se hidrata y se mira. Hecho, con el orden real
+del ensamblado —busybox primero, el userland encima, que es lo que hace `USERLAND_COMPONENTS`:
+
+```
+grep → grep      find → find      diff → diffutils   xz   → xz (xz-tools)
+sed  → sed       xargs → xargs    cmp  → diffutils   bc   → bc      dc → bc
+gzip → gzip      zcat → zcat      vi   → vim         cpio → bsdcpio
+killall/pstree/fuser → psmisc     chmod/uname/id/stat/ls/cat → coreutils (uutils)
+```
+
+**Ningún binario de los declarados lo sigue ganando busybox.** Y la prueba que faltaba: hidratar la
+`xz` canónica ENCIMA de `xz-tools` —el escenario que motivó quitarle `lib/` e `include/` a la
+variante— deja `liblzma.a` de la canónica, `usr/bin/xz` de la variante, y `xz --version` sigue
+contestando. **Conviven**, que es lo que la receta afirmaba y ahora está medido en vez de razonado.