diff --git a/recipes/wlr-randr.toml b/recipes/wlr-randr.toml index d3b281ee..b59b5448 100644 --- a/recipes/wlr-randr.toml +++ b/recipes/wlr-randr.toml @@ -47,5 +47,20 @@ compile = "ninja -C output" install = "DESTDIR=/out ninja -C output install" [deps] -build = ["meson", "samurai", "pkgconf", "wayland"] +# `python3` es OBLIGATORIO aunque no lo parezca: **meson es un script de Python**, no un binario. +# Sin él la fase configure muere con `exec: line 2: python3: not found` y **exit 127** — que se lee +# como «meson no está» cuando meson SÍ está (su artefacto se hidrata bien; lo que falta es el +# intérprete). Diagnosticado en el worker el 2026-08-07: gtk4, libadwaita y gtksourceview construyen +# ahí sin problema **precisamente porque sí declaran python3**, y ésta no lo hacía. +# ⇒ Regla: toda receta con meson en `[deps].build` necesita python3 al lado. +# El arreglo es hidratar la dep, NO instalar python3 en el rootfs del worker: engordar el rootfs +# haría que el build dependa de qué hay en una máquina concreta, que es justo lo que rompe la +# reproducibilidad (ver la nota `rootfs-laptop-worker-divergen`). +# +# `libffi` NO lo usa wlr-randr: lo exige `wayland-client.pc` en su línea `Requires`, y pkgconf +# resuelve el grafo de .pc COMPLETO antes de dar un cflag. O sea que falta la dep de la dep. Es el +# patrón ya documentado `.pc Requires` → `[deps].build` (nota `etapa-g-gui-chain-boundary`): el +# síntoma es «Package 'libffi', required by 'wayland-client', not found», que se lee como un problema +# de wayland y no lo es. +build = ["meson", "samurai", "python3", "pkgconf", "wayland", "libffi"] run = ["wayland"]