atuq-nested: CAPTURA=<png> — la prueba en el píxel, en una variable
Durante horas dije «mirá tu pantalla» y reporté «el proceso vive» como si fuera lo mismo. No lo es: la ventana estaba ahí desde el principio y lo que fallaba era el branding DENTRO del zip, que ningún log iba a contar. `grim` ya estaba en el corpus (`incoming-wlr`), se hidrata en el mismo rootfs y captura la pantalla real contra el mismo socket wayland desde dentro de la jaula. Ahora es parte del runner: con `CAPTURA=/ruta/foto.png` se lanza atuq, se espera a que pinte y se deja el PNG afuera para mirarlo. De paso, la resolución de raíces prueba el corpus Y `incoming-wlr`, en ese orden — el mismo que usa la resolución de deps (sibling-first, luego el catálogo padre). Sin eso, `grim` no se encontraba y el script habría dicho «falta un artefacto» sobre una receta que existe.
This commit is contained in:
+22
-2
@@ -39,7 +39,12 @@ RAICES="atuq gtk3 atk gdk-pixbuf-shared pango-shared cairo-shared libepoxy glib-
|
||||
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"
|
||||
xkeyboard-config grim"
|
||||
# `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»
|
||||
# y la ventana estaba ahí desde el principio — lo que fallaba era el branding DENTRO del zip.
|
||||
# La receta vive en `recipes/incoming-wlr/grim.toml`; se resuelve más abajo con el resto.
|
||||
# `xkeyboard-config` son DATOS, no una librería, y sin ellos el navegador ni pinta:
|
||||
# xkbcommon: ERROR: failed to add default include path /usr/share/X11/xkb
|
||||
# Es el mismo modo de fallo silencioso que las fuentes: nada en la clausura lo ve venir.
|
||||
@@ -52,7 +57,10 @@ RAICES="atuq gtk3 atk gdk-pixbuf-shared pango-shared cairo-shared libepoxy glib-
|
||||
VIGENTES=""
|
||||
faltan=""
|
||||
for r in $RAICES; do
|
||||
h="$("$H" --store "$STORE" hash "recipes/$r.toml" 2>/dev/null | tail -1 | sed 's/^b3://')"
|
||||
# La receta puede vivir en el corpus o en una cola: `grim` es de `incoming-wlr`. Se prueban las
|
||||
# dos, en ese orden, que es el mismo que usa la resolución de deps (sibling-first, luego padre).
|
||||
rec="recipes/$r.toml"; [ -f "$rec" ] || rec="recipes/incoming-wlr/$r.toml"
|
||||
h="$("$H" --store "$STORE" hash "$rec" 2>/dev/null | tail -1 | sed 's/^b3://')"
|
||||
if [ -z "$h" ] || [ ! -d "$STORE/$h-$r" ]; then faltan="$faltan $r"; continue; fi
|
||||
VIGENTES="$VIGENTES$h-$r
|
||||
"
|
||||
@@ -85,6 +93,7 @@ echo "==> pantalla: $SOCK"
|
||||
exec bwrap --overlay-src "$ALPINE" --overlay-src "$RFS" --tmp-overlay / \
|
||||
--dev-bind /dev /dev --proc /proc --bind /sys /sys --tmpfs /tmp --tmpfs /run \
|
||||
--ro-bind "$SOCK" /run/wayland-0 \
|
||||
--bind "$(dirname "${CAPTURA:-/tmp/atuq-captura.png}")" /salida \
|
||||
--uid 0 --gid 0 \
|
||||
--setenv PATH /usr/bin:/bin:/usr/sbin:/sbin \
|
||||
--setenv LD_LIBRARY_PATH /usr/lib:/lib \
|
||||
@@ -106,5 +115,16 @@ exec bwrap --overlay-src "$ALPINE" --overlay-src "$RFS" --tmp-overlay / \
|
||||
echo "=== ¿vive? ==="
|
||||
if kill -0 $PID 2>/dev/null; then echo " ✓ atuq corriendo (PID $PID) — mirá tu pantalla"; else echo " ✗ murió"; fi
|
||||
echo "=== log ==="; tail -25 /tmp/atuq.log
|
||||
# ── LA PRUEBA EN EL PÍXEL ─────────────────────────────────────────────────────────────────
|
||||
# Un proceso vivo NO es una ventana correcta. Se captura la pantalla entera (grim sin `-o`
|
||||
# compone todas las salidas) y se deja el PNG afuera, para mirarlo de verdad.
|
||||
if [ -n "'"${CAPTURA:-}"'" ]; then
|
||||
sleep 4
|
||||
if grim "/salida/'"$(basename "${CAPTURA:-captura.png}")"'" 2>/dev/null; then
|
||||
echo "captura: $(wc -c < "/salida/'"$(basename "${CAPTURA:-captura.png}")"'") bytes → '"${CAPTURA:-}"'"
|
||||
else
|
||||
echo "captura: grim NO pudo — ¿el compositor expone wlr-screencopy?"
|
||||
fi
|
||||
fi
|
||||
wait $PID 2>/dev/null || true
|
||||
'
|
||||
|
||||
Reference in New Issue
Block a user