tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1488Shell 182Rust 107Markdown 963619 Definiciones

⎇ 84e3737e10e17927380ed3e232e50cebfdd39123 recipes/incoming-gnome/.deferred/gnome-settings-daemon.toml TOML · 130 líneas · 10.4 KB Historia crudo

gnome: la terna no es deuda, es alcance — a .deferred/ con el mapa corregido 12c30ec9f · Sergio ·

1# ══════════════════════════════════════════════════════════════════════════════════════════════
2# FUERA DE ALCANCE POR DECISIÓN — no es deuda de build (revisado y APARCADA aquí el 2026-09-02)
3# ══════════════════════════════════════════════════════════════════════════════════════════════
4# Las dos decisiones que la dejan fuera están tomadas hace tiempo y no se están reconsiderando:
5#   · **X11 al tacho para toda la distro** (Wayland-only; Xwayland = compat OPCIONAL por-imagen).
6#   · **Sin systemd**: PID 1 es arje-zero y `arje-logind-compat` provee `org.freedesktop.login1`.
7#
8# ⚠ Y «la terna GTK3» ES UN NOMBRE ENGAÑOSO: **GTK3 no es el muro.** GTK3 tiene backend Wayland y
9#   se construye con `-Dx11_backend=false`. Autorarlo NO destraba estas recetas. Lo que bloquea:
10#
11#   · gnome-settings-daemon 48.1 → `gtk+-x11-3.0`, `x11`, `xfixes` INCONDICIONALES. No hay opción.
12#     ⇒ IMPOSIBLE en un stack Wayland-only, por mucho GTK3 que exista. No «pendiente»: imposible.
13#   · gnome-session 48.0        → `dependency('libsystemd', '>= 209', required: true)` (meson:124).
14#     ⇒ Es una comprobación de pkg-config EN TIEMPO DE BUILD, para linkear sd-notify/sd-journal.
15#       `arje-logind-compat` NO la satisface, y es a propósito: su propia receta explica que GNOME
16#       consulta login1 EN RUNTIME por D-Bus y que «no hace falta la C-ABI sd-login». El compat
17#       cubre la necesidad que importa; lo que falta es un link que bajo arje no le habla a nadie.
18#       ⇒ Único camino: un parche que baje ese `required` a `false`. Es una DECISIÓN, no un arreglo.
19#   · gdm 48.0                  → su `gtk+-3.0` sí es condicional (`if have_xdmcp`), pero depende de
20#     gnome-session y muere ahí. Y es un display manager: con mirada-greeter y arranque por grafo,
21#     probablemente sobra del todo.
22#
23# VERIFICADO CONTRA EL TARBALL, no contra este comentario (2026-09-02, sha256 = el del pin):
24#   meson.build:86  gtk_dep = dependency('gtk+-3.0', '>= 3.22.0')          INCONDICIONAL
25#   meson.build:97  dependency('gnome-desktop-3.0', '>= 3.34.2')           la lib LEGACY que nuestro
26#                                                                          gnome-desktop apaga adrede
27#   meson.build:124 dependency('libsystemd', '>= 209', required: true)     INCONDICIONAL
28#
29# ⚠ EL MAPA DE FRONTERA QUE HABÍA MÁS ABAJO ESTABA VIEJO. Ya EXISTEN en el corpus, traídas casi
30#   todas por KDE: libX11, libXfixes, xorgproto, libXau/Xcursor/Xdmcp/Xext/Xi/Xrender/Xtst, libxcb,
31#   y además polkit, upower, geocode-glib y libgweather (éstas en incoming-gnome). O sea que cuatro
32#   de las ocho líneas «FRONTERA» de gnome-settings-daemon ya no eran ciertas. Siguen faltando de
33#   verdad: **gtk3, libnotify y una variante libcanberra-gtk3**.
34#   (Que libX11 exista NO cambia nada acá: vive en incoming-kde, el resolver es hermano→padre y no
35#    cruza colas — y sobre todo, traerlo iría contra la decisión de arriba.)
36#
37# `docs/state/targets.toml` ya no las lista (líneas 78-87: «APARCADAS POR DISEÑO»), y gnome-shell no
38# depende de ninguna: la sesión sube sin ellas y lo que se pierde es degradación, no escritorio.
39# Por eso viven acá, en `.deferred/`: el glob del worker es TOP-LEVEL, así que no se muelen, y el
40# grafo de estado tampoco las cuenta como deuda que nadie va a pagar.
41# ══════════════════════════════════════════════════════════════════════════════════════════════
42
43# gnome-settings-daemon 48.1 — el daemon de ajustes de GNOME (media-keys, energía, color, sonido,
44# rfkill, sharing…). meson static. Feature-minimal: apaga TODO backend opcional (cups/smartcard/wwan/
45# network-manager/usb-protection/wayland/systemd/elogind/colord); quedan sólo los core + los que el
46# proyecto marca "not optional on Linux" (alsa/gudev/rfkill).
47#
48# HALLAZGO DE FRONTERA (el valor del mapa): gnome-settings-daemon 48 SIGUE en GTK3 + X11 —
49# `dependency('gtk+-3.0')`, `gtk+-x11-3.0`, `x11`, `xfixes` son INCONDICIONALES (no hay opción para
50# apagarlas). El corpus sólo tiene gtk4 ⇒ esta receta NO es construible hasta autorar el stack GTK3/X11.
51# Se sella como mapa honesto de la cadena, no como artefacto listo.
52#
53# VERIFICADO EN VIVO el 2026-07-28 (antes era lectura del meson.build; ahora es un build corrido):
54# el configure muere ANTES, en `geocode-glib-1.0` (meson.build:100), que tampoco tiene receta. Las
55# de GTK3/X11 vienen inmediatamente después y siguen ahí en 48.1: gtk+-3.0 :106, gtk+-x11-3.0 :107,
56# x11 :116, xfixes :117. O sea que cerrar geocode-glib NO destraba nada — sólo mueve el muro cuatro
57# líneas. ⇒ APARCADA junto con gnome-session, por la misma razón (asume un stack que tiramos).
58#
59# NO BLOQUEA EL ESCRITORIO: gnome-shell no depende de g-s-d ni en build ni para arrancar; sin él la
60# sesión sube y lo que se pierde son las teclas de medios, la gestión de energía y el perfil de color
61# (los aplica este daemon, no el shell). Es degradación, no ausencia de escritorio.
62#
63# ── 🧱 BLOQUEADA POR GTK3, QUE ESTÁ APARCADO POR DISEÑO (medido 2026-08-07) ─────────────────────
64# Las TRES recetas que quedaban en deuda en la granja (gnome-session, gnome-settings-daemon, gdm)
65# NO son tres problemas: son UNO. Todas mueren en GTK3, que es una de las tres deudas que el frente
66# GNOME aparcó a propósito (GTK3 / X11 / PAM). Verificado contra el `meson.build` de cada tag:
67#   · gnome-session 48.0        → `gtk_dep = dependency('gtk+-3.0')` en el nivel superior, sin `if`.
68#   · gnome-settings-daemon 48.1→ gtk+-3.0 **y `gtk+-x11-3.0`**, ambos incondicionales ⇒ bloqueada
69#                                 por DOS de las tres deudas aparcadas, no por una.
70#   · gdm 48.0                  → su gtk+-3.0 sí es condicional (`if have_xdmcp`, y xdmcp es opción),
71#                                 pero da igual: depende de gnome-session y muere construyéndola.
72# ⇒ No reintentar estas tres esperando que cambie algo. Se destraban el día que entre GTK3 (y para
73#   gnome-settings-daemon, también X11), no antes. Es una decisión de alcance, no un fallo.
74
75#
76# ═══════════════════════════════════════════════════════════════════════════════════════════════
77# ⛔ CERRADA POR DECISIÓN, 2026-08-08. NO REINTENTAR.
78# ═══════════════════════════════════════════════════════════════════════════════════════════════
79# El usuario decidió NO traer GTK3 al catálogo. Esta receta depende de él (ver el diagnóstico de
80# abajo) ⇒ queda cerrada, no «en deuda». La diferencia importa: una deuda invita a reintentarla en
81# cada informe; una decisión se respeta.
82#
83# POR QUÉ ES RAZONABLE, y no una rendición:
84#   · GNOME funciona sin esto. El camino vivo es mutter → gnome-shell, arrancado por arje; ninguno
85#     de los dos depende de gnome-session (su cierre es mutter+gjs+gobject-introspection+gnome-desktop).
86#   · Traer GTK3 sería una torre de C muerta —y para waybar, además, gtkmm, o sea sus bindings de
87#     C++— por un gestor de sesión y un login manager que este escritorio no necesita.
88#   · La función que aportaban está cubierta: la sesión la levanta arje, y la barra de estado es
89#     `yambar` en el frente wlr, que es C puro y ya está sellado.
90#
91# SE REABRE SI, Y SÓLO SI, alguien trae GTK3 por otro motivo con peso propio (una aplicación
92# gráfica de terceros que lo exija). Entonces esto sale gratis; hoy no.
93
94name    = "gnome-settings-daemon"
95version = "48.1"
96license = "GPL-2.0-or-later"
97
98[source]
99tarball = "https://download.gnome.org/sources/gnome-settings-daemon/48/gnome-settings-daemon-48.1.tar.xz"
100sha256  = "3860a2ea214dcbcb6600ae7a1e3358a5389215087bc3e4a47cee3f87baee062e"
101
102[build]
103compiler = "zig-cc"
104target   = "x86_64-linux-musl"
105link     = "static"
106
107[build.phases]
108configure = "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"
109compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
110install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
111
112[deps]
113# Recetas EXISTENTES o en autoría paralela hacia incoming-gnome (gsettings-desktop-schemas,
114# gnome-desktop, gobject-introspection). pulseaudio/alsa-lib viven en incoming-kde.
115build = ["meson", "samurai", "python3", "pkgconf", "gobject-introspection", "glib", "gsettings-desktop-schemas", "gnome-desktop", "pango", "cairo", "gdk-pixbuf", "harfbuzz", "libffi", "pcre2", "zlib"]
116
117# FRONTERA: pulseaudio / alsa-lib — REQUERIDA (media-keys/volumen); existen en incoming-kde/ pero el
118#           resolver no ve esa cola (mismo gap que pipewire/xkeyboard-config). Promover o duplicar.
119
120# FRONTERA: gtk3 (gtk+-3.0 / gtk+-x11-3.0) — INCONDICIONAL; sólo existe gtk4
121# FRONTERA: libX11 (x11) — INCONDICIONAL, sin opción para apagar
122# FRONTERA: libXfixes (xfixes >= 6.0) — INCONDICIONAL
123# FRONTERA: libgweather (gweather4) — INCONDICIONAL
124# FRONTERA: geocode-glib (geocode-glib-2.0) — INCONDICIONAL
125# FRONTERA: libnotify (>= 0.7.3) — INCONDICIONAL
126# FRONTERA: polkit (polkit-gobject-1 >= 0.114) — INCONDICIONAL
127# FRONTERA: upower (upower-glib >= 0.99.12) — INCONDICIONAL
128# FRONTERA: libcanberra-gtk3 — existe recipe libcanberra (backend NULL) pero NO la variante gtk3
129# FRONTERA: geoclue (libgeoclue-2.0 >= 2.3.1) — INCONDICIONAL
130# FRONTERA: libgudev (gudev-1.0) — "not optional on Linux", no hay recipe