gnome onda 3: atk SELLADO + mutter feature-minimal + colord medido hasta su muro real

atk (b3:506acb89): mutter la exige sin perilla (meson.build:127) porque Cally, la
accesibilidad de Clutter, habla ATK. 2.38.0 es la última release independiente —
después upstream la fundió en at-spi2-core. Se autora suelta a propósito: es glib y
nada más, mientras at-spi2-core arrastra dbus y el bus de accesibilidad entero.
Queda escrito en la receta el choque futuro: cuando entre at-spi2-core (lo pide
gnome-shell) las dos instalan atk-1.0.pc.

mutter: -Dremote_desktop=false mata pipewire Y libei de un saque; también x11, glx,
libwacom, sound_player, startup_notification y sm apagados. Con atk+json-glib+lcms2+
libdisplay-info declaradas, el configure avanza hasta colord.

colord: receta escrita y medida. El comentario que yo mismo puse (que -Ddaemon=false
adelgazaría las deps) es FALSO y queda corregido en la receta: en 1.4.7 el bloque de
dependency() es de nivel superior, sin `if daemon`. Pide sqlite3 (ya estaba, declarada),
gusb, gudev-1.0 y libudev. Faltan tres ⇒ la próxima tanda es libusb → libgusb + libgudev,
y libgudev no se paga sólo por colord: mutter la exige por su opción udev, la del
backend nativo KMS.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-27 19:28:15 -04:00
co-authored by Claude Opus 5
parent 8bc349afa9
commit 64bc2bade0
4 changed files with 185 additions and 46 deletions
+109 -44
View File
@@ -1,21 +1,21 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 800,
"nodes": 800,
"sealed": 790,
"never": 8,
"recipes": 802,
"nodes": 802,
"sealed": 791,
"never": 9,
"debt": 2
},
"by_class": {
"c": 166,
"c": 168,
"go": 362,
"gui": 40,
"kernel": 6,
"rust": 226
},
"debt_by_class": {
"c": 4,
"c": 5,
"gui": 5,
"rust": 1
},
@@ -26,8 +26,8 @@
"debt": 2
},
"incoming-gnome": {
"sealed": 31,
"never": 6
"sealed": 32,
"never": 7
}
},
"by_profile": {
@@ -43,8 +43,8 @@
},
"escritorio-gnome": {
"raices": 9,
"clausura": 83,
"sealed": 77,
"clausura": 88,
"sealed": 82,
"never": 6
},
"escritorio-mirada": {
@@ -54,7 +54,7 @@
"debt": 2
}
},
"sin_perfil": 653,
"sin_perfil": 650,
"orphan_deps": [],
"topo_ok": true,
"nodes": {
@@ -591,6 +591,32 @@
"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",
@@ -2222,6 +2248,32 @@
"perfiles": [],
"dependientes_total": 0
},
"colord": {
"iname": "colord",
"version": "1.4.7",
"link": "static",
"compiler": "zig-cc",
"deps": [
"meson",
"samurai",
"python3",
"pkgconf",
"glib",
"lcms2",
"sqlite",
"libffi",
"pcre2",
"zlib"
],
"cls": "c",
"queue": "incoming-gnome",
"hash": "b3:d3b640177ad9de0247b71d33dab6990343ff4e1870a2404b1076c49048d681eb",
"state": "never",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 0
},
"committed": {
"iname": "committed",
"version": "1.1.11",
@@ -4652,11 +4704,11 @@
"hash": "b3:f6ccdf98b91158f9f1e071a278f4b21b4700b3594f2425458ef723a76c7b98e4",
"state": "sealed",
"blocked_by": [],
"unblocks": 6,
"unblocks": 7,
"perfiles": [
"escritorio-gnome"
],
"dependientes_total": 18
"dependientes_total": 20
},
"glib-introspected": {
"iname": "glib-introspected",
@@ -4875,7 +4927,7 @@
],
"cls": "gui",
"queue": "incoming-gnome",
"hash": "b3:d2567b5a5a66be8f04fbb4e73c5576b79034b93a62de68d73c527c83ebbb4a25",
"hash": "b3:03cdccb023af0a8af1c7eb7a0c11fd5a3363101526fa342d8a0b641fec30ba6f",
"state": "never",
"blocked_by": [
"mutter"
@@ -6558,9 +6610,11 @@
"hash": "b3:bdc36cf9a118a0eb505966cd5132552e51e420c12186694907898fb44873684a",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 1
"unblocks": 1,
"perfiles": [
"escritorio-gnome"
],
"dependientes_total": 2
},
"hyperfine": {
"iname": "hyperfine",
@@ -6915,9 +6969,11 @@
"hash": "b3:1b90c87650b775ad60049f7c3c20c9bf4d56f230ca43eec411ce69762d661c9d",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 0
"unblocks": 1,
"perfiles": [
"escritorio-gnome"
],
"dependientes_total": 1
},
"jsonnet-bundler": {
"iname": "jsonnet-bundler",
@@ -7809,9 +7865,11 @@
"hash": "b3:07fbf8a1da5b346fe394bebe512cbc0e8acc9b509c3614b462329fe70b1a73b8",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 0
"unblocks": 2,
"perfiles": [
"escritorio-gnome"
],
"dependientes_total": 2
},
"lefthook": {
"iname": "lefthook",
@@ -8032,9 +8090,11 @@
"hash": "b3:260f0519727bcf33ce69d05644929558eafb7fae78730e5201345629a3dff42c",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 0
"unblocks": 1,
"perfiles": [
"escritorio-gnome"
],
"dependientes_total": 1
},
"libdrm": {
"iname": "libdrm",
@@ -8136,13 +8196,13 @@
"hash": "b3:2f6d62862c9978c79a5fc593625e110c6947475b8a6a600efa2c95b83033a6b1",
"state": "sealed",
"blocked_by": [],
"unblocks": 8,
"unblocks": 9,
"perfiles": [
"escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
"dependientes_total": 67
"dependientes_total": 69
},
"libgcrypt": {
"iname": "libgcrypt",
@@ -9274,7 +9334,7 @@
"hash": "b3:b45037ebba3fdbf0361ef0fcc61dee5c9795b08c1ea4a0231aafc7dc45bdaf85",
"state": "sealed",
"blocked_by": [],
"unblocks": 6,
"unblocks": 7,
"perfiles": [
"base",
"cli",
@@ -9282,7 +9342,7 @@
"escritorio-kde",
"escritorio-mirada"
],
"dependientes_total": 80
"dependientes_total": 82
},
"micro": {
"iname": "micro",
@@ -9671,11 +9731,16 @@
"zlib",
"libjpeg-turbo",
"libtiff",
"fontconfig"
"fontconfig",
"json-glib",
"atk",
"lcms2",
"libdisplay-info",
"hwdata"
],
"cls": "c",
"queue": "incoming-gnome",
"hash": "b3:04f56621bba095c7df881f1008f0a65acdd5c879acaca5e84e279f633a2d8c8e",
"hash": "b3:83b078248b1ab914e447b68ff5cff94ab57f102dc35841d1250dfcd5a7aeafb7",
"state": "never",
"blocked_by": [],
"unblocks": 1,
@@ -10555,14 +10620,14 @@
"hash": "b3:06ad7580fd1d61db1822a5682dc0a9cef359329e4b4cf6bfa6c6dc507973f47d",
"state": "sealed",
"blocked_by": [],
"unblocks": 6,
"unblocks": 7,
"perfiles": [
"base",
"cli",
"escritorio-gnome",
"escritorio-kde"
],
"dependientes_total": 53
"dependientes_total": 55
},
"peco": {
"iname": "peco",
@@ -10737,7 +10802,7 @@
"hash": "b3:f0b5d0b1cb4321b3c61f24a871b9a58da3ebb7eb903af4015e35bd41a6465437",
"state": "sealed",
"blocked_by": [],
"unblocks": 8,
"unblocks": 9,
"perfiles": [
"base",
"cli",
@@ -10745,7 +10810,7 @@
"escritorio-kde",
"escritorio-mirada"
],
"dependientes_total": 295
"dependientes_total": 297
},
"plow": {
"iname": "plow",
@@ -11048,7 +11113,7 @@
"hash": "b3:27889026076514935b53d486951792d08ed7fd5210b44e7f92979c03c96be665",
"state": "sealed",
"blocked_by": [],
"unblocks": 6,
"unblocks": 7,
"perfiles": [
"base",
"cli",
@@ -11056,7 +11121,7 @@
"escritorio-kde",
"escritorio-mirada"
],
"dependientes_total": 238
"dependientes_total": 240
},
"qrcp": {
"iname": "qrcp",
@@ -11594,7 +11659,7 @@
"hash": "b3:b8fca71dd92577d3a44ef01a7d5779d86473553199e0c24736438cdc846e5199",
"state": "sealed",
"blocked_by": [],
"unblocks": 6,
"unblocks": 7,
"perfiles": [
"base",
"cli",
@@ -11602,7 +11667,7 @@
"escritorio-kde",
"escritorio-mirada"
],
"dependientes_total": 212
"dependientes_total": 214
},
"sassc": {
"iname": "sassc",
@@ -12176,9 +12241,9 @@
"hash": "b3:235b18d98f18c136b26a58e942eb70030ed59054435c3c01bb07e5c0896d2f13",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"unblocks": 1,
"perfiles": [],
"dependientes_total": 0
"dependientes_total": 1
},
"ssh-vault": {
"iname": "ssh-vault",
@@ -14349,7 +14414,7 @@
"hash": "b3:28522f99f433496dbaacfa309f8e937d6526ac3c8db34b4a94b18e22656dcd33",
"state": "sealed",
"blocked_by": [],
"unblocks": 9,
"unblocks": 10,
"perfiles": [
"base",
"cli",
@@ -14357,7 +14422,7 @@
"escritorio-kde",
"escritorio-mirada"
],
"dependientes_total": 91
"dependientes_total": 93
},
"zlib-ng": {
"iname": "zlib-ng",
+33
View File
@@ -0,0 +1,33 @@
# 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"]
+41
View File
@@ -0,0 +1,41 @@
# colord 1.4.7 — gestión de color (perfiles ICC por dispositivo). mutter la exige por pkg-config sin
# perilla (meson.build:128): aplica la curva de color a cada monitor en el backend nativo.
#
# SÓLO LA LIBRERÍA: -Ddaemon=false. mutter enlaza libcolord (el cliente D-Bus), no necesita el
# demonio ni colord-session.
#
# ⚠ MEDIDO 2026-07-27, y el resultado desmiente lo que yo suponía al escribir esta receta: apagar el
# demonio NO adelgaza las deps. En colord 1.4.7 el bloque de dependency() es de nivel superior, sin
# ningún `if get_option('daemon')` que lo cubra (meson.build:114-123):
# sqlite3 ✓ (ya en el corpus) gusb ✗ gudev-1.0 ✗ libudev ✗
# Las tres últimas faltan ⇒ colord cuesta 3 recetas nuevas antes que ella: libusb → libgusb, y
# libgudev (envoltorio GObject de libudev; el proveedor de libudev.pc sería libudev-zero, ya en el
# corpus). libgudev NO se paga sólo por colord: mutter también la exige por su opción `udev`, que es
# la que hace falta para el backend nativo KMS. Ése es el orden correcto de la próxima tanda.
# Si alguna vez hace falta el demonio de verdad (calibración real), vuelve con polkit encima.
#
# systemd=false por la misma razón que en todo este frente: arje-zero es PID1.
# argyllcms_sensor=false: sensores de calibración de hardware, no aplica sin demonio.
# introspection=false: mutter la enlaza en C.
name = "colord"
version = "1.4.7"
[source]
tarball = "https://www.freedesktop.org/software/colord/releases/colord-1.4.7.tar.xz"
sha256 = "de02d9910634ae159547585cec414e450f711c27235453b4f9b38a9f2361a653"
[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 -Ddaemon=false -Dsystemd=false -Dudev_rules=false -Dargyllcms_sensor=false -Dbash_completion=false -Dintrospection=false -Dvapi=false -Dsane=false -Dtests=false -Dinstalled_tests=false -Dman=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"
# lcms2 = el motor ICC (reusada de la cola KDE, ya sellada). glib para gio/D-Bus.
# sqlite: REQUERIDA aunque daemon=false — meson.build:119 la pide incondicionalmente (la usa la
# librería para leer la base de perfiles ICC). Ya estaba en el corpus y sellada, provee sqlite3.pc.
[deps]
build = ["meson", "samurai", "python3", "pkgconf", "glib", "lcms2", "sqlite", "libffi", "pcre2", "zlib"]
+2 -2
View File
@@ -17,7 +17,7 @@ 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 -Dxwayland=false -Dtests=disabled -Dcogl_tests=false -Dclutter_tests=false -Dmutter_tests=false -Dprofiler=false -Ddocs=false -Dinstalled_tests=false -Dc_args=-Wno-error=date-time"
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 -Dxwayland=false -Dx11=false -Dglx=false -Dremote_desktop=false -Dlibwacom=false -Dsound_player=false -Dstartup_notification=false -Dsm=false -Dtests=disabled -Dcogl_tests=false -Dclutter_tests=false -Dmutter_tests=false -Dprofiler=false -Ddocs=false -Dinstalled_tests=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"
@@ -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"]
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"]