forked from pool/libvirt
Accepting request 653614 from home:jfehlig:branches:Virtualization
- Update to libvirt 4.10.0 - Many incremental improvements and bug fixes, see http://libvirt.org/news.html - Dropped patches: 14d03b27-libxl-rm-redundant-virObjectEventStateQueue.patch, 82452a5d-libxl-rm-goto-libxlDomainShutdownThread.patch, da4b0fd9-libxl-support-soft-reset.patch, libxl-qemu-emulator-caps.patch - Added patches: libxl-support-ovswitch.patch, libxl-ovswitch-config-format-conversions.patch - FATE#320928, FATE#325817, FATE#326380, FATE#326698 OBS-URL: https://build.opensuse.org/request/show/653614 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=718
This commit is contained in:
parent
0a997d39fb
commit
096d671ce7
@ -18,10 +18,10 @@ them.
|
||||
create mode 100644 src/conf/domain_stats.c
|
||||
create mode 100644 src/conf/domain_stats.h
|
||||
|
||||
Index: libvirt-4.9.0/src/conf/domain_stats.c
|
||||
Index: libvirt-4.10.0/src/conf/domain_stats.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.9.0/src/conf/domain_stats.c
|
||||
+++ libvirt-4.10.0/src/conf/domain_stats.c
|
||||
@@ -0,0 +1,139 @@
|
||||
+/*
|
||||
+ * domain_stats.c: domain stats extraction helpers
|
||||
@ -162,10 +162,10 @@ Index: libvirt-4.9.0/src/conf/domain_stats.c
|
||||
+}
|
||||
+
|
||||
+#undef STATS_ADD_NET_PARAM
|
||||
Index: libvirt-4.9.0/src/conf/domain_stats.h
|
||||
Index: libvirt-4.10.0/src/conf/domain_stats.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.9.0/src/conf/domain_stats.h
|
||||
+++ libvirt-4.10.0/src/conf/domain_stats.h
|
||||
@@ -0,0 +1,64 @@
|
||||
+/*
|
||||
+ * domain_stats.h: domain stats extraction helpers
|
||||
@ -231,11 +231,11 @@ Index: libvirt-4.9.0/src/conf/domain_stats.h
|
||||
+ int *maxparams);
|
||||
+
|
||||
+#endif /* __DOMAIN_STATS_H */
|
||||
Index: libvirt-4.9.0/src/libvirt_private.syms
|
||||
Index: libvirt-4.10.0/src/libvirt_private.syms
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/libvirt_private.syms
|
||||
+++ libvirt-4.9.0/src/libvirt_private.syms
|
||||
@@ -653,6 +653,9 @@ virDomainConfNWFilterInstantiate;
|
||||
--- libvirt-4.10.0.orig/src/libvirt_private.syms
|
||||
+++ libvirt-4.10.0/src/libvirt_private.syms
|
||||
@@ -658,6 +658,9 @@ virDomainConfNWFilterInstantiate;
|
||||
virDomainConfNWFilterTeardown;
|
||||
virDomainConfVMNWFilterTeardown;
|
||||
|
||||
@ -245,7 +245,7 @@ Index: libvirt-4.9.0/src/libvirt_private.syms
|
||||
|
||||
# conf/interface_conf.h
|
||||
virInterfaceDefFormat;
|
||||
@@ -1541,6 +1544,7 @@ virCgroupGetMemoryUsage;
|
||||
@@ -1547,6 +1550,7 @@ virCgroupGetMemoryUsage;
|
||||
virCgroupGetMemSwapHardLimit;
|
||||
virCgroupGetMemSwapUsage;
|
||||
virCgroupGetPercpuStats;
|
||||
@ -253,10 +253,10 @@ Index: libvirt-4.9.0/src/libvirt_private.syms
|
||||
virCgroupHasController;
|
||||
virCgroupHasEmptyTasks;
|
||||
virCgroupKillPainfully;
|
||||
Index: libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
Index: libvirt-4.10.0/src/qemu/qemu_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/qemu/qemu_driver.c
|
||||
+++ libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
--- libvirt-4.10.0.orig/src/qemu/qemu_driver.c
|
||||
+++ libvirt-4.10.0/src/qemu/qemu_driver.c
|
||||
@@ -69,6 +69,7 @@
|
||||
#include "virarptable.h"
|
||||
#include "viruuid.h"
|
||||
@ -265,7 +265,7 @@ Index: libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
#include "domain_audit.h"
|
||||
#include "node_device_conf.h"
|
||||
#include "virpci.h"
|
||||
@@ -19677,21 +19678,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
|
||||
@@ -19908,21 +19909,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
|
||||
int *maxparams,
|
||||
unsigned int privflags ATTRIBUTE_UNUSED)
|
||||
{
|
||||
@ -288,8 +288,8 @@ Index: libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
}
|
||||
|
||||
|
||||
@@ -19714,37 +19701,7 @@ qemuDomainGetStatsCpu(virQEMUDriverPtr d
|
||||
unsigned int privflags ATTRIBUTE_UNUSED)
|
||||
@@ -20112,37 +20099,7 @@ qemuDomainGetStatsCpuCgroup(virDomainObj
|
||||
int *maxparams)
|
||||
{
|
||||
qemuDomainObjPrivatePtr priv = dom->privateData;
|
||||
- unsigned long long cpu_time = 0;
|
||||
@ -326,8 +326,8 @@ Index: libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
+ return virCgroupGetStatsCpu(priv->cgroup, record, maxparams);
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -19924,44 +19881,6 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
|
||||
|
||||
@@ -20340,44 +20297,6 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -372,7 +372,7 @@ Index: libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
static int
|
||||
qemuDomainGetStatsInterface(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
|
||||
virDomainObjPtr dom,
|
||||
@@ -19969,68 +19888,9 @@ qemuDomainGetStatsInterface(virQEMUDrive
|
||||
@@ -20385,68 +20304,9 @@ qemuDomainGetStatsInterface(virQEMUDrive
|
||||
int *maxparams,
|
||||
unsigned int privflags ATTRIBUTE_UNUSED)
|
||||
{
|
||||
@ -442,7 +442,7 @@ Index: libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
#define QEMU_ADD_BLOCK_PARAM_UI(record, maxparams, num, name, value) \
|
||||
do { \
|
||||
char param_name[VIR_TYPED_PARAM_FIELD_LENGTH]; \
|
||||
@@ -20263,10 +20123,10 @@ qemuDomainGetStatsBlockExportHeader(virD
|
||||
@@ -20679,10 +20539,10 @@ qemuDomainGetStatsBlockExportHeader(virD
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@ -455,7 +455,7 @@ Index: libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
if (src->id)
|
||||
QEMU_ADD_BLOCK_PARAM_UI(records, nrecords, recordnr, "backingIndex",
|
||||
src->id);
|
||||
@@ -20406,7 +20266,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
|
||||
@@ -20822,7 +20682,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
|
||||
* after the iteration than it is to iterate twice; but we still
|
||||
* want count listed first. */
|
||||
count_index = record->nparams;
|
||||
@ -464,21 +464,37 @@ Index: libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
|
||||
for (i = 0; i < dom->def->ndisks; i++) {
|
||||
if (qemuDomainGetStatsBlockExportDisk(dom->def->disks[i], stats, nodestats,
|
||||
@@ -20431,10 +20291,6 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
|
||||
@@ -20847,8 +20707,6 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
|
||||
|
||||
#undef QEMU_ADD_BLOCK_PARAM_ULL
|
||||
|
||||
-#undef QEMU_ADD_NAME_PARAM
|
||||
-
|
||||
#define QEMU_ADD_IOTHREAD_PARAM_UI(record, maxparams, id, name, value) \
|
||||
do { \
|
||||
char param_name[VIR_TYPED_PARAM_FIELD_LENGTH]; \
|
||||
@@ -20896,7 +20754,7 @@ qemuDomainGetStatsIOThread(virQEMUDriver
|
||||
if (niothreads == 0)
|
||||
return 0;
|
||||
|
||||
- QEMU_ADD_COUNT_PARAM(record, maxparams, "iothread", niothreads);
|
||||
+ VIR_DOMAIN_STATS_ADD_COUNT_PARAM(record, maxparams, "iothread", niothreads);
|
||||
|
||||
for (i = 0; i < niothreads; i++) {
|
||||
if (iothreads[i]->poll_valid) {
|
||||
@@ -20929,8 +20787,6 @@ qemuDomainGetStatsIOThread(virQEMUDriver
|
||||
|
||||
#undef QEMU_ADD_IOTHREAD_PARAM_ULL
|
||||
|
||||
-#undef QEMU_ADD_COUNT_PARAM
|
||||
-
|
||||
static int
|
||||
qemuDomainGetStatsPerfOneEvent(virPerfPtr perf,
|
||||
virPerfEventType type,
|
||||
Index: libvirt-4.9.0/src/util/vircgroup.c
|
||||
Index: libvirt-4.10.0/src/util/vircgroup.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/util/vircgroup.c
|
||||
+++ libvirt-4.9.0/src/util/vircgroup.c
|
||||
--- libvirt-4.10.0.orig/src/util/vircgroup.c
|
||||
+++ libvirt-4.10.0/src/util/vircgroup.c
|
||||
@@ -2794,6 +2794,44 @@ virCgroupControllerAvailable(int control
|
||||
return ret;
|
||||
}
|
||||
@ -540,10 +556,10 @@ Index: libvirt-4.9.0/src/util/vircgroup.c
|
||||
int
|
||||
virCgroupNewPartition(const char *path ATTRIBUTE_UNUSED,
|
||||
bool create ATTRIBUTE_UNUSED,
|
||||
Index: libvirt-4.9.0/src/util/vircgroup.h
|
||||
Index: libvirt-4.10.0/src/util/vircgroup.h
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/util/vircgroup.h
|
||||
+++ libvirt-4.9.0/src/util/vircgroup.h
|
||||
--- libvirt-4.10.0.orig/src/util/vircgroup.h
|
||||
+++ libvirt-4.10.0/src/util/vircgroup.h
|
||||
@@ -287,4 +287,9 @@ int virCgroupSetOwner(virCgroupPtr cgrou
|
||||
int virCgroupHasEmptyTasks(virCgroupPtr cgroup, int controller);
|
||||
|
||||
@ -554,10 +570,10 @@ Index: libvirt-4.9.0/src/util/vircgroup.h
|
||||
+ int *maxparams);
|
||||
+
|
||||
#endif /* __VIR_CGROUP_H__ */
|
||||
Index: libvirt-4.9.0/src/conf/Makefile.inc.am
|
||||
Index: libvirt-4.10.0/src/conf/Makefile.inc.am
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/conf/Makefile.inc.am
|
||||
+++ libvirt-4.9.0/src/conf/Makefile.inc.am
|
||||
--- libvirt-4.10.0.orig/src/conf/Makefile.inc.am
|
||||
+++ libvirt-4.10.0/src/conf/Makefile.inc.am
|
||||
@@ -20,6 +20,8 @@ DOMAIN_CONF_SOURCES = \
|
||||
conf/domain_audit.h \
|
||||
conf/domain_nwfilter.c \
|
||||
|
@ -19,10 +19,10 @@ reworking this patch and submitting it to upstream libvirt.
|
||||
src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 91 insertions(+)
|
||||
|
||||
Index: libvirt-4.9.0/src/libxl/libxl_driver.c
|
||||
Index: libvirt-4.10.0/src/libxl/libxl_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.9.0/src/libxl/libxl_driver.c
|
||||
--- libvirt-4.10.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.10.0/src/libxl/libxl_driver.c
|
||||
@@ -5253,6 +5253,97 @@ libxlDomainMemoryStats(virDomainPtr dom,
|
||||
|
||||
#undef LIBXL_SET_MEMSTAT
|
||||
@ -121,7 +121,7 @@ Index: libvirt-4.9.0/src/libxl/libxl_driver.c
|
||||
static int
|
||||
libxlDomainGetJobInfo(virDomainPtr dom,
|
||||
virDomainJobInfoPtr info)
|
||||
@@ -6635,6 +6726,7 @@ static virHypervisorDriver libxlHypervis
|
||||
@@ -6637,6 +6728,7 @@ static virHypervisorDriver libxlHypervis
|
||||
#endif
|
||||
.nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */
|
||||
.nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */
|
||||
|
@ -9,10 +9,10 @@ them using the existing API.
|
||||
src/lxc/lxc_driver.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 138 insertions(+)
|
||||
|
||||
Index: libvirt-4.9.0/src/lxc/lxc_driver.c
|
||||
Index: libvirt-4.10.0/src/lxc/lxc_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/lxc/lxc_driver.c
|
||||
+++ libvirt-4.9.0/src/lxc/lxc_driver.c
|
||||
--- libvirt-4.10.0.orig/src/lxc/lxc_driver.c
|
||||
+++ libvirt-4.10.0/src/lxc/lxc_driver.c
|
||||
@@ -78,6 +78,7 @@
|
||||
#include "viraccessapichecklxc.h"
|
||||
#include "virhostdev.h"
|
||||
|
@ -1,36 +0,0 @@
|
||||
commit 14d03b27bf8f8a13da27a297e23e2b1b80688459
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Wed Oct 31 10:41:28 2018 -0600
|
||||
|
||||
libxl: remove redundant calls to virObjectEventStateQueue
|
||||
|
||||
In libxlDomainShutdownThread, virObjectEventStateQueue is needlessly
|
||||
called in the destroy and restart labels. The cleanup label aready
|
||||
queues whatever event was created based on libxl_shutdown_reason.
|
||||
There is no need to handle destroy and restart differently.
|
||||
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
|
||||
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
|
||||
index 0032b9dd11..9ed6ee8fb3 100644
|
||||
--- a/src/libxl/libxl_domain.c
|
||||
+++ b/src/libxl/libxl_domain.c
|
||||
@@ -538,8 +538,6 @@ libxlDomainShutdownThread(void *opaque)
|
||||
}
|
||||
|
||||
destroy:
|
||||
- virObjectEventStateQueue(driver->domainEventState, dom_event);
|
||||
- dom_event = NULL;
|
||||
libxlDomainDestroyInternal(driver, vm);
|
||||
libxlDomainCleanup(driver, vm);
|
||||
if (!vm->persistent)
|
||||
@@ -548,8 +546,6 @@ libxlDomainShutdownThread(void *opaque)
|
||||
goto endjob;
|
||||
|
||||
restart:
|
||||
- virObjectEventStateQueue(driver->domainEventState, dom_event);
|
||||
- dom_event = NULL;
|
||||
libxlDomainDestroyInternal(driver, vm);
|
||||
libxlDomainCleanup(driver, vm);
|
||||
if (libxlDomainStartNew(driver, vm, false) < 0) {
|
@ -1,133 +0,0 @@
|
||||
commit 82452a5d7f55c7698459728a3ee071402f43bb4d
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Wed Oct 31 10:54:14 2018 -0600
|
||||
|
||||
libxl: Remove some goto labels in libxlDomainShutdownThread
|
||||
|
||||
There are too many goto labels in libxlDomainShutdownThread. Convert the
|
||||
'destroy' and 'restart' labels to helper functions, leaving only the
|
||||
commonly used pattern of 'endjob' and 'cleanup' labels.
|
||||
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
|
||||
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
|
||||
index 9ed6ee8fb3..4cdaee0e51 100644
|
||||
--- a/src/libxl/libxl_domain.c
|
||||
+++ b/src/libxl/libxl_domain.c
|
||||
@@ -430,6 +430,30 @@ virDomainDefParserConfig libxlDomainDefParserConfig = {
|
||||
};
|
||||
|
||||
|
||||
+static void
|
||||
+libxlDomainShutdownHandleDestroy(libxlDriverPrivatePtr driver,
|
||||
+ virDomainObjPtr vm)
|
||||
+{
|
||||
+ libxlDomainDestroyInternal(driver, vm);
|
||||
+ libxlDomainCleanup(driver, vm);
|
||||
+ if (!vm->persistent)
|
||||
+ virDomainObjListRemove(driver->domains, vm);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+static void
|
||||
+libxlDomainShutdownHandleRestart(libxlDriverPrivatePtr driver,
|
||||
+ virDomainObjPtr vm)
|
||||
+{
|
||||
+ libxlDomainDestroyInternal(driver, vm);
|
||||
+ libxlDomainCleanup(driver, vm);
|
||||
+ if (libxlDomainStartNew(driver, vm, false) < 0) {
|
||||
+ VIR_ERROR(_("Failed to restart VM '%s': %s"),
|
||||
+ vm->def->name, virGetLastErrorMessage());
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
struct libxlShutdownThreadInfo
|
||||
{
|
||||
libxlDriverPrivatePtr driver;
|
||||
@@ -468,10 +492,12 @@ libxlDomainShutdownThread(void *opaque)
|
||||
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
|
||||
switch ((virDomainLifecycleAction) vm->def->onPoweroff) {
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY:
|
||||
- goto destroy;
|
||||
+ libxlDomainShutdownHandleDestroy(driver, vm);
|
||||
+ goto endjob;
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART:
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART_RENAME:
|
||||
- goto restart;
|
||||
+ libxlDomainShutdownHandleRestart(driver, vm);
|
||||
+ goto endjob;
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_PRESERVE:
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_DESTROY:
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_RESTART:
|
||||
@@ -487,19 +513,23 @@ libxlDomainShutdownThread(void *opaque)
|
||||
VIR_DOMAIN_EVENT_STOPPED_CRASHED);
|
||||
switch ((virDomainLifecycleAction) vm->def->onCrash) {
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY:
|
||||
- goto destroy;
|
||||
+ libxlDomainShutdownHandleDestroy(driver, vm);
|
||||
+ goto endjob;
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART:
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART_RENAME:
|
||||
- goto restart;
|
||||
+ libxlDomainShutdownHandleRestart(driver, vm);
|
||||
+ goto endjob;
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_PRESERVE:
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_LAST:
|
||||
goto endjob;
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_DESTROY:
|
||||
libxlDomainAutoCoreDump(driver, vm);
|
||||
- goto destroy;
|
||||
+ libxlDomainShutdownHandleDestroy(driver, vm);
|
||||
+ goto endjob;
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_RESTART:
|
||||
libxlDomainAutoCoreDump(driver, vm);
|
||||
- goto restart;
|
||||
+ libxlDomainShutdownHandleRestart(driver, vm);
|
||||
+ goto endjob;
|
||||
}
|
||||
} else if (xl_reason == LIBXL_SHUTDOWN_REASON_REBOOT) {
|
||||
virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
|
||||
@@ -510,10 +540,12 @@ libxlDomainShutdownThread(void *opaque)
|
||||
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
|
||||
switch ((virDomainLifecycleAction) vm->def->onReboot) {
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY:
|
||||
- goto destroy;
|
||||
+ libxlDomainShutdownHandleDestroy(driver, vm);
|
||||
+ goto endjob;
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART:
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART_RENAME:
|
||||
- goto restart;
|
||||
+ libxlDomainShutdownHandleRestart(driver, vm);
|
||||
+ goto endjob;
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_PRESERVE:
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_DESTROY:
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_RESTART:
|
||||
@@ -531,26 +563,8 @@ libxlDomainShutdownThread(void *opaque)
|
||||
* Similar to the xl implementation, ignore SUSPEND. Any actions needed
|
||||
* after calling libxl_domain_suspend() are handled by it's callers.
|
||||
*/
|
||||
- goto endjob;
|
||||
} else {
|
||||
VIR_INFO("Unhandled shutdown_reason %d", xl_reason);
|
||||
- goto endjob;
|
||||
- }
|
||||
-
|
||||
- destroy:
|
||||
- libxlDomainDestroyInternal(driver, vm);
|
||||
- libxlDomainCleanup(driver, vm);
|
||||
- if (!vm->persistent)
|
||||
- virDomainObjListRemove(driver->domains, vm);
|
||||
-
|
||||
- goto endjob;
|
||||
-
|
||||
- restart:
|
||||
- libxlDomainDestroyInternal(driver, vm);
|
||||
- libxlDomainCleanup(driver, vm);
|
||||
- if (libxlDomainStartNew(driver, vm, false) < 0) {
|
||||
- VIR_ERROR(_("Failed to restart VM '%s': %s"),
|
||||
- vm->def->name, virGetLastErrorMessage());
|
||||
}
|
||||
|
||||
endjob:
|
@ -1,7 +1,7 @@
|
||||
Index: libvirt-4.9.0/examples/apparmor/libvirt-lxc
|
||||
Index: libvirt-4.10.0/examples/apparmor/libvirt-lxc
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/examples/apparmor/libvirt-lxc
|
||||
+++ libvirt-4.9.0/examples/apparmor/libvirt-lxc
|
||||
--- libvirt-4.10.0.orig/examples/apparmor/libvirt-lxc
|
||||
+++ libvirt-4.10.0/examples/apparmor/libvirt-lxc
|
||||
@@ -2,39 +2,15 @@
|
||||
|
||||
#include <abstractions/base>
|
||||
|
@ -11,11 +11,11 @@ Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
||||
src/qemu/qemu_driver.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
Index: libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
Index: libvirt-4.10.0/src/qemu/qemu_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/qemu/qemu_driver.c
|
||||
+++ libvirt-4.9.0/src/qemu/qemu_driver.c
|
||||
@@ -17506,6 +17506,14 @@ qemuDomainBlockCopyCommon(virDomainObjPt
|
||||
--- libvirt-4.10.0.orig/src/qemu/qemu_driver.c
|
||||
+++ libvirt-4.10.0/src/qemu/qemu_driver.c
|
||||
@@ -17737,6 +17737,14 @@ qemuDomainBlockCopyCommon(virDomainObjPt
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
|
@ -1,85 +0,0 @@
|
||||
commit da4b0fd9d3cdd117427e7e1981e8639bc859e844
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Wed Oct 31 11:03:37 2018 -0600
|
||||
|
||||
libxl: add support for soft reset
|
||||
|
||||
The pvops Linux kernel implements machine_ops.crash_shutdown as
|
||||
|
||||
static void xen_hvm_crash_shutdown(struct pt_regs *regs)
|
||||
{
|
||||
native_machine_crash_shutdown(regs);
|
||||
xen_reboot(SHUTDOWN_soft_reset);
|
||||
}
|
||||
|
||||
but currently the libxl driver does not handle the soft reset
|
||||
shutdown event. As a result, the guest domain never proceeds
|
||||
past xen_reboot(), making it impossible for HVM domains to save
|
||||
a crash dump using kexec.
|
||||
|
||||
This patch adds support for handling the soft reset event by
|
||||
calling libxl_domain_soft_reset() and re-enabling domain death
|
||||
events, which is similar to the xl tool handling of soft reset
|
||||
shutdown event.
|
||||
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
|
||||
Index: libvirt-4.9.0/src/libxl/libxl_domain.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/libxl/libxl_domain.c
|
||||
+++ libvirt-4.9.0/src/libxl/libxl_domain.c
|
||||
@@ -471,8 +471,10 @@ libxlDomainShutdownThread(void *opaque)
|
||||
virObjectEventPtr dom_event = NULL;
|
||||
libxl_shutdown_reason xl_reason = ev->u.domain_shutdown.shutdown_reason;
|
||||
libxlDriverConfigPtr cfg;
|
||||
+ libxl_domain_config d_config;
|
||||
|
||||
cfg = libxlDriverConfigGet(driver);
|
||||
+ libxl_domain_config_init(&d_config);
|
||||
|
||||
vm = virDomainObjListFindByID(driver->domains, ev->domid);
|
||||
if (!vm) {
|
||||
@@ -563,6 +565,34 @@ libxlDomainShutdownThread(void *opaque)
|
||||
* Similar to the xl implementation, ignore SUSPEND. Any actions needed
|
||||
* after calling libxl_domain_suspend() are handled by it's callers.
|
||||
*/
|
||||
+#ifdef LIBXL_HAVE_SOFT_RESET
|
||||
+ } else if (xl_reason == LIBXL_SHUTDOWN_REASON_SOFT_RESET) {
|
||||
+ libxlDomainObjPrivatePtr priv = vm->privateData;
|
||||
+
|
||||
+ if (libxl_retrieve_domain_configuration(cfg->ctx, vm->def->id,
|
||||
+ &d_config) != 0) {
|
||||
+ VIR_ERROR(_("Failed to retrieve config for VM '%s'. "
|
||||
+ "Unable to perform soft reset. Destroying VM"),
|
||||
+ vm->def->name);
|
||||
+ libxlDomainShutdownHandleDestroy(driver, vm);
|
||||
+ goto endjob;
|
||||
+ }
|
||||
+
|
||||
+ if (priv->deathW) {
|
||||
+ libxl_evdisable_domain_death(cfg->ctx, priv->deathW);
|
||||
+ priv->deathW = NULL;
|
||||
+ }
|
||||
+
|
||||
+ if (libxl_domain_soft_reset(cfg->ctx, &d_config, vm->def->id,
|
||||
+ NULL, NULL) != 0) {
|
||||
+ VIR_ERROR(_("Failed to soft reset VM '%s'. Destroying VM"),
|
||||
+ vm->def->name);
|
||||
+ libxlDomainShutdownHandleDestroy(driver, vm);
|
||||
+ goto endjob;
|
||||
+ }
|
||||
+ libxl_evenable_domain_death(cfg->ctx, vm->def->id, 0, &priv->deathW);
|
||||
+ libxl_domain_unpause(cfg->ctx, vm->def->id);
|
||||
+#endif
|
||||
} else {
|
||||
VIR_INFO("Unhandled shutdown_reason %d", xl_reason);
|
||||
}
|
||||
@@ -575,6 +605,7 @@ libxlDomainShutdownThread(void *opaque)
|
||||
virObjectEventStateQueue(driver->domainEventState, dom_event);
|
||||
libxl_event_free(cfg->ctx, ev);
|
||||
VIR_FREE(shutdown_info);
|
||||
+ libxl_domain_config_dispose(&d_config);
|
||||
virObjectUnref(cfg);
|
||||
}
|
||||
|
3
libvirt-4.10.0.tar.xz
Normal file
3
libvirt-4.10.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7f9d830173f146ed3b8a8fdf6b6e03a99ce72b21a26c1468b2b688e5fdff276c
|
||||
size 14841188
|
10
libvirt-4.10.0.tar.xz.asc
Normal file
10
libvirt-4.10.0.tar.xz.asc
Normal file
@ -0,0 +1,10 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQEcBAABAgAGBQJcBREvAAoJEBVYiyZZa+pdNYEH/3lT2nLYV10dOSTevgXzAM3j
|
||||
yjZFUOwD/Vm4HZynFDp5TFTIm7xCy954Jr9ga9h1AufdDhHv+OrXfuDRt1GLVWV7
|
||||
wbrRyf8UJWXl9F0BWKG1bl6nEGqnCgRewpRYjIW9NvGhpijsuDt3TyBf4kYikKZb
|
||||
7ZozD+JGl7DFasIKHXSp6AZY7QdT8LDepIeKql7KF6MdyglSFvmYZwbvJNCGGDV3
|
||||
PmCBd8Ma2SQNn+Qb4mHetOw6sLapjESIGF1oqNRWjfX2Cb00GFeQcXVJJTXwNgz8
|
||||
DffzJwLEMlDSLtEdzhteSmiXnQOsWTn+A02rkgGG172KBOsfOXfhT/dMTUoZJpo=
|
||||
=CSLV
|
||||
-----END PGP SIGNATURE-----
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4fd4bfe7312b7996a817c7919cf0062de0d5b3c400c93bd30855a46c40dd455a
|
||||
size 14744184
|
@ -1,10 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQEcBAABAgAGBQJb3yVYAAoJEBVYiyZZa+pde8QIALgbitxgn79S7cAYatk5xv7n
|
||||
5OKXY6MjaF1568fx6uCnFo/hM7GR4l43Lqjk4lc3nNxYjhnCIjK6fpwdnIKg0G+F
|
||||
JgsGV0Ydjxrqs140SnhgYYWyaHq6juHdqSdfKqnLJ/uPYVUPhUomhZ5c4LvBcYCX
|
||||
3Sy9TKJOpFjEmuBpzZHMzvXibtS+fUkTyzlNixOQ/tjVNnYu1OboOuXov4ay+aS4
|
||||
uild4jnO86mDa0LBxHWVEobjLiJs5RTDPbnnn8DT6nRdn14TzAsIJU2wms8OO36w
|
||||
x3h1Ao59X7yUKOE5rYZnIIG6oW2I6jM3Vy6NxDVNAx0P/1/bCqE7lwgJD4uh2Zg=
|
||||
=aLc3
|
||||
-----END PGP SIGNATURE-----
|
@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML
|
||||
|
||||
From: <ro@suse.de>
|
||||
|
||||
Index: libvirt-4.9.0/src/cpu_map/ppc64_POWER8.xml
|
||||
Index: libvirt-4.10.0/src/cpu_map/ppc64_POWER8.xml
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/cpu_map/ppc64_POWER8.xml
|
||||
+++ libvirt-4.9.0/src/cpu_map/ppc64_POWER8.xml
|
||||
--- libvirt-4.10.0.orig/src/cpu_map/ppc64_POWER8.xml
|
||||
+++ libvirt-4.10.0/src/cpu_map/ppc64_POWER8.xml
|
||||
@@ -4,5 +4,7 @@
|
||||
<pvr value='0x004b0000' mask='0xffff0000'/>
|
||||
<pvr value='0x004c0000' mask='0xffff0000'/>
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: libvirt-4.9.0/configure.ac
|
||||
Index: libvirt-4.10.0/configure.ac
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/configure.ac
|
||||
+++ libvirt-4.9.0/configure.ac
|
||||
--- libvirt-4.10.0.orig/configure.ac
|
||||
+++ libvirt-4.10.0/configure.ac
|
||||
@@ -256,6 +256,7 @@ LIBVIRT_ARG_LIBSSH
|
||||
LIBVIRT_ARG_LIBXML
|
||||
LIBVIRT_ARG_MACVTAP
|
||||
@ -26,10 +26,10 @@ Index: libvirt-4.9.0/configure.ac
|
||||
LIBVIRT_RESULT_NLS
|
||||
LIBVIRT_RESULT_NSS
|
||||
LIBVIRT_RESULT_NUMACTL
|
||||
Index: libvirt-4.9.0/tools/virsh.c
|
||||
Index: libvirt-4.10.0/tools/virsh.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/tools/virsh.c
|
||||
+++ libvirt-4.9.0/tools/virsh.c
|
||||
--- libvirt-4.10.0.orig/tools/virsh.c
|
||||
+++ libvirt-4.10.0/tools/virsh.c
|
||||
@@ -570,6 +570,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
|
||||
vshPrint(ctl, " Interface");
|
||||
# if defined(WITH_NETCF)
|
||||
@ -39,10 +39,10 @@ Index: libvirt-4.9.0/tools/virsh.c
|
||||
# elif defined(WITH_UDEV)
|
||||
vshPrint(ctl, " udev");
|
||||
# endif
|
||||
Index: libvirt-4.9.0/src/interface/interface_backend_netcf.c
|
||||
Index: libvirt-4.10.0/src/interface/interface_backend_netcf.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/interface/interface_backend_netcf.c
|
||||
+++ libvirt-4.9.0/src/interface/interface_backend_netcf.c
|
||||
--- libvirt-4.10.0.orig/src/interface/interface_backend_netcf.c
|
||||
+++ libvirt-4.10.0/src/interface/interface_backend_netcf.c
|
||||
@@ -23,7 +23,12 @@
|
||||
|
||||
#include <config.h>
|
||||
@ -126,10 +126,10 @@ Index: libvirt-4.9.0/src/interface/interface_backend_netcf.c
|
||||
if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0)
|
||||
return -1;
|
||||
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
|
||||
Index: libvirt-4.9.0/src/interface/interface_driver.c
|
||||
Index: libvirt-4.10.0/src/interface/interface_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/interface/interface_driver.c
|
||||
+++ libvirt-4.9.0/src/interface/interface_driver.c
|
||||
--- libvirt-4.10.0.orig/src/interface/interface_driver.c
|
||||
+++ libvirt-4.10.0/src/interface/interface_driver.c
|
||||
@@ -30,8 +30,15 @@ interfaceRegister(void)
|
||||
if (netcfIfaceRegister() == 0)
|
||||
return 0;
|
||||
@ -147,10 +147,10 @@ Index: libvirt-4.9.0/src/interface/interface_driver.c
|
||||
if (udevIfaceRegister() == 0)
|
||||
return 0;
|
||||
#endif /* WITH_UDEV */
|
||||
Index: libvirt-4.9.0/m4/virt-netcontrol.m4
|
||||
Index: libvirt-4.10.0/m4/virt-netcontrol.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.9.0/m4/virt-netcontrol.m4
|
||||
+++ libvirt-4.10.0/m4/virt-netcontrol.m4
|
||||
@@ -0,0 +1,39 @@
|
||||
+dnl The libnetcontrol library
|
||||
+dnl
|
||||
@ -191,10 +191,10 @@ Index: libvirt-4.9.0/m4/virt-netcontrol.m4
|
||||
+AC_DEFUN([LIBVIRT_RESULT_NETCONTROL],[
|
||||
+ LIBVIRT_RESULT_LIB([NETCONTROL])
|
||||
+])
|
||||
Index: libvirt-4.9.0/src/interface/Makefile.inc.am
|
||||
Index: libvirt-4.10.0/src/interface/Makefile.inc.am
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/interface/Makefile.inc.am
|
||||
+++ libvirt-4.9.0/src/interface/Makefile.inc.am
|
||||
--- libvirt-4.10.0.orig/src/interface/Makefile.inc.am
|
||||
+++ libvirt-4.10.0/src/interface/Makefile.inc.am
|
||||
@@ -4,6 +4,7 @@ INTERFACE_DRIVER_SOURCES = \
|
||||
$(NULL)
|
||||
|
||||
|
@ -1,3 +1,19 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 3 21:58:53 UTC 2018 - James Fehlig <jfehlig@suse.com>
|
||||
|
||||
- Update to libvirt 4.10.0
|
||||
- Many incremental improvements and bug fixes, see
|
||||
http://libvirt.org/news.html
|
||||
- Dropped patches:
|
||||
14d03b27-libxl-rm-redundant-virObjectEventStateQueue.patch,
|
||||
82452a5d-libxl-rm-goto-libxlDomainShutdownThread.patch,
|
||||
da4b0fd9-libxl-support-soft-reset.patch,
|
||||
libxl-qemu-emulator-caps.patch
|
||||
- Added patches:
|
||||
libxl-support-ovswitch.patch,
|
||||
libxl-ovswitch-config-format-conversions.patch
|
||||
- FATE#320928, FATE#325817, FATE#326380, FATE#326698
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 6 18:33:26 UTC 2018 - James Fehlig <jfehlig@suse.com>
|
||||
|
||||
|
14
libvirt.spec
14
libvirt.spec
@ -185,7 +185,7 @@
|
||||
|
||||
Name: libvirt
|
||||
Url: http://libvirt.org/
|
||||
Version: 4.9.0
|
||||
Version: 4.10.0
|
||||
Release: 0
|
||||
Summary: Library providing a virtualization API
|
||||
License: LGPL-2.1-or-later
|
||||
@ -339,12 +339,11 @@ Source6: libvirtd-relocation-server.xml
|
||||
Source99: baselibs.conf
|
||||
Source100: %{name}-rpmlintrc
|
||||
# Upstream patches
|
||||
Patch0: 14d03b27-libxl-rm-redundant-virObjectEventStateQueue.patch
|
||||
Patch1: 82452a5d-libxl-rm-goto-libxlDomainShutdownThread.patch
|
||||
Patch2: da4b0fd9-libxl-support-soft-reset.patch
|
||||
# Patches pending upstream review
|
||||
Patch100: libxl-dom-reset.patch
|
||||
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
|
||||
Patch102: libxl-support-ovswitch.patch
|
||||
Patch103: libxl-ovswitch-config-format-conversions.patch
|
||||
# Need to go upstream
|
||||
Patch150: xen-pv-cdrom.patch
|
||||
Patch151: blockcopy-check-dst-identical-device.patch
|
||||
@ -372,7 +371,6 @@ Patch212: apparmor-no-mount.patch
|
||||
Patch213: qemu-apparmor-screenshot.patch
|
||||
Patch214: libvirt-suse-netcontrol.patch
|
||||
Patch215: lxc-wait-after-eth-del.patch
|
||||
Patch216: libxl-qemu-emulator-caps.patch
|
||||
# SLES-Only patches
|
||||
%if ! 0%{?is_opensuse}
|
||||
Patch400: virt-create-rootfs.patch
|
||||
@ -904,11 +902,10 @@ libvirt plugin for NSS for translating domain names into IP addresses.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch100 -p1
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
%patch103 -p1
|
||||
%patch150 -p1
|
||||
%patch151 -p1
|
||||
%patch152 -p1
|
||||
@ -934,7 +931,6 @@ libvirt plugin for NSS for translating domain names into IP addresses.
|
||||
%patch213 -p1
|
||||
%patch214 -p1
|
||||
%patch215 -p1
|
||||
%patch216 -p1
|
||||
%if ! 0%{?is_opensuse}
|
||||
%patch400 -p1
|
||||
%endif
|
||||
|
@ -8,10 +8,10 @@ Date: Mon Jun 23 15:51:20 2014 -0600
|
||||
option, but domainReset can be implemented in the libxl driver by
|
||||
forcibly destroying the domain and starting it again.
|
||||
|
||||
Index: libvirt-4.9.0/src/libxl/libxl_driver.c
|
||||
Index: libvirt-4.10.0/src/libxl/libxl_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.9.0/src/libxl/libxl_driver.c
|
||||
--- libvirt-4.10.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.10.0/src/libxl/libxl_driver.c
|
||||
@@ -1355,6 +1355,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ Index: libvirt-4.9.0/src/libxl/libxl_driver.c
|
||||
libxlDomainDestroyFlags(virDomainPtr dom,
|
||||
unsigned int flags)
|
||||
{
|
||||
@@ -6510,6 +6565,7 @@ static virHypervisorDriver libxlHypervis
|
||||
@@ -6512,6 +6567,7 @@ static virHypervisorDriver libxlHypervis
|
||||
.domainShutdown = libxlDomainShutdown, /* 0.9.0 */
|
||||
.domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
|
||||
.domainReboot = libxlDomainReboot, /* 0.9.0 */
|
||||
|
348
libxl-ovswitch-config-format-conversions.patch
Normal file
348
libxl-ovswitch-config-format-conversions.patch
Normal file
@ -0,0 +1,348 @@
|
||||
commit 17c45f4014eb4f98cca86a944b61e0393d597059
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Fri Nov 16 13:08:23 2018 -0700
|
||||
|
||||
xenconfig: add support for openvswitch configuration
|
||||
|
||||
Add support for converting openvswitch interface configuration
|
||||
to/from libvirt domXML and xl.cfg(5). The xl config syntax for
|
||||
virtual interfaces is described in detail in the
|
||||
xl-network-configuration(5) man page. The Xen Networking wiki
|
||||
also contains information and examples for using openvswitch
|
||||
in xl.cfg config format
|
||||
|
||||
https://wiki.xenproject.org/wiki/Xen_Networking#Open_vSwitch
|
||||
|
||||
Tests are added to check conversions of openvswitch tagged and
|
||||
trunked VLAN configuration.
|
||||
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
|
||||
Index: libvirt-4.10.0/src/xenconfig/xen_common.c
|
||||
===================================================================
|
||||
--- libvirt-4.10.0.orig/src/xenconfig/xen_common.c
|
||||
+++ libvirt-4.10.0/src/xenconfig/xen_common.c
|
||||
@@ -856,6 +856,84 @@ xenParseCharDev(virConfPtr conf, virDoma
|
||||
}
|
||||
|
||||
|
||||
+static int
|
||||
+xenParseVifBridge(virDomainNetDefPtr net, char *bridge)
|
||||
+{
|
||||
+ char *vlanstr;
|
||||
+ unsigned int tag;
|
||||
+
|
||||
+ /* 'bridge' string contains a bridge name and single vlan tag */
|
||||
+ vlanstr = strchr(bridge, '.');
|
||||
+ if (vlanstr) {
|
||||
+ if (VIR_STRNDUP(net->data.bridge.brname, bridge, vlanstr - bridge) < 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ vlanstr++;
|
||||
+ if (virStrToLong_ui(vlanstr, NULL, 10, &tag) < 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ if (VIR_ALLOC_N(net->vlan.tag, 1) < 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ net->vlan.tag[0] = tag;
|
||||
+ net->vlan.nTags = 1;
|
||||
+
|
||||
+ if (VIR_ALLOC(net->virtPortProfile) < 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ net->virtPortProfile->virtPortType = VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ /* 'bridge' string contains a bridge name and one or more vlan trunks */
|
||||
+ vlanstr = strchr(bridge, ':');
|
||||
+ if (vlanstr) {
|
||||
+ size_t i;
|
||||
+ size_t nvlans = 0;
|
||||
+ char **vlanstr_list = virStringSplit(bridge, ":", 0);
|
||||
+
|
||||
+ if (!vlanstr_list)
|
||||
+ return -1;
|
||||
+
|
||||
+ if (VIR_STRDUP(net->data.bridge.brname, vlanstr_list[0]) < 0) {
|
||||
+ virStringListFree(vlanstr_list);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 1; vlanstr_list[i]; i++)
|
||||
+ nvlans++;
|
||||
+
|
||||
+ if (VIR_ALLOC_N(net->vlan.tag, nvlans) < 0) {
|
||||
+ virStringListFree(vlanstr_list);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 1; i <= nvlans; i++) {
|
||||
+ if (virStrToLong_ui(vlanstr_list[i], NULL, 10, &tag) < 0) {
|
||||
+ virStringListFree(vlanstr_list);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ net->vlan.tag[i - 1] = tag;
|
||||
+ }
|
||||
+ net->vlan.nTags = nvlans;
|
||||
+ net->vlan.trunk = true;
|
||||
+ virStringListFree(vlanstr_list);
|
||||
+
|
||||
+ if (VIR_ALLOC(net->virtPortProfile) < 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ net->virtPortProfile->virtPortType = VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ /* 'bridge' string only contains the bridge name */
|
||||
+ if (VIR_STRDUP(net->data.bridge.brname, bridge) < 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
static virDomainNetDefPtr
|
||||
xenParseVif(char *entry, const char *vif_typename)
|
||||
{
|
||||
@@ -974,8 +1052,8 @@ xenParseVif(char *entry, const char *vif
|
||||
net->type = VIR_DOMAIN_NET_TYPE_ETHERNET;
|
||||
}
|
||||
|
||||
- if (net->type == VIR_DOMAIN_NET_TYPE_BRIDGE) {
|
||||
- if (bridge[0] && VIR_STRDUP(net->data.bridge.brname, bridge) < 0)
|
||||
+ if (net->type == VIR_DOMAIN_NET_TYPE_BRIDGE && bridge[0]) {
|
||||
+ if (xenParseVifBridge(net, bridge) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
if (ip[0]) {
|
||||
@@ -1264,14 +1342,41 @@ xenFormatNet(virConnectPtr conn,
|
||||
|
||||
switch (net->type) {
|
||||
case VIR_DOMAIN_NET_TYPE_BRIDGE:
|
||||
+ {
|
||||
+ virNetDevVPortProfilePtr port_profile = virDomainNetGetActualVirtPortProfile(net);
|
||||
+ virNetDevVlanPtr virt_vlan = virDomainNetGetActualVlan(net);
|
||||
+ const char *script = net->script;
|
||||
+ size_t i;
|
||||
+
|
||||
virBufferAsprintf(&buf, ",bridge=%s", net->data.bridge.brname);
|
||||
+ if (port_profile &&
|
||||
+ port_profile->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) {
|
||||
+ if (!script)
|
||||
+ script = "vif-openvswitch";
|
||||
+ /*
|
||||
+ * libxl_device_nic->bridge supports an extended format for
|
||||
+ * specifying VLAN tags and trunks
|
||||
+ *
|
||||
+ * BRIDGE_NAME[.VLAN][:TRUNK:TRUNK]
|
||||
+ */
|
||||
+ if (virt_vlan && virt_vlan->nTags > 0) {
|
||||
+ if (virt_vlan->trunk) {
|
||||
+ for (i = 0; i < virt_vlan->nTags; i++)
|
||||
+ virBufferAsprintf(&buf, ":%d", virt_vlan->tag[i]);
|
||||
+ } else {
|
||||
+ virBufferAsprintf(&buf, ".%d", virt_vlan->tag[0]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (net->guestIP.nips > 0) {
|
||||
char *ipStr = xenMakeIPList(&net->guestIP);
|
||||
virBufferAsprintf(&buf, ",ip=%s", ipStr);
|
||||
VIR_FREE(ipStr);
|
||||
}
|
||||
- virBufferAsprintf(&buf, ",script=%s", DEFAULT_VIF_SCRIPT);
|
||||
- break;
|
||||
+ virBufferAsprintf(&buf, ",script=%s", script ? script : DEFAULT_VIF_SCRIPT);
|
||||
+ }
|
||||
+ break;
|
||||
|
||||
case VIR_DOMAIN_NET_TYPE_ETHERNET:
|
||||
if (net->script)
|
||||
Index: libvirt-4.10.0/tests/xlconfigdata/test-fullvirt-ovswitch-tagged.cfg
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.10.0/tests/xlconfigdata/test-fullvirt-ovswitch-tagged.cfg
|
||||
@@ -0,0 +1,25 @@
|
||||
+name = "XenGuest2"
|
||||
+uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
|
||||
+maxmem = 8192
|
||||
+memory = 8192
|
||||
+vcpus = 8
|
||||
+pae = 1
|
||||
+acpi = 1
|
||||
+apic = 1
|
||||
+viridian = 0
|
||||
+rtc_timeoffset = 0
|
||||
+localtime = 0
|
||||
+on_poweroff = "destroy"
|
||||
+on_reboot = "restart"
|
||||
+on_crash = "restart"
|
||||
+device_model = "/usr/lib/xen/bin/qemu-system-i386"
|
||||
+sdl = 0
|
||||
+vnc = 1
|
||||
+vncunused = 1
|
||||
+vnclisten = "127.0.0.1"
|
||||
+vif = [ "mac=00:16:3e:66:92:9c,bridge=ovsbr0.42,script=vif-openvswitch,model=e1000" ]
|
||||
+parallel = "none"
|
||||
+serial = "none"
|
||||
+builder = "hvm"
|
||||
+boot = "c"
|
||||
+disk = [ "format=raw,vdev=hda,access=rw,backendtype=phy,target=/dev/HostVG/XenGuest2" ]
|
||||
Index: libvirt-4.10.0/tests/xlconfigdata/test-fullvirt-ovswitch-tagged.xml
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.10.0/tests/xlconfigdata/test-fullvirt-ovswitch-tagged.xml
|
||||
@@ -0,0 +1,50 @@
|
||||
+<domain type='xen'>
|
||||
+ <name>XenGuest2</name>
|
||||
+ <uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
|
||||
+ <memory unit='KiB'>8388608</memory>
|
||||
+ <currentMemory unit='KiB'>8388608</currentMemory>
|
||||
+ <vcpu placement='static'>8</vcpu>
|
||||
+ <os>
|
||||
+ <type arch='x86_64' machine='xenfv'>hvm</type>
|
||||
+ <loader type='rom'>/usr/lib/xen/boot/hvmloader</loader>
|
||||
+ <boot dev='hd'/>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <acpi/>
|
||||
+ <apic/>
|
||||
+ <pae/>
|
||||
+ </features>
|
||||
+ <clock offset='variable' adjustment='0' basis='utc'/>
|
||||
+ <on_poweroff>destroy</on_poweroff>
|
||||
+ <on_reboot>restart</on_reboot>
|
||||
+ <on_crash>restart</on_crash>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
|
||||
+ <disk type='block' device='disk'>
|
||||
+ <driver name='phy' type='raw'/>
|
||||
+ <source dev='/dev/HostVG/XenGuest2'/>
|
||||
+ <target dev='hda' bus='ide'/>
|
||||
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
+ </disk>
|
||||
+ <controller type='ide' index='0'/>
|
||||
+ <interface type='bridge'>
|
||||
+ <mac address='00:16:3e:66:92:9c'/>
|
||||
+ <source bridge='ovsbr0'/>
|
||||
+ <vlan>
|
||||
+ <tag id='42'/>
|
||||
+ </vlan>
|
||||
+ <virtualport type='openvswitch'/>
|
||||
+ <script path='vif-openvswitch'/>
|
||||
+ <model type='e1000'/>
|
||||
+ </interface>
|
||||
+ <input type='mouse' bus='ps2'/>
|
||||
+ <input type='keyboard' bus='ps2'/>
|
||||
+ <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
|
||||
+ <listen type='address' address='127.0.0.1'/>
|
||||
+ </graphics>
|
||||
+ <video>
|
||||
+ <model type='cirrus' vram='8192' heads='1' primary='yes'/>
|
||||
+ </video>
|
||||
+ <memballoon model='xen'/>
|
||||
+ </devices>
|
||||
+</domain>
|
||||
Index: libvirt-4.10.0/tests/xlconfigdata/test-fullvirt-ovswitch-trunked.cfg
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.10.0/tests/xlconfigdata/test-fullvirt-ovswitch-trunked.cfg
|
||||
@@ -0,0 +1,25 @@
|
||||
+name = "XenGuest2"
|
||||
+uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
|
||||
+maxmem = 8192
|
||||
+memory = 8192
|
||||
+vcpus = 8
|
||||
+pae = 1
|
||||
+acpi = 1
|
||||
+apic = 1
|
||||
+viridian = 0
|
||||
+rtc_timeoffset = 0
|
||||
+localtime = 0
|
||||
+on_poweroff = "destroy"
|
||||
+on_reboot = "restart"
|
||||
+on_crash = "restart"
|
||||
+device_model = "/usr/lib/xen/bin/qemu-system-i386"
|
||||
+sdl = 0
|
||||
+vnc = 1
|
||||
+vncunused = 1
|
||||
+vnclisten = "127.0.0.1"
|
||||
+vif = [ "mac=00:16:3e:66:92:9c,bridge=ovsbr0:42:43,script=vif-openvswitch,model=e1000" ]
|
||||
+parallel = "none"
|
||||
+serial = "none"
|
||||
+builder = "hvm"
|
||||
+boot = "c"
|
||||
+disk = [ "format=raw,vdev=hda,access=rw,backendtype=phy,target=/dev/HostVG/XenGuest2" ]
|
||||
Index: libvirt-4.10.0/tests/xlconfigdata/test-fullvirt-ovswitch-trunked.xml
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.10.0/tests/xlconfigdata/test-fullvirt-ovswitch-trunked.xml
|
||||
@@ -0,0 +1,51 @@
|
||||
+<domain type='xen'>
|
||||
+ <name>XenGuest2</name>
|
||||
+ <uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
|
||||
+ <memory unit='KiB'>8388608</memory>
|
||||
+ <currentMemory unit='KiB'>8388608</currentMemory>
|
||||
+ <vcpu placement='static'>8</vcpu>
|
||||
+ <os>
|
||||
+ <type arch='x86_64' machine='xenfv'>hvm</type>
|
||||
+ <loader type='rom'>/usr/lib/xen/boot/hvmloader</loader>
|
||||
+ <boot dev='hd'/>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <acpi/>
|
||||
+ <apic/>
|
||||
+ <pae/>
|
||||
+ </features>
|
||||
+ <clock offset='variable' adjustment='0' basis='utc'/>
|
||||
+ <on_poweroff>destroy</on_poweroff>
|
||||
+ <on_reboot>restart</on_reboot>
|
||||
+ <on_crash>restart</on_crash>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
|
||||
+ <disk type='block' device='disk'>
|
||||
+ <driver name='phy' type='raw'/>
|
||||
+ <source dev='/dev/HostVG/XenGuest2'/>
|
||||
+ <target dev='hda' bus='ide'/>
|
||||
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
+ </disk>
|
||||
+ <controller type='ide' index='0'/>
|
||||
+ <interface type='bridge'>
|
||||
+ <mac address='00:16:3e:66:92:9c'/>
|
||||
+ <source bridge='ovsbr0'/>
|
||||
+ <vlan trunk='yes'>
|
||||
+ <tag id='42'/>
|
||||
+ <tag id='43'/>
|
||||
+ </vlan>
|
||||
+ <virtualport type='openvswitch'/>
|
||||
+ <script path='vif-openvswitch'/>
|
||||
+ <model type='e1000'/>
|
||||
+ </interface>
|
||||
+ <input type='mouse' bus='ps2'/>
|
||||
+ <input type='keyboard' bus='ps2'/>
|
||||
+ <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
|
||||
+ <listen type='address' address='127.0.0.1'/>
|
||||
+ </graphics>
|
||||
+ <video>
|
||||
+ <model type='cirrus' vram='8192' heads='1' primary='yes'/>
|
||||
+ </video>
|
||||
+ <memballoon model='xen'/>
|
||||
+ </devices>
|
||||
+</domain>
|
||||
Index: libvirt-4.10.0/tests/xlconfigtest.c
|
||||
===================================================================
|
||||
--- libvirt-4.10.0.orig/tests/xlconfigtest.c
|
||||
+++ libvirt-4.10.0/tests/xlconfigtest.c
|
||||
@@ -250,6 +250,8 @@ mymain(void)
|
||||
DO_TEST_FORMAT(name, true); \
|
||||
} while (0)
|
||||
|
||||
+ DO_TEST("fullvirt-ovswitch-tagged");
|
||||
+ DO_TEST("fullvirt-ovswitch-trunked");
|
||||
DO_TEST_REPLACE_VARS("fullvirt-ovmf");
|
||||
DO_TEST("paravirt-maxvcpus");
|
||||
DO_TEST("new-disk");
|
@ -1,31 +0,0 @@
|
||||
libxl: advertise system qemu instead of qemu-xen in caps
|
||||
|
||||
Xen in SLE12 SP2, openSUSE Leap 42.2, and Tumbleweed will no
|
||||
longer provide qemu-xen (aka qemu-upstream). Instead, the
|
||||
qemu binary from the distro qemu package will be used. Change
|
||||
the libvirt capabilities to advertise /usr/bin/qemu-system-x86_64
|
||||
as the default <emulator>, instead of the qemu-xen one.
|
||||
|
||||
See FATE#320638 for details.
|
||||
|
||||
Index: libvirt-4.9.0/src/libxl/libxl_capabilities.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/libxl/libxl_capabilities.c
|
||||
+++ libvirt-4.9.0/src/libxl/libxl_capabilities.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "libxl_capabilities.h"
|
||||
#include "cpu/cpu_x86.h"
|
||||
#include "cpu/cpu_x86_data.h"
|
||||
+#include "configmake.h"
|
||||
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_LIBXL
|
||||
@@ -506,7 +507,7 @@ libxlCapsInitGuests(libxl_ctx *ctx, virC
|
||||
if ((guest = virCapabilitiesAddGuest(caps,
|
||||
guest_archs[i].hvm ? VIR_DOMAIN_OSTYPE_HVM : VIR_DOMAIN_OSTYPE_XEN,
|
||||
guest_archs[i].arch,
|
||||
- LIBXL_EXECBIN_DIR "/qemu-system-i386",
|
||||
+ BINDIR "/qemu-system-x86_64",
|
||||
(guest_archs[i].hvm ?
|
||||
LIBXL_FIRMWARE_DIR "/hvmloader" :
|
||||
NULL),
|
@ -3,11 +3,11 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425
|
||||
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
|
||||
1 file changed, 25 insertions(+)
|
||||
|
||||
Index: libvirt-4.9.0/src/libxl/libxl_conf.c
|
||||
Index: libvirt-4.10.0/src/libxl/libxl_conf.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/libxl/libxl_conf.c
|
||||
+++ libvirt-4.9.0/src/libxl/libxl_conf.c
|
||||
@@ -848,6 +848,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
||||
--- libvirt-4.10.0.orig/src/libxl/libxl_conf.c
|
||||
+++ libvirt-4.10.0/src/libxl/libxl_conf.c
|
||||
@@ -888,6 +888,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ Index: libvirt-4.9.0/src/libxl/libxl_conf.c
|
||||
static char *
|
||||
libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src,
|
||||
const char *username,
|
||||
@@ -1096,6 +1120,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
@@ -1136,6 +1160,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
|
||||
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
|
||||
return -1;
|
||||
|
@ -16,11 +16,11 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
tools/virsh.pod | 8 ++++++++
|
||||
6 files changed, 125 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: libvirt-4.9.0/include/libvirt/libvirt-domain.h
|
||||
Index: libvirt-4.10.0/include/libvirt/libvirt-domain.h
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/include/libvirt/libvirt-domain.h
|
||||
+++ libvirt-4.9.0/include/libvirt/libvirt-domain.h
|
||||
@@ -1015,6 +1015,31 @@ typedef enum {
|
||||
--- libvirt-4.10.0.orig/include/libvirt/libvirt-domain.h
|
||||
+++ libvirt-4.10.0/include/libvirt/libvirt-domain.h
|
||||
@@ -1017,6 +1017,31 @@ typedef enum {
|
||||
*/
|
||||
# define VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT "auto_converge.increment"
|
||||
|
||||
@ -52,10 +52,10 @@ Index: libvirt-4.9.0/include/libvirt/libvirt-domain.h
|
||||
/* Domain migration. */
|
||||
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
|
||||
unsigned long flags, const char *dname,
|
||||
Index: libvirt-4.9.0/src/libxl/libxl_driver.c
|
||||
Index: libvirt-4.10.0/src/libxl/libxl_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.9.0/src/libxl/libxl_driver.c
|
||||
--- libvirt-4.10.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.10.0/src/libxl/libxl_driver.c
|
||||
@@ -6119,6 +6119,9 @@ libxlDomainMigratePerform3Params(virDoma
|
||||
const char *dname = NULL;
|
||||
const char *uri = NULL;
|
||||
@ -99,10 +99,10 @@ Index: libvirt-4.9.0/src/libxl/libxl_driver.c
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
Index: libvirt-4.9.0/src/libxl/libxl_migration.c
|
||||
Index: libvirt-4.10.0/src/libxl/libxl_migration.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/libxl/libxl_migration.c
|
||||
+++ libvirt-4.9.0/src/libxl/libxl_migration.c
|
||||
--- libvirt-4.10.0.orig/src/libxl/libxl_migration.c
|
||||
+++ libvirt-4.10.0/src/libxl/libxl_migration.c
|
||||
@@ -346,18 +346,39 @@ libxlMigrateDstReceive(virNetSocketPtr s
|
||||
static int
|
||||
libxlDoMigrateSrcSend(libxlDriverPrivatePtr driver,
|
||||
@ -264,10 +264,10 @@ Index: libvirt-4.9.0/src/libxl/libxl_migration.c
|
||||
virObjectLock(vm);
|
||||
|
||||
if (ret < 0) {
|
||||
Index: libvirt-4.9.0/src/libxl/libxl_migration.h
|
||||
Index: libvirt-4.10.0/src/libxl/libxl_migration.h
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/libxl/libxl_migration.h
|
||||
+++ libvirt-4.9.0/src/libxl/libxl_migration.h
|
||||
--- libvirt-4.10.0.orig/src/libxl/libxl_migration.h
|
||||
+++ libvirt-4.10.0/src/libxl/libxl_migration.h
|
||||
@@ -39,6 +39,10 @@
|
||||
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
|
||||
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
|
||||
@ -312,11 +312,11 @@ Index: libvirt-4.9.0/src/libxl/libxl_migration.h
|
||||
|
||||
virDomainPtr
|
||||
libxlDomainMigrationDstFinish(virConnectPtr dconn,
|
||||
Index: libvirt-4.9.0/tools/virsh-domain.c
|
||||
Index: libvirt-4.10.0/tools/virsh-domain.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/tools/virsh-domain.c
|
||||
+++ libvirt-4.9.0/tools/virsh-domain.c
|
||||
@@ -10450,6 +10450,22 @@ static const vshCmdOptDef opts_migrate[]
|
||||
--- libvirt-4.10.0.orig/tools/virsh-domain.c
|
||||
+++ libvirt-4.10.0/tools/virsh-domain.c
|
||||
@@ -10554,6 +10554,22 @@ static const vshCmdOptDef opts_migrate[]
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("use TLS for migration")
|
||||
},
|
||||
@ -339,7 +339,7 @@ Index: libvirt-4.9.0/tools/virsh-domain.c
|
||||
{.name = NULL}
|
||||
};
|
||||
|
||||
@@ -10473,6 +10489,7 @@ doMigrate(void *opaque)
|
||||
@@ -10577,6 +10593,7 @@ doMigrate(void *opaque)
|
||||
unsigned long long ullOpt = 0;
|
||||
int rv;
|
||||
virConnectPtr dconn = data->dconn;
|
||||
@ -347,7 +347,7 @@ Index: libvirt-4.9.0/tools/virsh-domain.c
|
||||
|
||||
sigemptyset(&sigmask);
|
||||
sigaddset(&sigmask, SIGINT);
|
||||
@@ -10592,6 +10609,27 @@ doMigrate(void *opaque)
|
||||
@@ -10696,6 +10713,27 @@ doMigrate(void *opaque)
|
||||
goto save_error;
|
||||
}
|
||||
|
||||
@ -375,11 +375,11 @@ Index: libvirt-4.9.0/tools/virsh-domain.c
|
||||
if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0)
|
||||
goto out;
|
||||
if (opt) {
|
||||
Index: libvirt-4.9.0/tools/virsh.pod
|
||||
Index: libvirt-4.10.0/tools/virsh.pod
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/tools/virsh.pod
|
||||
+++ libvirt-4.9.0/tools/virsh.pod
|
||||
@@ -1937,6 +1937,14 @@ Providing I<--tls> causes the migration
|
||||
--- libvirt-4.10.0.orig/tools/virsh.pod
|
||||
+++ libvirt-4.10.0/tools/virsh.pod
|
||||
@@ -1994,6 +1994,14 @@ Providing I<--tls> causes the migration
|
||||
the migration of the domain. Usage requires proper TLS setup for both source
|
||||
and target.
|
||||
|
||||
|
@ -7,11 +7,11 @@ and npiv.
|
||||
|
||||
For more details, see bsc#954872 and FATE#319810
|
||||
|
||||
Index: libvirt-4.9.0/src/libxl/libxl_conf.c
|
||||
Index: libvirt-4.10.0/src/libxl/libxl_conf.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/libxl/libxl_conf.c
|
||||
+++ libvirt-4.9.0/src/libxl/libxl_conf.c
|
||||
@@ -848,6 +848,25 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
||||
--- libvirt-4.10.0.orig/src/libxl/libxl_conf.c
|
||||
+++ libvirt-4.10.0/src/libxl/libxl_conf.c
|
||||
@@ -888,6 +888,25 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ Index: libvirt-4.9.0/src/libxl/libxl_conf.c
|
||||
static void
|
||||
libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode)
|
||||
{
|
||||
@@ -993,6 +1012,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
|
||||
@@ -1033,6 +1052,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
|
||||
int
|
||||
libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
|
||||
{
|
||||
@ -45,7 +45,7 @@ Index: libvirt-4.9.0/src/libxl/libxl_conf.c
|
||||
const char *driver = virDomainDiskGetDriver(l_disk);
|
||||
int format = virDomainDiskGetFormat(l_disk);
|
||||
int actual_type = virStorageSourceGetActualType(l_disk->src);
|
||||
@@ -1008,7 +1028,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
@@ -1048,7 +1068,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0)
|
||||
return -1;
|
||||
} else {
|
||||
@ -54,7 +54,7 @@ Index: libvirt-4.9.0/src/libxl/libxl_conf.c
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1121,6 +1141,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
@@ -1161,6 +1181,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
|
||||
return -1;
|
||||
libxlDiskSetCacheMode(x_disk, l_disk->cachemode);
|
||||
|
120
libxl-support-ovswitch.patch
Normal file
120
libxl-support-ovswitch.patch
Normal file
@ -0,0 +1,120 @@
|
||||
commit 2f5d4894a9d8680461883161beb97b6602734726
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Tue Jun 28 14:20:02 2016 -0600
|
||||
|
||||
libxl: support openvswitch interfaces
|
||||
|
||||
It is currently possible to use <interface>s of type openvswitch
|
||||
with the libxl driver in a non-standard way, e.g.
|
||||
|
||||
<interface type='bridge'>
|
||||
<source bridge='ovsbr0'/>
|
||||
<mac address='00:16:3e:7a:35:ce'/>
|
||||
<script path='vif-openvswitch'/>
|
||||
</interface>
|
||||
|
||||
This patch adds support for openvswitch <interface>s specified
|
||||
in typical libvirt config
|
||||
|
||||
<interface type='bridge'>
|
||||
<source bridge='ovsbr0'/>
|
||||
<mac address='00:16:3e:7a:35:ce'/>
|
||||
<virtualport type='openvswitch'/>
|
||||
</interface>
|
||||
|
||||
VLAN tags and trunking are also supported using the extended
|
||||
syntax for specifying an openvswitch bridge in libxl
|
||||
|
||||
BRIDGE_NAME[.VLAN][:TRUNK:TRUNK]
|
||||
|
||||
See Xen's networking wiki for more details on openvswitch support
|
||||
|
||||
https://wiki.xenproject.org/wiki/Xen_Networking#Open_vSwitch
|
||||
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
|
||||
Index: libvirt-4.10.0/src/libxl/libxl_conf.c
|
||||
===================================================================
|
||||
--- libvirt-4.10.0.orig/src/libxl/libxl_conf.c
|
||||
+++ libvirt-4.10.0/src/libxl/libxl_conf.c
|
||||
@@ -51,6 +51,7 @@
|
||||
#include "cpu/cpu.h"
|
||||
#include "xen_common.h"
|
||||
#include "xen_xl.h"
|
||||
+#include "virnetdevvportprofile.h"
|
||||
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_LIBXL
|
||||
@@ -1229,6 +1230,11 @@ libxlMakeNic(virDomainDefPtr def,
|
||||
virNetworkPtr network = NULL;
|
||||
virConnectPtr conn = NULL;
|
||||
virNetDevBandwidthPtr actual_bw;
|
||||
+ virNetDevVPortProfilePtr port_profile;
|
||||
+ virNetDevVlanPtr virt_vlan;
|
||||
+ virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
+ size_t i;
|
||||
+ const char *script = NULL;
|
||||
int ret = -1;
|
||||
|
||||
/* TODO: Where is mtu stored?
|
||||
@@ -1287,14 +1293,50 @@ libxlMakeNic(virDomainDefPtr def,
|
||||
if (VIR_STRDUP(x_nic->ifname, l_nic->ifname) < 0)
|
||||
goto cleanup;
|
||||
|
||||
+ port_profile = virDomainNetGetActualVirtPortProfile(l_nic);
|
||||
+ virt_vlan = virDomainNetGetActualVlan(l_nic);
|
||||
+ script = l_nic->script;
|
||||
switch (actual_type) {
|
||||
case VIR_DOMAIN_NET_TYPE_BRIDGE:
|
||||
+ virBufferAsprintf(&buf, "%s", virDomainNetGetActualBridgeName(l_nic));
|
||||
+ /*
|
||||
+ * A bit of special handling if vif will be connected to an
|
||||
+ * openvswitch bridge
|
||||
+ */
|
||||
+ if (port_profile &&
|
||||
+ port_profile->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) {
|
||||
+ /*
|
||||
+ * If a custom script is not specified for openvswitch, use
|
||||
+ * Xen's vif-openvswitch script
|
||||
+ */
|
||||
+ if (!script)
|
||||
+ script = "vif-openvswitch";
|
||||
+ /*
|
||||
+ * libxl_device_nic->bridge supports an extended format for
|
||||
+ * specifying VLAN tags and trunks when using openvswitch
|
||||
+ *
|
||||
+ * BRIDGE_NAME[.VLAN][:TRUNK:TRUNK]
|
||||
+ *
|
||||
+ * See Xen's networking wiki for more details
|
||||
+ * https://wiki.xenproject.org/wiki/Xen_Networking#Open_vSwitch
|
||||
+ */
|
||||
+ if (virt_vlan && virt_vlan->nTags > 0) {
|
||||
+ if (virt_vlan->trunk) {
|
||||
+ for (i = 0; i < virt_vlan->nTags; i++)
|
||||
+ virBufferAsprintf(&buf, ":%d", virt_vlan->tag[i]);
|
||||
+ } else {
|
||||
+ virBufferAsprintf(&buf, ".%d", virt_vlan->tag[0]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ if (virBufferCheckError(&buf) < 0)
|
||||
+ goto cleanup;
|
||||
if (VIR_STRDUP(x_nic->bridge,
|
||||
- virDomainNetGetActualBridgeName(l_nic)) < 0)
|
||||
+ virBufferCurrentContent(&buf)) < 0)
|
||||
goto cleanup;
|
||||
ATTRIBUTE_FALLTHROUGH;
|
||||
case VIR_DOMAIN_NET_TYPE_ETHERNET:
|
||||
- if (VIR_STRDUP(x_nic->script, l_nic->script) < 0)
|
||||
+ if (VIR_STRDUP(x_nic->script, script) < 0)
|
||||
goto cleanup;
|
||||
if (l_nic->guestIP.nips > 0) {
|
||||
x_nic->ip = xenMakeIPList(&l_nic->guestIP);
|
||||
@@ -1391,6 +1433,7 @@ libxlMakeNic(virDomainDefPtr def,
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
+ virBufferFreeAndReset(&buf);
|
||||
virObjectUnref(network);
|
||||
virObjectUnref(conn);
|
||||
|
@ -13,10 +13,10 @@ device with the same name that is being created.
|
||||
src/lxc/lxc_process.c | 1 +
|
||||
3 files changed, 4 insertions(+)
|
||||
|
||||
Index: libvirt-4.9.0/src/lxc/lxc_controller.c
|
||||
Index: libvirt-4.10.0/src/lxc/lxc_controller.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/lxc/lxc_controller.c
|
||||
+++ libvirt-4.9.0/src/lxc/lxc_controller.c
|
||||
--- libvirt-4.10.0.orig/src/lxc/lxc_controller.c
|
||||
+++ libvirt-4.10.0/src/lxc/lxc_controller.c
|
||||
@@ -72,6 +72,7 @@
|
||||
#include "rpc/virnetdaemon.h"
|
||||
#include "virstring.h"
|
||||
@ -33,10 +33,10 @@ Index: libvirt-4.9.0/src/lxc/lxc_controller.c
|
||||
|
||||
return ret;
|
||||
}
|
||||
Index: libvirt-4.9.0/src/lxc/lxc_driver.c
|
||||
Index: libvirt-4.10.0/src/lxc/lxc_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/lxc/lxc_driver.c
|
||||
+++ libvirt-4.9.0/src/lxc/lxc_driver.c
|
||||
--- libvirt-4.10.0.orig/src/lxc/lxc_driver.c
|
||||
+++ libvirt-4.10.0/src/lxc/lxc_driver.c
|
||||
@@ -73,6 +73,7 @@
|
||||
#include "virtime.h"
|
||||
#include "virtypedparam.h"
|
||||
@ -61,10 +61,10 @@ Index: libvirt-4.9.0/src/lxc/lxc_driver.c
|
||||
break;
|
||||
|
||||
/* It'd be nice to support this, but with macvlan
|
||||
Index: libvirt-4.9.0/src/lxc/lxc_process.c
|
||||
Index: libvirt-4.10.0/src/lxc/lxc_process.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/lxc/lxc_process.c
|
||||
+++ libvirt-4.9.0/src/lxc/lxc_process.c
|
||||
--- libvirt-4.10.0.orig/src/lxc/lxc_process.c
|
||||
+++ libvirt-4.10.0/src/lxc/lxc_process.c
|
||||
@@ -51,6 +51,7 @@
|
||||
#include "viratomic.h"
|
||||
#include "virprocess.h"
|
||||
|
@ -17,10 +17,10 @@ Signed-off-by: Martin Wilck <mwilck@suse.com>
|
||||
tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 -
|
||||
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: libvirt-4.9.0/src/network/bridge_driver.c
|
||||
Index: libvirt-4.10.0/src/network/bridge_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/network/bridge_driver.c
|
||||
+++ libvirt-4.9.0/src/network/bridge_driver.c
|
||||
--- libvirt-4.10.0.orig/src/network/bridge_driver.c
|
||||
+++ libvirt-4.10.0/src/network/bridge_driver.c
|
||||
@@ -1458,7 +1458,14 @@ networkDnsmasqConfContents(virNetworkObj
|
||||
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
|
||||
if (ipdef->nranges || ipdef->nhosts) {
|
||||
@ -37,10 +37,10 @@ Index: libvirt-4.9.0/src/network/bridge_driver.c
|
||||
}
|
||||
|
||||
if (ipdef->tftproot) {
|
||||
Index: libvirt-4.9.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
Index: libvirt-4.10.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
+++ libvirt-4.9.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
--- libvirt-4.10.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
+++ libvirt-4.10.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
@@ -10,7 +10,6 @@ bind-dynamic
|
||||
interface=virbr1
|
||||
dhcp-range=192.168.122.1,static
|
||||
|
@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64
|
||||
|
||||
See bnc#894956
|
||||
|
||||
Index: libvirt-4.9.0/src/util/virarch.c
|
||||
Index: libvirt-4.10.0/src/util/virarch.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/util/virarch.c
|
||||
+++ libvirt-4.9.0/src/util/virarch.c
|
||||
--- libvirt-4.10.0.orig/src/util/virarch.c
|
||||
+++ libvirt-4.10.0/src/util/virarch.c
|
||||
@@ -172,6 +172,8 @@ virArch virArchFromHost(void)
|
||||
arch = VIR_ARCH_I686;
|
||||
} else if (STREQ(ut.machine, "amd64")) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: libvirt-4.9.0/examples/apparmor/libvirt-qemu
|
||||
Index: libvirt-4.10.0/examples/apparmor/libvirt-qemu
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/examples/apparmor/libvirt-qemu
|
||||
+++ libvirt-4.9.0/examples/apparmor/libvirt-qemu
|
||||
--- libvirt-4.10.0.orig/examples/apparmor/libvirt-qemu
|
||||
+++ libvirt-4.10.0/examples/apparmor/libvirt-qemu
|
||||
@@ -221,3 +221,6 @@
|
||||
# required for sasl GSSAPI plugin
|
||||
/etc/gss/mech.d/ r,
|
||||
|
@ -8,10 +8,10 @@ Subject: [PATCH] support managed pci devices in xen driver
|
||||
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
|
||||
2 files changed, 35 insertions(+), 15 deletions(-)
|
||||
|
||||
Index: libvirt-4.9.0/src/xenconfig/xen_common.c
|
||||
Index: libvirt-4.10.0/src/xenconfig/xen_common.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/xenconfig/xen_common.c
|
||||
+++ libvirt-4.9.0/src/xenconfig/xen_common.c
|
||||
--- libvirt-4.10.0.orig/src/xenconfig/xen_common.c
|
||||
+++ libvirt-4.10.0/src/xenconfig/xen_common.c
|
||||
@@ -390,12 +390,19 @@ xenParsePCI(char *entry)
|
||||
int busID;
|
||||
int slotID;
|
||||
@ -64,10 +64,10 @@ Index: libvirt-4.9.0/src/xenconfig/xen_common.c
|
||||
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
|
||||
hostdev->source.subsys.u.pci.addr.domain = domainID;
|
||||
hostdev->source.subsys.u.pci.addr.bus = busID;
|
||||
Index: libvirt-4.9.0/src/xenconfig/xen_sxpr.c
|
||||
Index: libvirt-4.10.0/src/xenconfig/xen_sxpr.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.9.0/src/xenconfig/xen_sxpr.c
|
||||
--- libvirt-4.10.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.10.0/src/xenconfig/xen_sxpr.c
|
||||
@@ -1057,6 +1057,7 @@ xenParseSxprPCI(virDomainDefPtr def,
|
||||
int busID;
|
||||
int slotID;
|
||||
|
@ -8,10 +8,10 @@ It was also noticed that the per-domain profiles need a libnl rule
|
||||
to squelch a denial when starting confined domains.
|
||||
|
||||
Found while investigating bsc#1058847
|
||||
Index: libvirt-4.9.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
Index: libvirt-4.10.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
+++ libvirt-4.9.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
--- libvirt-4.10.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
+++ libvirt-4.10.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
@@ -17,7 +17,7 @@ profile virt-aa-helper /usr/{lib,lib64}/
|
||||
owner @{PROC}/[0-9]*/status r,
|
||||
@{PROC}/filesystems r,
|
||||
@ -21,10 +21,10 @@ Index: libvirt-4.9.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
|
||||
# for hostdev
|
||||
/sys/devices/ r,
|
||||
Index: libvirt-4.9.0/examples/apparmor/libvirt-qemu
|
||||
Index: libvirt-4.10.0/examples/apparmor/libvirt-qemu
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/examples/apparmor/libvirt-qemu
|
||||
+++ libvirt-4.9.0/examples/apparmor/libvirt-qemu
|
||||
--- libvirt-4.10.0.orig/examples/apparmor/libvirt-qemu
|
||||
+++ libvirt-4.10.0/examples/apparmor/libvirt-qemu
|
||||
@@ -62,6 +62,7 @@
|
||||
#/dev/fb* rw,
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
Adjust libvirt-guests service to conform to SUSE standards
|
||||
|
||||
Index: libvirt-4.9.0/tools/libvirt-guests.init.in
|
||||
Index: libvirt-4.10.0/tools/libvirt-guests.init.in
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/tools/libvirt-guests.init.in
|
||||
+++ libvirt-4.9.0/tools/libvirt-guests.init.in
|
||||
--- libvirt-4.10.0.orig/tools/libvirt-guests.init.in
|
||||
+++ libvirt-4.10.0/tools/libvirt-guests.init.in
|
||||
@@ -4,27 +4,27 @@
|
||||
# http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html
|
||||
#
|
||||
@ -46,10 +46,10 @@ Index: libvirt-4.9.0/tools/libvirt-guests.init.in
|
||||
+
|
||||
|
||||
exec @libexecdir@/libvirt-guests.sh "$@"
|
||||
Index: libvirt-4.9.0/tools/libvirt-guests.sh.in
|
||||
Index: libvirt-4.10.0/tools/libvirt-guests.sh.in
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/tools/libvirt-guests.sh.in
|
||||
+++ libvirt-4.9.0/tools/libvirt-guests.sh.in
|
||||
--- libvirt-4.10.0.orig/tools/libvirt-guests.sh.in
|
||||
+++ libvirt-4.10.0/tools/libvirt-guests.sh.in
|
||||
@@ -16,14 +16,13 @@
|
||||
# License along with this library. If not, see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
@ -209,10 +209,10 @@ Index: libvirt-4.9.0/tools/libvirt-guests.sh.in
|
||||
esac
|
||||
-exit $RETVAL
|
||||
+rc_exit
|
||||
Index: libvirt-4.9.0/tools/libvirt-guests.sysconf
|
||||
Index: libvirt-4.10.0/tools/libvirt-guests.sysconf
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/tools/libvirt-guests.sysconf
|
||||
+++ libvirt-4.9.0/tools/libvirt-guests.sysconf
|
||||
--- libvirt-4.10.0.orig/tools/libvirt-guests.sysconf
|
||||
+++ libvirt-4.10.0/tools/libvirt-guests.sysconf
|
||||
@@ -1,19 +1,29 @@
|
||||
+## Path: System/Virtualization/libvirt-guests
|
||||
+
|
||||
|
@ -3,10 +3,10 @@ Disable TLS by default
|
||||
On SUSE distros, the default is for libvirtd to listen only on the
|
||||
Unix Domain Socket. The libvirt client still provides remote access
|
||||
via a SSH tunnel.
|
||||
Index: libvirt-4.9.0/src/remote/libvirtd.conf
|
||||
Index: libvirt-4.10.0/src/remote/libvirtd.conf
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/remote/libvirtd.conf
|
||||
+++ libvirt-4.9.0/src/remote/libvirtd.conf
|
||||
--- libvirt-4.10.0.orig/src/remote/libvirtd.conf
|
||||
+++ libvirt-4.10.0/src/remote/libvirtd.conf
|
||||
@@ -18,8 +18,8 @@
|
||||
# It is necessary to setup a CA and issue server certificates before
|
||||
# using this capability.
|
||||
@ -18,10 +18,10 @@ Index: libvirt-4.9.0/src/remote/libvirtd.conf
|
||||
|
||||
# Listen for unencrypted TCP connections on the public TCP/IP port.
|
||||
# NB, must pass the --listen flag to the libvirtd process for this to
|
||||
Index: libvirt-4.9.0/src/remote/remote_daemon_config.c
|
||||
Index: libvirt-4.10.0/src/remote/remote_daemon_config.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/remote/remote_daemon_config.c
|
||||
+++ libvirt-4.9.0/src/remote/remote_daemon_config.c
|
||||
--- libvirt-4.10.0.orig/src/remote/remote_daemon_config.c
|
||||
+++ libvirt-4.10.0/src/remote/remote_daemon_config.c
|
||||
@@ -110,7 +110,7 @@ daemonConfigNew(bool privileged ATTRIBUT
|
||||
if (VIR_ALLOC(data) < 0)
|
||||
return NULL;
|
||||
@ -31,10 +31,10 @@ Index: libvirt-4.9.0/src/remote/remote_daemon_config.c
|
||||
data->listen_tcp = 0;
|
||||
|
||||
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
|
||||
Index: libvirt-4.9.0/src/remote/test_libvirtd.aug.in
|
||||
Index: libvirt-4.10.0/src/remote/test_libvirtd.aug.in
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/remote/test_libvirtd.aug.in
|
||||
+++ libvirt-4.9.0/src/remote/test_libvirtd.aug.in
|
||||
--- libvirt-4.10.0.orig/src/remote/test_libvirtd.aug.in
|
||||
+++ libvirt-4.10.0/src/remote/test_libvirtd.aug.in
|
||||
@@ -2,7 +2,7 @@ module Test_libvirtd =
|
||||
::CONFIG::
|
||||
|
||||
|
@ -7,10 +7,10 @@ On SUSE distros, we promote libvirt and all the libvirt-based
|
||||
tools. If a user installs libvirt on their SUSE Xen host, then
|
||||
libvirt should be king and override xendomains. See bsc#1015348
|
||||
|
||||
Index: libvirt-4.9.0/src/remote/libvirtd.service.in
|
||||
Index: libvirt-4.10.0/src/remote/libvirtd.service.in
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/remote/libvirtd.service.in
|
||||
+++ libvirt-4.9.0/src/remote/libvirtd.service.in
|
||||
--- libvirt-4.10.0.orig/src/remote/libvirtd.service.in
|
||||
+++ libvirt-4.10.0/src/remote/libvirtd.service.in
|
||||
@@ -17,6 +17,8 @@ After=local-fs.target
|
||||
After=remote-fs.target
|
||||
After=systemd-logind.service
|
||||
|
@ -1,9 +1,9 @@
|
||||
Adjust libvirtd sysconfig file to conform to SUSE standards
|
||||
|
||||
Index: libvirt-4.9.0/src/remote/libvirtd.sysconf
|
||||
Index: libvirt-4.10.0/src/remote/libvirtd.sysconf
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/remote/libvirtd.sysconf
|
||||
+++ libvirt-4.9.0/src/remote/libvirtd.sysconf
|
||||
--- libvirt-4.10.0.orig/src/remote/libvirtd.sysconf
|
||||
+++ libvirt-4.10.0/src/remote/libvirtd.sysconf
|
||||
@@ -1,16 +1,25 @@
|
||||
+## Path: System/Virtualization/libvirt
|
||||
+
|
||||
|
@ -1,9 +1,9 @@
|
||||
Adjust paths of OVMF firmwares on SUSE distros
|
||||
|
||||
Index: libvirt-4.9.0/src/qemu/qemu.conf
|
||||
Index: libvirt-4.10.0/src/qemu/qemu.conf
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/qemu/qemu.conf
|
||||
+++ libvirt-4.9.0/src/qemu/qemu.conf
|
||||
--- libvirt-4.10.0.orig/src/qemu/qemu.conf
|
||||
+++ libvirt-4.10.0/src/qemu/qemu.conf
|
||||
@@ -768,10 +768,9 @@ security_default_confined = 0
|
||||
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
|
||||
# follows this scheme.
|
||||
@ -18,10 +18,10 @@ Index: libvirt-4.9.0/src/qemu/qemu.conf
|
||||
#]
|
||||
|
||||
# The backend to use for handling stdout/stderr output from
|
||||
Index: libvirt-4.9.0/src/qemu/qemu_conf.c
|
||||
Index: libvirt-4.10.0/src/qemu/qemu_conf.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/qemu/qemu_conf.c
|
||||
+++ libvirt-4.9.0/src/qemu/qemu_conf.c
|
||||
--- libvirt-4.10.0.orig/src/qemu/qemu_conf.c
|
||||
+++ libvirt-4.10.0/src/qemu/qemu_conf.c
|
||||
@@ -118,10 +118,9 @@ void qemuDomainCmdlineDefFree(qemuDomain
|
||||
|
||||
#ifndef DEFAULT_LOADER_NVRAM
|
||||
@ -36,10 +36,10 @@ Index: libvirt-4.9.0/src/qemu/qemu_conf.c
|
||||
#endif
|
||||
|
||||
|
||||
Index: libvirt-4.9.0/src/security/virt-aa-helper.c
|
||||
Index: libvirt-4.10.0/src/security/virt-aa-helper.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/security/virt-aa-helper.c
|
||||
+++ libvirt-4.9.0/src/security/virt-aa-helper.c
|
||||
--- libvirt-4.10.0.orig/src/security/virt-aa-helper.c
|
||||
+++ libvirt-4.10.0/src/security/virt-aa-helper.c
|
||||
@@ -511,7 +511,8 @@ valid_path(const char *path, const bool
|
||||
"/usr/share/ovmf/", /* for OVMF images */
|
||||
"/usr/share/AAVMF/", /* for AAVMF images */
|
||||
|
@ -7,10 +7,10 @@ suse-qemu-conf-secdriver.patch, suse-qemu-conf-lockmgr.patch,
|
||||
etc.), but for now they are all lumped together in this
|
||||
single patch.
|
||||
|
||||
Index: libvirt-4.9.0/src/qemu/qemu.conf
|
||||
Index: libvirt-4.10.0/src/qemu/qemu.conf
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/qemu/qemu.conf
|
||||
+++ libvirt-4.9.0/src/qemu/qemu.conf
|
||||
--- libvirt-4.10.0.orig/src/qemu/qemu.conf
|
||||
+++ libvirt-4.10.0/src/qemu/qemu.conf
|
||||
@@ -414,11 +414,20 @@
|
||||
# isolation, but it cannot appear in a list of drivers.
|
||||
#
|
||||
|
@ -1,9 +1,9 @@
|
||||
Adjust virtlockd sysconfig file to conform to SUSE standards
|
||||
|
||||
Index: libvirt-4.9.0/src/locking/virtlockd.sysconf
|
||||
Index: libvirt-4.10.0/src/locking/virtlockd.sysconf
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/locking/virtlockd.sysconf
|
||||
+++ libvirt-4.9.0/src/locking/virtlockd.sysconf
|
||||
--- libvirt-4.10.0.orig/src/locking/virtlockd.sysconf
|
||||
+++ libvirt-4.10.0/src/locking/virtlockd.sysconf
|
||||
@@ -1,3 +1,7 @@
|
||||
+## Path: System/Virtualization/virtlockd
|
||||
+
|
||||
|
@ -1,9 +1,9 @@
|
||||
Adjust virtlogd sysconfig file to conform to SUSE standards
|
||||
|
||||
Index: libvirt-4.9.0/src/logging/virtlogd.sysconf
|
||||
Index: libvirt-4.10.0/src/logging/virtlogd.sysconf
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/logging/virtlogd.sysconf
|
||||
+++ libvirt-4.9.0/src/logging/virtlogd.sysconf
|
||||
--- libvirt-4.10.0.orig/src/logging/virtlogd.sysconf
|
||||
+++ libvirt-4.10.0/src/logging/virtlogd.sysconf
|
||||
@@ -1,3 +1,7 @@
|
||||
+## Path: System/Virtualization/virtlogd
|
||||
+
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: libvirt-4.0.0/tools/Makefile.am
|
||||
Index: libvirt-4.10.0/tools/Makefile.am
|
||||
===================================================================
|
||||
--- libvirt-4.0.0.orig/tools/Makefile.am
|
||||
+++ libvirt-4.0.0/tools/Makefile.am
|
||||
@@ -52,6 +52,7 @@ PODFILES = \
|
||||
--- libvirt-4.10.0.orig/tools/Makefile.am
|
||||
+++ libvirt-4.10.0/tools/Makefile.am
|
||||
@@ -53,6 +53,7 @@ PODFILES = \
|
||||
virt-sanlock-cleanup.pod \
|
||||
virt-xml-validate.pod \
|
||||
virsh.pod \
|
||||
@ -10,7 +10,7 @@ Index: libvirt-4.0.0/tools/Makefile.am
|
||||
$(NULL)
|
||||
|
||||
MANINFILES = \
|
||||
@@ -86,7 +87,7 @@ MAINTAINERCLEANFILES =
|
||||
@@ -87,7 +88,7 @@ MAINTAINERCLEANFILES =
|
||||
confdir = $(sysconfdir)/libvirt
|
||||
conf_DATA =
|
||||
|
||||
@ -19,7 +19,7 @@ Index: libvirt-4.0.0/tools/Makefile.am
|
||||
bin_PROGRAMS = virsh virt-admin
|
||||
libexec_SCRIPTS = libvirt-guests.sh
|
||||
man1_MANS = \
|
||||
@@ -112,6 +113,8 @@ bin_PROGRAMS += virt-host-validate
|
||||
@@ -113,6 +114,8 @@ bin_PROGRAMS += virt-host-validate
|
||||
man1_MANS += virt-host-validate.1
|
||||
endif WITH_HOST_VALIDATE
|
||||
|
||||
@ -28,10 +28,10 @@ Index: libvirt-4.0.0/tools/Makefile.am
|
||||
virt-xml-validate: virt-xml-validate.in Makefile
|
||||
$(AM_V_GEN)sed -e 's|[@]schemadir@|$(pkgdatadir)/schemas|g' \
|
||||
-e 's|[@]VERSION@|$(VERSION)|g' \
|
||||
Index: libvirt-4.0.0/tools/virt-create-rootfs
|
||||
Index: libvirt-4.10.0/tools/virt-create-rootfs
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.0.0/tools/virt-create-rootfs
|
||||
+++ libvirt-4.10.0/tools/virt-create-rootfs
|
||||
@@ -0,0 +1,214 @@
|
||||
+#!/bin/sh
|
||||
+set -e
|
||||
@ -247,10 +247,10 @@ Index: libvirt-4.0.0/tools/virt-create-rootfs
|
||||
+ echo "pts/0" >> "$ROOT/etc/securetty"
|
||||
+ chroot "$ROOT" /usr/bin/passwd
|
||||
+fi
|
||||
Index: libvirt-4.0.0/tools/virt-create-rootfs.pod
|
||||
Index: libvirt-4.10.0/tools/virt-create-rootfs.pod
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.0.0/tools/virt-create-rootfs.pod
|
||||
+++ libvirt-4.10.0/tools/virt-create-rootfs.pod
|
||||
@@ -0,0 +1,77 @@
|
||||
+=head1 NAME
|
||||
+
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: libvirt-4.9.0/src/xenconfig/xen_sxpr.c
|
||||
Index: libvirt-4.10.0/src/xenconfig/xen_sxpr.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.9.0/src/xenconfig/xen_sxpr.c
|
||||
--- libvirt-4.10.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.10.0/src/xenconfig/xen_sxpr.c
|
||||
@@ -387,7 +387,7 @@ xenParseSxprVifRate(const char *rate, un
|
||||
static int
|
||||
xenParseSxprDisks(virDomainDefPtr def,
|
||||
|
@ -6,10 +6,10 @@ and 'file'. This was implicitly done prior to commit 9673418c.
|
||||
|
||||
https://bugzilla.suse.com/show_bug.cgi?id=938228
|
||||
|
||||
Index: libvirt-4.9.0/src/xenconfig/xen_sxpr.c
|
||||
Index: libvirt-4.10.0/src/xenconfig/xen_sxpr.c
|
||||
===================================================================
|
||||
--- libvirt-4.9.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.9.0/src/xenconfig/xen_sxpr.c
|
||||
--- libvirt-4.10.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.10.0/src/xenconfig/xen_sxpr.c
|
||||
@@ -501,10 +501,11 @@ xenParseSxprDisks(virDomainDefPtr def,
|
||||
omnipotent, we can revisit this, perhaps stat()'ing
|
||||
the src file in question */
|
||||
|
Loading…
Reference in New Issue
Block a user