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]

 



13.04.2016 22:53, Laine Stump пишет:
On 04/13/2016 03:06 PM, Laine Stump wrote:
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...


The problem is that the toplevel APIs of the driver don't have the appropriate calls to virBlahEnsureACL(). I've gone through adding maybe 20 or so of the necessary calls, but starting with vzDomainSuspend() it's not as mechanical, and I have to leave for awhile. I'll try to send you a patch of what I've done and you can continue it if I can't get back to it.

Thanks.
I found it out also. I didn't run "make check" last time, only "make syntax-check". My bad.
Trying to fix it right now. Sorry once again.



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



--
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]