From 0920b351b7625da86ebededb08c8f442555df03b Mon Sep 17 00:00:00 2001 From: qpismont Date: Mon, 2 Nov 2026 20:17:09 +0100 Subject: [PATCH] Drop --layers from the build to avoid slow layer commits, and default PULL_POLICY to missing so the base image is only re-pulled when absent. --- README.md | 37 +++++++++++++++++++++++++------------ build.sh | 5 ++--- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index c86567a..f7ce8cf 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/build.sh b/build.sh index 0b46251..1384f2d 100755 --- a/build.sh +++ b/build.sh @@ -3,8 +3,7 @@ set -euo pipefail IMAGE_NAME="tintounn/my-fedora" IMAGE_TAG="latest" -PULL_POLICY="${PULL_POLICY:-always}" +PULL_POLICY="${PULL_POLICY:-missing}" echo "[INFO] Build de l'image (pull=${PULL_POLICY})..." -buildah bud --layers --pull="${PULL_POLICY}" --isolation chroot -t localhost/${IMAGE_NAME}:${IMAGE_TAG} . - +buildah bud --pull="${PULL_POLICY}" --isolation chroot -t localhost/${IMAGE_NAME}:${IMAGE_TAG} .