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

Maxim Nestratov mnestratov at virtuozzo.com
Wed Apr 13 20:55:44 UTC 2016


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 at virtuozzo.com>
>>> ---
>>>   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 at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvir-list
>>
>




More information about the libvir-list mailing list