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 939Rust 57Shell 37Markdown 331282 Definiciones

⎇ fee383ff64be0f09a065475ac72a0056f4054e4a recipes/incoming-gnome/.deferred/gdm.toml TOML · 107 líneas · 8.6 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# gdm 48.0 — GNOME Display Manager: el greeter/login que arranca la sesión GNOME (crea la sesión vía
44# login1, lanza gnome-shell en modo greeter). meson static. sha256 REAL de curl|sha256sum.
45#
46# LOGIN1: esta distro NO usa systemd-logind — el API org.freedesktop.login1 lo provee
47# arje-logind-compat (D-Bus, ya sellado). gdm se apoya en ESE login1. Por eso -Dsystemd=false y el
48# soporte de sesión va por el shim. (NO es frontera: login1 está cubierto.)
49# Feature-minimal: plymouth/selinux/systemd-journal off; Wayland-only (sin X11). El greeter es GNOME.
50#
51# ── 🧱 BLOQUEADA POR GTK3, QUE ESTÁ APARCADO POR DISEÑO (medido 2026-08-07) ─────────────────────
52# Las TRES recetas que quedaban en deuda en la granja (gnome-session, gnome-settings-daemon, gdm)
53# NO son tres problemas: son UNO. Todas mueren en GTK3, que es una de las tres deudas que el frente
54# GNOME aparcó a propósito (GTK3 / X11 / PAM). Verificado contra el `meson.build` de cada tag:
55#   · gnome-session 48.0        → `gtk_dep = dependency('gtk+-3.0')` en el nivel superior, sin `if`.
56#   · gnome-settings-daemon 48.1→ gtk+-3.0 **y `gtk+-x11-3.0`**, ambos incondicionales ⇒ bloqueada
57#                                 por DOS de las tres deudas aparcadas, no por una.
58#   · gdm 48.0                  → su gtk+-3.0 sí es condicional (`if have_xdmcp`, y xdmcp es opción),
59#                                 pero da igual: depende de gnome-session y muere construyéndola.
60# ⇒ No reintentar estas tres esperando que cambie algo. Se destraban el día que entre GTK3 (y para
61#   gnome-settings-daemon, también X11), no antes. Es una decisión de alcance, no un fallo.
62
63#
64# ═══════════════════════════════════════════════════════════════════════════════════════════════
65# ⛔ CERRADA POR DECISIÓN, 2026-08-08. NO REINTENTAR.
66# ═══════════════════════════════════════════════════════════════════════════════════════════════
67# El usuario decidió NO traer GTK3 al catálogo. Esta receta depende de él (ver el diagnóstico de
68# abajo) ⇒ queda cerrada, no «en deuda». La diferencia importa: una deuda invita a reintentarla en
69# cada informe; una decisión se respeta.
70#
71# POR QUÉ ES RAZONABLE, y no una rendición:
72#   · GNOME funciona sin esto. El camino vivo es mutter → gnome-shell, arrancado por arje; ninguno
73#     de los dos depende de gnome-session (su cierre es mutter+gjs+gobject-introspection+gnome-desktop).
74#   · Traer GTK3 sería una torre de C muerta —y para waybar, además, gtkmm, o sea sus bindings de
75#     C++— por un gestor de sesión y un login manager que este escritorio no necesita.
76#   · La función que aportaban está cubierta: la sesión la levanta arje, y la barra de estado es
77#     `yambar` en el frente wlr, que es C puro y ya está sellado.
78#
79# SE REABRE SI, Y SÓLO SI, alguien trae GTK3 por otro motivo con peso propio (una aplicación
80# gráfica de terceros que lo exija). Entonces esto sale gratis; hoy no.
81
82name    = "gdm"
83version = "48.0"
84license = "GPL-2.0-or-later"
85
86[source]
87tarball = "https://download.gnome.org/sources/gdm/48/gdm-48.0.tar.xz"
88sha256  = "1bc06daff093ec7b5e37ecb4f92e5da3474a1b1ba076edb9151ee967d1c30adf"
89
90[build]
91compiler = "zig-cc"
92target   = "x86_64-linux-musl"
93link     = "static"
94
95[build.phases]
96configure = "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 -Dsystemd-journal=false -Dplymouth=disabled -Dselinux=disabled -Dgds-pam-service=gdm-password -Dc_args=-Wno-error=date-time"
97compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
98install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
99
100# glib (gio/dbus). login1 = arje-logind-compat (NO frontera).
101# FRONTERA: accountsservice sin receta — REQUERIDA (lista de usuarios del greeter).
102# FRONTERA: linux-pam sin receta — REQUERIDA (autenticación; el módulo PAM que registra la sesión).
103# FRONTERA: libgudev sin receta — REQUERIDA (detección de seats/devices).
104# FRONTERA: gnome-session → ya en incoming-gnome/ (la sesión que gdm lanza).
105# FRONTERA: gsettings-desktop-schemas → ya en incoming-gnome/ (config del greeter).
106[deps]
107build = ["meson", "samurai", "python3", "pkgconf", "gnome-session", "gsettings-desktop-schemas", "glib", "libffi", "pcre2", "zlib"]