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@xxxxxxxxxx> > --- > 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list