labwc + Noctalia Shell (Testbranch, fedora-bootc-Basis)
This commit is contained in:
+66
-4
@@ -26,7 +26,10 @@ COPY build /build
|
||||
###############################################################################
|
||||
# BASE IMAGE
|
||||
###############################################################################
|
||||
FROM quay.io/fedora/fedora-kinoite:44
|
||||
# labwc/Noctalia-Zweig: minimale fedora-bootc-Basis statt Kinoite.
|
||||
# Der komplette Desktop (labwc, greetd, Noctalia) wird in den Layern unten
|
||||
# aufgebaut. Der Kinoite-Stand bleibt auf Branch main / Tag :stable erhalten.
|
||||
FROM quay.io/fedora/fedora-bootc:44
|
||||
|
||||
### /opt (Unverändert)
|
||||
# RUN rm /opt && mkdir /opt
|
||||
@@ -42,13 +45,34 @@ RUN --mount=type=bind,from=build-ctx,source=/build/10-repos.sh,target=/tmp/10-re
|
||||
--mount=type=tmpfs,dst=/tmp \
|
||||
bash /tmp/10-repos.sh && dnf5 clean all
|
||||
|
||||
# LAYER 2: Unerwünschte Pakete entfernen (Bereinigungsschicht - vorgezogen)
|
||||
# LAYER 2: Unerwünschte Pakete entfernen (Guard - auf bootc-Basis meist No-Op)
|
||||
RUN --mount=type=bind,from=build-ctx,source=/build/20-remove-packages.sh,target=/tmp/20-remove-packages.sh \
|
||||
--mount=type=cache,dst=/var/cache \
|
||||
--mount=type=cache,dst=/var/log \
|
||||
--mount=type=tmpfs,dst=/tmp \
|
||||
bash /tmp/20-remove-packages.sh
|
||||
|
||||
# LAYER 2b: labwc Desktop-Basis (Compositor, Portale, Audio, Docking-Tools)
|
||||
RUN --mount=type=bind,from=build-ctx,source=/build/20-desktop-labwc.sh,target=/tmp/20-desktop-labwc.sh \
|
||||
--mount=type=cache,dst=/var/cache \
|
||||
--mount=type=cache,dst=/var/log \
|
||||
--mount=type=tmpfs,dst=/tmp \
|
||||
bash /tmp/20-desktop-labwc.sh
|
||||
|
||||
# LAYER 2c: Login-Stack (greetd + tuigreet-Fallback + Noctalia-Greeter)
|
||||
RUN --mount=type=bind,from=build-ctx,source=/build/21-greetd.sh,target=/tmp/21-greetd.sh \
|
||||
--mount=type=cache,dst=/var/cache \
|
||||
--mount=type=cache,dst=/var/log \
|
||||
--mount=type=tmpfs,dst=/tmp \
|
||||
bash /tmp/21-greetd.sh
|
||||
|
||||
# LAYER 2d: Noctalia Shell v5 (nativ, aus Fedora-Repos)
|
||||
RUN --mount=type=bind,from=build-ctx,source=/build/22-noctalia.sh,target=/tmp/22-noctalia.sh \
|
||||
--mount=type=cache,dst=/var/cache \
|
||||
--mount=type=cache,dst=/var/log \
|
||||
--mount=type=tmpfs,dst=/tmp \
|
||||
bash /tmp/22-noctalia.sh
|
||||
|
||||
# LAYER 3: Virtualisierung & Tools (Großer Download - stark gecacht)
|
||||
RUN --mount=type=bind,from=build-ctx,source=/build/30-virt.sh,target=/tmp/30-virt.sh \
|
||||
--mount=type=cache,dst=/var/cache \
|
||||
@@ -91,8 +115,39 @@ RUN chmod 0644 /etc/containers/policy.json /etc/pki/containers/cosign.pub && \
|
||||
COPY configs/bootc-timer-override.conf /usr/lib/systemd/system/bootc-fetch-apply-updates.timer.d/override.conf
|
||||
COPY configs/bootc-override.conf /usr/lib/systemd/system/bootc-fetch-apply-updates.service.d/override.conf
|
||||
|
||||
# 3. Kopiere das Benachrichtigungs-Skript
|
||||
# 3. Kopiere die Session-Helfer und Desktop-Defaults
|
||||
COPY --chmod=755 scripts/notify-bootc-user.sh /usr/bin/
|
||||
COPY --chmod=755 scripts/kanshi-autoconfig /usr/bin/kanshi-autoconfig
|
||||
COPY --chmod=755 scripts/seed-labwc-skel.sh /usr/bin/seed-labwc-skel
|
||||
|
||||
# labwc/kanshi-Defaults fuer neue Benutzer (Bestand bleibt via seed-labwc-skel)
|
||||
COPY configs/skel/ /etc/skel/
|
||||
|
||||
# Wayland-Session fuer Display-Manager (Greeter-Auswahl)
|
||||
COPY configs/wayland-sessions/labwc.desktop /usr/share/wayland-sessions/labwc.desktop
|
||||
|
||||
# greetd-Konfiguration (Noctalia-Greeter + tuigreet-Fallback dokumentiert)
|
||||
COPY configs/greetd/config.toml /etc/greetd/config.toml
|
||||
|
||||
# Noctalia-Greeter Standardwerte (de-Tastatur etc., werden per tmpfiles
|
||||
# beim Erst-Boot nach /var/lib/noctalia-greeter/greeter.toml kopiert)
|
||||
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.
|
||||
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; }
|
||||
|
||||
# =============================================================================
|
||||
# SYSTEMD SERVICES (Modern Bootc Architecture)
|
||||
@@ -102,12 +157,19 @@ COPY --chmod=755 scripts/notify-bootc-user.sh /usr/bin/
|
||||
COPY configs/flatpak-preinstall.service /usr/lib/systemd/system/flatpak-preinstall.service
|
||||
|
||||
# 5. Aktiviere Services (Presets greifen nicht bei COPY-Dateien)
|
||||
# HINWEIS: greetd wird bereits in 21-greetd.sh enabled; hier als
|
||||
# Doku/Netz doppelt abgesichert (idempotent).
|
||||
RUN systemctl enable \
|
||||
# libvirtd.service \
|
||||
# virtlogd.service \
|
||||
podman.socket \
|
||||
bootc-fetch-apply-updates.timer \
|
||||
flatpak-preinstall.service
|
||||
flatpak-preinstall.service \
|
||||
greetd.service
|
||||
|
||||
# SELinux-Labels fuer Greeter/Skel/Sessions (Fehler tolerieren, Labels
|
||||
# werden beim Deployment ggf. erneut gesetzt)
|
||||
RUN restorecon -Rv /etc/greetd /etc/skel /usr/share/wayland-sessions 2>/dev/null || true
|
||||
|
||||
###############################################################################
|
||||
# FINAL CLEANUP
|
||||
|
||||
Reference in New Issue
Block a user