- noninteractive-Frontend endgueltig verworfen: PageNoninteractive-Stubs fuehren strukturell zur Endlosschleife im choose_partition-Zustands- automaten von ubi-partman.py, unabhaengig vom Preseed-Stand. - Umstieg auf automatic-ubiquity (echte GTK-Oberflaeche) + eigener Autoklicker (live-updates/opt/tuxflotte/scripts/autoclicker.sh + systemd-Service), ausgeloest per Boot-Keyword tuxflotte-autoclick. - Bug 1: jq fehlte beim echten Kiosk-Auslauf (kein manueller Vorab- Installationsschritt wie in Testlaeufen) - neues Modul 00_preflight.sh installiert es als allererstes. - Bug 2: echter Ubiquity-Crash in ubi-prepare.py (TypeError: Argument 1 does not allow None as a value) - gezielter Sed-Patch im bestehenden 99casperboot-Hook. - Bug 3: 'd-i partman/choose_partition select finish' zwang denselben Endlosschleifen-Zustandsautomaten wie bei noninteractive, auch im GTK-Modus - Zeile ersatzlos entfernt, partman-auto/method+recipe genuegen. - autoclicker.sh: Fenstersuche nach 'ubiquity' korrigiert (Fenstertitel ist tatsaechlich 'Installation (as superuser)', enthaelt das Wort nie). - Alle vier Fixes live per QEMU verifiziert (jeweils frische Disk, realer Kiosk-Ausloeser/kexec-Pfad, nicht nur manuelle Nachstellung). Offen: automatisierter Klick auf 'Jetzt installieren' auf der Partitionierungs-Uebersichtsseite noch nicht zuverlaessig (Enter trifft dort einen Ausklapp-Pfeil statt den Button). Siehe ADR-0023-Nachtrag. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
58 lines
2.4 KiB
Bash
Executable File
58 lines
2.4 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
PREREQ=""
|
|
|
|
prereqs()
|
|
{
|
|
echo "$PREREQ"
|
|
}
|
|
|
|
case $1 in
|
|
# get pre-requisites
|
|
prereqs)
|
|
prereqs
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
# Ueberschreibt das originale 99casperboot (macht nur `touch
|
|
# /run/.casper-boot`) statt einen zusaetzlichen, neuen Hook-Skriptnamen
|
|
# einzufuehren: initramfs-tools generiert beim ISO-Bau eine ORDER-Datei
|
|
# (scripts/casper-bottom/ORDER) mit der fest verdrahteten Aufruf-Reihenfolge
|
|
# aller casper-bottom-Skripte - real durch Extraktion des echten initrd.lz
|
|
# mit unmkinitramfs bestaetigt. Ein per Initrd-Cpio-Layer NEU hinzugefuegtes
|
|
# Skript taucht in dieser ORDER-Datei nicht auf und wird nie aufgerufen,
|
|
# selbst wenn die Datei im initramfs physisch vorhanden ist (erste Version
|
|
# dieses Fixes ist daran gescheitert). Das Ueberschreiben eines bereits in
|
|
# ORDER referenzierten Pfads funktioniert dagegen zuverlaessig (spaetere
|
|
# cpio-Schichten ueberschreiben Dateiinhalte am selben Pfad, siehe
|
|
# scripts/lib/initrd.sh - derselbe Mechanismus, der schon fuer das
|
|
# Kexec-Preseed in Phase 1 verifiziert wurde). 99casperboot ist laut ORDER
|
|
# das letzte casper-bottom-Skript ueberhaupt - garantiert nach 05mountpoints,
|
|
# das /cdrom nach /root/cdrom umhaengt und damit die Voraussetzung fuer den
|
|
# folgenden Kopiervorgang schafft.
|
|
if [ -d /root/cdrom/updates ]; then
|
|
cp -a /root/cdrom/updates/. /root/
|
|
fi
|
|
|
|
# Ubiquity stuerzt im automatic-ubiquity-GTK-Modus real reproduzierbar ab
|
|
# (TypeError: Argument 1 does not allow None as a value), sobald
|
|
# enable_download_updates(False) den Netzwerkstatus als "nicht verbunden"
|
|
# meldet: ubi-prepare.py uebergibt das Ergebnis von
|
|
# self.controller.get_string('ubiquity/text/label_download_updates_na')
|
|
# ungeprueft an GtkLabel.set_label() - fehlt fuer diese Vorlage/Sprache ein
|
|
# Uebersetzungsstring, liefert get_string() None statt eines leeren Strings,
|
|
# und GTK akzeptiert kein None als Label-Text (real ueber QEMU-Testlauf
|
|
# gefunden, siehe ADR-0023-Nachtrag). Gezielter Sed-Patch statt vollstaendigem
|
|
# Datei-Ersatz, um nicht die komplette Drittanbieter-Datei mitpflegen zu
|
|
# muessen - betrifft nur die eine Zeile, "or ''" faengt jeden None-Rueckgabewert
|
|
# ab, unabhaengig von der genauen Ursache der fehlenden Uebersetzung.
|
|
ubi_prepare="/root/usr/lib/ubiquity/plugins/ubi-prepare.py"
|
|
if [ -f "$ubi_prepare" ]; then
|
|
sed -i \
|
|
"s/self\.controller\.get_string(template))/self.controller.get_string(template) or '')/" \
|
|
"$ubi_prepare"
|
|
fi
|
|
|
|
touch /run/.casper-boot
|