atuq-nested: faltaba gcc-libs, y su ausencia hacía MENTIR a la prueba entera
`atuq` declara `NEEDED libstdc++.so.6` y `libgcc_s.so.1` —lo hereda de firefox, que va con clang++ y la libstdc++ COMPARTIDA— y su clausura ya estaba bien: `recipes/atuq.toml` declara `runtime = ["gcc-libs"]` desde5b9777bd, yupana lee `deps.runtime` desde02facebe, y el vigía de sonames da CERO en los cinco perfiles (rehecho hoy: 41/306/190/161/201 nodos, 0 sin proveedor). Lo que estaba mal era el INSTRUMENTO. `atuq-nested.sh` no hidrataba `gcc-libs`, y como la jaula monta `.dev-fs/alpine` como capa de abajo, cada «atuq corre» de estos días resolvió libstdc++ contra el LAB. Corría, sí: en una máquina con Alpine debajo, que es exactamente lo que la distro no es. El artefacto estaba sano y la prueba era ciega — que es peor, porque una prueba ciega dice que sí. Los dos ficheros ni se parecen, así que la duda se resuelve mirando: corpus 20.850.968 bytes lab 2.804.104 bytes Con `gcc-libs` en las raíces, dentro de la jaula se ve el de 20 MB, y `scripts/test-atuq-ruteo.py` vuelve a pasar entero — o sea que el ruteo por contenedor está probado ahora contra la libstdc++ del corpus y no contra la del lab. Queda una dependencia del lab que NO es de esta prueba y está por diseño: el intérprete `/lib/ld-musl-x86_64.so.1`, que ningún artefacto provee y que las imágenes copian del devfs (`scripts/mirada-usb.sh`). De paso, un puntero muerto: las recetas dicen «lo vigila scripts/audit-needed.sh» y ese script lo BORRÓ02facebeal reemplazarlo por el vigía de sonames. Corregido en atuq.toml. Quedan otras siete recetas apuntándole (firefox, waterfox, gcc-libs, mesa-llvmpipe, librsvg, spidermonkey, firefox-instrumentado) y no se tocan desde acá porque son de otro frente. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UgNtJEFetMYbXax5dVUjZZ
This commit is contained in:
+9
-1
@@ -149,7 +149,15 @@ grep -q '^Name=atuq' "$DST/application.ini" || { echo "atuq: application.ini no
|
||||
# `atuq` bajo un sway headless, no leyendo el grafo.
|
||||
# `runtime` NO entra en el ArtifactHash (igual que `license`), así que declararlo NO re-hashea:
|
||||
# lo que cambia es la CLAUSURA, que es lo que se hidrata en la imagen. Lo vigila
|
||||
# `scripts/audit-needed.sh`.
|
||||
# `scripts/vigia-sonames.py`, que entró en el latido en `02facebe` — y NO `scripts/audit-needed.sh`,
|
||||
# que ese mismo commit BORRÓ. Quedan otras siete recetas apuntando al script muerto; no se tocan
|
||||
# desde acá porque son de otro frente.
|
||||
#
|
||||
# ⚠ Y hubo un segundo agujero, en el INSTRUMENTO y no en el artefacto (2026-09-07): la clausura
|
||||
# declaraba bien `gcc-libs`, pero `scripts/atuq-nested.sh` no lo hidrataba, y como la jaula monta
|
||||
# `.dev-fs/alpine` como capa de abajo, cada «atuq corre» de estos días resolvió `libstdc++.so.6`
|
||||
# contra el LAB. Corregido allá. Los dos ficheros ni se parecen —20.850.968 bytes el del corpus,
|
||||
# 2.804.104 el del lab—, así que ante la duda de cuál se cargó, se mira el tamaño.
|
||||
runtime = ["gcc-libs"]
|
||||
# `firefox` como dep de BUILD y no de runtime: su árbol se materializa en el sandbox, se copia
|
||||
# dentro del artefacto de atuq y a partir de ahí atuq no lo necesita más. El precio es que el
|
||||
|
||||
+10
-1
@@ -35,11 +35,20 @@ URL="${URL:-about:support}"
|
||||
# de build— y meterlas engordaría el rootfs sin cambiar nada de lo que se ve.
|
||||
# Las variantes `-shared` y NO las estáticas: en runtime una `.a` no sirve para nada, y son las que
|
||||
# gtk3 declara NEEDED desde que se arregló el cuadro de las dos Pango.
|
||||
RAICES="atuq gtk3 atk gdk-pixbuf-shared pango-shared cairo-shared libepoxy glib-shared pcre2-shared
|
||||
RAICES="atuq gcc-libs gtk3 atk gdk-pixbuf-shared pango-shared cairo-shared libepoxy glib-shared pcre2-shared
|
||||
libffi-shared zlib-shared harfbuzz-shared fribidi freetype-shared fontconfig-shared pixman libpng-shared
|
||||
libjpeg-turbo-shared wayland libxkbcommon mesa libdrm dbus pipewire pulseaudio alsa-lib
|
||||
libxml2-shared dejavu-fonts
|
||||
xkeyboard-config grim"
|
||||
# ⚠ `gcc-libs` FALTABA, y su ausencia hacía MENTIR a esta prueba entera (2026-09-07). `atuq` declara
|
||||
# `NEEDED libstdc++.so.6` y `libgcc_s.so.1` —lo hereda de firefox, que va con clang++ y la libstdc++
|
||||
# COMPARTIDA de Alpine—, y esas dos sólo existían en el lab. Como la jaula monta `.dev-fs/alpine`
|
||||
# como capa de abajo, el navegador arrancaba resolviéndolas contra el LAB y todos decíamos «atuq
|
||||
# corre». Corría, sí: en una máquina con Alpine debajo, que es exactamente lo que la distro no es.
|
||||
# La clausura ya estaba bien —`recipes/atuq.toml` declara `runtime = ["gcc-libs"]` y el vigía de
|
||||
# sonames da CERO—, lo que estaba mal era ESTA lista, o sea el instrumento y no el artefacto.
|
||||
# Se nota a simple vista porque los dos ficheros no se parecen: el del corpus pesa 20.850.968 bytes
|
||||
# y el del lab 2.804.104. Si algún día hay duda de cuál se cargó, se mira el tamaño.
|
||||
# `grim` no lo necesita atuq: lo necesita QUIEN LO MIRA. Con `CAPTURA=<fichero.png>` este script
|
||||
# saca la pantalla real desde dentro de la jaula, contra el mismo socket wayland. Es lo que separó
|
||||
# «el proceso vive» de «la ventana muestra lo que queremos»: durante horas dije «mirá tu pantalla»
|
||||
|
||||
Reference in New Issue
Block a user