2009/9/16 Daniel P. Berrange <berrange@xxxxxxxxxx>: > This is a followup to > > http://www.redhat.com/archives/libvir-list/2009-September/msg00477.html > > I am not actually going to spam the list with all the patches, since > it'd generate a HUGE series of mails. > > Instead I have published a branch containing all the patches which you > can directly pull into your GIT checkout. I recommend you do the > following set of steps. > > - make maintainer-clean > - git checkout master > - git pull > - git remote add -f danb git://gitorious.org/~berrange/libvirt/staging.git > - git checkout -b rearrange danb/rearrange > > You will now have a checkout on a branch called 'rearrange' containing > all my patches applied. > > If you want to go straight into building it, the normal build process > still applies eg ./autogen && make I tested this and it compiles without problems. > I've committed the changes in a large series of steps to make it easier > to see what's going on at each point. To see the list of changes run > the following > > git log -b berrange/rearrange master.. > > The changes basically follow everything we discussed in the previous > thread > > I've added a src/README file which describes the split of sub-directories. > I'll reproduce the content here for convenience > > libvirt library code README > =========================== > > The directory provides the bulk of the libvirt codebase. Everything > except for the libvirtd daemon and client tools. The build uses a > large number of libtool convenience libraries - one for each child > directory, and then links them together for the final libvirt.so, > although some bits get linked directly to libvirtd daemon instead. > > The files directly in this directory are supporting the public API > entry points & data structures. > > There are two core shared modules to be aware of: > > * util/ - a collection of shared APIs that can be used by any > code. This directory is always in the include path > for all things built > > * conf/ - APIs for parsing / manipulating all the official XML > files used by the public API. This directory is only > in the include path for driver implementation modules > > > Then there are the hypervisor implementations: > > * esx/ - VMWare ESX and GSX support using XMLRPC s/VMWare/VMware/ and s/XMLRPC/SOAP/ or more verbose s/XMLRPC/vSphere API over SOAP/ > * lxc/ - Linux Native Containers > * opennebula/ - Open Nebula using XMLRPC > * openvz/ - OpenVZ containers using cli tools > * phyp/ - IBM Power Hypervisor using CLI tools over SSH > * qemu/ - QEMU / KVM using qemu CLI/monitor > * remote/ - Generic libvirt native RPC client > * test/ - A "mock" driver for testing > * uml/ - User Mode Linux > * vbox/ - Virtual Box using native API > * xen/ - Xen using hypercalls, XenD SEXPR & XenStore > > > Finally some secondary drivers that are shared for several HVs. > Currently these are used by LXC, OpenVZ, QEMU, UML and Xen drivers. > The ESX, OpenNebula, Power Hypervisor, Remote, Test & VirtualBox > drivers all implement the secondary drivers directly > > * interface/ - Host network interface management > * network/ - Virtual NAT networking > * node_device/ - Host device enumeration > * secret/ - Secret management > * security/ - Mandatory access control drivers > * storage/ - Storage management drivers > > > Since both the hypervisor and secondary drivers can be built as > dlopen()able modules, it is *FORBIDDEN* to have build dependancies s/dependancies/dependencies/ > between these directories. Drivers are only allowed to depend on > the public API, and the internal APIs in the util/ and conf/ > directories > > > > For the docs directory, I left the docs/libvirt-{api,refs}.xml files > in GIT as Daniel requested. I have removed the *.html, devhelp/*.html > and html/*.html files though. These are all re-generated when doing > make in the docs directory, and the generated HTML is included in > the tar.gz when doing make dist. So end users won't have to rebuild > them, only libvirt developers > > The example programs & XML is now all under examples/ with various > sub-directories. > > The qemud/ directory is renamed to daemon/ > > The python/ directory has its file nameing changed and the genrator > tweaked so that its more obvious which are generated files and which > are manually written. You might want to add the generated libvirt.c and libvirt.h to the .gitignore file in the python directory. > virsh has moved to the tools/ directory, and the docs/pki_check.sh > file has been turned into a real installed tool, tools/virt-pki-validate > along with man page. > > A few minor bugs were fixed along the way (eg bogus include files > discovered when files were moved) & unused png/gif images in docs/ > > There should be no FUNCTIONAL change in any of this work though. It > is a pure re-arrangement of files. > > Please try out a build using this 'rearrange' branch from gitorious. > Since this is a huge change I'd like to apply this to the master repo > as soon as people can verify its doing the right thing for them. > > FWIW, I checked an RPM build and 'make distcheck' too with no issues. > > Regards, > Daniel Clean and useful rearrangement. Matthias -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list