Files
FWS-ISO/README.md
T
nocode de9647a00d chore: migrate from calamares to anaconda installer
Remove Calamares compilation and configuration, replace with Anaconda installer setup.

Changes:
- Remove Calamares-related entries from .gitignore
- Update README with migration status from Calamares to Anaconda
- Rename setup-calamares.sh references to setup-aur.sh
- Remove Calamares packages from package lists
- Add anaconda and liveimg payload packages
- Add Anaconda kickstart configuration (interactive-defaults.ks)
- Update boot sequence documentation: remove Calamares desktop selection, simplify to Openbox live environment
- Remove Calamares-specific troubleshooting entries
- Clean up .xinitrc and .zlogin to remove Calamares launcher
- Update build scripts to reference local repo generically instead of Calamares-specific
2026-06-17 10:33:28 +02:00

250 lines
9.5 KiB
Markdown
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.
# FWS
**FWS** est une distribution Linux live/installable basée sur **Arch Linux**, livrée sous forme d'ISO bootable BIOS/UEFI. L'installateur graphique est **en cours de migration de Calamares vers Anaconda** (Calamares retiré au commit 05ae9c3, intégration d'Anaconda en cours — voir le chantier dédié).
Le projet est conçu pour être **construit depuis Windows via WSL** (les scripts détectent Git Bash et basculent automatiquement dans WSL), mais fonctionne aussi directement depuis une Arch Linux native.
---
## Aperçu
- **Base** : Arch Linux (rolling release)
- **Installateur** : en migration Calamares → Anaconda (Calamares retiré, Anaconda en préparation ; payload `liveimg` pour installer FWS et non Fedora)
- **Affichage live** : Xorg + Openbox (session graphique conservée pour l'installateur)
- **Bureaux installables** : XFCE, KDE Plasma, GNOME, Hyprland (choix à l'installation)
- **Boot** : BIOS (syslinux) + UEFI (systemd-boot)
- **Compression** : squashfs (xz)
---
## Environnement requis — INSTALLATION ULTRA PRÉCISE
### Côté Windows (machine hôte)
| Composant | Version / état requis | Commande de vérif |
|---|---|---|
| Windows | 10 (22H2+) ou 11 | `winver` |
| WSL | **WSL 2** (pas WSL 1) | `wsl --status` |
| Virtualisation CPU | Activée dans le BIOS (VT-x / AMD-V) | Gestionnaire des tâches → Performance → CPU → "Virtualisation : Activé" |
| Git for Windows | ≥ 2.40 (fournit Git Bash) | `git --version` |
| Espace disque libre | ≥ 25 GB sur la partition WSL | — |
| RAM | ≥ 8 GB (16 GB recommandés) | — |
#### 1. Activer WSL 2
Dans **PowerShell administrateur** :
```powershell
wsl --install --no-distribution
wsl --set-default-version 2
wsl --update
```
Puis **redémarrer Windows**.
#### 2. Installer Arch Linux dans WSL
Arch n'est pas dans le store Microsoft. Installer **ArchWSL** :
```powershell
# Télécharger la dernière release
Invoke-WebRequest -Uri "https://github.com/yuk7/ArchWSL/releases/latest/download/Arch.zip" -OutFile "$env:TEMP\Arch.zip"
Expand-Archive "$env:TEMP\Arch.zip" -DestinationPath "$env:LOCALAPPDATA\ArchWSL"
& "$env:LOCALAPPDATA\ArchWSL\Arch.exe"
```
Au premier lancement, la distribution s'enregistre sous le nom **`Arch`** (ce nom est attendu par les scripts — il est paramétrable via `ARCH_WSL_DISTRO` si besoin).
Vérifier :
```powershell
wsl -l -v
# Doit afficher :
# NAME STATE VERSION
# * Arch Stopped 2
```
#### 3. Installer Git for Windows
Télécharger depuis https://git-scm.com/download/win et installer avec les options par défaut. **Git Bash** est inclus.
---
### Côté WSL Arch (préparation système)
Le **premier lancement** de la WSL ouvre une session root. Effectuer une seule fois :
```bash
# 1. Initialiser le keyring (sinon pacman refuse tout install signé)
pacman-key --init
pacman-key --populate archlinux
# 2. Mettre à jour le keyring AVANT toute autre opération
# (les WSL fraîches ont un keyring périmé)
pacman -Sy --noconfirm archlinux-keyring
# 3. Mise à jour complète du système
pacman -Syu --noconfirm
# 4. Vérifier que /tmp est bien un tmpfs (sinon mkarchiso lent)
mount | grep '/tmp'
```
> **Note** : le script `setup-aur.sh` désactive automatiquement le sandbox landlock de pacman ≥ 7 (incompatible avec le kernel WSL) en ajoutant `DisableSandbox` dans `/etc/pacman.conf`. Tu n'as rien à faire.
---
### Côté Arch Linux native (alternative)
Si tu build depuis une vraie Arch (pas WSL) :
```bash
sudo pacman -Syu
sudo pacman -S --needed base-devel git archiso reflector dos2unix
```
Les scripts détectent l'absence de WSL et s'exécutent en local. Il faut être **root** ou avoir `sudo` configuré.
---
## Démarrage rapide
Depuis **Git Bash sur Windows** (à la racine du repo) :
```bash
# Étape 1 : compilation des paquets AUR (winboat) + deps locales
# → crée local-repo/ avec les .pkg.tar.zst
# (Calamares retiré ; l'installateur Anaconda est un chantier en cours)
./setup-aur.sh
# Étape 2 : build de l'ISO via mkarchiso
# → fusionne configs/releng + configs/baseline
# → injecte le repo local dans pacman.conf
# → sort l'ISO dans ./out/
./build.sh
```
L'ISO finale est générée dans `./out/FWS-YYYY.MM.DD-x86_64.iso`.
---
## Ce que fait `setup-aur.sh` (étape par étape)
1. **Détection environnement** : si lancé depuis Git Bash, bascule dans `wsl.exe -d Arch -u root`.
2. **Patch pacman** : désactive landlock sur WSL (`DisableSandbox`).
3. **Refresh keyring** : `pacman-key --init && --populate archlinux`, mise à jour `archlinux-keyring`.
4. **`pacman -Syu`** complet (obligatoire — sinon `makepkg` plante sur les "conflicting files" lors des splits de paquets type `gcc-libs`).
5. **Install des outils de build** : `base-devel git`.
6. **Création d'un utilisateur `fwsbuild`** non-root avec `sudo` NOPASSWD (makepkg refuse de tourner en root).
7. **Clone + build AUR** : `winboat-bin` via `makepkg -s --noconfirm`, plus les PKGBUILD locaux de `pkgbuilds/` (deps Anaconda). Calamares n'est plus compilé.
8. **Création du repo local** : `repo-add local-repo/fws-local.db.tar.gz`.
9. **Cleanup** : suppression de l'utilisateur `fwsbuild`.
**Durée** : quelques minutes (winboat-bin + deps locales ; Calamares et ses ~12 dépendances Qt6 ne sont plus compilés).
---
## Ce que fait `build.sh` (étape par étape)
1. **Détection environnement** : Git Bash → bascule dans WSL ; sinon exécution locale.
2. **Update miroirs** : `reflector --latest 10 --sort rate`.
3. **Install `archiso`**.
4. **Fusion configs** : `cp -ar configs/releng/* /tmp/fws-build/releng/` puis overlay `configs/baseline/*` par-dessus (baseline prioritaire).
5. **Activation NetworkManager** sur le live (symlink réel `multi-user.target.wants/`).
6. **Injection du repo local** : ajoute `[fws-local]` (`SigLevel = Optional TrustAll`) en tête de `pacman.conf`.
7. **`dos2unix`** sur l'arborescence (au cas où tu as édité depuis Windows).
8. **`mkarchiso -v -w /tmp/fws-build/work -o out/ /tmp/fws-build/releng`**.
9. **Cleanup** du workdir.
**Durée** : 515 minutes selon la machine et le cache pacman.
---
## Test rapide en QEMU
```bash
./scripts/run_archiso.sh -i out/FWS-*.iso # BIOS
./scripts/run_archiso.sh -u -i out/FWS-*.iso # UEFI
```
---
## Structure du projet
| Chemin | Rôle |
|---|---|
| `setup-aur.sh` | Build des paquets AUR (winboat) + PKGBUILD locaux, crée `local-repo/` |
| `build.sh` | Build de l'ISO via `mkarchiso` |
| `configs/releng/` | Profil principal (base ArchISO releng) |
| `configs/baseline/` | Overlay FWS (surcharge le profil releng) — **prioritaire** sur releng |
| `local-repo/` | Repo pacman local (généré par `setup-aur.sh`) |
| `out/` | ISOs générées |
| `fws/mkarchiso` | Binaire `mkarchiso` embarqué (fork) |
| `scripts/run_archiso.sh` | Lanceur QEMU |
---
## Séquence de boot de l'ISO
1. Démarrage de l'ISO FWS (BIOS ou UEFI)
2. `systemd` → autologin root sur `tty1`
3. `.zprofile``startx`
4. `.xinitrc` → Openbox (session graphique du live)
5. **[Chantier C]** lancement de l'installateur Anaconda — pas encore câblé (Calamares retiré au commit 05ae9c3)
---
## Personnalisation
- **Paquets du live** : `configs/releng/packages.x86_64`
- **Paquets baseline** : `configs/baseline/packages.x86_64`
- **Overlay rootfs** : `configs/releng/airootfs/` ou `configs/baseline/airootfs/`
- **Kickstart de l'installateur** : `configs/releng/airootfs/usr/share/anaconda/interactive-defaults.ks` (payload liveimg + %post)
- **Branding ISO** : `configs/releng/profiledef.sh` (`iso_name`, `iso_label`, `iso_publisher`)
---
## Dépannage
| Symptôme | Cause / fix |
|---|---|
| `Aucune distribution WSL Arch joignable` | Aucune distro Arch n'est installée/joignable. Les scripts auto-détectent désormais toute distro dont le nom contient « arch » (via `wsl -l -q`) ; installe ArchWSL (nom `Arch`) ou `wsl --install -d archlinux`, ou force `ARCH_WSL_DISTRO=NomDeMaDistro`. |
| `WSL introuvable` | WSL n'est pas installé. PowerShell admin : `wsl --install`, puis installe une distro Arch. |
| `pacman: signature unknown trust` | Keyring périmé → `pacman -Sy --noconfirm archlinux-keyring` puis relancer. |
| `makepkg: conflicting files` | `pacman -Syu` incomplet avant le build. Relancer `setup-aur.sh`. |
| `mkarchiso` plante sur `[fws-local]` | Le repo local n'a pas été généré. Relancer `setup-aur.sh`. |
| Écran noir après login Hyprland | Tu testes dans VirtualBox → pas d'accélération GPU. Utiliser QEMU/KVM avec `virtio-gpu` ou bare-metal. |
| Retours à la ligne CRLF | `build.sh` lance `dos2unix` automatiquement, mais si tu modifies pendant le build, relancer. |
### Logs utiles
```bash
# Pendant le build
tail -f /tmp/fws-build/work/iso/arch/pkglist.x86_64.txt
# Dans l'ISO (autologin tty1)
journalctl -b
# Hyprland post-install
cat ~/.local/share/hyprland/hyprland.log
```
---
## Variables d'environnement supportées
| Variable | Effet | Défaut |
|---|---|---|
| `ARCH_WSL_DISTRO` | Nom de la distro WSL Arch | `Arch` |
| `MSYS_NO_PATHCONV` | Désactive la conversion auto des chemins Git Bash | `1` (forcé dans les scripts) |
---
## Licence & origine
FWS est un fork de **[archiso](https://gitlab.archlinux.org/archlinux/archiso)** (Arch Linux), redistribué sous les termes de la **GPL-3.0-or-later**.
Voir [LICENSE](LICENSE) pour le texte complet, et [AUTHORS.rst](AUTHORS.rst) pour la liste des auteurs originaux d'archiso.
Les modifications spécifiques à FWS (scripts `build.sh`, `setup-aur.sh`, overlay `configs/baseline/`, intégration de l'installateur + Xorg autostart, chaîne de build WSL) sont également distribuées sous GPL-3.0-or-later.