Bug 1314571 - rsyslog can't be completely removed due to dependency in libglusterfs
Summary: rsyslog can't be completely removed due to dependency in libglusterfs
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: packaging
Version: 3.7.9
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kaleb KEITHLEY
QA Contact:
URL:
Whiteboard:
Depends On: 1310437
Blocks: 1309741
TreeView+ depends on / blocked
 
Reported: 2016-03-04 00:02 UTC by Kaleb KEITHLEY
Modified: 2016-04-19 07:22 UTC (History)
3 users (show)

Fixed In Version: glusterfs-3.7.9
Doc Type: Bug Fix
Doc Text:
Clone Of: 1310437
Environment:
Last Closed: 2016-04-08 11:23:21 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Kaleb KEITHLEY 2016-03-04 00:02:00 UTC
+++ This bug was initially created as a clone of Bug #1310437 +++

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.

--- Additional comment from Vijay Bellur on 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)

--- Additional comment from Vijay Bellur on 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)

--- Additional comment from Vijay Bellur on 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)

--- Additional comment from Vijay Bellur on 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)

--- Additional comment from Vijay Bellur on 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)

--- Additional comment from Vijay Bellur on 2016-03-03 18:40:06 EST ---

COMMIT: http://review.gluster.org/13485 committed in master by Jeff Darcy (jdarcy) 
------
commit fdd8fc6f82e3b47eb47c82335f79552610596913
Author: Kaleb S KEITHLEY <kkeithle>
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>
    Reviewed-on: http://review.gluster.org/13485
    Smoke: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Reviewed-by: Jeff Darcy <jdarcy>

Comment 1 Vijay Bellur 2016-03-04 00:11:06 UTC
REVIEW: http://review.gluster.org/13600 (packaging: gratuitous dependencies on rsyslog-mm{count,jsonparse}) posted (#1) for review on release-3.7 by Kaleb KEITHLEY (kkeithle)

Comment 2 Vijay Bellur 2016-03-05 01:16:57 UTC
COMMIT: http://review.gluster.org/13600 committed in release-3.7 by Kaleb KEITHLEY (kkeithle) 
------
commit 49da065720919faeb98bae418eccb24498230788
Author: Kaleb S KEITHLEY <kkeithle>
Date:   Thu Mar 3 19:08:11 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.
    
    Backport of
    >Change-Id: I07bd6a8714a05e8b91adc03f101032c1593da360
    >BUG: 1310437
    >Reviewed-on: http://review.gluster.org/13485
    
    Change-Id: Ib1cc3cd5ab21f7f94631338aa77c3c1aea60b42a
    BUG: 1314571
    Signed-off-by: Kaleb S KEITHLEY <kkeithle>
    Reviewed-on: http://review.gluster.org/13600
    Smoke: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>

Comment 3 Kaleb KEITHLEY 2016-04-08 11:23:21 UTC
in 3.7.10

Comment 4 Kaushal 2016-04-19 07:22:11 UTC
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.7.9, please open a new bug report.

glusterfs-3.7.9 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] https://www.gluster.org/pipermail/gluster-users/2016-March/025922.html
[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.