Files
hammer/recipes/incoming-gnome/gnome-settings-daemon.toml
T
sergioandClaude Opus 5 d70098ade5 GTK3: decisión del usuario — NO entra; gnome-session, gsd y gdm quedan CERRADAS por escrito
Decidido el 2026-08-08. Las tres recetas dependen de GTK3 (gnome-settings-daemon además de
gtk+-x11-3.0) y quedan cerradas, **no «en deuda»**. La diferencia no es semántica: una deuda
invita a reintentarla en cada informe y en cada ciclo de granja; una decisión se respeta.

POR QUÉ ES RAZONABLE Y NO UNA RENDICIÓN:
· GNOME funciona sin esto — el camino vivo es mutter → gnome-shell arrancado por arje, y
  ninguno de los dos depende de gnome-session (su cierre es mutter+gjs+gobject-introspection+
  gnome-desktop).
· Traer GTK3 sería una torre de C muerta —y para waybar además gtkmm, sus bindings de C++—
  por un gestor de sesión y un login manager que este escritorio no necesita.
· La función está cubierta: la sesión la levanta arje y la barra de estado es `yambar`, C puro,
  sellado anoche en el frente wlr.
Se reabre si alguien trae GTK3 por otro motivo con peso propio (una app gráfica que lo exija).

EL MARCADOR VIVE EN LA RECETA, NO EN UNA LISTA APARTE. `build-farm.sh` salta las recetas cuya
cabecera dice «CERRADA POR DECISIÓN». Podría haber hecho un fichero de exclusiones, pero una
lista y una cabecera se desincronizan solas: así, quien lee el porqué y quien decide saltarla
miran EL MISMO TEXTO. Y el drenador lo dice en su salida, para que la decisión sea visible en
vez de silenciosa.

Con esto la granja deja de quemar CPU en tres recetas que nadie va a arreglar.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 23:31:08 -04:00

89 lines
6.5 KiB
TOML

# gnome-settings-daemon 48.1 — el daemon de ajustes de GNOME (media-keys, energía, color, sonido,
# rfkill, sharing…). meson static. Feature-minimal: apaga TODO backend opcional (cups/smartcard/wwan/
# network-manager/usb-protection/wayland/systemd/elogind/colord); quedan sólo los core + los que el
# proyecto marca "not optional on Linux" (alsa/gudev/rfkill).
#
# HALLAZGO DE FRONTERA (el valor del mapa): gnome-settings-daemon 48 SIGUE en GTK3 + X11 —
# `dependency('gtk+-3.0')`, `gtk+-x11-3.0`, `x11`, `xfixes` son INCONDICIONALES (no hay opción para
# apagarlas). El corpus sólo tiene gtk4 ⇒ esta receta NO es construible hasta autorar el stack GTK3/X11.
# Se sella como mapa honesto de la cadena, no como artefacto listo.
#
# VERIFICADO EN VIVO el 2026-07-28 (antes era lectura del meson.build; ahora es un build corrido):
# el configure muere ANTES, en `geocode-glib-1.0` (meson.build:100), que tampoco tiene receta. Las
# de GTK3/X11 vienen inmediatamente después y siguen ahí en 48.1: gtk+-3.0 :106, gtk+-x11-3.0 :107,
# x11 :116, xfixes :117. O sea que cerrar geocode-glib NO destraba nada — sólo mueve el muro cuatro
# líneas. ⇒ APARCADA junto con gnome-session, por la misma razón (asume un stack que tiramos).
#
# NO BLOQUEA EL ESCRITORIO: gnome-shell no depende de g-s-d ni en build ni para arrancar; sin él la
# sesión sube y lo que se pierde son las teclas de medios, la gestión de energía y el perfil de color
# (los aplica este daemon, no el shell). Es degradación, no ausencia de escritorio.
#
# ── 🧱 BLOQUEADA POR GTK3, QUE ESTÁ APARCADO POR DISEÑO (medido 2026-08-07) ─────────────────────
# Las TRES recetas que quedaban en deuda en la granja (gnome-session, gnome-settings-daemon, gdm)
# NO son tres problemas: son UNO. Todas mueren en GTK3, que es una de las tres deudas que el frente
# GNOME aparcó a propósito (GTK3 / X11 / PAM). Verificado contra el `meson.build` de cada tag:
# · gnome-session 48.0 → `gtk_dep = dependency('gtk+-3.0')` en el nivel superior, sin `if`.
# · gnome-settings-daemon 48.1→ gtk+-3.0 **y `gtk+-x11-3.0`**, ambos incondicionales ⇒ bloqueada
# por DOS de las tres deudas aparcadas, no por una.
# · gdm 48.0 → su gtk+-3.0 sí es condicional (`if have_xdmcp`, y xdmcp es opción),
# pero da igual: depende de gnome-session y muere construyéndola.
# ⇒ No reintentar estas tres esperando que cambie algo. Se destraban el día que entre GTK3 (y para
# gnome-settings-daemon, también X11), no antes. Es una decisión de alcance, no un fallo.
#
# ═══════════════════════════════════════════════════════════════════════════════════════════════
# ⛔ CERRADA POR DECISIÓN, 2026-08-08. NO REINTENTAR.
# ═══════════════════════════════════════════════════════════════════════════════════════════════
# El usuario decidió NO traer GTK3 al catálogo. Esta receta depende de él (ver el diagnóstico de
# abajo) ⇒ queda cerrada, no «en deuda». La diferencia importa: una deuda invita a reintentarla en
# cada informe; una decisión se respeta.
#
# POR QUÉ ES RAZONABLE, y no una rendición:
# · GNOME funciona sin esto. El camino vivo es mutter → gnome-shell, arrancado por arje; ninguno
# de los dos depende de gnome-session (su cierre es mutter+gjs+gobject-introspection+gnome-desktop).
# · Traer GTK3 sería una torre de C muerta —y para waybar, además, gtkmm, o sea sus bindings de
# C++— por un gestor de sesión y un login manager que este escritorio no necesita.
# · La función que aportaban está cubierta: la sesión la levanta arje, y la barra de estado es
# `yambar` en el frente wlr, que es C puro y ya está sellado.
#
# SE REABRE SI, Y SÓLO SI, alguien trae GTK3 por otro motivo con peso propio (una aplicación
# gráfica de terceros que lo exija). Entonces esto sale gratis; hoy no.
name = "gnome-settings-daemon"
version = "48.1"
license = "GPL-2.0-or-later"
[source]
tarball = "https://download.gnome.org/sources/gnome-settings-daemon/48/gnome-settings-daemon-48.1.tar.xz"
sha256 = "3860a2ea214dcbcb6600ae7a1e3358a5389215087bc3e4a47cee3f87baee062e"
[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 -Dcups=false -Dsmartcard=false -Dwwan=false -Dnetwork_manager=false -Dusb-protection=false -Dcolord=false -Dsystemd=false -Delogind=false -Dwayland=false -Drfkill=false"
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]
# Recetas EXISTENTES o en autoría paralela hacia incoming-gnome (gsettings-desktop-schemas,
# gnome-desktop, gobject-introspection). pulseaudio/alsa-lib viven en incoming-kde.
build = ["meson", "samurai", "python3", "pkgconf", "gobject-introspection", "glib", "gsettings-desktop-schemas", "gnome-desktop", "pango", "cairo", "gdk-pixbuf", "harfbuzz", "libffi", "pcre2", "zlib"]
# FRONTERA: pulseaudio / alsa-lib — REQUERIDA (media-keys/volumen); existen en incoming-kde/ pero el
# resolver no ve esa cola (mismo gap que pipewire/xkeyboard-config). Promover o duplicar.
# FRONTERA: gtk3 (gtk+-3.0 / gtk+-x11-3.0) — INCONDICIONAL; sólo existe gtk4
# FRONTERA: libX11 (x11) — INCONDICIONAL, sin opción para apagar
# FRONTERA: libXfixes (xfixes >= 6.0) — INCONDICIONAL
# FRONTERA: libgweather (gweather4) — INCONDICIONAL
# FRONTERA: geocode-glib (geocode-glib-2.0) — INCONDICIONAL
# FRONTERA: libnotify (>= 0.7.3) — INCONDICIONAL
# FRONTERA: polkit (polkit-gobject-1 >= 0.114) — INCONDICIONAL
# FRONTERA: upower (upower-glib >= 0.99.12) — INCONDICIONAL
# FRONTERA: libcanberra-gtk3 — existe recipe libcanberra (backend NULL) pero NO la variante gtk3
# FRONTERA: geoclue (libgeoclue-2.0 >= 2.3.1) — INCONDICIONAL
# FRONTERA: libgudev (gudev-1.0) — "not optional on Linux", no hay recipe