# gdm 48.0 — GNOME Display Manager: el greeter/login que arranca la sesión GNOME (crea la sesión vía
# login1, lanza gnome-shell en modo greeter). meson static. sha256 REAL de curl|sha256sum.
#
# LOGIN1: esta distro NO usa systemd-logind — el API org.freedesktop.login1 lo provee
# arje-logind-compat (D-Bus, ya sellado). gdm se apoya en ESE login1. Por eso -Dsystemd=false y el
# soporte de sesión va por el shim. (NO es frontera: login1 está cubierto.)
# Feature-minimal: plymouth/selinux/systemd-journal off; Wayland-only (sin X11). El greeter es GNOME.
#
# ── 🧱 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    = "gdm"
version = "48.0"
license = "GPL-2.0-or-later"

[source]
tarball = "https://download.gnome.org/sources/gdm/48/gdm-48.0.tar.xz"
sha256  = "1bc06daff093ec7b5e37ecb4f92e5da3474a1b1ba076edb9151ee967d1c30adf"

[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 -Dsystemd-journal=false -Dplymouth=disabled -Dselinux=disabled -Dgds-pam-service=gdm-password -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"

# glib (gio/dbus). login1 = arje-logind-compat (NO frontera).
# FRONTERA: accountsservice sin receta — REQUERIDA (lista de usuarios del greeter).
# FRONTERA: linux-pam sin receta — REQUERIDA (autenticación; el módulo PAM que registra la sesión).
# FRONTERA: libgudev sin receta — REQUERIDA (detección de seats/devices).
# FRONTERA: gnome-session → ya en incoming-gnome/ (la sesión que gdm lanza).
# FRONTERA: gsettings-desktop-schemas → ya en incoming-gnome/ (config del greeter).
[deps]
build = ["meson", "samurai", "python3", "pkgconf", "gnome-session", "gsettings-desktop-schemas", "glib", "libffi", "pcre2", "zlib"]
