[libvirt] [PATCH 0/2] Introduce libvirt-libs.rpm

*** BLURB HERE *** Michal Privoznik (2): spec: Split libvirt-client spec: Move virt-admin into its own package libvirt.spec.in | 90 +++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 56 insertions(+), 34 deletions(-) -- 2.8.4

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@redhat.com> --- libvirt.spec.in | 74 ++++++++++++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 32 deletions(-) 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} # 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). + +%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} -- 2.8.4

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@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

The new package for the virt-admin binary is libvirt-admin. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- libvirt.spec.in | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/libvirt.spec.in b/libvirt.spec.in index 8d4df50..e55d362 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -855,6 +855,15 @@ Requires: cyrus-sasl-md5 %description libs Shared libraries for accessing the libvirt daemon. +%package admin +Summary: Set of tools to control libvirt daemon +Group: Development/Libraries +Requires: %{name}-libs = %{version}-%{release} +Requires: readline + +%description admin +The client side utilities to control the libvirt daemon. + %if %{with_wireshark} %package wireshark Summary: Wireshark dissector plugin for libvirt RPC transactions @@ -1752,12 +1761,10 @@ exit 0 %files client %{_mandir}/man1/virsh.1* -%{_mandir}/man1/virt-admin.1* %{_mandir}/man1/virt-xml-validate.1* %{_mandir}/man1/virt-pki-validate.1* %{_mandir}/man1/virt-host-validate.1* %{_bindir}/virsh -%{_bindir}/virt-admin %{_bindir}/virt-xml-validate %{_bindir}/virt-pki-validate %{_bindir}/virt-host-validate @@ -1808,6 +1815,11 @@ exit 0 %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf +%files admin +%{_mandir}/man1/virt-admin.1* +%{_bindir}/virt-admin + + %if %{with_wireshark} %files wireshark %{_libdir}/wireshark/plugins/libvirt.so -- 2.8.4

On Fri, 2016-07-01 at 12:04 +0200, Michal Privoznik wrote:
The new package for the virt-admin binary is libvirt-admin. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- libvirt.spec.in | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/libvirt.spec.in b/libvirt.spec.in index 8d4df50..e55d362 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -855,6 +855,15 @@ Requires: cyrus-sasl-md5 %description libs Shared libraries for accessing the libvirt daemon. +%package admin +Summary: Set of tools to control libvirt daemon +Group: Development/Libraries +Requires: %{name}-libs = %{version}-%{release} +Requires: readline + +%description admin +The client side utilities to control the libvirt daemon. + %if %{with_wireshark} %package wireshark Summary: Wireshark dissector plugin for libvirt RPC transactions @@ -1752,12 +1761,10 @@ exit 0 %files client %{_mandir}/man1/virsh.1* -%{_mandir}/man1/virt-admin.1* %{_mandir}/man1/virt-xml-validate.1* %{_mandir}/man1/virt-pki-validate.1* %{_mandir}/man1/virt-host-validate.1* %{_bindir}/virsh -%{_bindir}/virt-admin %{_bindir}/virt-xml-validate %{_bindir}/virt-pki-validate %{_bindir}/virt-host-validate @@ -1808,6 +1815,11 @@ exit 0 %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf +%files admin +%{_mandir}/man1/virt-admin.1* +%{_bindir}/virt-admin + + %if %{with_wireshark} %files wireshark %{_libdir}/wireshark/plugins/libvirt.so
ACK with the same caveat as 1/2 ;) By the way, should mingw-libvirt.spec.in updated to ship the virsh and virt-admin binaries in separate -client and -admin packages? Does shipping a mingw version virt-admin even make sense, given that AFAIK it doesn't (yet) work on remote daemons? -- Andrea Bolognani / Red Hat / Virtualization

On 04/07/16 14:33, Andrea Bolognani wrote:
On Fri, 2016-07-01 at 12:04 +0200, Michal Privoznik wrote:
The new package for the virt-admin binary is libvirt-admin.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- libvirt.spec.in | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/libvirt.spec.in b/libvirt.spec.in index 8d4df50..e55d362 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -855,6 +855,15 @@ Requires: cyrus-sasl-md5 %description libs Shared libraries for accessing the libvirt daemon.
+%package admin +Summary: Set of tools to control libvirt daemon +Group: Development/Libraries +Requires: %{name}-libs = %{version}-%{release} +Requires: readline + +%description admin +The client side utilities to control the libvirt daemon. + %if %{with_wireshark} %package wireshark Summary: Wireshark dissector plugin for libvirt RPC transactions @@ -1752,12 +1761,10 @@ exit 0
%files client %{_mandir}/man1/virsh.1* -%{_mandir}/man1/virt-admin.1* %{_mandir}/man1/virt-xml-validate.1* %{_mandir}/man1/virt-pki-validate.1* %{_mandir}/man1/virt-host-validate.1* %{_bindir}/virsh -%{_bindir}/virt-admin %{_bindir}/virt-xml-validate %{_bindir}/virt-pki-validate %{_bindir}/virt-host-validate @@ -1808,6 +1815,11 @@ exit 0
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
+%files admin +%{_mandir}/man1/virt-admin.1* +%{_bindir}/virt-admin + + %if %{with_wireshark} %files wireshark %{_libdir}/wireshark/plugins/libvirt.so
ACK with the same caveat as 1/2 ;)
By the way, should mingw-libvirt.spec.in updated to ship the virsh and virt-admin binaries in separate -client and -admin packages?
Does shipping a mingw version virt-admin even make sense, given that AFAIK it doesn't (yet) work on remote daemons?
Well, I didn't add it to the mingw spec file for that^ specific reason, but according to https://www.redhat.com/archives/libvir-list/2016-July/msg00022.html it broke the the build on mingw apparently. However, I wouldn't bother splitting the packages to -client and -admin on mingw at the moment, it's just not worth it IMHO. Erik

On Mon, 2016-07-04 at 15:53 +0200, Erik Skultety wrote:
By the way, should mingw-libvirt.spec.in updated to ship the virsh and virt-admin binaries in separate -client and -admin packages? Does shipping a mingw version virt-admin even make sense, given that AFAIK it doesn't (yet) work on remote daemons? Well, I didn't add it to the mingw spec file for that^ specific reason, but according to https://www.redhat.com/archives/libvir-list/2016-July/msg00022.html it broke the the build on mingw apparently.
I assume any breakage would have been caused by the fact that the libvirt-admin DLL and header files were missing; those should definitely be included in the package. What I'm wondering is whether the virt-admin executable should be shipped at all.
However, I wouldn't bother splitting the packages to -client and -admin on mingw at the moment, it's just not worth it IMHO.
I don't have a strong opinion either way, I just though I would bring it up for discussion :) -- Andrea Bolognani / Red Hat / Virtualization

On Mon, Jul 04, 2016 at 02:33:33PM +0200, Andrea Bolognani wrote:
On Fri, 2016-07-01 at 12:04 +0200, Michal Privoznik wrote:
The new package for the virt-admin binary is libvirt-admin. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- libvirt.spec.in | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/libvirt.spec.in b/libvirt.spec.in index 8d4df50..e55d362 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -855,6 +855,15 @@ Requires: cyrus-sasl-md5 %description libs Shared libraries for accessing the libvirt daemon. +%package admin +Summary: Set of tools to control libvirt daemon +Group: Development/Libraries +Requires: %{name}-libs = %{version}-%{release} +Requires: readline + +%description admin +The client side utilities to control the libvirt daemon. + %if %{with_wireshark} %package wireshark Summary: Wireshark dissector plugin for libvirt RPC transactions @@ -1752,12 +1761,10 @@ exit 0 %files client %{_mandir}/man1/virsh.1* -%{_mandir}/man1/virt-admin.1* %{_mandir}/man1/virt-xml-validate.1* %{_mandir}/man1/virt-pki-validate.1* %{_mandir}/man1/virt-host-validate.1* %{_bindir}/virsh -%{_bindir}/virt-admin %{_bindir}/virt-xml-validate %{_bindir}/virt-pki-validate %{_bindir}/virt-host-validate @@ -1808,6 +1815,11 @@ exit 0 %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf +%files admin +%{_mandir}/man1/virt-admin.1* +%{_bindir}/virt-admin + + %if %{with_wireshark} %files wireshark %{_libdir}/wireshark/plugins/libvirt.so
ACK with the same caveat as 1/2 ;)
By the way, should mingw-libvirt.spec.in updated to ship the virsh and virt-admin binaries in separate -client and -admin packages?
No, the mingw should package is supposed to contain everything in one package. sub-packages are explicitly not wanted for mingw Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On 01.07.2016 12:04, Michal Privoznik wrote:
*** BLURB HERE ***
Michal Privoznik (2): spec: Split libvirt-client spec: Move virt-admin into its own package
libvirt.spec.in | 90 +++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 56 insertions(+), 34 deletions(-)
Since Andrea gave me weak ACK and nobody objected, I have pushed this. Thank you. Michal
participants (4)
-
Andrea Bolognani
-
Daniel P. Berrange
-
Erik Skultety
-
Michal Privoznik