diff --git a/recipes/atuq.toml b/recipes/atuq.toml index 2c3aa36e..08d1d721 100644 --- a/recipes/atuq.toml +++ b/recipes/atuq.toml @@ -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 diff --git a/scripts/atuq-nested.sh b/scripts/atuq-nested.sh index af4deb8f..89e8dc5a 100755 --- a/scripts/atuq-nested.sh +++ b/scripts/atuq-nested.sh @@ -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=` 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»