
On Fri, Mar 30, 2012 at 04:40:09PM -0600, Eric Blake wrote:
On 03/30/2012 10:53 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange@redhat.com>
There are a number of flaws with our packaging of the libvirtd daemon:
+ +%if %{with_libvirtd} +%package daemon +Summary: Server side daemon and supporting files for libvirt library +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} + +# Used by many of the drivers, so turn it on whenever the +# daemon is present +%if %{with_libvirtd}
You've now nested %if %{with_libvirtd} twice; this could be simplified, but cleanups can be saved for another day if we are under the gun to get this out now (is there a cppi equivalent for spec files to help show nesting? Can you even indent %if directives for sanity in a spec file?)
Yes, i'll kill that nesting.
+# for modprobe of pci devices ...
+# For glusterfs +%if 0%{?fedora} >= 11 +Requires: glusterfs-client >= 2.0.1 +%endif +%endif +%if %{with_qemu} +# From QEMU RPMs +Requires: /usr/bin/qemu-img
Should this Requires: be pushed down to libvirt-daemon-qemu...
This is used by the storage driver, which is shared amongst xen, qemu, libxl, lxc & uml hypervisor drivers.
+# For image compression +Requires: gzip +Requires: bzip2 +Requires: lzop +Requires: xz +%else +%if %{with_xen} +# From Xen RPMs +Requires: /usr/sbin/qcow-create
and this one to libvirt-daemon-kvm?
Likewise, shared.
+# For virConnectGetSysinfo +Requires: dmidecode +%endif +# For service management +%if %{with_systemd} +Requires(post): systemd-units +Requires(post): systemd-sysv +Requires(preun): systemd-units +Requires(postun): systemd-units
These four requires deal with services, but we already pushed services into libvirt-daemon-config-network; I'm guessing these should be relocated to that section.
Or maybe I'm misunderstanding - is it that these enable libvirtd to run as a service, but libvirtd will do nothing to cause interference (like trying to set up the 'default' NAT network at 192.168.122.0) unless you also have the config files? In that case, what you did looks okay.
I only pushed the install of the network XML into the daemon-config-network RPM. There is still a '%post daemon' section which deals with the init scrpits which is what these requires are for.
+%endif +%if %{with_numad} +Requires: numad +%endif + +%description daemon +Server side daemon required to manage the virtualization capabilities +of recent versions of Linux. Requires a hypervisor specific sub-RPM +for specific drivers.
It looks weird to have the %description so far down from the %package with all the Requires in between. But that's cosmetic.
This is layout normal practice - it just looks a bit wierd because we have soooo many requires. 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 :|