Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1c53c7bb48 | |||
| f93a8bf81e | |||
| e88899c8f0 | |||
| ef2d4d8159 | |||
| a29c57e351 | |||
| 8cbc8bc355 | |||
| e9afe9ad5c | |||
| 5572a05fbe | |||
| b8cb754e9d | |||
| dbe61507bd | |||
| ce7b23d9d0 | |||
| 8ded6ff93e | |||
| 1ef96f3488 | |||
| ee3bf37900 | |||
| 7452a06938 | |||
| fe8f9ed9c4 | |||
| 1b64f74c82 | |||
| c81949046d | |||
| 19dcb913e6 | |||
| e4b5ba1a9d | |||
| 5f1a422d83 | |||
| c5b0b3ef9d | |||
| c0a04cb876 | |||
| 3cc7cdf12f | |||
| 6b531d9967 | |||
| 4d05ac021c | |||
| d29aa84b17 | |||
| a075adc818 | |||
| 4d0e63f99c | |||
| 9e11936ec5 | |||
| a4075ec632 | |||
| dadb59c95f | |||
| e73cc6a9d8 | |||
| 10cd84e37f | |||
| e63e2040cd |
@@ -1,291 +0,0 @@
|
||||
From 96a7f7fa1953707e1eb9f0f638baf213507a5cb2 Mon Sep 17 00:00:00 2001
|
||||
From: Cole Robinson <crobinso@redhat.com>
|
||||
Date: Tue, 23 Sep 2014 11:35:57 -0400
|
||||
Subject: [PATCH] qemu_command: Split qemuBuildCpuArgStr
|
||||
|
||||
Move the CPU mode/model handling to its own function. This is just
|
||||
code movement and re-indentation.
|
||||
|
||||
(cherry picked from commit e1d872dc77c80d43036f928f83f560f2e9286148)
|
||||
---
|
||||
src/qemu/qemu_command.c | 226 ++++++++++++++++++++++++++----------------------
|
||||
1 file changed, 122 insertions(+), 104 deletions(-)
|
||||
|
||||
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
||||
index eb72451..db5ea35 100644
|
||||
--- a/src/qemu/qemu_command.c
|
||||
+++ b/src/qemu/qemu_command.c
|
||||
@@ -6140,139 +6140,162 @@ qemuBuildClockArgStr(virDomainClockDefPtr def)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
-
|
||||
static int
|
||||
-qemuBuildCpuArgStr(virQEMUDriverPtr driver,
|
||||
- const virDomainDef *def,
|
||||
- const char *emulator,
|
||||
- virQEMUCapsPtr qemuCaps,
|
||||
- virArch hostarch,
|
||||
- char **opt,
|
||||
- bool *hasHwVirt,
|
||||
- bool migrating)
|
||||
+qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||
+ const virDomainDef *def,
|
||||
+ virBufferPtr buf,
|
||||
+ virQEMUCapsPtr qemuCaps,
|
||||
+ bool *hasHwVirt,
|
||||
+ bool migrating)
|
||||
{
|
||||
+ int ret = -1;
|
||||
+ size_t i;
|
||||
virCPUDefPtr host = NULL;
|
||||
virCPUDefPtr guest = NULL;
|
||||
virCPUDefPtr cpu = NULL;
|
||||
size_t ncpus = 0;
|
||||
char **cpus = NULL;
|
||||
- const char *default_model;
|
||||
virCPUDataPtr data = NULL;
|
||||
- bool have_cpu = false;
|
||||
char *compare_msg = NULL;
|
||||
- int ret = -1;
|
||||
- virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
- size_t i;
|
||||
+ virCPUCompareResult cmp;
|
||||
+ const char *preferred;
|
||||
virCapsPtr caps = NULL;
|
||||
|
||||
- *hasHwVirt = false;
|
||||
-
|
||||
if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
|
||||
goto cleanup;
|
||||
|
||||
host = caps->host.cpu;
|
||||
|
||||
- if (def->os.arch == VIR_ARCH_I686)
|
||||
- default_model = "qemu32";
|
||||
- else
|
||||
- default_model = "qemu64";
|
||||
+ if (!host ||
|
||||
+ !host->model ||
|
||||
+ (ncpus = virQEMUCapsGetCPUDefinitions(qemuCaps, &cpus)) == 0) {
|
||||
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
+ _("CPU specification not supported by hypervisor"));
|
||||
+ goto cleanup;
|
||||
+ }
|
||||
|
||||
- if (def->cpu &&
|
||||
- (def->cpu->mode != VIR_CPU_MODE_CUSTOM || def->cpu->model)) {
|
||||
- virCPUCompareResult cmp;
|
||||
- const char *preferred;
|
||||
+ if (!(cpu = virCPUDefCopy(def->cpu)))
|
||||
+ goto cleanup;
|
||||
+
|
||||
+ if (cpu->mode != VIR_CPU_MODE_CUSTOM &&
|
||||
+ !migrating &&
|
||||
+ cpuUpdate(cpu, host) < 0)
|
||||
+ goto cleanup;
|
||||
|
||||
- if (!host ||
|
||||
- !host->model ||
|
||||
- (ncpus = virQEMUCapsGetCPUDefinitions(qemuCaps, &cpus)) == 0) {
|
||||
+ cmp = cpuGuestData(host, cpu, &data, &compare_msg);
|
||||
+ switch (cmp) {
|
||||
+ case VIR_CPU_COMPARE_INCOMPATIBLE:
|
||||
+ if (compare_msg) {
|
||||
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
+ _("guest and host CPU are not compatible: %s"),
|
||||
+ compare_msg);
|
||||
+ } else {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
- _("CPU specification not supported by hypervisor"));
|
||||
- goto cleanup;
|
||||
+ _("guest CPU is not compatible with host CPU"));
|
||||
}
|
||||
+ /* fall through */
|
||||
+ case VIR_CPU_COMPARE_ERROR:
|
||||
+ goto cleanup;
|
||||
|
||||
- if (!(cpu = virCPUDefCopy(def->cpu)))
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ /* Only 'svm' requires --enable-nesting. The nested
|
||||
+ * 'vmx' patches now simply hook off the CPU features
|
||||
+ */
|
||||
+ if (def->os.arch == VIR_ARCH_X86_64 ||
|
||||
+ def->os.arch == VIR_ARCH_I686) {
|
||||
+ int hasSVM = cpuHasFeature(data, "svm");
|
||||
+ if (hasSVM < 0)
|
||||
goto cleanup;
|
||||
+ *hasHwVirt = hasSVM > 0 ? true : false;
|
||||
+ }
|
||||
|
||||
- if (cpu->mode != VIR_CPU_MODE_CUSTOM &&
|
||||
- !migrating &&
|
||||
- cpuUpdate(cpu, host) < 0)
|
||||
+ if (cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH) {
|
||||
+ const char *mode = virCPUModeTypeToString(cpu->mode);
|
||||
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_HOST)) {
|
||||
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
+ _("CPU mode '%s' is not supported by QEMU"
|
||||
+ " binary"), mode);
|
||||
+ goto cleanup;
|
||||
+ }
|
||||
+ if (def->virtType != VIR_DOMAIN_VIRT_KVM) {
|
||||
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
+ _("CPU mode '%s' is only supported with kvm"),
|
||||
+ mode);
|
||||
+ goto cleanup;
|
||||
+ }
|
||||
+ virBufferAddLit(buf, "host");
|
||||
+ } else {
|
||||
+ if (VIR_ALLOC(guest) < 0)
|
||||
+ goto cleanup;
|
||||
+ if (VIR_STRDUP(guest->vendor_id, cpu->vendor_id) < 0)
|
||||
goto cleanup;
|
||||
|
||||
- cmp = cpuGuestData(host, cpu, &data, &compare_msg);
|
||||
- switch (cmp) {
|
||||
- case VIR_CPU_COMPARE_INCOMPATIBLE:
|
||||
- if (compare_msg) {
|
||||
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
- _("guest and host CPU are not compatible: %s"),
|
||||
- compare_msg);
|
||||
- } else {
|
||||
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
- _("guest CPU is not compatible with host CPU"));
|
||||
- }
|
||||
- /* fall through */
|
||||
- case VIR_CPU_COMPARE_ERROR:
|
||||
+ guest->arch = host->arch;
|
||||
+ if (cpu->match == VIR_CPU_MATCH_MINIMUM)
|
||||
+ preferred = host->model;
|
||||
+ else
|
||||
+ preferred = cpu->model;
|
||||
+
|
||||
+ guest->type = VIR_CPU_TYPE_GUEST;
|
||||
+ guest->fallback = cpu->fallback;
|
||||
+ if (cpuDecode(guest, data, (const char **)cpus, ncpus, preferred) < 0)
|
||||
goto cleanup;
|
||||
|
||||
- default:
|
||||
- break;
|
||||
- }
|
||||
+ virBufferAdd(buf, guest->model, -1);
|
||||
+ if (guest->vendor_id)
|
||||
+ virBufferAsprintf(buf, ",vendor=%s", guest->vendor_id);
|
||||
+ for (i = 0; i < guest->nfeatures; i++) {
|
||||
+ char sign;
|
||||
+ if (guest->features[i].policy == VIR_CPU_FEATURE_DISABLE)
|
||||
+ sign = '-';
|
||||
+ else
|
||||
+ sign = '+';
|
||||
|
||||
- /* Only 'svm' requires --enable-nesting. The nested
|
||||
- * 'vmx' patches now simply hook off the CPU features
|
||||
- */
|
||||
- if (def->os.arch == VIR_ARCH_X86_64 ||
|
||||
- def->os.arch == VIR_ARCH_I686) {
|
||||
- int hasSVM = cpuHasFeature(data, "svm");
|
||||
- if (hasSVM < 0)
|
||||
- goto cleanup;
|
||||
- *hasHwVirt = hasSVM > 0 ? true : false;
|
||||
+ virBufferAsprintf(buf, ",%c%s", sign, guest->features[i].name);
|
||||
}
|
||||
+ }
|
||||
|
||||
- if (cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH) {
|
||||
- const char *mode = virCPUModeTypeToString(cpu->mode);
|
||||
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_HOST)) {
|
||||
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
- _("CPU mode '%s' is not supported by QEMU"
|
||||
- " binary"), mode);
|
||||
- goto cleanup;
|
||||
- }
|
||||
- if (def->virtType != VIR_DOMAIN_VIRT_KVM) {
|
||||
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
- _("CPU mode '%s' is only supported with kvm"),
|
||||
- mode);
|
||||
- goto cleanup;
|
||||
- }
|
||||
- virBufferAddLit(&buf, "host");
|
||||
- } else {
|
||||
- if (VIR_ALLOC(guest) < 0)
|
||||
- goto cleanup;
|
||||
- if (VIR_STRDUP(guest->vendor_id, cpu->vendor_id) < 0)
|
||||
- goto cleanup;
|
||||
+ ret = 0;
|
||||
+cleanup:
|
||||
+ virObjectUnref(caps);
|
||||
+ VIR_FREE(compare_msg);
|
||||
+ cpuDataFree(data);
|
||||
+ virCPUDefFree(guest);
|
||||
+ virCPUDefFree(cpu);
|
||||
+ return ret;
|
||||
+}
|
||||
|
||||
- guest->arch = host->arch;
|
||||
- if (cpu->match == VIR_CPU_MATCH_MINIMUM)
|
||||
- preferred = host->model;
|
||||
- else
|
||||
- preferred = cpu->model;
|
||||
+static int
|
||||
+qemuBuildCpuArgStr(virQEMUDriverPtr driver,
|
||||
+ const virDomainDef *def,
|
||||
+ const char *emulator,
|
||||
+ virQEMUCapsPtr qemuCaps,
|
||||
+ virArch hostarch,
|
||||
+ char **opt,
|
||||
+ bool *hasHwVirt,
|
||||
+ bool migrating)
|
||||
+{
|
||||
+ const char *default_model;
|
||||
+ bool have_cpu = false;
|
||||
+ int ret = -1;
|
||||
+ virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
+ size_t i;
|
||||
|
||||
- guest->type = VIR_CPU_TYPE_GUEST;
|
||||
- guest->fallback = cpu->fallback;
|
||||
- if (cpuDecode(guest, data, (const char **)cpus, ncpus, preferred) < 0)
|
||||
- goto cleanup;
|
||||
+ *hasHwVirt = false;
|
||||
|
||||
- virBufferAdd(&buf, guest->model, -1);
|
||||
- if (guest->vendor_id)
|
||||
- virBufferAsprintf(&buf, ",vendor=%s", guest->vendor_id);
|
||||
- for (i = 0; i < guest->nfeatures; i++) {
|
||||
- char sign;
|
||||
- if (guest->features[i].policy == VIR_CPU_FEATURE_DISABLE)
|
||||
- sign = '-';
|
||||
- else
|
||||
- sign = '+';
|
||||
+ if (def->os.arch == VIR_ARCH_I686)
|
||||
+ default_model = "qemu32";
|
||||
+ else
|
||||
+ default_model = "qemu64";
|
||||
|
||||
- virBufferAsprintf(&buf, ",%c%s", sign, guest->features[i].name);
|
||||
- }
|
||||
- }
|
||||
+ if (def->cpu &&
|
||||
+ (def->cpu->mode != VIR_CPU_MODE_CUSTOM || def->cpu->model)) {
|
||||
+ if (qemuBuildCpuModelArgStr(driver, def, &buf, qemuCaps,
|
||||
+ hasHwVirt, migrating) < 0)
|
||||
+ goto cleanup;
|
||||
have_cpu = true;
|
||||
} else {
|
||||
/*
|
||||
@@ -6398,11 +6421,6 @@ qemuBuildCpuArgStr(virQEMUDriverPtr driver,
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
- VIR_FREE(compare_msg);
|
||||
- cpuDataFree(data);
|
||||
- virCPUDefFree(guest);
|
||||
- virCPUDefFree(cpu);
|
||||
- virObjectUnref(caps);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1,536 +0,0 @@
|
||||
From bbdbfbfc03494f5cbba4ee869149cca37c1fd53c Mon Sep 17 00:00:00 2001
|
||||
From: Cole Robinson <crobinso@redhat.com>
|
||||
Date: Tue, 23 Sep 2014 13:07:09 -0400
|
||||
Subject: [PATCH] qemu: Don't compare CPU against host for TCG
|
||||
|
||||
Right now when building the qemu command line, we try to do various
|
||||
unconditional validations of the guest CPU against the host CPU. However
|
||||
this checks are overly applied. The only time we should use the checks
|
||||
are:
|
||||
|
||||
- The user requests host-model/host-passthrough, or
|
||||
|
||||
- When KVM is requsted. CPU features requested in TCG mode are always
|
||||
emulated by qemu and are independent of the host CPU, so no host CPU
|
||||
checks should be performed.
|
||||
|
||||
Right now if trying to specify a CPU for arm on an x86 host, it attempts
|
||||
to do non-sensical validation and falls over.
|
||||
|
||||
Switch all the test cases that were intending to test CPU validation to
|
||||
use KVM, so they continue to test the intended code.
|
||||
|
||||
Amend some aarch64 XML tests with a CPU model, to ensure things work
|
||||
correctly.
|
||||
|
||||
(cherry picked from commit cf7fce8f2fd1c930f357fd4ff93ac35f38eb30c6)
|
||||
---
|
||||
src/qemu/qemu_command.c | 68 +++++++++++++---------
|
||||
.../qemuxml2argv-aarch64-virt-default-nic.args | 3 +-
|
||||
.../qemuxml2argv-aarch64-virt-default-nic.xml | 3 +
|
||||
.../qemuxml2argv-aarch64-virt-virtio.args | 3 +-
|
||||
.../qemuxml2argv-aarch64-virt-virtio.xml | 3 +
|
||||
.../qemuxml2argvdata/qemuxml2argv-cpu-exact1.args | 2 +-
|
||||
tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.xml | 4 +-
|
||||
.../qemuxml2argv-cpu-exact2-nofallback.args | 2 +-
|
||||
.../qemuxml2argv-cpu-exact2-nofallback.xml | 4 +-
|
||||
.../qemuxml2argvdata/qemuxml2argv-cpu-exact2.args | 2 +-
|
||||
tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.xml | 4 +-
|
||||
.../qemuxml2argv-cpu-fallback.args | 2 +-
|
||||
.../qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml | 4 +-
|
||||
.../qemuxml2argv-cpu-minimum1.args | 2 +-
|
||||
.../qemuxml2argvdata/qemuxml2argv-cpu-minimum1.xml | 4 +-
|
||||
.../qemuxml2argv-cpu-minimum2.args | 2 +-
|
||||
.../qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml | 4 +-
|
||||
.../qemuxml2argv-cpu-nofallback.xml | 2 +-
|
||||
.../qemuxml2argvdata/qemuxml2argv-cpu-strict1.args | 2 +-
|
||||
.../qemuxml2argvdata/qemuxml2argv-cpu-strict1.xml | 4 +-
|
||||
.../qemuxml2argv-graphics-spice-timeout.args | 2 +-
|
||||
.../qemuxml2argv-graphics-spice-timeout.xml | 4 +-
|
||||
.../qemuxml2argv-pseries-cpu-exact.args | 4 +-
|
||||
tests/qemuxml2argvtest.c | 21 +++----
|
||||
.../qemuxml2xmlout-graphics-spice-timeout.xml | 4 +-
|
||||
25 files changed, 90 insertions(+), 69 deletions(-)
|
||||
|
||||
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
||||
index db5ea35..cd34445 100644
|
||||
--- a/src/qemu/qemu_command.c
|
||||
+++ b/src/qemu/qemu_command.c
|
||||
@@ -6160,6 +6160,8 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||
virCPUCompareResult cmp;
|
||||
const char *preferred;
|
||||
virCapsPtr caps = NULL;
|
||||
+ bool compareAgainstHost = (def->virtType == VIR_DOMAIN_VIRT_KVM ||
|
||||
+ def->cpu->mode != VIR_CPU_MODE_CUSTOM);
|
||||
|
||||
if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
|
||||
goto cleanup;
|
||||
@@ -6182,30 +6184,33 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||
cpuUpdate(cpu, host) < 0)
|
||||
goto cleanup;
|
||||
|
||||
- cmp = cpuGuestData(host, cpu, &data, &compare_msg);
|
||||
- switch (cmp) {
|
||||
- case VIR_CPU_COMPARE_INCOMPATIBLE:
|
||||
- if (compare_msg) {
|
||||
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
- _("guest and host CPU are not compatible: %s"),
|
||||
- compare_msg);
|
||||
- } else {
|
||||
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
- _("guest CPU is not compatible with host CPU"));
|
||||
- }
|
||||
- /* fall through */
|
||||
- case VIR_CPU_COMPARE_ERROR:
|
||||
- goto cleanup;
|
||||
+ /* For non-KVM, CPU features are emulated, so host compat doesn't matter */
|
||||
+ if (compareAgainstHost) {
|
||||
+ cmp = cpuGuestData(host, cpu, &data, &compare_msg);
|
||||
+ switch (cmp) {
|
||||
+ case VIR_CPU_COMPARE_INCOMPATIBLE:
|
||||
+ if (compare_msg) {
|
||||
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
+ _("guest and host CPU are not compatible: %s"),
|
||||
+ compare_msg);
|
||||
+ } else {
|
||||
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
+ _("guest CPU is not compatible with host CPU"));
|
||||
+ }
|
||||
+ /* fall through */
|
||||
+ case VIR_CPU_COMPARE_ERROR:
|
||||
+ goto cleanup;
|
||||
|
||||
- default:
|
||||
- break;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Only 'svm' requires --enable-nesting. The nested
|
||||
* 'vmx' patches now simply hook off the CPU features
|
||||
*/
|
||||
- if (def->os.arch == VIR_ARCH_X86_64 ||
|
||||
- def->os.arch == VIR_ARCH_I686) {
|
||||
+ if ((def->os.arch == VIR_ARCH_X86_64 || def->os.arch == VIR_ARCH_I686) &&
|
||||
+ compareAgainstHost) {
|
||||
int hasSVM = cpuHasFeature(data, "svm");
|
||||
if (hasSVM < 0)
|
||||
goto cleanup;
|
||||
@@ -6233,16 +6238,23 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||
if (VIR_STRDUP(guest->vendor_id, cpu->vendor_id) < 0)
|
||||
goto cleanup;
|
||||
|
||||
- guest->arch = host->arch;
|
||||
- if (cpu->match == VIR_CPU_MATCH_MINIMUM)
|
||||
- preferred = host->model;
|
||||
- else
|
||||
- preferred = cpu->model;
|
||||
+ if (compareAgainstHost) {
|
||||
+ guest->arch = host->arch;
|
||||
+ if (cpu->match == VIR_CPU_MATCH_MINIMUM)
|
||||
+ preferred = host->model;
|
||||
+ else
|
||||
+ preferred = cpu->model;
|
||||
|
||||
- guest->type = VIR_CPU_TYPE_GUEST;
|
||||
- guest->fallback = cpu->fallback;
|
||||
- if (cpuDecode(guest, data, (const char **)cpus, ncpus, preferred) < 0)
|
||||
- goto cleanup;
|
||||
+ guest->type = VIR_CPU_TYPE_GUEST;
|
||||
+ guest->fallback = cpu->fallback;
|
||||
+ if (cpuDecode(guest, data,
|
||||
+ (const char **)cpus, ncpus, preferred) < 0)
|
||||
+ goto cleanup;
|
||||
+ } else {
|
||||
+ guest->arch = def->os.arch;
|
||||
+ if (VIR_STRDUP(guest->model, cpu->model) < 0)
|
||||
+ goto cleanup;
|
||||
+ }
|
||||
|
||||
virBufferAdd(buf, guest->model, -1);
|
||||
if (guest->vendor_id)
|
||||
@@ -6259,7 +6271,7 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
-cleanup:
|
||||
+ cleanup:
|
||||
virObjectUnref(caps);
|
||||
VIR_FREE(compare_msg);
|
||||
cpuDataFree(data);
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
|
||||
index d4d403b..8cb57c5 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
|
||||
@@ -1,5 +1,6 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||
-/usr/bin/qemu-system-aarch64 -S -M virt -m 1024 -smp 1 -nographic \
|
||||
+/usr/bin/qemu-system-aarch64 -S -M virt -cpu cortex-a53 \
|
||||
+-m 1024 -smp 1 -nographic \
|
||||
-nodefconfig -nodefaults -monitor unix:/tmp/test-monitor,server,nowait \
|
||||
-boot c -kernel /aarch64.kernel -initrd /aarch64.initrd -append console=ttyAMA0 \
|
||||
-usb -device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml
|
||||
index 868de94..3a6f098 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.xml
|
||||
@@ -7,6 +7,9 @@
|
||||
<features>
|
||||
<acpi/>
|
||||
</features>
|
||||
+ <cpu match='exact'>
|
||||
+ <model>cortex-a53</model>
|
||||
+ </cpu>
|
||||
<os>
|
||||
<type arch="aarch64" machine="virt">hvm</type>
|
||||
<kernel>/aarch64.kernel</kernel>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args
|
||||
index afd6e41..05f3629 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args
|
||||
@@ -1,5 +1,6 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||
-/usr/bin/qemu-system-aarch64 -S -M virt -m 1024 -smp 1 -nographic \
|
||||
+/usr/bin/qemu-system-aarch64 -S -M virt -cpu cortex-a53 \
|
||||
+-m 1024 -smp 1 -nographic \
|
||||
-nodefconfig -nodefaults -monitor unix:/tmp/test-monitor,server,nowait \
|
||||
-boot c -kernel /aarch64.kernel -initrd /aarch64.initrd -append \
|
||||
'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.xml
|
||||
index 184b62c..ad34615 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.xml
|
||||
@@ -16,6 +16,9 @@
|
||||
<apic/>
|
||||
<pae/>
|
||||
</features>
|
||||
+ <cpu match='exact'>
|
||||
+ <model>cortex-a53</model>
|
||||
+ </cpu>
|
||||
<clock offset="utc"/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args
|
||||
index 76c2c48..0a58616 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args
|
||||
@@ -1,5 +1,5 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||
-/usr/bin/qemu -S -M pc \
|
||||
+/usr/bin/qemu-kvm -S -M pc \
|
||||
-cpu qemu64,-svm,-lm,-nx,-syscall,-clflush,-pse36,-mca -m 214 -smp 6 \
|
||||
-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -usb -net \
|
||||
none -serial none -parallel none
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.xml
|
||||
index ddd9d5a..1d1e815 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<domain type='qemu'>
|
||||
+<domain type='kvm'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219100</memory>
|
||||
@@ -23,6 +23,6 @@
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
- <emulator>/usr/bin/qemu</emulator>
|
||||
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||
</devices>
|
||||
</domain>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args
|
||||
index 0e37379..e46527b 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args
|
||||
@@ -1,5 +1,5 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||
-/usr/bin/qemu -S -M pc \
|
||||
+/usr/bin/qemu-kvm -S -M pc \
|
||||
-cpu core2duo,+lahf_lm,+3dnowext,+xtpr,+ds_cpl,+tm,+ht,+ds,-nx -m 214 -smp 6 \
|
||||
-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -usb -net \
|
||||
none -serial none -parallel none
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.xml
|
||||
index de4c8d2..6b9b7d4 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<domain type='qemu'>
|
||||
+<domain type='kvm'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219100</memory>
|
||||
@@ -30,6 +30,6 @@
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
- <emulator>/usr/bin/qemu</emulator>
|
||||
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||
</devices>
|
||||
</domain>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args
|
||||
index 0e37379..e46527b 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args
|
||||
@@ -1,5 +1,5 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||
-/usr/bin/qemu -S -M pc \
|
||||
+/usr/bin/qemu-kvm -S -M pc \
|
||||
-cpu core2duo,+lahf_lm,+3dnowext,+xtpr,+ds_cpl,+tm,+ht,+ds,-nx -m 214 -smp 6 \
|
||||
-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -usb -net \
|
||||
none -serial none -parallel none
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.xml
|
||||
index e027e6f..eaea564 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<domain type='qemu'>
|
||||
+<domain type='kvm'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219100</memory>
|
||||
@@ -30,6 +30,6 @@
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
- <emulator>/usr/bin/qemu</emulator>
|
||||
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||
</devices>
|
||||
</domain>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args
|
||||
index 4ee8391..ead561f 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args
|
||||
@@ -3,7 +3,7 @@ PATH=/bin \
|
||||
HOME=/home/test \
|
||||
USER=test \
|
||||
LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||
-/usr/bin/qemu \
|
||||
+/usr/bin/qemu-kvm \
|
||||
-S \
|
||||
-M pc \
|
||||
-cpu Penryn,-sse4.1 \
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml
|
||||
index 6125f41..85642e9 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<domain type='qemu'>
|
||||
+<domain type='kvm'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219100</memory>
|
||||
@@ -20,6 +20,6 @@
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
- <emulator>/usr/bin/qemu</emulator>
|
||||
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||
</devices>
|
||||
</domain>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args
|
||||
index 0630ef4..d8207e7 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args
|
||||
@@ -1,5 +1,5 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||
-/usr/bin/qemu -S -M pc \
|
||||
+/usr/bin/qemu-kvm -S -M pc \
|
||||
-cpu core2duo,+lahf_lm,+xtpr,+cx16,+tm2,+est,+vmx,+ds_cpl,+pbe,+tm,+ht,+ss,\
|
||||
+acpi,+ds -m 214 -smp 6 -nographic -monitor unix:/tmp/test-monitor,server,\
|
||||
nowait -no-acpi -boot n -usb -net none -serial none -parallel none
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.xml
|
||||
index 4ba5d0b..5879d35 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<domain type='qemu'>
|
||||
+<domain type='kvm'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219100</memory>
|
||||
@@ -16,6 +16,6 @@
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
- <emulator>/usr/bin/qemu</emulator>
|
||||
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||
</devices>
|
||||
</domain>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args
|
||||
index 830994f..17ba256 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args
|
||||
@@ -1,5 +1,5 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||
-/usr/bin/qemu -S -M pc \
|
||||
+/usr/bin/qemu-kvm -S -M pc \
|
||||
-cpu core2duo,+lahf_lm,+xtpr,+cx16,+tm2,+est,+vmx,+ds_cpl,+pbe,+tm,+ht,+ss,\
|
||||
+acpi,+ds,-lm,-nx,-syscall -m 214 -smp 6 -nographic -monitor \
|
||||
unix:/tmp/test-monitor,server,nowait -no-acpi -boot n -usb -net none -serial none \
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml
|
||||
index c43bf4f..b8bbf25 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<domain type='qemu'>
|
||||
+<domain type='kvm'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219100</memory>
|
||||
@@ -20,6 +20,6 @@
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
- <emulator>/usr/bin/qemu</emulator>
|
||||
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||
</devices>
|
||||
</domain>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-nofallback.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-nofallback.xml
|
||||
index 4ae0be8..abb0e9c 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-nofallback.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-nofallback.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<domain type='qemu'>
|
||||
+<domain type='kvm'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219100</memory>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args
|
||||
index 8b545a7..c500ef7 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args
|
||||
@@ -1,5 +1,5 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
|
||||
-/usr/bin/qemu -S -M pc \
|
||||
+/usr/bin/qemu-kvm -S -M pc \
|
||||
-cpu core2duo,+lahf_lm,+3dnowext,+xtpr,+est,+vmx,+ds_cpl,+tm,+ht,+acpi,+ds,-nx \
|
||||
-m 214 -smp 6 -nographic -monitor unix:/tmp/test-monitor,server,nowait \
|
||||
-no-acpi -boot n -usb -net none -serial none -parallel none
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.xml
|
||||
index 935f46f..a9fc9c5 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<domain type='qemu'>
|
||||
+<domain type='kvm'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219100</memory>
|
||||
@@ -33,6 +33,6 @@
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
- <emulator>/usr/bin/qemu</emulator>
|
||||
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||
</devices>
|
||||
</domain>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.args b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.args
|
||||
index 48744b2..8b5d9ee 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.args
|
||||
@@ -1,5 +1,5 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=spice \
|
||||
-/usr/bin/qemu -S -M pc -cpu core2duo,+lahf_lm,+xtpr,+cx16,+tm2,\
|
||||
+/usr/bin/qemu-kvm -S -M pc -cpu core2duo,+lahf_lm,+xtpr,+cx16,+tm2,\
|
||||
+est,+vmx,+ds_cpl,+pbe,+tm,+ht,+ss,+acpi,+ds \
|
||||
-m 1024 -smp 2 -nodefaults -monitor unix:/tmp/test-monitor,server,nowait \
|
||||
-boot dc -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 \
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.xml
|
||||
index e6ecbed..3ed864c 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.xml
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-timeout.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<domain type='qemu'>
|
||||
+<domain type='kvm'>
|
||||
<name>f14</name>
|
||||
<uuid>553effab-b5e1-2d80-dfe3-da4344826c43</uuid>
|
||||
<memory unit='KiB'>1048576</memory>
|
||||
@@ -38,7 +38,7 @@
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>restart</on_crash>
|
||||
<devices>
|
||||
- <emulator>/usr/bin/qemu</emulator>
|
||||
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||
<disk type='file' device='disk'>
|
||||
<driver name='qemu' type='qcow2'/>
|
||||
<source file='/var/lib/libvirt/images/f14.img'/>
|
||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args
|
||||
index 1e09680..9927294 100644
|
||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args
|
||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args
|
||||
@@ -1,6 +1,6 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test \
|
||||
-/usr/bin/qemu-system-ppc64 -S -M pseries -cpu POWER7_v2.3 -m 512 -smp 1 -nographic \
|
||||
--nodefconfig -nodefaults \
|
||||
+QEMU_AUDIO_DRV=none /usr/bin/qemu-system-ppc64 -S -M pseries -cpu POWER7_v2.3 \
|
||||
+-m 512 -smp 1 -nographic -nodefconfig -nodefaults \
|
||||
-chardev socket,id=charmonitor,path=/tmp/test-monitor,server,nowait \
|
||||
-mon chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -usb \
|
||||
-chardev pty,id=charserial0 \
|
||||
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
|
||||
index b380fd8..483ca90 100644
|
||||
--- a/tests/qemuxml2argvtest.c
|
||||
+++ b/tests/qemuxml2argvtest.c
|
||||
@@ -933,7 +933,7 @@ mymain(void)
|
||||
QEMU_CAPS_DEVICE, QEMU_CAPS_SPICE,
|
||||
QEMU_CAPS_DEVICE_QXL);
|
||||
DO_TEST("graphics-spice-timeout",
|
||||
- QEMU_CAPS_DRIVE,
|
||||
+ QEMU_CAPS_KVM, QEMU_CAPS_DRIVE,
|
||||
QEMU_CAPS_VGA, QEMU_CAPS_VGA_QXL,
|
||||
QEMU_CAPS_DEVICE, QEMU_CAPS_SPICE,
|
||||
QEMU_CAPS_DEVICE_QXL_VGA);
|
||||
@@ -1208,14 +1208,14 @@ mymain(void)
|
||||
DO_TEST("cpu-topology1", QEMU_CAPS_SMP_TOPOLOGY);
|
||||
DO_TEST("cpu-topology2", QEMU_CAPS_SMP_TOPOLOGY);
|
||||
DO_TEST("cpu-topology3", NONE);
|
||||
- DO_TEST("cpu-minimum1", NONE);
|
||||
- DO_TEST("cpu-minimum2", NONE);
|
||||
- DO_TEST("cpu-exact1", NONE);
|
||||
- DO_TEST("cpu-exact2", NONE);
|
||||
- DO_TEST("cpu-exact2-nofallback", NONE);
|
||||
- DO_TEST("cpu-fallback", NONE);
|
||||
- DO_TEST_FAILURE("cpu-nofallback", NONE);
|
||||
- DO_TEST("cpu-strict1", NONE);
|
||||
+ DO_TEST("cpu-minimum1", QEMU_CAPS_KVM);
|
||||
+ DO_TEST("cpu-minimum2", QEMU_CAPS_KVM);
|
||||
+ DO_TEST("cpu-exact1", QEMU_CAPS_KVM);
|
||||
+ DO_TEST("cpu-exact2", QEMU_CAPS_KVM);
|
||||
+ DO_TEST("cpu-exact2-nofallback", QEMU_CAPS_KVM);
|
||||
+ DO_TEST("cpu-fallback", QEMU_CAPS_KVM);
|
||||
+ DO_TEST_FAILURE("cpu-nofallback", QEMU_CAPS_KVM);
|
||||
+ DO_TEST("cpu-strict1", QEMU_CAPS_KVM);
|
||||
DO_TEST("cpu-numa1", NONE);
|
||||
DO_TEST("cpu-numa2", QEMU_CAPS_SMP_TOPOLOGY);
|
||||
DO_TEST_PARSE_ERROR("cpu-numa3", NONE);
|
||||
@@ -1303,7 +1303,8 @@ mymain(void)
|
||||
DO_TEST("pseries-usb-kbd", QEMU_CAPS_PCI_OHCI,
|
||||
QEMU_CAPS_DEVICE_USB_KBD, QEMU_CAPS_CHARDEV,
|
||||
QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG);
|
||||
- DO_TEST_FAILURE("pseries-cpu-exact", QEMU_CAPS_CHARDEV, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG);
|
||||
+ DO_TEST("pseries-cpu-exact", QEMU_CAPS_CHARDEV, QEMU_CAPS_DEVICE,
|
||||
+ QEMU_CAPS_NODEFCONFIG);
|
||||
DO_TEST("disk-ide-drive-split",
|
||||
QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_IDE_CD);
|
||||
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
|
||||
index 44c4cf7..73ebcab 100644
|
||||
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
|
||||
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
-<domain type='qemu'>
|
||||
+<domain type='kvm'>
|
||||
<name>f14</name>
|
||||
<uuid>553effab-b5e1-2d80-dfe3-da4344826c43</uuid>
|
||||
<memory unit='KiB'>1048576</memory>
|
||||
@@ -38,7 +38,7 @@
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>restart</on_crash>
|
||||
<devices>
|
||||
- <emulator>/usr/bin/qemu</emulator>
|
||||
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||
<disk type='file' device='disk'>
|
||||
<driver name='qemu' type='qcow2'/>
|
||||
<source file='/var/lib/libvirt/images/f14.img'/>
|
||||
@@ -1,81 +0,0 @@
|
||||
From 1c20d4a0a608d65d02953b360c6f10397d3c4069 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Privoznik <mprivozn@redhat.com>
|
||||
Date: Tue, 7 Oct 2014 16:22:17 +0200
|
||||
Subject: [PATCH] security_selinux: Don't relabel /dev/net/tun
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1147057
|
||||
|
||||
The code for relabelling the TAP FD is there due to a race. When
|
||||
libvirt creates a /dev/tapN device it's labeled as
|
||||
'system_u:object_r:device_t:s0' by default. Later, when
|
||||
udev/systemd reacts to this device, it's relabelled to the
|
||||
expected label 'system_u:object_r:tun_tap_device_t:s0'. Hence, we
|
||||
have a code that relabels the device, to cut the race down. For
|
||||
more info see ae368ebfcc4.
|
||||
|
||||
But the problem is, the relabel function is called on all TUN/TAP
|
||||
devices. Yes, on /dev/net/tun too. This is however a special kind
|
||||
of device - other processes uses it too. We shouldn't touch it's
|
||||
label then.
|
||||
|
||||
Ideally, there would an API in SELinux that would label just the
|
||||
passed FD and not the underlying path. That way, we wouldn't need
|
||||
to care as we would be not labeling /dev/net/tun but the FD
|
||||
passed to the domain. Unfortunately, there's no such API so we
|
||||
have to workaround until then.
|
||||
|
||||
Tested-by: Richard W.M. Jones <rjones@redhat.com>
|
||||
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
(cherry picked from commit ebc05263960f41065fa7d882959ea754b9281ab1)
|
||||
---
|
||||
src/security/security_selinux.c | 23 +++++++++++++++++++++--
|
||||
1 file changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c
|
||||
index b7c1015..352f1ab 100644
|
||||
--- a/src/security/security_selinux.c
|
||||
+++ b/src/security/security_selinux.c
|
||||
@@ -2352,7 +2352,7 @@ virSecuritySELinuxSetTapFDLabel(virSecurityManagerPtr mgr,
|
||||
struct stat buf;
|
||||
security_context_t fcon = NULL;
|
||||
virSecurityLabelDefPtr secdef;
|
||||
- char *str = NULL;
|
||||
+ char *str = NULL, *proc = NULL, *fd_path = NULL;
|
||||
int rc = -1;
|
||||
|
||||
secdef = virDomainDefGetSecurityLabelDef(def, SECURITY_SELINUX_NAME);
|
||||
@@ -2370,7 +2370,24 @@ virSecuritySELinuxSetTapFDLabel(virSecurityManagerPtr mgr,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
- if (getContext(mgr, "/dev/tap.*", buf.st_mode, &fcon) < 0) {
|
||||
+ /* Label /dev/tap.* devices only. Leave /dev/net/tun alone! */
|
||||
+ if (virAsprintf(&proc, "/proc/self/fd/%d", fd) == -1)
|
||||
+ goto cleanup;
|
||||
+
|
||||
+ if (virFileResolveLink(proc, &fd_path) < 0) {
|
||||
+ virReportSystemError(errno,
|
||||
+ _("Unable to resolve link: %s"), proc);
|
||||
+ goto cleanup;
|
||||
+ }
|
||||
+
|
||||
+ if (!STRPREFIX(fd_path, "/dev/tap")) {
|
||||
+ VIR_DEBUG("fd=%d points to %s not setting SELinux label",
|
||||
+ fd, fd_path);
|
||||
+ rc = 0;
|
||||
+ goto cleanup;
|
||||
+ }
|
||||
+
|
||||
+ if (getContext(mgr, "/dev/tap*", buf.st_mode, &fcon) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("cannot lookup default selinux label for tap fd %d"), fd);
|
||||
goto cleanup;
|
||||
@@ -2384,6 +2401,8 @@ virSecuritySELinuxSetTapFDLabel(virSecurityManagerPtr mgr,
|
||||
|
||||
cleanup:
|
||||
freecon(fcon);
|
||||
+ VIR_FREE(fd_path);
|
||||
+ VIR_FREE(proc);
|
||||
VIR_FREE(str);
|
||||
return rc;
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
From cd1b72fdd821d1fb4d08198833ea782651760e01 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <cd1b72fdd821d1fb4d08198833ea782651760e01.1414680021.git.crobinso@redhat.com>
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Thu, 16 Oct 2014 21:28:00 +0200
|
||||
Subject: [PATCH 4/5] qemu: x86_64 is good enough for i686
|
||||
|
||||
virt-manager on Fedora sets up i686 hosts with "/usr/bin/qemu-kvm" emulator,
|
||||
which in turn unconditionally execs qemu-system-x86_64 querying capabilities
|
||||
then fails:
|
||||
|
||||
Error launching details: invalid argument: architecture from emulator 'x86_64' doesn't match given architecture 'i686'
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "/usr/share/virt-manager/virtManager/engine.py", line 748, in _show_vm_helper
|
||||
details = self._get_details_dialog(uri, vm.get_connkey())
|
||||
File "/usr/share/virt-manager/virtManager/engine.py", line 726, in _get_details_dialog
|
||||
obj = vmmDetails(conn.get_vm(connkey))
|
||||
File "/usr/share/virt-manager/virtManager/details.py", line 399, in __init__
|
||||
self.init_details()
|
||||
File "/usr/share/virt-manager/virtManager/details.py", line 784, in init_details
|
||||
domcaps = self.vm.get_domain_capabilities()
|
||||
File "/usr/share/virt-manager/virtManager/domain.py", line 518, in get_domain_capabilities
|
||||
self.get_xmlobj().os.machine, self.get_xmlobj().type)
|
||||
File "/usr/lib/python2.7/site-packages/libvirt.py", line 3492, in getDomainCapabilities
|
||||
if ret is None: raise libvirtError ('virConnectGetDomainCapabilities() failed', conn=self)
|
||||
libvirtError: invalid argument: architecture from emulator 'x86_64' doesn't match given architecture 'i686'
|
||||
|
||||
Journal:
|
||||
|
||||
Oct 16 21:08:26 goatlord.localdomain libvirtd[1530]: invalid argument: architecture from emulator 'x86_64' doesn't match given architecture 'i686'
|
||||
|
||||
(cherry picked from commit afe8f4200f6e80d2510731165dd2cdae741bd9fb)
|
||||
---
|
||||
src/qemu/qemu_driver.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
|
||||
index e873d45..d379c1f 100644
|
||||
--- a/src/qemu/qemu_driver.c
|
||||
+++ b/src/qemu/qemu_driver.c
|
||||
@@ -17572,7 +17572,8 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn,
|
||||
|
||||
arch_from_caps = virQEMUCapsGetArch(qemuCaps);
|
||||
|
||||
- if (arch_from_caps != arch) {
|
||||
+ if (arch_from_caps != arch &&
|
||||
+ (arch_from_caps != VIR_ARCH_X86_64 || arch != VIR_ARCH_I686)) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("architecture from emulator '%s' doesn't "
|
||||
"match given architecture '%s'"),
|
||||
--
|
||||
2.1.0
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
From f4d5340ba116befaa965e14537f42c2ead17d486 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <f4d5340ba116befaa965e14537f42c2ead17d486.1414680854.git.crobinso@redhat.com>
|
||||
From: Martin Kletzander <mkletzan@redhat.com>
|
||||
Date: Fri, 3 Oct 2014 18:27:01 +0200
|
||||
Subject: [PATCH] util: Prepare URI formatting for libxml2 >= 2.9.2
|
||||
|
||||
Since commit 8eb55d782a2b9afacc7938694891cc6fad7b42a5 libxml2 removes
|
||||
two slashes from the URI when there is no server part. This is fixed
|
||||
with beb7281055dbf0ed4d041022a67c6c5cfd126f25, but only if the calling
|
||||
application calls xmlSaveUri() on URI that xmlURIParse() parsed. And
|
||||
that is not the case in virURIFormat(). virURIFormat() accepts
|
||||
virURIPtr that can be created without parsing it and we do that when we
|
||||
format network storage paths for gluster for example. Even though
|
||||
virStorageSourceParseBackingURI() uses virURIParse(), it throws that data
|
||||
structure right away.
|
||||
|
||||
Since we want to format URIs as URIs and not absolute URIs or opaque
|
||||
URIs (see RFC 3986), we can specify that with a special hack thanks to
|
||||
commit beb7281055dbf0ed4d041022a67c6c5cfd126f25, by setting port to -1.
|
||||
|
||||
This fixes qemuxml2argvtest test where the disk-drive-network-gluster
|
||||
case was failing.
|
||||
|
||||
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
|
||||
(cherry picked from commit 8f17d0eaae7ee2fa3e214b79b188fc14ed5aa1eb)
|
||||
---
|
||||
src/util/viruri.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/src/util/viruri.c b/src/util/viruri.c
|
||||
index 69e7649..23d86c5 100644
|
||||
--- a/src/util/viruri.c
|
||||
+++ b/src/util/viruri.c
|
||||
@@ -254,6 +254,13 @@ virURIFormat(virURIPtr uri)
|
||||
xmluri.server = tmpserver;
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ * This helps libxml2 deal with the difference
|
||||
+ * between uri:/absolute/path and uri:///absolute/path.
|
||||
+ */
|
||||
+ if (!xmluri.server && !xmluri.port)
|
||||
+ xmluri.port = -1;
|
||||
+
|
||||
ret = (char *)xmlSaveUri(&xmluri);
|
||||
if (!ret) {
|
||||
virReportOOMError();
|
||||
--
|
||||
2.1.0
|
||||
|
||||
+258
-96
@@ -2,7 +2,7 @@
|
||||
|
||||
# This spec file assumes you are building for Fedora 13 or newer,
|
||||
# or for RHEL 5 or newer. It may need some tweaks for other distros.
|
||||
# If neither fedora nor rhel was defined, try to guess them from %{dist}
|
||||
# If neither fedora nor rhel was defined, try to guess them from dist
|
||||
%if !0%{?rhel} && !0%{?fedora}
|
||||
%{expand:%(echo "%{?dist}" | \
|
||||
sed -ne 's/^\.el\([0-9]\+\).*/%%define rhel \1/p')}
|
||||
@@ -13,13 +13,13 @@
|
||||
# Default to skipping autoreconf. Distros can change just this one line
|
||||
# (or provide a command-line override) if they backport any patches that
|
||||
# touch configure.ac or Makefile.am.
|
||||
%{!?enable_autotools:%define enable_autotools 0}
|
||||
%{!?enable_autotools:%global enable_autotools 0}
|
||||
|
||||
# A client only build will create a libvirt.so only containing
|
||||
# the generic RPC driver, and test driver and no libvirtd
|
||||
# Default to a full server + client build, but with the possibility
|
||||
# of a command-line or ~/.rpmmacros override for client-only.
|
||||
%{!?client_only:%define client_only 0}
|
||||
%{!?client_only:%global client_only 0}
|
||||
|
||||
# Now turn off server build in certain cases
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
%define with_esx 0%{!?_without_esx:1}
|
||||
%define with_hyperv 0%{!?_without_hyperv:1}
|
||||
%define with_xenapi 0%{!?_without_xenapi:1}
|
||||
%define with_parallels 0%{!?_without_parallels:1}
|
||||
%define with_vz 0%{!?_without_vz:1}
|
||||
# No test for bhyve, because it does not build on Linux
|
||||
|
||||
# Then the secondary host drivers, which run inside libvirtd
|
||||
@@ -108,7 +108,7 @@
|
||||
%define with_storage_iscsi 0%{!?_without_storage_iscsi:%{server_drivers}}
|
||||
%define with_storage_disk 0%{!?_without_storage_disk:%{server_drivers}}
|
||||
%define with_storage_mpath 0%{!?_without_storage_mpath:%{server_drivers}}
|
||||
%if 0%{?fedora} >= 16
|
||||
%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
|
||||
%define with_storage_rbd 0%{!?_without_storage_rbd:%{server_drivers}}
|
||||
%else
|
||||
%define with_storage_rbd 0
|
||||
@@ -182,6 +182,13 @@
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# librados and librbd are built only on x86_64 on rhel
|
||||
%ifnarch x86_64
|
||||
%if 0%{?rhel} >= 7
|
||||
%define with_storage_rbd 0
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# RHEL doesn't ship OpenVZ, VBox, UML, PowerHypervisor,
|
||||
# VMWare, libxenserver (xenapi), libxenlight (Xen 4.1 and newer),
|
||||
# or HyperV.
|
||||
@@ -194,7 +201,7 @@
|
||||
%define with_xenapi 0
|
||||
%define with_libxl 0
|
||||
%define with_hyperv 0
|
||||
%define with_parallels 0
|
||||
%define with_vz 0
|
||||
%endif
|
||||
|
||||
# Fedora 17 / RHEL-7 are first where we use systemd. Although earlier
|
||||
@@ -357,13 +364,15 @@
|
||||
# changes in reported warnings
|
||||
%if 0%{?rhel}
|
||||
%define enable_werror --enable-werror
|
||||
%else
|
||||
%define enable_werror --disable-werror
|
||||
%endif
|
||||
|
||||
|
||||
Summary: Library providing a simple virtualization API
|
||||
Name: libvirt
|
||||
Version: 1.2.9
|
||||
Release: 4%{?dist}%{?extra_release}
|
||||
Version: 1.2.18.4
|
||||
Release: 1%{?dist}%{?extra_release}
|
||||
License: LGPLv2+
|
||||
Group: Development/Libraries
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||
@@ -374,16 +383,6 @@ URL: http://libvirt.org/
|
||||
%endif
|
||||
Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz
|
||||
|
||||
# Fix specifying CPU for qemu aarch64
|
||||
Patch0001: 0001-qemu_command-Split-qemuBuildCpuArgStr.patch
|
||||
Patch0002: 0002-qemu-Don-t-compare-CPU-against-host-for-TCG.patch
|
||||
# Fix selinux errors with /dev/net/tun (bz #1147057)
|
||||
Patch0003: 0003-security_selinux-Don-t-relabel-dev-net-tun.patch
|
||||
# Fix creating i686 guest with x86_64 emulator (bz #1153797)
|
||||
Patch0004: 0004-qemu-x86_64-is-good-enough-for-i686.patch
|
||||
# Fix tests with latest libxml2
|
||||
Patch0005: 0005-util-Prepare-URI-formatting-for-libxml2-2.9.2.patch
|
||||
|
||||
%if %{with_libvirtd}
|
||||
Requires: libvirt-daemon = %{version}-%{release}
|
||||
%if %{with_network}
|
||||
@@ -435,6 +434,7 @@ BuildRequires: gettext-devel
|
||||
BuildRequires: libtool
|
||||
BuildRequires: /usr/bin/pod2man
|
||||
%endif
|
||||
BuildRequires: git
|
||||
BuildRequires: perl
|
||||
BuildRequires: python
|
||||
%if %{with_systemd}
|
||||
@@ -525,6 +525,8 @@ BuildRequires: cyrus-sasl-devel
|
||||
%endif
|
||||
%if %{with_polkit}
|
||||
%if 0%{?fedora} >= 20 || 0%{?rhel} >= 7
|
||||
# F22 polkit-devel doesn't pull in polkit anymore, which we need for pkcheck
|
||||
BuildRequires: polkit >= 0.112
|
||||
BuildRequires: polkit-devel >= 0.112
|
||||
%else
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 6
|
||||
@@ -573,7 +575,12 @@ BuildRequires: device-mapper-devel
|
||||
%endif
|
||||
%endif
|
||||
%if %{with_storage_rbd}
|
||||
%if 0%{?rhel} >= 7
|
||||
BuildRequires: librados2-devel
|
||||
BuildRequires: librbd1-devel
|
||||
%else
|
||||
BuildRequires: ceph-devel
|
||||
%endif
|
||||
%endif
|
||||
%if %{with_storage_gluster}
|
||||
%if 0%{?rhel} >= 6
|
||||
@@ -1180,7 +1187,6 @@ namespaces.
|
||||
Summary: Libraries, includes, etc. to compile with the libvirt library
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}-client = %{version}-%{release}
|
||||
Requires: %{name}-docs = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
|
||||
%description devel
|
||||
@@ -1205,18 +1211,45 @@ Includes the Sanlock lock manager plugin for the QEMU
|
||||
driver
|
||||
%endif
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
# Fix specifying CPU for qemu aarch64
|
||||
%patch0001 -p1
|
||||
%patch0002 -p1
|
||||
# Fix selinux errors with /dev/net/tun (bz #1147057)
|
||||
%patch0003 -p1
|
||||
# Fix creating i686 guest with x86_64 emulator (bz #1153797)
|
||||
%patch0004 -p1
|
||||
# Fix tests with latest libxml2
|
||||
%patch0005 -p1
|
||||
# Patches have to be stored in a temporary file because RPM has
|
||||
# a limit on the length of the result of any macro expansion;
|
||||
# if the string is longer, it's silently cropped
|
||||
%{lua:
|
||||
tmp = os.tmpname();
|
||||
f = io.open(tmp, "w+");
|
||||
count = 0;
|
||||
for i, p in ipairs(patches) do
|
||||
f:write(p.."\n");
|
||||
count = count + 1;
|
||||
end;
|
||||
f:close();
|
||||
print("PATCHCOUNT="..count.."\n")
|
||||
print("PATCHLIST="..tmp.."\n")
|
||||
}
|
||||
|
||||
git init -q
|
||||
git config user.name rpm-build
|
||||
git config user.email rpm-build
|
||||
git config gc.auto 0
|
||||
git add .
|
||||
git commit -q -a --author 'rpm-build <rpm-build>' \
|
||||
-m '%{name}-%{version} base'
|
||||
|
||||
COUNT=$(grep '\.patch$' $PATCHLIST | wc -l)
|
||||
if [ $COUNT -ne $PATCHCOUNT ]; then
|
||||
echo "Found $COUNT patches in $PATCHLIST, expected $PATCHCOUNT"
|
||||
exit 1
|
||||
fi
|
||||
if [ $COUNT -gt 0 ]; then
|
||||
xargs git am <$PATCHLIST || exit 1
|
||||
fi
|
||||
echo "Applied $COUNT patches"
|
||||
rm -f $PATCHLIST
|
||||
rm -rf .git
|
||||
|
||||
%build
|
||||
%if ! %{with_xen}
|
||||
@@ -1271,8 +1304,8 @@ driver
|
||||
%define _without_vmware --without-vmware
|
||||
%endif
|
||||
|
||||
%if ! %{with_parallels}
|
||||
%define _without_parallels --without-parallels
|
||||
%if ! %{with_vz}
|
||||
%define _without_vz --without-vz
|
||||
%endif
|
||||
|
||||
%if ! %{with_polkit}
|
||||
@@ -1431,6 +1464,18 @@ driver
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora}
|
||||
# Nightly firmware repo x86/OVMF
|
||||
LOADERS="/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd:/usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd"
|
||||
# Nightly firmware repo aarch64/AAVMF
|
||||
LOADERS="$LOADERS:/usr/share/edk2.git/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2.git/aarch64/vars-template-pflash.raw"
|
||||
# Fedora official x86/OVMF
|
||||
LOADERS="$LOADERS:/usr/share/edk2/ovmf/OVMF_CODE.fd:/usr/share/edk2/ovmf/OVMF_VARS.fd"
|
||||
# Fedora official aarch64/AAVMF
|
||||
LOADERS="$LOADERS:/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2/aarch64/vars-template-pflash.raw"
|
||||
%define with_loader_nvram --with-loader-nvram="$LOADERS"
|
||||
%endif
|
||||
|
||||
# place macros above and build commands below this comment
|
||||
|
||||
%if 0%{?enable_autotools}
|
||||
@@ -1454,7 +1499,7 @@ rm -f po/stamp-po
|
||||
%{?_without_esx} \
|
||||
%{?_without_hyperv} \
|
||||
%{?_without_vmware} \
|
||||
%{?_without_parallels} \
|
||||
%{?_without_vz} \
|
||||
--without-bhyve \
|
||||
%{?_without_interface} \
|
||||
%{?_without_network} \
|
||||
@@ -1492,6 +1537,7 @@ rm -f po/stamp-po
|
||||
%{with_packager_version} \
|
||||
--with-qemu-user=%{qemu_user} \
|
||||
--with-qemu-group=%{qemu_group} \
|
||||
%{?with_loader_nvram} \
|
||||
%{?enable_werror} \
|
||||
--enable-expensive-tests \
|
||||
%{init_scripts}
|
||||
@@ -1522,6 +1568,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/*/libvirt.la
|
||||
%endif
|
||||
|
||||
# Temporarily get rid of not-installed libvirt-admin.so
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt-admin.so
|
||||
|
||||
%if %{with_network}
|
||||
install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lib/libvirt/dnsmasq/
|
||||
# We don't want to install /etc/libvirt/qemu/networks in the main %files list
|
||||
@@ -1562,6 +1611,12 @@ rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu
|
||||
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf
|
||||
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc
|
||||
%endif
|
||||
%if ! %{with_libxl}
|
||||
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libxl.conf
|
||||
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.libxl
|
||||
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_libxl.aug
|
||||
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
|
||||
%endif
|
||||
%if ! %{with_uml}
|
||||
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.uml
|
||||
%endif
|
||||
@@ -1579,7 +1634,7 @@ mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
|
||||
%endif
|
||||
|
||||
%if 0%{?rhel} == 5
|
||||
rm -f $RPM_BUILD_ROOT%{_prefix}/lib/sysctl.d/libvirtd.conf
|
||||
rm -f $RPM_BUILD_ROOT%{_prefix}/lib/sysctl.d/60-libvirtd.conf
|
||||
%endif
|
||||
|
||||
%clean
|
||||
@@ -1603,9 +1658,9 @@ then
|
||||
fi
|
||||
|
||||
%if %{with_libvirtd}
|
||||
%pre daemon
|
||||
%if ! %{with_driver_modules}
|
||||
%if %{with_qemu}
|
||||
%pre daemon
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 6
|
||||
# We want soft static allocation of well-known ids, as disk images
|
||||
# are commonly shared across NFS mounts by id rather than name; see
|
||||
@@ -1619,55 +1674,23 @@ if ! getent passwd qemu >/dev/null; then
|
||||
useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%post daemon
|
||||
|
||||
%if %{with_network}
|
||||
# All newly defined networks will have a mac address for the bridge
|
||||
# auto-generated, but networks already existing at the time of upgrade
|
||||
# will not. We need to go through all the network configs, look for
|
||||
# those that don't have a mac address, and add one.
|
||||
|
||||
network_files=$( (cd %{_localstatedir}/lib/libvirt/network && \
|
||||
grep -L "mac address" *.xml; \
|
||||
cd %{_sysconfdir}/libvirt/qemu/networks && \
|
||||
grep -L "mac address" *.xml) 2>/dev/null \
|
||||
| sort -u)
|
||||
|
||||
for file in $network_files
|
||||
do
|
||||
# each file exists in either the config or state directory (or both) and
|
||||
# does not have a mac address specified in either. We add the same mac
|
||||
# address to both files (or just one, if the other isn't there)
|
||||
|
||||
mac4=`printf '%X' $(($RANDOM % 256))`
|
||||
mac5=`printf '%X' $(($RANDOM % 256))`
|
||||
mac6=`printf '%X' $(($RANDOM % 256))`
|
||||
for dir in %{_localstatedir}/lib/libvirt/network \
|
||||
%{_sysconfdir}/libvirt/qemu/networks
|
||||
do
|
||||
if test -f $dir/$file
|
||||
then
|
||||
sed -i.orig -e \
|
||||
"s|\(<bridge.*$\)|\0\n <mac address='52:54:00:$mac4:$mac5:$mac6'/>|" \
|
||||
$dir/$file
|
||||
if test $? != 0
|
||||
then
|
||||
echo "failed to add <mac address='52:54:00:$mac4:$mac5:$mac6'/>" \
|
||||
"to $dir/$file"
|
||||
mv -f $dir/$file.orig $dir/$file
|
||||
else
|
||||
rm -f $dir/$file.orig
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
%if %{with_polkit}
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 6
|
||||
# 'libvirt' group is just to allow password-less polkit access to
|
||||
# libvirtd. The uid number is irrelevant, so we use dynamic allocation
|
||||
# described at the above link.
|
||||
getent group libvirt >/dev/null || groupadd -r libvirt
|
||||
%endif
|
||||
%endif
|
||||
|
||||
exit 0
|
||||
|
||||
%post daemon
|
||||
|
||||
%if %{with_systemd}
|
||||
%if %{with_systemd_macros}
|
||||
%systemd_post virtlockd.socket libvirtd.service libvirtd.socket
|
||||
@@ -1782,6 +1805,14 @@ if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ;
|
||||
< %{_datadir}/libvirt/networks/default.xml \
|
||||
> %{_sysconfdir}/libvirt/qemu/networks/default.xml
|
||||
ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
|
||||
|
||||
# Make sure libvirt picks up the new network defininiton
|
||||
%if %{with_systemd}
|
||||
/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 ||:
|
||||
%else
|
||||
/sbin/service libvirtd condrestart > /dev/null 2>&1 || :
|
||||
%endif
|
||||
|
||||
fi
|
||||
%endif
|
||||
|
||||
@@ -1879,7 +1910,8 @@ exit 0
|
||||
|
||||
%files docs
|
||||
%defattr(-, root, root)
|
||||
%doc AUTHORS ChangeLog.gz NEWS README TODO libvirt-docs/*
|
||||
%doc AUTHORS ChangeLog.gz NEWS README TODO
|
||||
%doc libvirt-docs/*
|
||||
|
||||
# API docs
|
||||
%dir %{_datadir}/gtk-doc/html/libvirt/
|
||||
@@ -1887,6 +1919,15 @@ exit 0
|
||||
%doc %{_datadir}/gtk-doc/html/libvirt/*.html
|
||||
%doc %{_datadir}/gtk-doc/html/libvirt/*.png
|
||||
%doc %{_datadir}/gtk-doc/html/libvirt/*.css
|
||||
%doc examples/hellolibvirt
|
||||
%doc examples/object-events
|
||||
%doc examples/dominfo
|
||||
%doc examples/domsuspend
|
||||
%doc examples/dommigrate
|
||||
%doc examples/openauth
|
||||
%doc examples/xml
|
||||
%doc examples/systemtap
|
||||
|
||||
|
||||
%if %{with_libvirtd}
|
||||
%files daemon
|
||||
@@ -1909,7 +1950,7 @@ exit 0
|
||||
%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
|
||||
%config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 6
|
||||
%config(noreplace) %{_prefix}/lib/sysctl.d/libvirtd.conf
|
||||
%config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf
|
||||
%endif
|
||||
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
|
||||
@@ -1939,6 +1980,7 @@ exit 0
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 6
|
||||
%{_datadir}/polkit-1/actions/org.libvirt.unix.policy
|
||||
%{_datadir}/polkit-1/actions/org.libvirt.api.policy
|
||||
%{_datadir}/polkit-1/rules.d/50-libvirt.rules
|
||||
%else
|
||||
%{_datadir}/PolicyKit/policy/org.libvirt.unix.policy
|
||||
%endif
|
||||
@@ -1985,9 +2027,6 @@ exit 0
|
||||
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
|
||||
%ghost %dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/
|
||||
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
|
||||
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/
|
||||
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/target/
|
||||
%dir %attr(0711, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/nvram/
|
||||
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
|
||||
%{_datadir}/augeas/lenses/libvirtd_qemu.aug
|
||||
%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
|
||||
@@ -2009,9 +2048,14 @@ exit 0
|
||||
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/uml/
|
||||
%endif
|
||||
%if %{with_libxl}
|
||||
%config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
|
||||
%config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf
|
||||
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
|
||||
%ghost %dir %{_localstatedir}/run/libvirt/libxl/
|
||||
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
|
||||
%{_datadir}/augeas/lenses/libvirtd_libxl.aug
|
||||
%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
|
||||
%endif
|
||||
%if %{with_xen}
|
||||
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/xen/
|
||||
@@ -2088,9 +2132,6 @@ exit 0
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
|
||||
%ghost %dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/
|
||||
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
|
||||
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/
|
||||
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/target/
|
||||
%dir %attr(0711, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/nvram/
|
||||
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
|
||||
%{_datadir}/augeas/lenses/libvirtd_qemu.aug
|
||||
%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
|
||||
@@ -2131,6 +2172,11 @@ exit 0
|
||||
%if %{with_libxl}
|
||||
%files daemon-driver-libxl
|
||||
%defattr(-, root, root)
|
||||
%config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
|
||||
%config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf
|
||||
%{_datadir}/augeas/lenses/libvirtd_libxl.aug
|
||||
%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
|
||||
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
|
||||
%ghost %dir %{_localstatedir}/run/libvirt/libxl/
|
||||
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
|
||||
@@ -2141,8 +2187,6 @@ exit 0
|
||||
%files daemon-driver-vbox
|
||||
%defattr(-, root, root)
|
||||
%{_libdir}/%{name}/connection-driver/libvirt_driver_vbox.so
|
||||
%{_libdir}/%{name}/connection-driver/libvirt_driver_vbox_network.so
|
||||
%{_libdir}/%{name}/connection-driver/libvirt_driver_vbox_storage.so
|
||||
%endif
|
||||
%endif # %{with_driver_modules}
|
||||
|
||||
@@ -2183,6 +2227,9 @@ exit 0
|
||||
%if %{with_qemu}
|
||||
%config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf
|
||||
%endif
|
||||
%if %{with_libxl}
|
||||
%config(noreplace) %{_sysconfdir}/libvirt/libxl-sanlock.conf
|
||||
%endif
|
||||
%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so
|
||||
%{_datadir}/augeas/lenses/libvirt_sanlock.aug
|
||||
%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
|
||||
@@ -2208,6 +2255,7 @@ exit 0
|
||||
%{_libdir}/libvirt.so.*
|
||||
%{_libdir}/libvirt-qemu.so.*
|
||||
%{_libdir}/libvirt-lxc.so.*
|
||||
%{_libdir}/libvirt-admin.so.*
|
||||
|
||||
%if %{with_dtrace}
|
||||
%{_datadir}/systemtap/tapset/libvirt_probes*.stp
|
||||
@@ -2271,6 +2319,17 @@ exit 0
|
||||
%dir %{_includedir}/libvirt
|
||||
%{_includedir}/libvirt/virterror.h
|
||||
%{_includedir}/libvirt/libvirt.h
|
||||
%{_includedir}/libvirt/libvirt-domain.h
|
||||
%{_includedir}/libvirt/libvirt-domain-snapshot.h
|
||||
%{_includedir}/libvirt/libvirt-event.h
|
||||
%{_includedir}/libvirt/libvirt-host.h
|
||||
%{_includedir}/libvirt/libvirt-interface.h
|
||||
%{_includedir}/libvirt/libvirt-network.h
|
||||
%{_includedir}/libvirt/libvirt-nodedev.h
|
||||
%{_includedir}/libvirt/libvirt-nwfilter.h
|
||||
%{_includedir}/libvirt/libvirt-secret.h
|
||||
%{_includedir}/libvirt/libvirt-storage.h
|
||||
%{_includedir}/libvirt/libvirt-stream.h
|
||||
%{_includedir}/libvirt/libvirt-qemu.h
|
||||
%{_includedir}/libvirt/libvirt-lxc.h
|
||||
%{_libdir}/pkgconfig/libvirt.pc
|
||||
@@ -2281,19 +2340,122 @@ exit 0
|
||||
%{_datadir}/libvirt/api/libvirt-api.xml
|
||||
%{_datadir}/libvirt/api/libvirt-qemu-api.xml
|
||||
%{_datadir}/libvirt/api/libvirt-lxc-api.xml
|
||||
|
||||
%doc docs/*.html docs/html docs/*.gif
|
||||
# Needed building python bindings
|
||||
%doc docs/libvirt-api.xml
|
||||
%doc examples/hellolibvirt
|
||||
%doc examples/object-events
|
||||
%doc examples/dominfo
|
||||
%doc examples/domsuspend
|
||||
%doc examples/dommigrate
|
||||
%doc examples/openauth
|
||||
%doc examples/xml
|
||||
%doc examples/systemtap
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 18 2016 Cole Robinson <crobinso@redhat.com> - 1.2.18.4-1
|
||||
- Rebased to version 1.2.18.4
|
||||
- CVE-2016-5008: Setting empty VNC password allows access to unauthorized
|
||||
users (bz #1351516)
|
||||
|
||||
* Thu Jun 23 2016 Cole Robinson <crobinso@redhat.com> - 1.2.18.3-2
|
||||
- Advertise fedora edk2 firmware builds to apps (bz #1335395)
|
||||
|
||||
* Wed May 04 2016 Cole Robinson <crobinso@redhat.com> - 1.2.18.3-1
|
||||
- Rebased to version 1.2.18.3
|
||||
- Start network after config-network RPM install (bz #867546)
|
||||
|
||||
* Thu Mar 17 2016 Cole Robinson <crobinso@redhat.com> - 1.2.18.2-3
|
||||
- Fix lxc /proc/meminfo virtualization (bz #1300781)
|
||||
- Fix 'permission denied' errors trying to unlink disk images (bz #1289327)
|
||||
- Fix qemu:///session connect race failures (bz #1271183)
|
||||
- driver: log missing modules as INFO, not WARN (bz #1274849)
|
||||
|
||||
* Wed Jan 20 2016 Cole Robinson <crobinso@redhat.com> - 1.2.18.2-2
|
||||
- Fix XML validation with qemu commandline passthrough (bz #1292131)
|
||||
- Fix crash in libvirt_leasehelper (bz #1202350)
|
||||
- Generate consistent systemtap tapsets regardless of host arch (bz
|
||||
#1173641)
|
||||
- Fix qemu:///session error 'Transport endpoint is not connected' (bz
|
||||
#1271183)
|
||||
- Fix parallel VM start/top svirt errors on kernel/initrd (bz #1269975)
|
||||
|
||||
* Wed Dec 23 2015 Cole Robinson <crobinso@redhat.com> - 1.2.18.2-1
|
||||
- Rebased to version 1.2.18.2
|
||||
- disk backend is not removed properly when disk frontent hotplug fails (bz
|
||||
#1265968)
|
||||
- Fix TPM cancel path on newer kernels (bz #1244895)
|
||||
- Remove timeout for libvirt-guests.service (bz #1195544)
|
||||
- CVE-2015-5313 libvirt: filesystem storage volume names path traversal flaw
|
||||
(bz #1291433)
|
||||
- Fix VM names with non-ascii (bz #1062943)
|
||||
- Fix backwards migration with graphics listen address (bz #1276883)
|
||||
|
||||
* Tue Oct 06 2015 Cole Robinson <crobinso@redhat.com> - 1.2.18.1-2
|
||||
- Fix qemu.conf dynamic_ownership=0 (bz #1266628)
|
||||
- Fix some spec file warnings
|
||||
|
||||
* Mon Sep 21 2015 Cole Robinson <crobinso@redhat.com> - 1.2.18.1-1
|
||||
- Rebased to version 1.2.18.1
|
||||
- libvirt reports physical=0 for COW2 volumes on block storage (bz #1253754)
|
||||
- Fix URL installs with virt-manager/virt-install (bz #1264573)
|
||||
|
||||
* Tue Aug 4 2015 Daniel P. Berrange <berrange@redhat.com> - 1.2.18-1
|
||||
- Update to 1.2.18 release
|
||||
|
||||
* Wed Jul 29 2015 Richard W.M. Jones <rjones@redhat.com> - 1.2.17-2
|
||||
- Fix 'Cannot write data: Broken pipe [code=38 domain=7]' (RHBZ#1247746).
|
||||
|
||||
* Tue Jul 14 2015 Cole Robinson <crobinso@redhat.com> - 1.2.17-1
|
||||
- numerous improvements and refactoring of the parallels driver
|
||||
- hardening of vcpu code
|
||||
- hardening of migration code
|
||||
- a lot of improvement and bug fixes
|
||||
|
||||
* Sun Jul 12 2015 Peter Robinson <pbrobinson@fedoraproject.org> 1.2.16-3
|
||||
- Rebuild (aarch64)
|
||||
|
||||
* Tue Jun 16 2015 Daniel P. Berrange <berrange@redhat.com> - 1.2.16-2
|
||||
- Rebuild for libwsman soname bump
|
||||
|
||||
* Mon Jun 01 2015 Daniel P. Berrange <berrange@redhat.com> - 1.2.16-1
|
||||
- Update to 1.2.16 release
|
||||
|
||||
* Thu May 07 2015 Richard W.M. Jones <rjones@redhat.com> - 1.2.15-2
|
||||
- Add Cole Robinson's patch to fix arch selection (bz# 1219198, bz#1219191)
|
||||
|
||||
* Mon May 04 2015 Cole Robinson <crobinso@redhat.com> - 1.2.15-1
|
||||
- Rebased to version 1.2.15
|
||||
|
||||
* Wed Apr 15 2015 Cole Robinson <crobinso@redhat.com> - 1.2.14-2
|
||||
- Fix LXC domain startup (bz #1210397)
|
||||
- Fix race starting multiple session daemons (bz #1200149)
|
||||
- Fix change-media success messages
|
||||
- Strip invalid control codes from XML (bz #1066564, bz #1184131)
|
||||
|
||||
* Thu Apr 02 2015 Cole Robinson <crobinso@redhat.com> - 1.2.14-1
|
||||
- Rebased to version 1.2.14
|
||||
|
||||
* Tue Mar 10 2015 Cole Robinson <crobinso@redhat.com> - 1.2.13-2
|
||||
- Fix connecting to qemu:///session (bz #1198244)
|
||||
|
||||
* Mon Mar 02 2015 Cole Robinson <crobinso@redhat.com> - 1.2.13-1
|
||||
- Rebased to version 1.2.13
|
||||
- lot of improvements around NUMA code
|
||||
- a lot of improvement and bug fixes
|
||||
|
||||
* Tue Feb 3 2015 Daniel P. Berrange <berrange@redhat.com> - 1.2.12-2
|
||||
- Rebuild for changed xen soname
|
||||
|
||||
* Tue Jan 27 2015 Daniel P. Berrange <berrange@redhat.com> - 1.2.12-1
|
||||
- Update to 1.2.12 release
|
||||
|
||||
* Mon Dec 15 2014 Daniel P. Berrange <berrange@redhat.com> - 1.2.11-1
|
||||
- Update to 1.2.11 release
|
||||
- Use git to apply patches
|
||||
|
||||
* Fri Nov 21 2014 Cole Robinson <crobinso@redhat.com> - 1.2.10-3
|
||||
- Allow arm/aarch64 with UEFI
|
||||
|
||||
* Sat Nov 15 2014 Cole Robinson <crobinso@redhat.com> - 1.2.10-2
|
||||
- Fix caps probing when KVM is disabled (bz #1160318)
|
||||
- ppc64le fixes (bz #1163439)
|
||||
|
||||
* Mon Nov 3 2014 Daniel Veillard <veillard@redhat.com> - 1.2.10
|
||||
- upstream release
|
||||
|
||||
* Thu Oct 30 2014 Cole Robinson <crobinso@redhat.com> - 1.2.9-4
|
||||
- Fix creating i686 guest with x86_64 emulator (bz #1153797)
|
||||
- Fix tests with latest libxml2
|
||||
|
||||
Reference in New Issue
Block a user