Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package virt-manager for openSUSE:Factory 
checked in at 2022-07-22 19:20:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-manager (Old)
 and      /work/SRC/openSUSE:Factory/.virt-manager.new.21925 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "virt-manager"

Fri Jul 22 19:20:14 2022 rev:234 rq:990302 version:4.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-manager/virt-manager.changes        
2022-06-24 08:45:07.619126840 +0200
+++ /work/SRC/openSUSE:Factory/.virt-manager.new.21925/virt-manager.changes     
2022-07-22 19:20:16.956563363 +0200
@@ -1,0 +2,7 @@
+Tue Jul 12 14:41:21 MDT 2022 - carn...@suse.com
+
+- Upstream bug fix (bsc#1027942)
+  d51541e1-Fix-UI-rename-with-firmware-efi.patch
+- Use autosetup in spec file
+
+-------------------------------------------------------------------

New:
----
  d51541e1-Fix-UI-rename-with-firmware-efi.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ virt-manager.spec ++++++
--- /var/tmp/diff_new_pack.TLqckg/_old  2022-07-22 19:20:18.060565258 +0200
+++ /var/tmp/diff_new_pack.TLqckg/_new  2022-07-22 19:20:18.064565266 +0200
@@ -33,6 +33,7 @@
 Source3:        virt-manager-supportconfig
 # Upstream Patches
 Patch1:         
revert-363fca41-virt-install-Require-osinfo-for-non-x86-HVM-case-too.patch
+Patch2:         d51541e1-Fix-UI-rename-with-firmware-efi.patch
 # SUSE Only
 Patch70:        virtman-desktop.patch
 Patch71:        virtman-kvm.patch
@@ -157,57 +158,7 @@
 machine).
 
 %prep
-%setup -q
-# Upstream Patches
-%patch1 -p1
-# SUSE Only
-%patch70 -p1
-%patch71 -p1
-%patch72 -p1
-%patch73 -p1
-%patch74 -p1
-%patch75 -p1
-%patch76 -p1
-# Enhancements
-%patch103 -p1
-%patch104 -p1
-%patch105 -p1
-%patch106 -p1
-%patch120 -p1
-%patch121 -p1
-%patch122 -p1
-%patch123 -p1
-%patch124 -p1
-%patch125 -p1
-%patch126 -p1
-%patch127 -p1
-%patch128 -p1
-# Bug Fixes
-%patch151 -p1
-%patch152 -p1
-%patch153 -p1
-%patch154 -p1
-%patch155 -p1
-%patch156 -p1
-%patch157 -p1
-%patch158 -p1
-%patch159 -p1
-%patch160 -p1
-%patch170 -p1
-%patch171 -p1
-%patch172 -p1
-%patch173 -p1
-%patch174 -p1
-%patch175 -p1
-%patch176 -p1
-%patch177 -p1
-%patch178 -p1
-%patch179 -p1
-%patch180 -p1
-%patch181 -p1
-%patch182 -p1
-%patch183 -p1
-%patch184 -p1
+%autosetup -p1
 
 %build
 %if %{default_hvs}

++++++ d51541e1-Fix-UI-rename-with-firmware-efi.patch ++++++
Subject: Fix UI rename with firmware='efi'
From: Cole Robinson crobi...@redhat.com Sat Jun 18 16:16:38 2022 -0400
Date: Mon Jun 20 09:37:26 2022 -0400:
Git: d51541e155bd29389f804425356690ea55465551

Our code to duplicate nvram wasn't expecting the XML to be devoid
of an nvram path.

Resolves: https://github.com/virt-manager/virt-manager/issues/372

Signed-off-by: Cole Robinson <crobi...@redhat.com>

diff --git a/tests/uitests/data/live/uitests-firmware-efi.xml 
b/tests/uitests/data/live/uitests-firmware-efi.xml
new file mode 100644
index 00000000..b7463818
--- /dev/null
+++ b/tests/uitests/data/live/uitests-firmware-efi.xml
@@ -0,0 +1,14 @@
+<domain type="kvm">
+  <name>uitests-firmware-efi</name>
+  <memory>65536</memory>
+  <currentMemory>65536</currentMemory>
+  <vcpu>1</vcpu>
+  <os firmware='efi'>
+    <type arch="x86_64">hvm</type>
+    <boot dev="hd"/>
+  </os>
+  <features>
+    <acpi/>
+  </features>
+</domain>
+
diff --git a/tests/uitests/test_livetests.py b/tests/uitests/test_livetests.py
index 28884298..7ac2ee48 100644
--- a/tests/uitests/test_livetests.py
+++ b/tests/uitests/test_livetests.py
@@ -38,7 +38,7 @@ def _vm_wrapper(vmname, uri="qemu:///system", opts=None):
                 except Exception:
                     pass
                 try:
-                    dom.undefine()
+                    dom.undefineFlags(libvirt.VIR_DOMAIN_UNDEFINE_NVRAM)
                     dom.destroy()
                 except Exception:
                     pass
@@ -499,3 +499,45 @@ def testLiveHotplug(app, dom):
             pool.undefine()
         except Exception:
             log.debug("Error cleaning up pool", exc_info=True)
+
+
+@_vm_wrapper("uitests-firmware-efi")
+def testFirmwareRename(app, dom):
+    from virtinst import cli, DeviceDisk
+    win = app.topwin
+    dom.destroy()
+
+    # First we refresh the 'nvram' pool, so we can reliably
+    # check if nvram files are created/deleted as expected
+    conn = cli.getConnection(app.conn.getURI())
+    origname = dom.name()
+    nvramdir = conn.get_libvirt_data_root_dir() + "/qemu/nvram"
+
+    fakedisk = DeviceDisk(conn)
+    fakedisk.set_source_path(nvramdir + "/FAKE-UITEST-FILE")
+    nvram_pool = fakedisk.get_parent_pool()
+    nvram_pool.refresh()
+
+    origpath = "%s/%s_VARS.fd" % (nvramdir, origname)
+    newname = "uitests-firmware-efi-renamed"
+    newpath = "%s/%s_VARS.fd" % (nvramdir, newname)
+    assert DeviceDisk.path_definitely_exists(app.conn, origpath)
+    assert not DeviceDisk.path_definitely_exists(app.conn, newpath)
+
+    # Now do the actual UI clickage
+    win.find("Details", "radio button").click()
+    win.find("Hypervisor Details", "label")
+    win.find("Overview", "table cell").click()
+
+    newname = "uitests-firmware-efi-renamed"
+    win.find("Name:", "text").set_text(newname)
+    appl = win.find("config-apply")
+    appl.click()
+    lib.utils.check(lambda: not appl.sensitive)
+
+    # Confirm window was updated
+    app.find_window("%s on" % newname)
+
+    # Confirm nvram paths were altered as expected
+    assert not DeviceDisk.path_definitely_exists(app.conn, origpath)
+    assert DeviceDisk.path_definitely_exists(app.conn, newpath)
diff --git a/virtManager/object/domain.py b/virtManager/object/domain.py
index 70e4e49f..2d6f5bca 100644
--- a/virtManager/object/domain.py
+++ b/virtManager/object/domain.py
@@ -433,10 +433,8 @@ class vmmDomain(vmmLibvirtObject):
         return False
 
     def has_nvram(self):
-        return bool(self.get_xmlobj().os.firmware == 'efi' or
-                    (self.get_xmlobj().os.loader_ro is True and
-                     self.get_xmlobj().os.loader_type == "pflash" and
-                     self.get_xmlobj().os.nvram))
+        return bool(self.get_xmlobj().is_uefi() or
+                    self.get_xmlobj().os.nvram)
 
     def is_persistent(self):
         return bool(self._backend.isPersistent())
@@ -540,9 +538,32 @@ class vmmDomain(vmmLibvirtObject):
         We need to do this copy magic because there is no Libvirt storage API
         to rename storage volume.
         """
+        if not self.has_nvram():
+            return None, None
+
+        old_nvram_path = self.get_xmlobj().os.nvram
+        if not old_nvram_path:
+            # Probably using firmware=efi which doesn't put nvram
+            # path in the XML. Build the implied path
+            old_nvram_path = os.path.join(
+                self.conn.get_backend().get_libvirt_data_root_dir(),
+                self.conn.get_backend().get_uri_driver(),
+                "nvram", "%s_VARS.fd" % self.get_name())
+            log.debug("Guest is expected to use <nvram> but we didn't "
+                      "find one in the XML. Generated implied path=%s",
+                      old_nvram_path)
+
+        if not DeviceDisk.path_definitely_exists(
+                self.conn.get_backend(),
+                old_nvram_path):  # pragma: no cover
+            log.debug("old_nvram_path=%s but it doesn't appear to exist. "
+                      "skipping rename nvram duplication", old_nvram_path)
+            return None, None
+
+
         from virtinst import Cloner
         old_nvram = DeviceDisk(self.conn.get_backend())
-        old_nvram.set_source_path(self.get_xmlobj().os.nvram)
+        old_nvram.set_source_path(old_nvram_path)
 
         nvram_dir = os.path.dirname(old_nvram.get_source_path())
         new_nvram_path = os.path.join(nvram_dir,
@@ -564,10 +585,7 @@ class vmmDomain(vmmLibvirtObject):
             return
         Guest.validate_name(self.conn.get_backend(), str(new_name))
 
-        new_nvram = None
-        old_nvram = None
-        if self.has_nvram():
-            new_nvram, old_nvram = self._copy_nvram_file(new_name)
+        new_nvram, old_nvram = self._copy_nvram_file(new_name)
 
         try:
             self.define_name(new_name)

++++++ virtinst-add-pvh-support.patch ++++++
--- /var/tmp/diff_new_pack.TLqckg/_old  2022-07-22 19:20:18.164565437 +0200
+++ /var/tmp/diff_new_pack.TLqckg/_new  2022-07-22 19:20:18.168565443 +0200
@@ -45,7 +45,7 @@
 ===================================================================
 --- virt-manager-4.0.0.orig/virtManager/object/domain.py
 +++ virt-manager-4.0.0/virtManager/object/domain.py
-@@ -1292,6 +1292,8 @@ class vmmDomain(vmmLibvirtObject):
+@@ -1310,6 +1310,8 @@ class vmmDomain(vmmLibvirtObject):
          return self.get_xmlobj().os.is_xenpv()
      def is_hvm(self):
          return self.get_xmlobj().os.is_hvm()

++++++ virtman-add-sev-memory-support.patch ++++++
--- /var/tmp/diff_new_pack.TLqckg/_old  2022-07-22 19:20:18.224565540 +0200
+++ /var/tmp/diff_new_pack.TLqckg/_new  2022-07-22 19:20:18.228565546 +0200
@@ -84,7 +84,7 @@
 ===================================================================
 --- virt-manager-4.0.0.orig/virtManager/object/domain.py
 +++ virt-manager-4.0.0/virtManager/object/domain.py
-@@ -688,15 +688,33 @@ class vmmDomain(vmmLibvirtObject):
+@@ -706,15 +706,33 @@ class vmmDomain(vmmLibvirtObject):
              guest.memoryBacking.access_mode = access_mode
  
      def define_memory(self, memory=_SENTINEL, maxmem=_SENTINEL,
@@ -119,7 +119,7 @@
  
          self._redefine_xmlobj(guest)
  
-@@ -1310,6 +1328,9 @@ class vmmDomain(vmmLibvirtObject):
+@@ -1328,6 +1346,9 @@ class vmmDomain(vmmLibvirtObject):
      def get_description(self):
          return self.get_xmlobj().description
  

++++++ virtman-fix-restore-vm-menu-selection.patch ++++++
--- /var/tmp/diff_new_pack.TLqckg/_old  2022-07-22 19:20:18.256565595 +0200
+++ /var/tmp/diff_new_pack.TLqckg/_new  2022-07-22 19:20:18.260565602 +0200
@@ -7,7 +7,7 @@
 ===================================================================
 --- virt-manager-4.0.0.orig/virtManager/object/domain.py
 +++ virt-manager-4.0.0/virtManager/object/domain.py
-@@ -1602,7 +1602,8 @@ class vmmDomain(vmmLibvirtObject):
+@@ -1620,7 +1620,8 @@ class vmmDomain(vmmLibvirtObject):
          return (self.is_stoppable() or
                  self.status() in [libvirt.VIR_DOMAIN_CRASHED])
      def is_runable(self):

Reply via email to