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