diff --git a/setup/scripts/install-packages b/setup/scripts/install-packages index d7785c4..0007765 100755 --- a/setup/scripts/install-packages +++ b/setup/scripts/install-packages @@ -1405,8 +1405,17 @@ soft "the multimedia group update" \ sync log "Swapping ffmpeg-free for ffmpeg" soft "the ffmpeg swap" sudo dnf swap -y 'ffmpeg-free' 'ffmpeg' --allowerasing -log "Swapping mesa-va-drivers for mesa-va-drivers-freeworld" -soft "the mesa driver swap" sudo dnf swap -y mesa-va-drivers mesa-va-drivers-freeworld +# mesa-va-drivers-freeworld Provides mesa-va-drivers, so once the swap has been +# done it is the only thing providing the name we ask dnf to remove. `dnf swap` +# then resolves to removing and installing the same package in one transaction +# and fails with "conflicting requests", which reports install-packages as a +# failed stage on every subsequent run. Guard on the end state instead. +if rpm -q mesa-va-drivers-freeworld >/dev/null 2>&1; then + log "mesa-va-drivers-freeworld is already installed; swap not needed" +else + log "Swapping mesa-va-drivers for mesa-va-drivers-freeworld" + soft "the mesa driver swap" sudo dnf swap -y mesa-va-drivers mesa-va-drivers-freeworld +fi log "Upgrading Multimedia group with optional packages" soft "the optional Multimedia upgrade" sudo dnf4 group upgrade -y --with-optional Multimedia log "Installing GStreamer plugins (bad, good, base)"