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 1572Shell 203Rust 109Markdown 993728 Definitions

lab: musl-libintl — el rootfs traia los runtimes pero no `libintl.h`

Decision del usuario. La reconstruccion en la granja destapo que toda la zona
grafica del corpus muere en cadena con

    /usr/include/glib-2.0/glib/gi18n-lib.h:25:10: fatal error: 'libintl.h' file not found

y con ella gdk-pixbuf, appstream, gjs, gdm, mutter, gnome-shell, wireplumber,
sway, swaybg, swaylock, xdg-desktop-portal... El header no estaba en NINGUNA de
las dos maquinas (labs identicos, mismo sha256), asi que no era divergencia de
worker: era el corpus.

En Alpine `libintl.h` NO lo trae musl-dev: lo trae `musl-libintl`, que es
justo lo que faltaba. Verificado: `checking for libintl.h... yes`, y glib,
python3, meson y el resto de la base ya sellan contra el lab nuevo.

El apk va contra EDGE, que es rodante, asi que lo que importa no es solo que
funcione sino que NO ARRASTRE: el lock del toolchain cambia en UNA linea
(+musl-libintl-1.2.6-r2), ni una version movida. La vez anterior un `apk add`
se llevo de propina ncurses 6.5→6.6 y readline 8.3.1→8.3.3.

Se eligio `musl-libintl` y no `gettext-dev` a proposito: el segundo mete `.pc`
que compiten con los del store en la resolucion de pkg-config, que es
exactamente como freetype autodetecto bzip2 y tumbo fontconfig con 27 recetas
detras. Este no trae ninguno.

`openssl-dev` sigue FUERA, respetando el veto de 6ab29b1: el host-tool del
kernel enlaza el openssl del corpus desde el overlay. python3 sigue sin `_ssl`
⇒ gjs/gdm/spidermonkey siguen cayendo por esa via, que es otro frente.

Coste asumido: el corpus se re-hashea otra vez.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xd5DComN9Nu47TBpYMBHBn

fe9e06de9e16e96617065d44ac5029b2033b2383 · by Sergio · (2 months ago) · parent dba9ec47c · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

2 files · +2 −1

diff --git a/docs/state/lab-toolchain.lock b/docs/state/lab-toolchain.lock
index 5cadec8a..13bc7096 100644
--- a/docs/state/lab-toolchain.lock
+++ b/docs/state/lab-toolchain.lock
@@ -81,6 +81,7 @@ mpc1-1.3.1-r1
 mpfr4-4.2.2-r0
 musl-1.2.6-r2
 musl-dev-1.2.6-r2
+musl-libintl-1.2.6-r2
 musl-utils-1.2.5-r23
 ncurses-dev-6.6_p20260516-r0
 ncurses-terminfo-base-6.6_p20260516-r0
diff --git a/scripts/bootstrap-devfs.sh b/scripts/bootstrap-devfs.sh
index 5e799677..2bef14aa 100755
--- a/scripts/bootstrap-devfs.sh
+++ b/scripts/bootstrap-devfs.sh
@@ -79,7 +79,7 @@ mkdir -p "$DEVFS" "$TOOLS" "$CACHE" "$WORK"
 # `--from-scratch` recupera el camino viejo (minirootfs + apk). Es como se FABRICA una imagen nueva:
 #   ./scripts/bootstrap-devfs.sh --from-scratch && ./scripts/lab-image.sh --crear
 # y después se pinea el sha nuevo acá abajo. Reconstruir el corpus es el precio de ese cambio.
-LAB_IMAGE_SHA256="${LAB_IMAGE_SHA256:-3c9c1ef3e88a3fea998e6a7ec036d7a573359f8d1c464565f9773a0f19aa1fff}"
+LAB_IMAGE_SHA256="${LAB_IMAGE_SHA256:-8ae9792aa66477457bf2f69287838fb68707964904a81e5f70d08feed9ec9ca2}"
 
 if [[ $FROM_SCRATCH -eq 0 ]] && [[ ! -f "$ROOTFS/bin/busybox" ]]; then
     log "rootfs: trayendo la imagen pineada del lab"