diff --git a/sources b/sources index 1a1e69a..3d35e40 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virt-manager-4.0.0.tar.gz) = 115dc3feb499bb2f1f6df537bffe150d23b9b568fe8047d43577a138ff9b9180b10259dde3476136cdc85750576da1104e81a8c2f5761b4f2a89852467761f81 +SHA512 (virt-manager-4.1.0.tar.gz) = 725cb5bcbaebaafae417f95deffb4243ccdad769668cba6e1235f4607e2b29dbd099d2a9a3885981158f53ea854dd71cc29ed9d7557b2791161c13d34f2ef883 diff --git a/virt-manager-cloner-Sync-uuid-and-sysinfo-system-uuid.patch b/virt-manager-cloner-Sync-uuid-and-sysinfo-system-uuid.patch new file mode 100644 index 0000000..de0209b --- /dev/null +++ b/virt-manager-cloner-Sync-uuid-and-sysinfo-system-uuid.patch @@ -0,0 +1,98 @@ +From deb27a8c7e1539e687d589edd7ea517018266f77 Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Sun, 21 Aug 2022 16:21:10 -0400 +Subject: [PATCH] cloner: Sync and system uuid + +Otherwise libvirt errors like: + +ERROR UUID mismatch between and + +https://bugzilla.redhat.com/show_bug.cgi?id=2038040 + +Signed-off-by: Cole Robinson +(cherry picked from commit b0d0516736320315a70f74aff3759fb35dd35d9d) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2038040 +Signed-off-by: Jonathon Jongsma +--- + tests/data/cli/compare/virt-clone-auto-unmanaged.xml | 5 +++++ + tests/data/cli/compare/virt-clone-unmanaged-preserve.xml | 5 +++++ + tests/data/cli/virtclone/clone-disk.xml | 5 +++++ + virtinst/cloner.py | 6 ++++-- + 4 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/tests/data/cli/compare/virt-clone-auto-unmanaged.xml b/tests/data/cli/compare/virt-clone-auto-unmanaged.xml +index 21a9a6398..f2043be25 100644 +--- a/tests/data/cli/compare/virt-clone-auto-unmanaged.xml ++++ b/tests/data/cli/compare/virt-clone-auto-unmanaged.xml +@@ -1,6 +1,11 @@ + + origtest-clone + 00000000-1111-2222-3333-444444444444 ++ ++ ++ 00000000-1111-2222-3333-444444444444 ++ ++ + 8388608 + 2097152 + 2 +diff --git a/tests/data/cli/compare/virt-clone-unmanaged-preserve.xml b/tests/data/cli/compare/virt-clone-unmanaged-preserve.xml +index 3bdbbbe36..c003ed3ee 100644 +--- a/tests/data/cli/compare/virt-clone-unmanaged-preserve.xml ++++ b/tests/data/cli/compare/virt-clone-unmanaged-preserve.xml +@@ -1,6 +1,11 @@ + + clonetest + 00000000-1111-2222-3333-444444444444 ++ ++ ++ 00000000-1111-2222-3333-444444444444 ++ ++ + 8388608 + 2097152 + 2 +diff --git a/tests/data/cli/virtclone/clone-disk.xml b/tests/data/cli/virtclone/clone-disk.xml +index da1eb0a63..2f6e916d7 100644 +--- a/tests/data/cli/virtclone/clone-disk.xml ++++ b/tests/data/cli/virtclone/clone-disk.xml +@@ -1,6 +1,11 @@ + + origtest + db69fa1f-eef0-e567-3c20-3ef16f10376b ++ ++ ++ db69fa1f-eef0-e567-3c20-3ef16f10376b ++ ++ + 8388608 + 2097152 + 2 +diff --git a/virtinst/cloner.py b/virtinst/cloner.py +index 34a702f91..9334513c5 100644 +--- a/virtinst/cloner.py ++++ b/virtinst/cloner.py +@@ -352,8 +352,7 @@ class Cloner(object): + """ + self._new_guest.id = None + self._new_guest.title = None +- self._new_guest.uuid = None +- self._new_guest.uuid = Guest.generate_uuid(self.conn) ++ self.set_clone_uuid(Guest.generate_uuid(self.conn)) + + for dev in self._new_guest.devices.graphics: + if dev.port and dev.port != -1: +@@ -408,6 +407,9 @@ class Cloner(object): + Override the new VMs generated UUId + """ + self._new_guest.uuid = uuid ++ for sysinfo in self._new_guest.sysinfo: ++ if sysinfo.system_uuid: ++ sysinfo.system_uuid = uuid + + def set_replace(self, val): + """ +-- +2.38.1 + diff --git a/virt-manager-virt-install-add-support-for-qemu-vdagent-channel.patch b/virt-manager-virt-install-add-support-for-qemu-vdagent-channel.patch deleted file mode 100644 index 2759e05..0000000 --- a/virt-manager-virt-install-add-support-for-qemu-vdagent-channel.patch +++ /dev/null @@ -1,146 +0,0 @@ -From 6ec78c1b8a935bd5fe0896dc323bfdf51cc67585 Mon Sep 17 00:00:00 2001 -From: Jonathon Jongsma -Date: Wed, 18 May 2022 17:03:29 -0500 -Subject: [PATCH] virt-install: add support for qemu-vdagent channel - -This allows support for host/guest clipboard sharing when using vnc -guests (and possibly other graphics types in the future). This channel -is similar to the spicevmc channel, but it contains a couple additional -options to enable/disable clipboard sharing and specify the mouse mode. -In the case of spice, these settings are specified on the 'graphics' -element, but for qemu-vdagent, they are specified on the channel. For -example: - - --channel=qemu-vdagent,source.clipboard.copypaste=on,source.mouse.mode=client - -Signed-off-by: Jonathon Jongsma -(cherry picked from commit 44355e5ed0d0791675e8113732dde37664d5aa91) - -Resolves https://bugzilla.redhat.com/show_bug.cgi?id=2060724 - -Signed-off-by: Jonathon Jongsma ---- - man/virt-install.rst | 9 +++++++++ - tests/data/cli/compare/virt-install-many-devices.xml | 7 +++++++ - tests/test_cli.py | 5 +++-- - virtinst/cli.py | 2 ++ - virtinst/devices/char.py | 8 +++++++- - 5 files changed, 28 insertions(+), 3 deletions(-) - -diff --git a/man/virt-install.rst b/man/virt-install.rst -index c1d1c1aa1..3a6e8dcd2 100644 ---- a/man/virt-install.rst -+++ b/man/virt-install.rst -@@ -1761,6 +1761,15 @@ Some of the types of character device redirection are: - and can be any string, such as the default com.redhat.spice.0 that - specifies how the guest will see the channel. - -+``--channel qemu-vdagent,target.type=virtio[,target.name=NAME]`` -+ Communication channel for QEMU vd agent, using virtio serial (requires -+ 2.6.34 or later host and guest). This allows copy/paste functionality with -+ VNC guests. Note that the guest clipboard integration is implemented via -+ spice-vdagent, which must be running even when the guest does not use spice -+ graphics. NAME is optional metadata that specifies how the guest will see -+ the channel, and should be left as the default com.redhat.spice.0 unless you -+ know what you are doing. -+ - - Use --channel=? to see a list of all available sub options. - Complete details at https://libvirt.org/formatdomain.html#elementsCharChannel -diff --git a/tests/data/cli/compare/virt-install-many-devices.xml b/tests/data/cli/compare/virt-install-many-devices.xml -index 4c0024225..be82032fe 100644 ---- a/tests/data/cli/compare/virt-install-many-devices.xml -+++ b/tests/data/cli/compare/virt-install-many-devices.xml -@@ -647,6 +647,13 @@ - - - -+ -+ -+ -+ -+ -+ -+ - - - -diff --git a/tests/test_cli.py b/tests/test_cli.py -index 8b78a1a78..22749d43a 100644 ---- a/tests/test_cli.py -+++ b/tests/test_cli.py -@@ -669,6 +669,7 @@ source.reservations.managed=no,source.reservations.source.type=unix,source.reser - --channel pty,target_type=virtio,name=org.linux-kvm.port1 - --channel pty,target.type=virtio,target.name=org.linux-kvm.port2 - --channel spicevmc -+--channel qemu-vdagent,source.clipboard.copypaste=on,source.mouse.mode=client - - - --console pty,target_type=virtio -@@ -734,7 +735,7 @@ source.reservations.managed=no,source.reservations.source.type=unix,source.reser - - - --rng /dev/random ----rng device=/dev/urandom,backend.protocol.type=,backend.log.file=,backend.log.append= -+--rng device=/dev/urandom,backend.protocol.type=,backend.log.file=,backend.log.append=,backend.source.clipboard.copypaste=,backend.source.mouse.mode= - --rng type=egd,backend.type=nmdm,backend.source.master=/dev/foo1,backend.source.slave=/dev/foo2 - --rng egd,backend_host=127.0.0.1,backend_service=8000,backend_type=udp,backend_mode=bind,backend_connect_host=foo,backend_connect_service=708,rate.bytes=1234,rate.period=1000,model=virtio - -@@ -786,7 +787,7 @@ source.reservations.managed=no,source.reservations.source.type=unix,source.reser - --xml xpath.delete=./deleteme/deleteme2 - - --""", "many-devices", predefine_check="7.4.0") -+""", "many-devices", predefine_check="8.4.0") - - - # Specific XML test cases #1 -diff --git a/virtinst/cli.py b/virtinst/cli.py -index 52be9f298..c869c323a 100644 ---- a/virtinst/cli.py -+++ b/virtinst/cli.py -@@ -3396,6 +3396,8 @@ def _add_char_source_args(cls, prefix=""): - _add_arg("protocol.type", "source.protocol") - _add_arg("log.file", "source.log_file") - _add_arg("log.append", "source.log_append", is_onoff=True) -+ _add_arg("source.clipboard.copypaste", "source.clipboard_copypaste", is_onoff=True) -+ _add_arg("source.mouse.mode", "source.mouse_mode") - - - ################## -diff --git a/virtinst/devices/char.py b/virtinst/devices/char.py -index 9547c649e..01fc634b1 100644 ---- a/virtinst/devices/char.py -+++ b/virtinst/devices/char.py -@@ -45,6 +45,10 @@ class CharSource(XMLBuilder): - slave = XMLProperty("./@slave") - mode = XMLProperty("./@mode") - -+ # for qemu-vdagent channel -+ clipboard_copypaste = XMLProperty("./clipboard/@copypaste", is_yesno=True) -+ mouse_mode = XMLProperty("./mouse/@mode") -+ - # It's weird to track these properties here, since the XML is set on - # the parent, but this is how libvirt does it internally, which means - # everything that shares a charsource has these values too. -@@ -80,6 +84,7 @@ class _DeviceChar(Device): - TYPE_SPICEVMC = "spicevmc" - TYPE_SPICEPORT = "spiceport" - TYPE_NMDM = "nmdm" -+ TYPE_QEMUVDAGENT = "qemu-vdagent" - - CHANNEL_NAME_SPICE = "com.redhat.spice.0" - CHANNEL_NAME_QEMUGA = "org.qemu.guest_agent.0" -@@ -117,7 +122,8 @@ class _DeviceChar(Device): - self.source.mode = "bind" - if not self.target_type and self.DEVICE_TYPE == "channel": - self.target_type = "virtio" -- if not self.target_name and self.type == self.TYPE_SPICEVMC: -+ if not self.target_name and (self.type == self.TYPE_SPICEVMC or -+ self.type == self.TYPE_QEMUVDAGENT): - self.target_name = self.CHANNEL_NAME_SPICE - - --- -2.35.3 - diff --git a/virt-manager-virt-manager-add-support-for-qemu-vdagent-channel.patch b/virt-manager-virt-manager-add-support-for-qemu-vdagent-channel.patch deleted file mode 100644 index 506f9f7..0000000 --- a/virt-manager-virt-manager-add-support-for-qemu-vdagent-channel.patch +++ /dev/null @@ -1,231 +0,0 @@ -From e4e7210b3bd669bfeb8015f66163e7e49d710d1d Mon Sep 17 00:00:00 2001 -From: Jonathon Jongsma -Date: Wed, 18 May 2022 17:03:30 -0500 -Subject: [PATCH] virt-manager: add support for qemu-vdagent channel - - This provides the UI support for the qemu-vdagent channel which allows - clipboard sharing with VNC graphics (see previous commit for more - information). - - The channel name in the device list was changed slightly in order to - avoid confusion. Due to the fact that both the spice-vdagent and the - qemu-vdagent specify the same virtio name (com.redhat.spice.0), both of - these channels were showing up in the device list as "Channel spice", - which is a bit confusing. - - In order to disambiguate these, channels now show up in the device list - as "Channel {type} ({name})" instead of "Channel {name}". So for - example, a qemu-vdagent channel would show up as: - Channel Qemu vdagent (spice) -Whereas a spice-vdagent channel would show up as: - Channel Spice agent (spice) - -Signed-off-by: Jonathon Jongsma -(cherry picked from commit caa99a6001be0c86a1dd0eb5fc0ce142ab929a31) - -Resolves https://bugzilla.redhat.com/show_bug.cgi?id=2060724 - -Signed-off-by: Jonathon Jongsma ---- - ui/addhardware.ui | 28 +++++++++++++++++++++++++++- - ui/details.ui | 27 ++++++++++++++++++++++++++- - virtManager/addhardware.py | 10 +++++++++- - virtManager/details/details.py | 7 +++++-- - 4 files changed, 67 insertions(+), 5 deletions(-) - -diff --git a/ui/addhardware.ui b/ui/addhardware.ui -index fa88127b8..f212481a3 100644 ---- a/ui/addhardware.ui -+++ b/ui/addhardware.ui -@@ -725,7 +725,7 @@ - - - -- -+ - - True - False -@@ -901,6 +901,32 @@ - 2 - - -+ -+ -+ True -+ False -+ _Share Clipboard: -+ True -+ char-vdagent-clipboard -+ -+ -+ 0 -+ 6 -+ -+ -+ -+ -+ True -+ True -+ False -+ start -+ True -+ -+ -+ 1 -+ 6 -+ -+ - - - char-tab -diff --git a/ui/details.ui b/ui/details.ui -index 10b308242..264f7cdd4 100644 ---- a/ui/details.ui -+++ b/ui/details.ui -@@ -3506,7 +3506,7 @@ - 12 - 3 - -- -+ - - True - False -@@ -3601,6 +3601,19 @@ - 6 - - -+ -+ -+ True -+ False -+ start -+ label507 -+ True -+ -+ -+ 1 -+ 7 -+ -+ - - - True -@@ -3673,6 +3686,18 @@ - 6 - - -+ -+ -+ True -+ False -+ end -+ Clipboard: -+ -+ -+ 0 -+ 7 -+ -+ - - - True -diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py -index 8c7fa0c72..0a8e33d30 100644 ---- a/virtManager/addhardware.py -+++ b/virtManager/addhardware.py -@@ -308,6 +308,7 @@ class vmmAddHardware(vmmGObjectUI): - self.widget("char-path").set_text("") - self.widget("char-channel").set_text("") - self.widget("char-auto-socket").set_active(True) -+ self.widget("char-vdagent-clipboard").set_active(True) - - - # RNG params -@@ -399,7 +400,8 @@ class vmmAddHardware(vmmGObjectUI): - DeviceSerial.TYPE_UNIX] - if char_class.XML_NAME == "channel": - ret = [DeviceSerial.TYPE_SPICEVMC, -- DeviceSerial.TYPE_SPICEPORT] + ret -+ DeviceSerial.TYPE_SPICEPORT, -+ DeviceSerial.TYPE_QEMUVDAGENT] + ret - return ret - - @staticmethod -@@ -425,6 +427,7 @@ class vmmAddHardware(vmmGObjectUI): - DeviceSerial.TYPE_UNIX: _("UNIX socket"), - DeviceSerial.TYPE_SPICEVMC: _("Spice agent"), - DeviceSerial.TYPE_SPICEPORT: _("Spice port"), -+ DeviceSerial.TYPE_QEMUVDAGENT: _("QEMU vdagent"), - } - return labels.get(val, val) - -@@ -1114,11 +1117,14 @@ class vmmAddHardware(vmmGObjectUI): - supports_path = [dev.TYPE_FILE, dev.TYPE_UNIX, - dev.TYPE_DEV, dev.TYPE_PIPE] - supports_channel = [dev.TYPE_SPICEPORT] -+ supports_clipboard = [dev.TYPE_QEMUVDAGENT] - - uiutil.set_grid_row_visible(self.widget("char-path-label"), - devtype in supports_path) - uiutil.set_grid_row_visible(self.widget("char-channel-label"), - devtype in supports_channel) -+ uiutil.set_grid_row_visible(self.widget("char-vdagent-clipboard-label"), -+ devtype in supports_clipboard) - - uiutil.set_grid_row_visible( - self.widget("char-target-name-label"), ischan) -@@ -1472,6 +1478,7 @@ class vmmAddHardware(vmmGObjectUI): - source_channel = self.widget("char-channel").get_text() - target_name = self.widget("char-target-name").get_child().get_text() - target_type = uiutil.get_list_selection(typebox) -+ clipboard = self.widget("char-vdagent-clipboard").get_active() - - if not self.widget("char-path").get_visible(): - source_path = None -@@ -1486,6 +1493,7 @@ class vmmAddHardware(vmmGObjectUI): - dev.type = devtype - dev.source.path = source_path - dev.source.channel = source_channel -+ dev.source.clipboard_copypaste = clipboard - dev.target_name = target_name - dev.target_type = target_type - return dev -diff --git a/virtManager/details/details.py b/virtManager/details/details.py -index 24810f0ff..ddc43b767 100644 ---- a/virtManager/details/details.py -+++ b/virtManager/details/details.py -@@ -207,10 +207,10 @@ def _label_for_device(dev, disk_bus_index): - return _("Console %(num)d") % {"num": port + 1} - - if devtype == "channel": -+ pretty_type = vmmAddHardware.char_pretty_type(dev.type) - name = vmmAddHardware.char_pretty_channel_name(dev.target_name) - if name: -- return _("Channel %(name)s") % {"name": name} -- pretty_type = vmmAddHardware.char_pretty_type(dev.type) -+ return _("Channel %(type)s (%(name)s)") % {"type": pretty_type, "name": name} - return _("Channel %(type)s") % {"type": pretty_type} - - if devtype == "graphics": -@@ -2098,6 +2098,7 @@ class vmmDetails(vmmGObjectUI): - primary = self.vm.serial_is_console_dup(chardev) - show_target_type = not (char_type in ["serial", "parallel"]) - is_qemuga = chardev.target_name == chardev.CHANNEL_NAME_QEMUGA -+ show_clipboard = chardev.type == chardev.TYPE_QEMUVDAGENT - - if char_type == "serial": - typelabel = _("Serial Device") -@@ -2152,6 +2153,8 @@ class vmmDetails(vmmGObjectUI): - # notifiations about connection state. For spice this UI field - # can get out of date - show_ui("char-target-state", chardev.target_state, doshow=is_qemuga) -+ clipboard = _("On") if chardev.source.clipboard_copypaste else _("Off") -+ show_ui("char-clipboard-sharing", clipboard, doshow=show_clipboard) - - def _refresh_hostdev_page(self, hostdev): - rom_bar = hostdev.rom_bar --- -2.35.3 - diff --git a/virt-manager.spec b/virt-manager.spec index 16755d1..1e1951f 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -7,7 +7,7 @@ # End local config Name: virt-manager -Version: 4.0.0 +Version: 4.1.0 Release: 1%{?dist}%{?extra_release} %global verrel %{version}-%{release} @@ -18,8 +18,7 @@ URL: https://virt-manager.org/ Source0: https://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz Source1: symlinks -Patch1: virt-manager-virt-install-add-support-for-qemu-vdagent-channel.patch -Patch2: virt-manager-virt-manager-add-support-for-qemu-vdagent-channel.patch +Patch1: virt-manager-cloner-Sync-uuid-and-sysinfo-system-uuid.patch Requires: virt-manager-common = %{verrel} @@ -185,6 +184,10 @@ git config gc.auto 0 %changelog +* Tue Nov 15 2022 Jonathon Jongsma - 4.1.0-1 +- Rebased to virt-manager-4.1.0 (rhbz#2135791) +- cloner: Sync and system uuid (rhbz#2038040) + * Thu Jul 7 2022 Jonathon Jongsma - 4.0.0-1 - Rebased to virt-manager-4.0.0 (rhbz#2100525) - virt-install: add support for qemu-vdagent channel (rhbz#2060724)