Re: [libvirt] [PATCH] Refactor the libvirt RPM daemon pieces

From: Laine Stump <laine laine org>

To: libvir-list redhat com

Subject: Re: [libvirt] [PATCH] Refactor the libvirt RPM daemon pieces

Date: Fri, 30 Mar 2012 15:57:34 -0400

On 03/30/2012 03:30 PM, Daniel P. Berrange wrote:
> On Fri, Mar 30, 2012 at 03:00:03PM -0400, Laine Stump wrote:
>> On 03/30/2012 12:53 PM, Daniel P. Berrange wrote:
>>> From: "Daniel P. Berrange" <berrange redhat com>
>>>
>>> There are a number of flaws with our packaging of the libvirtd
>>> daemon:
>>>
>>> - Installing 'libvirt' does not install 'qemu-kvm' or 'xen'
>>> etc which are required to actually run the hypervisor in
>>> question
>>> - Installing 'libvirt' pulls in the default configuration
>>> files which may not be wanted & cause problems if installed
>>> inside a guest
>>> - It is not possible to explicitly required all the peices
>>> required to manage a specific hypervisor
>>>
>>> This change takes the 'libvirt' RPM and and changes it thus
>>>
>>> - libvirt: just a virtual package with dep on libvirt-daemon,
>>> libvirt-daemon-config-network & libvirt-daemon-config-nwfilter
>>> - libvirt-daemon: the libvirt daemon and related pieces
>>> - libvirt-daemon-config-network: the default network config
>>> - libvirt-daemon-config-nwfilter: the network filter configs
>>> - libvirt-docs: the website HTML
>>>
>>> We then introduce some more virtual (empty) packages
>>>
>>> - libvirt-daemon-qemu: Deps on libvirt-daemon & 'qemu'
>>> - libvirt-daemon-kvm: Deps on libvirt-daemon & 'qemu-kvm'
>>> - libvirt-daemon-lxc: Deps on libvirt-daemon
>>> - libvirt-daemon-uml: Deps on libvirt-daemon
>>> - libvirt-daemon-xen: Deps on libvirt-daemon & 'xen'
>>>
>>> - libvirt-qemu: Deps on libvirt-daemon-qemu & libvirt-daemon-config-{network,nwfilter}
>>> - libvirt-kvm: Deps on libvirt-daemon-kvm & libvirt-daemon-config-{network,nwfilter}
>>> - libvirt-lxc: Deps on libvirt-daemon-lxc & libvirt-daemon-config-{network,nwfilter}
>>> - libvirt-uml: Deps on libvirt-daemon-uml & libvirt-daemon-config-{network,nwfilter}
>>> - libvirt-xen: Deps on libvirt-daemon-xen & libvirt-daemon-config-network
>>>
>>> My intent in the future is to turn on the driver modules by
>>> default, at which time 'libvirt-daemon' will cease to include
>>> any specific drivers, instead we'll get libvirt-daemon-driver-XXXX
>>> packages for each driver. The libvirt-daemon-XXX packages will
>>> then pull in each driver that they require.
>>>
>>> It is recommended that applications required a locally installed
>>> libvirtd daemon, use either 'Requires: libvirt-daemon-XXXX' or
>>> 'Requires: libvirt-XXX' and *not* "Requires: libvirt-daemon"
>>> or 'Requires: libvirt'
>> I did a successful "make rpm" on Fedora 16, which resulted in 21 rpm's
>> (including the source rpm).
>>
>> When I tried to update using rpm -U, I was told that I didn't have the
>> required "qemu" and "xen" packages installed (not surprising, since I
>> never use them). Installing qemu cost 52MB on my disk, and xen another
>> 27. This isn't a bother to me, but I suppose it could be for someone who
>> was trying to make images as small as possible. On the other hand, that
>> person will just need to start using the "libvirt-kvm" package instead
>> of "libvirt".
> I assume that is because you did 'rpm -Uvh *.rpm', which means it
> would have included libvirt-qemu and libvirt-xen which in turn
> dep on 'qemu' and 'xen' respectively. If you had merely asked to
> install 'libvirt', it would not have required libvirt-qemu or
> libvirt-xen.
You assume correctly. I had always (incorrectly) assumed that rpm -U
would only update the machine rpms that were already installed. I'd
never actually checked.
So everything with this change seems okay to me.