Refactor cleanup and installation steps in build script

This commit is contained in:
humocs-man
2026-04-18 09:49:43 +02:00
committed by GitHub
parent fe33d565d4
commit d0eee96d3b
+31 -65
View File
@@ -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!"