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)