From dd913412f4de06bfc9f85b5f830794d4b20e33b958b7d4340c9d1712c60f6ab0 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Fri, 29 Nov 2024 12:14:25 +0000 Subject: [PATCH] - Add 'dummy' firmware package on SLE to work around update issues. On SLE, the firmware is installed directly from an NVIDIA-hosted repo. - Improve handling of conflicts between different flavors (gfx vs. CUDA) (bsc#1233332). OBS-URL: https://build.opensuse.org/package/show/X11:Drivers:Video:Redesign/nvidia-open-driver-G06-signed?expand=0&rev=153 --- nvidia-open-driver-G06-signed.changes | 13 +++++++++++++ nvidia-open-driver-G06-signed.spec | 22 +++++++++++++++++++++- preamble | 14 ++++++++++---- 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/nvidia-open-driver-G06-signed.changes b/nvidia-open-driver-G06-signed.changes index 5b3ae49..ed28684 100644 --- a/nvidia-open-driver-G06-signed.changes +++ b/nvidia-open-driver-G06-signed.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Nov 29 10:02:34 UTC 2024 - Egbert Eich + +- Add 'dummy' firmware package on SLE to work around update + issues. On SLE, the firmware is installed directly from + an NVIDIA-hosted repo. + ------------------------------------------------------------------- Thu Nov 28 12:28:40 UTC 2024 - Stefan Dirsch @@ -12,6 +19,12 @@ Mon Nov 25 19:16:46 UTC 2024 - Stefan Dirsch it fixed x86_64 build more-or-less accidently but broke aarch64 build completely ... +------------------------------------------------------------------- +Mon Nov 25 13:34:20 UTC 2024 - Egbert Eich + +- Improve handling of conflicts between different flavors + (gfx vs. CUDA) (bsc#1233332). + ------------------------------------------------------------------- Mon Nov 25 12:08:18 UTC 2024 - Stefan Dirsch diff --git a/nvidia-open-driver-G06-signed.spec b/nvidia-open-driver-G06-signed.spec index acabc92..bace327 100644 --- a/nvidia-open-driver-G06-signed.spec +++ b/nvidia-open-driver-G06-signed.spec @@ -1,5 +1,5 @@ # -# spec file +# spec file for package nvidia-open-driver-G06-signed # # Copyright (c) 2024 SUSE LLC # @@ -25,6 +25,9 @@ ExclusiveArch: do_not_build %endif %{bcond_without cuda} +%define kind cuda +%else +%define kind gfx %endif %if %{undefined kernel_module_directory} %if 0%{?suse_version} >= 1550 @@ -140,6 +143,23 @@ By installing this package, the signed NVIDIA open driver built by SUSE will be of CUDA components. Simply run: `zypper install --no-recommends cuda-runtime- nv-prefer-signed-open-driver` +%package -n kernel-firmware-nvidia-gspx-G06%{?with_cuda:-cuda} +Summary: Kernel firmware file for open NVIDIA kernel module driver G06 +Provides: multiversion(kernel) +Obsoletes: kernel-firmware-nvidia-gsp-G06 = 535.86.05 +Requires: (kernel-firmware-nvidia-gspx-G06 = %{version} if (nvidia-compute-utils-G06 = %{version} or nvidia-compute-G06 = %{version} or sle-module-NVIDIA-compute-release)) +%if 0%{?sle_version} >= 150700 +BuildArch: noarch +%endif + +%description -n kernel-firmware-nvidia-gspx-G06%{?with_cuda:-cuda} +This package fetches the versioned kernel firmware file "gsp.bin" for +the OpenSource NVIDIA kernel module driver G06 once it's available. + +%if 0%{?sle_version:1} && %{with cuda} +%files -n kernel-firmware-nvidia-gspx-G06%{?with_cuda:-cuda} +%endif + %if %{with cuda} %files -n nv-prefer-signed-open-driver %endif diff --git a/preamble b/preamble index 4dcd1e1..7fedc0f 100644 --- a/preamble +++ b/preamble @@ -4,19 +4,25 @@ Requires: group(video) Provides: nvidia-open-driver-G06 = %{-v*} %if %{with cuda} Provides: nvidia-open-driver-G06-signed-cuda-kmp-%1 = %{-v*} +# Provide plain version to simplify installation Provides: nvidia-open-driver-G06-signed-kmp = %{-v*} Provides: nvidia-open-driver-G06-signed-kmp-%1 = %{-v*} -Conflicts: nvidia-open-driver-G06-signed-kmp -Conflicts: nvidia-open-driver-G06-signed-kmp-%1 # workaround for broken cuda-drivers +# CUDA 560 doesn't list the signed driver as alternative in %Requires Provides: nvidia-open-driver-G06-kmp = %{-v*} Provides: nvidia-open-driver-G06-kmp-%1 = %{-v*} -# resolve self conflicts of -cuda KMP during update by adding +# resolve self conflicts of -cuda KMP during update by adding # obsoletes to older versions (boo#1233332) Obsoletes: nvidia-open-driver-G06-signed-cuda-kmp-%1 < %{-v*} Obsoletes: nvidia-open-driver-G06-signed-cuda-kmp < %{-v*} -Requires: (kernel-firmware-nvidia-gspx-G06 = %{-v*} if (nvidia-compute-utils-G06 = %{-v*} or nvidia-compute-G06 = %{-v*} or sle-module-NVIDIA-compute-release)) +Requires: kernel-firmware-nvidia-gspx-G06-cuda = %{-v*} %else Requires: (kernel-firmware-nvidia-gspx-G06 = %{-v*} if nvidia-compute-utils-G06 = %{-v*}) %endif +Provides: nvidia-open-signed-kmp = %version +%define my_kind nvidia-open-signed-kmp(kind) = %{kind} +%define other_kind nvidia-open-signed-kmp(kind) != %{kind} +Provides: %my_kind +Conflicts: %other_kind + Obsoletes: nvidia-open-driver-G06 = %{-v*}