From d657dca512bcefdfa331af8fb23f44a02726b9e7 Mon Sep 17 00:00:00 2001 From: humocs-man <251756307+humocs-man@users.noreply.github.com> Date: Sun, 27 Sep 2026 13:21:20 +0200 Subject: [PATCH] fixed wrong installation-path --- Containerfile | 25 +++++++++++++------------ build/21-greetd.sh | 9 +++++++-- configs/greetd/config.toml | 4 +++- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/Containerfile b/Containerfile index d710b12..f0fa73a 100644 --- a/Containerfile +++ b/Containerfile @@ -134,20 +134,21 @@ COPY configs/greetd/config.toml /etc/greetd/config.toml COPY configs/noctalia-greeter/greeter.toml.default /usr/share/noctalia-greeter/greeter.toml.default COPY configs/tmpfiles/noctalia-greeter-seed.conf /usr/lib/tmpfiles.d/noctalia-greeter-seed.conf -# Fail-fast: Greeter-Integration verifizieren (lieber Build-Abbruch als -# defekter Login-Screen). Terra paketiert eigenstaendig, daher wird der -# real installierte Wrapper-Pfad gegen /etc/greetd/config.toml abgeglichen -# plus D-Bus/polkit/Session auf Vorhandensein geprueft. +# Fail-fast + Selbstheilung: Der Session-Wrapper-Pfad wird aus dem real +# installierten Paket aufgeloest und in die greetd-Config uebernommen. +# (Terra paketiert eigenstaendig, z.B. /usr/sbin statt /usr/bin.) +# Fehlt Wrapper, D-Bus, polkit oder Session -> Build-Abbruch statt +# defektem Login-Screen. RUN set -u; \ - cfg="$(sed -n 's/^command = "\(.*\)"/\1/p' /etc/greetd/config.toml | head -n 1)"; \ wrapper="$(command -v noctalia-greeter-session || true)"; \ - echo "Greeter config-Pfad: ${cfg}"; \ - echo "Gefundener Wrapper: ${wrapper}"; \ - test -n "${cfg}" && test "${cfg}" = "${wrapper}" && test -x "${cfg}" && \ - command -v dbus-run-session >/dev/null && test -x /usr/bin/pkexec && \ - test -f /usr/share/wayland-sessions/labwc.desktop && \ - echo "Greeter-Check OK" || \ - { echo "FEHLER: Noctalia-Greeter-Integration unvollstaendig (Wrapper-Pfad, D-Bus, polkit oder labwc-Session fehlt/weicht ab)"; exit 1; } + echo "Gefundener Wrapper: ${wrapper}"; \ + test -n "${wrapper}" || { echo "FEHLER: noctalia-greeter-session nicht installiert (Terra-Repo/includepkgs pruefen)"; exit 1; }; \ + sed -i "s|^command = \".*\"|command = \"${wrapper}\"|" /etc/greetd/config.toml; \ + grep -Eq "^command = \"${wrapper}\"" /etc/greetd/config.toml || { echo "FEHLER: Wrapper-Pfad konnte nicht in /etc/greetd/config.toml uebernommen werden"; exit 1; }; \ + command -v dbus-run-session >/dev/null || { echo "FEHLER: dbus-run-session fehlt"; exit 1; }; \ + test -x /usr/bin/pkexec || { echo "FEHLER: pkexec fehlt"; exit 1; }; \ + test -f /usr/share/wayland-sessions/labwc.desktop || { echo "FEHLER: labwc-Session fehlt"; exit 1; }; \ + echo "Greeter-Check OK (${wrapper})" # ============================================================================= # SYSTEMD SERVICES (Modern Bootc Architecture) diff --git a/build/21-greetd.sh b/build/21-greetd.sh index e2a8519..0b693f9 100755 --- a/build/21-greetd.sh +++ b/build/21-greetd.sh @@ -29,8 +29,7 @@ dnf5 clean all # accounts-daemon: liefert User-Avatare auf dem Login-Screen. systemctl enable accounts-daemon.service -# System-Setup des Greeters: legt /var/lib/noctalia-greeter/ + greeter.toml -# fuer den greetd-Session-User an und gibt die fertige config.toml-Zeile aus. +# System-Setup des Greeters: richtet u.a. /etc/pam.d/greetd ein. # Pfad laut PACKAGING.md: share/noctalia-greeter/setup_greeter_system.sh if [[ -x /usr/share/noctalia-greeter/setup_greeter_system.sh ]]; then /usr/share/noctalia-greeter/setup_greeter_system.sh || true @@ -38,6 +37,12 @@ else echo "WARN: setup_greeter_system.sh nicht gefunden - Greeter-State wird erst beim Boot angelegt" fi +# bootc-Hygiene: /var-Inhalte aus dem Build werden beim Deployment verworfen +# und wuerden nur den var-tmpfiles-Lint triggern. Die /etc-Anteile des Setups +# (PAM) bleiben erhalten; /var/lib/noctalia-greeter wird zur Laufzeit via +# tmpfiles.d angelegt (Paket-eigen + unsere Seed-Regel). +rm -rf /var/lib/noctalia-greeter + # Alte Display-Manager explizit aus (zwei DMs = Blackscreen). # Auf fedora-bootc-Basis existieren sie i.d.R. nicht -> Fehler tolerieren. systemctl disable sddm.service gdm.service lightdm.service 2>/dev/null || true diff --git a/configs/greetd/config.toml b/configs/greetd/config.toml index a03588b..7cc5ee3 100644 --- a/configs/greetd/config.toml +++ b/configs/greetd/config.toml @@ -8,7 +8,9 @@ vt = 1 [default_session] -command = "/usr/bin/noctalia-greeter-session" +# HINWEIS: Der Pfad wird beim Image-Build automatisch auf den real +# installierten Wrapper normalisiert (Terra: /usr/sbin/ statt /usr/bin/). +command = "/usr/sbin/noctalia-greeter-session" user = "greeter" # --- Fallback, falls der grafische Greeter je streikt ---