2026-07-03 23:58:48 +02:00
2026-07-03 23:58:48 +02:00
2026-04-02 15:32:15 +02:00
2026-04-02 15:32:15 +02:00
2026-04-02 15:32:15 +02:00
2026-04-02 15:32:15 +02:00
2026-04-02 15:32:15 +02:00
2026-04-02 15:32:15 +02:00
2026-04-02 15:32:15 +02:00

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 ou depuis toute distribution non-Arch (Fedora, Ubuntu…) via une bascule automatique dans un conteneur Arch podman.


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 :

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 :

# 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 :

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 :

# 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) :

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é.


Côté Fedora / Linux non-Arch (conteneur podman)

Sur une distribution qui n'est pas Arch (Fedora, Ubuntu, Debian…), les scripts détectent l'hôte non-Arch et se relancent automatiquement dans un conteneur Arch via podman. Tu n'as qu'à installer podman, puis lancer les scripts normalement.

# Fedora
sudo dnf install -y podman
# Debian / Ubuntu
sudo apt install -y podman

# Puis, à la racine du repo, exactement comme sur Arch :
./setup-aur.sh
./build.sh

Détails utiles :

  • podman rootful obligatoire : les scripts préfixent sudo podman (rootless ne gère pas les mounts/chroot de mkarchiso). sudo peut demander ton mot de passe.
  • L'image utilisée est docker.io/library/archlinux:latest, pull explicite à chaque run (le tag latest n'est pas re-résolu sinon).
  • Le dépôt est monté au même chemin absolu dans le conteneur : l'ISO (out/) et local-repo/ reviennent directement sur l'hôte (re-chown automatique vers toi).
  • Le cache pacman est conservé entre les runs dans le volume fws-pacman-cache.
  • SELinux enforcing (Fedora) est géré par --privileged — rien à configurer.

Pour forcer l'exécution locale (si tu es déjà sur Arch et que pacman est là), la bascule ne se déclenche pas : la détection exige pacman et un ID/ID_LIKE « arch » dans /etc/os-release.


Démarrage rapide

Depuis Git Bash sur Windows (à la racine du repo) :

# É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

./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. .zprofilestartx
  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

# 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 (Arch Linux), redistribué sous les termes de la GPL-3.0-or-later.

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.

Base légale complète

Document Objet
LICENSE Texte intégral GPL-3.0-or-later
COPYRIGHT.md Droits d'auteur du dépôt & périmètre
LICENSING.md Politique de licences, offre écrite GPL (sources), checklist release
THIRD-PARTY-LICENSES.md Inventaire des logiciels tiers (Anaconda, deps…) & analyse de compatibilité
TRADEMARKS.md Marques & non-affiliation (Arch, Red Hat, Fedora, Anaconda, Windows…)
NOTICE Attributions Apache/MIT/BSD
AUTHORS.rst Auteurs FWS + auteurs originaux d'archiso
CONTRIBUTING.rst Contribuer (inbound = outbound, DCO)

Déjà réglé : offre écrite GPL (URL dépôt + contact), os-release FWS (le live ne s'annonce plus « Arch Linux », via hook pacman) et motd (plus de lien archlinux.org).

⚠️ Reste avant diffusion publique (détail dans LICENSING.md §6) : rendre le dépôt public (sinon l'offre GPL n'est pas opposable), retirer le branding Red Hat/Fedora de l'UI Anaconda lors de la migration, et trancher sur python-iso639 (AGPL-3.0-only). Ces documents ne sont pas un avis juridique.

S
Description
The boss of Windows we're here to destroy this heretic
Readme GPL-3.0 3.5 MiB
Languages
Python 72.6%
Shell 23.3%
Makefile 1.6%
Go Template 1%
QML 0.9%
Other 0.5%