# ══════════════════════════════════════════════════════════════════════════════════════════════ # FUERA DE ALCANCE POR DECISIÓN — no es deuda de build (revisado y APARCADA aquí el 2026-09-02) # ══════════════════════════════════════════════════════════════════════════════════════════════ # Las dos decisiones que la dejan fuera están tomadas hace tiempo y no se están reconsiderando: # · **X11 al tacho para toda la distro** (Wayland-only; Xwayland = compat OPCIONAL por-imagen). # · **Sin systemd**: PID 1 es arje-zero y `arje-logind-compat` provee `org.freedesktop.login1`. # # ⚠ Y «la terna GTK3» ES UN NOMBRE ENGAÑOSO: **GTK3 no es el muro.** GTK3 tiene backend Wayland y # se construye con `-Dx11_backend=false`. Autorarlo NO destraba estas recetas. Lo que bloquea: # # · gnome-settings-daemon 48.1 → `gtk+-x11-3.0`, `x11`, `xfixes` INCONDICIONALES. No hay opción. # ⇒ IMPOSIBLE en un stack Wayland-only, por mucho GTK3 que exista. No «pendiente»: imposible. # · gnome-session 48.0 → `dependency('libsystemd', '>= 209', required: true)` (meson:124). # ⇒ Es una comprobación de pkg-config EN TIEMPO DE BUILD, para linkear sd-notify/sd-journal. # `arje-logind-compat` NO la satisface, y es a propósito: su propia receta explica que GNOME # consulta login1 EN RUNTIME por D-Bus y que «no hace falta la C-ABI sd-login». El compat # cubre la necesidad que importa; lo que falta es un link que bajo arje no le habla a nadie. # ⇒ Único camino: un parche que baje ese `required` a `false`. Es una DECISIÓN, no un arreglo. # · gdm 48.0 → su `gtk+-3.0` sí es condicional (`if have_xdmcp`), pero depende de # gnome-session y muere ahí. Y es un display manager: con mirada-greeter y arranque por grafo, # probablemente sobra del todo. # # VERIFICADO CONTRA EL TARBALL, no contra este comentario (2026-09-02, sha256 = el del pin): # meson.build:86 gtk_dep = dependency('gtk+-3.0', '>= 3.22.0') INCONDICIONAL # meson.build:97 dependency('gnome-desktop-3.0', '>= 3.34.2') la lib LEGACY que nuestro # gnome-desktop apaga adrede # meson.build:124 dependency('libsystemd', '>= 209', required: true) INCONDICIONAL # # ⚠ EL MAPA DE FRONTERA QUE HABÍA MÁS ABAJO ESTABA VIEJO. Ya EXISTEN en el corpus, traídas casi # todas por KDE: libX11, libXfixes, xorgproto, libXau/Xcursor/Xdmcp/Xext/Xi/Xrender/Xtst, libxcb, # y además polkit, upower, geocode-glib y libgweather (éstas en incoming-gnome). O sea que cuatro # de las ocho líneas «FRONTERA» de gnome-settings-daemon ya no eran ciertas. Siguen faltando de # verdad: **gtk3, libnotify y una variante libcanberra-gtk3**. # (Que libX11 exista NO cambia nada acá: vive en incoming-kde, el resolver es hermano→padre y no # cruza colas — y sobre todo, traerlo iría contra la decisión de arriba.) # # `docs/state/targets.toml` ya no las lista (líneas 78-87: «APARCADAS POR DISEÑO»), y gnome-shell no # depende de ninguna: la sesión sube sin ellas y lo que se pierde es degradación, no escritorio. # Por eso viven acá, en `.deferred/`: el glob del worker es TOP-LEVEL, así que no se muelen, y el # grafo de estado tampoco las cuenta como deuda que nadie va a pagar. # ══════════════════════════════════════════════════════════════════════════════════════════════ # gnome-session 48.0 — el gestor de sesión de GNOME: arranca y supervisa los componentes de una # sesión (gnome-shell, settings-daemon, portales) y expone org.gnome.SessionManager. meson static. # sha256 REAL de curl|sha256sum. # # Esta distro NO usa systemd: el login1 lo provee arje-logind-compat (D-Bus), el init es arje-zero. # Feature-minimal: -Dsystemd=false -Dsystemd_journal=false (sin dep de libsystemd), docs/man off. # gnome-session usa gtk4 para el diálogo de fallo ("failwhale") y json-glib para el perfil de sesión. # # ⛔ APARCADA: el diagnóstico completo está más abajo, junto a `[deps]` (GTK3 **y** libsystemd, los # dos incondicionales). Lo confirmado el 2026-08-07 no lo cambia; sólo añade que la granja seguía # reintentándola, que es un problema de COLA, no de receta. # # ═══════════════════════════════════════════════════════════════════════════════════════════════ # ⛔ 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-session" version = "48.0" license = "GPL-2.0-or-later" [source] tarball = "https://download.gnome.org/sources/gnome-session/48/gnome-session-48.0.tar.xz" sha256 = "dd909fbc5b22cdbdb2fc4df1a47d78d1b5943ccc5e61e6a20a1846246347c417" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" [build.phases] # ── `-Dsystemd=false -Dsystemd_journal=false` NO EXISTEN en 48.0 y mataban el build ──────────── # Fallaba con `meson.build:1:0: ERROR: Unknown option: "systemd"`. Comprobado contra el # `meson_options.txt` del tag 48.0, las opciones REALES son exactamente seis: # deprecation_flags · session_selector · systemduserunitdir · docbook · man · x11 # O sea que el soporte de systemd dejó de ser una perilla booleana; lo único que queda de systemd es # `systemduserunitdir`, que es una RUTA, no un interruptor. Pasar perillas que no existen no es # inofensivo: meson aborta en la primera, así que la receta nunca llegó a configurar. # ⇒ Lección: una opción `-D` inventada no se ignora, mata el build. Verificar contra el # `meson_options.txt` DEL TAG que la receta pinea, no contra la memoria de otra versión. # # `-Dx11=false`: la imagen es Wayland pura y el default de esa opción es `true`, que arrastraría la # torre de X11 que deliberadamente no tenemos (ver la deuda aparcada de GTK3/X11/PAM del frente). 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 -Dx11=false -Ddocbook=false -Dman=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" # ⛔ MURO ESTRUCTURAL, medido el 2026-07-27 — esta receta NO puede sellar tal cual, y no por un # parche que falte. El primer intento murió en «Unknown option: systemd»: el comentario de arriba # suponía perillas que gnome-session 48.0 no tiene. Leyendo su meson.build, lo que pide es peor que # un nombre de opción (líneas del tarball 48.0): # # :86 gtk_dep = dependency('gtk+-3.0', '>= 3.22') INCONDICIONAL — es GTK **3**. # :97 dependency('gnome-desktop-3.0', '>= 3.34.2') la librería LEGACY, la que gnome-desktop # apaga a propósito con legacy_library=false # («SIN libgnome-desktop-3/gtk3»). # :124 dependency('libsystemd', required: true) INCONDICIONAL, sin opción que lo apague. # (el -Dsystemduserunitdir= sólo esquiva el # dependency('systemd') de :119, no éste.) # # O sea: gnome-session 48 asume systemd Y GTK3. Esta distro no tiene ninguno de los dos por decisión # —arje-zero es PID1, arje-logind-compat da login1, y el frente es Wayland-only con X11 al tacho— # así que sellarla exigiría meter GTK3 entero + un shim de libsystemd. Eso no es feature-minimal: # es traer un toolkit muerto para un gestor de sesión que el escritorio no necesita. # # POR QUÉ NO BLOQUEA EL ESCRITORIO: gnome-shell NO depende de gnome-session (su cierre es # mutter+gjs+gobject-introspection+gnome-desktop). El único que la pide es gdm. El camino vivo es # mutter → gnome-shell, arrancado por arje como ya arranca mirada. gnome-session/gdm quedan # APARCADAS con este diagnóstico, no en cola: es la decisión de alcance, escrita donde se busca. # # json-glib: frontera CERRADA (b3:1b90c876, en esta cola). No era el problema. # gsettings-desktop-schemas / gnome-desktop: ya en incoming-gnome/ y selladas. [deps] build = ["meson", "samurai", "python3", "pkgconf", "gsettings-desktop-schemas", "gnome-desktop", "gtk4", "glib", "cairo", "pango", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "gdk-pixbuf", "libjpeg-turbo", "libtiff", "mesa", "fontconfig"]