gnome onda 3: at-spi2-core SELLADO (b3:33f4a891) y retira el atk suelto que iba a chocar

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) <noreply@anthropic.com>
This commit is contained in:
2026-07-28 06:39:34 -04:00
co-authored by Claude Opus 5
parent 4e9d564b66
commit 92977572a1
4 changed files with 61 additions and 83 deletions
+26 -49
View File
@@ -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",
+34
View File
@@ -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"]
-33
View File
@@ -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"]
+1 -1
View File
@@ -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"]