
On Tue, Apr 03, 2012 at 05:41:57PM +0800, Daniel Veillard wrote:
On Tue, Apr 03, 2012 at 10:06:02AM +0100, Daniel P. Berrange wrote:
On Tue, Apr 03, 2012 at 04:22:59PM +0800, Daniel Veillard wrote:
- libvirt-daemon - Just the libvirtd daemon, no drivers, no configs - libvirt-daemon-config-network - Just the virbr0 configs
let's rename to libvirt-daemon-bridge then !
No, I explicitly chose to have -config' in the name, because this really is just the config files, and we might want to use the name 'libvirt-daemon-bridge' at some point in the future.
- libvirt-daemon-config-nwfilter - Just the firewall configs
and libvirt-daemon-nwfilter
Again, I want config there to ensure that the libvirt-ademon-nwfilter RPM name is availble for future use.
the fact that the rpm contains config files, or .so, or binaries the user should care only of what functionality is provided.
The actual nwfilter functionality is provided in the libvirt-daemon RPM, so to suggest they need to use libvirt-daemon-nwfilter is misleading - this is only some default config files which apps do not need to use if they don't want them - oVirt uses its own configs for example.
If we split it that much then we must make sure that rpm -i libvirt-daemon-nwfilter will actually restart the server in the %post (and true for most of the others package, may turn into a challenge when installing 4 extension package and we want to avoid restarting the server 4 times !)
In the re-post I did, I use %posttrans script to ensure it is restarted once, at the end of the transaction.
- libvirt-daemon-driver-XXX - Contains the dlopen'd modules per driver or sub-driver. One for each XXX in: (uml, qemu, xen, lxc, storage, network, nwfilter, interface, nodedev, secrets)
this is what I dislike, I would prefer to see libvirt-kvm and libvirt-daemon-driver-kvm to be merged (and hence my question about qemu and kvm because the .so would be shared I assume) unless there is a good story for having only the .so in the rpm that's the part I really reacted to when I made my tentative build for the release and that looks way to intricate to my taste.
It is not possible to merge these to. For backwards compatibility, we need 'libvirt' to depend on 'libvirt-daemon-driver-qemu'. We do *not*, however, want 'libvirt' to pull in 'qemu' itself. It becomes clear when you consider what the entry points for application dependancies are: /---> libvirt --------+---------> libvirt-daemon | | ^ | | | | \---------> libvirt-daemon-driver-qemu | | | +---> libvirt-daemon-qemu ------------+--|------> qemu | | +---> libvirt-daemon-kvm ----------------+------> qemu-kvm | App Choice So 'yum install libvirt', does *not* pull in 'qemu', 'qemu-kvm' or 'xen' If we merged the packages as you describe, we'd end up with /---> libvirt --------+---------> libvirt-daemon | | ^ | \-------------\ | | | | | | | V | |----------------------------|--> libvirt-daemon-driver-qemu ---> qemu | | | \------\ | | | V |-------------------------------> libvirt-daemon-driver-qemu ---> qemu-kvm | App Choice So, 'yum install libvirt' would end up pulling in every single hypervisor we support (qemu, qemu-kvm, xen), which is not at all what we want. Separating the libvirt-daemon-XXX packages from the libvirt-daemon-driver-XXX packages is key to achieving the goal of minimising install footprint, while maintaining backwards compatibility with existing RPM deps. Rgards, 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 :|