On 15.05.2013 12:33, Daniel P. Berrange wrote: > From: "Daniel P. Berrange" <berrange@xxxxxxxxxx> > > Change the build process & driver initialization so that the > VirtualBox driver is built into libvirtd, instead of libvirt.so > This change avoids the VirtualBox GPLv2-only license causing > compatibility problems with libvirt.so which is under the > GPLv2-or-later license. > > NB this change prevents use of the VirtualBox driver on the > Windows platform, until such time as libvirtd can be made > to work there. > > Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> > --- > daemon/libvirtd.c | 9 +++++++++ > docs/drvvbox.html.in | 12 ++++++++++++ > src/Makefile.am | 24 +++++++++++++++++++----- > src/libvirt.c | 7 ------- > 4 files changed, 40 insertions(+), 12 deletions(-) > > diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c > index 1ac8e30..abb46ca 100644 > --- a/daemon/libvirtd.c > +++ b/daemon/libvirtd.c > @@ -73,6 +73,9 @@ > # ifdef WITH_UML > # include "uml/uml_driver.h" > # endif > +#ifdef WITH_VBOX > +# include "vbox/vbox_driver.h" > +#endif bad indent > # ifdef WITH_NETWORK > # include "network/bridge_driver.h" > # endif > @@ -400,6 +403,9 @@ static void daemonInitialize(void) > # ifdef WITH_UML > virDriverLoadModule("uml"); > # endif > +# ifdef WITH_UML s/WITH_UML/WITH_VBOX/ > + virDriverLoadModule("vbox"); > +# endif > #else > # ifdef WITH_NETWORK > networkRegister(); > @@ -434,6 +440,9 @@ static void daemonInitialize(void) > # ifdef WITH_UML > umlRegister(); > # endif > +# ifdef WITH_VBOX > + vboxRegister(); > +# endif > #endif > } > > diff --git a/docs/drvvbox.html.in b/docs/drvvbox.html.in > index d59da57..e2a213c 100644 > --- a/docs/drvvbox.html.in > +++ b/docs/drvvbox.html.in > @@ -31,6 +31,18 @@ vbox+tcp://user@xxxxxxxxxxx/session (remote access, SASl/Kerberos) > vbox+ssh://user@xxxxxxxxxxx/session (remote access, SSH tunnelled) > </pre> > > + <p> > + <strong>NOTE: as of libvirt 1.0.6, the VirtualBox driver will always > + run inside the libvirtd daemon, instead of being built-in to the > + libvirt.so library directly. This change was required due to the > + fact that VirtualBox code is GPLv2-only licensed, which is not > + compatible with the libvirt.so license of GPLv2-or-later. The > + daemon will be auto-started when the first connection to VirtualBox > + is requested. This change also means it is no longer possible to > + use the VirtualBox on the Windows platform, which lacks support > + for the libvirtd daemon.</strong> > + </p> > + > <h2><a name="xmlconfig">Example domain XML config</a></h2> > > <pre> > diff --git a/src/Makefile.am b/src/Makefile.am > index 6c626ac..8f26181 100644 > --- a/src/Makefile.am > +++ b/src/Makefile.am > @@ -957,12 +957,26 @@ libvirt_driver_vmware_la_SOURCES = $(VMWARE_DRIVER_SOURCES) > endif > > if WITH_VBOX > +noinst_LTLIBRARIES += libvirt_driver_vbox_impl.la > +libvirt_driver_vbox_la_SOURCES = > +libvirt_driver_vbox_la_LIBADD = libvirt_driver_vbox_impl.la > +if WITH_DRIVER_MODULES > +mod_LTLIBRARIES += libvirt_driver_vbox.la > +libvirt_driver_vbox_la_LIBADD += ../gnulib/lib/libgnu.la > +libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version > +else > noinst_LTLIBRARIES += libvirt_driver_vbox.la > -libvirt_la_BUILT_LIBADD += libvirt_driver_vbox.la > -libvirt_driver_vbox_la_CFLAGS = \ > - -I$(top_srcdir)/src/conf $(AM_CFLAGS) > -libvirt_driver_vbox_la_LIBADD = $(DLOPEN_LIBS) $(MSCOM_LIBS) > -libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES) > +# GPLv2-only license requries that it be linked into > +# libvirtd and *not* libvirt.so > +#libvirt_la_BUILT_LIBADD += libvirt_driver_xen.la Why libvirt_driver_xen.la? s/xen/vbox/ > +endif > + > +libvirt_driver_vbox_impl_la_CFLAGS = \ > + -I$(top_srcdir)/src/conf \ > + $(AM_CFLAGS) > +libvirt_driver_vbox_impl_la_LDFLAGS = $(AM_LDFLAGS) > +libvirt_driver_vbox_impl_la_LIBADD = $(DLOPEN_LIBS) $(MSCOM_LIBS) > +libvirt_driver_vbox_impl_la_SOURCES = $(VBOX_DRIVER_SOURCES) > endif > > if WITH_XENAPI > diff --git a/src/libvirt.c b/src/libvirt.c > index 2b3515e..d0ec10a 100644 > --- a/src/libvirt.c > +++ b/src/libvirt.c > @@ -81,9 +81,6 @@ > #ifdef WITH_PHYP > # include "phyp/phyp_driver.h" > #endif > -#ifdef WITH_VBOX > -# include "vbox/vbox_driver.h" > -#endif > #ifdef WITH_ESX > # include "esx/esx_driver.h" > #endif > @@ -465,10 +462,6 @@ virGlobalInit(void) > if (phypRegister() == -1) > goto error; > #endif > -#ifdef WITH_VBOX > - if (vboxRegister() == -1) > - goto error; > -#endif > #ifdef WITH_ESX > if (esxRegister() == -1) > goto error; > Makes sense. ACK if you address the nits but please wait a moment before pushing so others can express themselves as well. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list