Re: [PATCH v4 1/6] vz: build driver as module and don't register it on client's side

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It's this commit that causes the "Missing ACL check" breakage I mentioned in the other message (caused by a failure of check-aclrules.pl). See below for a separate problem...


On 04/13/2016 09:07 AM, Maxim Nestratov wrote:
Make it possible to build vz driver as a module and don't link it with
libvirt.so statically.
Remove registering it on client's side as far as we start relying on daemon

Signed-off-by: Maxim Nestratov <mnestratov@xxxxxxxxxxxxx>
---
  daemon/Makefile.am       |  4 ++++
  daemon/libvirtd.c        |  9 +++++++++
  src/Makefile.am          | 19 ++++++++++++++-----
  src/libvirt.c            |  7 -------
  src/libvirt_private.syms |  7 +++++++
  5 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 2dbe81b..78d7d21 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -233,6 +233,10 @@ if WITH_VBOX
      libvirtd_LDADD += ../src/libvirt_driver_vbox.la
  endif WITH_VBOX
+if WITH_VZ
+    libvirtd_LDADD += ../src/libvirt_driver_vz.la
+endif WITH_VZ
+
  if WITH_STORAGE
      libvirtd_LDADD += ../src/libvirt_driver_storage.la
  endif WITH_STORAGE
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index 3d38a46..92b4080 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -102,6 +102,9 @@
  #  include "nwfilter/nwfilter_driver.h"
  # endif
  #endif
+#ifdef WITH_VZ
+# include "vz/vz_driver.h"
+#endif
#include "configmake.h" @@ -390,6 +393,9 @@ static void daemonInitialize(void)
  # ifdef WITH_BHYVE
      virDriverLoadModule("bhyve");
  # endif
+# ifdef WITH_VZ
+    virDriverLoadModule("vz");
+# endif
  #else
  # ifdef WITH_NETWORK
      networkRegister();
@@ -430,6 +436,9 @@ static void daemonInitialize(void)
  # ifdef WITH_BHYVE
      bhyveRegister();
  # endif
+# ifdef WITH_VZ
+    vzRegister();
+# endif
  #endif
  }
diff --git a/src/Makefile.am b/src/Makefile.am
index eda0365..08ff301 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -630,6 +630,7 @@ DRIVER_SOURCE_FILES = \
  	$(NULL)
STATEFUL_DRIVER_SOURCE_FILES = \
+	$(VZ_DRIVER_SOURCES) \
  	$(BHYVE_DRIVER_SOURCES) \
  	$(INTERFACE_DRIVER_SOURCES) \
  	$(LIBXL_DRIVER_SOURCES) \
@@ -886,7 +887,7 @@ HYPERV_DRIVER_EXTRA_DIST =							\
  		hyperv/hyperv_wmi_generator.py					\
  		$(HYPERV_DRIVER_GENERATED)
-VZ_DRIVER_SOURCES = \
+VZ_DRIVER_SOURCES =				\
  		vz/vz_driver.h			\
  		vz/vz_driver.c			\
  		vz/vz_utils.c			\
@@ -1493,13 +1494,21 @@ libvirt_driver_hyperv_la_SOURCES = $(HYPERV_DRIVER_SOURCES)
  endif WITH_HYPERV
if WITH_VZ
+noinst_LTLIBRARIES += libvirt_driver_vz_impl.la
+libvirt_driver_vz_la_SOURCES =
+libvirt_driver_vz_la_LIBADD = libvirt_driver_vz_impl.la
+if WITH_DRIVER_MODULES
+mod_LTLIBRARIES += libvirt_driver_vz.la
+libvirt_driver_vz_la_LIBADD += ../gnulib/lib/libgnu.la
+libvirt_driver_vz_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
+else ! WITH_DRIVER_MODULES
  noinst_LTLIBRARIES += libvirt_driver_vz.la
-libvirt_la_BUILT_LIBADD += libvirt_driver_vz.la
-libvirt_driver_vz_la_CFLAGS = \
+endif ! WITH_DRIVER_MODULES
+libvirt_driver_vz_impl_la_CFLAGS = \
  		-I$(srcdir)/conf $(AM_CFLAGS) \
  		$(PARALLELS_SDK_CFLAGS) $(LIBNL_CFLAGS)
-libvirt_driver_vz_la_LIBADD = $(PARALLELS_SDK_LIBS) $(LIBNL_LIBS)
-libvirt_driver_vz_la_SOURCES = $(VZ_DRIVER_SOURCES)
+libvirt_driver_vz_impl_la_SOURCES = $(VZ_DRIVER_SOURCES)
+libvirt_driver_vz_impl_la_LIBADD =  $(PARALLELS_SDK_LIBS) $(LIBNL_LIBS)
  endif WITH_VZ
if WITH_BHYVE
diff --git a/src/libvirt.c b/src/libvirt.c
index dd58e9c..a21d00e 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -92,9 +92,6 @@
  #ifdef WITH_XENAPI
  # include "xenapi/xenapi_driver.h"
  #endif
-#ifdef WITH_VZ
-# include "vz/vz_driver.h"
-#endif
  #ifdef WITH_BHYVE
  # include "bhyve/bhyve_driver.h"
  #endif
@@ -433,10 +430,6 @@ virGlobalInit(void)
      if (xenapiRegister() == -1)
          goto error;
  # endif
-# ifdef WITH_VZ
-    if (vzRegister() == -1)
-        goto error;
-# endif
  #endif
  #ifdef WITH_REMOTE
      if (remoteRegister() == -1)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index a9719ea..3a712de 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -927,6 +927,11 @@ virGetSecret;
  virGetStoragePool;
  virGetStorageVol;
  virGetStream;
+virConnectCloseCallbackDataGetCallback;
+virNewConnectCloseCallbackData;
+virConnectCloseCallbackDataUnregister;
+virConnectCloseCallbackDataRegister;
+virConnectCloseCallbackDataCall;

The names in libvirt_private.syms are supposed to be in alphebetical order within a file. These were added out of order which *should* cause "make syntax-check" to fail, but doesn't for some reason. I noticed it because of a warning message printed out while building.

  virInterfaceClass;
  virNetworkClass;
  virNodeDeviceClass;
@@ -935,6 +940,7 @@ virSecretClass;
  virStoragePoolClass;
  virStorageVolClass;
  virStreamClass;
+virConnectCloseCallbackDataClass;

This one is also out of order.

# fdstream.h
@@ -1302,6 +1308,7 @@ virCommandHandshakeWait;
  virCommandNew;
  virCommandNewArgList;
  virCommandNewArgs;
+virCommandNewVAList;
  virCommandNonblockingFDs;
  virCommandPassFD;
  virCommandPassFDGetFDIndex;

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]