forked from pool/libvirt
278a149fdc
Note: tarball verification is now done using %gpg_verify, along with the .asc file the upstream libvirt maintainer now generates for each release. This approach requires using the upstream .gz tarball, which is slightly larger than the regenerated .bz2 one. - Update to libvirt 1.2.9 - Introduce virNodeAllocPages - event: introduce new event for tunable values - Add support for fetching statistics of completed jobs - CVE-2014-3657: domain_conf: fix domain deadlock - CVE-2014-3633: qemu: blkiotune: Use correct definition when looking up disk - Many incremental improvements and bug fixes, see http://libvirt.org/news.html - Drop upstream patches: 3e745e8f-CVE-2014-3633.patch, libvirt-guests-wait-for-ntp.patch - Verify tarball with associated .asc file Add: libvirt.keyring, libvirt-1.2.9.tar.gz.asc Use upstream .gz tarball instead of locally generated .bz2 OBS-URL: https://build.opensuse.org/request/show/253577 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=411
229 lines
7.5 KiB
Diff
229 lines
7.5 KiB
Diff
Index: libvirt-1.2.9/configure.ac
|
|
===================================================================
|
|
--- libvirt-1.2.9.orig/configure.ac
|
|
+++ libvirt-1.2.9/configure.ac
|
|
@@ -237,6 +237,7 @@ LIBVIRT_CHECK_FUSE
|
|
LIBVIRT_CHECK_GLUSTER
|
|
LIBVIRT_CHECK_HAL
|
|
LIBVIRT_CHECK_NETCF
|
|
+LIBVIRT_CHECK_NETCONTROL
|
|
LIBVIRT_CHECK_NUMACTL
|
|
LIBVIRT_CHECK_OPENWSMAN
|
|
LIBVIRT_CHECK_PCIACCESS
|
|
@@ -2456,11 +2457,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
|
|
@@ -2882,6 +2884,7 @@ LIBVIRT_RESULT_FUSE
|
|
LIBVIRT_RESULT_GLUSTER
|
|
LIBVIRT_RESULT_HAL
|
|
LIBVIRT_RESULT_NETCF
|
|
+LIBVIRT_RESULT_NETCONTROL
|
|
LIBVIRT_RESULT_NUMACTL
|
|
LIBVIRT_RESULT_OPENWSMAN
|
|
LIBVIRT_RESULT_PCIACCESS
|
|
Index: libvirt-1.2.9/src/Makefile.am
|
|
===================================================================
|
|
--- libvirt-1.2.9.orig/src/Makefile.am
|
|
+++ libvirt-1.2.9/src/Makefile.am
|
|
@@ -826,6 +826,10 @@ if WITH_NETCF
|
|
INTERFACE_DRIVER_SOURCES += \
|
|
interface/interface_backend_netcf.c
|
|
endif WITH_NETCF
|
|
+if WITH_NETCONTROL
|
|
+INTERFACE_DRIVER_SOURCES += \
|
|
+ interface/interface_backend_netcf.c
|
|
+endif
|
|
if WITH_UDEV
|
|
INTERFACE_DRIVER_SOURCES += \
|
|
interface/interface_backend_udev.c
|
|
@@ -1465,10 +1469,15 @@ if WITH_NETCF
|
|
libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
|
|
libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
|
|
else ! WITH_NETCF
|
|
+if WITH_NETCONTROL
|
|
+libvirt_driver_interface_la_CFLAGS += $(NETCONTROL_CFLAGS)
|
|
+libvirt_driver_interface_la_LIBADD += $(NETCONTROL_LIBS)
|
|
+else ! WITH_NETCONTROL
|
|
if WITH_UDEV
|
|
libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
|
|
libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
|
|
endif WITH_UDEV
|
|
+endif ! WITH_NETCONTROL
|
|
endif ! WITH_NETCF
|
|
if WITH_DRIVER_MODULES
|
|
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
|
|
Index: libvirt-1.2.9/tools/virsh.c
|
|
===================================================================
|
|
--- libvirt-1.2.9.orig/tools/virsh.c
|
|
+++ libvirt-1.2.9/tools/virsh.c
|
|
@@ -3340,6 +3340,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.2.9/src/interface/interface_backend_netcf.c
|
|
===================================================================
|
|
--- libvirt-1.2.9.orig/src/interface/interface_backend_netcf.c
|
|
+++ libvirt-1.2.9/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"
|
|
@@ -65,6 +70,37 @@ VIR_ONCE_GLOBAL_INIT(virNetcfDriverState
|
|
|
|
static virNetcfDriverStatePtr driverState = NULL;
|
|
|
|
+#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(&virLogSelf, vp, file, line, func, 0, "%s", msg);
|
|
+}
|
|
+#endif
|
|
|
|
static void
|
|
virNetcfDriverStateDispose(void *obj)
|
|
@@ -87,7 +123,22 @@ netcfStateInitialize(bool privileged ATT
|
|
if (!(driverState = virObjectLockableNew(virNetcfDriverStateClass)))
|
|
return -1;
|
|
|
|
+#ifdef WITH_NETCONTROL
|
|
+ nc_logger_redirect_to(interface_nc_log_driver);
|
|
+
|
|
/* open netcf */
|
|
+ /* Note: On SUSE, ncf_init will fail if Network Manager is enabled. Ignore
|
|
+ * the failure so libvirtd will still start. Connections to the driver will
|
|
+ * fail in netcfInterfaceOpen. This restores the behavior before
|
|
+ * commit 822fe136.
|
|
+ */
|
|
+ if (ncf_init(&driverState->netcf, NULL) != 0) {
|
|
+ VIR_WARN("Failed to initialize netcontrol. Continuing with network "
|
|
+ "interface management features disabled");
|
|
+ virObjectUnref(driverState);
|
|
+ driverState = NULL;
|
|
+ }
|
|
+#else
|
|
if (ncf_init(&driverState->netcf, NULL) != 0) {
|
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
_("failed to initialize netcf"));
|
|
@@ -95,6 +146,7 @@ netcfStateInitialize(bool privileged ATT
|
|
driverState = NULL;
|
|
return -1;
|
|
}
|
|
+#endif
|
|
return 0;
|
|
}
|
|
|
|
Index: libvirt-1.2.9/src/interface/interface_driver.c
|
|
===================================================================
|
|
--- libvirt-1.2.9.orig/src/interface/interface_driver.c
|
|
+++ libvirt-1.2.9/src/interface/interface_driver.c
|
|
@@ -30,8 +30,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.2.9/m4/virt-netcontrol.m4
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ libvirt-1.2.9/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])
|
|
+])
|