diff --git a/0c223ab2-guest-Dont-set-default-uefi-if-firmware-is-set.patch b/0c223ab2-guest-Dont-set-default-uefi-if-firmware-is-set.patch new file mode 100644 index 00000000..ee238b3e --- /dev/null +++ b/0c223ab2-guest-Dont-set-default-uefi-if-firmware-is-set.patch @@ -0,0 +1,110 @@ +Subject: guest: Don't set default uefi if firmware= is set +From: Cole Robinson crobinso@redhat.com Fri Jul 12 15:58:22 2019 -0400 +Date: Fri Jul 12 16:01:21 2019 -0400: +Git: 0c223ab21f0cff216b4a1ab2070a43f0e943d308 + + +diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-firmware-no-override.xml b/tests/cli-test-xml/compare/virt-install-aarch64-firmware-no-override.xml +new file mode 100644 +index 00000000..b062e805 +--- /dev/null ++++ b/tests/cli-test-xml/compare/virt-install-aarch64-firmware-no-override.xml +@@ -0,0 +1,55 @@ ++ ++ vm1 ++ 00000000-1111-2222-3333-444444444444 ++ 65536 ++ 65536 ++ 1 ++ ++ hvm ++ ++ ++ ++ ++ destroy ++ ++ /usr/bin/qemu-system-aarch64 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ vm1 ++ 00000000-1111-2222-3333-444444444444 ++ 65536 ++ 65536 ++ 1 ++ ++ hvm ++ ++ ++ ++ ++ ++ /usr/bin/qemu-system-aarch64 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/tests/clitest.py b/tests/clitest.py +index 7ef324bc..a309f937 100644 +--- a/tests/clitest.py ++++ b/tests/clitest.py +@@ -990,6 +990,7 @@ c.add_compare("--arch aarch64 --boot kernel=/f19-arm.kernel,initrd=/f19-arm.init + c.add_compare("--arch aarch64 --cdrom %(EXISTIMG2)s --boot loader=CODE.fd,nvram.template=VARS.fd --disk %(EXISTIMG1)s --cpu none --events on_crash=preserve,on_reboot=destroy,on_poweroff=restart", "aarch64-cdrom") + c.add_compare("--connect %(URI-KVM-AARCH64)s --disk %(EXISTIMG1)s --import --os-variant fedora21 --panic default", "aarch64-kvm-import") # the --panic is a no-op + c.add_compare("--connect %(URI-KVM-AARCH64)s --disk size=1 --os-variant fedora22 --features gic_version=host --network network=default,address.type=pci --controller type=scsi,model=virtio-scsi,address.type=pci", "aarch64-kvm-gic") ++c.add_compare("--connect %(URI-KVM-AARCH64)s --arch aarch64 --disk none --pxe --boot firmware=efi", "aarch64-firmware-no-override") + + + # Simple headless guests for various architectures +diff --git a/virtinst/guest.py b/virtinst/guest.py +index 41357644..f0fcfe7d 100644 +--- a/virtinst/guest.py ++++ b/virtinst/guest.py +@@ -561,8 +561,9 @@ class Guest(XMLBuilder): + return path + + def is_uefi(self): +- return bool(self.os.loader and +- self.os.loader_type == "pflash") ++ if self.os.loader and self.os.loader_type == "pflash": ++ return True ++ return self.os.firmware == "efi" + + def set_uefi_path(self, path): + """ +@@ -781,11 +782,13 @@ class Guest(XMLBuilder): + not self.os.kernel and + not self.os.loader and + self.os.loader_ro is None and +- self.os.nvram is None) ++ self.os.nvram is None and ++ self.os.firmware is None) + + if use_default_uefi or self.uefi_requested: + try: + path = self.get_uefi_path() ++ log.debug("Setting UEFI path=%s", path) + self.set_uefi_path(path) + except RuntimeError as e: + if self.uefi_requested: diff --git a/3009888a-urlfetcher-Dont-override-fullurl-when-its-explicitly-set.patch b/3009888a-urlfetcher-Dont-override-fullurl-when-its-explicitly-set.patch new file mode 100644 index 00000000..78338149 --- /dev/null +++ b/3009888a-urlfetcher-Dont-override-fullurl-when-its-explicitly-set.patch @@ -0,0 +1,27 @@ +Subject: urlfetcher: Don't override fullurl when it's explicitly set +From: Fabiano Fidêncio fidencio@redhat.com Fri Aug 2 17:01:44 2019 +0200 +Date: Tue Aug 6 17:59:05 2019 -0400: +Git: 3009888a0ed200a4f472dd32239a7c5157fef391 + +acquireFile method receives an optional "fullurl" argument. In case it's +not passed, its value is set as the same value of the filename. However, +when fullurl is passed, it should be used and not overriden by the +filename, otherwise fetcher.acquireFile() will just bail. + +Reviewed-by: Cole Robinson +Signed-off-by: Fabiano Fidêncio + +diff --git a/virtinst/install/urlfetcher.py b/virtinst/install/urlfetcher.py +index 07f8b5ea..6084bf01 100644 +--- a/virtinst/install/urlfetcher.py ++++ b/virtinst/install/urlfetcher.py +@@ -411,7 +411,8 @@ class DirectFetcher(_URLFetcher): + return filename + + def acquireFile(self, filename, fullurl=None): +- fullurl = filename ++ if not fullurl: ++ fullurl = filename + filename = os.path.basename(filename) + fetcher = fetcherForURI(fullurl, self.scratchdir, self.meter, direct=True) + return fetcher.acquireFile(filename, fullurl) # pylint: disable=protected-access diff --git a/414ffa5e-virt-install-Use-minutes-instead-of-seconds-on-get_time_string.patch b/414ffa5e-virt-install-Use-minutes-instead-of-seconds-on-get_time_string.patch new file mode 100644 index 00000000..d2b98759 --- /dev/null +++ b/414ffa5e-virt-install-Use-minutes-instead-of-seconds-on-get_time_string.patch @@ -0,0 +1,29 @@ +Subject: virt-install: Use minutes instead of seconds on get_time_string() +From: Fabiano Fidêncio fidencio@redhat.com Thu Jul 25 14:09:53 2019 +0200 +Date: Thu Jul 25 19:13:13 2019 -0400: +Git: 414ffa5ef82548d502a4de98d40228a68bdb29c1 + +get_time_string() currently uses self._wait_secs, while it should use +self._wait_mins, resulting on confusing messages when using `--wait` +option, as shown below: + +fidencio@laerte ~/src/upstream/virt-manager $ ./virt-install --install fedora30 --unattended --wait 20 + ... +Waiting 1200 minutes for installation to complete. + +Reviewed-by: Cole Robinson +Signed-off-by: Fabiano Fidêncio + +diff --git a/virt-install b/virt-install +index af6c75bf..8efa4960 100755 +--- a/virt-install ++++ b/virt-install +@@ -610,7 +610,7 @@ class WaitHandler: + self._start_time = time.time() + + def get_time_string(self): +- timestr = _(" %d minutes") % self._wait_secs ++ timestr = _(" %d minutes") % self._wait_mins + if self._wait_forever: + timestr = "" + ret = _("Waiting%(time_string)s for installation to complete.") % { diff --git a/53245827-urlfetcher-Force-a-flush-after-writing-to-a-file.patch b/53245827-urlfetcher-Force-a-flush-after-writing-to-a-file.patch new file mode 100644 index 00000000..7fc5dace --- /dev/null +++ b/53245827-urlfetcher-Force-a-flush-after-writing-to-a-file.patch @@ -0,0 +1,39 @@ +Subject: urlfetcher: Force a flush after writing to a file +From: Fabiano Fidêncio fidencio@redhat.com Mon Aug 5 13:47:25 2019 +0200 +Date: Tue Aug 6 17:59:05 2019 -0400: +Git: 5324582747a57c5df1574ed99dbe20d3d0f65747 + +While downloading really small files, on some file systems, the files +may not be flushed on time for whatever reason they've been downloaded. + +This issue was noticed after trying to perform unattended installations +and noticing that some files, particularly really small ones, where just +empty. + +While the original issue would be fixed by doing the flush on +_HTTPURLFetcher::_write(), let's also force it on _URLFetcher::_write() +to do the same. + +Reviewed-by: Cole Robinson +Signed-off-by: Fabiano Fidêncio + +diff --git a/virtinst/install/urlfetcher.py b/virtinst/install/urlfetcher.py +index e48c801c..07f8b5ea 100644 +--- a/virtinst/install/urlfetcher.py ++++ b/virtinst/install/urlfetcher.py +@@ -156,6 +156,7 @@ class _URLFetcher(object): + fileobj.write(buff) + total += len(buff) + self.meter.update(total) ++ fileobj.flush() + return total + + def _grabber(self, url): +@@ -291,6 +292,7 @@ class _HTTPURLFetcher(_URLFetcher): + fileobj.write(data) + total += len(data) + self.meter.update(total) ++ fileobj.flush() + return total + + diff --git a/virt-manager.changes b/virt-manager.changes index 95c62eb8..0494cc29 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Aug 27 13:54:23 MDT 2019 - carnold@suse.com + +- Upstream bug fixes (bsc#1027942) + 0c223ab2-guest-Dont-set-default-uefi-if-firmware-is-set.patch + 414ffa5e-virt-install-Use-minutes-instead-of-seconds-on-get_time_string.patch + 53245827-urlfetcher-Force-a-flush-after-writing-to-a-file.patch + 3009888a-urlfetcher-Dont-override-fullurl-when-its-explicitly-set.patch + ------------------------------------------------------------------- Mon Jul 29 13:22:56 MDT 2019 - carnold@suse.com diff --git a/virt-manager.spec b/virt-manager.spec index a76c1a65..9a4bd19e 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -33,6 +33,10 @@ Source2: virt-install.desktop Source3: virt-manager-supportconfig # Upstream Patches Patch1: 3c6e8537-guest-fix-warning-message-when-machine-type-is-changed-for-secure-boot.patch +Patch2: 0c223ab2-guest-Dont-set-default-uefi-if-firmware-is-set.patch +Patch3: 414ffa5e-virt-install-Use-minutes-instead-of-seconds-on-get_time_string.patch +Patch4: 53245827-urlfetcher-Force-a-flush-after-writing-to-a-file.patch +Patch5: 3009888a-urlfetcher-Dont-override-fullurl-when-its-explicitly-set.patch # SUSE Only Patch70: virtman-desktop.patch Patch71: virtman-kvm.patch @@ -166,6 +170,10 @@ machine). %setup -q # Upstream Patches %patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 # SUSE Only %patch70 -p1 %patch71 -p1 diff --git a/virtinst-add-pvh-support.patch b/virtinst-add-pvh-support.patch index 2d7b8aa3..eee59b48 100644 --- a/virtinst-add-pvh-support.patch +++ b/virtinst-add-pvh-support.patch @@ -32,7 +32,7 @@ Index: virt-manager-2.2.1/virtinst/guest.py =================================================================== --- virt-manager-2.2.1.orig/virtinst/guest.py +++ virt-manager-2.2.1/virtinst/guest.py -@@ -821,7 +821,7 @@ class Guest(XMLBuilder): +@@ -824,7 +824,7 @@ class Guest(XMLBuilder): usb_tablet = False usb_keyboard = False diff --git a/virtinst-s390x-disable-graphics.patch b/virtinst-s390x-disable-graphics.patch index 44aac9dc..32042e4c 100644 --- a/virtinst-s390x-disable-graphics.patch +++ b/virtinst-s390x-disable-graphics.patch @@ -25,7 +25,7 @@ Index: virt-manager-2.2.1/virtinst/guest.py return True return False -@@ -861,7 +864,7 @@ class Guest(XMLBuilder): +@@ -864,7 +867,7 @@ class Guest(XMLBuilder): self.add_device(dev) def _add_default_video_device(self): @@ -34,7 +34,7 @@ Index: virt-manager-2.2.1/virtinst/guest.py return if self.devices.video: return -@@ -928,7 +931,7 @@ class Guest(XMLBuilder): +@@ -931,7 +934,7 @@ class Guest(XMLBuilder): return if self.os.is_container() and not self.conn.is_vz(): return diff --git a/virtinst-set-qemu-emulator.patch b/virtinst-set-qemu-emulator.patch index ae60efb1..ee20f899 100644 --- a/virtinst-set-qemu-emulator.patch +++ b/virtinst-set-qemu-emulator.patch @@ -5,7 +5,7 @@ Index: virt-manager-2.2.1/virtinst/guest.py =================================================================== --- virt-manager-2.2.1.orig/virtinst/guest.py +++ virt-manager-2.2.1/virtinst/guest.py -@@ -739,6 +739,10 @@ class Guest(XMLBuilder): +@@ -740,6 +740,10 @@ class Guest(XMLBuilder): self._add_default_memballoon() self.clock.set_defaults(self)