xdotool/Enter-Taste-Ansatz war nicht zuverlaessig genug (Metacity erzeugt mehrere ueberlappende X11-Fenster aehnlicher Groesse, 'groesstes Fenster'- Heuristik traf wiederholt das falsche; Enter aktiviert auf der Partitionierungs-Uebersicht einen Ausklapp-Pfeil statt 'Jetzt installieren' - siehe ADR-0023-Nachtrag). - live-updates/usr/share/ubiquity/tuxflotte-atspi-env.sh (neu): aktiviert GTK_MODULES=gail:atk-bridge + Session-/A11y-Bus VOR dem GTK-Start von Ubiquity - muss vor dem Init passieren, eine Bruecke wird von einer bereits laufenden GTK-App nicht nachgeladen. - initrd-hooks/casper-bottom/99casperboot: bindet obige Datei per Ein-Zeilen-Sed-Patch in start-ubiquity-dm ein (dry-run gegen den echten Datei-Inhalt verifiziert). - live-updates/opt/tuxflotte/scripts/atspi_click.py (neu): findet+klickt den passenden 'Weiter'-Button ueber Rolle+Name im Accessibility-Baum, feste deutsche Werteliste (Sprache per Preseed fest de_DE), niemals Zurueck/Abbrechen/Beenden. - autoclicker.sh: ruft atspi_click.py in Schleife statt xdotool/Enter auf, wartet auf den ubiquity-Prozess statt auf den X-Socket. Noch nicht live verifiziert - naechster Schritt: QEMU-Testlauf auf lenny. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
72 lines
3.0 KiB
Bash
Executable File
72 lines
3.0 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
|
|
|
|
# AT-SPI-Bruecke fuer den Autoklicker (atspi_click.py) muss VOR dem
|
|
# GTK-Start von Ubiquity aktiv sein - siehe live-updates/usr/share/ubiquity/
|
|
# tuxflotte-atspi-env.sh (dorthin per casper-bottom-Kopie oben bereits nach
|
|
# /root/usr/share/ubiquity/ ausgeliefert). Einzeilige Einbindung direkt nach
|
|
# dem fruehen Existenz-Check von ubiquity-dm - alles Weitere, inkl.
|
|
# Paketinstallation, uebernimmt die eingebundene Datei selbst.
|
|
start_ubiquity_dm="/root/usr/share/ubiquity/start-ubiquity-dm"
|
|
if [ -f "$start_ubiquity_dm" ]; then
|
|
sed -i \
|
|
'/^test -x \/usr\/bin\/ubiquity-dm || exit 0$/a\
|
|
. /usr/share/ubiquity/tuxflotte-atspi-env.sh' \
|
|
"$start_ubiquity_dm"
|
|
fi
|
|
|
|
touch /run/.casper-boot
|