Skip to content
Snippets Groups Projects
Commit 281585c5 authored by Guido Günther's avatar Guido Günther
Browse files

Rediff patches

Dropped patches fixed upstream:

    caps-Fix-regression-defaulting-to-host-arch.patch
parent 863423e1
No related branches found
No related tags found
No related merge requests found
......@@ -19,10 +19,10 @@ Closes: #685749
12 files changed, 24 insertions(+), 26 deletions(-)
diff --git a/docs/schemas/capability.rng b/docs/schemas/capability.rng
index 5f3ec70..3b5fade 100644
index 88e08d2..bfbc8c9 100644
--- a/docs/schemas/capability.rng
+++ b/docs/schemas/capability.rng
@@ -293,13 +293,13 @@
@@ -294,13 +294,13 @@
<define name='emulator'>
<element name='emulator'>
......
......@@ -7,7 +7,7 @@ Subject: Don't fail if we can't setup avahi
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c
index 47d83ba..2557200 100644
index 42427dc..8c4009e 100644
--- a/src/rpc/virnetserver.c
+++ b/src/rpc/virnetserver.c
@@ -1093,8 +1093,7 @@ void virNetServerRun(virNetServerPtr srv)
......
......@@ -10,7 +10,7 @@ Closes: #663931
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virutil.c b/src/util/virutil.c
index 0426517..5aa30ee 100644
index e479cce..383f06e 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -1486,7 +1486,7 @@ virSetUIDGIDWithCaps(uid_t uid, gid_t gid, gid_t *groups, int ngroups,
......
......@@ -9,7 +9,7 @@ Origin: vendor
2 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in
index 9aa06fa..25e226d 100644
index 7f74b85..40f8501 100644
--- a/tools/libvirt-guests.sh.in
+++ b/tools/libvirt-guests.sh.in
@@ -1,5 +1,17 @@
......@@ -66,9 +66,9 @@ index 9aa06fa..25e226d 100644
SHUTDOWN_TIMEOUT=300
PARALLEL_SHUTDOWN=0
START_DELAY=0
@@ -40,11 +52,11 @@ BYPASS_CACHE=0
CONNECT_RETRIES=10
@@ -41,11 +53,11 @@ CONNECT_RETRIES=10
RETRIES_SLEEP=1
SYNC_TIME=0
-test -f "$sysconfdir"/sysconfig/libvirt-guests &&
- . "$sysconfdir"/sysconfig/libvirt-guests
......@@ -81,7 +81,7 @@ index 9aa06fa..25e226d 100644
RETVAL=0
@@ -545,8 +557,7 @@ gueststatus() {
@@ -546,8 +558,7 @@ gueststatus() {
# rh_status
# Display current status: whether saved state exists, and whether start
......
......@@ -9,10 +9,10 @@ to not interfere with existing network configurations
2 files changed, 6 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 17cf318..3a3b5a2 100644
index 0d1f58b..9d6bf13 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2739,9 +2739,6 @@ if WITH_NETWORK
@@ -2756,9 +2756,6 @@ if WITH_NETWORK
cp $(DESTDIR)$(confdir)/qemu/networks/default.xml.t \
$(DESTDIR)$(confdir)/qemu/networks/default.xml && \
rm $(DESTDIR)$(confdir)/qemu/networks/default.xml.t; }
......@@ -23,10 +23,10 @@ index 17cf318..3a3b5a2 100644
uninstall-local:: uninstall-init uninstall-systemd
diff --git a/src/Makefile.in b/src/Makefile.in
index 5938f6e..9683055 100644
index 11fc3b2..6b2e03e 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -10439,9 +10439,6 @@ install-data-local: install-init install-systemd
@@ -10463,9 +10463,6 @@ install-data-local: install-init install-systemd
@WITH_NETWORK_TRUE@ cp $(DESTDIR)$(confdir)/qemu/networks/default.xml.t \
@WITH_NETWORK_TRUE@ $(DESTDIR)$(confdir)/qemu/networks/default.xml && \
@WITH_NETWORK_TRUE@ rm $(DESTDIR)$(confdir)/qemu/networks/default.xml.t; }
......
......@@ -7,7 +7,7 @@ Subject: remove-RHism.diff
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virsh.pod b/tools/virsh.pod
index f8496f3..5fa6da2 100644
index d588e5a..122ee8b 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -119,7 +119,7 @@ virsh is coming from and which options and driver are compiled in.
......
From: Cole Robinson <crobinso@redhat.com>
Date: Wed, 6 May 2015 18:32:05 -0400
Subject: caps: Fix regression defaulting to host arch
My commit 747761a79 (v1.2.15 only) dropped this bit of logic when filling
in a default arch in the XML:
- /* First try to find one matching host arch */
- for (i = 0; i < caps->nguests; i++) {
- if (caps->guests[i]->ostype == ostype) {
- for (j = 0; j < caps->guests[i]->arch.ndomains; j++) {
- if (caps->guests[i]->arch.domains[j]->type == domain &&
- caps->guests[i]->arch.id == caps->host.arch)
- return caps->guests[i]->arch.id;
- }
- }
- }
That attempt to match host.arch is important, otherwise we end up
defaulting to i686 on x86_64 host for KVM, which is not intended.
Duplicate it in the centralized CapsLookup function.
Additionally add some testcases that would have caught this.
https://bugzilla.redhat.com/show_bug.cgi?id=1219191
---
src/conf/capabilities.c | 63 +++++++++++++++-------
.../qemuxml2argv-default-kvm-host-arch.args | 4 ++
.../qemuxml2argv-default-kvm-host-arch.xml | 11 ++++
.../qemuxml2argv-default-qemu-host-arch.args | 4 ++
.../qemuxml2argv-default-qemu-host-arch.xml | 11 ++++
tests/qemuxml2argvtest.c | 2 +
.../qemuxml2xmlout-default-kvm-host-arch.xml | 21 ++++++++
.../qemuxml2xmlout-default-qemu-host-arch.xml | 21 ++++++++
tests/qemuxml2xmltest.c | 2 +
tests/testutilsqemu.c | 12 +++++
10 files changed, 132 insertions(+), 19 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-default-kvm-host-arch.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-default-kvm-host-arch.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-default-qemu-host-arch.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-default-qemu-host-arch.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-default-kvm-host-arch.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-default-qemu-host-arch.xml
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
index 922741f..c43bfb3 100644
--- a/src/conf/capabilities.c
+++ b/src/conf/capabilities.c
@@ -607,25 +607,13 @@ virCapsDomainDataCompare(virCapsGuestPtr guest,
return true;
}
-/**
- * virCapabilitiesDomainDataLookup:
- * @caps: capabilities to query
- * @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
- * @arch: Architecture to search for
- * @domaintype: domain type to search for, of enum VIR_DOMAIN_VIRT
- * @emulator: Emulator path to search for
- * @machinetype: Machine type to search for
- *
- * Search capabilities for the passed values, and if found return
- * virCapabilitiesDomainDataLookup filled in with the default values
- */
-virCapsDomainDataPtr
-virCapabilitiesDomainDataLookup(virCapsPtr caps,
- int ostype,
- virArch arch,
- int domaintype,
- const char *emulator,
- const char *machinetype)
+static virCapsDomainDataPtr
+virCapabilitiesDomainDataLookupInternal(virCapsPtr caps,
+ int ostype,
+ virArch arch,
+ int domaintype,
+ const char *emulator,
+ const char *machinetype)
{
virCapsGuestPtr foundguest = NULL;
virCapsGuestDomainPtr founddomain = NULL;
@@ -730,6 +718,43 @@ virCapabilitiesDomainDataLookup(virCapsPtr caps,
return ret;
}
+/**
+ * virCapabilitiesDomainDataLookup:
+ * @caps: capabilities to query
+ * @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
+ * @arch: Architecture to search for
+ * @domaintype: domain type to search for, of enum VIR_DOMAIN_VIRT
+ * @emulator: Emulator path to search for
+ * @machinetype: Machine type to search for
+ *
+ * Search capabilities for the passed values, and if found return
+ * virCapabilitiesDomainDataLookup filled in with the default values
+ */
+virCapsDomainDataPtr
+virCapabilitiesDomainDataLookup(virCapsPtr caps,
+ int ostype,
+ virArch arch,
+ int domaintype,
+ const char *emulator,
+ const char *machinetype)
+{
+ virCapsDomainDataPtr ret;
+
+ if (arch == VIR_ARCH_NONE) {
+ /* Prefer host arch if its available */
+ ret = virCapabilitiesDomainDataLookupInternal(caps, ostype,
+ caps->host.arch,
+ domaintype,
+ emulator, machinetype);
+ if (ret)
+ return ret;
+ }
+
+ return virCapabilitiesDomainDataLookupInternal(caps, ostype,
+ arch, domaintype,
+ emulator, machinetype);
+}
+
static int
virCapabilitiesFormatNUMATopology(virBufferPtr buf,
size_t ncells,
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-default-kvm-host-arch.args b/tests/qemuxml2argvdata/qemuxml2argv-default-kvm-host-arch.args
new file mode 100644
index 0000000..102691f
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-default-kvm-host-arch.args
@@ -0,0 +1,4 @@
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
+/usr/bin/kvm -S -machine pc,accel=kvm -m 4096 -smp 4 -nographic \
+-monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb -net none \
+-serial none -parallel none
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-default-kvm-host-arch.xml b/tests/qemuxml2argvdata/qemuxml2argv-default-kvm-host-arch.xml
new file mode 100644
index 0000000..66dead0
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-default-kvm-host-arch.xml
@@ -0,0 +1,11 @@
+<domain type='kvm'>
+ <name>kvm</name>
+ <uuid>d091ea82-29e6-2e34-3005-f02617b36e87</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type>hvm</type>
+ <boot dev='hd'/>
+ </os>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-default-qemu-host-arch.args b/tests/qemuxml2argvdata/qemuxml2argv-default-qemu-host-arch.args
new file mode 100644
index 0000000..5bd404c
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-default-qemu-host-arch.args
@@ -0,0 +1,4 @@
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-x86_64 -S -machine pc-0.11,accel=tcg -m 4096 -smp 4 \
+-nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c \
+-usb -net none -serial none -parallel none
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-default-qemu-host-arch.xml b/tests/qemuxml2argvdata/qemuxml2argv-default-qemu-host-arch.xml
new file mode 100644
index 0000000..85ddec5
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-default-qemu-host-arch.xml
@@ -0,0 +1,11 @@
+<domain type='qemu'>
+ <name>qemu-host</name>
+ <uuid>d091ea82-29e6-2e34-3005-f02617b36e87</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type>hvm</type>
+ <boot dev='hd'/>
+ </os>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 4acaa11..bcb2678 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -595,6 +595,8 @@ mymain(void)
DO_TEST("machine-usb-opt", QEMU_CAPS_MACHINE_OPT,
QEMU_CAPS_MACHINE_USB_OPT);
DO_TEST("kvm", QEMU_CAPS_MACHINE_OPT);
+ DO_TEST("default-kvm-host-arch", QEMU_CAPS_MACHINE_OPT);
+ DO_TEST("default-qemu-host-arch", QEMU_CAPS_MACHINE_OPT);
DO_TEST("boot-cdrom", NONE);
DO_TEST("boot-network", NONE);
DO_TEST("boot-floppy", NONE);
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-default-kvm-host-arch.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-default-kvm-host-arch.xml
new file mode 100644
index 0000000..30fa66d
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-default-kvm-host-arch.xml
@@ -0,0 +1,21 @@
+<domain type='kvm'>
+ <name>kvm</name>
+ <uuid>d091ea82-29e6-2e34-3005-f02617b36e87</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/kvm</emulator>
+ <controller type='usb' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <memballoon model='virtio'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-default-qemu-host-arch.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-default-qemu-host-arch.xml
new file mode 100644
index 0000000..3e65b97
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-default-qemu-host-arch.xml
@@ -0,0 +1,21 @@
+<domain type='qemu'>
+ <name>qemu-host</name>
+ <uuid>d091ea82-29e6-2e34-3005-f02617b36e87</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc-0.11'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='usb' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <memballoon model='virtio'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index b611afd..99f402c 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -346,6 +346,8 @@ mymain(void)
DO_TEST("minimal");
DO_TEST("machine-core-on");
DO_TEST("machine-core-off");
+ DO_TEST_DIFFERENT("default-kvm-host-arch");
+ DO_TEST_DIFFERENT("default-qemu-host-arch");
DO_TEST("boot-cdrom");
DO_TEST("boot-network");
DO_TEST("boot-floppy");
diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
index 14743be..d067bca 100644
--- a/tests/testutilsqemu.c
+++ b/tests/testutilsqemu.c
@@ -354,6 +354,18 @@ virCapsPtr testQemuCapsInit(void)
NULL) == NULL)
goto cleanup;
+ if ((machines = testQemuAllocMachines(&nmachines)) == NULL)
+ goto cleanup;
+
+ if (virCapabilitiesAddGuestDomain(guest,
+ VIR_DOMAIN_VIRT_KVM,
+ "/usr/bin/qemu-kvm",
+ NULL,
+ nmachines,
+ machines) == NULL)
+ goto cleanup;
+ machines = NULL;
+
if ((machines = testQemuAllocNewerMachines(&nmachines)) == NULL)
goto cleanup;
......@@ -11,4 +11,3 @@ debian/Debianize-systemd-service-files.patch
Allow-xen-toolstack-to-find-it-s-binaries.patch
Skip-vircgrouptest.patch
debian/Debianize-virtlockd.patch
fromupstream/caps-Fix-regression-defaulting-to-host-arch.patch
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment