- 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>
41 lines
1.7 KiB
Bash
Executable File
41 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
|
||
# Tuxflotte Installer
|
||
# Phase 0 – Preflight
|
||
#
|
||
# Stellt sicher, dass Werkzeuge vorhanden sind, die spaetere Module (ab
|
||
# 10_hardware.sh) brauchen, aber auf dem Live-Medium selbst (anders als im
|
||
# Zielsystem, siehe pkgsel/include in preseed.tpl) nicht vorinstalliert sind.
|
||
#
|
||
# jq ist der einzige hier betroffene Fall: 10_hardware.sh, 12_enrollment_auth.sh,
|
||
# 15_server_handshake.sh, 17_device_status.sh, 20_profile_selection.sh,
|
||
# 25_installation_confirm.sh und 30_runtime_blueprint.sh nutzen es alle, das
|
||
# erste davon (10_hardware.sh) bereits deutlich vor 40_backend.sh, wo
|
||
# backend_init() denselben Nachinstallations-Mechanismus fuer den Kexec-Pfad
|
||
# schon kennt (siehe backends/mint/backend.sh) - hier zu spaet fuer die
|
||
# frueheren Module. Real entdeckt: beim automatisierten Start ueber
|
||
# start-kiosk.sh (kein Terminal, keine sichtbare Fehlermeldung) blieb der
|
||
# Installer bereits in 10_hardware.sh mit "Benoetigtes Programm nicht
|
||
# gefunden: jq" haengen, sichtbar nur in ~/.xsession-errors - manuelle Testlaeufe
|
||
# in dieser Session sind daran nie gescheitert, weil jq dabei stets vorab von
|
||
# Hand nachinstalliert wurde, bevor installer.sh gestartet wurde.
|
||
set -Eeuo pipefail
|
||
|
||
readonly SCRIPT_NAME="${0##*/}"
|
||
|
||
log() {
|
||
printf '[%s] %s\n' "${SCRIPT_NAME}" "$*" >&2
|
||
}
|
||
|
||
if ! command -v jq >/dev/null 2>&1; then
|
||
log "jq fehlt auf dem Live-Medium, installiere nach."
|
||
|
||
sed -i '/^deb cdrom/d' /etc/apt/sources.list 2>/dev/null || true
|
||
rm -f /etc/apt/sources.list.d/*cdrom* 2>/dev/null || true
|
||
|
||
apt-get update -qq ||
|
||
{ log "FEHLER: apt-get update fehlgeschlagen."; exit 1; }
|
||
DEBIAN_FRONTEND=noninteractive apt-get install -y jq ||
|
||
{ log "FEHLER: Installation von jq fehlgeschlagen."; exit 1; }
|
||
fi
|