[libvirt] [PATCH 1/2] spec: Split libvirt-client

Andrea Bolognani abologna at redhat.com
Mon Jul 4 12:26:17 UTC 2016


On Fri, 2016-07-01 at 12:04 +0200, Michal Privoznik wrote:
> Currently, we have libvirt-client library which serves as a
> collection point for all the libraries and client binaries we
> have. Therefore we have couple of silly dependencies, for
> instance libvirt-daemon depends on libvirt-client. Only because
> the shared library is in the client package.
> To solve this, new package libvirt-libs is introduced where all
> the libraries are going to live. The client package is then set
> to depend on this new package, just like the rest of packages
> that suffer the same problem.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  libvirt.spec.in | 74 ++++++++++++++++++++++++++++++++-------------------------
>  1 file changed, 42 insertions(+), 32 deletions(-)

Not an RPM expert, but I'm gonna give this a go nonetheless :)

> diff --git a/libvirt.spec.in b/libvirt.spec.in
> index 106351c..8d4df50 100644
> --- a/libvirt.spec.in
> +++ b/libvirt.spec.in
> @@ -256,6 +256,7 @@ Requires: libvirt-daemon-driver-storage = %{version}-%{release}
>  Requires: libvirt-daemon-driver-network = %{version}-%{release}
>  Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
>  Requires: libvirt-client = %{version}-%{release}
> +Requires: libvirt-libs = %{version}-%{release}

Can't we just call it libvirt? libvirt-libs is kinda awkward.

Oh, nevermind: the libvirt package already exists, and drags
in everything. I guess libvirt-libs is the only option then.

>  # All build-time requirements. Run-time requirements are
>  # listed against each sub-RPM
> @@ -430,8 +431,8 @@ Group: Development/Libraries
>  # All runtime requirements for the libvirt package (runtime requrements
>  # for subpackages are listed later in those subpackages)
>  
> -# The client side, i.e. shared libs and virsh are in a subpackage
> -Requires: %{name}-client = %{version}-%{release}
> +# The client side, i.e. shared libs are in a subpackage
> +Requires: %{name}-libs = %{version}-%{release}
>  
>  # for modprobe of pci devices
>  Requires: module-init-tools
> @@ -822,13 +823,11 @@ capabilities of VirtualBox
>  %endif
>  
>  %package client
> -Summary: Client side library and utilities of the libvirt library
> +Summary: Client side utilities of the libvirt library
>  Group: Development/Libraries
> +Requires: %{name}-libs = %{version}-%{release}
>  Requires: readline
>  Requires: ncurses
> -# So remote clients can access libvirt over SSH tunnel
> -# (client invokes 'nc' against the UNIX socket on the server)
> -Requires: nc
>  # Needed by /usr/libexec/libvirt-guests.sh script.
>  Requires: gettext
>  # Needed by virt-pki-validate script.
> @@ -837,21 +836,31 @@ Requires: gnutls-utils
>  # Needed for probing the power management features of the host.
>  Requires: pm-utils
>  %endif
> +
> +%description client
> +The client binaries needed to access to the virtualization
> +capabilities of recent versions of Linux (and other OSes).

s/to access to/to access/

> +%package libs
> +Summary: Client side libraries
> +Group: Development/Libraries
> +# So remote clients can access libvirt over SSH tunnel
> +# (client invokes 'nc' against the UNIX socket on the server)
> +Requires: nc
>  Requires: cyrus-sasl
>  # Not technically required, but makes 'out-of-box' config
>  # work correctly & doesn't have onerous dependencies
>  Requires: cyrus-sasl-md5
>  
> -%description client
> -Shared libraries and client binaries needed to access to the
> -virtualization capabilities of recent versions of Linux (and other OSes).
> +%description libs
> +Shared libraries for accessing the libvirt daemon.
>  
>  %if %{with_wireshark}
>  %package wireshark
>  Summary: Wireshark dissector plugin for libvirt RPC transactions
>  Group: Development/Libraries
>  Requires: wireshark >= 1.12.6-4
> -Requires: %{name}-client = %{version}-%{release}
> +Requires: %{name}-libs = %{version}-%{release}
>  
>  %description wireshark
>  Wireshark dissector plugin for better analysis of libvirt RPC traffic.
> @@ -861,7 +870,7 @@ Wireshark dissector plugin for better analysis of libvirt RPC traffic.
>  %package login-shell
>  Summary: Login shell for connecting users to an LXC container
>  Group: Development/Libraries
> -Requires: %{name}-client = %{version}-%{release}
> +Requires: %{name}-libs = %{version}-%{release}
>  
>  %description login-shell
>  Provides the set-uid virt-login-shell binary that is used to
> @@ -872,7 +881,7 @@ namespaces.
>  %package devel
>  Summary: Libraries, includes, etc. to compile with the libvirt library
>  Group: Development/Libraries
> -Requires: %{name}-client = %{version}-%{release}
> +Requires: %{name}-libs = %{version}-%{release}
>  Requires: pkgconfig
>  
>  %description devel
> @@ -886,7 +895,7 @@ Requires: sanlock >= 2.4
>  #for virt-sanlock-cleanup require augeas
>  Requires: augeas
>  Requires: %{name}-daemon = %{version}-%{release}
> -Requires: %{name}-client = %{version}-%{release}
> +Requires: %{name}-libs = %{version}-%{release}
>  
>  %description lock-sanlock
>  Includes the Sanlock lock manager plugin for the QEMU
> @@ -1741,11 +1750,7 @@ exit 0
>  %attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper
>  %endif
>  
> -%files client -f %{name}.lang
> 
> -%doc COPYING COPYING.LESSER
> -
> -%config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
> -%config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
> +%files client
>  %{_mandir}/man1/virsh.1*
>  %{_mandir}/man1/virt-admin.1*
>  %{_mandir}/man1/virt-xml-validate.1*
> @@ -1756,17 +1761,31 @@ exit 0
>  %{_bindir}/virt-xml-validate
>  %{_bindir}/virt-pki-validate
>  %{_bindir}/virt-host-validate
> +
> +%{_datadir}/systemtap/tapset/libvirt_probes*.stp
> +%{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
> +%{_datadir}/systemtap/tapset/libvirt_functions.stp
> +
> +
> +%if %{with_systemd}
> +%{_unitdir}/libvirt-guests.service
> +%else
> +%{_sysconfdir}/rc.d/init.d/libvirt-guests
> +%endif
> +%config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
> +%attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
> +
> +%files libs -f %{name}.lang
> +%doc COPYING COPYING.LESSER
> +%config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
> +%config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
>  %{_libdir}/libvirt.so.*
>  %{_libdir}/libvirt-qemu.so.*
>  %{_libdir}/libvirt-lxc.so.*
>  %{_libdir}/libvirt-admin.so.*
> -
> -%{_datadir}/systemtap/tapset/libvirt_probes*.stp
> -%{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
> -%{_datadir}/systemtap/tapset/libvirt_functions.stp
> -
>  %dir %{_datadir}/libvirt/
>  %dir %{_datadir}/libvirt/schemas/
> +%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
>  
>  %{_datadir}/libvirt/schemas/basictypes.rng
>  %{_datadir}/libvirt/schemas/capability.rng
> @@ -1787,15 +1806,6 @@ exit 0
>  %{_datadir}/libvirt/cpu_map.xml
>  %{_datadir}/libvirt/libvirtLogo.png
>  
> -%if %{with_systemd}
> -%{_unitdir}/libvirt-guests.service
> -%else
> -%{_sysconfdir}/rc.d/init.d/libvirt-guests
> -%endif
> -%config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
> -%attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
> -%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
> -
>  %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
>  
>  %if %{with_wireshark}

Looks good otherwise.

ACK with the typo fixed, although you might want to wait
for someone with more RPM expertise to have a look :)

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list