[libvirt] [PATCH] spec: Explicitly require matching libvirt-libs

Jiri Denemark posted 1 patch 11 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/534889cae55ea29e107a9440c366d3754f3cb0d6.1531151750.git.jdenemar@redhat.com
Test syntax-check passed
libvirt.spec.in | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

[libvirt] [PATCH] spec: Explicitly require matching libvirt-libs

Posted by Jiri Denemark 11 weeks ago
All drivers now link directly to libvirt.so rather than getting the
symbols from the daemon. Let's explicitly mention this dependency in the
spec file.

Theoretically, the automatic libvirt.so.0(LIBVIRT_PRIVATE_4.5.0)
dependency should take care of everything, but rpmdiff complains it
would like to see an explicit dependency on the exact libvirt-libs
version too.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---

Notes:
    The rpmdiff check may also be wrong, but I figured the explicit
    requires statement makes some sense and can't harm in any case.

 libvirt.spec.in | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/libvirt.spec.in b/libvirt.spec.in
index 720870e2b1..6f0d399064 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -544,6 +544,7 @@ Network filter configuration files for cleaning guest traffic
 %package daemon-driver-network
 Summary: Network driver plugin for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 Requires: dnsmasq >= 2.41
 Requires: radvd
 Requires: iptables
@@ -560,6 +561,7 @@ bridge capabilities.
 %package daemon-driver-nwfilter
 Summary: Nwfilter driver plugin for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 Requires: iptables
 %if 0%{?rhel} && 0%{?rhel} < 7
 Requires: iptables-ipv6
@@ -575,6 +577,7 @@ iptables and ip6tables capabilities
 %package daemon-driver-nodedev
 Summary: Nodedev driver plugin for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 # needed for device enumeration
 %if 0%{?fedora} || 0%{?rhel} >= 7
 Requires: systemd >= 185
@@ -591,6 +594,7 @@ capabilities.
 %package daemon-driver-interface
 Summary: Interface driver plugin for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 %if (0%{?fedora} || 0%{?rhel} >= 7)
 Requires: netcf-libs >= 0.2.2
 %endif
@@ -604,6 +608,7 @@ netcf library
 %package daemon-driver-secret
 Summary: Secret driver plugin for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 
 %description daemon-driver-secret
 The secret driver plugin for the libvirtd daemon, providing
@@ -612,6 +617,7 @@ an implementation of the secret key APIs.
 %package daemon-driver-storage-core
 Summary: Storage driver plugin including base backends for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 Requires: nfs-utils
 # For mkfs
 Requires: util-linux
@@ -628,6 +634,7 @@ iSCSI, and multipath storage.
 %package daemon-driver-storage-logical
 Summary: Storage driver plugin for lvm volumes
 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 Requires: lvm2
 
 %description daemon-driver-storage-logical
@@ -638,6 +645,7 @@ volumes using lvm.
 %package daemon-driver-storage-disk
 Summary: Storage driver plugin for disk
 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 Requires: parted
 Requires: device-mapper
 
@@ -649,6 +657,7 @@ volumes using the host disks.
 %package daemon-driver-storage-scsi
 Summary: Storage driver plugin for local scsi devices
 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 
 %description daemon-driver-storage-scsi
 The storage driver backend adding implementation of the storage APIs for scsi
@@ -658,6 +667,7 @@ host devices.
 %package daemon-driver-storage-iscsi
 Summary: Storage driver plugin for iscsi
 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 Requires: iscsi-initiator-utils
 
 %description daemon-driver-storage-iscsi
@@ -668,6 +678,7 @@ volumes using the host iscsi stack.
 %package daemon-driver-storage-mpath
 Summary: Storage driver plugin for multipath volumes
 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 Requires: device-mapper
 
 %description daemon-driver-storage-mpath
@@ -679,6 +690,7 @@ multipath storage using device mapper.
 %package daemon-driver-storage-gluster
 Summary: Storage driver plugin for gluster
 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
     %if 0%{?fedora}
 Requires: glusterfs-client >= 2.0.1
     %endif
@@ -696,6 +708,7 @@ volumes using libgfapi.
 %package daemon-driver-storage-rbd
 Summary: Storage driver plugin for rbd
 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 
 %description daemon-driver-storage-rbd
 The storage driver backend adding implementation of the storage APIs for rbd
@@ -707,6 +720,7 @@ volumes using the ceph protocol.
 %package daemon-driver-storage-sheepdog
 Summary: Storage driver plugin for sheepdog
 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 Requires: sheepdog
 
 %description daemon-driver-storage-sheepdog
@@ -719,6 +733,7 @@ sheepdog volumes using.
 %package daemon-driver-storage-zfs
 Summary: Storage driver plugin for ZFS
 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 # Support any conforming implementation of zfs
 Requires: /sbin/zfs
 Requires: /sbin/zpool
@@ -760,6 +775,7 @@ parted and more.
 %package daemon-driver-qemu
 Summary: QEMU driver plugin for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 # There really is a hard cross-driver dependency here
 Requires: libvirt-daemon-driver-network = %{version}-%{release}
 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
@@ -784,6 +800,7 @@ QEMU
 %package daemon-driver-lxc
 Summary: LXC driver plugin for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 # There really is a hard cross-driver dependency here
 Requires: libvirt-daemon-driver-network = %{version}-%{release}
     %if 0%{?fedora} || 0%{?rhel} > 7
@@ -801,6 +818,7 @@ the Linux kernel
 %package daemon-driver-uml
 Summary: Uml driver plugin for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 
 %description daemon-driver-uml
 The UML driver plugin for the libvirtd daemon, providing
@@ -813,6 +831,7 @@ User Mode Linux
 %package daemon-driver-vbox
 Summary: VirtualBox driver plugin for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 
 %description daemon-driver-vbox
 The vbox driver plugin for the libvirtd daemon, providing
@@ -825,6 +844,7 @@ VirtualBox
 %package daemon-driver-libxl
 Summary: Libxl driver plugin for the libvirtd daemon
 Requires: libvirt-daemon = %{version}-%{release}
+Requires: libvirt-libs = %{version}-%{release}
 Obsoletes: libvirt-daemon-driver-xen < 4.3.0
 
 %description daemon-driver-libxl
-- 
2.18.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] spec: Explicitly require matching libvirt-libs

Posted by Daniel P. Berrangé 11 weeks ago
On Mon, Jul 09, 2018 at 05:55:58PM +0200, Jiri Denemark wrote:
> All drivers now link directly to libvirt.so rather than getting the
> symbols from the daemon. Let's explicitly mention this dependency in the
> spec file.
> 
> Theoretically, the automatic libvirt.so.0(LIBVIRT_PRIVATE_4.5.0)
> dependency should take care of everything, but rpmdiff complains it
> would like to see an explicit dependency on the exact libvirt-libs
> version too.

Actually we're not even relying on automatic deps here. The
libvirt-daemon-driver-XXX packages, all have a

  Requires: libvirt-daemon = %{version}-%{release}

The libvirt-daemon package then has

  Requires: libvirt-libs = %{version}-%{release}

so by transitive dependancies, every libvirt-daemon-driver-XXX
package already has

  Requires: libvirt-libs = %{version}-%{release}

> Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
> ---
> 
> Notes:
>     The rpmdiff check may also be wrong, but I figured the explicit
>     requires statement makes some sense and can't harm in any case.

I guess rpmdiff doesn't look at transitive dependancies, because it
doesn't want to assume that we'll always pull this in indirectly.
So since libvirt-daemon-driver-XXX does explicitly link to libvirt.so
I think it is just about justified in complaining

> 
>  libvirt.spec.in | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)

  Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>

if you update the commit message to mention the that we want an
explicit dep instead of relying on transitive deps.

> 
> diff --git a/libvirt.spec.in b/libvirt.spec.in
> index 720870e2b1..6f0d399064 100644
> --- a/libvirt.spec.in
> +++ b/libvirt.spec.in
> @@ -544,6 +544,7 @@ Network filter configuration files for cleaning guest traffic
>  %package daemon-driver-network
>  Summary: Network driver plugin for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  Requires: dnsmasq >= 2.41
>  Requires: radvd
>  Requires: iptables
> @@ -560,6 +561,7 @@ bridge capabilities.
>  %package daemon-driver-nwfilter
>  Summary: Nwfilter driver plugin for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  Requires: iptables
>  %if 0%{?rhel} && 0%{?rhel} < 7
>  Requires: iptables-ipv6
> @@ -575,6 +577,7 @@ iptables and ip6tables capabilities
>  %package daemon-driver-nodedev
>  Summary: Nodedev driver plugin for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  # needed for device enumeration
>  %if 0%{?fedora} || 0%{?rhel} >= 7
>  Requires: systemd >= 185
> @@ -591,6 +594,7 @@ capabilities.
>  %package daemon-driver-interface
>  Summary: Interface driver plugin for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  %if (0%{?fedora} || 0%{?rhel} >= 7)
>  Requires: netcf-libs >= 0.2.2
>  %endif
> @@ -604,6 +608,7 @@ netcf library
>  %package daemon-driver-secret
>  Summary: Secret driver plugin for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  
>  %description daemon-driver-secret
>  The secret driver plugin for the libvirtd daemon, providing
> @@ -612,6 +617,7 @@ an implementation of the secret key APIs.
>  %package daemon-driver-storage-core
>  Summary: Storage driver plugin including base backends for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  Requires: nfs-utils
>  # For mkfs
>  Requires: util-linux
> @@ -628,6 +634,7 @@ iSCSI, and multipath storage.
>  %package daemon-driver-storage-logical
>  Summary: Storage driver plugin for lvm volumes
>  Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  Requires: lvm2
>  
>  %description daemon-driver-storage-logical
> @@ -638,6 +645,7 @@ volumes using lvm.
>  %package daemon-driver-storage-disk
>  Summary: Storage driver plugin for disk
>  Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  Requires: parted
>  Requires: device-mapper
>  
> @@ -649,6 +657,7 @@ volumes using the host disks.
>  %package daemon-driver-storage-scsi
>  Summary: Storage driver plugin for local scsi devices
>  Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  
>  %description daemon-driver-storage-scsi
>  The storage driver backend adding implementation of the storage APIs for scsi
> @@ -658,6 +667,7 @@ host devices.
>  %package daemon-driver-storage-iscsi
>  Summary: Storage driver plugin for iscsi
>  Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  Requires: iscsi-initiator-utils
>  
>  %description daemon-driver-storage-iscsi
> @@ -668,6 +678,7 @@ volumes using the host iscsi stack.
>  %package daemon-driver-storage-mpath
>  Summary: Storage driver plugin for multipath volumes
>  Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  Requires: device-mapper
>  
>  %description daemon-driver-storage-mpath
> @@ -679,6 +690,7 @@ multipath storage using device mapper.
>  %package daemon-driver-storage-gluster
>  Summary: Storage driver plugin for gluster
>  Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>      %if 0%{?fedora}
>  Requires: glusterfs-client >= 2.0.1
>      %endif
> @@ -696,6 +708,7 @@ volumes using libgfapi.
>  %package daemon-driver-storage-rbd
>  Summary: Storage driver plugin for rbd
>  Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  
>  %description daemon-driver-storage-rbd
>  The storage driver backend adding implementation of the storage APIs for rbd
> @@ -707,6 +720,7 @@ volumes using the ceph protocol.
>  %package daemon-driver-storage-sheepdog
>  Summary: Storage driver plugin for sheepdog
>  Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  Requires: sheepdog
>  
>  %description daemon-driver-storage-sheepdog
> @@ -719,6 +733,7 @@ sheepdog volumes using.
>  %package daemon-driver-storage-zfs
>  Summary: Storage driver plugin for ZFS
>  Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  # Support any conforming implementation of zfs
>  Requires: /sbin/zfs
>  Requires: /sbin/zpool
> @@ -760,6 +775,7 @@ parted and more.
>  %package daemon-driver-qemu
>  Summary: QEMU driver plugin for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  # There really is a hard cross-driver dependency here
>  Requires: libvirt-daemon-driver-network = %{version}-%{release}
>  Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
> @@ -784,6 +800,7 @@ QEMU
>  %package daemon-driver-lxc
>  Summary: LXC driver plugin for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  # There really is a hard cross-driver dependency here
>  Requires: libvirt-daemon-driver-network = %{version}-%{release}
>      %if 0%{?fedora} || 0%{?rhel} > 7
> @@ -801,6 +818,7 @@ the Linux kernel
>  %package daemon-driver-uml
>  Summary: Uml driver plugin for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  
>  %description daemon-driver-uml
>  The UML driver plugin for the libvirtd daemon, providing
> @@ -813,6 +831,7 @@ User Mode Linux
>  %package daemon-driver-vbox
>  Summary: VirtualBox driver plugin for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  
>  %description daemon-driver-vbox
>  The vbox driver plugin for the libvirtd daemon, providing
> @@ -825,6 +844,7 @@ VirtualBox
>  %package daemon-driver-libxl
>  Summary: Libxl driver plugin for the libvirtd daemon
>  Requires: libvirt-daemon = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}
>  Obsoletes: libvirt-daemon-driver-xen < 4.3.0
>  
>  %description daemon-driver-libxl
> -- 
> 2.18.0
> 
> --
> libvir-list mailing list
> libvir-list@redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list