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…

jaula: el envoltorio de bwrap entra al generador, no a mano

La jaula viva pierde el CONTENIDO de /usr/bin y /bin — pasó dos veces el
2026-10-20 — y el síntoma no se parece a la causa: `ls /usr/bin | wc -l` da 0
mientras `/bin/bash --version` funciona, o sea que el readdir devuelve vacío y
el lookup por nombre sigue resolviendo. Lo que ya estaba en uso anda; lo que hay
que buscar por PATH, no.

Con eso se va el bwrap de la imagen y `takana build` muere con «spawn bwrap: No
such file or directory», que se lee como un takana roto. No falta nada:
bubblewrap está en el store y el binario del store aísla de verdad (comprobado
con --unshare-pid). Falta el camino — misma figura que el GIT_EXEC_PATH de este
mismo guion.

Va en el generador y no a mano en /work/sergio/bin porque un arreglo que vive
fuera del repo se pierde al rehacer la jaula, que es lo que pasó con los
symlinks de work_root el 21-sep.

9b5861d815cfb08418773920067400bd11f9aa66 · por Sergio · (hace 1 d) · padre 5bc7f7aea · ver el árbol en este commit

Delta semántico

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

1 archivos · +24 −0

diff --git a/scripts/servidor/jaula-herramientas.sh b/scripts/servidor/jaula-herramientas.sh
index a6eb90a7..09ece565 100755
--- a/scripts/servidor/jaula-herramientas.sh
+++ b/scripts/servidor/jaula-herramientas.sh
@@ -153,6 +153,30 @@ done
 # porque la ruta está horneada), sólo que acá lo que falta no es el cargador: es un directorio.
 envoltorio git git 'export GIT_EXEC_PATH="$b/usr/libexec/git-core"'
 
+# ── `bwrap` aparte: NO ES UNA COMODIDAD, ES LA RECUPERACIÓN DE UNA JAULA A MEDIAS ───────────────
+# Los demás envoltorios de este guion existen para traer una herramienta buena del corpus. Éste
+# existe porque **la jaula viva pierde el CONTENIDO de `/usr/bin` y `/bin`** — pasó dos veces el
+# 2026-10-20 — y el síntoma no se parece en nada a la causa:
+#
+#     ls /usr/bin | wc -l   ⇒ 0        pero  /bin/bash --version  ⇒ FUNCIONA
+#
+# O sea que el `readdir` devuelve vacío y el `lookup` por nombre sigue resolviendo: lo que ya estaba
+# en uso anda, y lo que hay que buscar por `PATH` no. Con eso se va el `bwrap` de la imagen, y
+# entonces `takana build` muere así:
+#
+#     Error: spawn bwrap: No such file or directory (os error 2)
+#
+# que se lee como un takana roto o un paquete que falta. **No falta nada**: `bubblewrap` está en el
+# store, sellado, y el binario del store aísla de verdad (comprobado con `--unshare-pid`). Lo que
+# falta es el camino hasta él — misma figura que el `GIT_EXEC_PATH` de arriba, donde el git del
+# corpus SÍ traía sus ayudantes. *Antes de creer que falta un paquete, comprobar si lo que falta es
+# el camino.*
+#
+# Va acá, en el generador, y no a mano en `/work/sergio/bin`: un arreglo que vive fuera del repo se
+# pierde al rehacer la jaula, que es exactamente lo que pasó con los symlinks de `work_root` el
+# 21-sep. Un arreglo que hay que recordar no es un arreglo.
+envoltorio bwrap bwrap ':'
+
 
 # `python3` y `cargo` no llevan banderas; `rustc` sí — son las tres que necesita el enlace en este
 # triple, las mismas que `cc-por-zig.sh` pone en la caja. `link-self-contained=no` porque este