Red Hat Bugzilla – Bug 1484128
[packaging] fence-agents-common contains unexpected (redundant) files
Last modified: 2018-04-10 08:16:57 EDT
# find /usr/share/cluster -name 'fence_scsi_*' -print \ -exec rpm -qf {} \; -exec echo \; > /usr/share/cluster/fence_scsi_check > fence-agents-common-4.0.11-66.el7.x86_64 > fence-agents-scsi-4.0.11-66.el7.x86_64 > > /usr/share/cluster/fence_scsi_check.pl > fence-agents-common-4.0.11-66.el7.x86_64 > fence-agents-scsi-4.0.11-66.el7.x86_64 > > /usr/share/cluster/fence_scsi_check_hardreboot > fence-agents-common-4.0.11-66.el7.x86_64 > fence-agents-scsi-4.0.11-66.el7.x86_64 Apparently, fence-agents-common carries the files that are only expected to be delivered by fence-agents-scsi, i.e., a packaging bug. Moreover, it's unclear why the 4 identical files (incl. /usr/sbin/fence_scsi) are not constructed as 1 base file + 3 symlinks. Current arrangement is wasteful needlessly.
Just noticed also this almost 3 years old, wontfix'd [bug 1161332] that is partly relevant, although this time I complain about something different.
# diff -u <(rpm -qR fence-agents-common) <(rpm -qR fence-agents-scsi) > --- /dev/fd/63 2017-08-22 19:12:26.369628780 -0400 > +++ /dev/fd/62 2017-08-22 19:12:26.369628780 -0400 > @@ -1,11 +1,7 @@ > -/bin/sh > /usr/bin/python > -pexpect > -policycoreutils-python > -python > -python-pycurl > +fence-agents-common >= 4.0.11-66.el7 > rpmlib(CompressedFileNames) <= 3.0.4-1 > rpmlib(FileDigests) <= 4.6.0-1 > -rpmlib(PartialHardlinkSets) <= 4.0.4-1 > rpmlib(PayloadFilesHavePrefix) <= 4.0-1 > +sg3_utils > rpmlib(PayloadIsXz) <= 5.2-1 This justifies that those 3 files should only be delivered by fence-agents-scsi, because installing mere fence-agents-common will not ensure the vital prerequisite (sg3_utils) installed, which would turn any effort into failure mode.
Easily fixed with an exclude in the common subpackage: %{_datadir}/fence/fencing_snmp.py +%exclude %{_datadir}/cluster/fence_scsi_check*
Somewhat of a side note, as I was talking to a case-owner who was dealing with this and looking at his customer's scenario (yum update pcs pacemaker fence-agents-all): it seems like fence-agents-all enforces a minimum version for fence-agents-common, but that does not translate to a minimum version requirement of any other fence-agents that are installed. [root@fvm-r7-3-22 ~]# yum update pcs pacemaker fence-agents-all [...] Dependencies Resolved ===================================================================================================================== Package Arch Version Repository Size ===================================================================================================================== Updating: fence-agents-all x86_64 4.0.11-66.el7_4.1 rhel-7-server-rpms 17 k pacemaker x86_64 1.1.16-12.el7_4.2 rhel-ha-for-rhel-7-server-rpms 448 k pcs x86_64 0.9.158-6.el7 rhel-ha-for-rhel-7-server-rpms 4.8 M Installing for dependencies: audit-libs-python x86_64 2.7.6-3.el7 rhel-7-server-rpms 73 k checkpolicy x86_64 2.5-4.el7 rhel-7-server-rpms 290 k fence-agents-sbd x86_64 4.0.11-66.el7_4.1 rhel-7-server-rpms 22 k fontpackages-filesystem noarch 1.44-8.el7 rhel-7-server-eus-rpms 9.9 k libcgroup x86_64 0.41-13.el7 rhel-7-server-rpms 65 k liberation-fonts-common noarch 1:1.07.2-15.el7 rhel-7-server-eus-rpms 27 k liberation-sans-fonts noarch 1:1.07.2-15.el7 rhel-7-server-eus-rpms 279 k libsemanage-python x86_64 2.5-8.el7 rhel-7-server-rpms 104 k overpass-fonts noarch 2.1-1.el7 rhel-7-server-rpms 700 k policycoreutils-python x86_64 2.5-17.1.el7 rhel-7-server-rpms 446 k python-IPy noarch 0.75-6.el7 rhel-7-server-eus-rpms 32 k setools-libs x86_64 3.3.8-1.1.el7 rhel-7-server-rpms 610 k Updating for dependencies: audit x86_64 2.7.6-3.el7 rhel-7-server-rpms 242 k audit-libs x86_64 2.7.6-3.el7 rhel-7-server-rpms 96 k fence-agents-common x86_64 4.0.11-66.el7_4.1 rhel-7-server-rpms 64 k libsemanage x86_64 2.5-8.el7 rhel-7-server-rpms 145 k pacemaker-cli x86_64 1.1.16-12.el7_4.2 rhel-ha-for-rhel-7-server-rpms 331 k pacemaker-cluster-libs x86_64 1.1.16-12.el7_4.2 rhel-ha-for-rhel-7-server-rpms 147 k pacemaker-libs x86_64 1.1.16-12.el7_4.2 rhel-ha-for-rhel-7-server-rpms 592 k policycoreutils x86_64 2.5-17.1.el7 rhel-7-server-rpms 858 k Transaction Summary ===================================================================================================================== Install ( 12 Dependent packages) Upgrade 3 Packages (+ 8 Dependent packages) Total size: 10 M Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction check error: file /usr/share/cluster/fence_scsi_check from install of fence-agents-common-4.0.11-66.el7_4.1.x86_64 conflicts with file from package fence-agents-scsi-4.0.11-47.el7_3.3.x86_64 file /usr/share/cluster/fence_scsi_check.pl from install of fence-agents-common-4.0.11-66.el7_4.1.x86_64 conflicts with file from package fence-agents-scsi-4.0.11-47.el7_3.3.x86_64 file /usr/share/cluster/fence_scsi_check_hardreboot from install of fence-agents-common-4.0.11-66.el7_4.1.x86_64 conflicts with file from package fence-agents-scsi-4.0.11-47.el7_3.3.x86_64 Error Summary ------------- My point is: if you're updating fence-agents-all, you probably want it to actually update all of the agents; it seems to only update fence-agents-common, and that is what triggers the conflict between the two packages; so fixing the file definitions of these packages fixes that particular conflict, but it doesn't fix that updating fence-agents-all doesn't actually update individual agents. Can we enforce a matching version requirement between fence-agents-all and the various agent sub-packages?
(In reply to John Ruemker from comment #4) New build where fence-agents-all enforces a minimum version for agents.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2018:0758