From 92977572a1ab57cfdc53280a97ecbc0027686509 Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 28 Jul 2026 06:39:34 -0400 Subject: [PATCH] gnome onda 3: at-spi2-core SELLADO (b3:33f4a891) y retira el atk suelto que iba a chocar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Segunda de la cima. Da atk.pc, atk-bridge-2.0.pc y atspi-2.pc + los typelibs Atk-1.0 y Atspi-2.0. gnome-shell la exige por atk-bridge-2.0 (meson.build:71). El choque que atk.toml anticipaba se confirmó: el tarball de at-spi2-core trae `atk/` adentro e instala su propio atk-1.0. Dos recetas con el mismo .pc se pisan en el sandbox, y NO era hipotético: el cierre de gnome-shell contiene a las dos, porque mutter es dep suya. Se retira atk.toml y at-spi2-core queda como único proveedor — que es lo que hace upstream desde 2.51.90. Medido antes de tocar, con `yupana radio atk`: 1 dependiente directo (mutter), 0 sellados que caigan a deuda. mutter repuntado a at-spi2-core llega EXACTAMENTE al mismo muro de logind, sin ninguno nuevo. DBus-1.0.gir lo pedía el scanner y ya lo provee gi-foreign-girs (no hizo falta receta nueva). Co-Authored-By: Claude Opus 5 (1M context) --- docs/state/build-state-gnome.json | 75 ++++++++---------------- recipes/incoming-gnome/at-spi2-core.toml | 34 +++++++++++ recipes/incoming-gnome/atk.toml | 33 ----------- recipes/incoming-gnome/mutter.toml | 2 +- 4 files changed, 61 insertions(+), 83 deletions(-) create mode 100644 recipes/incoming-gnome/at-spi2-core.toml delete mode 100644 recipes/incoming-gnome/atk.toml diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json index 6835f889..b18c699d 100644 --- a/docs/state/build-state-gnome.json +++ b/docs/state/build-state-gnome.json @@ -1,14 +1,14 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 809, - "nodes": 809, - "sealed": 799, + "recipes": 808, + "nodes": 808, + "sealed": 798, "never": 8, "debt": 2 }, "by_class": { - "c": 175, + "c": 174, "go": 362, "gui": 40, "kernel": 6, @@ -26,7 +26,7 @@ "debt": 2 }, "incoming-gnome": { - "sealed": 41, + "sealed": 40, "never": 6 } }, @@ -43,8 +43,8 @@ }, "escritorio-gnome": { "raices": 9, - "clausura": 96, - "sealed": 90, + "clausura": 97, + "sealed": 91, "never": 6 }, "escritorio-mirada": { @@ -54,7 +54,7 @@ "debt": 2 } }, - "sin_perfil": 650, + "sin_perfil": 649, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -603,9 +603,11 @@ "hash": "b3:33f4a8911658c210c3d8c43374d63060655a239b9c3ae23debfeca80db010daa", "state": "sealed", "blocked_by": [], - "unblocks": 0, - "perfiles": [], - "dependientes_total": 0 + "unblocks": 1, + "perfiles": [ + "escritorio-gnome" + ], + "dependientes_total": 1 }, "atac": { "iname": "atac", @@ -622,32 +624,6 @@ "perfiles": [], "dependientes_total": 0 }, - "atk": { - "iname": "atk", - "version": "2.38.0", - "link": "static", - "compiler": "zig-cc", - "deps": [ - "meson", - "samurai", - "python3", - "pkgconf", - "glib", - "libffi", - "pcre2", - "zlib" - ], - "cls": "c", - "queue": "incoming-gnome", - "hash": "b3:506acb8940c119f84461722591e031b5db3f1de2d0b2d46060b3dcf1ac756029", - "state": "sealed", - "blocked_by": [], - "unblocks": 1, - "perfiles": [ - "escritorio-gnome" - ], - "dependientes_total": 1 - }, "atlantis": { "iname": "atlantis", "version": "0.44.0", @@ -2783,7 +2759,8 @@ "unblocks": 0, "perfiles": [ "base", - "cli" + "cli", + "escritorio-gnome" ], "dependientes_total": 2 }, @@ -4748,7 +4725,7 @@ "perfiles": [ "escritorio-gnome" ], - "dependientes_total": 25 + "dependientes_total": 24 }, "glib-introspected": { "iname": "glib-introspected", @@ -4967,7 +4944,7 @@ ], "cls": "gui", "queue": "incoming-gnome", - "hash": "b3:514266ce96a20b8fce66b47caa4e5dc09e7d3c83456b0fce2eab8fd7fa96a69a", + "hash": "b3:a05d532a7eb3dda88cef65eb238f2c1d9579541d8c0de0f589e0abb1e72bd32b", "state": "never", "blocked_by": [ "mutter" @@ -8272,7 +8249,7 @@ "escritorio-kde", "escritorio-mirada" ], - "dependientes_total": 74 + "dependientes_total": 73 }, "libgcrypt": { "iname": "libgcrypt", @@ -9466,7 +9443,7 @@ "escritorio-kde", "escritorio-mirada" ], - "dependientes_total": 87 + "dependientes_total": 86 }, "micro": { "iname": "micro", @@ -9857,10 +9834,10 @@ "libtiff", "fontconfig", "json-glib", - "atk", "lcms2", "libdisplay-info", "hwdata", + "at-spi2-core", "colord", "libgudev", "libudev-zero", @@ -9876,7 +9853,7 @@ ], "cls": "c", "queue": "incoming-gnome", - "hash": "b3:590449288ebc80117f983579ebb736a174482910a72a6135d7c2b84a31ca4e13", + "hash": "b3:e9751b1ef57f68e374a34c4fec57eafa6f5db8bfad944a60957eb7896a12ac50", "state": "never", "blocked_by": [], "unblocks": 1, @@ -10763,7 +10740,7 @@ "escritorio-gnome", "escritorio-kde" ], - "dependientes_total": 60 + "dependientes_total": 59 }, "peco": { "iname": "peco", @@ -10946,7 +10923,7 @@ "escritorio-kde", "escritorio-mirada" ], - "dependientes_total": 302 + "dependientes_total": 301 }, "plow": { "iname": "plow", @@ -11322,7 +11299,7 @@ "escritorio-kde", "escritorio-mirada" ], - "dependientes_total": 245 + "dependientes_total": 244 }, "qrcp": { "iname": "qrcp", @@ -11868,7 +11845,7 @@ "escritorio-kde", "escritorio-mirada" ], - "dependientes_total": 219 + "dependientes_total": 218 }, "sassc": { "iname": "sassc", @@ -14625,7 +14602,7 @@ "escritorio-kde", "escritorio-mirada" ], - "dependientes_total": 98 + "dependientes_total": 97 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/recipes/incoming-gnome/at-spi2-core.toml b/recipes/incoming-gnome/at-spi2-core.toml new file mode 100644 index 00000000..a58f838d --- /dev/null +++ b/recipes/incoming-gnome/at-spi2-core.toml @@ -0,0 +1,34 @@ +# at-spi2-core 2.58.7 — el bus de accesibilidad (AT-SPI2) MÁS el ATK fundido adentro. +# gnome-shell la exige por `atk-bridge-2.0` (meson.build:71), el puente que publica el árbol de +# accesibilidad de una app en el bus. +# +# ⚠ REEMPLAZA A LA RECETA `atk` SUELTA, no convive con ella. El comentario de atk.toml anticipaba +# este choque y acá se confirmó: el tarball trae `atk/` adentro e instala su propio atk-1.0. Dos +# recetas que instalan el mismo .pc se pisan en el sandbox, y el cierre de gnome-shell contiene a +# las dos (mutter es dep suya), así que no es hipotético. Se retira `atk.toml` y este pasa a ser el +# único proveedor de ATK — que además es lo que hace upstream desde 2.51.90. +# +# Feature-minimal: x11 disabled (Wayland-only), use_systemd=false (arje-zero es PID1), +# gtk2_atk_adaptor=false (GTK2 no existe acá), docs off. introspection SÍ: gnome-shell importa el +# árbol de accesibilidad desde JS y mutter necesita el atk.pc de acá. +# +# ISLA DINÁMICA: produce .so con GObject ⇒ glib dinámica, un solo registro de GType. +name = "at-spi2-core" +version = "2.58.7" + +[source] +tarball = "https://download.gnome.org/sources/at-spi2-core/2.58/at-spi2-core-2.58.7.tar.xz" +sha256 = "62d2ba47f014e58522e86162eeb57f44b21077112139cfd61ab4c34b027f3f6f" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "dynamic" + +[build.phases] +configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Ddefault_library=shared -Dx11=disabled -Duse_systemd=false -Dgtk2_atk_adaptor=false -Ddocs=false -Dintrospection=enabled -Dc_args=-Wno-error=date-time" +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", "gettext-tiny", "py3-setuptools", "gi-foreign-girs", "gobject-introspection", "glib", "glib-introspected", "dbus", "libxml2", "libffi", "pcre2", "zlib"] diff --git a/recipes/incoming-gnome/atk.toml b/recipes/incoming-gnome/atk.toml deleted file mode 100644 index 67d3c29c..00000000 --- a/recipes/incoming-gnome/atk.toml +++ /dev/null @@ -1,33 +0,0 @@ -# atk 2.38.0 — el toolkit de accesibilidad de GNOME (interfaces AtkObject/AtkText que un lector de -# pantalla consulta). mutter la exige por pkg-config sin perilla que la apague (meson.build:127): -# Clutter expone su árbol de accesibilidad vía Cally, y Cally habla ATK. -# -# 2.38.0 es la ÚLTIMA release independiente: upstream archivó el repo de atk y fundió el código -# dentro de at-spi2-core (2.51.90+). Se autora suelta a propósito — es glib y nada más, mientras que -# at-spi2-core arrastra dbus y el bus de accesibilidad entero, que mutter no necesita para enlazar. -# ⚠ CUANDO ENTRE at-spi2-core (lo pide gnome-shell): las versiones fundidas TAMBIÉN instalan -# atk-1.0.pc y libatk-1.0 — dos recetas que instalan el mismo .pc chocan. Al llegar ahí, o se -# construye at-spi2-core en una versión anterior a la fusión, o esta receta se retira y su lugar lo -# ocupa el atk que venga adentro. Decisión de esa onda, no de ésta. -# -# Feature-minimal: introspection=false (mutter la enlaza en C; el typelib Atk-1.0 sólo haría falta si -# algo lo pidiera desde gjs — y ahí valdría la regla de la isla dinámica). docs off. -name = "atk" -version = "2.38.0" - -[source] -tarball = "https://download.gnome.org/sources/atk/2.38/atk-2.38.0.tar.xz" -sha256 = "ac4de2a4ef4bd5665052952fe169657e65e895c5057dffb3c2a810f6191a0c36" - -[build] -compiler = "zig-cc" -target = "x86_64-linux-musl" -link = "static" - -[build.phases] -configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dintrospection=false -Ddocs=false -Dc_args=-Wno-error=date-time" -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", "libffi", "pcre2", "zlib"] diff --git a/recipes/incoming-gnome/mutter.toml b/recipes/incoming-gnome/mutter.toml index 11c3dd0f..69532715 100644 --- a/recipes/incoming-gnome/mutter.toml +++ b/recipes/incoming-gnome/mutter.toml @@ -33,4 +33,4 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins # libgudev, libwacom — device/tablet. # sysprof-capture — opcional (profiler=false lo evita). [deps] -build = ["meson", "samurai", "python3", "pkgconf", "gobject-introspection", "gsettings-desktop-schemas", "gnome-desktop", "glib", "gtk4", "graphene", "wayland", "wayland-protocols", "libinput", "libxkbcommon", "cairo", "pango", "gdk-pixbuf", "mesa", "libdrm", "libepoxy", "pixman", "harfbuzz", "fribidi", "libpng", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "fontconfig", "json-glib", "atk", "lcms2", "libdisplay-info", "hwdata", "colord", "libgudev", "libudev-zero", "libgusb", "libusb", "sqlite", "gettext-tiny", "libei", "libevdev", "xkeyboard-config", "iso-codes", "libseccomp"] +build = ["meson", "samurai", "python3", "pkgconf", "gobject-introspection", "gsettings-desktop-schemas", "gnome-desktop", "glib", "gtk4", "graphene", "wayland", "wayland-protocols", "libinput", "libxkbcommon", "cairo", "pango", "gdk-pixbuf", "mesa", "libdrm", "libepoxy", "pixman", "harfbuzz", "fribidi", "libpng", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "fontconfig", "json-glib", "lcms2", "libdisplay-info", "hwdata", "at-spi2-core", "colord", "libgudev", "libudev-zero", "libgusb", "libusb", "sqlite", "gettext-tiny", "libei", "libevdev", "xkeyboard-config", "iso-codes", "libseccomp"]