feat(baseline): add locale generation and rootfs mounting infrastructure

Add locale configuration, systemd service for rootfs mounting, and customization script:

- Add locale.gen to generate en_US.UTF-8 locale required by Anaconda
- Add fws-rootfsbase.service to expose squashfs as /run/rootfsbase for Anaconda LiveOS payload detection
- Add customize_airootfs.sh to run locale-gen during image build
- Add python-iso639 0.1.4 PKGBUILD (local package with correct find() API)
- Add python-langtable 0.0.71 PKGBUILD (local package with list_common_languages())
- Remove python-iso639 and python-langtable from AUR packages due to version/API incompatibilities
- Update LOCAL_BUILD_ORDER to include new local packages
This commit is contained in:
2026-06-17 23:32:46 +02:00
parent a4e46a4309
commit ee7a5fdaab
6 changed files with 135 additions and 2 deletions
+10
View File
@@ -0,0 +1,10 @@
# FWS — locales à générer dans l'ISO (par locale-gen, via le hook pacman
# etc/pacman.d/hooks/zzz-fws-locale-gen.hook au moment du pacstrap).
#
# en_US.UTF-8 est REQUIS par Anaconda : ses modules DBus font
# locale.setlocale(LC_ALL, "en_US.UTF-8") (DEFAULT_LANG)
# au démarrage → sans cette locale générée : « locale.Error: unsupported
# locale setting » et le module Boss sort en status 1 (installateur planté).
# C.UTF-8 (la locale par défaut du live, cf. locale.conf) est intégrée à la
# glibc et n'a pas besoin d'être générée.
en_US.UTF-8 UTF-8
@@ -0,0 +1,28 @@
# FWS — expose la base squashfs du live à /run/rootfsbase.
#
# POURQUOI : avec --liveinst, Anaconda utilise le payload « LiveOS » qui RECOPIE
# le système live en cours sur le disque. Sa tâche DetectLiveOSImageTask cherche
# l'image de base à /dev/mapper/live-base, /dev/mapper/live-osimg-min ou
# /run/rootfsbase (conventions dracut-live de Fedora). archiso n'en crée AUCUNE
# → « SourceSetupError: No Live OS image found! » et l'installateur plante.
#
# archiso a pourtant la squashfs (montée en lecture seule sur /run/archiso/
# airootfs). On la remonte ici en loop sur /run/rootfsbase pour qu'Anaconda la
# détecte : findmnt -o SOURCE /run/rootfsbase → /dev/loopN, qu'Anaconda monte
# puis recopie sur la cible (= installe FWS). Le %post du kickstart fait ensuite
# mkinitcpio + grub-install (bootloader --disabled côté Anaconda).
[Unit]
Description=FWS — base squashfs sur /run/rootfsbase (payload LiveOS Anaconda)
DefaultDependencies=no
After=local-fs.target
ConditionPathExists=/run/archiso/bootmnt/fws/x86_64/airootfs.sfs
ConditionPathIsMountPoint=!/run/rootfsbase
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/mkdir -p /run/rootfsbase
ExecStart=/usr/bin/mount -o loop,ro /run/archiso/bootmnt/fws/x86_64/airootfs.sfs /run/rootfsbase
[Install]
WantedBy=multi-user.target