diff --git a/recipes/atk.toml b/recipes/atk.toml index 43ff64a8..c89824ee 100644 --- a/recipes/atk.toml +++ b/recipes/atk.toml @@ -41,4 +41,20 @@ compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output" install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild" [deps] -build = ["meson", "samurai", "python3", "pkgconf", "glib", "pcre2", "libffi", "zlib"] +# ══ LAS VARIANTES `-shared`, Y NO LAS ESTÁTICAS — MEDIDO EL 2026-09-05 ═════════════════════════ +# `atk` produce un OBJETO COMPARTIDO (`libatk-1.0.so`). Con la glib estática, el enlazador absorbe +# GObject ENTERO dentro de esa `.so`, y entonces todo proceso que cargue atk y libgobject a la vez +# tiene DOS sistemas de tipos de GObject compitiendo. No es teoría: así murió el primer atuq que se +# intentó abrir, y el síntoma no nombra a atk por ningún lado — +# +# GLib-GObject-CRITICAL: cannot register existing type 'gpointer' +# … 45 líneas … Segmentation fault (exit 139) +# +# Se encontró midiendo, no leyendo: `nm -D --defined-only` sobre cada `.so` del rootfs buscando +# quién DEFINE `g_type_register_static`. Salieron dos: `libgobject-2.0.so` (que debe) y +# `libatk-1.0.so` (que no). +# +# Es la regla que el corpus ya tenía escrita desde GTK4: las deps de una `.so` van a las variantes +# `-shared` **en lugar de** las estáticas, jamás junto a ellas (las dos instalan los mismos `.pc` y +# cabeceras, así que declarar ambas son dos artefactos peleando por el mismo fichero). +build = ["meson", "samurai", "python3", "pkgconf", "glib-shared", "pcre2-shared", "libffi-shared", "zlib-shared"]