DKMS pulls in kernel-debug-devel which is useless and breaks puppet deployment of DKMS-related apps

Latest response

I'd like to get the community's take on this in addition to submitting a support case which I'll do after I write this up.

Problem: DKMS-dependent apps need kernel-devel in order to build dynamic kernel modules. DKMS has a dependency of 'kernel-devel'. Sadly, the package kernel-debug-devel testifies to RPM that it meets that dependency, and for whatever reason, it is pulled in before the true kernel-devel package (maybe because kernel-deb* is before kernel-dev* alphabetically?). *1

So once this is installed, DKMS thinks it can roll kernel modules, but since kernel-debug-devel doesn't provide kernel source files, it actually can't - thus no OpenAFS for you!

The next issue in this cascade of woe is that once this dependency for 'kernel-devel' is satisfied by the RPM 'kernel-debug-devel', the RPM database shows that 'kernel-devel' is installed to the extent that Puppet can check. *2 Since one of the tests for 'kernel-devel' is met by 'kernel-debug-devel', you cannot apply 'kernel-devel' RPM via puppet unless you do so before 'kernel-debug-devel' RPM is on the host.

I believe all of this sadness is caused by incorrect provides of kernel-debug-devel RPM as shown in *3.

1.

 ===================================================================================================================================================================================================================
  Package                                              Arch                                     Version                                                Repository                                              Size 
===================================================================================================================================================================================================================
Installing:
 dkms                                                 noarch                                   2.2.0.3-26.el7                                         epel-el7-x86_64                                         76 k
Installing for dependencies:
 kernel-debug-devel                                   x86_64                                   3.10.0-123.9.3.el7                                     rhel-x86_64-server-7                                   9.0 M

Transaction Summary
===================================================================================================================================================================================================================
Install  1 Package (+1 Dependent package) 


2. 

/bin/rpm -q kernel-devel --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\n'
package kernel-devel is not installed
/bin/rpm -q kernel-devel --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\n' --whatprovides
kernel-debug-devel 0 3.10.0 123.9.3.el7 x86_64


3.

rpm -ql kernel-debug-devel --provides | grep kernel-devel
kernel-devel-x86_64 = 3.10.0-123.9.3.el7.debug
kernel-devel = 3.10.0-123.9.3.el7.debug
kernel-devel-uname-r = 3.10.0-123.9.3.el7.x86_64.debug

Responses