- bsc#1022173 - virt-manager: unknown input device type

'virtio1.0-input'
  1d2cd306-Fix-incorrect-usage-of-virtio-input.patch
- bsc#1005848 - KVM: guest can not be started on top of SLES12SP1
  KVM host ppc64
  5a11cf07-virt-manager-generates-invalid-guest-XML.patch
- Upstream bug fixes
  617b9271-dont-return-virtio1.0-net-as-valid-device-name.patch
  7962672c-fix-error-checking-extra_args.patch
  b4858842-fix-bad-version-check-regression.patch
  f07a3021-fix-wait-to-behave-like-noautoconsole.patch

- bsc#1005861 - virt-manager create new machine dialog box too
  small to display system type
  virtinst-expand-combobox.patch
- fate#314135: Support PVSCSI on XEN and VirtioSCSI on KVM -
- fate#313076: HBA passthrough for kvm

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=338
This commit is contained in:
Charles Arnold 2017-01-27 15:42:58 +00:00 committed by Git OBS Bridge
parent 5c9700fd6e
commit 287c87ccd9
10 changed files with 277 additions and 3 deletions

View File

@ -0,0 +1,78 @@
Subject: osdict: Fix incorrect usage of virtio input
From: Cole Robinson crobinso@redhat.com Fri Jul 29 13:17:36 2016 -0400
Date: Fri Jul 29 13:17:36 2016 -0400:
Git: 1d2cd306773064258f5d02c980b09a683ae77798
Regression reported with latest libosinfo, when the OS reports
virtio-input support:
http://www.redhat.com/archives/virt-tools-list/2016-July/msg00109.html
Really our code presently only cares about the USB tablet, so adjust
our libosinfo lookup to explicitly check for it
Index: virt-manager-1.4.0/virtinst/guest.py
===================================================================
--- virt-manager-1.4.0.orig/virtinst/guest.py
+++ virt-manager-1.4.0/virtinst/guest.py
@@ -1033,15 +1033,14 @@ class Guest(XMLBuilder):
return False
return all([c.model == "none" for c in controllers])
- input_type = self._os_object.default_inputtype()
- input_bus = self._os_object.default_inputbus()
+ input_type = "mouse"
+ input_bus = "ps2"
if self.os.is_xenpv():
input_type = VirtualInputDevice.TYPE_MOUSE
input_bus = VirtualInputDevice.BUS_XEN
- elif _usb_disabled() and input_bus == "usb":
- input_bus = "ps2"
- if input_type == "tablet":
- input_type = "mouse"
+ elif self._os_object.supports_usbtablet() and not _usb_disabled():
+ input_type = "tablet"
+ input_bus = "usb"
for inp in self.get_devices("input"):
if (inp.type == inp.TYPE_DEFAULT and
Index: virt-manager-1.4.0/virtinst/osdict.py
===================================================================
--- virt-manager-1.4.0.orig/virtinst/osdict.py
+++ virt-manager-1.4.0/virtinst/osdict.py
@@ -457,23 +457,19 @@ class _OsVariant(object):
return devname
return None
- def default_inputtype(self):
- if self._os:
- fltr = libosinfo.Filter()
- fltr.add_constraint("class", "input")
- devs = self._os.get_all_devices(fltr)
- if devs.get_length():
- return devs.get_nth(0).get_name()
- return "mouse"
+ def supports_usbtablet(self):
+ if not self._os:
+ return False
- def default_inputbus(self):
- if self._os:
- fltr = libosinfo.Filter()
- fltr.add_constraint("class", "input")
- devs = self._os.get_all_devices(fltr)
- if devs.get_length():
- return devs.get_nth(0).get_bus_type()
- return "ps2"
+ fltr = libosinfo.Filter()
+ fltr.add_constraint("class", "input")
+ fltr.add_constraint("name", "tablet")
+ devs = self._os.get_all_devices(fltr)
+ for idx in range(devs.get_length()):
+ dev = devs.get_nth(idx)
+ if devs.get_nth(idx).get_bus_type() == "usb":
+ return True
+ return False
def supports_virtiodisk(self):
if self._os:

View File

@ -0,0 +1,51 @@
Subject: virt-manager generates invalid guest XML
From: Seeteena Thoufeek s1seetee@linux.vnet.ibm.com Mon Dec 12 17:48:50 2016 +0530
Date: Mon Dec 12 21:12:09 2016 -0500:
Git: 5a11cf0782998a36eef42718231bcb4c2de8ebba
The virt-manager application generates invalid guest XML when a
spapr-vio SCSI model controller is changed to a virtio-scsi model controller.
1. Create a guest
2. Add an spapr-vio controller to the guest via this gui path:
->Add Hardware
->Controller
->Type SCSI
->Model Hypervisor default
At this point, there will be a valid spapr-vio SCSI controller defined:
<controller type='scsi' index='0'>
<address type='spapr-vio' reg='0x2000'/>
</controller>
3.Now modify the above SCSI controller using this gui path:
->Choose "Controller sPAPR SCSI" on left pane
->Choose "VirtIO SCSI" for the Model on the right pane
->Apply
At this point, there will be a SCSI controller definition which is invalid due to an incorrect address type:
~# virsh dumpxml dotg2|grep -A2 -i scsi
<controller type='scsi' index='0' model='virtio-scsi'>
<address type='spapr-vio' reg='0x2000'/>
</controller>
Any attempt to start the guest will throw this error:
error: Failed to start domain dotg2
error: internal error: process exited while connecting to monitor: 2016-12-02T17:45:12.989165Z qemu-system-ppc64le: -device virtio-scsi-pci,id=scsi0,reg=0x2000: Property '.reg' not found
virt-manager fails to realize that the address type needs to be changed to a PCI address for a virtio-scsi controller.
If you change the model, you are supposed to leave the address field empty, so that libvirt sets it correctly. Or change the address field also appropriately.
Note that this bug can be reproduced entirely within virt-manager. No manual editing of guest XML is being done here. So, fix is to make virt-manager delete the address field when the SCSI controller model is changed, allowing libvirt to automatically assign a new address with the correct type.
Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
Index: virt-manager-1.4.0/virtManager/domain.py
===================================================================
--- virt-manager-1.4.0.orig/virtManager/domain.py
+++ virt-manager-1.4.0/virtManager/domain.py
@@ -949,6 +949,7 @@ class vmmDomain(vmmLibvirtObject):
else:
editdev.model = model
+ editdev.address.clear()
self.hotplug(device=editdev)
if model != _SENTINEL:

View File

@ -0,0 +1,23 @@
Subject: osdict: Don't return virtio1.0-net as a valid device name (bug 1399083)
From: Cole Robinson crobinso@redhat.com Tue Dec 13 12:58:14 2016 -0500
Date: Tue Dec 13 12:58:14 2016 -0500:
Git: 617b92710f50015c5df5f9db15d25de18867957d
We can't depend on libosinfo device names being valid libvirt network
model names, so use a whitelist
https://bugzilla.redhat.com/show_bug.cgi?id=1399083
Index: virt-manager-1.4.0/virtinst/osdict.py
===================================================================
--- virt-manager-1.4.0.orig/virtinst/osdict.py
+++ virt-manager-1.4.0/virtinst/osdict.py
@@ -453,7 +453,7 @@ class _OsVariant(object):
devs = self._os.get_all_devices(fltr)
for idx in range(devs.get_length()):
devname = devs.get_nth(idx).get_name()
- if devname != "virtio-net":
+ if devname in ["pcnet", "ne2k_pci", "rtl8139", "e1000"]:
return devname
return None

View File

@ -0,0 +1,25 @@
Subject: virt-install: Fix error checking extra_args
From: Cole Robinson crobinso@redhat.com Wed Nov 2 10:27:14 2016 -0400
Date: Wed Nov 2 10:27:14 2016 -0400:
Git: 7962672c713cf6d35e770f0d00068dee707b6ec9
Later bits in the code that want to warn based on extra_args content
don't handle the None case. Be consistent and convert it to a list
everywhere.
Mentioned at https://bugzilla.redhat.com/show_bug.cgi?id=1376547#c9
Index: virt-manager-1.4.0/virt-install
===================================================================
--- virt-manager-1.4.0.orig/virt-install
+++ virt-manager-1.4.0/virt-install
@@ -595,7 +595,8 @@ def build_guest_instance(conn, options):
convert_old_os_options(options)
# non-xml install options
- guest.installer.extraargs = options.extra_args or []
+ options.extra_args = options.extra_args or []
+ guest.installer.extraargs = options.extra_args
guest.installer.initrd_injections = options.initrd_inject
guest.autostart = options.autostart

View File

@ -0,0 +1,23 @@
Subject: virtinst: fix bad version check regression from 55327c81b7
From: Marc-André Lureau marcandre.lureau@redhat.com Wed Nov 9 11:21:32 2016 +0400
Date: Mon Nov 14 09:03:30 2016 +0100:
Git: b4858842f9e2f4f39ca81ad596fb777d11537a0f
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Index: virt-manager-1.4.0/virtinst/support.py
===================================================================
--- virt-manager-1.4.0.orig/virtinst/support.py
+++ virt-manager-1.4.0/virtinst/support.py
@@ -312,9 +312,9 @@ SUPPORT_CONN_MEM_STATS_PERIOD = _make(
function="virDomain.setMemoryStatsPeriod",
version="1.1.1", hv_version={"qemu": 0})
SUPPORT_CONN_SPICE_GL = _make(version="1.3.3",
- hv_version={"qemu": "2.7.92", "test": 0})
+ hv_version={"qemu": "2.6.0", "test": 0})
SUPPORT_CONN_VIDEO_VIRTIO_ACCEL3D = _make(version="1.3.0",
- hv_version={"qemu": "2.7.0", "test": 0})
+ hv_version={"qemu": "2.5.0", "test": 0})
SUPPORT_CONN_GRAPHICS_LISTEN_NONE = _make(version="2.0.0")

View File

@ -0,0 +1,22 @@
Subject: virt-install: fix --wait=0 to behave like --noautoconsole
From: Pavel Hrdina phrdina@redhat.com Wed Jan 18 13:11:43 2017 +0100
Date: Wed Jan 18 13:11:43 2017 +0100:
Git: f07a3021d99298e3b157f6c18b880dcb3ac19b62
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1371781
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Index: virt-manager-1.4.0/virt-install
===================================================================
--- virt-manager-1.4.0.orig/virt-install
+++ virt-manager-1.4.0/virt-install
@@ -647,7 +647,7 @@ def build_guest_instance(conn, options):
###########################
def start_install(guest, options):
- if options.wait:
+ if options.wait is not None:
wait_on_install = True
wait_time = options.wait * 60
if "VIRTINST_TEST_SUITE" in os.environ and wait_time:

View File

@ -1,3 +1,25 @@
-------------------------------------------------------------------
Thu Jan 26 16:41:16 MST 2017 - carnold@suse.com
- bsc#1022173 - virt-manager: unknown input device type
'virtio1.0-input'
1d2cd306-Fix-incorrect-usage-of-virtio-input.patch
- bsc#1005848 - KVM: guest can not be started on top of SLES12SP1
KVM host ppc64
5a11cf07-virt-manager-generates-invalid-guest-XML.patch
- Upstream bug fixes
617b9271-dont-return-virtio1.0-net-as-valid-device-name.patch
7962672c-fix-error-checking-extra_args.patch
b4858842-fix-bad-version-check-regression.patch
f07a3021-fix-wait-to-behave-like-noautoconsole.patch
-------------------------------------------------------------------
Wed Jan 18 15:36:46 MST 2017 - carnold@suse.com
- bsc#1005861 - virt-manager create new machine dialog box too
small to display system type
virtinst-expand-combobox.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Jan 18 10:54:58 MST 2017 - carnold@suse.com Wed Jan 18 10:54:58 MST 2017 - carnold@suse.com
@ -1530,9 +1552,9 @@ Mon Feb 4 10:10:30 MST 2013 - carnold@suse.com
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Jan 31 15:32:00 MST 2013 - carnold@suse.com Thu Jan 31 15:32:00 MST 2013 - carnold@suse.com
- fate##314135: Support PVSCSI on XEN and VirtioSCSI on KVM - - fate#314135: Support PVSCSI on XEN and VirtioSCSI on KVM -
Implement pass through block device Implement pass through block device
- fate##313076: HBA passthrough for kvm - fate#313076: HBA passthrough for kvm
virtman-git-scsi.diff virtman-git-scsi.diff
virtman-git-scsi-lun.diff virtman-git-scsi-lun.diff

View File

@ -50,6 +50,12 @@ Patch10: a3206f89-Add-the-sysinfo-option.patch
Patch11: 63784f4d-document-new-sysinfo-option.patch Patch11: 63784f4d-document-new-sysinfo-option.patch
Patch12: 0425975f-use-virDomainMigrate3-API.patch Patch12: 0425975f-use-virDomainMigrate3-API.patch
Patch13: 561f5cd3-drop-xenmigr-scheme-from-Xen-migration-URI.patch Patch13: 561f5cd3-drop-xenmigr-scheme-from-Xen-migration-URI.patch
Patch14: 1d2cd306-Fix-incorrect-usage-of-virtio-input.patch
Patch15: 7962672c-fix-error-checking-extra_args.patch
Patch16: b4858842-fix-bad-version-check-regression.patch
Patch17: 5a11cf07-virt-manager-generates-invalid-guest-XML.patch
Patch18: 617b9271-dont-return-virtio1.0-net-as-valid-device-name.patch
Patch19: f07a3021-fix-wait-to-behave-like-noautoconsole.patch
# SUSE Only # SUSE Only
Patch70: virtman-desktop.patch Patch70: virtman-desktop.patch
Patch71: virtman-kvm.patch Patch71: virtman-kvm.patch
@ -76,6 +82,7 @@ Patch127: virtinst-set-qemu-emulator.patch
Patch128: virtinst-add-ppc64-arch-support.patch Patch128: virtinst-add-ppc64-arch-support.patch
Patch129: virtinst-s390x-disable-graphics.patch Patch129: virtinst-s390x-disable-graphics.patch
Patch130: virtinst-add-casp-support.patch Patch130: virtinst-add-casp-support.patch
Patch131: virtinst-expand-combobox.patch
# Bug Fixes # Bug Fixes
Patch150: virtman-prevent-double-click-starting-vm-twice.patch Patch150: virtman-prevent-double-click-starting-vm-twice.patch
Patch151: virtman-increase-setKeepAlive-count.patch Patch151: virtman-increase-setKeepAlive-count.patch
@ -181,6 +188,12 @@ machine).
%patch11 -p1 %patch11 -p1
%patch12 -p1 %patch12 -p1
%patch13 -p1 %patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
# SUSE Only # SUSE Only
%patch70 -p1 %patch70 -p1
%patch71 -p1 %patch71 -p1
@ -207,6 +220,7 @@ machine).
%patch128 -p1 %patch128 -p1
%patch129 -p1 %patch129 -p1
%patch130 -p1 %patch130 -p1
%patch131 -p1
# Bug Fixes # Bug Fixes
%patch150 -p1 %patch150 -p1
%patch151 -p1 %patch151 -p1

View File

@ -0,0 +1,16 @@
References: bsc#1005861
Notes: Just allow the GtkComboBox to be the width of the dialog
so you can see more of the operating system name.
Index: virt-manager-1.4.0/ui/create.ui
===================================================================
--- virt-manager-1.4.0.orig/ui/create.ui
+++ virt-manager-1.4.0/ui/create.ui
@@ -1741,7 +1741,6 @@ is not yet supported.&lt;/small&gt;</pro
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
<property name="y_options"/>
</packing>
</child>

View File

@ -27,7 +27,7 @@ Index: virt-manager-1.4.0/virtinst/support.py
+++ virt-manager-1.4.0/virtinst/support.py +++ virt-manager-1.4.0/virtinst/support.py
@@ -316,6 +316,8 @@ SUPPORT_CONN_SPICE_GL = _make(version="1 @@ -316,6 +316,8 @@ SUPPORT_CONN_SPICE_GL = _make(version="1
SUPPORT_CONN_VIDEO_VIRTIO_ACCEL3D = _make(version="1.3.0", SUPPORT_CONN_VIDEO_VIRTIO_ACCEL3D = _make(version="1.3.0",
hv_version={"qemu": "2.7.0", "test": 0}) hv_version={"qemu": "2.5.0", "test": 0})
SUPPORT_CONN_GRAPHICS_LISTEN_NONE = _make(version="2.0.0") SUPPORT_CONN_GRAPHICS_LISTEN_NONE = _make(version="2.0.0")
+SUPPORT_CONN_NOCOW = _make( +SUPPORT_CONN_NOCOW = _make(
+ version="1.2.18", hv_version={"qemu": "2.2.0", "test": 0}) + version="1.2.18", hv_version={"qemu": "2.2.0", "test": 0})