# FWS Linux **FWS Linux** est une distribution live/installable basée sur **Arch Linux**, livrée sous forme d'ISO bootable BIOS/UEFI avec l'installeur graphique **Calamares**. Le projet se construit depuis **Windows via WSL** (ou directement depuis Arch Linux) avec `mkarchiso`. --- ## Aperçu | | | |---|---| | **Base** | Arch Linux (rolling release) | | **Installeur** | Calamares (compilé depuis l'AUR) | | **Environnement live** | Xorg + Openbox — Calamares se lance automatiquement | | **Bureaux installables** | XFCE, KDE Plasma, GNOME, Hyprland, CLI | | **Boot** | BIOS (syslinux) + UEFI (systemd-boot) | | **Compression** | squashfs (xz) | | **Build** | Windows + WSL (Arch) ou Arch Linux natif | --- ## Prérequis ### Depuis Windows - Windows 10/11 avec **WSL 2** - Une distribution **Arch Linux** dans WSL (`Arch`, `ArchLinux`, `ArchWSL`…) - **Git Bash** pour lancer les scripts ### Depuis Arch Linux (WSL ou natif) Les scripts installent automatiquement les paquets nécessaires (`archiso`, `base-devel`, `git`, `reflector`, `dos2unix`). --- ## Démarrage rapide ```bash # Étape 1 — Build des paquets AUR (calamares, winboat-bin) et création du repo local ./setup-calamares.sh # Étape 2 — Build de l'ISO ./build.sh ``` L'ISO finale est générée dans `./out/`. Les deux scripts détectent automatiquement s'ils tournent depuis **Git Bash** (bascule automatique dans WSL en root) ou directement depuis **WSL/Arch**. --- ## Structure du projet ``` FWS/ ├── build.sh # Build de l'ISO via mkarchiso ├── setup-calamares.sh # Build des paquets AUR + création du repo local ├── configs/ │ ├── releng/ # Profil principal (base ArchISO releng) │ │ ├── profiledef.sh # Métadonnées ISO (nom, label, bootmodes…) │ │ ├── packages.x86_64 # Liste des paquets du live │ │ ├── pacman.conf # Config pacman pour le build │ │ └── airootfs/ # Overlay rootfs du profil releng │ │ ├── etc/calamares/ # Config et modules Calamares │ │ └── usr/local/bin/ # Scripts fws-desktop-init-* │ └── baseline/ # Overlay FWS appliqué par-dessus releng (prioritaire) │ └── airootfs/etc/calamares/ # Branding et modules surchargés ├── local-repo/ # Repo pacman local généré (calamares, winboat-bin) ├── out/ # ISOs générées └── scripts/ └── run_archiso.sh # Test rapide en QEMU ``` --- ## Environnements de bureau Calamares propose le choix du bureau à l'installation. Chaque option est gérée par un script `fws-desktop-init-*` qui installe les paquets, configure le display manager et supprime ce qui ne sert pas. | Bureau | Display Manager | Script | |--------|-----------------|--------| | **XFCE** | LightDM | `fws-desktop-init-xfce` | | **KDE Plasma** | SDDM | `fws-desktop-init-kde` | | **GNOME** | GDM | `fws-desktop-init-gnome` | | **Hyprland** | SDDM | `fws-desktop-init-hyprland` | | **CLI** | — | `fws-desktop-init-cli` | Tous les bureaux installent un socle commun : **Firefox**, **LibreOffice**, **MariaDB**, **Wine**, **Podman** et **WinBoat** (avec support KVM). --- ## Séquence de boot de l'ISO live 1. Démarrage (BIOS ou UEFI) 2. `systemd` → autologin root sur `tty1` 3. `xorg-start.service` → `Xorg :0` 4. `calamares.service` → `DISPLAY=:0 calamares` 5. **Fallback** : si les services échouent, `.zprofile` relance Xorg + Openbox + Calamares manuellement --- ## Séquence Calamares ``` welcome → locale → keyboard → partition → users → desktop environement → summary → [installation] → partition · mount · unpackfs · machineid · fstab · locale · keyboard · localecfg · users · networkcfg · hwclock · services-systemd · packages · initcpiocfg · initcpio · desktop environement · grubcfg · bootloader · umount → finished ``` --- ## Test en QEMU ```bash ./scripts/run_archiso.sh -i out/fws-*.iso # BIOS ./scripts/run_archiso.sh -u -i out/fws-*.iso # UEFI ``` --- ## Personnalisation | Quoi | Où | |------|----| | Paquets du live | `configs/releng/packages.x86_64` | | Overlay rootfs | `configs/releng/airootfs/` ou `configs/baseline/airootfs/` | | Modules Calamares | `configs/baseline/airootfs/etc/calamares/modules/` | | Séquence Calamares | `configs/releng/airootfs/etc/calamares/settings.conf` | | Branding ISO | `configs/releng/profiledef.sh` (`iso_name`, `iso_label`…) | | Branding Calamares | `configs/releng/airootfs/etc/calamares/branding/fws/branding.desc` | | Paquets installés | `configs/releng/airootfs/etc/calamares/modules/packages.conf` | --- ## Dépannage **`pacman.conf` introuvable** : Vérifier que `configs/releng/pacman.conf` existe. **Calamares ne démarre pas dans l'ISO** : Se logger sur tty (autologin root) et consulter : ```bash journalctl -u xorg-start -u calamares ``` **Erreurs de retours à la ligne (CRLF)** : `build.sh` exécute `dos2unix` automatiquement sur tout le profil. Éditer depuis Windows ne pose pas de problème. **`mkarchiso` échoue sur un paquet AUR** : Relancer `./setup-calamares.sh` pour reconstruire le repo local. **WSL — `DisableSandbox` manquant** : `setup-calamares.sh` l'ajoute automatiquement à `/etc/pacman.conf` si WSL est détecté (pacman ≥ 7 utilise landlock, non supporté par le kernel WSL). --- ## Licence FWS est un fork d'**[archiso](https://gitlab.archlinux.org/archlinux/archiso)** (Arch Linux), redistribué sous **GPL-3.0-or-later**. Voir [LICENSE](LICENSE) pour le texte complet et [AUTHORS.rst](AUTHORS.rst) pour les auteurs originaux d'archiso. Les ajouts spécifiques à FWS (`build.sh`, `setup-calamares.sh`, `configs/baseline/`, scripts `fws-desktop-init-*`, intégration Calamares + WinBoat, chaîne WSL) sont également distribués sous GPL-3.0-or-later.