diff --git a/1d2cd306-Fix-incorrect-usage-of-virtio-input.patch b/1d2cd306-Fix-incorrect-usage-of-virtio-input.patch new file mode 100644 index 00000000..a80a4b0c --- /dev/null +++ b/1d2cd306-Fix-incorrect-usage-of-virtio-input.patch @@ -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: diff --git a/5a11cf07-virt-manager-generates-invalid-guest-XML.patch b/5a11cf07-virt-manager-generates-invalid-guest-XML.patch new file mode 100644 index 00000000..dcd11255 --- /dev/null +++ b/5a11cf07-virt-manager-generates-invalid-guest-XML.patch @@ -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: + +
+ +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 + +
+ +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 + +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: diff --git a/617b9271-dont-return-virtio1.0-net-as-valid-device-name.patch b/617b9271-dont-return-virtio1.0-net-as-valid-device-name.patch new file mode 100644 index 00000000..689a28b8 --- /dev/null +++ b/617b9271-dont-return-virtio1.0-net-as-valid-device-name.patch @@ -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 + diff --git a/7962672c-fix-error-checking-extra_args.patch b/7962672c-fix-error-checking-extra_args.patch new file mode 100644 index 00000000..419d8fbd --- /dev/null +++ b/7962672c-fix-error-checking-extra_args.patch @@ -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 + diff --git a/b4858842-fix-bad-version-check-regression.patch b/b4858842-fix-bad-version-check-regression.patch new file mode 100644 index 00000000..a4039434 --- /dev/null +++ b/b4858842-fix-bad-version-check-regression.patch @@ -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 + +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") + + diff --git a/f07a3021-fix-wait-to-behave-like-noautoconsole.patch b/f07a3021-fix-wait-to-behave-like-noautoconsole.patch new file mode 100644 index 00000000..c606c726 --- /dev/null +++ b/f07a3021-fix-wait-to-behave-like-noautoconsole.patch @@ -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 + +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: diff --git a/virt-manager.changes b/virt-manager.changes index d89d6299..dafef4be 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -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 @@ -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 -- 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 -- fate##313076: HBA passthrough for kvm +- fate#313076: HBA passthrough for kvm virtman-git-scsi.diff virtman-git-scsi-lun.diff diff --git a/virt-manager.spec b/virt-manager.spec index 2158b7bb..84fa095b 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -50,6 +50,12 @@ Patch10: a3206f89-Add-the-sysinfo-option.patch Patch11: 63784f4d-document-new-sysinfo-option.patch Patch12: 0425975f-use-virDomainMigrate3-API.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 Patch70: virtman-desktop.patch Patch71: virtman-kvm.patch @@ -76,6 +82,7 @@ Patch127: virtinst-set-qemu-emulator.patch Patch128: virtinst-add-ppc64-arch-support.patch Patch129: virtinst-s390x-disable-graphics.patch Patch130: virtinst-add-casp-support.patch +Patch131: virtinst-expand-combobox.patch # Bug Fixes Patch150: virtman-prevent-double-click-starting-vm-twice.patch Patch151: virtman-increase-setKeepAlive-count.patch @@ -181,6 +188,12 @@ machine). %patch11 -p1 %patch12 -p1 %patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 +%patch19 -p1 # SUSE Only %patch70 -p1 %patch71 -p1 @@ -207,6 +220,7 @@ machine). %patch128 -p1 %patch129 -p1 %patch130 -p1 +%patch131 -p1 # Bug Fixes %patch150 -p1 %patch151 -p1 diff --git a/virtinst-expand-combobox.patch b/virtinst-expand-combobox.patch new file mode 100644 index 00000000..0c381c41 --- /dev/null +++ b/virtinst-expand-combobox.patch @@ -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.</small> + 1 + 2 +- GTK_FILL + + + diff --git a/virtinst-vol-default-nocow.patch b/virtinst-vol-default-nocow.patch index 444c2373..e4163e5b 100644 --- a/virtinst-vol-default-nocow.patch +++ b/virtinst-vol-default-nocow.patch @@ -27,7 +27,7 @@ Index: 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 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_NOCOW = _make( + version="1.2.18", hv_version={"qemu": "2.2.0", "test": 0})