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-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/SPECS/virt-manager.spec b/SPECS/virt-manager.spec index 92ec9ef..ebef992 100644 --- a/SPECS/virt-manager.spec +++ b/SPECS/virt-manager.spec @@ -8,7 +8,7 @@ Name: virt-manager Version: 3.2.0 -Release: 11%{?dist}%{?extra_release} +Release: 14%{?dist}%{?extra_release} %global verrel %{version}-%{release} Summary: Desktop tool for managing virtual machines via libvirt @@ -31,6 +31,10 @@ 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} @@ -188,6 +192,16 @@ done %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)