Compare commits
20
Commits
f94d7582cc
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83c97aa13a | ||
|
|
90bb609881 | ||
|
|
0920b351b7 | ||
|
|
9275d2c4a4 | ||
|
|
1174a84b28 | ||
|
|
d44912b967 | ||
|
|
4f7d9d3114 | ||
|
|
16e9294c9b | ||
|
|
e073d18de6 | ||
|
|
95ac8ebb2b | ||
|
|
8f0d2e7d27 | ||
|
|
5b169a7ddb | ||
|
|
4d581a2acc | ||
|
|
3535daaa75 | ||
|
|
ca5021435a | ||
|
|
78a6dab5fc | ||
|
|
485fd53f03 | ||
|
|
44d1c1daf2 | ||
|
|
1869a0f069 | ||
|
|
07dacc8420 |
No files matched your search
+41
-22
@@ -1,23 +1,29 @@
|
|||||||
FROM registry.fedoraproject.org/fedora-bootc:44
|
FROM registry.fedoraproject.org/fedora-bootc:45
|
||||||
|
|
||||||
#Install copr command
|
#Install copr command
|
||||||
RUN dnf5 install 'dnf5-command(copr)' -y \
|
RUN dnf5 install 'dnf5-command(copr)' -y \
|
||||||
&& dnf copr enable yannmasoch/nautilus-my-computer -y
|
&& dnf copr enable yannmasoch/nautilus-my-computer -y
|
||||||
|
|
||||||
#Ajout du dépot vscode
|
#Ajout du dépot Terra (Umbriel n'est pas dans les depots Fedora)
|
||||||
RUN rpm --import https://packages.microsoft.com/keys/microsoft.asc \
|
RUN dnf install -y --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release \
|
||||||
&& echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\nautorefresh=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | tee /etc/yum.repos.d/vscode.repo > /dev/null
|
&& dnf clean all
|
||||||
|
|
||||||
#Install de gnome avec support hardware + Podman + Cups + Vulkan driver + Plymouth + dev tools + divers utilitaires
|
#Ajout du dépot mullvad
|
||||||
RUN dnf install -y --refresh \
|
RUN curl -fsSL https://repository.mullvad.net/rpm/stable/mullvad.repo -o /etc/yum.repos.d/mullvad.repo
|
||||||
|
|
||||||
|
#Install de GNOME + stack Noctalia/Umbriel avec support hardware + Podman + Cups + Vulkan driver + Plymouth + dev tools + divers utilitaires
|
||||||
|
RUN dnf install -y --refresh --setopt=tsflags=nodocs \
|
||||||
@gnome-desktop \
|
@gnome-desktop \
|
||||||
@hardware-support \
|
@hardware-support \
|
||||||
@development-tools \
|
@development-tools \
|
||||||
@multimedia \
|
@multimedia \
|
||||||
nautilus-my-computer \
|
noctalia \
|
||||||
|
umbriel-nightly \
|
||||||
|
xdg-desktop-portal-umbriel-nightly \
|
||||||
vulkan-tools \
|
vulkan-tools \
|
||||||
ffmpegthumbnailer \
|
ffmpegthumbnailer \
|
||||||
mesa-vulkan-drivers \
|
mesa-vulkan-drivers \
|
||||||
|
nautilus-my-computer \
|
||||||
mesa-vulkan-drivers.i686 \
|
mesa-vulkan-drivers.i686 \
|
||||||
vulkan-loader \
|
vulkan-loader \
|
||||||
vulkan-loader.i686 \
|
vulkan-loader.i686 \
|
||||||
@@ -29,15 +35,13 @@ RUN dnf install -y --refresh \
|
|||||||
buildah \
|
buildah \
|
||||||
podman \
|
podman \
|
||||||
rsync \
|
rsync \
|
||||||
code \
|
|
||||||
niri \
|
|
||||||
noctalia \
|
|
||||||
podman-docker \
|
podman-docker \
|
||||||
podman-compose \
|
podman-compose \
|
||||||
fuse-overlayfs \
|
fuse-overlayfs \
|
||||||
cups \
|
cups \
|
||||||
cups-pdf \
|
cups-pdf \
|
||||||
jq \
|
jq \
|
||||||
|
mullvad-vpn \
|
||||||
plymouth \
|
plymouth \
|
||||||
plymouth-system-theme \
|
plymouth-system-theme \
|
||||||
plymouth-plugin-label \
|
plymouth-plugin-label \
|
||||||
@@ -53,16 +57,31 @@ RUN dnf install -y --refresh \
|
|||||||
gstreamer1-plugins-base \
|
gstreamer1-plugins-base \
|
||||||
gstreamer1-vaapi \
|
gstreamer1-vaapi \
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
&& dnf remove -y alacritty waybar gnome-software gnome-software-rpm-ostree gnome-system-monitor showtime decibels snapshot PackageKit PackageKit-gstreamer-plugin PackageKit-command-not-found toolbox || true \
|
&& (dnf remove -y alacritty waybar gnome-software gnome-software-rpm-ostree gnome-system-monitor showtime decibels snapshot PackageKit PackageKit-gstreamer-plugin PackageKit-command-not-found toolbox || true) \
|
||||||
&& dnf install -y flatpak \
|
&& dnf clean all
|
||||||
&& dnf downgrade -y xwayland-satellite-0.8.1-1.fc44 \
|
|
||||||
&& dnf clean all \
|
|
||||||
&& rm -rf /var/cache/dnf
|
|
||||||
|
|
||||||
|
#Flatpak : installe seul, dans sa propre couche (comme avant le passage a GNOME), pour
|
||||||
|
#que le scriptlet de flatpak-selinux (qui enregistre le module SELinux) tourne dans une
|
||||||
|
#petite transaction isolee. Le store SELinux est d'abord recopie dans la couche courante :
|
||||||
|
#sur overlayfs, libsemanage renomme des repertoires de la couche d'origine, ce qui peut
|
||||||
|
#echouer ("Directory not empty") et faire annuler la transaction sans erreur bloquante.
|
||||||
|
RUN cp -a /etc/selinux/targeted /tmp/selinux-store \
|
||||||
|
&& rm -rf /etc/selinux/targeted \
|
||||||
|
&& mv /tmp/selinux-store /etc/selinux/targeted
|
||||||
|
RUN dnf install -y flatpak && dnf clean all
|
||||||
|
|
||||||
|
#Garde-fou : /usr est en lecture seule sur le systeme deploye, un helper flatpak mal
|
||||||
|
#etiquete (unlabeled_t) ne peut donc pas etre repare apres coup. On verifie que la
|
||||||
|
#politique COMPILEE connait bien le type, sinon le build echoue.
|
||||||
|
RUN grep -qa flatpak_helper_exec_t /etc/selinux/targeted/policy/policy.*
|
||||||
|
|
||||||
|
#Configuration de GDM : clavier FR (GNOME Initial Setup cree le premier compte au boot)
|
||||||
|
COPY config/xorg-keyboard.conf /etc/X11/xorg.conf.d/00-keyboard.conf
|
||||||
|
|
||||||
#Installation de Filen Desktop
|
#Installation de Filen Desktop
|
||||||
RUN wget https://cdn.filen.io/@filen/desktop/release/latest/Filen_linux_x86_64.rpm -O /tmp/filen.rpm \
|
RUN wget https://cdn.filen.io/@filen/desktop/release/latest/Filen_linux_x86_64.rpm -O /tmp/filen.rpm \
|
||||||
&& dnf install -y /tmp/filen.rpm \
|
&& dnf install -y --setopt=tsflags=nodocs /tmp/filen.rpm \
|
||||||
|
&& dnf clean all \
|
||||||
&& rm -f /tmp/filen.rpm
|
&& rm -f /tmp/filen.rpm
|
||||||
|
|
||||||
#Installation de starship
|
#Installation de starship
|
||||||
@@ -83,6 +102,9 @@ RUN echo 'eval "$(starship init bash)"' >> /etc/bashrc
|
|||||||
RUN mkdir -p /etc/skel/.config && \
|
RUN mkdir -p /etc/skel/.config && \
|
||||||
starship preset nerd-font-symbols -o /etc/skel/.config/starship.toml
|
starship preset nerd-font-symbols -o /etc/skel/.config/starship.toml
|
||||||
|
|
||||||
|
#Configuration Umbriel par défaut : config de départ du paquet + autostart Noctalia
|
||||||
|
COPY config/umbriel.toml /etc/xdg/umbriel/config.toml
|
||||||
|
|
||||||
#Langue FR par défaut + Fuse userns + Timezone Paris
|
#Langue FR par défaut + Fuse userns + Timezone Paris
|
||||||
RUN echo "LANG=fr_FR.UTF-8" > /etc/locale.conf \
|
RUN echo "LANG=fr_FR.UTF-8" > /etc/locale.conf \
|
||||||
&& echo "KEYMAP=fr" > /etc/vconsole.conf \
|
&& echo "KEYMAP=fr" > /etc/vconsole.conf \
|
||||||
@@ -104,17 +126,14 @@ RUN mkdir -p /etc/dconf/db/local.d /etc/dconf/profile && \
|
|||||||
#Activation du module xpad pour support manette xbox
|
#Activation du module xpad pour support manette xbox
|
||||||
RUN echo "xpad" > /etc/modules-load.d/xpad.conf
|
RUN echo "xpad" > /etc/modules-load.d/xpad.conf
|
||||||
|
|
||||||
#Ajout de flathub
|
#Activation du service flatpak-first-boot (active apres preset-all, plus bas)
|
||||||
RUN flatpak remote-add --if-not-exists --system flathub https://dl.flathub.org/repo/flathub.flatpakrepo || true
|
|
||||||
|
|
||||||
#Activation du service flatpak-first-boot
|
|
||||||
COPY services/flatpak-first-boot.service /etc/systemd/system/flatpak-first-boot.service
|
COPY services/flatpak-first-boot.service /etc/systemd/system/flatpak-first-boot.service
|
||||||
RUN systemctl enable flatpak-first-boot.service
|
RUN chmod 0644 /etc/systemd/system/flatpak-first-boot.service
|
||||||
|
|
||||||
#Définir le target graphique par défaut
|
#Définir le target graphique par défaut
|
||||||
RUN systemctl set-default graphical.target
|
RUN systemctl set-default graphical.target
|
||||||
|
|
||||||
#Activation des services + Desactivation de bootc-update automatique
|
#Activation des services + Desactivation de bootc-update automatique
|
||||||
RUN systemctl preset-all && \
|
RUN systemctl preset-all && \
|
||||||
systemctl enable gdm.service NetworkManager.service bluetooth.service podman.socket cups.service && \
|
systemctl enable --force gdm.service NetworkManager.service bluetooth.service podman.socket cups.service mullvad-daemon.service flatpak-first-boot.service && \
|
||||||
systemctl mask bootc-fetch-apply-updates.timer systemd-remount-fs.service
|
systemctl mask bootc-fetch-apply-updates.timer systemd-remount-fs.service
|
||||||
@@ -1,41 +1,47 @@
|
|||||||
# My Fedora - Distribution Fedora Personnalisée
|
# My Fedora - Distribution Fedora Personnalisée
|
||||||
|
|
||||||
Distribution Fedora 43 personnalisée basée sur Fedora Bootc avec GNOME et un ensemble d'outils de développement préinstallés.
|
Distribution Fedora 44 personnalisée basée sur Fedora Bootc avec GNOME, plus un ensemble d'outils de développement préinstallés.
|
||||||
|
|
||||||
## Caractéristiques
|
## Caractéristiques
|
||||||
|
|
||||||
### Environnement de Bureau
|
### Environnement de Bureau
|
||||||
- **GNOME Desktop** avec support matériel complet
|
- **GNOME** (`@gnome-desktop`) avec support matériel complet
|
||||||
- Configuration des boutons de fenêtre style Windows (minimize, maximize, close)
|
- **GDM** comme gestionnaire de connexion (GNOME Initial Setup crée le premier compte au boot)
|
||||||
- Plymouth pour l'animation de démarrage
|
- **Nautilus** avec l'extension `nautilus-my-computer` (dépôt Copr)
|
||||||
- Support Vulkan et pilotes AMD
|
- **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
|
### Outils de Développement
|
||||||
- **Visual Studio Code** (depuis le dépôt officiel Microsoft)
|
|
||||||
- **Development Tools** complet
|
- **Development Tools** complet
|
||||||
- **Podman** et **Buildah** pour la conteneurisation
|
- **Podman**, **Buildah**, **Podman Compose**, **distrobox**
|
||||||
- **Podman Compose** pour orchestration
|
- Support Docker via `podman-docker`
|
||||||
- Support Docker via podman-docker
|
- **Starship** (prompt) configuré pour tous les utilisateurs
|
||||||
|
- **FiraMono Nerd Font**
|
||||||
|
|
||||||
### Applications Préinstallées
|
### Applications Préinstallées
|
||||||
- **Mullvad VPN** - Client VPN sécurisé
|
- **Mullvad VPN** - Client VPN sécurisé
|
||||||
- **Yaak** (dernière version) - Client API REST
|
|
||||||
- **Filen** - Stockage cloud
|
- **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)
|
- **CUPS** - Support d'impression (avec `cups-pdf`)
|
||||||
|
- **FFmpeg** (`ffmpeg-free`), GStreamer et `ffmpegthumbnailer`
|
||||||
|
|
||||||
### Configuration Système
|
### Configuration Système
|
||||||
- **Locale** : Français (fr_FR.UTF-8)
|
- **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
|
- **Fuseau horaire** : `Europe/Paris`
|
||||||
- **Système de fichiers root** : Btrfs
|
- **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`)
|
||||||
|
- **Module `xpad`** chargé au démarrage (manettes Xbox)
|
||||||
|
|
||||||
### Optimisations
|
### Optimisations
|
||||||
- `user.max_user_namespaces` augmenté pour Podman
|
- `user.max_user_namespaces` augmenté pour Podman
|
||||||
- Support FUSE pour overlayfs
|
- Support FUSE pour overlayfs
|
||||||
- Mise à jour automatique Bootc désactivée
|
- Mise à jour automatique Bootc désactivée
|
||||||
- GNOME Software 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 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
|
## Prérequis
|
||||||
|
|
||||||
@@ -51,37 +57,48 @@ Distribution Fedora 43 personnalisée basée sur Fedora Bootc avec GNOME et un e
|
|||||||
./build.sh
|
./build.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Construit l'image localement avec le tag `localhost/tintounn/my-fedora:latest`
|
Construit l'image localement avec le tag `localhost/tintounn/my-fedora:latest`.
|
||||||
|
|
||||||
|
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=always ./build.sh
|
||||||
|
```
|
||||||
|
|
||||||
### Générer une ISO bootable
|
### Générer une ISO bootable
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./build-iso.sh
|
sudo ./build-iso.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Construit l'image puis génère une ISO Anaconda dans le répertoire `output/`. L'ISO utilise Btrfs comme système de fichiers root.
|
Construit l'image puis génère une ISO Anaconda dans le répertoire `output/`. L'ISO utilise Btrfs comme système de fichiers root.
|
||||||
|
|
||||||
|
Le script utilise `sudo podman` et le storage root de Podman : lance-le avec `sudo` pour que l'image construite soit visible par `bootc-image-builder`.
|
||||||
|
|
||||||
### Publier l'image sur Docker Hub
|
### Publier l'image sur Docker Hub
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./push-image.sh
|
./push-image.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Pousse l'image vers `docker.io/tintounn/my-fedora:latest`
|
Pousse l'image vers `docker.io/tintounn/my-fedora:latest`.
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
- **Base** : `registry.fedoraproject.org/fedora-bootc:42`
|
- **Base** : `registry.fedoraproject.org/fedora-bootc:44`
|
||||||
- **Type** : Image conteneur bootable (Bootc)
|
- **Type** : Image conteneur bootable (Bootc)
|
||||||
- **Target** : Système graphique (graphical.target)
|
- **Target** : Système graphique (`graphical.target`)
|
||||||
|
- **Dépôts supplémentaires** : Mullvad, Copr `yannmasoch/nautilus-my-computer`
|
||||||
|
|
||||||
## Services Activés
|
## Services Activés
|
||||||
|
|
||||||
- GDM (GNOME Display Manager)
|
- `gdm.service` (GNOME Display Manager)
|
||||||
- NetworkManager
|
- `NetworkManager.service`
|
||||||
- Bluetooth
|
- `bluetooth.service`
|
||||||
- Podman Socket
|
- `podman.socket`
|
||||||
- CUPS (Impression)
|
- `cups.service`
|
||||||
|
- `mullvad-daemon.service`
|
||||||
|
- `flatpak-first-boot.service` (ajoute Flathub et installe Bazaar au premier démarrage)
|
||||||
|
|
||||||
## Intégration Continue
|
## Intégration Continue
|
||||||
|
|
||||||
@@ -99,6 +116,11 @@ Le pipeline CI construit et publie automatiquement l'image sur Docker Hub.
|
|||||||
├── build.sh # Script de construction d'image
|
├── build.sh # Script de construction d'image
|
||||||
├── build-iso.sh # Script de génération d'ISO
|
├── build-iso.sh # Script de génération d'ISO
|
||||||
├── push-image.sh # Script de publication
|
├── push-image.sh # Script de publication
|
||||||
|
├── iso.toml # Configuration de l'installeur Anaconda
|
||||||
|
├── config/
|
||||||
|
│ └── xorg-keyboard.conf # Clavier FR pour GDM
|
||||||
|
├── services/
|
||||||
|
│ └── flatpak-first-boot.service
|
||||||
├── .woodpecker/
|
├── .woodpecker/
|
||||||
│ └── ci.yaml # Configuration Woodpecker CI
|
│ └── ci.yaml # Configuration Woodpecker CI
|
||||||
└── output/ # Répertoire de sortie pour les ISO (généré)
|
└── output/ # Répertoire de sortie pour les ISO (généré)
|
||||||
@@ -107,8 +129,11 @@ Le pipeline CI construit et publie automatiquement l'image sur Docker Hub.
|
|||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
- Les mises à jour automatiques Bootc sont masquées pour un contrôle manuel
|
- Les mises à jour automatiques Bootc sont masquées pour un contrôle manuel
|
||||||
- L'image utilise l'isolation chroot lors de la construction
|
- 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
|
- 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
|
||||||
|
- 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
|
## Licence
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ sudo podman run --rm -it \
|
|||||||
--type iso \
|
--type iso \
|
||||||
--local \
|
--local \
|
||||||
--rootfs btrfs \
|
--rootfs btrfs \
|
||||||
--use-lib-repo=true \
|
|
||||||
localhost/${IMAGE_NAME}:${IMAGE_TAG}
|
localhost/${IMAGE_NAME}:${IMAGE_TAG}
|
||||||
|
|
||||||
echo "[SUCCÈS] ISO généré dans $OUTPUT_DIR"
|
echo "[SUCCÈS] ISO généré dans $OUTPUT_DIR"
|
||||||
@@ -3,8 +3,7 @@ set -euo pipefail
|
|||||||
|
|
||||||
IMAGE_NAME="tintounn/my-fedora"
|
IMAGE_NAME="tintounn/my-fedora"
|
||||||
IMAGE_TAG="latest"
|
IMAGE_TAG="latest"
|
||||||
OUTPUT_DIR="output/"
|
PULL_POLICY="${PULL_POLICY:-missing}"
|
||||||
|
|
||||||
echo "[INFO] Build de l'image avec sudo..."
|
|
||||||
buildah bud --isolation chroot -t localhost/${IMAGE_NAME}:${IMAGE_TAG} .
|
|
||||||
|
|
||||||
|
echo "[INFO] Build de l'image (pull=${PULL_POLICY})..."
|
||||||
|
buildah bud --pull="${PULL_POLICY}" --isolation chroot -t localhost/${IMAGE_NAME}:${IMAGE_TAG} .
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# Configuration Umbriel par défaut, commune à tous les utilisateurs
|
||||||
|
# (XDG_CONFIG_DIRS). Un fichier ~/.config/umbriel/config.toml la remplace.
|
||||||
|
#
|
||||||
|
# On charge la configuration de départ fournie par le paquet (keybinds,
|
||||||
|
# layout, effets, window/layer rules) puis on démarre Noctalia avec la session.
|
||||||
|
[include]
|
||||||
|
files = ["/usr/share/umbriel/config.toml"]
|
||||||
|
|
||||||
|
[general]
|
||||||
|
autostart = ["noctalia"]
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Section "InputClass"
|
||||||
|
Identifier "system-keyboard"
|
||||||
|
MatchIsKeyboard "on"
|
||||||
|
Option "XkbModel" "pc105"
|
||||||
|
Option "XkbLayout" "fr"
|
||||||
|
EndSection
|
||||||
@@ -3,15 +3,25 @@ Description=Installation des Flatpaks au premier démarrage
|
|||||||
After=network-online.target flatpak-system-helper.service
|
After=network-online.target flatpak-system-helper.service
|
||||||
Wants=network-online.target
|
Wants=network-online.target
|
||||||
ConditionPathExists=!/var/lib/flatpak/.firstboot-done
|
ConditionPathExists=!/var/lib/flatpak/.firstboot-done
|
||||||
|
# network-online.target ne garantit pas que la resolution DNS soit deja
|
||||||
|
# operationnelle (NetworkManager atteint CONNECTED_GLOBAL avant que le
|
||||||
|
# resolver ne reponde). On autorise donc plusieurs tentatives avant d'abandonner.
|
||||||
|
StartLimitIntervalSec=600
|
||||||
|
StartLimitBurst=30
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
ExecStart=/bin/bash -c '\
|
ExecStart=/bin/bash -c '\
|
||||||
|
flatpak remote-add --if-not-exists --system flathub https://dl.flathub.org/repo/flathub.flatpakrepo && \
|
||||||
flatpak install -y --system flathub runtime/org.gnome.Platform/x86_64/49 && \
|
flatpak install -y --system flathub runtime/org.gnome.Platform/x86_64/49 && \
|
||||||
flatpak install -y --system flathub io.github.kolunmi.Bazaar && \
|
flatpak install -y --system flathub io.github.kolunmi.Bazaar && \
|
||||||
touch /var/lib/flatpak/.firstboot-done'
|
touch /var/lib/flatpak/.firstboot-done'
|
||||||
|
# Relance la sequence si le reseau/DNS n'est pas encore pret au premier essai.
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=15s
|
||||||
StandardOutput=journal
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
Reference in new issue
Block a user