SHA256
1
0
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:
James Fehlig 2018-12-03 23:17:47 +00:00 committed by Git OBS Bridge
parent 0a997d39fb
commit 096d671ce7
40 changed files with 712 additions and 501 deletions

View File

@ -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 \

View File

@ -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 */

View File

@ -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"

View File

@ -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) {

View File

@ -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:

View File

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

View File

@ -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;
}

View File

@ -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
View 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
View 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-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4fd4bfe7312b7996a817c7919cf0062de0d5b3c400c93bd30855a46c40dd455a
size 14744184

View File

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

View File

@ -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'/>

View File

@ -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)

View File

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

View File

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

View File

@ -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 */

View 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");

View File

@ -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),

View File

@ -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;

View File

@ -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.

View File

@ -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);

View 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);

View File

@ -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"

View File

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

View File

@ -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")) {

View File

@ -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,

View File

@ -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;

View File

@ -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,

View File

@ -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
+

View File

@ -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::

View File

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

View File

@ -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
+

View File

@ -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 */

View File

@ -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.
#

View File

@ -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
+

View File

@ -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
+

View File

@ -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
+

View File

@ -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,

View File

@ -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 */