Bug 1310437 - rsyslog can't be completely removed due to dependency in libglusterfs
rsyslog can't be completely removed due to dependency in libglusterfs
Status: CLOSED CURRENTRELEASE
Product: GlusterFS
Classification: Community
Component: packaging (Show other bugs)
mainline
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Kaleb KEITHLEY
: EasyFix, Reopened, Triaged
Depends On:
Blocks: 1309741 1314571
  Show dependency treegraph
 
Reported: 2016-02-21 10:28 EST by Niels de Vos
Modified: 2016-06-16 09:57 EDT (History)
2 users (show)

See Also:
Fixed In Version: glusterfs-3.8rc2
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1314571 (view as bug list)
Environment:
Last Closed: 2016-06-16 09:57:48 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Niels de Vos 2016-02-21 10:28:20 EST
Description of problem:
rsyslog can't be completely removed due to dependency in glusterfs-libs. It depends on rsyslog-mmjsonparse, which remains on the system even if rsyslog is deleted. Three is no direct dependency on rsyslog / mmjsonparse, just an example config: /etc/rsyslog.d/gluster.conf.example
It is a problem, when someone wants to replace rsyslog with an alternative solution, like syslog-ng

Version-Release number of selected component (if applicable):
glusterfs-libs-3.7.1-16.el7.x86_64

How reproducible:
always

Steps to Reproduce:
Try to remove rsyslog-mmjsonparse:

[root@localhost ~]# yum erase rsyslog-mmjsonparse-7.4.7-12.el7.x86_64
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Resolving Dependencies
--> Running transaction check
---> Package rsyslog-mmjsonparse.x86_64 0:7.4.7-12.el7 will be erased
--> Processing Dependency: rsyslog-mmjsonparse for package: glusterfs-libs-3.7.1-16.el7.x86_64
--> Running transaction check
---> Package glusterfs-libs.x86_64 0:3.7.1-16.el7 will be erased
--> Processing Dependency: glusterfs-libs = 3.7.1-16.el7 for package: glusterfs-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: glusterfs-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: glusterfs-client-xlators-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: libvirt-daemon-driver-storage-1.2.17-13.el7_2.2.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: glusterfs-api-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: 10:qemu-kvm-1.5.3-105.el7_2.3.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: 10:qemu-img-1.5.3-105.el7_2.3.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: glusterfs-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: glusterfs-client-xlators-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: libvirt-daemon-driver-storage-1.2.17-13.el7_2.2.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: glusterfs-api-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: 10:qemu-kvm-1.5.3-105.el7_2.3.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: 10:qemu-img-1.5.3-105.el7_2.3.x86_64
--> Processing Dependency: libglusterfs.so.0()(64bit) for package: libvirt-daemon-driver-storage-1.2.17-13.el7_2.2.x86_64
--> Processing Dependency: libglusterfs.so.0()(64bit) for package: glusterfs-3.7.1-16.el7.x86_64
--> Processing Dependency: libglusterfs.so.0()(64bit) for package: glusterfs-client-xlators-3.7.1-16.el7.x86_64
--> Processing Dependency: libglusterfs.so.0()(64bit) for package: glusterfs-api-3.7.1-16.el7.x86_64
--> Running transaction check
---> Package glusterfs.x86_64 0:3.7.1-16.el7 will be erased
---> Package glusterfs-api.x86_64 0:3.7.1-16.el7 will be erased
---> Package glusterfs-client-xlators.x86_64 0:3.7.1-16.el7 will be erased
---> Package libvirt-daemon-driver-storage.x86_64 0:1.2.17-13.el7_2.2 will be erased
--> Processing Dependency: libvirt-daemon-driver-storage = 1.2.17-13.el7_2.2 for package: libvirt-daemon-kvm-1.2.17-13.el7_2.2.x86_64
---> Package qemu-img.x86_64 10:1.5.3-105.el7_2.3 will be erased
---> Package qemu-kvm.x86_64 10:1.5.3-105.el7_2.3 will be erased
--> Running transaction check
---> Package libvirt-daemon-kvm.x86_64 0:1.2.17-13.el7_2.2 will be erased
--> Processing Dependency: libvirt-daemon-kvm for package: gnome-boxes-3.14.3.1-7.el7.x86_64
--> Running transaction check
---> Package gnome-boxes.x86_64 0:3.14.3.1-7.el7 will be erased
--> Processing Dependency: /usr/bin/qemu-img for package: libvirt-daemon-driver-qemu-1.2.17-13.el7_2.2.x86_64
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package libvirt-daemon-driver-qemu.x86_64 0:1.2.17-13.el7_2.2 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================
 Package                                                Arch                            Version                                        Repository                                        Size
==============================================================================================================================================================================================
Removing:
 rsyslog-mmjsonparse                                    x86_64                          7.4.7-12.el7                                   @rhel-7-server-eus-rpms                           15 k
Removing for dependencies:
 glusterfs                                              x86_64                          3.7.1-16.el7                                   @rhel-7-server-eus-rpms                          1.6 M
 glusterfs-api                                          x86_64                          3.7.1-16.el7                                   @rhel-7-server-eus-rpms                          141 k
 glusterfs-client-xlators                               x86_64                          3.7.1-16.el7                                   @rhel-7-server-eus-rpms                          3.2 M
 glusterfs-libs                                         x86_64                          3.7.1-16.el7                                   @rhel-7-server-eus-rpms                          1.1 M
 gnome-boxes                                            x86_64                          3.14.3.1-7.el7                                 @rhel-7-server-eus-rpms                          4.3 M
 libvirt-daemon-driver-qemu                             x86_64                          1.2.17-13.el7_2.2                              @rhel-7-server-eus-rpms                          1.3 M
 libvirt-daemon-driver-storage                          x86_64                          1.2.17-13.el7_2.2                              @rhel-7-server-eus-rpms                          549 k
 libvirt-daemon-kvm                                     x86_64                          1.2.17-13.el7_2.2                              @rhel-7-server-eus-rpms                          0.0  
 qemu-img                                               x86_64                          10:1.5.3-105.el7_2.3                           @rhel-7-server-eus-rpms                          2.2 M
 qemu-kvm                                               x86_64                          10:1.5.3-105.el7_2.3                           @rhel-7-server-eus-rpms                          5.6 M

Transaction Summary
==============================================================================================================================================================================================
Remove  1 Package (+10 Dependent packages)

Installed size: 20 M
Is this ok [y/N]: n


Actual results:
Not just rsyslog-mmjsonparse, but the whole kvm virtualization stack is also removed in the action.

Expected results:
If we erase rsyslog-mmjsonparse, it does not take any other software with it. For that rsyslog-mmjsonparse should not be among the requires of glusterfs-libs, like it is now:

[root@localhost ~]# rpm -q --requires glusterfs-libs
/bin/sh
/bin/sh
libc.so.6()(64bit)
libc.so.6(GLIBC_2.10)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libcrypto.so.10()(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libgfrpc.so.0()(64bit)
libgfxdr.so.0()(64bit)
libglusterfs.so.0()(64bit)
libm.so.6()(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.2.5)(64bit)
libuuid.so.1()(64bit)
libuuid.so.1(UUID_1.0)(64bit)
libz.so.1()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rsyslog-mmjsonparse
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1



Additional info:

If needed, I can also provide a sample syslog-ng configuration for JSON parsing.

(On CentOS it's even worse, as rsyslog-mmjsonparse also depends on rsyslog, so rsyslog practically can't be deleted at all)


--- Additional comment from Tomas Heinrich on 2016-02-18 17:46:23 CET ---

From the point of rsyslog, I think this dependency is unnecessary;
The file is just an example and not used by default. The only requirement for the rsyslog package is to have the /etc/rsyslog.d/ dir where the file is currently installed.

I think it'd be better to move the file somewhere into /usr/share/..., add another example for syslog-ng and add instructions to install the respective packages.
Comment 1 Vijay Bellur 2016-02-22 08:45:35 EST
REVIEW: http://review.gluster.org/13485 (packaging: gratuitous dependencies on rsyslog-mm{count,jsonparse}) posted (#1) for review on master by Kaleb KEITHLEY (kkeithle@redhat.com)
Comment 2 Vijay Bellur 2016-02-25 08:31:54 EST
REVIEW: http://review.gluster.org/13485 (packaging: gratuitous dependencies on rsyslog-mm{count,jsonparse}) posted (#2) for review on master by Kaleb KEITHLEY (kkeithle@redhat.com)
Comment 3 Vijay Bellur 2016-02-25 21:00:58 EST
REVIEW: http://review.gluster.org/13485 (packaging: gratuitous dependencies on rsyslog-mm{count,jsonparse}) posted (#3) for review on master by Kaleb KEITHLEY (kkeithle@redhat.com)
Comment 4 Vijay Bellur 2016-02-29 10:05:44 EST
REVIEW: http://review.gluster.org/13485 (packaging: gratuitous dependencies on rsyslog-mm{count,jsonparse}) posted (#4) for review on master by Kaleb KEITHLEY (kkeithle@redhat.com)
Comment 5 Vijay Bellur 2016-03-03 13:22:42 EST
REVIEW: http://review.gluster.org/13485 (packaging: gratuitous dependencies on rsyslog-mm{count,jsonparse}) posted (#5) for review on master by Kaleb KEITHLEY (kkeithle@redhat.com)
Comment 6 Vijay Bellur 2016-03-03 18:40:06 EST
COMMIT: http://review.gluster.org/13485 committed in master by Jeff Darcy (jdarcy@redhat.com) 
------
commit fdd8fc6f82e3b47eb47c82335f79552610596913
Author: Kaleb S KEITHLEY <kkeithle@redhat.com>
Date:   Mon Feb 22 08:31:39 2016 -0500

    packaging: gratuitous dependencies on rsyslog-mm{count,jsonparse}
    
    remove unnecessary dependencies.
    
    GlusterFS only ships example config files, and the system may not
    actually be using rsyslog at all. (It may only be RHEL5 that uses
    rsyslog "out of the box.")
    
    Also, several example config files (including gluster-rsyslog-7.2.conf,
    gluster-rsyslog-5.8.conf, logger.conf.example) are already installed in
    /etc/glusterfs/ by `make install` in the extras directory and are
    included in the -server RPM. Installing them (anywhere) in the spec
    file is redundant. Furthermore, a query in the fedora-devel mailing
    list about the preferred location for these files went unanswered.
    
    Change-Id: I07bd6a8714a05e8b91adc03f101032c1593da360
    BUG: 1310437
    Signed-off-by: Kaleb S KEITHLEY <kkeithle@redhat.com>
    Reviewed-on: http://review.gluster.org/13485
    Smoke: Gluster Build System <jenkins@build.gluster.com>
    NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
    CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
    Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Comment 7 Niels de Vos 2016-06-16 09:57:48 EDT
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.8.0, please open a new bug report.

glusterfs-3.8.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://blog.gluster.org/2016/06/glusterfs-3-8-released/
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user

Note You need to log in before you can comment on or make changes to this bug.