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)
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.
Nothing in glusterfs core for this bug. More of a build / packaging part?
These are fixed as part of RHGS 3.3