Drop --layers from the build to avoid slow layer commits, and default
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/cron/ci Pipeline was successful

PULL_POLICY to missing so the base image is only re-pulled when absent.
This commit is contained in:
qpismont committed 2026-11-02 20:17:09 +01:00
1 parent 9275d2c4a4
commit 0920b351b7
2 files changed
+27 -15

No files matched your search

+25 -12
View File
@@ -1,14 +1,18 @@
# My Fedora - Distribution Fedora Personnalisée
Distribution Fedora 44 personnalisée basée sur Fedora Bootc avec KDE Plasma et un ensemble d'outils de développement préinstallés.
Distribution Fedora 44 personnalisée basée sur Fedora Bootc avec GNOME, le compositeur Umbriel et le shell Noctalia, plus un ensemble d'outils de développement préinstallés.
## Caractéristiques
### Environnement de Bureau
- **KDE Plasma** (`@kde-desktop-environment`) avec support matériel complet
- **Plasma Login Manager** (`plasmalogin`) à la place de SDDM
- **GNOME** (`@gnome-desktop`) avec support matériel complet
- **GDM** comme gestionnaire de connexion (GNOME Initial Setup crée le premier compte au boot)
- **Umbriel** (compositeur Wayland, build nightly) et **Noctalia** (shell) via le dépôt Terra
- **xdg-desktop-portal-umbriel-nightly** pour les portails XDG
- **Nautilus** avec l'extension `nautilus-my-computer` (dépôt Copr)
- **Plymouth** pour l'animation de démarrage
- **Vulkan** et pilotes Mesa (x86_64 et i686)
- Pack d'icônes **MoreWaita** et boutons de fenêtre style Windows (`:minimize,maximize,close`)
### Outils de Développement
- **Development Tools** complet
@@ -20,25 +24,27 @@ Distribution Fedora 44 personnalisée basée sur Fedora Bootc avec KDE Plasma et
### Applications Préinstallées
- **Mullvad VPN** - Client VPN sécurisé
- **Filen** - Stockage cloud
- **Bazaar** (Flatpak) - Gestionnaire d'applications
- **Bazaar** (Flatpak) - Gestionnaire d'applications, installé au premier démarrage
- **CUPS** - Support d'impression (avec `cups-pdf`)
- **FFmpeg** (`ffmpeg-free`), GStreamer et `ffmpegthumbnailer`
### Configuration Système
- **Locale** : Français (`fr_FR.UTF-8`)
- **Clavier** : AZERTY (`fr`)
- **Clavier** : AZERTY (`fr`), via `vconsole` et `xorg-keyboard.conf` pour GDM
- **Fuseau horaire** : `Europe/Paris`
- **Système de fichiers root** : Btrfs
- **Flatpak** : Flathub configuré par défaut
- **Flatpak** : Flathub et Bazaar ajoutés au premier démarrage (service `flatpak-first-boot`)
- **Umbriel** : configuration par défaut dans `/etc/xdg/umbriel/config.toml` (autostart Noctalia)
- **Module `xpad`** chargé au démarrage (manettes Xbox)
### Optimisations
- `user.max_user_namespaces` augmenté pour Podman
- Support FUSE pour overlayfs
- Mise à jour automatique Bootc désactivée
- PackageKit supprimé (gestion via Flatpak)
- PackageKit et GNOME Software supprimés (gestion via Flatpak)
- `dnf` avec `--setopt=tsflags=nodocs` (pas de documentation dans l'image)
- Build avec cache de couches (`buildah bud --layers`) et pull de l'image de base (`--pull=always`)
- Build sans `--layers` (les commits de couches sont très lents sur stockage `vfs`/disque lent) ; `PULL_POLICY=always` pour forcer la mise à jour de l'image de base
- Flatpak installé dans une transaction isolée, avec copie du store SELinux et vérification du label `flatpak_helper_exec_t` au build
## Prérequis
@@ -56,10 +62,10 @@ Distribution Fedora 44 personnalisée basée sur Fedora Bootc avec KDE Plasma et
Construit l'image localement avec le tag `localhost/tintounn/my-fedora:latest`.
Le script utilise `buildah bud --layers --pull=always --isolation chroot`. Pour éviter de retélécharger l'image de base à chaque build local, tu peux utiliser :
Le script utilise `buildah bud --pull=missing --isolation chroot` (l'image de base n'est retéléchargée que si elle est absente). Pour forcer la récupération de la dernière image de base :
```bash
PULL_POLICY=missing ./build.sh
PULL_POLICY=always ./build.sh
```
### Générer une ISO bootable
@@ -85,16 +91,17 @@ Pousse l'image vers `docker.io/tintounn/my-fedora:latest`.
- **Base** : `registry.fedoraproject.org/fedora-bootc:44`
- **Type** : Image conteneur bootable (Bootc)
- **Target** : Système graphique (`graphical.target`)
- **Dépôts supplémentaires** : Terra (`repos.fyralabs.com`), Mullvad, Copr `yannmasoch/nautilus-my-computer`
## Services Activés
- `plasmalogin.service` (Plasma Login Manager)
- `gdm.service` (GNOME Display Manager)
- `NetworkManager.service`
- `bluetooth.service`
- `podman.socket`
- `cups.service`
- `mullvad-daemon.service`
- `flatpak-first-boot.service` (installe Bazaar au premier démarrage)
- `flatpak-first-boot.service` (ajoute Flathub et installe Bazaar au premier démarrage)
## Intégration Continue
@@ -113,6 +120,9 @@ Le pipeline CI construit et publie automatiquement l'image sur Docker Hub.
├── build-iso.sh # Script de génération d'ISO
├── push-image.sh # Script de publication
├── iso.toml # Configuration de l'installeur Anaconda
├── config/
│ ├── umbriel.toml # Configuration Umbriel par défaut
│ └── xorg-keyboard.conf # Clavier FR pour GDM
├── services/
│ └── flatpak-first-boot.service
├── .woodpecker/
@@ -126,6 +136,9 @@ Le pipeline CI construit et publie automatiquement l'image sur Docker Hub.
- L'image utilise l'isolation `chroot` lors de la construction
- Le builder d'ISO nécessite des privilèges élevés et l'accès au storage Podman
- `ffmpeg` provient des dépôts Fedora (`ffmpeg-free`) : pour les codecs complets, activer RPM Fusion
- Umbriel/Noctalia proviennent du dépôt tiers Terra (`--nogpgcheck` à l'ajout du dépôt)
- Le dépôt Flathub est ajouté au premier démarrage, pas pendant le build (écrire dans `/var` est un anti-patron bootc)
- Flatpak est installé dans une transaction isolée pour que le scriptlet `flatpak-selinux` enregistre correctement le module SELinux ; le build échoue si le label `flatpak_helper_exec_t` est absent de la politique compilée
## Licence