Thomas Stallinger 941a58535d fix: noninteractive verworfen, automatic-ubiquity+Autoklicker, drei echte Bugs behoben
- 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>
2026-08-29 15:16:41 +02:00

41 lines
1.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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