From 9d83d07f39a99bf0fbd4fa85c684084771378ddc Mon Sep 17 00:00:00 2001 From: Benjamin Sherman Date: Mon, 3 Feb 2025 07:35:22 -0600 Subject: [PATCH] fix(ci): ensure use of negativo17-nvidia repo (not multimedia) (#314) * fix(ci): ensure use of negativo17-nvidia repo (not multimedia) * refactor: change ordering * disabling multimedia breaks mesa, try prioritization * use dnf5 if available; disable multimedia * remove quotes --------- Co-authored-by: m2 <69128853+m2Giles@users.noreply.github.com> --- nvidia-install.sh | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/nvidia-install.sh b/nvidia-install.sh index d177218..d10d1e8 100755 --- a/nvidia-install.sh +++ b/nvidia-install.sh @@ -4,23 +4,37 @@ set -ouex pipefail RELEASE="$(rpm -E %fedora)" +INSTALL="dnf5 install -y" +if [[ ! $(command -v dnf5) ]]; then + INSTALL="rpm-ostree install" +fi + # disable any remaining rpmfusion repos sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/rpmfusion*.repo sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/fedora-cisco-openh264.repo ## nvidia install steps -rpm-ostree install /tmp/akmods-rpms/ublue-os/ublue-os-nvidia-addons-*.rpm +${INSTALL} /tmp/akmods-rpms/ublue-os/ublue-os-nvidia-addons-*.rpm -# enable repo provided by ublue-os-nvidia-addons +# enable repos provided by ublue-os-nvidia-addons +sed -i '0,/enabled=0/{s/enabled=0/enabled=1/}' /etc/yum.repos.d/negativo17-fedora-nvidia.repo sed -i '0,/enabled=0/{s/enabled=0/enabled=1/}' /etc/yum.repos.d/nvidia-container-toolkit.repo +# Disable Multimedia +NEGATIVO17_MULT_PREV_ENABLED=N +if [[ -f /etc/yum.repos.d/negativo17-fedora-multimedia.repo && -n $(grep enabled=1 /etc/yum.repos.d/negativo17-fedora-multimedia.repo) ]]; then + NEGATIVO17_MULT_PREV_ENABLED=Y + echo "disabling negativo17-fedora-multimedia to ensure negativo17-fedora-nvidia is used" + sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-multimedia.repo +fi + # Enable staging for supergfxctl if repo file exists if [[ -f /etc/yum.repos.d/_copr_ublue-os-staging.repo ]]; then - sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-staging.repo + sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-staging.repo else - # Otherwise, retrieve the repo file for staging - curl -Lo /etc/yum.repos.d/_copr_ublue-os-staging.repo https://copr.fedorainfracloud.org/coprs/ublue-os/staging/repo/fedora-"${RELEASE}"/ublue-os-staging-fedora-"${RELEASE}".repo + # Otherwise, retrieve the repo file for staging + curl -Lo /etc/yum.repos.d/_copr_ublue-os-staging.repo https://copr.fedorainfracloud.org/coprs/ublue-os/staging/repo/fedora-"${RELEASE}"/ublue-os-staging-fedora-"${RELEASE}".repo fi source /tmp/akmods-rpms/kmods/nvidia-vars @@ -33,7 +47,7 @@ else VARIANT_PKGS="" fi -rpm-ostree install \ +${INSTALL} \ libnvidia-fbc \ libnvidia-ml.i686 \ libva-nvidia-driver \ @@ -48,7 +62,8 @@ rpm-ostree install \ ## nvidia post-install steps -# disable repo provided by ublue-os-nvidia-addons +# disable repos provided by ublue-os-nvidia-addons +sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-nvidia.repo sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/nvidia-container-toolkit.repo # Disable staging @@ -72,3 +87,8 @@ if [[ "${IMAGE_NAME}" == "sericea" ]]; then mv /etc/sway/environment{,.orig} install -Dm644 /usr/share/ublue-os/etc/sway/environment /etc/sway/environment fi + +# re-enable negativo17-mutlimedia since we disabled it +if [[ "${NEGATIVO17_MULT_PREV_ENABLED}" = "Y" ]]; then + sed -i '0,/enabled=0/{s/enabled=0/enabled=1/}' /etc/yum.repos.d/negativo17-fedora-multimedia.repo +fi