- Upstream bug fixes (bsc#1027942)

57db4185-virt-clone-fix-force-copy-of-empty-cdrom-or-floppy-disk.patch
  26a433fc-virtManager-clone-check-which-storage-pools-supports-volume-cloning.patch
  4f66c423-cloner-Handle-nonsparse-for-qcow2-images.patch
  a02fc0d0-virtManager-clone-build-default-clone-path-if-we-know-how.patch
  1856c1fa-support-Fix-minimum-version-check.patch
  74bbc3db-urldetect-Check-also-for-treeinfo.patch
  708af01c-osdict-Add-supports_virtioinput.patch
  f23b01be-guest-Add-VirtIO-input-devices-to-s390x-guests-with-graphics.patch
  7afbb90b-virt-xml-Handle-VM-names-that-look-like-id-uuid.patch
  a0ca387a-cli-Fix-pool-default-when-path-belongs-to-another-pool.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=465
This commit is contained in:
Charles Arnold 2019-04-03 17:16:11 +00:00 committed by Git OBS Bridge
parent 6471f89f17
commit 2d558399a0
12 changed files with 520 additions and 3 deletions

View File

@ -0,0 +1,34 @@
Subject: support: Fix minimum version check
From: Cole Robinson crobinso@redhat.com Wed Mar 6 13:05:47 2019 -0500
Date: Wed Mar 6 13:06:54 2019 -0500:
Git: 1856c1fa6501c7d37d360377937a82cfa2d1cd20
The original code for this was about version 0.7.3, but a refactor
accidentally changed it to 0.7.9 which is a libvirt version that
doesn't exist. Fix it
diff --git a/virtinst/support.py b/virtinst/support.py
index 0f0f6104..fabcfe7d 100644
--- a/virtinst/support.py
+++ b/virtinst/support.py
@@ -131,7 +131,7 @@ class _SupportCheck(object):
for an 'unsupported' error from libvirt.
@flag: A flag to check exists. This will be appended to the argument
- list if run_args are provided, otherwise we will only check against
+ :list if run_args are provided, otherwise we will only check against
that the flag is present in the python bindings.
@hv_version: A dictionary with hypervisor names for keys, and
@@ -157,9 +157,9 @@ class _SupportCheck(object):
versions = ([self.version] + list(self.hv_libvirt_version.values()))
for vstr in versions:
v = _version_str_to_int(vstr)
- if vstr is not None and v != 0 and v < 7009:
+ if vstr is not None and v != 0 and v < 7003:
raise RuntimeError("programming error: Cannot enforce "
- "support checks for libvirt versions less than 0.7.9, "
+ "support checks for libvirt versions less than 0.7.3, "
"since required APIs were not available. ver=%s" % vstr)
def check_support(self, conn, data):

View File

@ -0,0 +1,96 @@
Subject: virtManager: clone: check which storage pools supports volume cloning
From: Pavel Hrdina phrdina@redhat.com Thu Feb 28 11:47:40 2019 +0100
Date: Mon Mar 4 13:23:45 2019 +0100:
Git: 26a433fc421b7c23e02deb8fe84cdedc21fd8f95
When cloning a guest in virt-manager the GUI shows a list of disks and
select default cloning policy for every disk. For storage pools where
we know that cloning is not possible we should not select that option
as default one.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1463066
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
diff --git a/virtManager/clone.py b/virtManager/clone.py
index 895d258a..4148fca0 100644
--- a/virtManager/clone.py
+++ b/virtManager/clone.py
@@ -64,6 +64,11 @@ def can_we_clone(conn, vol, path):
elif not os.path.exists(path):
msg = _("Path does not exist.")
+ else:
+ pool = vol.get_parent_pool()
+ if not pool.supports_volume_creation(clone=True):
+ msg = _("Cannot clone %s storage pool.") % pool.get_type()
+
if msg:
ret = False
@@ -94,12 +99,8 @@ def do_we_default(conn, vol, path, ro, shared, devtype):
if vol:
pool_type = vol.get_parent_pool().get_type()
- if pool_type == virtinst.StoragePool.TYPE_SCSI:
- info = append_str(info, _("SCSI device"))
- elif pool_type == virtinst.StoragePool.TYPE_DISK:
+ if pool_type == virtinst.StoragePool.TYPE_DISK:
info = append_str(info, _("Disk device"))
- elif pool_type == virtinst.StoragePool.TYPE_ISCSI:
- info = append_str(info, _("iSCSI share"))
if shared:
info = append_str(info, _("Shareable"))
diff --git a/virtManager/storagepool.py b/virtManager/storagepool.py
index bf79b161..d0d26cc2 100644
--- a/virtManager/storagepool.py
+++ b/virtManager/storagepool.py
@@ -238,8 +238,8 @@ class vmmStoragePool(vmmLibvirtObject):
def can_change_alloc(self):
typ = self.get_type()
return (typ in [StoragePool.TYPE_LOGICAL, StoragePool.TYPE_ZFS])
- def supports_volume_creation(self):
- return self.get_xmlobj().supports_volume_creation()
+ def supports_volume_creation(self, clone=False):
+ return self.get_xmlobj().supports_volume_creation(clone=clone)
def get_type(self):
return self.get_xmlobj().type
diff --git a/virtinst/storage.py b/virtinst/storage.py
index 5781e4a7..3249c454 100644
--- a/virtinst/storage.py
+++ b/virtinst/storage.py
@@ -395,13 +395,25 @@ class StoragePool(_StorageObject):
return self.type in users[propname]
return hasattr(self, propname)
- def supports_volume_creation(self):
- return self.type in [
- StoragePool.TYPE_DIR, StoragePool.TYPE_FS,
- StoragePool.TYPE_NETFS, StoragePool.TYPE_LOGICAL,
+ def supports_volume_creation(self, clone=False):
+ """
+ Returns if pool supports volume creation. If @clone is set to True
+ returns if pool supports volume cloning (virVolCreateXMLFrom).
+ """
+ supported = [
+ StoragePool.TYPE_DIR,
+ StoragePool.TYPE_FS,
+ StoragePool.TYPE_NETFS,
StoragePool.TYPE_DISK,
- StoragePool.TYPE_RBD, StoragePool.TYPE_SHEEPDOG,
- StoragePool.TYPE_ZFS]
+ StoragePool.TYPE_LOGICAL,
+ StoragePool.TYPE_RBD,
+ ]
+ if not clone:
+ supported.extend([
+ StoragePool.TYPE_SHEEPDOG,
+ StoragePool.TYPE_ZFS,
+ ])
+ return self.type in supported
def get_disk_type(self):
if (self.type == StoragePool.TYPE_DISK or

View File

@ -0,0 +1,57 @@
Subject: cloner: Handle --nonsparse for qcow2 images (bz 1675743)
From: Cole Robinson crobinso@redhat.com Mon Mar 4 13:20:51 2019 -0500
Date: Mon Mar 4 14:04:34 2019 -0500:
Git: 4f66c423f7833e270b61536d53a0772ce1242abc
https://bugzilla.redhat.com/show_bug.cgi?id=1675743
diff --git a/tests/clone-xml/cross-pool-disks-out.xml b/tests/clone-xml/cross-pool-disks-out.xml
index 260f321c..6093e240 100644
--- a/tests/clone-xml/cross-pool-disks-out.xml
+++ b/tests/clone-xml/cross-pool-disks-out.xml
@@ -1,7 +1,7 @@
<volume>
<name>new1.img</name>
<capacity>1000000</capacity>
- <allocation>50000</allocation>
+ <allocation>1000000</allocation>
<target>
<format type="qcow2"/>
<features>
@@ -12,7 +12,7 @@
<volume>
<name>new2.img</name>
<capacity>1000000</capacity>
- <allocation>50000</allocation>
+ <allocation>1000000</allocation>
<target>
<format type="qcow2"/>
<features>
diff --git a/virtinst/cloner.py b/virtinst/cloner.py
index ba89a26f..b29027e3 100644
--- a/virtinst/cloner.py
+++ b/virtinst/cloner.py
@@ -330,6 +330,8 @@ class Cloner(object):
vol_install.input_vol = orig_disk.get_vol_object()
vol_install.sync_input_vol(only_format=True)
+ if self.clone_sparse:
+ vol_install.allocation = vol_install.capacity
vol_install.reflink = self.reflink
clone_disk.set_vol_install(vol_install)
elif orig_disk.path:
diff --git a/virtinst/storage.py b/virtinst/storage.py
index 3249c454..2e92c5d6 100644
--- a/virtinst/storage.py
+++ b/virtinst/storage.py
@@ -744,6 +744,10 @@ class StorageVolume(_StorageObject):
self.conn.check_support(
self.conn.SUPPORT_POOL_METADATA_PREALLOC, self.pool)):
createflags |= libvirt.VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA
+ if self.capacity == self.allocation:
+ # For cloning, this flag will make libvirt+qemu-img preallocate
+ # the new disk image
+ cloneflags |= libvirt.VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA
if self.reflink:
cloneflags |= getattr(libvirt,

View File

@ -0,0 +1,41 @@
Subject: virt-clone: fix force-copy of empty cdrom or floppy disk
From: Pavel Hrdina phrdina@redhat.com Thu Feb 28 17:53:58 2019 +0100
Date: Thu Feb 28 18:05:31 2019 +0100:
Git: 57db41854c86704af331d283810db0d86786825a
There is nothing to copy so don't try to generate new path.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1564863
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Index: virt-manager-2.1.0/tests/clitest.py
===================================================================
--- virt-manager-2.1.0.orig/tests/clitest.py
+++ virt-manager-2.1.0/tests/clitest.py
@@ -1047,6 +1047,7 @@ c.add_invalid("--original-xml " + _CLONE
c.add_invalid("--original-xml " + _CLONE_UNMANAGED + " --file %(NEWCLONEIMG1)s --file %(NEWCLONEIMG2)s --force-copy=hdc") # XML w/ disks, force copy but not enough disks passed
c.add_invalid("--original-xml " + _CLONE_MANAGED + " --file /tmp/clonevol") # XML w/ managed storage, specify unmanaged path (should fail)
c.add_invalid("--original-xml " + _CLONE_NOEXIST + " --file %(EXISTIMG1)s") # XML w/ non-existent storage, WITHOUT --preserve
+c.add_valid("--original-xml " + _CLONE_MANAGED + " --auto-clone --force-copy fda") # force copy empty floppy drive
Index: virt-manager-2.1.0/virt-clone
===================================================================
--- virt-manager-2.1.0.orig/virt-clone
+++ virt-manager-2.1.0/virt-clone
@@ -67,11 +67,10 @@ def get_clone_diskfile(new_diskfiles, de
new_diskfiles.append(None)
newpath = new_diskfiles[newidx]
- if newpath is None and auto_clone:
- newpath = design.generate_clone_disk_path(origpath)
-
if origpath is None:
newpath = None
+ elif newpath is None and auto_clone:
+ newpath = design.generate_clone_disk_path(origpath)
clonepaths.append(newpath)
newidx += 1

View File

@ -0,0 +1,27 @@
Subject: osdict: Add supports_virtioinput()
From: Andrea Bolognani abologna@redhat.com Wed Mar 20 16:52:34 2019 +0100
Date: Thu Mar 21 15:31:20 2019 +0100:
Git: 708af01c145dcaf5146901d18e22d1da61e09444
We can use this function to figure out whether the guest OS
supports VirtIO input devices (virtio-tablet, virtio-keyboard
and virtio-mouse).
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Index: virt-manager-2.1.0/virtinst/osdict.py
===================================================================
--- virt-manager-2.1.0.orig/virtinst/osdict.py
+++ virt-manager-2.1.0/virtinst/osdict.py
@@ -390,6 +390,11 @@ class _OsVariant(object):
# Remove this hack after 6 months or so
return self._is_related_to("rhel6.0")
+ def supports_virtioinput(self):
+ # virtio1.0-input
+ devids = ["http://pcisig.com/pci/1af4/1052"]
+ return bool(self._device_filter(devids=devids))
+
def supports_usb3(self):
# qemu-xhci
devids = ["http://pcisig.com/pci/1b36/0004"]

View File

@ -0,0 +1,37 @@
Subject: urldetect: Check also for 'treeinfo' (bz 1689252)
From: Cole Robinson crobinso@redhat.com Mon Mar 18 14:22:25 2019 -0400
Date: Mon Mar 18 14:24:07 2019 -0400:
Git: 74bbc3db15d5e9a1b4d21c276f7d3f435b83d2fd
Trees published to akamai CDN via Red Hat Satellite can't have .dotfiles
in them. More details here:
https://bugzilla.redhat.com/show_bug.cgi?id=635065
So we also need to check for .treeinfo. Anaconda does this too so it's
a long known issue.
https://bugzilla.redhat.com/show_bug.cgi?id=1689252
diff --git a/virtinst/urldetect.py b/virtinst/urldetect.py
index 3033e6ea..4d301ef3 100644
--- a/virtinst/urldetect.py
+++ b/virtinst/urldetect.py
@@ -48,7 +48,16 @@ class _DistroCache(object):
if self._treeinfo:
return self._treeinfo
- treeinfostr = self.acquire_file_content(".treeinfo")
+ # Vast majority of trees here use .treeinfo. However, trees via
+ # Red Hat satellite on akamai CDN will use treeinfo, because akamai
+ # doesn't do dotfiles apparently:
+ #
+ # https://bugzilla.redhat.com/show_bug.cgi?id=635065
+ #
+ # Anaconda is the canonical treeinfo consumer and they check for both
+ # locations, so we need to do the same
+ treeinfostr = (self.acquire_file_content(".treeinfo") or
+ self.acquire_file_content("treeinfo"))
if treeinfostr is None:
return None

View File

@ -0,0 +1,53 @@
Subject: virt-xml: Handle VM names that look like id/uuid (bz 1679025)
From: Cole Robinson crobinso@redhat.com Thu Mar 21 13:34:52 2019 -0400
Date: Thu Mar 21 13:45:58 2019 -0400:
Git: 7afbb90b4ddfa449e4efc2d57e726d477f96637b
Previously we assume they are id/uuid, so if it's actually the VM
name then the command fails. Now we always check for a name first,
https://bugzilla.redhat.com/show_bug.cgi?id=1679025
Index: virt-manager-2.1.0/tests/clitest.py
===================================================================
--- virt-manager-2.1.0.orig/tests/clitest.py
+++ virt-manager-2.1.0/tests/clitest.py
@@ -908,8 +908,8 @@ c.add_compare("--build-xml --cpu pentium
c.add_compare("--build-xml --tpm /dev/tpm", "build-tpm")
c.add_compare("--build-xml --blkiotune weight=100,device_path=/dev/sdf,device_weight=200", "build-blkiotune")
c.add_compare("--build-xml --idmap uid_start=0,uid_target=1000,uid_count=10,gid_start=0,gid_target=1000,gid_count=10", "build-idmap")
-c.add_compare("test --edit --boot network,cdrom", "edit-bootorder")
-c.add_compare("--confirm test --edit --cpu host-passthrough", "prompt-response")
+c.add_compare("4a64cc71-19c4-2fd0-2323-3050941ea3c3 --edit --boot network,cdrom", "edit-bootorder") # basic bootorder test, also using UUID lookup
+c.add_compare("--confirm 1 --edit --cpu host-passthrough", "prompt-response") # prompt response, also using domid lookup
c.add_compare("--edit --print-diff --qemu-commandline clearxml=yes", "edit-clearxml-qemu-commandline", input_file=(XMLDIR + "/virtxml-qemu-commandline-clear.xml"))
c.add_compare("--connect %(URI-KVM)s test-hyperv-uefi --edit --boot uefi", "hyperv-uefi-collision")
Index: virt-manager-2.1.0/virt-xml
===================================================================
--- virt-manager-2.1.0.orig/virt-xml
+++ virt-manager-2.1.0/virt-xml
@@ -73,12 +73,18 @@ def get_domain_and_guest(conn, domstr):
isuuid = bool(re.match(uuidre, domstr))
try:
- if isint:
- domain = conn.lookupByID(int(domstr))
- elif isuuid:
- domain = conn.lookupByUUIDString(domstr)
- else:
+ domain = None
+ try:
domain = conn.lookupByName(domstr)
+ except Exception:
+ # Incase the VM has a UUID or ID for a name
+ logging.debug("Error looking up domain by name", exc_info=True)
+ if isint:
+ domain = conn.lookupByID(int(domstr))
+ elif isuuid:
+ domain = conn.lookupByUUIDString(domstr)
+ else:
+ raise
except libvirt.libvirtError as e:
fail(_("Could not find domain '%s': %s") % (domstr, e))

View File

@ -0,0 +1,63 @@
Subject: virtManager: clone: build default clone path if we know how
From: Pavel Hrdina phrdina@redhat.com Tue Mar 5 10:16:06 2019 +0100
Date: Wed Mar 6 17:19:00 2019 +0100:
Git: a02fc0d02272ade8aea851be4e0f7c7ec38de2fe
Function do_we_default returns only if we want to default to clone disk
even if we know how to create default clone path. Only in case that the
storage pool is TYPE_DISK we don't know how to create default path and
we cannot default to clone that disk. In all other cases as ReadOnly
disk or Shareable and so on we can prepare the default path for user if
they decide to clone it.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1565106
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
diff --git a/virtManager/clone.py b/virtManager/clone.py
index 4148fca0..1adc59c9 100644
--- a/virtManager/clone.py
+++ b/virtManager/clone.py
@@ -79,6 +79,7 @@ def do_we_default(conn, vol, path, ro, shared, devtype):
""" Returns (do we clone by default?, info string if not)"""
ignore = conn
info = ""
+ can_default = True
def append_str(str1, str2, delim=", "):
if not str2:
@@ -101,11 +102,12 @@ def do_we_default(conn, vol, path, ro, shared, devtype):
pool_type = vol.get_parent_pool().get_type()
if pool_type == virtinst.StoragePool.TYPE_DISK:
info = append_str(info, _("Disk device"))
+ can_default = False
if shared:
info = append_str(info, _("Shareable"))
- return (not info, info)
+ return (not info, info, can_default)
class vmmCloneVM(vmmGObjectUI):
@@ -390,8 +392,8 @@ class vmmCloneVM(vmmGObjectUI):
skip_targets.remove(force_target)
vol = self.conn.get_vol_by_path(path)
- default, definfo = do_we_default(self.conn, vol, path, ro, shared,
- devtype)
+ default, definfo, can_default = do_we_default(self.conn, vol, path,
+ ro, shared, devtype)
def storage_add(failinfo=None):
# pylint: disable=cell-var-from-loop
@@ -426,7 +428,7 @@ class vmmCloneVM(vmmGObjectUI):
storage_row[STORAGE_INFO_CAN_CLONE] = True
# If we cannot create default clone_path don't even try to do that
- if not default:
+ if not can_default:
storage_add()
continue

View File

@ -0,0 +1,31 @@
Subject: cli: Fix pool=default when path belongs to another pool (bz 1692489)
From: Cole Robinson crobinso@redhat.com Tue Mar 26 10:44:58 2019 -0400
Date: Tue Mar 26 11:15:46 2019 -0400:
Git: a0ca387aad0fde19683aa8b5b5636add6455b8b4
Using 'virt-install --disk size=X' implicitly uses pool=default. If
a pool named 'default' exists we use that; if not, and a pool using
the default path exists under a different name, we attempt to use
that as well, and if that doesn't exist, we create pool=default
The second case is broken, so if there's no pool=default and eg.
pool=FOO points to /var/lib/libvirt/images, we still attempt to
look up pool=default which understandably fails
https://bugzilla.redhat.com/show_bug.cgi?id=1692489
Index: virt-manager-2.1.0/virtinst/cli.py
===================================================================
--- virt-manager-2.1.0.orig/virtinst/cli.py
+++ virt-manager-2.1.0/virtinst/cli.py
@@ -2263,7 +2263,9 @@ class ParserDisk(VirtCLIParser):
poolobj = None
if poolname:
if poolname == "default":
- StoragePool.build_default_pool(self.guest.conn)
+ poolxml = StoragePool.build_default_pool(self.guest.conn)
+ if poolxml:
+ poolname = poolxml.name
poolobj = self.guest.conn.storagePoolLookupByName(poolname)
if volname:

View File

@ -0,0 +1,43 @@
Subject: guest: Add VirtIO input devices to s390x guests with graphics
From: Andrea Bolognani abologna@redhat.com Wed Mar 20 16:52:35 2019 +0100
Date: Thu Mar 21 15:31:20 2019 +0100:
Git: f23b01be53aa8b5b8d91aadbfb0c06268fa5c7b9
We're not including any input devices in the generated XML
for s390x guests, and the results is that it's not possible
to interact with them short of using the serial console or
connecting through ssh, which is fine but probably not what
is expected when graphics are present.
USB input devices are not a good fit for s390x guests: USB
requires PCI, and PCI is not widely available or used on
s390x; VirtIO devices, on the other hand, are a perfect
match since s390x guests use basically no emulated devices
and rely on VirtIO for most functionality.
https://bugzilla.redhat.com/show_bug.cgi?id=1683609
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Index: virt-manager-2.1.0/virtinst/guest.py
===================================================================
--- virt-manager-2.1.0.orig/virtinst/guest.py
+++ virt-manager-2.1.0/virtinst/guest.py
@@ -588,6 +588,17 @@ class Guest(XMLBuilder):
dev.bus = "usb"
self.add_device(dev)
+ # s390x guests need VirtIO input devices
+ if self.os.is_s390x() and self.osinfo.supports_virtioinput():
+ dev = DeviceInput(self.conn)
+ dev.type = "tablet"
+ dev.bus = "virtio"
+ self.add_device(dev)
+ dev = DeviceInput(self.conn)
+ dev.type = "keyboard"
+ dev.bus = "virtio"
+ self.add_device(dev)
+
def _add_default_console_device(self):
if self.skip_default_console:
return

View File

@ -1,3 +1,18 @@
-------------------------------------------------------------------
Wed Apr 3 11:08:16 MDT 2019 - carnold@suse.com
- Upstream bug fixes (bsc#1027942)
57db4185-virt-clone-fix-force-copy-of-empty-cdrom-or-floppy-disk.patch
26a433fc-virtManager-clone-check-which-storage-pools-supports-volume-cloning.patch
4f66c423-cloner-Handle-nonsparse-for-qcow2-images.patch
a02fc0d0-virtManager-clone-build-default-clone-path-if-we-know-how.patch
1856c1fa-support-Fix-minimum-version-check.patch
74bbc3db-urldetect-Check-also-for-treeinfo.patch
708af01c-osdict-Add-supports_virtioinput.patch
f23b01be-guest-Add-VirtIO-input-devices-to-s390x-guests-with-graphics.patch
7afbb90b-virt-xml-Handle-VM-names-that-look-like-id-uuid.patch
a0ca387a-cli-Fix-pool-default-when-path-belongs-to-another-pool.patch
-------------------------------------------------------------------
Mon Mar 25 05:29:39 MDT 2019 - carnold@suse.com

View File

@ -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 https://bugs.opensuse.org/
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@ -35,8 +35,18 @@ Source3: virt-manager-supportconfig
Patch1: f7508d02-addhardware-Fix-setting-optimal-default-net-model.patch
Patch2: 1018ab44-inspection-handle-failures-in-application-listing.patch
Patch3: ae8a4f3d-engine-Fix-first-run-startup-error.patch
Patch4: 5bc847eb-virt-install-Do-not-warn-about-consoles-on-s390x.patch
Patch5: 8d9743d6-virt-install-Add-support-for-xenbus-controller.patch
Patch4: 57db4185-virt-clone-fix-force-copy-of-empty-cdrom-or-floppy-disk.patch
Patch5: 26a433fc-virtManager-clone-check-which-storage-pools-supports-volume-cloning.patch
Patch6: 4f66c423-cloner-Handle-nonsparse-for-qcow2-images.patch
Patch7: a02fc0d0-virtManager-clone-build-default-clone-path-if-we-know-how.patch
Patch8: 1856c1fa-support-Fix-minimum-version-check.patch
Patch9: 5bc847eb-virt-install-Do-not-warn-about-consoles-on-s390x.patch
Patch10: 74bbc3db-urldetect-Check-also-for-treeinfo.patch
Patch11: 708af01c-osdict-Add-supports_virtioinput.patch
Patch12: f23b01be-guest-Add-VirtIO-input-devices-to-s390x-guests-with-graphics.patch
Patch13: 7afbb90b-virt-xml-Handle-VM-names-that-look-like-id-uuid.patch
Patch14: 8d9743d6-virt-install-Add-support-for-xenbus-controller.patch
Patch15: a0ca387a-cli-Fix-pool-default-when-path-belongs-to-another-pool.patch
# SUSE Only
Patch70: virtman-desktop.patch
Patch71: virtman-kvm.patch
@ -170,6 +180,16 @@ machine).
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
# SUSE Only
%patch70 -p1
%patch71 -p1