Accepting request 1208897 from X11:Drivers:Video:Redesign

- cuda-flavor
  * provide nvidia-open-driver-G06-kmp = %version to workaround
    broken cuda-drivers
- nv-prefer-signed-open-driver
  * added comments for requirements

- latest change hardcoded to 555.42.06; we no longer need this 
  for 560 

- nv-prefer-signed-open-driver:
  * added specicic versions of cuda-drivers/cuda-drivers-xxx as
    preconditions for requiring specific version of
    nvidia-compute-G06 

- nv-prefer-signed-open-driver:
  * no longer require a specific version of
    nvidia-open-driver-G06-signed-cuda-kmp, so it can select the
    correct open driver KMP matching the cuda-runtime version
- cuda-flavor:
  * added nvidia-compute-G06 = %version to preconditions for
    requiring kernel-firmware-nvidia-gspx-G06, since
    nvidia-compute-utils-G06 does not have a version-specific
    requires on nvidia-compute-G06

- cuda-flavor: 
  * require kernel-firmware-nvidia-gspx-G06 instead of 
    kernel-firmware-nvidia-gspx-G06-cuda (which provides also
    kernel-firmware-nvidia-gspx-G06)
  * trigger removal of driver modules also on
    kernel-firmware-nvidia-gspx-G06

- no longer hard-require kernel firmware package, but install it
  automatically once nvidia-compute-utils-G06 gets installed
- trigger removal of driver modules with non-existing or wrong
  firmware when (new) firmware gets installed

OBS-URL: https://build.opensuse.org/request/show/1208897
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/nvidia-open-driver-G06-signed?expand=0&rev=46
This commit is contained in:
Ana Guerrero 2024-10-20 08:04:29 +00:00 committed by Git OBS Bridge
commit ff33f4a0e0
4 changed files with 75 additions and 4 deletions

6
kmp-trigger.sh Normal file
View File

@ -0,0 +1,6 @@
# trigger removal of driver modules with non-existing or wrong
# firmware when (new) firmware gets installed
test -e /sys/module/nvidia && \
cat /sys/class/drm/card*/device/vendor | grep -vq 10de && \
rmmod nvidia_drm nvidia_uvm nvidia_modeset video nvidia &> /dev/null

View File

@ -1,3 +1,57 @@
-------------------------------------------------------------------
Fri Oct 18 13:31:46 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- cuda-flavor
* provide nvidia-open-driver-G06-kmp = %version to workaround
broken cuda-drivers
- nv-prefer-signed-open-driver
* added comments for requirements
-------------------------------------------------------------------
Fri Oct 18 12:28:39 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- latest change hardcoded to 555.42.06; we no longer need this
for 560
-------------------------------------------------------------------
Fri Oct 18 11:49:46 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- nv-prefer-signed-open-driver:
* added specicic versions of cuda-drivers/cuda-drivers-xxx as
preconditions for requiring specific version of
nvidia-compute-G06
-------------------------------------------------------------------
Fri Oct 18 10:30:28 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- nv-prefer-signed-open-driver:
* no longer require a specific version of
nvidia-open-driver-G06-signed-cuda-kmp, so it can select the
correct open driver KMP matching the cuda-runtime version
- cuda-flavor:
* added nvidia-compute-G06 = %version to preconditions for
requiring kernel-firmware-nvidia-gspx-G06, since
nvidia-compute-utils-G06 does not have a version-specific
requires on nvidia-compute-G06
-------------------------------------------------------------------
Wed Oct 16 17:59:46 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- cuda-flavor:
* require kernel-firmware-nvidia-gspx-G06 instead of
kernel-firmware-nvidia-gspx-G06-cuda (which provides also
kernel-firmware-nvidia-gspx-G06)
* trigger removal of driver modules also on
kernel-firmware-nvidia-gspx-G06
-------------------------------------------------------------------
Wed Oct 16 12:44:18 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- no longer hard-require kernel firmware package, but install it
automatically once nvidia-compute-utils-G06 gets installed
- trigger removal of driver modules with non-existing or wrong
firmware when (new) firmware gets installed
-------------------------------------------------------------------
Sat Sep 21 12:02:59 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>

View File

@ -80,6 +80,7 @@ Source10: pci_ids-supported
Source11: pesign-copy-sources
Source12: pesign-spec-macros
Source14: group-source-files.pl
Source15: kmp-trigger.sh
Patch0: persistent-nvidia-id-string.patch
%if "%{flavor}" == "cuda"
Patch1: kernel-6.10.patch
@ -111,6 +112,12 @@ ExclusiveArch: x86_64 aarch64
%define kmp_template_name /usr/lib/rpm/kernel-module-subpackage
%endif
%(sed -e '/^%%post\>/ r %_sourcedir/kmp-post.sh' -e '/^%%postun\>/ r %_sourcedir/kmp-postun.sh' %kmp_template_name >%_builddir/nvidia-kmp-template)
%if "%{flavor}" == "cuda"
%(echo "%triggerin -p /bin/bash -n %%{-n*}-kmp-%1 -- kernel-firmware-nvidia-gspx-G06-cuda = %{version}" >> %_builddir/nvidia-kmp-template)
%(cat %_sourcedir/kmp-trigger.sh >> %_builddir/nvidia-kmp-template)
%endif
%(echo "%triggerin -p /bin/bash -n %%{-n*}-kmp-%1 -- kernel-firmware-nvidia-gspx-G06 = %{version}" >> %_builddir/nvidia-kmp-template)
%(cat %_sourcedir/kmp-trigger.sh >> %_builddir/nvidia-kmp-template)
%kernel_module_package -n %{name} -t %_builddir/nvidia-kmp-template -f %_sourcedir/kmp-filelist -p %_sourcedir/preamble
%{expand:%(
for f in %{flavors_to_build}; do \
@ -124,9 +131,11 @@ ExclusiveArch: x86_64 aarch64
%package -n nv-prefer-signed-open-driver
%define version_major %(i=%{version}; echo ${i%%%%.*})
Summary: Prefer the signed open driver when installing CUDA
Requires: nvidia-open-driver-G06-signed-cuda-kmp = %version
Requires: nvidia-open-driver-G06-signed-cuda-kmp
# This avoids the package being uninstallable when the CUDA repo is unavaliable preventing problems in staging
Requires: ( nvidia-compute-G06 = %version if ( cuda-drivers or cuda-drivers-%version_major ) )
# Hard code version 555.42.06 as this requires is only needed for this version
# but since this meta package should apply to all versions.
Requires: ( nvidia-compute-G06 = 555.42.06 if ( cuda-drivers = 555.42.06 or cuda-drivers-%version_major = 555.42.06) )
%description -n nv-prefer-signed-open-driver
By installing this package, the signed NVIDIA open driver built by SUSE will be preferred during installation

View File

@ -8,8 +8,10 @@ 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
Requires: kernel-firmware-nvidia-gspx-G06-cuda = %{-v*}
# workaround for broken cuda-drivers
Provides: nvidia-open-driver-G06-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))
%else
Requires: kernel-firmware-nvidia-gspx-G06 = %{-v*}
Requires: (kernel-firmware-nvidia-gspx-G06 = %{-v*} if nvidia-compute-utils-G06 = %{-v*})
%endif
Obsoletes: nvidia-open-driver-G06 = %{-v*}