Description of problem:
With RHEL/CentOS 7.3 util-linux will be upgraded from util-linux-2.23.2-26.el7_2.3.x86_64 to util-linux-2.23.2-33.el7.x86_64. But this breaks the dependency of spacewalk-dobby.
Version-Release number of selected component (if applicable):
Everytime I run "yum upgrade"
Steps to Reproduce:
1. run "yum upgrade" on EL 7.2 to get EL 7.3
--> Processing Dependency: /sbin/runuser for package: spacewalk-dobby-2.6.6-1.el7.noarch
--> Finished Dependency Resolution
Error: Package: spacewalk-dobby-2.6.6-1.el7.noarch (spacewalk)
Removing: util-linux-2.23.2-26.el7_2.3.x86_64 (@updates)
Updated By: util-linux-2.23.2-33.el7.x86_64 (base)
yum upgrade without conflicts.
The old version has the binary runuser in /sbin/runuser and in /usr/sbin/runuser. The new version only in /usr/sbin/runuser.
But spacewalk-dobby wants a /sbin/runuser.
I made a mistake, /sbin/runuser is there with both versions of util-linux.
And I found a solution for the dependency problem:
First update only spacewalk-dobby:
yum update spacewalk-dobby
Then update the rest:
I hit this same problem but the solution of first updating spacewalk-dobby by itself did not work for me.
[packages versions spacewalk-dobby.noarch 2.7.6-1.el7 and util-linux.x86_64 2.23.2-43.el7_4.2 in my case]
It seems that the real fix is to either
a) change spacewalk-dobby's rpm .spec file to require /usr/sbin/runuser rather than /sbin/runuser (an aside: it looks like the rpm software in RHEL/CentOS 7 is not new enough to support a boolean OR in the "Requires:" field.)
b) add /sbin/runuser to the "Provides:" section of until-linux's rpm .spec file to declare that it does in fact provide /sbin/runuser via a symbolic link
The workaround that did work for me is to create and install a compatibility shim package:
[root@ ~]# cat runuser-location-compat-dummy.spec
Summary: Compatibility shim, provides /sbin/runuser
Compatibility shim, the util-linux package provides the runuser
command but at /usr/sbin/runuser and the rpm .spec does not
explicitly say it also provides /sbin/runuser via symlinking.
Some packages (spacewalk-dobby) depend on "/sbin/runuser"
[root@ ~]# rpmbuild -bb runuser-location-compat-dummy.spec ^C
[root@ ~]# yum localinstall /root/rpmbuild/RPMS/x86_64/runuser-location-compat-dummy-1.0.0-1.el7.centos.x86_64.rpm
[root@ ~]# yum upgrade
Fixed in spacewalk git by
1412200 - corrected sbin path on RHEL7
Spacewalk 2.10 has been released.