DKMS pulls in kernel-debug-devel which is useless and breaks puppet deployment of DKMS-related apps
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