From d0eee96d3b02e1dafd255a6758ce0c429ee08994 Mon Sep 17 00:00:00 2001 From: humocs-man <251756307+humocs-man@users.noreply.github.com> Date: Sat, 18 Apr 2026 09:49:43 +0200 Subject: [PATCH] Refactor cleanup and installation steps in build script --- build/10-build.sh | 96 +++++++++++++++-------------------------------- 1 file changed, 31 insertions(+), 65 deletions(-) diff --git a/build/10-build.sh b/build/10-build.sh index 1296b6c..fa8173f 100755 --- a/build/10-build.sh +++ b/build/10-build.sh @@ -2,70 +2,46 @@ set -eoux pipefail ############################################################################### -# cleanup-function +# cleanup-function (Unverändert, da sehr effektiv für Image-Größe) ############################################################################### cleanup() { echo "Starting final cleanup..." - # 1. Ungenutzte Pakete entfernen dnf5 autoremove -y || true - - #2 Bereinigung Cache + # 2. Bereinigung Cache dnf5 clean all - - # 3. Tiefenreinigung der Repository-Strukturen - # Wir löschen alles ab Ebene 2, um die schweren Repo-Ordner zu entfernen, - # aber lassen /var/lib/dnf und /var/lib/rpm selbst (Ebene 0 & 1) bestehen! + # 3. Tiefenreinigung der Repository-Strukturen (Reduziert Layer-Größe) find /var/lib/dnf -mindepth 2 -delete || true find /var/lib/rpm -mindepth 2 -delete || true - - # 4. Reinigung der temporären Verzeichnisse (Löst die /run, /tmp, /var/tmp Warnungen) - # Wir löschen den Inhalt, aber nicht das Verzeichnis selbst. + # 4. Reinigung der temporären Verzeichnisse rm -rf /run/* /tmp/* /var/tmp/* || true - - # 5. Entfernen von eventuellen 'countme' Dateien (Spezialfall für DNF5/RPM) + # 5. Entfernen von 'countme' Dateien find /var/lib/dnf -name "countme" -delete || true find /var/lib/rpm -name "countme" -delete || true - echo "Cleanup complete! Image is lean and clean." } - ############################################################################### # Fedora version (used for RPM Fusion) ############################################################################### - FEDORA_VERSION="$(rpm -E %fedora)" ############################################################################### # Enable RPM Fusion (free + nonfree) ############################################################################### - dnf5 install -y \ https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VERSION}.noarch.rpm \ https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${FEDORA_VERSION}.noarch.rpm ############################################################################### -# Multimedia stack (Mesa freeworld + codecs) +# Transaction 1: Multimedia Stack (Mesa + Codecs + Group) +# Zusammengefasst, um Abhängigkeiten in einem Schritt zu lösen. ############################################################################### - -# Replace Fedora Mesa with freeworld variants +echo "Installing Multimedia stack (Mesa Freeworld, Codecs & Groups)..." dnf5 install -y \ mesa-va-drivers-freeworld \ mesa-vdpau-drivers-freeworld \ mesa-vulkan-drivers-freeworld \ - --skip-unavailable \ - --allowerasing - - - -# Install full multimedia group (RPM Fusion maintained) -dnf5 group install -y multimedia \ - --with-optional \ - --allowerasing - -# Explicit codec safety net -dnf5 install -y \ ffmpeg \ ffmpeg-libs \ libavcodec-freeworld \ @@ -74,10 +50,14 @@ dnf5 install -y \ gstreamer1-plugins-ugly \ --allowerasing -############################################################################### -# Virtualization stack (desktop-focused, minimal) -############################################################################### +# Die Gruppeninstallation bleibt separat, da sie eine eigene logische Einheit ist +dnf5 group install -y multimedia --with-optional --allowerasing +############################################################################### +# Transaction 2: Virtualization, Tools & Hardware Helpers +# Zusammengefasst für effizientere Paketauflösung. +############################################################################### +echo "Installing Virtualization, Plasma Setup and Hardware Helpers..." dnf5 install -y \ libvirt-daemon \ libvirt-daemon-driver-qemu \ @@ -87,45 +67,34 @@ dnf5 install -y \ qemu-img \ virt-manager \ virt-viewer \ - distrobox + distrobox \ + plasma-setup \ + libva-utils \ + intel-media-driver \ + --allowerasing || true ############################################################################### -# Steam (RPM Fusion nonfree) +# Transaction 3: Steam (i686 dependencies) +# Getrennt, da Architektur-Wechsel (i686) oft eigene Transaktionen erfordern. ############################################################################### - +echo "Installing Steam and i686 libraries..." dnf5 install -y \ steam \ mesa-dri-drivers.i686 \ mesa-libGL.i686 \ - mesa-libEGL.i686 + mesa-libEGL.i686 \ + --allowerasing ############################################################################### -# Optional: hardware video acceleration helpers +# Cleanup of Unwanted Packages ############################################################################### - -dnf5 install -y \ - libva-utils \ - intel-media-driver || true +echo "Removing Firefox and langpacks..." +dnf5 remove -y firefox firefox-langpacks* || true ############################################################################### -# Install Plasma Setup +# Services Configuration ############################################################################### - -dnf5 install -y \ -plasma-setup - -############################################################################### -# Remove Firefox and langpacks -############################################################################### - -dnf5 remove -y \ -firefox \ -firefox-langpacks* - -############################################################################### -# Services -############################################################################### - +echo "Enabling services..." systemctl enable libvirtd.service systemctl enable virtlogd.service systemctl enable podman.socket @@ -133,11 +102,8 @@ systemctl enable bluetooth.service systemctl enable plasma-setup.service systemctl enable bootc-fetch-apply-updates.timer - ############################################################################### -# Cleanup +# Final Cleanup ############################################################################### - cleanup - echo "Custom build complete!"