diff --git a/recipes/arje-logind-compat.toml b/recipes/arje-logind-compat.toml new file mode 100644 index 00000000..4a427e6e --- /dev/null +++ b/recipes/arje-logind-compat.toml @@ -0,0 +1,38 @@ +# arje-logind-compat — el daemon shim D-Bus que se hace pasar por `org.freedesktop.login1` +# (systemd-logind) para GNOME/KDE. NO es un stub: implementa el subset del `Manager` que los +# escritorios consultan al arranque — ListSessions/ListSeats/ListUsers/GetSession(ByPID), +# Inhibit/ListInhibitors, CanPowerOff/Reboot/Suspend/Hibernate + PowerOff/Reboot/Suspend/Hibernate, +# propiedades IdleHint/BlockInhibited — y traduce cada llamada al bus interno del fractal arje. +# Corre FUERA de PID 1 (un parser D-Bus en el Init es superficie de CVE), supervisado por el Ente #0. +# Toma el DRM master vía el idioma TakeDevice (major 226) para que mutter/kwin sean master. +# +# ESTO ES lo que yo creía que faltaba: NO hace falta empaquetar elogind ni delegar nada a tawasuyu. +# arje-compat ya provee login1. seatd sigue dando SÓLO asiento (DRM/input); login1 = sesiones, y es +# esto. El frente GNOME (y KDE) enlazan/consultan login1 EN RUNTIME por D-Bus, no linkean libelogind: +# no hace falta la C-ABI sd-login ni un módulo PAM, porque la sesión se registra por el bus interno +# de arje (mirada-greeter → fractal), no por pam_systemd. Ver [[frente-gnome]] / [[frente-harkaq-jaula]]. +# +# Receta Cargo (patrón arje-zero): fuente = monorepo tawasuyu a un commit PINEADO que carga el +# `Cargo.lock` del workspace en raíz (el monorepo lo gitignora) ⇒ fetch vendorea `--locked` y el +# build es `--offline` hermético y bit-reproducible. El commit es la rama +# `selfhost/arje-zero-attest-lockfile` (06184e43): más nueva que la de arje-zero (9967b02c) porque +# incluye el reorg `arje-compat` — el crate único con un binario por servicio que reemplaza los 15 +# crates dispersos de `compat/`. `-p arje-compat --bin arje-logind-compat` compila SÓLO este daemon. +# Estático zig-cc (zbus sobre socket unix + tokio + nix; sin loader del host, como todo arje). +# +# HUB-ONLY: fuente `gitea@git.tawasuyu.net` puerto 22 ⇒ el worker secretless recibe Connection +# refused (la gitea escucha en :2345). Se muele en el hub, no en un worker efímero. Ver +# [[rootfs-laptop-worker-divergen]] y el gotcha de recetas tawasuyu en [[frente-gnome]]. +name = "arje-logind-compat" +version = "0.0.1" + +[source] +# El `commit` es el identificador inmutable (la URL es sólo locator, no entra al hash). +repo = "gitea@git.tawasuyu.net:tawasuyu/tawasuyu.git" +commit = "06184e43a8b3179e41905dc56ba07ec569df1ebb" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" +flags = ["-p", "arje-compat", "--bin", "arje-logind-compat"]