Removed the conflicts with and obsoletes for the driver packages

It does not work. Say, kernel 4.6.x does not support broadcom-wl version
5.x. However, installing kernel 4.6.x should not remove that driver
because the user might have a different kernel installed that supports
it.

It would be cleaner if the driver packages specified the minimum required
kernel versions, "kernel >= x.y.z" (the kernel has the appropriate
"Provides" for that). Same for the maximum kernel versions supported by
the driver.

Similar for the obsoletes: this kernel may provide the listed drivers
but we cannot be sure about other kernels the user might have installed.
A safer route seems to be not to require dkms-* directly but rather -
via "Requires: kmod(xxx)". Again, it is not the kernel's responsibility
to keep track of all this.

While at it, cleaned up the spec a bit more.
This commit is contained in:
Evgenii Shatokhin 2016-07-26 12:06:33 +03:00
parent 7b27d594bb
commit 61fcf120c7

View file

@ -226,21 +226,6 @@ processor mode, use the "nosmp" boot parameter.
%define kprovides1 %{kname} = %{kverrel}
%define kprovides2 kernel = %{tar_ver}
%define kprovides3 alsa = 1.0.27
%define kprovides_server drbd-api = 88
%define kobsoletes1 dkms-r8192se <= 0019.1207.2010-2
%define kobsoletes2 dkms-lzma <= 4.43-32
%define kobsoletes3 dkms-psb <= 4.41.1-7
# Add conflicts with the dkms packages that do not support this kernel.
# All driver versions must be carefully checked before adding them here.
%define kconflicts1 dkms-broadcom-wl < 6.30.223.248-3
%define kconflicts2 dkms-fglrx < 14.10.1006.1001-1
%define kconflicts3 dkms-nvidia-current < 331.38-5
%define kconflicts4 dkms-nvidia-long-lived < 304.108-8
%define kconflicts5 dkms-nvidia173 < 173.14.39-3
# nvidia96xx does not support this kernel or x11-server-1.13
Autoreqprov: no
@ -307,9 +292,6 @@ Provides: kernel-desktop \
%endif \
Requires(pre): %requires1 %requires2 %requires3 %requires4 \
Requires: %requires2 %requires5 \
Obsoletes: %kobsoletes1 %kobsoletes2 %kobsoletes3 \
Conflicts: %kconflicts1 %kconflicts2 %kconflicts3 \
Conflicts: %kconflicts4 %kconflicts5 \
Provides: should-restart = system \
Suggests: crda \
%if %build_devel \