Skip to content

Commit

Permalink
fix(ci): ensure use of negativo17-nvidia repo (not multimedia) (#314)
Browse files Browse the repository at this point in the history
* 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 <[email protected]>
  • Loading branch information
bsherman and m2Giles authored Feb 3, 2025
1 parent 0f01259 commit 9d83d07
Showing 1 changed file with 27 additions and 7 deletions.
34 changes: 27 additions & 7 deletions nvidia-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -33,7 +47,7 @@ else
VARIANT_PKGS=""
fi

rpm-ostree install \
${INSTALL} \
libnvidia-fbc \
libnvidia-ml.i686 \
libva-nvidia-driver \
Expand All @@ -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
Expand All @@ -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

0 comments on commit 9d83d07

Please sign in to comment.