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(a)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