forked from pool/libvirt
0119ca3996
- Adding device removal or deletion events - Introduce new domain create APIs to pass pre-opened FDs to LXC - Add interface versions for Xen 4.3 - Add new public API virDomainSetMemoryStatsPeriod - Various LXC improvements - Many incremental improvements and bug fixes, see http://libvirt.org/news.html - Drop upstream patches: f38c8185-CVE-2013-2230.patch, fd2e3c4c-xen-sysctl-domctl.patch, dfc69235-CVE-2013-4153.patch, 96518d43-CVE-2013-4154.patch, fe89fd3b-storage-pool-deadlock.patch - Drop relax-qemu-usergroup-check.patch - no longer needed after hypervisor-specific daemon package split OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=290
211 lines
6.7 KiB
Diff
211 lines
6.7 KiB
Diff
Index: libvirt-1.1.1/configure.ac
|
|
===================================================================
|
|
--- libvirt-1.1.1.orig/configure.ac
|
|
+++ libvirt-1.1.1/configure.ac
|
|
@@ -172,6 +172,7 @@ LIBVIRT_CHECK_DBUS
|
|
LIBVIRT_CHECK_FUSE
|
|
LIBVIRT_CHECK_HAL
|
|
LIBVIRT_CHECK_NETCF
|
|
+LIBVIRT_CHECK_NETCONTROL
|
|
LIBVIRT_CHECK_NUMACTL
|
|
LIBVIRT_CHECK_OPENWSMAN
|
|
LIBVIRT_CHECK_PCIACCESS
|
|
@@ -2226,11 +2227,12 @@ if test "$with_libvirtd" = "no" ; then
|
|
with_interface=no
|
|
fi
|
|
|
|
-dnl The interface driver depends on the netcf library or udev library
|
|
-case $with_interface:$with_netcf:$with_udev in
|
|
+dnl The interface driver depends on the netcf library, netcontrol library, or
|
|
+dnl udev library
|
|
+case $with_interface:$with_netcf:$with_netcontrol:$with_udev in
|
|
check:*yes*) with_interface=yes ;;
|
|
check:no:no) with_interface=no ;;
|
|
- yes:no:no) AC_MSG_ERROR([Requested the Interface driver without netcf or udev support]) ;;
|
|
+ yes:no:no) AC_MSG_ERROR([Requested the Interface driver without netcf, netcontrol, or udev support]) ;;
|
|
esac
|
|
|
|
if test "$with_interface" = "yes" ; then
|
|
@@ -2527,6 +2529,7 @@ LIBVIRT_RESULT_DBUS
|
|
LIBVIRT_RESULT_FUSE
|
|
LIBVIRT_RESULT_HAL
|
|
LIBVIRT_RESULT_NETCF
|
|
+LIBVIRT_RESULT_NETCONTROL
|
|
LIBVIRT_RESULT_NUMACTL
|
|
LIBVIRT_RESULT_OPENWSMAN
|
|
LIBVIRT_RESULT_PCIACCESS
|
|
Index: libvirt-1.1.1/src/Makefile.am
|
|
===================================================================
|
|
--- libvirt-1.1.1.orig/src/Makefile.am
|
|
+++ libvirt-1.1.1/src/Makefile.am
|
|
@@ -741,6 +741,10 @@ if WITH_NETCF
|
|
INTERFACE_DRIVER_SOURCES += \
|
|
interface/interface_backend_netcf.c
|
|
endif
|
|
+if WITH_NETCONTROL
|
|
+INTERFACE_DRIVER_SOURCES += \
|
|
+ interface/interface_backend_netcf.c
|
|
+endif
|
|
if WITH_UDEV
|
|
INTERFACE_DRIVER_SOURCES += \
|
|
interface/interface_backend_udev.c
|
|
@@ -1293,11 +1297,16 @@ if WITH_NETCF
|
|
libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
|
|
libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
|
|
else
|
|
+if WITH_NETCONTROL
|
|
+libvirt_driver_interface_la_CFLAGS += $(NETCONTROL_CFLAGS)
|
|
+libvirt_driver_interface_la_LIBADD += $(NETCONTROL_LIBS)
|
|
+else
|
|
if WITH_UDEV
|
|
libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
|
|
libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
|
|
endif
|
|
endif
|
|
+endif
|
|
if WITH_DRIVER_MODULES
|
|
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
|
|
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
|
|
Index: libvirt-1.1.1/tools/virsh.c
|
|
===================================================================
|
|
--- libvirt-1.1.1.orig/tools/virsh.c
|
|
+++ libvirt-1.1.1/tools/virsh.c
|
|
@@ -2882,6 +2882,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE
|
|
vshPrint(ctl, " Interface");
|
|
# if defined(WITH_NETCF)
|
|
vshPrint(ctl, " netcf");
|
|
+# elif defined(WITH_NETCONTROL)
|
|
+ vshPrint(ctl, " netcontrol");
|
|
# elif defined(WITH_UDEV)
|
|
vshPrint(ctl, " udev");
|
|
# endif
|
|
Index: libvirt-1.1.1/src/interface/interface_backend_netcf.c
|
|
===================================================================
|
|
--- libvirt-1.1.1.orig/src/interface/interface_backend_netcf.c
|
|
+++ libvirt-1.1.1/src/interface/interface_backend_netcf.c
|
|
@@ -23,7 +23,12 @@
|
|
|
|
#include <config.h>
|
|
|
|
-#include <netcf.h>
|
|
+#ifdef WITH_NETCONTROL
|
|
+# include <netcontrol/netcf.h>
|
|
+# include <netcontrol/logger.h>
|
|
+#else
|
|
+# include <netcf.h>
|
|
+#endif
|
|
|
|
#include "virerror.h"
|
|
#include "datatypes.h"
|
|
@@ -54,6 +59,38 @@ static void interfaceDriverUnlock(struct
|
|
virMutexUnlock(&driver->lock);
|
|
}
|
|
|
|
+#ifdef WITH_NETCONTROL
|
|
+static void
|
|
+interface_nc_log_driver(const char *category,
|
|
+ int priority,
|
|
+ const char *func,
|
|
+ const char *file,
|
|
+ long long line,
|
|
+ const char *msg,
|
|
+ size_t len ATTRIBUTE_UNUSED)
|
|
+{
|
|
+ int vp;
|
|
+
|
|
+ switch(priority) {
|
|
+ case NC_LOG_FATAL:
|
|
+ case NC_LOG_ERROR:
|
|
+ vp = VIR_LOG_ERROR;
|
|
+ break;
|
|
+ case NC_LOG_WARN:
|
|
+ vp = VIR_LOG_WARN;
|
|
+ break;
|
|
+ case NC_LOG_INFO:
|
|
+ vp = VIR_LOG_INFO;
|
|
+ break;
|
|
+ case NC_LOG_DEBUG:
|
|
+ default:
|
|
+ vp = VIR_LOG_DEBUG;
|
|
+ break;
|
|
+ }
|
|
+ virLogMessage(VIR_LOG_FROM_FILE, vp, file, line, func, 0, "%s", msg);
|
|
+}
|
|
+#endif
|
|
+
|
|
/*
|
|
* Get a minimal virInterfaceDef containing enough metadata
|
|
* for access control checks to be performed. Currently
|
|
@@ -164,6 +201,10 @@ static virDrvOpenStatus netcfInterfaceOp
|
|
goto mutex_error;
|
|
}
|
|
|
|
+#ifdef WITH_NETCONTROL
|
|
+ nc_logger_redirect_to(interface_nc_log_driver);
|
|
+#endif
|
|
+
|
|
/* open netcf */
|
|
if (ncf_init(&driverState->netcf, NULL) != 0)
|
|
{
|
|
Index: libvirt-1.1.1/src/interface/interface_driver.c
|
|
===================================================================
|
|
--- libvirt-1.1.1.orig/src/interface/interface_driver.c
|
|
+++ libvirt-1.1.1/src/interface/interface_driver.c
|
|
@@ -28,8 +28,15 @@ interfaceRegister(void) {
|
|
if (netcfIfaceRegister() == 0)
|
|
return 0;
|
|
#endif /* WITH_NETCF */
|
|
+#ifdef WITH_NETCONTROL
|
|
+ /* Attempt to load the netcontrol based backend, which is a slightly
|
|
+ patched netcf backend */
|
|
+ if (netcfIfaceRegister() == 0)
|
|
+ return 0;
|
|
+#endif /* WITH_NETCONTROL */
|
|
#if WITH_UDEV
|
|
- /* If there's no netcf or it failed to load, register the udev backend */
|
|
+ /* If there's no netcf or netcontrol, or it failed to load, register the
|
|
+ udev backend */
|
|
if (udevIfaceRegister() == 0)
|
|
return 0;
|
|
#endif /* WITH_UDEV */
|
|
Index: libvirt-1.1.1/m4/virt-netcontrol.m4
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ libvirt-1.1.1/m4/virt-netcontrol.m4
|
|
@@ -0,0 +1,35 @@
|
|
+dnl The libnetcontrol library
|
|
+dnl
|
|
+dnl Copyright (C) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
+dnl
|
|
+dnl This library is free software; you can redistribute it and/or
|
|
+dnl modify it under the terms of the GNU Lesser General Public
|
|
+dnl License as published by the Free Software Foundation; either
|
|
+dnl version 2.1 of the License, or (at your option) any later version.
|
|
+dnl
|
|
+dnl This library is distributed in the hope that it will be useful,
|
|
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+dnl Lesser General Public License for more details.
|
|
+dnl
|
|
+dnl You should have received a copy of the GNU Lesser General Public
|
|
+dnl License along with this library. If not, see
|
|
+dnl <http://www.gnu.org/licenses/>.
|
|
+dnl
|
|
+
|
|
+AC_DEFUN([LIBVIRT_CHECK_NETCONTROL],[
|
|
+ LIBVIRT_CHECK_PKG([NETCONTROL], [netcontrol], [0.2.0])
|
|
+
|
|
+ if test "$with_netcontrol" = "yes" ; then
|
|
+ old_CFLAGS="$CFLAGS"
|
|
+ old_LIBS="$CFLAGS"
|
|
+ CFLAGS="$CFLAGS $NETCONTROL_CFLAGS"
|
|
+ LIBS="$LIBS $NETCONTROL_LIBS"
|
|
+ CFLAGS="$old_CFLAGS"
|
|
+ LIBS="$old_LIBS"
|
|
+ fi
|
|
+])
|
|
+
|
|
+AC_DEFUN([LIBVIRT_RESULT_NETCONTROL],[
|
|
+ LIBVIRT_RESULT_LIB([NETCONTROL])
|
|
+])
|