ADR-0006: Der zitierte Befehl (epiphany --application-mode --profile=...)
wurde nachweislich nie ausgeliefert - ADR-0004s eigene, einen Tag später
datierte Folgeuntersuchung (Fund 2) stellte fest, dass --application-mode
für skriptgesteuerte Einrichtung unbrauchbar ist. Der tatsächlich seit dem
allerersten Commit ausgelieferte Befehl (start-kiosk.sh) nutzt nur
--profile, nie --application-mode. Diese Diskrepanz wurde beim ersten
Lesen von ADR-0004/0006 in einer früheren Session bereits bemerkt, aber
nie zu Ende verfolgt - jetzt korrigiert, an beiden Stellen (Entscheidung +
Konsequenzen), inkl. Verifikation gegen den echten Code.
ADR-0004: 'grouped-window-list@cinnamon.org' war von Anfang an falsch
dokumentiert - der Code verwendet seit demselben Ausgangscommit bewusst
das einfache 'window-list@cinnamon.org' (Begründung stand nur als
Code-Kommentar: die gruppierte Variante brachte ungewollte Pinned-Apps-
Starter mit). Kein späterer Kurswechsel, sondern ein Autorenfehler im
ADR selbst.
ADR-0018: kleinere Wortwahlkorrektur ('gestrichelte' -> 'durchgezogene'
Konturlinien - das SVG hat kein stroke-dasharray, die Linien sind nicht
gestrichelt).
Alle 19 ADRs vollständig neu gelesen (nicht nur grep-Stichproben),
Cross-Referenzen und Struktur erneut geprüft - sonst keine weiteren
Funde.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
5.4 KiB
ADR-0006: Zurück zu Epiphany für den Kiosk-Modus
Status: Beschlossen Datum: 21.07.2026
Kontext
ADR-0005 entschied sich für Chromium statt Epiphany, weil Epiphany im Application-Mode kein wirklich chromeloses Fenster lieferte (Adressleiste und Fenstermenü blieben sichtbar).
Die Umsetzung von Chromium erwies sich als Sackgasse: Vier reale Boot-Tests in Proxmox scheiterten nacheinander an vier unterschiedlichen Fehlerklassen, jedes Mal in einer anderen Schicht der Lösung:
dnf --installrootdirekt ins Live-Payload installiert → hätte/etc/passwdüberschrieben (liveuserwäre verschwunden).- Fix (nur
usr/kopieren) reichte nicht →usr/enthält alle ~350 Basis-Pakete → Kernel Panic beim Boot, weilsystemd/bash/glibcdes Live-Systems überschrieben wurden. - Fix (Isolation unter
/opt/tuxflotte/chromium) behob den Absturz, aber der Dracut-Hook kopierte hunderttausende lose Dateien vor dem Pivot — mehrere Minuten Bootzeit, zusätzlicher RAM-Druck. - Fix (Auslieferung als SquashFS-Image, gemountet statt kopiert) behob die Bootzeit, aber Chromium startete gar nicht (
Invalid file descriptor to ICU data received—/proc/self/exezeigte auf den falschen Pfad wegen des eigenen Loader-Aufrufs).
Der vierte Fix behob das ICU-Problem nachweislich (lokal per strace verifiziert), aber der reale Boot-Test zeigte danach immer noch kein laufendes Chromium — vermutlich der beim vierten Fix bereits vermutete chrome_crashpad_handler-Folgefehler, aber nicht mehr im Detail untersucht, weil zu diesem Zeitpunkt das Muster selbst zur Entscheidungsgrundlage wurde: vier verschiedene, jeweils erst durch einen echten Boot-Test sichtbare Fehlerklassen in Folge sind kein Zufall, sondern strukturell — ein komplettes, fremdes Chromium-Paket samt ~350 transitiven Abhängigkeiten in eine laufende, andere Live-Umgebung zu verpflanzen, kämpft gegen die Art, wie Chromium gebaut und paketiert ist.
Entscheidung
Zurück zu Epiphany im Application-Mode (epiphany --application-mode --profile=/home/liveuser/.local/share/tuxflotte-kiosk, wie ursprünglich in ADR-0004 beschrieben), trotz sichtbarer Adressleiste und Fenstermenü.
Korrigiert (23.08.2026, bei der Gegenlese gefunden): Der hier genannte Befehl wurde so nie ausgeliefert. ADR-0004s eigene, einen Tag später datierte Folgeuntersuchung (Fund 2, 22.07.2026) stellte fest, dass --application-mode für eine rein skriptgesteuerte Einrichtung unbrauchbar ist (verlangt eine nur per GUI erzeugbare Webapp-Registrierung) — der tatsächlich funktionierende und bis heute unverändert ausgelieferte Befehl (live-updates/opt/tuxflotte/kiosk/start-kiosk.sh, seit dem allerersten Commit vom 22.07.2026) ist epiphany --profile=/home/liveuser/.local/share/tuxflotte-kiosk ..., ganz ohne --application-mode. Dieses Dokument wurde nie mit diesem am selben Tag gewonnenen Fund nachgezogen — die grundsätzliche Entscheidung dieses ADRs (zurück zu Epiphany, sichtbare Adressleiste bewusst in Kauf genommen) bleibt davon unberührt, nur der zitierte Befehl war falsch.
Das ist explizit kein Kompromiss unter Zeitdruck, sondern eine bewusste Neubewertung des ursprünglichen Ablehnungsgrundes: die sichtbare Adressleiste ist in der Praxis kaum relevant, weil
- der angezeigte Inhalt zentral vom Provisioning Server bereitgestellt wird, nicht hartkodiert auf der ISO liegt — es gibt keine sensiblen, auf dem Medium gespeicherten Inhalte, die ein Benutzer über die Adressleiste erreichen könnte,
- die Live-Umgebung ohnehin eine Wegwerf-Sitzung ohne persistente Nutzerdaten ist,
- ein Benutzer, der während der Installation z.B. Nachrichten liest, kein Sicherheitsproblem darstellt, nur ein kosmetisches.
Als möglicher künftiger Baustein (nicht jetzt umgesetzt): ein Watchdog-Prozess, der die Prozessliste beobachtet und bei geschlossenem Browser einen Reboot auslöst — würde ein versehentliches oder absichtliches Verlassen des Kiosk-Kontexts abfangen, unabhängig von der Adressleiste.
Die kosmetische Frage (Epiphany doch noch vollständig chromelos bekommen, z.B. per GTK-CSS-Override der Header-Bar-Widgets) ist explizit zurückgestellt, keine offene Anforderung für die aktuelle Version.
Konsequenzen
scripts/build.sh: install_chromium() und ihr Aufruf entfernt, check_dependencies() verlangt wieder nur xorriso, kein Root/dnf/Internetzugriff mehr nötig für den Build. tuxflotte-installer/build-deps/ (Fedora-GPG-Key) entfernt, da nicht mehr referenziert.
tuxflotte-installer.desktop: wieder epiphany --profile=... wie vor ADR-0005 (siehe Korrektur oben zum tatsächlichen Befehl — ohne --application-mode).
ADR-0005 bleibt als historischer Datensatz stehen (git-loses Repo — das ist die einzige Quelle für die dort dokumentierten, tatsächlich funktionierenden Techniken: Isolation unter /opt, Loader-Relokation für /proc/self/exe, SquashFS-Verpackung), gilt aber als überholt/verworfen.
Weitere Installer-ISO-Optimierung (inklusive einer möglichen erneuten Chromium-Bewertung, oder ob z.B. eine Ubuntu-basierte Live-ISO denselben EROFS-Bug hat) wird explizit auf eine spätere, dedizierte Überarbeitung der ISO verschoben — nicht Teil der aktuellen Arbeit. Priorität verschiebt sich zurück auf die eigentliche Provisionierungslogik (Runtime Blueprint u.a.).
Noch offen, unverändert seit ADR-0004: wie die Web-Oberfläche mit den bestehenden Bash-Modulen kommuniziert (Zustand lesen, Aktionen auslösen).