From a7f021283cbcdac9b28fd11a3dfb8ffa7397929e Mon Sep 17 00:00:00 2001 From: fiftydinar <65243233+fiftydinar@users.noreply.github.com> Date: Sun, 6 Oct 2024 09:37:19 +0200 Subject: [PATCH] fix(akmods): Including V4L2Loopback & WL akmod fail the build --- modules/akmods/akmods.sh | 49 +++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/modules/akmods/akmods.sh b/modules/akmods/akmods.sh index d0d33f1..98a08c9 100644 --- a/modules/akmods/akmods.sh +++ b/modules/akmods/akmods.sh @@ -1,30 +1,53 @@ #!/usr/bin/env bash set -euo pipefail -ENABLE_MULTIMEDIA_REPO() { +ENABLE_AKMODS_REPO() { sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo - sed -i "0,/enabled/ s@enabled=0@enabled=1@g" /etc/yum.repos.d/negativo17-fedora-multimedia.repo -} - -DISABLE_MULTIMEDIA_REPO() { - sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-multimedia.repo } SET_HIGHER_PRIORITY_AKMODS_REPO() { echo "priority=90" >> /etc/yum.repos.d/_copr_ublue-os-akmods.repo } +INSTALL_RPM_FUSION() { + rpm-ostree install \ + https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \ + https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm +} + +UNINSTALL_RPM_FUSION() { + rpm-ostree uninstall rpmfusion-free-release rpmfusion-nonfree-release +} + get_yaml_array INSTALL '.install[]' "$1" +if [[ ${#INSTALL[@]} -lt 1 ]]; then + echo "ERROR: You didn't specify any akmod for installation!" + exit 1 +fi + INSTALL_PATH=("${INSTALL[@]/#/\/tmp/rpms/kmods/*}") INSTALL_PATH=("${INSTALL_PATH[@]/%/*.rpm}") INSTALL_STR=$(echo "${INSTALL_PATH[*]}" | tr -d '\n') -if [[ ${#INSTALL[@]} -gt 0 ]]; then - echo "Installing akmods" - echo "Installing: $(echo "${INSTALL[*]}" | tr -d '\n')" - SET_HIGHER_PRIORITY_AKMODS_REPO - ENABLE_MULTIMEDIA_REPO +# Universal Blue switched from RPMFusion to negativo17 repos +# Determine if RPMFusion for akmod is needed or not (WL & V4L2Loopback akmods currently require RPMFusion) + +rpm_fusion_dependent=false +for akmod in "${INSTALL[@]}"; do + if [[ "${akmod}" =~ ^(wl|v4l2loopback)$ ]]; then + rpm_fusion_dependent=true + fi +done + +echo "Installing akmods" +echo "Installing: $(echo "${INSTALL[*]}" | tr -d '\n')" +SET_HIGHER_PRIORITY_AKMODS_REPO +ENABLE_AKMODS_REPO +if "${rpm_fusion_dependent}"; then + INSTALL_RPM_FUSION rpm-ostree install ${INSTALL_STR} - DISABLE_MULTIMEDIA_REPO -fi + UNINSTALL_RPM_FUSION +else + rpm-ostree install ${INSTALL_STR} +fi