commit 82619953114c362f43ff5fee71f67e1f4d680fca Author: CentOS Sources Date: Tue May 17 04:53:15 2022 -0400 import virt-manager-3.2.0-14.el9 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1498368 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/virt-manager-3.2.0.tar.gz diff --git a/.virt-manager.metadata b/.virt-manager.metadata new file mode 100644 index 0000000..b8cf7e1 --- /dev/null +++ b/.virt-manager.metadata @@ -0,0 +1 @@ +f620494a41f898422581846ccf38b0e4540ea54e SOURCES/virt-manager-3.2.0.tar.gz diff --git a/SOURCES/0001-virtinst-Fix-TOCTOU-in-domain-enumeration.patch b/SOURCES/0001-virtinst-Fix-TOCTOU-in-domain-enumeration.patch new file mode 100644 index 0000000..f747754 --- /dev/null +++ b/SOURCES/0001-virtinst-Fix-TOCTOU-in-domain-enumeration.patch @@ -0,0 +1,44 @@ +From 4d0e323227f18e58283c45be4d240b506faacb22 Mon Sep 17 00:00:00 2001 +Message-Id: <4d0e323227f18e58283c45be4d240b506faacb22.1610390294.git.crobinso@redhat.com> +From: Martin Pitt +Date: Tue, 24 Nov 2020 14:24:06 +0100 +Subject: [PATCH virt-manager] virtinst: Fix TOCTOU in domain enumeration + +Similar to commit 49a01b5482, _fetch_all_domains_raw() has a race +condition where a domain may disappear (from parallel libvirt +operations) in between enumerating and inspecting the objects. + +Ignore these missing domains instead of crashing. + +https://bugzilla.redhat.com/show_bug.cgi?id=1901081 +Signed-off-by: Cole Robinson +--- + virtinst/connection.py | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/virtinst/connection.py b/virtinst/connection.py +index fec273b7..06bc60ad 100644 +--- a/virtinst/connection.py ++++ b/virtinst/connection.py +@@ -182,8 +182,16 @@ class VirtinstConnection(object): + def _fetch_all_domains_raw(self): + dummy1, dummy2, ret = pollhelpers.fetch_vms( + self, {}, lambda obj, ignore: obj) +- return [Guest(weakref.proxy(self), parsexml=obj.XMLDesc(0)) +- for obj in ret] ++ domains = [] ++ for obj in ret: ++ # TOCTOU race: a domain may go away in between enumeration and inspection ++ try: ++ xml = obj.XMLDesc(0) ++ except libvirt.libvirtError as e: # pragma: no cover ++ log.debug("Fetching domain XML failed: %s", e) ++ continue ++ domains.append(Guest(weakref.proxy(self), parsexml=xml)) ++ return domains + + def _build_pool_raw(self, poolobj): + return StoragePool(weakref.proxy(self), +-- +2.29.2 + diff --git a/SOURCES/virt-manager-Handle-new-nodedev-name-for-mediated-devices.patch b/SOURCES/virt-manager-Handle-new-nodedev-name-for-mediated-devices.patch new file mode 100644 index 0000000..f7a2a5a --- /dev/null +++ b/SOURCES/virt-manager-Handle-new-nodedev-name-for-mediated-devices.patch @@ -0,0 +1,112 @@ +From 9cb766bec0296720e98101807726dd9a488486c4 Mon Sep 17 00:00:00 2001 +From: Jonathon Jongsma +Date: Tue, 26 Oct 2021 14:18:40 -0500 +Subject: [PATCH] Handle new nodedev name for mediated devices + +libvirt recently changed the nodedev names for mediated devices due to +the fact that mdevctl supports defining multiple mediated devices with +the same UUID as long as only one is active at a time. This means that +the nodedev name changed from the format 'mdev_$UUID' to the format +'mdev_$UUID_$PARENT'. + +Unfortunately, virt-install was parsing the nodedev name to extract the +UUID of a mediated device. This fails with the new name format. +Fortunately, in libvirt 7.3.0, a field was added to the xml +schema for mdev devices, so we can simply use this instead, and fall +back to the name parsing if it doesn't exist. + +Signed-off-by: Jonathon Jongsma +(cherry picked from commit 0c146b250384ddddcefd2cc0d76b9e808377ebe5) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2023650 + +Signed-off-by: Jonathon Jongsma +--- + tests/data/testdriver/testdriver.xml | 14 ++++++++++++++ + tests/test_nodedev.py | 14 ++++++++++++++ + virtinst/nodedev.py | 7 +++++++ + 3 files changed, 35 insertions(+) + +diff --git a/tests/data/testdriver/testdriver.xml b/tests/data/testdriver/testdriver.xml +index 5875732a..e4880936 100644 +--- a/tests/data/testdriver/testdriver.xml ++++ b/tests/data/testdriver/testdriver.xml +@@ -3725,4 +3725,18 @@ ba + + + ++ ++ mdev_35ceae7f_eea5_4f28_b7f3_7b12a3e62d3c_0000_06_00_0 ++ /sys/devices/pci0000:00/0000:00:02.0/35ceae7f-eea5-4f28-b7f3-7b12a3e62d3c ++ pci_0000_06_00_0 ++ ++ vfio_mdev ++ ++ ++ ++ ++ 35ceae7f-eea5-4f28-b7f3-7b12a3e62d3c ++ ++ ++ + +diff --git a/tests/test_nodedev.py b/tests/test_nodedev.py +index 79678bc8..41435262 100644 +--- a/tests/test_nodedev.py ++++ b/tests/test_nodedev.py +@@ -8,6 +8,7 @@ + import os.path + + import pytest ++import libvirt + + from virtinst import Guest + from virtinst import NodeDevice +@@ -154,6 +155,19 @@ def testPCIMdev(): + assert dev.parent == "pci_0000_06_00_0" + assert dev.device_type == "mdev" + assert dev.type_id == "nvidia-11" ++ assert dev.get_mdev_uuid() == "4b20d080-1b54-4048-85b3-a6a62d165c01" ++ ++# libvirt <7.3.0 doesn't support in the mdev node device xml ++@pytest.mark.skipif(libvirt.getVersion() < 7003000, reason="libvirt version doesn't support new mdev format") ++def testPCIMdevNewFormat(): ++ conn = utils.URIs.open_testdriver_cached() ++ devname = "mdev_35ceae7f_eea5_4f28_b7f3_7b12a3e62d3c_0000_06_00_0" ++ dev = _nodeDevFromName(conn, devname) ++ assert dev.name == devname ++ assert dev.parent == "pci_0000_06_00_0" ++ assert dev.device_type == "mdev" ++ assert dev.type_id == "nvidia-11" ++ assert dev.get_mdev_uuid() == "35ceae7f-eea5-4f28-b7f3-7b12a3e62d3c" + + + # NodeDevice 2 Device XML tests +diff --git a/virtinst/nodedev.py b/virtinst/nodedev.py +index f54a311c..248723b9 100644 +--- a/virtinst/nodedev.py ++++ b/virtinst/nodedev.py +@@ -94,6 +94,12 @@ class NodeDevice(XMLBuilder): + device_type = XMLProperty("./capability/@type") + + def get_mdev_uuid(self): ++ # libvirt 7.3.0 added a element to the nodedev xml for mdev ++ # types. For older versions, we unfortunately have to parse the nodedev ++ # name, which uses the format "mdev_$UUID_WITH_UNDERSCORES" ++ if self.uuid is not None: ++ return self.uuid ++ + return self.name[5:].replace('_', '-') + + def compare_to_hostdev(self, hostdev): +@@ -191,6 +197,7 @@ class NodeDevice(XMLBuilder): + + # type='mdev' options + type_id = XMLProperty("./capability/type/@id") ++ uuid = XMLProperty("./capability/uuid") + + + def _AddressStringToHostdev(conn, addrstr): +-- +2.31.1 + diff --git a/SOURCES/virt-manager-cli-add-ioapic.driver-to-features.patch b/SOURCES/virt-manager-cli-add-ioapic.driver-to-features.patch new file mode 100644 index 0000000..5c0124e --- /dev/null +++ b/SOURCES/virt-manager-cli-add-ioapic.driver-to-features.patch @@ -0,0 +1,112 @@ +From a024c96367ce5f1f8e24e19e9d0735de308d870b Mon Sep 17 00:00:00 2001 +From: Jonathon Jongsma +Date: Tue, 11 Jan 2022 11:21:39 -0600 +Subject: [PATCH] cli: add 'ioapic.driver' to --features + +Add the ability to set the ioapic driver using the --features argument: + + $ virt-install --features ioapic.driver=qemu ... + +This results in the following xml: + + + ... + + + +This is required in order to install a guest with >255 cpus. Such a +configuration requires an iommu with extended interrupt mode enabled, +which in turn requires IOMMU interrupt remapping to be enabled, which in +turn requires a split I/O APIC. + +Signed-off-by: Jonathon Jongsma +(cherry picked from commit 9766beea0432faad7cded9e0285d05851659020e) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2039127 + +Signed-off-by: Jonathon Jongsma +--- + tests/data/cli/compare/virt-install-singleton-config-3.xml | 1 + + tests/data/xmlparse/change-guest-out.xml | 1 + + tests/test_cli.py | 2 +- + tests/test_xmlparse.py | 1 + + virtinst/cli.py | 1 + + virtinst/domain/features.py | 1 + + 6 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/tests/data/cli/compare/virt-install-singleton-config-3.xml b/tests/data/cli/compare/virt-install-singleton-config-3.xml +index d2e7a363..a36c7bf2 100644 +--- a/tests/data/cli/compare/virt-install-singleton-config-3.xml ++++ b/tests/data/cli/compare/virt-install-singleton-config-3.xml +@@ -73,6 +73,7 @@ + + + ++ + + + +diff --git a/tests/data/xmlparse/change-guest-out.xml b/tests/data/xmlparse/change-guest-out.xml +index 17af0826..3faf8783 100644 +--- a/tests/data/xmlparse/change-guest-out.xml ++++ b/tests/data/xmlparse/change-guest-out.xml +@@ -32,6 +32,7 @@ + + + ++ + + + +diff --git a/tests/test_cli.py b/tests/test_cli.py +index aba1fe3c..2034d21c 100644 +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -558,7 +558,7 @@ c.add_compare(""" + --vcpus vcpu.current=3,maxvcpus=4,vcpu.placement=auto + --memory hotplugmemorymax=2048,hotplugmemoryslots=2 + --disk none +---features apic.eoi=off,hap=on,hyperv.synic.state=on,hyperv.reset.state=off,hyperv.spinlocks.state=on,hyperv.spinlocks.retries=5678,pae=on,pmu.state=on,pvspinlock.state=off,smm.state=off,viridian=on,vmcoreinfo.state=on,vmport.state=off,kvm.hidden.state=on,hyperv.vapic.state=off,hyperv.relaxed.state=off,gic.version=host,kvm.hint-dedicated.state=on ++--features apic.eoi=off,hap=on,hyperv.synic.state=on,hyperv.reset.state=off,hyperv.spinlocks.state=on,hyperv.spinlocks.retries=5678,pae=on,pmu.state=on,pvspinlock.state=off,smm.state=off,viridian=on,vmcoreinfo.state=on,vmport.state=off,kvm.hidden.state=on,hyperv.vapic.state=off,hyperv.relaxed.state=off,gic.version=host,kvm.hint-dedicated.state=on,ioapic.driver=qemu + --clock rtc_present=no,pit_present=yes,pit_tickpolicy=catchup,tsc_present=no,platform_present=no,hypervclock_present=no,platform_tickpolicy=foo,hpet_tickpolicy=bar,tsc_tickpolicy=wibble,kvmclock_tickpolicy=wobble,hypervclock_tickpolicy=woo + --boot bios.useserial=no,bios.rebootTimeout=60,cmdline=root=/foo,smbios.mode=host,bootmenu.enable=yes,loader_ro=yes,loader.type=rom,loader=/tmp/foo + --memorybacking access.mode=shared,source.type=anonymous,hugepages=on +diff --git a/tests/test_xmlparse.py b/tests/test_xmlparse.py +index 6d1aaddb..ac2fb38d 100644 +--- a/tests/test_xmlparse.py ++++ b/tests/test_xmlparse.py +@@ -160,6 +160,7 @@ def testAlterGuest(): + check("kvm_hidden", None, True) + check("pvspinlock", None, True) + check("gic_version", None, False) ++ check("ioapic_driver", None, "qemu") + + check = _make_checker(guest.cpu) + check("match", "exact", "strict") +diff --git a/virtinst/cli.py b/virtinst/cli.py +index e1a988f9..dbd4a545 100644 +--- a/virtinst/cli.py ++++ b/virtinst/cli.py +@@ -2777,6 +2777,7 @@ class ParserFeatures(VirtCLIParser): + + cls.add_arg("smm.state", "smm", is_onoff=True) + cls.add_arg("vmcoreinfo.state", "vmcoreinfo", is_onoff=True) ++ cls.add_arg("ioapic.driver", "ioapic_driver") + + + ################### +diff --git a/virtinst/domain/features.py b/virtinst/domain/features.py +index 246839f2..7d32edc0 100644 +--- a/virtinst/domain/features.py ++++ b/virtinst/domain/features.py +@@ -41,6 +41,7 @@ class DomainFeatures(XMLBuilder): + + smm = XMLProperty("./smm/@state", is_onoff=True) + vmcoreinfo = XMLProperty("./vmcoreinfo/@state", is_onoff=True) ++ ioapic_driver = XMLProperty("./ioapic/@driver") + + + ################## +-- +2.34.1 + diff --git a/SOURCES/virt-manager-cli-filesystem-add-binary.sandbox.mode-and-source.socket.patch b/SOURCES/virt-manager-cli-filesystem-add-binary.sandbox.mode-and-source.socket.patch new file mode 100644 index 0000000..8f4f917 --- /dev/null +++ b/SOURCES/virt-manager-cli-filesystem-add-binary.sandbox.mode-and-source.socket.patch @@ -0,0 +1,93 @@ +From 5c16353a007fd7f18eb44a7413d0c146b7de1a4c Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Fri, 30 Jul 2021 13:15:29 -0400 +Subject: [PATCH] cli: --filesystem: add binary.sandbox.mode and source.socket + +Signed-off-by: Cole Robinson +(cherry picked from commit 520b3a3b35359ddd07f3a818d6cc3e6740079eff) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2045932 + +Signed-off-by: Jonathon Jongsma +--- + tests/data/cli/compare/virt-install-many-devices.xml | 5 ++++- + tests/test_cli.py | 2 +- + virtinst/cli.py | 2 ++ + virtinst/devices/filesystem.py | 2 ++ + 4 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/tests/data/cli/compare/virt-install-many-devices.xml b/tests/data/cli/compare/virt-install-many-devices.xml +index 3bd756b3..417d8db0 100644 +--- a/tests/data/cli/compare/virt-install-many-devices.xml ++++ b/tests/data/cli/compare/virt-install-many-devices.xml +@@ -293,11 +293,14 @@ + + 1234 + 500 +- ++ ++ /tmp/foo.sock ++ + + + + ++ + + + +diff --git a/tests/test_cli.py b/tests/test_cli.py +index 2034d21c..862d19dd 100644 +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -686,7 +686,7 @@ source.reservations.managed=no,source.reservations.source.type=unix,source.reser + --filesystem type-mount,source.dir=/,target=/ + --filesystem type=template,source.name=foo,target=/ + --filesystem type=file,source.file=foo.img,target=/ +---filesystem type=volume,model=virtio,multidevs=remap,readonly=on,space_hard_limit=1234,space_soft_limit=500,source.pool=pool1,source.volume=vol,driver.name=virtiofs,driver.queue=3,binary.path=/foo/virtiofsd,binary.xattr=off,binary.cache.mode=always,binary.lock.posix=off,binary.lock.flock=on,target.dir=/foo ++--filesystem type=volume,model=virtio,multidevs=remap,readonly=on,space_hard_limit=1234,space_soft_limit=500,source.pool=pool1,source.volume=vol,driver.name=virtiofs,driver.queue=3,binary.path=/foo/virtiofsd,binary.xattr=off,binary.cache.mode=always,binary.lock.posix=off,binary.lock.flock=on,target.dir=/foo,binary.sandbox.mode=chroot,source.socket=/tmp/foo.sock + --filesystem type=block,source.dev=/dev/foo,target.dir=/ + --filesystem type=ram,source.usage=1024,source.units=MiB,target=/ + +diff --git a/virtinst/cli.py b/virtinst/cli.py +index dbd4a545..13782fc8 100644 +--- a/virtinst/cli.py ++++ b/virtinst/cli.py +@@ -4225,6 +4225,7 @@ class ParserFilesystem(VirtCLIParser): + cls.add_arg("source.volume", "source_volume") + cls.add_arg("source.units", "source_units") + cls.add_arg("source.usage", "source_usage") ++ cls.add_arg("source.socket", "source_socket") + + cls.add_arg("target.dir", "target_dir") + +@@ -4233,6 +4234,7 @@ class ParserFilesystem(VirtCLIParser): + cls.add_arg("binary.cache.mode", "binary_cache_mode") + cls.add_arg("binary.lock.posix", "binary_lock_posix", is_onoff=True) + cls.add_arg("binary.lock.flock", "binary_lock_flock", is_onoff=True) ++ cls.add_arg("binary.sandbox.mode", "binary_sandbox_mode") + + cls.add_arg("driver.format", "driver_format") + cls.add_arg("driver.name", "driver_name") +diff --git a/virtinst/devices/filesystem.py b/virtinst/devices/filesystem.py +index 574844b6..02402bac 100644 +--- a/virtinst/devices/filesystem.py ++++ b/virtinst/devices/filesystem.py +@@ -49,12 +49,14 @@ class DeviceFilesystem(Device): + source_units = XMLProperty("./source/@units") + source_pool = XMLProperty("./source/@pool") + source_volume = XMLProperty("./source/@volume") ++ source_socket = XMLProperty("./source/socket") + + binary_path = XMLProperty("./binary/@path") + binary_xattr = XMLProperty("./binary/@xattr", is_onoff=True) + binary_cache_mode = XMLProperty("./binary/cache/@mode") + binary_lock_posix = XMLProperty("./binary/lock/@posix", is_onoff=True) + binary_lock_flock = XMLProperty("./binary/lock/@flock", is_onoff=True) ++ binary_sandbox_mode = XMLProperty("./binary/sandbox/@mode") + + def _type_to_source_prop(self): + if self.type == DeviceFilesystem.TYPE_TEMPLATE: +-- +2.34.1 + diff --git a/SOURCES/virt-manager-cli-introduce-resource-fibrechannel.appid-option.patch b/SOURCES/virt-manager-cli-introduce-resource-fibrechannel.appid-option.patch new file mode 100644 index 0000000..cc6a3fd --- /dev/null +++ b/SOURCES/virt-manager-cli-introduce-resource-fibrechannel.appid-option.patch @@ -0,0 +1,71 @@ +From ddedf5e1b34568adbbfed6a052bf96b7d1eda6f1 Mon Sep 17 00:00:00 2001 +From: Pavel Hrdina +Date: Tue, 14 Sep 2021 17:08:35 +0200 +Subject: [PATCH] cli: introduce --resource fibrechannel.appid option + +Signed-off-by: Pavel Hrdina +(cherry picked from commit 0953e1aea1fd16cd1825c03f3b032c7f12f3322f) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2011328 + +Signed-off-by: Jonathon Jongsma +--- + tests/data/cli/compare/virt-install-singleton-config-1.xml | 1 + + tests/test_cli.py | 2 +- + virtinst/cli.py | 1 + + virtinst/domain/resource.py | 3 ++- + 4 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/tests/data/cli/compare/virt-install-singleton-config-1.xml b/tests/data/cli/compare/virt-install-singleton-config-1.xml +index 518a0099..b50d806e 100644 +--- a/tests/data/cli/compare/virt-install-singleton-config-1.xml ++++ b/tests/data/cli/compare/virt-install-singleton-config-1.xml +@@ -19,6 +19,7 @@ + + + /virtualmachines/production ++ + + + hvm +diff --git a/tests/test_cli.py b/tests/test_cli.py +index 4b714e3e..aba1fe3c 100644 +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -480,7 +480,7 @@ c.add_compare(""" + --memorybacking hugepages=on + --features apic=off + --clock offset=localtime +---resource /virtualmachines/production ++--resource /virtualmachines/production,fibrechannel.appid=myapplication + --events on_crash=restart + --metadata genid_enable=yes + --sysinfo host +diff --git a/virtinst/cli.py b/virtinst/cli.py +index 8e5b13cd..e1a988f9 100644 +--- a/virtinst/cli.py ++++ b/virtinst/cli.py +@@ -1999,6 +1999,7 @@ class ParserResource(VirtCLIParser): + def _init_class(cls, **kwargs): + VirtCLIParser._init_class(**kwargs) + cls.add_arg("partition", "partition") ++ cls.add_arg("fibrechannel.appid", "fibrechannel_appid", can_comma=True) + + + ###################### +diff --git a/virtinst/domain/resource.py b/virtinst/domain/resource.py +index d0962db9..8ad3df54 100644 +--- a/virtinst/domain/resource.py ++++ b/virtinst/domain/resource.py +@@ -14,6 +14,7 @@ class DomainResource(XMLBuilder): + """ + + XML_NAME = "resource" +- _XML_PROP_ORDER = ["partition"] ++ _XML_PROP_ORDER = ["partition", "fibrechannel_appid"] + + partition = XMLProperty("./partition") ++ fibrechannel_appid = XMLProperty("./fibrechannel/@appid") +-- +2.31.1 + diff --git a/SOURCES/virt-manager-hostdev-use-method-get_mdev_uuid.patch b/SOURCES/virt-manager-hostdev-use-method-get_mdev_uuid.patch new file mode 100644 index 0000000..aeb5880 --- /dev/null +++ b/SOURCES/virt-manager-hostdev-use-method-get_mdev_uuid.patch @@ -0,0 +1,35 @@ +From 1bba2d4e7de4a921921f2ae5d0d09589a180b70b Mon Sep 17 00:00:00 2001 +From: Shalini Chellathurai Saroja +Date: Mon, 31 May 2021 21:54:27 +0200 +Subject: [PATCH] hostdev: use method get_mdev_uuid() + +Use method get_mdev_uuid() to retrieve the UUID of MDEV node device +object. + +Reviewed-by: Cole Robinson +Signed-off-by: Shalini Chellathurai Saroja + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1995131 + +(cherry picked from commit f87e96d3d40891f1403601abc389c24800ba1069) +Signed-off-by: Jonathon Jongsma +--- + virtinst/devices/hostdev.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/virtinst/devices/hostdev.py b/virtinst/devices/hostdev.py +index e8d0fae2..b3717430 100644 +--- a/virtinst/devices/hostdev.py ++++ b/virtinst/devices/hostdev.py +@@ -78,7 +78,7 @@ class DeviceHostdev(Device): + _("Don't know how to generate nodedev for mdev type id '%s'") % + nodedev.type_id) + +- self.uuid = nodedev.name[5:].replace('_', '-') ++ self.uuid = nodedev.get_mdev_uuid() + + else: + raise ValueError(_("Unknown node device type %s") % nodedev) +-- +2.31.1 + diff --git a/SOURCES/virt-manager-installer-Prefer-xorrisofs-over-genisoimage-mkisofs.patch b/SOURCES/virt-manager-installer-Prefer-xorrisofs-over-genisoimage-mkisofs.patch new file mode 100644 index 0000000..2fbe60b --- /dev/null +++ b/SOURCES/virt-manager-installer-Prefer-xorrisofs-over-genisoimage-mkisofs.patch @@ -0,0 +1,43 @@ +From 89766dae2418fb8fd9d54b7ce1d93a11d5faecdd Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Wed, 7 Apr 2021 09:37:53 -0400 +Subject: [PATCH] installer: Prefer xorrisofs over genisoimage/mkisofs + +Apparently it's the most likely version to exist in distros these +days. Particularly the other options may not be shipped in stock +RHEL9 + +Signed-off-by: Cole Robinson +(cherry picked from commit 3785abc6f0cb07c02ecc55760547a6f425513915) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1973236 + +Signed-off-by: Jonathon Jongsma +--- + virtinst/install/installerinject.py | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/virtinst/install/installerinject.py b/virtinst/install/installerinject.py +index 29150c8e..97742f6a 100644 +--- a/virtinst/install/installerinject.py ++++ b/virtinst/install/installerinject.py +@@ -45,10 +45,12 @@ def _run_initrd_commands(initrd, tempdir): + + + def _run_iso_commands(iso, tempdir, cloudinit=False): +- # Some distros do not link mkisofs to genisoimage (or vice-versa). As a +- # result of this, we have to actually check for both programs and use the +- # most appropriate one. +- programs = ["genisoimage", "mkisofs"] ++ # These three programs all behave similarly for our needs, and ++ # different distros only have some available. xorriso is apparently ++ # the actively maintained variant that should be available everywhere ++ # and without any license issues. Some more info here: ++ # https://wiki.debian.org/genisoimage ++ programs = ["xorrisofs", "genisoimage", "mkisofs"] + for program in programs: + if shutil.which(program): + break +-- +2.31.1 + diff --git a/SOURCES/virt-manager-man-fix-default-value-for-filesystem-accessmode-option.patch b/SOURCES/virt-manager-man-fix-default-value-for-filesystem-accessmode-option.patch new file mode 100644 index 0000000..3e3ce5f --- /dev/null +++ b/SOURCES/virt-manager-man-fix-default-value-for-filesystem-accessmode-option.patch @@ -0,0 +1,35 @@ +From 63a722890fa74f1f79346ebc2c4e158882d2bc0f Mon Sep 17 00:00:00 2001 +From: Jonathon Jongsma +Date: Tue, 8 Feb 2022 12:59:11 -0600 +Subject: [PATCH] man: fix default value for filesystem accessmode option + +Commit 85307b9bd2971cfc972c976c78e411f018647861 changed the default +value for 'accessmode' from 'passthrough' to 'mapped', but forgot to +update the documentation in the man page. + +Signed-off-by: Jonathon Jongsma +(cherry picked from commit 17cd4477b8b18051c5bc4d57da5ca611cfd2d372) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2045932 + +Signed-off-by: Jonathon Jongsma +--- + man/virt-install.rst | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/man/virt-install.rst b/man/virt-install.rst +index f75af635..e97a2266 100644 +--- a/man/virt-install.rst ++++ b/man/virt-install.rst +@@ -1197,7 +1197,7 @@ Some example suboptions: + + ``accessmode`` or ``mode`` + The access mode for the source directory from the guest OS. Only used with +- QEMU and type=mount. Valid modes are 'passthrough' (the default), 'mapped', ++ QEMU and type=mount. Valid modes are 'mapped' (the default), 'passthrough', + or 'squash'. See libvirt domain XML documentation for more info. + + ``source`` +-- +2.34.1 + diff --git a/SOURCES/virt-manager-nodedev-Improve-error-with-unknown-address-strings.patch b/SOURCES/virt-manager-nodedev-Improve-error-with-unknown-address-strings.patch new file mode 100644 index 0000000..17ca6c4 --- /dev/null +++ b/SOURCES/virt-manager-nodedev-Improve-error-with-unknown-address-strings.patch @@ -0,0 +1,32 @@ +From 6cdb34eb04e17315cfc7ee7cf6538bc6370c8d8b Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Tue, 11 Jan 2022 11:39:29 -0500 +Subject: [PATCH] nodedev: Improve error with unknown address strings + +Signed-off-by: Cole Robinson +(cherry picked from commit ed7b8769c4d48c89ed593138171bc8dbb1ead108) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2017840 + +Signed-off-by: Jonathon Jongsma +--- + virtinst/nodedev.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/virtinst/nodedev.py b/virtinst/nodedev.py +index 248723b9..f0bc769b 100644 +--- a/virtinst/nodedev.py ++++ b/virtinst/nodedev.py +@@ -235,7 +235,8 @@ def _AddressStringToHostdev(conn, addrstr): + hostdev.bus = bus + hostdev.device = device + else: +- raise RuntimeError("Unknown address type") ++ raise RuntimeError( ++ "Unknown hostdev address string format '%s'" % addrstr) + except Exception: + log.debug("Error parsing node device string.", exc_info=True) + raise +-- +2.34.1 + diff --git a/SOURCES/virt-manager-tests-verify-MDEV-support.patch b/SOURCES/virt-manager-tests-verify-MDEV-support.patch new file mode 100644 index 0000000..21538e4 --- /dev/null +++ b/SOURCES/virt-manager-tests-verify-MDEV-support.patch @@ -0,0 +1,230 @@ +From bbf159da53b34060ae8e5f3023a78a541fec333a Mon Sep 17 00:00:00 2001 +From: Shalini Chellathurai Saroja +Date: Mon, 31 May 2021 21:54:28 +0200 +Subject: [PATCH] tests: verify MDEV support + +Add tests to verify add, edit and remove features of mediated +devices. + +Reviewed-by: Cole Robinson +Signed-off-by: Shalini Chellathurai Saroja + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1995131 + +(cherry picked from commit 9d4002ee0f7088c490748ffb3144c006f4e39c68) +Signed-off-by: Jonathon Jongsma +--- + .../virt-xml-add-hostdev-mdev-start.xml | 12 +++++++ + .../cli/compare/virt-xml-add-hostdev-mdev.xml | 14 ++++++++ + tests/data/cli/compare/virt-xml-edit-all.xml | 7 ++++ + .../compare/virt-xml-edit-hostdev-mdev.xml | 11 +++++++ + .../compare/virt-xml-edit-simple-redirdev.xml | 2 +- + .../compare/virt-xml-remove-hostdev-mdev.xml | 15 +++++++++ + tests/data/testdriver/testsuite.xml | 32 +++++++++++++++++++ + tests/test_cli.py | 4 +++ + tests/utils.py | 2 +- + 9 files changed, 97 insertions(+), 2 deletions(-) + create mode 100644 tests/data/cli/compare/virt-xml-add-hostdev-mdev-start.xml + create mode 100644 tests/data/cli/compare/virt-xml-add-hostdev-mdev.xml + create mode 100644 tests/data/cli/compare/virt-xml-edit-hostdev-mdev.xml + create mode 100644 tests/data/cli/compare/virt-xml-remove-hostdev-mdev.xml + +diff --git a/tests/data/cli/compare/virt-xml-add-hostdev-mdev-start.xml b/tests/data/cli/compare/virt-xml-add-hostdev-mdev-start.xml +new file mode 100644 +index 00000000..3742d454 +--- /dev/null ++++ b/tests/data/cli/compare/virt-xml-add-hostdev-mdev-start.xml +@@ -0,0 +1,12 @@ ++ ++ ++ +++ +++ +++
+++ +++ ++ ++ ++ ++Domain 'test-state-shutoff' started successfully. +diff --git a/tests/data/cli/compare/virt-xml-add-hostdev-mdev.xml b/tests/data/cli/compare/virt-xml-add-hostdev-mdev.xml +new file mode 100644 +index 00000000..c2acff8f +--- /dev/null ++++ b/tests/data/cli/compare/virt-xml-add-hostdev-mdev.xml +@@ -0,0 +1,14 @@ ++ ++ ++ +++ +++ +++
+++ +++ ++ ++ ++ ++ ++Domain 'test-for-virtxml' defined successfully. ++Changes will take effect after the domain is fully powered off. +diff --git a/tests/data/cli/compare/virt-xml-edit-all.xml b/tests/data/cli/compare/virt-xml-edit-all.xml +index ed09effc..5bdee2aa 100644 +--- a/tests/data/cli/compare/virt-xml-edit-all.xml ++++ b/tests/data/cli/compare/virt-xml-edit-all.xml +@@ -8,6 +8,13 @@ +
+ + +++ ++ ++ ++ ++
++ ++
+ + + + +diff --git a/tests/data/cli/compare/virt-xml-edit-hostdev-mdev.xml b/tests/data/cli/compare/virt-xml-edit-hostdev-mdev.xml +new file mode 100644 +index 00000000..ef5523db +--- /dev/null ++++ b/tests/data/cli/compare/virt-xml-edit-hostdev-mdev.xml +@@ -0,0 +1,11 @@ ++ ++
++ ++-
+++
++ ++ ++ ++ ++Domain 'test-for-virtxml' defined successfully. ++Changes will take effect after the domain is fully powered off. +diff --git a/tests/data/cli/compare/virt-xml-edit-simple-redirdev.xml b/tests/data/cli/compare/virt-xml-edit-simple-redirdev.xml +index 52ffddfe..f1a0ff6c 100644 +--- a/tests/data/cli/compare/virt-xml-edit-simple-redirdev.xml ++++ b/tests/data/cli/compare/virt-xml-edit-simple-redirdev.xml +@@ -1,5 +1,5 @@ + +- ++
+ + - + - +diff --git a/tests/data/cli/compare/virt-xml-remove-hostdev-mdev.xml b/tests/data/cli/compare/virt-xml-remove-hostdev-mdev.xml +new file mode 100644 +index 00000000..d4c33804 +--- /dev/null ++++ b/tests/data/cli/compare/virt-xml-remove-hostdev-mdev.xml +@@ -0,0 +1,15 @@ ++ ++ ++ ++- ++- ++-
++- ++-
++- ++ ++ ++ ++ ++Domain 'test-for-virtxml' defined successfully. ++Changes will take effect after the domain is fully powered off. +diff --git a/tests/data/testdriver/testsuite.xml b/tests/data/testdriver/testsuite.xml +index fd255138..a073cbce 100644 +--- a/tests/data/testdriver/testsuite.xml ++++ b/tests/data/testdriver/testsuite.xml +@@ -259,6 +259,12 @@ + + + ++ ++ ++
++ ++
++ + + + +@@ -737,5 +743,31 @@ + + + ++ ++ mdev_8e37ee90_2b51_45e3_9b25_bf8283c03110 ++ /sys/devices/css0/0.0.0023/8e37ee90-2b51-45e3-9b25-bf8283c03110 ++ css_0_0_0023 ++ ++ vfio_mdev ++ ++ ++ ++ ++ ++ ++ ++ ++ mdev_b1ae8bf6_38b0_4c81_9d44_78ce3f520496 ++ /sys/devices/css0/0.0.0023/b1ae8bf6-38b0-4c81-9d44-78ce3f520496 ++ css_0_0_0023 ++ ++ vfio_mdev ++ ++ ++ ++ ++ ++ ++ + + +diff --git a/tests/test_cli.py b/tests/test_cli.py +index 092e087a..4b714e3e 100644 +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -1274,6 +1274,7 @@ c.add_compare("--edit mac=00:11:7f:33:44:55 --network target=nic55", "edit-selec + c.add_compare("--edit target=hda --disk boot_order=1", "edit-select-disk-bootorder") + c.add_compare("--edit path=/dev/null --disk path=,target=fdb,boot_order=12", "edit-disk-unset") # --disk matching, using empty value to unset path + c.add_compare("--edit --memballoon none", "edit-disable-memballoon") ++c.add_compare("--edit address.devno=0x0002 --hostdev address.devno=0x0008", "edit-hostdev-mdev") + + c = vixml.add_category("edit and start selection", "test-state-shutoff --print-diff --start") + c.add_compare("--define --edit target=vda --disk boot_order=1", "start-select-disk-bootorder") +@@ -1308,6 +1309,8 @@ c.add_compare("--remove-device --disk /dev/null", "remove-disk-path") + c.add_compare("--remove-device --video all", "remove-video-all") + c.add_compare("--remove-device --host-device 0x04b3:0x4485", "remove-hostdev-name") + c.add_compare("--remove-device --memballoon all", "remove-memballoon") ++c.add_compare("--add-device --hostdev mdev_8e37ee90_2b51_45e3_9b25_bf8283c03110", "add-hostdev-mdev") ++c.add_compare("--remove-device --hostdev mdev_b1ae8bf6_38b0_4c81_9d44_78ce3f520496", "remove-hostdev-mdev") + + c = vixml.add_category("add/rm devices and start", "test-state-shutoff --print-diff --start") + c.add_invalid("--add-device --pm suspend_to_disk=yes") # --add-device without a device +@@ -1318,6 +1321,7 @@ c.add_compare("--define --add-device --host-device usb_device_4b3_4485_noserial" + c.add_compare("--add-device --disk %(EXISTIMG1)s,bus=virtio,target=vdf", "add-disk-basic-start") + c.add_compare("--add-device --disk %(NEWIMG1)s,size=.01", "add-disk-create-storage-start") + c.add_compare("--remove-device --disk /dev/null", "remove-disk-path-start") ++c.add_compare("--add-device --hostdev mdev_8e37ee90_2b51_45e3_9b25_bf8283c03110", "add-hostdev-mdev-start") + + c = vixml.add_category("add/rm devices OS KVM", "--connect %(URI-KVM)s test --print-diff --define") + c.add_compare("--add-device --disk %(EXISTIMG1)s", "kvm-add-disk-os-from-xml") # Guest OS (none) from XML +diff --git a/tests/utils.py b/tests/utils.py +index 16ba26b4..62443ca8 100644 +--- a/tests/utils.py ++++ b/tests/utils.py +@@ -231,7 +231,7 @@ def diff_compare(actual_out, filename=None, expect_out=None): + open(filename, "w").write(actual_out) + expect_out = open(filename).read() + +- diff = xmlutil.diff(expect_out, actual_out, ++ diff = xmlutil.diff(expect_out.rstrip(), actual_out.rstrip(), + filename or '', "Generated output") + if diff: + raise AssertionError("Conversion outputs did not match.\n%s" % diff) +-- +2.31.1 + diff --git a/SOURCES/virt-manager-urlfetcher-Add-xorriso-ISOReader-implementation.patch b/SOURCES/virt-manager-urlfetcher-Add-xorriso-ISOReader-implementation.patch new file mode 100644 index 0000000..3521d45 --- /dev/null +++ b/SOURCES/virt-manager-urlfetcher-Add-xorriso-ISOReader-implementation.patch @@ -0,0 +1,200 @@ +From 2bda38a197a780a85e9ce448ea81a81fe866c981 Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Wed, 7 Apr 2021 11:45:00 -0400 +Subject: [PATCH] urlfetcher: Add xorriso ISOReader implementation + +xorisso is the still maintained isoinfo alternative, and may be +the only iso reading tool in RHEL9, so we need to support it. +Make it the default for our spec file and test suite too + +Signed-off-by: Cole Robinson +(cherry picked from commit f793986378f84bb409d2451bdb62ca08fd4cb5b4) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1973236 + +Signed-off-by: Jonathon Jongsma +--- + man/virt-install.rst | 2 +- + tests/test_cli.py | 12 ++++----- + virt-manager.spec | 4 +-- + virtinst/install/urldetect.py | 4 +-- + virtinst/install/urlfetcher.py | 48 +++++++++++++++++++++++++--------- + 5 files changed, 47 insertions(+), 23 deletions(-) + +diff --git a/man/virt-install.rst b/man/virt-install.rst +index 963f9564..f75af635 100644 +--- a/man/virt-install.rst ++++ b/man/virt-install.rst +@@ -617,7 +617,7 @@ ftp://host/path + An FTP server location containing an installable distribution image. + + ISO +- Probe the ISO and extract files using 'isoinfo' ++ Extract files directly from the ISO path + + DIRECTORY + Path to a local directory containing an installable distribution image. +diff --git a/tests/test_cli.py b/tests/test_cli.py +index 5e69a135..3534e0e2 100644 +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -39,7 +39,7 @@ MEDIA_DIR = os.path.relpath(utils.DATADIR + "/fakemedia", utils.TOPDIR) + UNATTENDED_DIR = XMLDIR + "/unattended" + OLD_OSINFO = utils.has_old_osinfo() + NO_OSINFO_UNATTEND = not unattended.OSInstallScript.have_new_libosinfo() +-HAS_ISOINFO = shutil.which("isoinfo") ++HAS_xorriso = shutil.which("xorriso") + + # We use this check as a surrogate for a released libosinfo with a bug + # fix we need to get full test coverage +@@ -100,9 +100,9 @@ def has_old_osinfo(): + return "osinfo is too old" + + +-def missing_isoinfo(): +- if not HAS_ISOINFO: +- return "isoinfo not installed" ++def missing_xorriso(): ++ if not HAS_xorriso: ++ return "xorriso not installed" + + + def no_osinfo_unattend_cb(): +@@ -995,8 +995,8 @@ c.add_compare("--connect " + utils.URIs.kvm_session + " --disk size=8 --os-varia + c.add_valid("--connect " + utils.URIs.kvm_session + " --install fedora21", prerun_check=has_old_osinfo) # hits some get_search_paths and media_upload code paths + + # misc KVM config tests +-c.add_compare("--disk none --location %(ISO-NO-OS)s,kernel=frib.img,initrd=/frob.img", "location-manual-kernel", prerun_check=missing_isoinfo) # --location with an unknown ISO but manually specified kernel paths +-c.add_compare("--disk %(EXISTIMG1)s --location %(ISOTREE)s --nonetworks", "location-iso", prerun_check=missing_isoinfo) # Using --location iso mounting ++c.add_compare("--disk none --location %(ISO-NO-OS)s,kernel=frib.img,initrd=/frob.img", "location-manual-kernel", prerun_check=missing_xorriso) # --location with an unknown ISO but manually specified kernel paths ++c.add_compare("--disk %(EXISTIMG1)s --location %(ISOTREE)s --nonetworks", "location-iso", prerun_check=missing_xorriso) # Using --location iso mounting + c.add_compare("--disk %(EXISTIMG1)s --cdrom %(ISOLABEL)s", "cdrom-centos-label") # Using --cdrom with centos CD label, should use virtio etc. + c.add_compare("--disk %(EXISTIMG1)s --install bootdev=network --os-variant rhel5.4 --cloud-init none", "kvm-rhel5") # RHEL5 defaults + c.add_compare("--disk %(EXISTIMG1)s --install kernel=%(ISO-WIN7)s,initrd=%(ISOLABEL)s,kernel_args='foo bar' --os-variant rhel6.4 --unattended none", "kvm-rhel6") # RHEL6 defaults. ISO paths are just to point at existing files +diff --git a/virt-manager.spec b/virt-manager.spec +index f523551b..3946c300 100644 +--- a/virt-manager.spec ++++ b/virt-manager.spec +@@ -71,8 +71,8 @@ Requires: python3-requests + Requires: libosinfo >= 0.2.10 + # Required for gobject-introspection infrastructure + Requires: python3-gobject-base +-# Required for pulling files from iso media with isoinfo +-Requires: genisoimage ++# Required for pulling files from iso media ++Requires: xorriso + + %description common + Common files used by the different virt-manager interfaces, as well as +diff --git a/virtinst/install/urldetect.py b/virtinst/install/urldetect.py +index a73b0bf1..f5ed0270 100644 +--- a/virtinst/install/urldetect.py ++++ b/virtinst/install/urldetect.py +@@ -40,9 +40,9 @@ class _DistroCache(object): + if path not in self._filecache: + try: + content = self._fetcher.acquireFileContent(path) +- except ValueError: ++ except ValueError as e: + content = None +- log.debug("Failed to acquire file=%s", path) ++ log.debug("Failed to acquire file=%s: %s", path, e) + self._filecache[path] = content + return self._filecache[path] + +diff --git a/virtinst/install/urlfetcher.py b/virtinst/install/urlfetcher.py +index 3cacab1a..835c9e40 100644 +--- a/virtinst/install/urlfetcher.py ++++ b/virtinst/install/urlfetcher.py +@@ -26,7 +26,7 @@ class _ISOReader: + def __init__(self, location): + self._location = location + +- def grabFile(self, url): ++ def grabFile(self, url, scratchdir): + raise NotImplementedError() + def hasFile(self, url): + raise NotImplementedError() +@@ -43,20 +43,50 @@ class _ISOinfoReader(_ISOReader): + def _make_file_list(self): + cmd = ["isoinfo", "-J", "-i", self._location, "-f"] + +- log.debug("Running isoinfo: %s", cmd) ++ log.debug("Generating iso filelist: %s", cmd) + output = subprocess.check_output(cmd, stderr=subprocess.DEVNULL) + return output.splitlines(False) + +- def grabFile(self, url): ++ def grabFile(self, url, scratchdir): ++ ignore = scratchdir + cmd = ["isoinfo", "-J", "-i", self._location, "-x", url] + +- log.debug("Running isoinfo: %s", cmd) ++ log.debug("Extracting iso file: %s", cmd) + return subprocess.check_output(cmd) + + def hasFile(self, url): + return url.encode("ascii") in self._cache_file_list + + ++class _XorrisoReader(_ISOReader): ++ def __init__(self, location): ++ super().__init__(location) ++ self._cache_file_list = self._make_file_list() ++ ++ def _make_file_list(self): ++ delim = "VIRTINST_BEGINLIST" ++ cmd = ["xorriso", "-indev", self._location, "-print", delim, "-find"] ++ ++ log.debug("Generating iso filelist: %s", cmd) ++ output = subprocess.check_output(cmd, ++ stderr=subprocess.DEVNULL, text=True) ++ return output.split(delim, 1)[1].strip().splitlines() ++ ++ def grabFile(self, url, scratchdir): ++ tmp = tempfile.NamedTemporaryFile( ++ prefix="virtinst-iso", suffix="-" + os.path.basename(url), ++ dir=scratchdir) ++ ++ cmd = ["xorriso", "-osirrox", "on", "-indev", self._location, ++ "-extract", url, tmp.name] ++ log.debug("Extracting iso file: %s", cmd) ++ subprocess.check_output(cmd) ++ return open(tmp.name, "rb").read() ++ ++ def hasFile(self, url): ++ return ("'.%s'" % url) in self._cache_file_list ++ ++ + ########################### + # Fetcher implementations # + ########################### +@@ -349,23 +379,17 @@ class _ISOURLFetcher(_URLFetcher): + + def _get_isoreader(self): + if not self._isoreader: +- self._isoreader = _ISOinfoReader(self.location) ++ self._isoreader = _XorrisoReader(self.location) + return self._isoreader + + def _grabber(self, url): +- """ +- Use isoinfo to grab the file +- """ + if not self._hasFile(url): + raise RuntimeError("iso doesn't have file=%s" % url) + +- output = self._get_isoreader().grabFile(url) ++ output = self._get_isoreader().grabFile(url, self.scratchdir) + return io.BytesIO(output), len(output) + + def _hasFile(self, url): +- """ +- Use isoinfo to list and search for the file +- """ + return self._get_isoreader().hasFile(url) + + +-- +2.31.1 + diff --git a/SOURCES/virt-manager-urlfetcher-Delete-the-isoinfo-ISOReader.patch b/SOURCES/virt-manager-urlfetcher-Delete-the-isoinfo-ISOReader.patch new file mode 100644 index 0000000..93fb64c --- /dev/null +++ b/SOURCES/virt-manager-urlfetcher-Delete-the-isoinfo-ISOReader.patch @@ -0,0 +1,78 @@ +From a3017ef3d61139362482d5f3c5d6bf056fe6fb6e Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Sat, 22 May 2021 12:18:22 -0400 +Subject: [PATCH] urlfetcher: Delete the 'isoinfo' ISOReader + +We didn't delete this in the last commit, mostly to make it easier +to revert this commit if it turns out we need to support both isoinfo +and xorriso. Right now I don't know of any reason why that should +be necessary but time will tell. + +If we do go that route it will take more work to teach urlfetcher +to dynamically detect the presence of one or the other, along with +similar tweaks. + +Signed-off-by: Cole Robinson +(cherry picked from commit 08d1a6a2ddd18f88222f9fdffa3f60f42a40bc67) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1973236 + +Signed-off-by: Jonathon Jongsma +--- + virtinst/install/urlfetcher.py | 38 +--------------------------------- + 1 file changed, 1 insertion(+), 37 deletions(-) + +diff --git a/virtinst/install/urlfetcher.py b/virtinst/install/urlfetcher.py +index 835c9e40..838a206a 100644 +--- a/virtinst/install/urlfetcher.py ++++ b/virtinst/install/urlfetcher.py +@@ -22,45 +22,9 @@ from ..logger import log + # isoreader abstraction # + ######################### + +-class _ISOReader: ++class _XorrisoReader(): + def __init__(self, location): + self._location = location +- +- def grabFile(self, url, scratchdir): +- raise NotImplementedError() +- def hasFile(self, url): +- raise NotImplementedError() +- +- +-class _ISOinfoReader(_ISOReader): +- """ +- Handle reading reading files off an iso +- """ +- def __init__(self, location): +- super().__init__(location) +- self._cache_file_list = self._make_file_list() +- +- def _make_file_list(self): +- cmd = ["isoinfo", "-J", "-i", self._location, "-f"] +- +- log.debug("Generating iso filelist: %s", cmd) +- output = subprocess.check_output(cmd, stderr=subprocess.DEVNULL) +- return output.splitlines(False) +- +- def grabFile(self, url, scratchdir): +- ignore = scratchdir +- cmd = ["isoinfo", "-J", "-i", self._location, "-x", url] +- +- log.debug("Extracting iso file: %s", cmd) +- return subprocess.check_output(cmd) +- +- def hasFile(self, url): +- return url.encode("ascii") in self._cache_file_list +- +- +-class _XorrisoReader(_ISOReader): +- def __init__(self, location): +- super().__init__(location) + self._cache_file_list = self._make_file_list() + + def _make_file_list(self): +-- +2.31.1 + diff --git a/SOURCES/virt-manager-urlfetcher-Factor-out-ISOReader-class.patch b/SOURCES/virt-manager-urlfetcher-Factor-out-ISOReader-class.patch new file mode 100644 index 0000000..c824c07 --- /dev/null +++ b/SOURCES/virt-manager-urlfetcher-Factor-out-ISOReader-class.patch @@ -0,0 +1,120 @@ +From dae2f3471a56f3967952e6951f60f523060c89a0 Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Wed, 7 Apr 2021 09:51:41 -0400 +Subject: [PATCH] urlfetcher: Factor out ISOReader class + +This contains all the isoinfo command logic. This will be used +to add an xorriso backend as well + +Signed-off-by: Cole Robinson +(cherry picked from commit b13b5e0f5edf8efabae643d28f12693f43f094db) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1973236 + +Signed-off-by: Jonathon Jongsma +--- + virtinst/install/urlfetcher.py | 64 +++++++++++++++++++++++++--------- + 1 file changed, 48 insertions(+), 16 deletions(-) + +diff --git a/virtinst/install/urlfetcher.py b/virtinst/install/urlfetcher.py +index f531fe50..3cacab1a 100644 +--- a/virtinst/install/urlfetcher.py ++++ b/virtinst/install/urlfetcher.py +@@ -18,6 +18,45 @@ import requests + from ..logger import log + + ++######################### ++# isoreader abstraction # ++######################### ++ ++class _ISOReader: ++ def __init__(self, location): ++ self._location = location ++ ++ def grabFile(self, url): ++ raise NotImplementedError() ++ def hasFile(self, url): ++ raise NotImplementedError() ++ ++ ++class _ISOinfoReader(_ISOReader): ++ """ ++ Handle reading reading files off an iso ++ """ ++ def __init__(self, location): ++ super().__init__(location) ++ self._cache_file_list = self._make_file_list() ++ ++ def _make_file_list(self): ++ cmd = ["isoinfo", "-J", "-i", self._location, "-f"] ++ ++ log.debug("Running isoinfo: %s", cmd) ++ output = subprocess.check_output(cmd, stderr=subprocess.DEVNULL) ++ return output.splitlines(False) ++ ++ def grabFile(self, url): ++ cmd = ["isoinfo", "-J", "-i", self._location, "-x", url] ++ ++ log.debug("Running isoinfo: %s", cmd) ++ return subprocess.check_output(cmd) ++ ++ def hasFile(self, url): ++ return url.encode("ascii") in self._cache_file_list ++ ++ + ########################### + # Fetcher implementations # + ########################### +@@ -302,39 +341,32 @@ class _LocalURLFetcher(_URLFetcher): + + + class _ISOURLFetcher(_URLFetcher): +- _cache_file_list = None ++ _isoreader = None + _is_iso = True + + def _make_full_url(self, filename): + return os.path.join("/", filename) + ++ def _get_isoreader(self): ++ if not self._isoreader: ++ self._isoreader = _ISOinfoReader(self.location) ++ return self._isoreader ++ + def _grabber(self, url): + """ + Use isoinfo to grab the file + """ + if not self._hasFile(url): +- raise RuntimeError("isoinfo didn't find file=%s" % url) +- +- cmd = ["isoinfo", "-J", "-i", self.location, "-x", url] +- +- log.debug("Running isoinfo: %s", cmd) +- output = subprocess.check_output(cmd) ++ raise RuntimeError("iso doesn't have file=%s" % url) + ++ output = self._get_isoreader().grabFile(url) + return io.BytesIO(output), len(output) + + def _hasFile(self, url): + """ + Use isoinfo to list and search for the file + """ +- if not self._cache_file_list: +- cmd = ["isoinfo", "-J", "-i", self.location, "-f"] +- +- log.debug("Running isoinfo: %s", cmd) +- output = subprocess.check_output(cmd, stderr=subprocess.DEVNULL) +- +- self._cache_file_list = output.splitlines(False) +- +- return url.encode("ascii") in self._cache_file_list ++ return self._get_isoreader().hasFile(url) + + + class DirectFetcher(_URLFetcher): +-- +2.31.1 + diff --git a/SOURCES/virt-manager-urlfetcher-Silence-xorisso-stderr-output.patch b/SOURCES/virt-manager-urlfetcher-Silence-xorisso-stderr-output.patch new file mode 100644 index 0000000..362db10 --- /dev/null +++ b/SOURCES/virt-manager-urlfetcher-Silence-xorisso-stderr-output.patch @@ -0,0 +1,31 @@ +From 900413f1fccc3a4f64f66066d851e3a03b821156 Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Fri, 30 Jul 2021 10:45:07 -0400 +Subject: [PATCH] urlfetcher: Silence xorisso stderr output + +Signed-off-by: Cole Robinson +(cherry picked from commit 8754a59d9228caacf43bcb1af6ad307da7217b09) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1973236 + +Signed-off-by: Jonathon Jongsma +--- + virtinst/install/urlfetcher.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/virtinst/install/urlfetcher.py b/virtinst/install/urlfetcher.py +index 838a206a..67a68002 100644 +--- a/virtinst/install/urlfetcher.py ++++ b/virtinst/install/urlfetcher.py +@@ -44,7 +44,7 @@ class _XorrisoReader(): + cmd = ["xorriso", "-osirrox", "on", "-indev", self._location, + "-extract", url, tmp.name] + log.debug("Extracting iso file: %s", cmd) +- subprocess.check_output(cmd) ++ subprocess.check_output(cmd, stderr=subprocess.DEVNULL) + return open(tmp.name, "rb").read() + + def hasFile(self, url): +-- +2.31.1 + diff --git a/SOURCES/virt-manager-virt-install-add-mediated-device.patch b/SOURCES/virt-manager-virt-install-add-mediated-device.patch new file mode 100644 index 0000000..1b7c408 --- /dev/null +++ b/SOURCES/virt-manager-virt-install-add-mediated-device.patch @@ -0,0 +1,256 @@ +From 06f12e246c206311bc5d7fcbd24ac02df1e3fff9 Mon Sep 17 00:00:00 2001 +From: Shalini Chellathurai Saroja +Date: Wed, 14 Apr 2021 17:18:55 +0200 +Subject: [PATCH] virt-install: add mediated device + +Add support to install a virtual server with passed-through mediated +device. Mediated device can be created using vGPU attached to +vfio_pci driver or DASD attached to vfio_ccw driver or APQNs attached +to vfio_ap driver. + +Reviewed-by: Cole Robinson +Signed-off-by: Shalini Chellathurai Saroja + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1995131 + +(cherry picked from commit 965480e8bc85caf8a4f36b4a2f07963067b63cf6) +Signed-off-by: Jonathon Jongsma +--- + .../cli/compare/virt-install-many-devices.xml | 19 +++++++++ + tests/data/testdriver/testdriver.xml | 40 +++++++++++++++++++ + tests/test_cli.py | 3 ++ + tests/test_nodedev.py | 30 ++++++++++++++ + virtinst/devices/hostdev.py | 36 ++++++++++++++++- + virtinst/nodedev.py | 4 ++ + 6 files changed, 131 insertions(+), 1 deletion(-) + +diff --git a/tests/data/cli/compare/virt-install-many-devices.xml b/tests/data/cli/compare/virt-install-many-devices.xml +index 49e9dcc7..3bd756b3 100644 +--- a/tests/data/cli/compare/virt-install-many-devices.xml ++++ b/tests/data/cli/compare/virt-install-many-devices.xml +@@ -592,6 +592,25 @@ + /dev/pty7 + + ++ ++
++ ++
++ ++ ++ ++ ++
++ ++ ++ ++
++ ++
++ ++
++ ++ + + + +diff --git a/tests/data/testdriver/testdriver.xml b/tests/data/testdriver/testdriver.xml +index ea90f0f7..b8d67bac 100644 +--- a/tests/data/testdriver/testdriver.xml ++++ b/tests/data/testdriver/testdriver.xml +@@ -3645,5 +3645,45 @@ ba + + + ++ ++ mdev_8e37ee90_2b51_45e3_9b25_bf8283c03110 ++ /sys/devices/css0/0.0.0023/8e37ee90-2b51-45e3-9b25-bf8283c03110 ++ css_0_0_0023 ++ ++ vfio_mdev ++ ++ ++ ++ ++ ++ ++ ++ ++ mdev_11f92c9d_b0b0_4016_b306_a8071277f8b9 ++ /sys/devices/vfio_ap/matrix/11f92c9d-b0b0-4016-b306-a8071277f8b9 ++ ap_matrix ++ ++ vfio_mdev ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ mdev_4b20d080_1b54_4048_85b3_a6a62d165c01 ++ /sys/devices/pci0000:00/0000:00:02.0/4b20d080-1b54-4048-85b3-a6a62d165c01 ++ pci_0000_06_00_0 ++ ++ vfio_mdev ++ ++ ++ ++ ++ ++ + + +diff --git a/tests/test_cli.py b/tests/test_cli.py +index 3534e0e2..092e087a 100644 +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -675,6 +675,9 @@ source.reservations.managed=no,source.reservations.source.type=unix,source.reser + --hostdev wlan0,type=net + --hostdev /dev/vdz,type=storage + --hostdev /dev/pty7,type=misc ++--hostdev mdev_8e37ee90_2b51_45e3_9b25_bf8283c03110,address.type=ccw,address.cssid=0xfe,address.ssid=0x1,address.devno=0x0008 ++--hostdev mdev_11f92c9d_b0b0_4016_b306_a8071277f8b9 ++--hostdev mdev_4b20d080_1b54_4048_85b3_a6a62d165c01,address.type=pci,address.domain=0x0000,address.bus=0x01,address.slot=0x01,address.function=0x0,address.zpci.uid=0x0001,address.zpci.fid=0x00000001 + + + --filesystem /source,/target,alias.name=testfsalias,driver.ats=on,driver.iommu=off,driver.packed=on +diff --git a/tests/test_nodedev.py b/tests/test_nodedev.py +index 406e321f..79678bc8 100644 +--- a/tests/test_nodedev.py ++++ b/tests/test_nodedev.py +@@ -126,6 +126,36 @@ def testDRMDevice(): + assert dev.get_devnode("frob") + + ++def testDASDMdev(): ++ conn = utils.URIs.open_testdriver_cached() ++ devname = "mdev_8e37ee90_2b51_45e3_9b25_bf8283c03110" ++ dev = _nodeDevFromName(conn, devname) ++ assert dev.name == devname ++ assert dev.parent == "css_0_0_0023" ++ assert dev.device_type == "mdev" ++ assert dev.type_id == "vfio_ccw-io" ++ ++ ++def testAPQNMdev(): ++ conn = utils.URIs.open_testdriver_cached() ++ devname = "mdev_11f92c9d_b0b0_4016_b306_a8071277f8b9" ++ dev = _nodeDevFromName(conn, devname) ++ assert dev.name == devname ++ assert dev.parent == "ap_matrix" ++ assert dev.device_type == "mdev" ++ assert dev.type_id == "vfio_ap-passthrough" ++ ++ ++def testPCIMdev(): ++ conn = utils.URIs.open_testdriver_cached() ++ devname = "mdev_4b20d080_1b54_4048_85b3_a6a62d165c01" ++ dev = _nodeDevFromName(conn, devname) ++ assert dev.name == devname ++ assert dev.parent == "pci_0000_06_00_0" ++ assert dev.device_type == "mdev" ++ assert dev.type_id == "nvidia-11" ++ ++ + # NodeDevice 2 Device XML tests + + def testNodeDev2USB1(): +diff --git a/virtinst/devices/hostdev.py b/virtinst/devices/hostdev.py +index 3e9de2ad..e8d0fae2 100644 +--- a/virtinst/devices/hostdev.py ++++ b/virtinst/devices/hostdev.py +@@ -4,6 +4,8 @@ + # This work is licensed under the GNU GPLv2 or later. + # See the COPYING file in the top-level directory. + ++import re ++ + from .device import Device + from ..nodedev import NodeDevice + from ..xmlbuilder import XMLProperty +@@ -53,16 +55,45 @@ class DeviceHostdev(Device): + self.scsi_unit = nodedev.lun + self.managed = False + ++ elif nodedev.device_type == nodedev.CAPABILITY_TYPE_MDEV: ++ self.type = "mdev" ++ ++ if nodedev.type_id == "vfio_ccw-io": ++ self.model = "vfio-ccw" ++ self.managed = "no" ++ ++ elif nodedev.type_id == "vfio_ap-passthrough": ++ self.model = "vfio-ap" ++ self.managed = "no" ++ ++ elif (re.match("^nvidia-[0-9]{2}", nodedev.type_id) or ++ re.match("^i915-GVTg_V[0-9]_[0-9]", nodedev.type_id)): ++ self.model = "vfio-pci" ++ self.managed = "yes" ++ self.display = "off" ++ self.ramfb = "off" ++ ++ else: ++ raise ValueError( # pragma: no cover ++ _("Don't know how to generate nodedev for mdev type id '%s'") % ++ nodedev.type_id) ++ ++ self.uuid = nodedev.name[5:].replace('_', '-') ++ + else: + raise ValueError(_("Unknown node device type %s") % nodedev) + + + _XML_PROP_ORDER = ["mode", "type", "managed", "vendor", "product", +- "domain", "bus", "slot", "function"] ++ "domain", "bus", "slot", "function", "model", ++ "display", "ramfb"] + + mode = XMLProperty("./@mode") + type = XMLProperty("./@type") + managed = XMLProperty("./@managed", is_yesno=True) ++ model = XMLProperty("./@model") ++ display = XMLProperty("./@display") ++ ramfb = XMLProperty("./@ramfb") + + vendor = XMLProperty("./source/vendor/@id") + product = XMLProperty("./source/product/@id") +@@ -92,6 +123,9 @@ class DeviceHostdev(Device): + # type=misc handling + storage_block = XMLProperty("./source/block") + ++ # type=mdev ++ uuid = XMLProperty("./source/address/@uuid") ++ + + ################## + # Default config # +diff --git a/virtinst/nodedev.py b/virtinst/nodedev.py +index 9d2c8f10..97841794 100644 +--- a/virtinst/nodedev.py ++++ b/virtinst/nodedev.py +@@ -40,6 +40,7 @@ class NodeDevice(XMLBuilder): + CAPABILITY_TYPE_SCSIBUS = "scsi_host" + CAPABILITY_TYPE_SCSIDEV = "scsi" + CAPABILITY_TYPE_DRM = "drm" ++ CAPABILITY_TYPE_MDEV = "mdev" + + @staticmethod + def lookupNodedevFromString(conn, idstring): +@@ -168,6 +169,9 @@ class NodeDevice(XMLBuilder): + if len(self.devnodes) > 0: + return self.devnodes[0] + ++ # type='mdev' options ++ type_id = XMLProperty("./capability/type/@id") ++ + + def _AddressStringToHostdev(conn, addrstr): + from .devices import DeviceHostdev +-- +2.31.1 + diff --git a/SOURCES/virt-manager-virt-manager-enable-MDEV-support.patch b/SOURCES/virt-manager-virt-manager-enable-MDEV-support.patch new file mode 100644 index 0000000..02de13c --- /dev/null +++ b/SOURCES/virt-manager-virt-manager-enable-MDEV-support.patch @@ -0,0 +1,164 @@ +From fe341d97aee2666dc378f89de4a957bc8ae35a21 Mon Sep 17 00:00:00 2001 +From: Shalini Chellathurai Saroja +Date: Mon, 7 Jun 2021 11:34:21 +0200 +Subject: [PATCH] virt-manager: enable MDEV support + +Enable virt-manager GUI to support add, edit, remove, hot-plug and +hot-unplug of mediated devices (like DASDs, APQNs and PCIs) in virtual +server. + +It is not possible to edit MDEV when a virtual server is in +running state, as this is not supported by libvirt. + +Reviewed-by: Cole Robinson +Signed-off-by: Shalini Chellathurai Saroja + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1995131 + +(cherry picked from commit 0e15cd51dfbdaa09f7d34ed1edce2f5416130361) +Signed-off-by: Jonathon Jongsma +--- + tests/data/testdriver/testdriver.xml | 39 ++++++++++++++++++++++++++++ + tests/uitests/test_addhardware.py | 6 +++++ + virtManager/addhardware.py | 19 +++++++++++++- + 3 files changed, 63 insertions(+), 1 deletion(-) + +diff --git a/tests/data/testdriver/testdriver.xml b/tests/data/testdriver/testdriver.xml +index b8d67bac..5875732a 100644 +--- a/tests/data/testdriver/testdriver.xml ++++ b/tests/data/testdriver/testdriver.xml +@@ -3645,6 +3645,27 @@ ba + + + ++ ++ css_0_0_0023 ++ /sys/devices/css0/0.0.0023 ++ computer ++ ++ vfio_ccw ++ ++ ++ 0x0 ++ 0x0 ++ 0x0023 ++ ++ ++ I/O subchannel (Non-QDIO) ++ vfio-ccw ++ 0 ++ ++ ++ ++ ++ + + mdev_8e37ee90_2b51_45e3_9b25_bf8283c03110 + /sys/devices/css0/0.0.0023/8e37ee90-2b51-45e3-9b25-bf8283c03110 +@@ -3658,6 +3679,24 @@ ba + + + ++ ++ ap_matrix ++ /sys/devices/vfio_ap/matrix ++ computer ++ ++ vfio_ap ++ ++ ++ ++ ++ VFIO AP Passthrough Device ++ vfio-ap ++ 65536 ++ ++ ++ ++ ++ + + mdev_11f92c9d_b0b0_4016_b306_a8071277f8b9 + /sys/devices/vfio_ap/matrix/11f92c9d-b0b0-4016-b306-a8071277f8b9 +diff --git a/tests/uitests/test_addhardware.py b/tests/uitests/test_addhardware.py +index ce3da57c..56acc2fa 100644 +--- a/tests/uitests/test_addhardware.py ++++ b/tests/uitests/test_addhardware.py +@@ -459,6 +459,12 @@ def testAddHosts(app): + app.click_alert_button("device is already in use by", "Yes") + lib.utils.check(lambda: details.active) + ++ # Add MDEV device ++ _open_addhw(app, details) ++ tab = _select_hw(addhw, "MDEV Host Device", "host-tab") ++ tab.find_fuzzy("mdev_8e37ee90_2b51_45e3_9b25_bf8283c03110", ++ "table cell").click() ++ _finish(addhw, check=details) + + + def testAddChars(app): +diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py +index cbf19f58..13b899c3 100644 +--- a/virtManager/addhardware.py ++++ b/virtManager/addhardware.py +@@ -249,6 +249,10 @@ class vmmAddHardware(vmmGObjectUI): + add_hw_option(_("PCI Host Device"), "system-run", PAGE_HOSTDEV, + nodedev_enabled, nodedev_errstr, "pci") + ++ add_hw_option(_("MDEV Host Device"), "system-run", PAGE_HOSTDEV, ++ self.conn.support.conn_nodedev(), ++ _("Connection does not support host device enumeration"), ++ "mdev") + add_hw_option(_("Video"), "video-display", PAGE_VIDEO, True, + _("Libvirt version does not support video devices.")) + add_hw_option(_("Watchdog"), "device_pci", PAGE_WATCHDOG, +@@ -656,6 +660,9 @@ class vmmAddHardware(vmmGObjectUI): + (dehex(hostdev.domain), dehex(hostdev.bus), + dehex(hostdev.slot), dehex(hostdev.function))) + ++ elif hostdev.uuid: ++ label += " %s" % (str(hostdev.uuid)) ++ + return label + + +@@ -775,6 +782,12 @@ class vmmAddHardware(vmmGObjectUI): + if dev.xmlobj.name == subdev.xmlobj.parent: + prettyname += " (%s)" % subdev.pretty_name() + ++ if devtype == "mdev": ++ for parentdev in self.conn.list_nodedevs(): ++ if dev.xmlobj.parent == parentdev.xmlobj.name: ++ prettyname = "%s %s" % ( ++ parentdev.pretty_name(), prettyname) ++ + model.append([dev.xmlobj, prettyname]) + + if len(model) == 0: +@@ -981,11 +994,13 @@ class vmmAddHardware(vmmGObjectUI): + + if page == PAGE_HOSTDEV: + # Need to do this here, since we share the hostdev page +- # between two different HW options ++ # between different HW options + row = self._get_hw_selection() + devtype = "usb_device" + if row and row[5] == "pci": + devtype = "pci" ++ if row and row[5] == "mdev": ++ devtype = "mdev" + self._populate_hostdev_model(devtype) + + if page == PAGE_CONTROLLER: +@@ -1036,6 +1051,8 @@ class vmmAddHardware(vmmGObjectUI): + row = self._get_hw_selection() + if row and row[5] == "pci": + return _("PCI Device") ++ if row and row[5] == "mdev": ++ return _("MDEV Device") + return _("USB Device") + + raise RuntimeError("Unknown page %s" % page) # pragma: no cover +-- +2.31.1 + diff --git a/SOURCES/virt-manager-virt-xml-add-support-for-mediated-devices.patch b/SOURCES/virt-manager-virt-xml-add-support-for-mediated-devices.patch new file mode 100644 index 0000000..7ef886d --- /dev/null +++ b/SOURCES/virt-manager-virt-xml-add-support-for-mediated-devices.patch @@ -0,0 +1,77 @@ +From d4a11d8f8a0b7990c9d349da2306c7f4103a43e0 Mon Sep 17 00:00:00 2001 +From: Shalini Chellathurai Saroja +Date: Mon, 31 May 2021 21:54:26 +0200 +Subject: [PATCH] virt-xml: add support for mediated devices + +Provide support to add/remove MDEV in a guest domain, which is in +shut-off or running state (hotplug/unplug). Also support update of +already existing MDEV device, when the guest domain is in shut-off +state. Please note that libvirt does not support update of MDEV +device, when the guest domain is in running state. + +Reviewed-by: Cole Robinson +Signed-off-by: Shalini Chellathurai Saroja + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1995131 + +(cherry picked from commit 9363e1e692bb0d01184ecc7991d61c95542f690b) +Signed-off-by: Jonathon Jongsma +--- + virtinst/nodedev.py | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/virtinst/nodedev.py b/virtinst/nodedev.py +index 97841794..f54a311c 100644 +--- a/virtinst/nodedev.py ++++ b/virtinst/nodedev.py +@@ -5,6 +5,7 @@ + # See the COPYING file in the top-level directory. + + import os ++import uuid + + from .logger import log + from .xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty +@@ -25,6 +26,16 @@ def _compare_int(nodedev_val, hostdev_val): + return (nodedev_val == hostdev_val or hostdev_val == -1) + + ++def _compare_uuid(nodedev_val, hostdev_val): ++ try: ++ nodedev_val = uuid.UUID(nodedev_val) ++ hostdev_val = uuid.UUID(hostdev_val) ++ except Exception: # pragma: no cover ++ return -1 ++ ++ return (nodedev_val == hostdev_val) ++ ++ + class DevNode(XMLBuilder): + XML_NAME = "devnode" + +@@ -82,6 +93,9 @@ class NodeDevice(XMLBuilder): + parent = XMLProperty("./parent") + device_type = XMLProperty("./capability/@type") + ++ def get_mdev_uuid(self): ++ return self.name[5:].replace('_', '-') ++ + def compare_to_hostdev(self, hostdev): + if self.device_type == "pci": + if hostdev.type != "pci": +@@ -101,6 +115,12 @@ class NodeDevice(XMLBuilder): + _compare_int(self.bus, hostdev.bus) and + _compare_int(self.device, hostdev.device)) + ++ if self.device_type == "mdev": ++ if hostdev.type != "mdev": ++ return False ++ ++ return _compare_uuid(self.get_mdev_uuid(), hostdev.uuid) ++ + return False + + +-- +2.31.1 + diff --git a/SPECS/virt-manager.spec b/SPECS/virt-manager.spec new file mode 100644 index 0000000..ebef992 --- /dev/null +++ b/SPECS/virt-manager.spec @@ -0,0 +1,1262 @@ +# -*- rpm-spec -*- + +%global with_guestfs 0 +%global default_hvs "qemu,xen,lxc" + + +# End local config + +Name: virt-manager +Version: 3.2.0 +Release: 14%{?dist}%{?extra_release} +%global verrel %{version}-%{release} + +Summary: Desktop tool for managing virtual machines via libvirt +License: GPLv2+ +BuildArch: noarch +URL: https://virt-manager.org/ +Source0: https://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz + +# Fix 'domain not found' race (bz #1901081) +Patch0001: 0001-virtinst-Fix-TOCTOU-in-domain-enumeration.patch +Patch2: virt-manager-installer-Prefer-xorrisofs-over-genisoimage-mkisofs.patch +Patch3: virt-manager-urlfetcher-Factor-out-ISOReader-class.patch +Patch4: virt-manager-urlfetcher-Add-xorriso-ISOReader-implementation.patch +Patch5: virt-manager-urlfetcher-Delete-the-isoinfo-ISOReader.patch +Patch6: virt-manager-urlfetcher-Silence-xorisso-stderr-output.patch +Patch7: virt-manager-virt-install-add-mediated-device.patch +Patch8: virt-manager-virt-xml-add-support-for-mediated-devices.patch +Patch9: virt-manager-hostdev-use-method-get_mdev_uuid.patch +Patch10: virt-manager-tests-verify-MDEV-support.patch +Patch11: virt-manager-virt-manager-enable-MDEV-support.patch +Patch12: virt-manager-cli-introduce-resource-fibrechannel.appid-option.patch +Patch13: virt-manager-Handle-new-nodedev-name-for-mediated-devices.patch +Patch14: virt-manager-cli-add-ioapic.driver-to-features.patch +Patch15: virt-manager-cli-filesystem-add-binary.sandbox.mode-and-source.socket.patch +Patch16: virt-manager-nodedev-Improve-error-with-unknown-address-strings.patch +Patch17: virt-manager-man-fix-default-value-for-filesystem-accessmode-option.patch + + +Requires: virt-manager-common = %{verrel} +Requires: python3-gobject +Requires: gtk3 +Requires: libvirt-glib >= 0.0.9 +Requires: gtk-vnc2 + +# We can work with gtksourceview 3 or gtksourceview4, pick the latest one +Requires: gtksourceview4 + +# virt-manager is one of those apps that people will often install onto +# a headless machine for use over SSH. This means the virt-manager dep +# chain needs to provide everything we need to get a usable app experience. +# Unfortunately nothing in our chain has an explicit dep on some kind +# of usable gsettings backend, so we explicitly depend on dconf so that +# user settings actually persist across app runs. +Requires: dconf + +# The vte291 package is actually the latest vte with API version 2.91, while +# the vte3 package is effectively a compat package with API version 2.90. +# virt-manager works fine with either, so pull the latest bits so there's +# no ambiguity. +Requires: vte291 + +# Weak dependencies for the common virt-manager usecase +Recommends: (libvirt-daemon-kvm or libvirt-daemon-qemu) +Recommends: libvirt-daemon-config-network + +# Optional inspection of guests +Suggests: python3-libguestfs + +BuildRequires: git +BuildRequires: gettext +BuildRequires: python3-devel +BuildRequires: python3-docutils + + +%description +Virtual Machine Manager provides a graphical tool for administering virtual +machines for KVM, Xen, and LXC. Start, stop, add or remove virtual devices, +connect to a graphical or serial console, and see resource usage statistics +for existing VMs on local or remote machines. Uses libvirt as the backend +management API. + + +%package common +Summary: Common files used by the different Virtual Machine Manager interfaces + +Requires: python3-argcomplete +Requires: python3-libvirt +Requires: python3-libxml2 +Requires: python3-requests +Requires: libosinfo >= 0.2.10 +# Required for gobject-introspection infrastructure +Requires: python3-gobject-base +# Required for pulling files from iso media +Requires: xorriso + +%description common +Common files used by the different virt-manager interfaces, as well as +virt-install related tools. + + +%package -n virt-install +Summary: Utilities for installing virtual machines + +Requires: virt-manager-common = %{verrel} +# For 'virsh console' +Requires: libvirt-client + +Provides: virt-install +Provides: virt-clone +Provides: virt-xml + +%description -n virt-install +Package includes several command line utilities, including virt-install +(build and install new VMs) and virt-clone (clone an existing virtual +machine). + + +%prep +%autosetup -S git_am -N + +git config gc.auto 0 + +%autopatch + + + +%build +%if %{default_hvs} +%global _default_hvs --default-hvs %{default_hvs} +%endif + +./setup.py configure \ + %{?_default_hvs} \ + --default-graphics=vnc + + +%install +./setup.py \ + --no-update-icon-cache --no-compile-schemas \ + install -O1 --root=%{buildroot} +%find_lang %{name} + +%if 0%{?py_byte_compile:1} +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#manual-bytecompilation +%py_byte_compile %{python3} %{buildroot}%{_datadir}/virt-manager/ +%endif + +# Replace '#!/usr/bin/env python3' with '#!/usr/bin/python3' +# The format is ideal for upstream, but not a distro. See: +# https://fedoraproject.org/wiki/Features/SystemPythonExecutablesUseSystemPython +for f in $(find %{buildroot} -type f -executable -print); do + sed -i "1 s|^#!/usr/bin/env python3|#!%{__python3}|" $f || : +done + + +%files +%doc README.md COPYING NEWS.md +%{_bindir}/%{name} + +%{_mandir}/man1/%{name}.1* + +%{_datadir}/%{name}/ui/*.ui +%{_datadir}/%{name}/virtManager + +%{_datadir}/%{name}/icons +%{_datadir}/icons/hicolor/*/apps/* + +%{_datadir}/applications/%{name}.desktop +%{_datadir}/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.xml +%{_datadir}/metainfo/%{name}.appdata.xml + + +%files common -f %{name}.lang +%dir %{_datadir}/%{name} + +%{_datadir}/%{name}/virtinst + + +%files -n virt-install +%{_mandir}/man1/virt-install.1* +%{_mandir}/man1/virt-clone.1* +%{_mandir}/man1/virt-xml.1* + +%{_datadir}/bash-completion/completions/virt-install +%{_datadir}/bash-completion/completions/virt-clone +%{_datadir}/bash-completion/completions/virt-xml + +%{_bindir}/virt-install +%{_bindir}/virt-clone +%{_bindir}/virt-xml + + +%changelog +* Wed Feb 9 2022 Jonathon Jongsma - 3.2.0-14 +- man: fix default value for filesystem accessmode option (rhbz#2045932) + +* Mon Feb 7 2022 Jonathon Jongsma - 3.2.0-13 +- cli: --filesystem: add binary.sandbox.mode and source.socket (rhbz#2045932) +- nodedev: Improve error with unknown address strings (rhbz#2017840) + +* Thu Jan 20 2022 Jonathon Jongsma - 3.2.0-12 +- cli: add 'ioapic.driver' to --features (rhbz#2039127) + +* Fri Nov 19 2021 Jonathon Jongsma - 3.2.0-11 +- Handle new nodedev name for mediated devices (rhbz#2023650) + +* Thu Nov 11 2021 Jonathon Jongsma - 3.2.0-10 +- cli: introduce --resource fibrechannel.appid option (rhbz#2011328) + +* Thu Sep 9 2021 Jonathon Jongsma - 3.2.0-9 +- virt-install: add mediated device (rhbz#1995131) +- virt-xml: add support for mediated devices (rhbz#1995131) +- hostdev: use method get_mdev_uuid() (rhbz#1995131) +- tests: verify MDEV support (rhbz#1995131) +- virt-manager: enable MDEV support (rhbz#1995131) + +* Tue Aug 10 2021 Mohan Boddu - 3.2.0-8 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Jul 30 2021 Jonathon Jongsma - 3.2.0-7 +- urlfetcher: Silence xorisso stderr output (rhbz#1973236) + +* Fri Jul 23 2021 Jonathon Jongsma - 3.2.0-6 +- installer: Prefer xorrisofs over genisoimage/mkisofs (rhbz#1973236) +- urlfetcher: Factor out ISOReader class (rhbz#1973236) +- urlfetcher: Add xorriso ISOReader implementation (rhbz#1973236) +- urlfetcher: Delete the 'isoinfo' ISOReader (rhbz#1973236) +- Add gating.yaml for RHEL-9 (rhbz#1984222) + +* Wed Jun 09 2021 Jonathon Jongsma - 3.2.0-5 +- Disable spice options in virt-manager. Resolves: rhbz#1946939 + +* Fri Apr 16 2021 Mohan Boddu - 3.2.0-4 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Wed Jan 27 2021 Fedora Release Engineering - 3.2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jan 11 2021 Cole Robinson - 3.2.0-2 +- Fix 'domain not found' race (bz #1901081) + +* Sat Nov 14 2020 Cole Robinson - 3.2.0-1 +- Update to version 3.2.0 +- Slim down filesystem device editor UI +- Fix TOCTTOU virt-install bugs (Martin Pitt) +- Several other bug fixes + +* Wed Sep 30 2020 Cole Robinson - 3.1.0-1 +- Update to version 3.1.0 + +* Tue Sep 15 2020 Cole Robinson - 3.0.0-1 +- Update to version 3.0.0 + +* Mon Aug 31 2020 Cole Robinson - 2.2.1-6 +- spec: Switch to latest Fedora bytecompile macros + +* Sat Aug 01 2020 Fedora Release Engineering - 2.2.1-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 2.2.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jan 31 2020 Fedora Release Engineering - 2.2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jul 27 2019 Fedora Release Engineering - 2.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jul 03 2019 Cole Robinson - 2.2.1-1 +- Rebased to version 2.2.1 +- CVE-2019-10183: Replace --unattended user-password and admin-password with + user-password-file and admin-password-file (Fabiano Fidêncio) +- Consistent --memballoon default across non-x86 (Andrea Bolognani) +- virt-install: add --numatune memnode.* (Athina Plaskasoviti) +- Drop hard dep on gtksourceview4, gtksourceview3 is fine as well + +* Tue Jun 18 2019 Cole Robinson - 2.2.0-2 +- Add missing dep on gtksourceview + +* Mon Jun 17 2019 Cole Robinson - 2.2.0-1 +- Rebased to version 2.2.0 +- libvirt XML viewing and editing UI for new and existing domain, pools, + volumes, networks +- virt-install: libosinfo --unattended support (Fabiano Fidêncio, Cole + Robinson) +- Improve CPU model security defaults (Pavel Hrdina) +- virt-install: new --install option. Ex: virt-install --install fedora29 +- virt-install: new --install kernel=,initrd= +- virt-install: --disk, --memory, --name defaults from libosinfo (Fabiano + Fidêncio, Cole Robinson) +- virt-install: add device suboption aliases which consistently match + libvirt XML naming +- virt-xml: new --start, --no-define options (Marc Hartmayer) +- virt-install: Add driver_queues argument to --controller (Vasudeva Kamath) +- RISC-V support (Andrea Bolognani) +- Device default improvements for non-x86 KVM (Andrea Bolognani) +- Redesigned 'New Network' wizard +- libguestfs inspection improvements (Pino Toscano) +- virt-install: Add support for xenbus controller (Jim Fehlig) +- cli: Add --disk wwn=,rawio= (Athina Plaskasoviti) +- cli: Add --memballoon autodeflate=,stats.period= (Athina Plaskasoviti) +- cli: Add --iothreads (Athina Plaskasoviti) +- cli: Add --numatune memory.placement (Athina Plaskasoviti) +- cli: Add --launchSecurity option (Erik Skultety) +- cli: Fill in --memorybacking options +- cli: --smartcard: support database= and certificate[0-9]*= +- cli: --sysinfo: Add chasis suboptions +- cli: --metadata: add genid= and genid_enable= +- cli: --vcpus: add vcpus.vcpu[0-9]* config +- cli: fill in all common char source options for --serial, --parellel, + --console, --channel, --smartcard, --rng, --redirdev + +* Wed Apr 03 2019 Cole Robinson - 2.1.0-2 +- Fix --initrd-inject with f30 URLs (bz #1686464) + +* Sun Feb 03 2019 Cole Robinson - 2.1.0-1 +- Rebased to version 2.1.0 +- Bash autocompletion support (Lin Ma, Cole Robinson) +- UI and command line --vsock support (Slavomir Kaslev) +- virt-xml: Add --os-variant option (Andrea Bolognani) +- virt-install: use libosinfo cpu, mem, disk size defaults (Fabiano + Fidencio) +- virt-install: Better usage of libosinfo -unknown distro IDs (Fabiano + Fidencio) +- virt-install: More usage of libosinfo for ISO --location detection +- virt-install: Add --location LOCATION,kernel=X,initrd=Y for pointing to + kernel/initrd in media that virt-install/libosinfo fails to detect + +* Sun Feb 03 2019 Fedora Release Engineering - 2.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Oct 15 2018 Cole Robinson - 2.0.0-1 +- Rebased to version 2.0.0 +- Finish port to Python 3 +- Improved VM defaults: q35 PCIe, usb3, CPU host-model +- Search based OS selection UI for new VMs +- Track OS name for lifetime of domain in XML +- Host interface management UI has been completely removed +- Show domain IP on interface details page + +* Fri Sep 07 2018 Cole Robinson - 1.6.0-1.3.3.git3bc7ff24c +- Enable arm32+uefi (bz #1613996) + +* Sat Jul 14 2018 Fedora Release Engineering - 1.6.0-0.3.git3bc7ff24c +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 1.6.0-0.2.git3bc7ff24c +- Rebuilt for Python 3.7 + +* Thu Apr 26 2018 Cole Robinson - 1.6.0-0.1.git3bc7ff24c +- Update to latest git snapshot, contains python3 port + +* Wed Feb 28 2018 Cole Robinson - 1.5.1-1 +- Rebased to version 1.5.1 +- Fix disk/net/mem stats graphs + +* Wed Feb 07 2018 Iryna Shcherbina - 1.5.0-2 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Tue Feb 06 2018 Cole Robinson - 1.5.0-1 +- Rebased to version 1.5.0 +- python3 prep work (Radostin Stoyanov, Cole Robinson, Cédric Bosdonnat) +- Switch --location ISO to use isoinfo (Andrew Wong) +- virt-install: add --cpu numa distance handling (Menno Lageman) +- virt-install: fix --disk for rbd volumes with auth (Rauno Väli) +- virt-install: add --cputune vcpupin handling (Wim ten Have) +- details ui: Showing attached scsi devices per controller (Lin Ma) +- network ui: Show details about SR-IOV VF pool (Lin Ma) +- Greatly expand UI test suite coverage + +* Tue Feb 06 2018 Cole Robinson - 1.5.0-1 +- Rebased to version 1.5.0 +- python3 prep work (Radostin Stoyanov, Cole Robinson, Cédric Bosdonnat) +- Switch --location ISO to use isoinfo (Andrew Wong) +- virt-install: add --cpu numa distance handling (Menno Lageman) +- virt-install: fix --disk for rbd volumes with auth (Rauno Väli) +- virt-install: add --cputune vcpupin handling (Wim ten Have) +- details ui: Showing attached scsi devices per controller (Lin Ma) +- network ui: Show details about SR-IOV VF pool (Lin Ma) +- Greatly expand UI test suite coverage + +* Fri Jan 05 2018 Igor Gnatenko - 1.4.3-3 +- Remove obsolete scriptlets + +* Tue Nov 21 2017 Cole Robinson - 1.4.3-2 +- Fix 'Add Hardware' wizard for non-x86 guests (bz #1505532) + +* Tue Sep 19 2017 Cole Robinson - 1.4.3-1 +- Rebased to version 1.4.3 +- Improve install of debian/ubuntu non-x86 media (Viktor Mihajlovski, Andrew + Wong) +- New virt-install --graphics listen.* (Pavel Hrdina) +- New virt-install --disk snapshot_policy= (Pavel Hrdina) +- New virt-install --cpu cache.* (Lin Ma) +- Several bug fixes + +* Wed Aug 09 2017 Cole Robinson - 1.4.2-1 +- Rebased to version 1.4.2 +- New VM wixard virt-bootstrap integration (Radostin Stoyanov) +- New VM wizard support for virtuozzo containers (Mikhail Feoktistov) +- network UI: add support to create SR-IOV VF pool (Lin Ma) +- Nicer OS list in New VM wizard (Pino Toscano) +- Better defaults for UEFI secureboot builds (Pavel Hrdina) +- Fix defaults for aarch64 VMs if graphics are requested +- virt-install: new --memdev option (Pavel Hrdina) +- virt-install: add --disk logical/physical_block_size (Yuri Arabadji) +- virt-install: add --features hyperv_reset=, hyperv_synic= (Venkat Datta N + H) + +* Thu Jul 27 2017 Fedora Release Engineering - 1.4.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Mar 22 2017 Cole Robinson - 1.4.1-2 +- Fix broken it/ko translations (bz #1433800) + +* Mon Mar 13 2017 Cole Robinson - 1.4.1-1 +- Rebased to version 1.4.1 +- storage/nodedev event API support (Jovanka Gulicoska) +- UI options for enabling spice GL (Marc-André Lureau) +- Add default virtio-rng /dev/urandom for supported guest OS +- Cloning and rename support for UEFI VMs (Pavel Hrdina) +- libguestfs inspection UI improvements (Pino Toscano) +- virt-install: Add --qemu-commandline +- virt-install: Add --network vhostuser (Chen Hanxiao) +- virt-install: Add --sysinfo (Charles Arnold) + +* Sat Feb 11 2017 Fedora Release Engineering - 1.4.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Dec 13 2016 Cole Robinson - 1.4.0-5 +- Fix version check for spice GL support +- Don't return virtio1.0-net as a valid device name (bz #1399083) +- Fix window size tracking on wayland (bz #1375175) +- Fix 'resize to VM' on wayland (bz #1397598) + +* Sun Nov 06 2016 Cole Robinson - 1.4.0-4 +- Fix fedora24 installs from incorrectly using virtio-input (bz #1391522) +- Fix error checking extra_args for console argument + +* Wed Jun 29 2016 Cole Robinson - 1.4.0-3 +- Fix italian translation from breaking the app (bz #1350185) + +* Sat Jun 18 2016 Cole Robinson - 1.4.0-2 +- Fix executing virt-* scripts (bz #1347938) + +* Sat Jun 18 2016 Cole Robinson - 1.4.0-1 +- Rebased to version 1.4.0 + +* Fri May 20 2016 Cole Robinson - 1.3.2-4.20160520git2204de62d9 +- Rebase to latest git +- Update translations (bz #1323015) +- Fix rawhide URL installs (bz #1322011) +- Update viewer to work with spice GL + +* Thu Mar 17 2016 Cole Robinson - 1.3.2-3 +- Fix screenshot on F24 rawhide (bz #1297988) +- Fix URL installs when content-length header missing (bz #1297900) + +* Fri Feb 05 2016 Fedora Release Engineering - 1.3.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Dec 24 2015 Cole Robinson - 1.3.2-1 +- Rebased to version 1.3.2 +- Fix dependency issues with vte (bz #1290262) + +* Sun Dec 06 2015 Cole Robinson - 1.3.1-1 +- Rebased to version 1.3.1 +- Fix command line API on RHEL7 pygobject + +* Wed Nov 25 2015 Cole Robinson - 1.3.0-1 +- Rebased to version 1.3.0 +- Error when trying to modify existing 9p share (bz #1257565) +- virt-manager tries to create vmport device on non-x86 backends (bz #1259998) +- Details/Virtual networks: Allow manually specifying a bridge for + qemu:///session (bz #1212443) +- [RFE] Improve Solaris 10 x86-64 support in virt-manager (bz #1262093) +- No system tray icon in Cinnamon session (bz #1257949) +- virt-install does not remove orphaned images on failure (bz #1212617) +- virt-manager does not warn if it cannot find the network (bz #1212616) +- Storage volume manager looses focus when a volume is deleted (bz #1279861) +- Storage volume manager does not update free space (bz #1279940) +- Reboot/Shutdown buttons does not work on aarch64 (bz #1212826) + +* Tue Aug 11 2015 Cole Robinson - 1.2.1-3 +- Fix errors with missing nodedevs (bz #1225771) +- Fix CDROM media change if device is bootable (bz #1229819) +- Fix adding iscsi pools (bz #1231558) +- spec: Add LXC to default connection list (bz #1235972) +- Fix backtrace when reporting OS error (bz #1241902) +- Raise upper limits for lxc ID namespaces (bz #1244490) +- Fix 'copy host CPU definition' +- Fix displaying VM machine type when connecting to old libvirt +- Fix qemu:///session handling in 'Add Connection' dialog +- Fix default storage path for qemu:///session, it should be .local/share/... + +* Fri Jun 19 2015 Fedora Release Engineering - 1.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Jun 06 2015 Cole Robinson - 1.2.1-1 +- Rebased to version 1.2.1 +- Bugfix release +- Fix connecting to older libvirt versions (Michał Kępień) +- Fix connecting to VM console with non-IP hostname (Giuseppe Scrivano) +- Fix addhardware/create wizard errors when a nodedev disappears +- Fix adding a second cdrom via customize dialog + +* Mon May 04 2015 Cole Robinson - 1.2.0-1 +- Rebased to version 1.2.0 + +* Mon Apr 13 2015 Cole Robinson - 1.1.0-7.git6dbe19bd8 +- Catch ppc64le domaincapabilities errors (bz #1209723) +- Fix missing install options for ppc64le (bz #1209720) +- Allow adding SATA CDROM devices for q35 (bz #1207834) +- Fix crashes with ssh spice connections (bz #1135808) +- Drop incorrect dep on gnome-icon-theme (bz #1207061) + +* Fri Mar 27 2015 Cole Robinson - 1.1.0-6.git8ca8490c +- Update to latest git +- Fix new VM disk image names when VM name changes (bz #1169141) +- Fix missing virt-install dep on pygobject (bz #1195794) +- Fix changing VM video type away from qxl (bz #1182710) +- Don't use vmvga for ubuntu VMs on remote centos hosts (bz #1147662) +- Clear vendor field when changing CPU (bz #1190851) +- Drop bogus network domain name validation (bz #1195873) +- Fix Fedora URL examples in virt-install man page (bz #1172818) +- Fix misleading virt-install text after --import install (bz #1180558) + +* Sun Feb 22 2015 Cole Robinson - 1.1.0-5.git310f6527 +- Fix BuildRequires for f22/rawhide + +* Sun Nov 16 2014 Cole Robinson - 1.1.0-4.git310f6527 +- Fix crash when rebooting VMs after install (bz #1135546) +- Fix dep on libosinfo (bz #1159370) +- Fix PCI/USB hotplug (bz #1146297) + +* Tue Sep 23 2014 Cole Robinson - 1.1.0-3.git310f6527 +- Fix defaults for arm and aarch64 VMs + +* Mon Sep 22 2014 Cole Robinson - 1.1.0-2.git30db9ece2 +- Fix app hanging at connection startup with remote host (bz #1123266) +- Fix several issues creating host bridges (bz #1122743) +- Only use 2 usb redir devs by default to free up USB ports (bz #1135488) +- Create qemu-ga channels for rhel/centos 6/7 VMs (bz #1139109) + +* Sun Sep 07 2014 Cole Robinson - 1.1.0-1 +- Rebased to version 1.1.0 +- Switch to libosinfo as OS metadata database (Giuseppe Scrivano) +- Use libosinfo for OS detection from CDROM media labels (Giuseppe + Scrivano) +- Use libosinfo for improved OS defaults, like recommended disk size + (Giuseppe Scrivano) +- virt-image tool has been removed, as previously announced +- Enable Hyper-V enlightenments for Windows VMs +- Revert virtio-console default, back to plain serial console +- Experimental q35 option in new VM 'customize' dialog +- UI for virtual network QoS settings (Giuseppe Scrivano) +- virt-install: --disk discard= support (Jim Minter) +- addhardware: Add spiceport UI (Marc-André Lureau) +- virt-install: --events on_poweroff etc. support (Chen Hanxiao) +- cli --network portgroup= support and UI support +- cli --boot initargs= and UI support +- addhardware: allow setting controller model (Chen Hanxiao) +- virt-install: support setting hugepage options (Chen Hanxiao) + +* Sun Jun 08 2014 Fedora Release Engineering - 1.0.1-3.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Apr 29 2014 Cole Robinson - 1.0.1-3 +- filesystem: Fix target validation when editing device (bz #1089422) +- details: Explicit warn that 'format' doesn't change image format (bz + #1089457) +- snapshots: Fix screenshot with qxl+spice (bz #1089780) +- Fix using storage when the directory name contains whitespace (bz #1091384) +- packageutils: Fix install when one package is already installed (bz + #1090181) + +* Wed Apr 16 2014 Cole Robinson - 1.0.1-2 +- gfxdetails: Show port number for active autoport VM (bz #1081614) +- connection: Hook into domain balloon event (bz #1081424) +- details: Fix showing vcpus values in 'customize' dialog (bz #1083903) +- details: Fix changing graphics type (bz #1083903) +- createpool: Clarify iscsi IQN fields (bz #1084011) +- More fixes for errors on libvirtd disconnect (bz #1069351) + +* Sat Mar 22 2014 Cole Robinson - 1.0.1-1 +- Rebased to version 1.0.1 +- virt-install/virt-xml: New --memorybacking option (Chen Hanxiao) +- virt-install/virt-xml: New --memtune option (Chen Hanxiao) +- virt-manager: UI for LXC (Chen Hanxiao) +- virt-manager: gsettings key to disable keygrab (Kjö Hansi Glaz) +- virt-manager: Show domain state reason in the UI (Giuseppe Scrivano) +- Fix a number of bugs found since the 1.0.0 release + +* Mon Mar 10 2014 Cole Robinson - 1.0.0-6 +- connection: Handle errors when deregistering events on close (bz #1069351) + +* Fri Mar 07 2014 Cole Robinson - 1.0.0-5 +- addhardware: Fix adding disk through 'customize' dialog (bz #1073808) + +* Thu Mar 06 2014 Cole Robinson - 1.0.0-4 +- virt-convert: better error if unar is not installed +- details: Fix fallback if fetching CPU models fails (bz #1072704) +- fsdetails: Fix adding a filesystem device (bz #1073067) +- virt-install: Fix --location iso again, and test it (bz #1071513) +- Handle libvirt generating invalid volume XML (bz #1072770) + +* Fri Feb 28 2014 Cole Robinson - 1.0.0-3 +- Fix creating storage paths if directory is all digits (bz #1069351) +- Properly close connection if tick fails (bz #1069351) +- virt-manager: Handle unrefreshed storage pools (bz #1070883) +- Fix unsetting 'auto resize' console property + +* Tue Feb 18 2014 Cole Robinson - 1.0.0-2 +- Fix open connection->lxc +- Fix issues creating ppc64 guests +- Fix generating disk targets from customize->addhw + +* Fri Feb 14 2014 Cole Robinson - 1.0.0-1 +- Rebased to version 1.0.0 +- New tool virt-xml: Edit libvirt XML in one shot from the command line +- Improved defaults: qcow2, USB2, host CPU model, guest agent channel +- Introspect command line options like --disk=? or --network=help + +* Sun Nov 10 2013 Cole Robinson - 0.10.0-5.git1ffcc0cc +- Fix running virt-manager on rawhide (bz #1024569) +- Fix vcpu vs. maxvcpu UI (bz #1016318) +- Fix app startup when run as root (bz #1016435) +- Release serial console when details window is closed (bz #1016445) +- Clarify snapshot VM state UI (bz #1016604) +- Fix adding qemu-guest-agent by default (bz #1016613) +- Fix first run app install (bz #1016825) +- Fix error reporting if initrd fetch fails (bz #1017419) +- Fix error reporting if app is run with no DISPLAY (bz #1021482) +- Fix usage of install media in /home/crobinso (bz #1025355) + +* Sun Oct 06 2013 Cole Robinson - 0.10.0-4.git79196cdf +- Fix cdrom ordering if added via 'customize' (bz #905439) +- Default to spice/qxl for virt-install (bz #911734) +- Fill in cache and io values for new VMs (bz #967643) +- Add dep on dconf (bz #1012884) + +* Tue Sep 24 2013 Cole Robinson - 0.10.0-3.gita2e52067 +- Sync with git +- Don't try to launch multiple ssh askpass dialogs at once (bz #811346) +- Fix confusion when multiple progress dialogs are run (bz #1003101) +- Fix error adding macvtap nic (bz #1006324) +- Add an appdata file (bz #1011120) +- virt-install: fix nfs:// style URLs (bz #1011177) +- Fix spice with TLS (bz #904295) +- Reduce impact of memory leak (bz #972371) +- Fix parsing rawhide .treeinfo (bz #989162) + +* Wed Aug 21 2013 Cole Robinson 0.10.0-2.git948b5359 +- Update to git snapshot for ARM support + +* Sun Aug 04 2013 Fedora Release Engineering - 0.10.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jun 19 2013 Cole Robinson - 0.10.0-1 +- Rebased to version 0.10.0 +- Fix screenshots (bz #969410) +- Add Fedora 19 osdict option (bz #950230) +- Fix loading libguestfs OS icons (bz #905238) +- Make packagekit search cancellable (bz #973777) +- Fix freeze on guest shutdown if serial console connected (bz #967968) + +* Mon May 27 2013 Cole Robinson - 0.10.0-0.5.gitde1695b2 +- Fix default graphics, should be spice+qxl (bz #965864) +- Check for libvirt default network package on first run (bz #950329) +- Fix changing VM cirrus->QXL (bz #928882) + +* Wed May 15 2013 Cole Robinson - 0.10.0-0.4.gitb68faac8 +- Drop bogus packagekit check for avahi-tools (bz #963472) + +* Wed May 15 2013 Cole Robinson - 0.10.0-0.3.gitb68faac8 +- Fix error creating QEMU guests (bz #962569) + +* Thu May 09 2013 Cole Robinson - 0.10.0-0.2.gitb68faac8 +- Fix dep on vte3 (bz #958945) +- Fix dep on virt-manager-common (bz #958730) +- Fix crash when installing from ISO media (bz #958641) +- Fix poor error reporting with unknown CLI option (bz #958730) + +* Mon Apr 29 2013 Cole Robinson - 0.10.0-0.1.gitd3f9bc8e +- Update to git snapshot for next release + +* Mon Apr 01 2013 Cole Robinson - 0.9.5-1 +- Rebased to version 0.9.5 +- Enable adding virtio-scsi disks (Chen Hanxiao) (bz 887584) +- Support security auto-relabel setting (Martin Kletzander) +- Support disk iotune settings (David Shane Holden) +- Support 'reset' as a reboot option (John Doyle) +- Don't pull in non-native qemu packages on first run (bz 924469) +- Don't create LVM volumes with alloc=0, it doesn't work (bz 872162) +- Fix storage browser hang on KDE (bz 880781) +- Fix package installation on KDE (bz 882024) + +* Fri Mar 01 2013 Cole Robinson - 0.9.4-5 +- Add explicit dep on pod2man (bz #914562) + +* Fri Feb 15 2013 Fedora Release Engineering - 0.9.4-4.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Dec 17 2012 Cole Robinson - 0.9.4-4 +- Use correct KVM package names on first run (bz #873878) +- network: fix parsing ip blocks with prefix= (bz #872814) +- Don't recommend all of libvirt, just the kvm bits (bz #872246) + +* Tue Oct 30 2012 Cole Robinson - 0.9.4-3 +- Fix first run packagekit interaction (bz #870851) +- Fix another backtrace if guest is pmsuspended (bz #871237) + +* Wed Oct 24 2012 Cole Robinson - 0.9.4-2 +- Fix KVM package install on app first run +- Fix listing domain with 'suspended' state (bz #850954) +- Fix 'browse local' behavior when choosing directory (bz #855335) +- Fix libgnome-keyring dep (bz #811921) + +* Sun Jul 29 2012 Cole Robinson - 0.9.4-1 +- Rebased to version 0.9.4 +- Fix VNC keygrab issues (bz 840240) + +* Sun Jul 22 2012 Fedora Release Engineering - 0.9.3-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jul 09 2012 Cole Robinson - 0.9.3-1 +- Rebased to version 0.9.3 +- Convert to gtkbuilder: UI can now be editted with modern glade tool +- virt-manager no longer runs on RHEL5, but can manage a remote RHEL5 + host +- Option to configure spapr net and disk devices for pseries (Li Zhang) +- Offer to install openssh-askpass if we need it (bz 754484) +- Don't leave defunct SSH processes around (bz 757892) +- Offer to start libvirtd after install (bz 791152) +- Fix crash when deleting storage volumes (bz 805950) +- Show serial device PTY path again (bz 811760) +- Fix possible crash when rebooting fails (bz 813119) +- Offer to discard state if restore fails (bz 837236) + +* Wed Jun 06 2012 Cole Robinson - 0.9.1-4 +- Fix connecting to console with specific listen address +- Fix regression that dropped spice dependency (bz 819270) + +* Wed Apr 25 2012 Cole Robinson - 0.9.1-3 +- Actually make spice the default (bz 757874) +- Only depend on spice on arch it is available (bz 811030) +- Depend on libgnome-keyring (bz 811921) + +* Mon Feb 13 2012 Cole Robinson - 0.9.1-2 +- Fix error reporting for failed remote connections (bz 787011) +- Fix setting window title when VNC mouse is grabbed (bz 788443) +- Advertise VDI format in disk details (bz 761300) +- Don't let an unavailable host hang the app (bz 766769) +- Don't overwrite existing create dialog when reshowing (bz 754152) +- Improve tooltip for 'force console shortcuts' (bz 788448) + +* Wed Feb 01 2012 Cole Robinson - 0.9.1-1 +- Rebased to version 0.9.1 +- Support for adding usb redirection devices (Marc-André Lureau) +- Option to switch usb controller to support usb2.0 (Marc-André Lureau) +- Option to specify machine type for non-x86 guests (Li Zhang) +- Support for filesystem device type and write policy (Deepak C Shetty) +- Many bug fixes! + +* Sat Jan 14 2012 Fedora Release Engineering - 0.9.0-8.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Oct 28 2011 Cole Robinson - 0.9.0-8 +- Fix crashes when deleting a VM (bz 749263) + +* Tue Sep 27 2011 Cole Robinson - 0.9.0-7 +- Fix 'Resize to VM' graphical option (bz 738806) +- Fix deleting guest with managed save data +- Fix error when adding default storage +- Don't flush XML cache on every tick +- Use labels for non-editable network info fields (bz 738751) +- Properly update icon cache (bz 733836) + +* Tue Aug 02 2011 Cole Robinson - 0.9.0-6 +- Fix python-newt_syrup dep + +* Mon Aug 01 2011 Cole Robinson - 0.9.0-5 +- Don't have a hard dep on libguestfs (bz 726364) +- Depend on needed python-newt_syrup version + +* Thu Jul 28 2011 Cole Robinson - 0.9.0-4 +- Fix typo that broke net stats reporting + +* Wed Jul 27 2011 Cole Robinson - 0.9.0-3 +- Add BuildRequires: GConf2 to fix pre scriplet error + +* Tue Jul 26 2011 Cole Robinson - 0.9.0-2 +- Fix virtinst dep + +* Tue Jul 26 2011 Cole Robinson - 0.9.0-1.fc17 +- Rebased to version 0.9.0 +- Use a hiding toolbar for fullscreen mode +- Use libguestfs to show guest packagelist and more (Richard W.M. Jones) +- Basic 'New VM' wizard support for LXC guests +- Remote serial console access (with latest libvirt) +- Remote URL guest installs (with latest libvirt) +- Add Hardware: Support devices +- Add Hardware: Support devices (Marc-André Lureau) +- Enable direct interface selection for qemu/kvm (Gerhard Stenzel) +- Allow viewing and changing disk serial number + +* Thu Apr 28 2011 Cole Robinson - 0.8.7-5.fc16 +- Stop netcf errors from flooding logs (bz 676920) +- Bump default mem for new guests to 1GB so F15 installs work (bz + 700480) + +* Tue Apr 19 2011 Cole Robinson - 0.8.7-4.fc16 +- Fix spice RPM dependency (bz 697729) + +* Thu Apr 07 2011 Cole Robinson - 0.8.7-3.fc16 +- Fix broken cs.po which crashed gettext +- Fix offline attach fallback if hotplug fails +- Offer to attach spicevmc if switching to spice + +* Thu Mar 31 2011 Cole Robinson - 0.8.7-2.fc16 +- Fix using spice as default graphics type +- Fix lockup as non-root (bz 692570) + +* Mon Mar 28 2011 Cole Robinson - 0.8.7-1.fc16 +- Rebased to version 0.8.7 +- Allow renaming an offline VM +- Spice password support (Marc-André Lureau) +- Allow editting NIC settings (Gerhard Stenzel) +- Allow enabling/disabling individual CPU features +- Allow easily changing graphics type between VNC/SPICE for existing VM +- Allow easily changing network source device for existing VM + +* Mon Feb 07 2011 Fedora Release Engineering - 0.8.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Feb 2 2011 Cole Robinson - 0.8.6-1.fc15 +- Update to 0.8.6 +- SPICE support (requires spice-gtk) (Marc-André Lureau) +- Option to configure CPU model +- Option to configure CPU topology +- Save and migration cancellation (Wen Congyang) +- Save and migration progress reporting +- Option to enable bios boot menu +- Option to configure direct kernel/initrd boot + +* Wed Aug 25 2010 Cole Robinson - 0.8.5-1.fc15 +- Update to 0.8.5 +- Improved save/restore support +- Option to view and change disk cache mode +- Configurable VNC keygrab sequence (Michal Novotny) + +* Mon Aug 2 2010 David Malcolm - 0.8.4-3.fc15 +- fix python 2.7 incompatibility (bz 620216) + +* Thu May 27 2010 Cole Robinson - 0.8.4-2.fc14 +- Only close connection on specific remote errors +- Fix weird border in manager UI (bz 583728) +- Fix broken icons +- Cancel post-install reboot if VM is forced off +- Fix traceback if customizing a livecd install (bz 583712) +- Add pool refresh button +- Properly autodetect VNC keymap (bz 586201) +- Fix traceback when reconnecting to remote VNC console (bz 588254) +- Fix remote VNC connection with zsh as default shell + +* Wed Mar 24 2010 Cole Robinson - 0.8.4-1.fc14 +- Update to version 0.8.4 +- 'Import' install option, to create a VM around an existing OS image +- Support multiple boot devices and boot order +- Watchdog device support +- Enable setting a human readable VM description. +- Option to manually specifying a bridge name, if bridge isn't detected + +* Mon Mar 22 2010 Cole Robinson - 0.8.3-2.fc14 +- Fix using a manual 'default' pool (bz 557020) +- Don't force grab focus when app is run (bz 548430) +- Check packagekit for KVM and libvirtd (bz 513494) +- Fake a reboot implementation if libvirt doesn't support it (bz 532216) +- Mark some strings as translatable (bz 572645) + +* Mon Feb 8 2010 Cole Robinson - 0.8.3-1.fc13 +- Update to 0.8.3 release +- Manage network interfaces: start, stop, view, provision bridges, bonds, etc. +- Option to 'customize VM before install'. + +* Tue Jan 12 2010 Cole Robinson - 0.8.2-2.fc13 +- Build with actual upstream tarball (not manually built dist) + +* Mon Dec 14 2009 Cole Robinson - 0.8.2-1.fc13 +- Update to 0.8.2 release +- Fix first virt-manager run on a new install +- Enable floppy media eject/connect + +* Wed Dec 09 2009 Cole Robinson - 0.8.1-3.fc13 +- Select manager row on right click, regressed with 0.8.1 + +* Sat Dec 5 2009 Cole Robinson - 0.8.1-2.fc13 +- Set proper version Requires: for python-virtinst + +* Thu Dec 3 2009 Cole Robinson - 0.8.1-1.fc13 +- Update to release 0.8.1 +- VM Migration wizard, exposing various migration options +- Enumerate CDROM and bridge devices on remote connections +- Support storage pool source enumeration for LVM, NFS, and SCSI + +* Mon Oct 05 2009 Cole Robinson - 0.8.0-8.fc13 +- Don't allow creating a volume without a name (bz 526111) +- Don't allow volume allocation > capacity (bz 526077) +- Add tooltips for toolbar buttons (bz 524083) + +* Mon Oct 05 2009 Cole Robinson - 0.8.0-7.fc13 +- More translations (bz 493795) + +* Tue Sep 29 2009 Cole Robinson - 0.8.0-6.fc13 +- Fix VCPU hotplug +- Remove access to outdated docs (bz 522823, bz 524805) +- Update VM state text in manager view (bz 526182) +- Update translations (bz 493795) + +* Thu Sep 24 2009 Cole Robinson - 0.8.0-5.fc12 +- Refresh host disk space in create wizard (bz 502777) +- Offer to fix disk permission issues (bz 517379) + +* Thu Sep 17 2009 Cole Robinson - 0.8.0-4.fc12 +- Don't close libvirt connection for non-fatal errors (bz 522168) +- Manager UI tweaks +- Generate better errors if disk/net stats polling fails + +* Mon Sep 14 2009 Cole Robinson - 0.8.0-3.fc12 +- Fix disk XML mangling via connect/eject cdrom (bz 516116) +- Fix delete button sensitivity (bz 518536) +- Fix populating text box from storage browser in 'New VM' (bz 517263) +- Fix a traceback in an 'Add Hardware' error path (bz 517286) + +* Thu Aug 13 2009 Daniel P. Berrange - 0.8.0-2.fc12 +- Remove obsolete dep on policykit agent + +* Tue Jul 28 2009 Cole Robinson - 0.8.0-1.fc12 +- Update to release 0.8.0 +- New 'Clone VM' Wizard +- Improved UI, including an overhaul of the main 'manager' view +- System tray icon for easy VM access (start, stop, view console/details) +- Wizard for adding serial, parallel, and video devices to existing VMs. + +* Sun Jul 26 2009 Fedora Release Engineering - 0.7.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu May 21 2009 Mark McLoughlin - 0.7.0-5.fc12 +- Fix 'opertaing' typo in 'New VM' dialog (#495128) +- Allow details window to resize again (#491683) +- Handle collecting username for vnc authentication (#499589) +- Actually handle arch config when creating a VM (#499145) +- Log libvirt capabilities at startup to aid debugging (#500337) + +* Tue Apr 14 2009 Cole Robinson - 0.7.0-4.fc11 +- More translation updates + +* Thu Apr 09 2009 Cole Robinson - 0.7.0-3.fc11 +- Fix incorrect max vcpu setting in New VM wizard (bz 490466) +- Fix some OK/Cancel button ordering issues (bz 490207) +- Use openAuth when duplicating a connection when deleting a VM +- Updated translations (bz 493795) + +* Mon Mar 23 2009 Cole Robinson - 0.7.0-2.fc11 +- Back compat fixes for connecting to older xen installations (bz 489885) +- Don't show harmless NoneType error when launching new VM details window + +* Tue Mar 10 2009 Cole Robinson - 0.7.0-1.fc11 +- Update to release 0.7.0 +- Redesigned 'New Virtual Machine' wizard +- Option to remove storage when deleting a virtual machine. +- File browser for libvirt storage pools and volumes +- Physical device assignment (PCI, USB) for existing virtual machines. + +* Wed Mar 4 2009 Cole Robinson - 0.6.1-4.fc11 +- Update polish translation (bz 263301) +- Fix sending ctrl-alt-del to guest +- Fix cpu + mem stats options to remember preference. + +* Wed Feb 25 2009 Fedora Release Engineering - 0.6.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 9 2009 Cole Robinson - 0.6.1-2 +- Kill off consolehelper (PolicyKit is sufficient) + +* Mon Jan 26 2009 Cole Robinson - 0.6.1-1 +- Update to 0.6.1 release +- Disk and Network VM stats reporting +- VM Migration support +- Support adding sound devices to existing VMs +- Allow specifying device model when adding a network device to an existing VM + +* Tue Jan 20 2009 Mark McLoughlin - 0.6.0-7 +- Add patch to ignore fix crash on force-poweroff with serial console (#470548) + +* Thu Dec 04 2008 Ignacio Vazquez-Abrams - 0.6.0-6 +- Rebuild for Python 2.6 + +* Mon Dec 1 2008 Cole Robinson - 0.6.0-5.fc10 +- Fix spec for building on F9 +- Update 'New VM' virt descriptions to be less black and white (bz 470563) + +* Sun Nov 30 2008 Ignacio Vazquez-Abrams - 0.6.0-4 +- Rebuild for Python 2.6 + +* Mon Oct 27 2008 Cole Robinson - 0.6.0-3.fc10 +- Add dbus-x11 to Requires (bug 467886) +- Fedora translation updates (bug 467808) +- Don't add multiple sound devices if install fails +- Only popup volume path copy option on right click +- Fix a variable typo + +* Tue Oct 14 2008 Cole Robinson - 0.6.0-2.fc10 +- Add gnome-python2-gnome requirement. +- Allow seeing connection details if disconnected. +- Updated catalan translation. +- Update dutch translation. +- Update german translation. (bug 438136) +- Fix showing domain console when connecting to hypervisor. +- Update POTFILES to reflect reality (bug 466835) + +* Wed Sep 10 2008 Cole Robinson - 0.6.0-1.fc10 +- Update to 0.6.0 release +- Add libvirt storage management support +- Basic support for remote guest installation +- Merge VM console and details windows +- Poll avahi for libvirtd advertisement +- Hypervisor autoconnect option +- Add sound emulation when creating new guests + +* Thu Apr 3 2008 Daniel P. Berrange - 0.5.4-3.fc9 +- Updated sr, de, fi, it, pl translations + +* Thu Mar 13 2008 Daniel P. Berrange - 0.5.4-2.fc9 +- Don't run policykit checks when root (rhbz #436994) + +* Mon Mar 10 2008 Daniel P. Berrange - 0.5.4-1.fc9 +- Update to 0.5.4 release + +* Mon Feb 18 2008 Fedora Release Engineering - 0.5.3-2 +- Autorebuild for GCC 4.3 + +* Thu Jan 10 2008 Daniel P. Berrange - 0.5.3-1.fc9 +- Update to 0.5.3 release + +* Mon Oct 15 2007 Daniel P. Berrange - 0.5.2-2.fc8 +- Change TLS x509 credential name to sync with libvirt + +* Thu Oct 4 2007 Daniel P. Berrange - 0.5.2-1.fc8 +- Update to 0.5.2 release +- No scrollbars for high res guest in low res host (rhbz 273181) +- Unable to remove network device (rhbz 242900) +- Fixed broken menu items (rhbz 307551) +- Require libvirt 0.3.3 to get CDROM change capability for Xen + +* Tue Sep 25 2007 Daniel P. Berrange - 0.5.1-1.fc8 +- Updated to 0.5.1 release +- Open connections in background +- Make VNC connection retries more robust +- Allow changing of CDROM media on the fly +- Add PXE boot installation of HVM guests +- Allow tunnelling VNC over SSH + +* Wed Aug 29 2007 Daniel P. Berrange - 0.5.0-1.fc8 +- Updated to 0.5.0 release +- Support for managing remote hosts +- Switch to use GTK-VNC for the guest console + +* Fri Aug 24 2007 Daniel P. Berrange - 0.4.0-3.fc8 +- Remove ExcludeArch since libvirt is now available + +* Wed May 9 2007 Daniel P. Berrange - 0.4.0-2.fc7 +- Refresh po file translations (bz 238369) +- Fixed removal of disk/network devices +- Fixed toolbar menu option state +- Fixed file dialogs & default widget states + +* Mon Apr 16 2007 Daniel P. Berrange - 0.4.0-1.fc7 +- Support for managing virtual networks +- Ability to attach guest to virtual networks +- Automatically set VNC keymap based on local keymap +- Support for disk & network device addition/removal + +* Wed Mar 28 2007 Daniel P. Berrange - 0.3.2-3.fc7 +- Fix HVM check to allow KVM guests to be created (bz 233644) +- Fix default file size suggestion + +* Tue Mar 27 2007 Daniel P. Berrange - 0.3.2-2.fc7 +- Ensure we own all directories we create (bz 233816) + +* Tue Mar 20 2007 Daniel P. Berrange - 0.3.2-1.fc7 +- Added online help to all windows +- Bug fixes to virtual console popup, key grab & accelerator override + +* Tue Mar 13 2007 Daniel P. Berrange - 0.3.1-4.fc7 +- Fixed thread locking to avoid deadlocks when a11y is enabled + +* Fri Mar 2 2007 Daniel P. Berrange - 0.3.1-3.fc7 +- Fixed keyboard ungrab in VNC widget + +* Tue Feb 20 2007 Daniel P. Berrange - 0.3.1-2.fc7 +- Only check for HVM on Xen hypervisor + +* Tue Feb 20 2007 Daniel P. Berrange - 0.3.1-1.fc7 +- Added support for managing QEMU domains +- Automatically grab mouse pointer to workaround dual-cursor crazyness + +* Wed Jan 31 2007 Daniel P. Berrange - 0.3.0-2.fc7 +- Added dep on desktop-file-utils for post/postun scripts + +* Mon Jan 22 2007 Daniel P. Berrange - 0.3.0-1.fc7 +- Added support for managing inactive domains +- Require virt-inst >= 0.100.0 and libvirt >= 0.1.11 for ianctive + domain management capabilities +- Add progress bars during VM creation stage +- Improved reliability of VNC console +- Updated translations again +- Added destroy option to menu bar to forceably kill a guest +- Visually differentiate allocated memory, from actual used memory on host +- Validate file magic when restoring a guest from a savd file +- Performance work on domain listing +- Allow creation of non-sparse files +- Fix backspace key in serial console + +* Tue Dec 19 2006 Daniel P. Berrange - 0.2.6-3.fc7 +- Imported latest translations from Fedora i18n repository (bz 203783) +- Use 127.0.0.1 address for connecting to VNC console instead of + localhost to avoid some issue with messed up /etc/hosts. +- Add selector for sparse or non-sparse file, defaulting to non-sparse. + Add appropriate warnings and progress-bar text. (bz 218996) +- Disable memory ballooning & CPU hotplug for HVM guests (bz 214432) +- Updated memory-setting UI to include a hard upper limit for physical + host RAM +- Added documentation on the page warning that setting virtual host RAM + too high can exhaust the memory of the machine +- Handle errors when hostname resolution fails to avoid app exiting (bz 216975) + +* Thu Dec 7 2006 Jeremy Katz - 0.2.6-2.fc7 +- rebuild for python 2.5 + +* Thu Nov 9 2006 Daniel P. Berrange - 0.2.6-1.fc7 +- Imported translations from Fedora i18n repository +- Make (most) scrollbar policies automatic +- Set busy cursor while creating new VMs +- Preference for controlling keygrab policy +- Preference for when to automatically open console (bz 211385) +- Re-try VNC connection attempt periodically in case VNC daemon + hasn't finished starting up +- Added activation of URLs for about dialog (bz 210782) +- Improved error reporting when connecting to HV (bz 211229) +- Add command line args to open specific windows +- Don't skip para/full virt wizard step - instead gray out full + virt option & tell user why +- Change 'physical' to 'logical' when refering to host CPUs +- Include hostname in titlebar +- Disable wizard sensitivity while creating VM + +* Thu Oct 19 2006 Daniel P. Berrange - 0.2.5-1.fc7 +- Switch to use python-virtinst instead of python-xeninst due to + renaming of original package +- Disable keyboard accelerators when grabbing mouse to avoid things like + Ctrl-W closing the local window, instead of remote window bz 210364 +- Fix host memory reporting bz 211281 +- Remove duplicate application menu entry bz 211230 +- Fix duplicated mnemonics (bz 208408) +- Use blktap backed disks if available +- Use a drop down list to remember past URLs (bz 209479) +- Remove unused help button from preferences dialog (bz 209251) +- Fix exception when no VNC graphics is defined +- Force immediate refresh of VMs after creating a new one +- Improve error reporting if run on a kernel without Xen (bz 209122) +- More fixes to avoid stuck modifier keys on focus-out (bz 207949) + +* Fri Sep 29 2006 Daniel P. Berrange 0.2.3-2.fc6 +- Fix segv in sparkline code when no data points are defined (bz 208185) +- Clamp CPU utilization between 0 & 100% just in case (bz 208185) + +* Tue Sep 26 2006 Daniel Berrange - 0.2.3-1.fc6 +- Require xeninst >= 0.93.0 to fix block backed devices +- Skip para/fully-virt step when going back in wizard if not HVM host (bz 207409) +- Fix handling of modifier keys in VNC console so Alt key doesn't get stuck (bz 207949) +- Allow sticky modifier keys by pressing same key 3 times in row (enables Ctrl-Alt-F1 + by doing Ctrl Ctrl Ctrl Alt-F1) +- Improved error handling during guest creation +- Log errors with python logging, instead of to stdout +- Remove unused buttons from main domain list window +- Switch out of full screen & release key grab when closing console +- Trim sparkline CPU history graph to 40 samples max +- Constraint VCPU adjuster to only allow upto guest's max VCPU count +- Show guest's max & current VCPU count in details page +- Fix rounding of disk sizes to avoid a 1.9 GB disk being rounded down to 1 GB +- Use raw block device path to CDROM not mount point for HVM guest (bz 206965) +- Fix visibility of file size spin box (bz 206186 part 2) +- Check for GTK failing to open X11 display (bz 205938) + +* Fri Sep 15 2006 Daniel Berrange - 0.2.2-1.fc6 +- Fix event handling in create VM wizard (bz 206660 & 206186) +- Fix close button in about dialog (bz 205943) +- Refresh .pot files +- Turn on VNC scrollbars fulltime to avoid GTK window sizing issue + which consistently resize too small. + +* Mon Sep 11 2006 Daniel Berrange - 0.2.1-3.fc6 +- Added requires on pygtk2-libglade & librsvg2 (bz 205941 & 205942) +- Re-arrange to use console-helper to launch app +- Added 'dist' component to release number + +* Wed Sep 6 2006 Jeremy Katz - 0.2.1-2 +- don't ghost pyo files (#205448) + +* Mon Sep 4 2006 Daniel Berrange - 0.2.1-1 +- Updated to 0.2.1 tar.gz +- Added rules to install/uninstall gconf schemas in preun,post,pre + scriptlets +- Updated URL for source to reflect new upstream download URL + +* Thu Aug 24 2006 Jeremy Katz - 0.2.0-3 +- BR gettext + +* Thu Aug 24 2006 Jeremy Katz - 0.2.0-2 +- only build on arches with virt + +* Tue Aug 22 2006 Daniel Berrange - 0.2.0-1 +- Added wizard for creating virtual machines +- Added embedded serial console +- Added ability to take screenshots + +* Mon Jul 24 2006 Daniel Berrange - 0.1.5-2 +- Prefix *.pyo files with 'ghost' macro +- Use fully qualified URL in Source tag + +* Thu Jul 20 2006 Daniel Berrange - 0.1.5-1 +- Update to new 0.1.5 release snapshot + +* Thu Jul 20 2006 Daniel Berrange - 0.1.4-1 +- Update to new 0.1.4 release snapshot + +* Mon Jul 17 2006 Daniel Berrange - 0.1.3-1 +- Fix License tag +- Updated for new release + +* Wed Jun 28 2006 Daniel Berrange - 0.1.2-3 +- Added missing copyright headers on all .py files + +* Wed Jun 28 2006 Daniel Berrange - 0.1.2-2 +- Added python-devel to BuildRequires + +* Wed Jun 28 2006 Daniel Berrange - 0.1.2-1 +- Change URL to public location + +* Fri Jun 16 2006 Daniel Berrange - 0.1.0-1 +- Added initial support for using VNC console + +* Thu Apr 20 2006 Daniel Berrange - 0.0.2-1 +- Added DBus remote control service + +* Wed Mar 29 2006 Daniel Berrange - 0.0.1-1 +- Initial RPM build