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 2021-10-11 16:48:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/virt-manager (Old) and /work/SRC/openSUSE:Factory/.virt-manager.new.2443 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-manager" Mon Oct 11 16:48:39 2021 rev:225 rq:924117 version:3.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/virt-manager/virt-manager.changes 2021-09-20 23:32:55.187156277 +0200 +++ /work/SRC/openSUSE:Factory/.virt-manager.new.2443/virt-manager.changes 2021-10-11 16:48:46.126182326 +0200 @@ -1,0 +2,15 @@ +Thu Oct 7 14:53:51 MDT 2021 - carn...@suse.com + +- bsc#1191356 - virt-manager should not depend on gtk4 + Modified files: + virt-manager.spec + virtman-dont-specify-gtksource-version.patch + virtman-dont-specify-vte-version.patch + +------------------------------------------------------------------- +Mon Oct 4 15:58:01 MDT 2021 - carn...@suse.com + +- jsc#SLE-20856 Dev: KVM: Enable vfio-ccw and vfio-ap in virt-* tools + 965480e8-virt-install-add-mediated-device.patch + +------------------------------------------------------------------- New: ---- 965480e8-virt-install-add-mediated-device.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ virt-manager.spec ++++++ --- /var/tmp/diff_new_pack.i4fooy/_old 2021-10-11 16:48:47.138183935 +0200 +++ /var/tmp/diff_new_pack.i4fooy/_new 2021-10-11 16:48:47.138183935 +0200 @@ -39,6 +39,7 @@ Patch5: 143c6bef-virtinst-fix-error-message-format-string.patch Patch6: fe8722e7-createnet-Remove-some-unnecessary-max_length-annotations.patch Patch7: d9b5090e-Fix-forgetting-password-from-keyring.patch +Patch8: 965480e8-virt-install-add-mediated-device.patch # SUSE Only Patch70: virtman-desktop.patch Patch71: virtman-kvm.patch @@ -93,31 +94,23 @@ %define verrel %{version}-%{release} Requires: dbus-1-x11 Requires: dconf -Requires: gtk3 >= 3.22 -Requires: python3-gobject-Gdk +Requires: gtk3 +Requires: python3-gobject # For console widget Requires: python3-cairo Requires: python3-gobject-cairo Recommends: python3-SpiceClientGtk -Requires: gtksourceview >= 3 Requires: virt-install Requires: virt-manager-common = %{verrel} +Requires: typelib(GtkSource) %if %{with_guestfs} Requires: python3-libguestfs %endif -BuildRequires: glib2-devel -BuildRequires: gtk3-tools -BuildRequires: intltool -BuildRequires: perl +BuildRequires: gettext BuildRequires: python3-devel BuildRequires: python3-docutils -BuildRequires: python3-gobject -BuildRequires: python3-libvirt-python >= 0.7.0 -BuildRequires: python3-libxml2-python -BuildRequires: python3-requests -BuildRequires: typelib(Libosinfo) %description Virtual Machine Manager provides a graphical tool for administering virtual @@ -178,6 +171,7 @@ %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 # SUSE Only %patch70 -p1 %patch71 -p1 ++++++ 965480e8-virt-install-add-mediated-device.patch ++++++ Subject: virt-install: add mediated device From: Shalini Chellathurai Saroja shal...@linux.ibm.com Wed Apr 14 17:18:55 2021 +0200 Date: Tue May 18 18:36:03 2021 -0400: Git: 965480e8bc85caf8a4f36b4a2f07963067b63cf6 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 <crobi...@redhat.com> Signed-off-by: Shalini Chellathurai Saroja <shal...@linux.ibm.com> Index: virt-manager-3.2.0/tests/data/cli/compare/virt-install-many-devices.xml =================================================================== --- virt-manager-3.2.0.orig/tests/data/cli/compare/virt-install-many-devices.xml +++ virt-manager-3.2.0/tests/data/cli/compare/virt-install-many-devices.xml @@ -592,6 +592,25 @@ <char>/dev/pty7</char> </source> </hostdev> + <hostdev mode="subsystem" type="mdev" managed="no" model="vfio-ccw"> + <address type="ccw" cssid="0xfe" ssid="0x1" devno="0x0008"/> + <source> + <address uuid="8e37ee90-2b51-45e3-9b25-bf8283c03110"/> + </source> + </hostdev> + <hostdev mode="subsystem" type="mdev" managed="no" model="vfio-ap"> + <source> + <address uuid="11f92c9d-b0b0-4016-b306-a8071277f8b9"/> + </source> + </hostdev> + <hostdev mode="subsystem" type="mdev" managed="yes" model="vfio-pci" display="off" ramfb="off"> + <address type="pci" domain="0" bus="1" slot="1" function="0"> + <zpci uid="0x0001" fid="0x00000001"/> + </address> + <source> + <address uuid="4b20d080-1b54-4048-85b3-a6a62d165c01"/> + </source> + </hostdev> <redirdev bus="usb" type="spicevmc"/> <redirdev bus="usb" type="tcp"> <source host="localhost" service="4000"/> Index: virt-manager-3.2.0/tests/data/testdriver/testdriver.xml =================================================================== --- virt-manager-3.2.0.orig/tests/data/testdriver/testdriver.xml +++ virt-manager-3.2.0/tests/data/testdriver/testdriver.xml @@ -3645,5 +3645,45 @@ ba</description> </capability> </device> +<device> + <name>mdev_8e37ee90_2b51_45e3_9b25_bf8283c03110</name> + <path>/sys/devices/css0/0.0.0023/8e37ee90-2b51-45e3-9b25-bf8283c03110</path> + <parent>css_0_0_0023</parent> + <driver> + <name>vfio_mdev</name> + </driver> + <capability type='mdev'> + <type id='vfio_ccw-io'/> + <iommuGroup number='0'/> + </capability> +</device> + +<device> + <name>mdev_11f92c9d_b0b0_4016_b306_a8071277f8b9</name> + <path>/sys/devices/vfio_ap/matrix/11f92c9d-b0b0-4016-b306-a8071277f8b9</path> + <parent>ap_matrix</parent> + <driver> + <name>vfio_mdev</name> + </driver> + <capability type='mdev'> + <type id='vfio_ap-passthrough'/> + <iommuGroup number='2'/> + <attr name='assign_adapter' value='1'/> + <attr name='assign_domain' value='2'/> + </capability> +</device> + +<device> + <name>mdev_4b20d080_1b54_4048_85b3_a6a62d165c01</name> + <path>/sys/devices/pci0000:00/0000:00:02.0/4b20d080-1b54-4048-85b3-a6a62d165c01</path> + <parent>pci_0000_06_00_0</parent> + <driver> + <name>vfio_mdev</name> + </driver> + <capability type='mdev'> + <type id='nvidia-11'/> + <iommuGroup number='12'/> + </capability> +</device> </node> Index: virt-manager-3.2.0/tests/test_cli.py =================================================================== --- virt-manager-3.2.0.orig/tests/test_cli.py +++ virt-manager-3.2.0/tests/test_cli.py @@ -675,6 +675,9 @@ source.reservations.managed=no,source.re --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 Index: virt-manager-3.2.0/tests/test_nodedev.py =================================================================== --- virt-manager-3.2.0.orig/tests/test_nodedev.py +++ virt-manager-3.2.0/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(): Index: virt-manager-3.2.0/virtinst/devices/hostdev.py =================================================================== --- virt-manager-3.2.0.orig/virtinst/devices/hostdev.py +++ virt-manager-3.2.0/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 # Index: virt-manager-3.2.0/virtinst/nodedev.py =================================================================== --- virt-manager-3.2.0.orig/virtinst/nodedev.py +++ virt-manager-3.2.0/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 ++++++ virtman-dont-specify-gtksource-version.patch ++++++ --- /var/tmp/diff_new_pack.i4fooy/_old 2021-10-11 16:48:47.326184234 +0200 +++ /var/tmp/diff_new_pack.i4fooy/_new 2021-10-11 16:48:47.326184234 +0200 @@ -1,8 +1,8 @@ -Index: virt-manager-3.0.0/virtManager/xmleditor.py +Index: virt-manager-3.2.0/virtManager/xmleditor.py =================================================================== ---- virt-manager-3.0.0.orig/virtManager/xmleditor.py -+++ virt-manager-3.0.0/virtManager/xmleditor.py -@@ -7,12 +7,12 @@ import gi +--- virt-manager-3.2.0.orig/virtManager/xmleditor.py ++++ virt-manager-3.2.0/virtManager/xmleditor.py +@@ -7,12 +7,7 @@ import gi from virtinst import log # We can use either gtksourceview3 or gtksourceview4 @@ -12,12 +12,7 @@ -except ValueError: # pragma: no cover - gi.require_version("GtkSource", "3.0") - log.debug("Using GtkSource 3.0") -+#try: -+# gi.require_version("GtkSource", "4") -+# log.debug("Using GtkSource 4") -+#except ValueError: # pragma: no cover -+# gi.require_version("GtkSource", "3.0") -+# log.debug("Using GtkSource 3.0") ++gi.require_version("GtkSource", "3.0") from gi.repository import GtkSource from .lib import uiutil ++++++ virtman-dont-specify-vte-version.patch ++++++ --- /var/tmp/diff_new_pack.i4fooy/_old 2021-10-11 16:48:47.334184246 +0200 +++ /var/tmp/diff_new_pack.i4fooy/_new 2021-10-11 16:48:47.338184253 +0200 @@ -2,11 +2,11 @@ version of vte is really allowed. Vte 2.91 is installed on the host but the RPM is built requiring 2.90. -Index: virt-manager-3.0.0/virtManager/details/serialcon.py +Index: virt-manager-3.2.0/virtManager/details/serialcon.py =================================================================== ---- virt-manager-3.0.0.orig/virtManager/details/serialcon.py -+++ virt-manager-3.0.0/virtManager/details/serialcon.py -@@ -12,12 +12,12 @@ from gi.repository import Gtk +--- virt-manager-3.2.0.orig/virtManager/details/serialcon.py ++++ virt-manager-3.2.0/virtManager/details/serialcon.py +@@ -12,12 +12,7 @@ from gi.repository import Gtk from virtinst import log # We can use either 2.91 or 2.90. This is just to silence runtime warnings @@ -16,12 +16,7 @@ -except ValueError: # pragma: no cover - gi.require_version("Vte", "2.90") - log.debug("Using VTE API 2.90") -+#try: -+# gi.require_version("Vte", "2.91") -+# log.debug("Using VTE API 2.91") -+#except ValueError: # pragma: no cover -+# gi.require_version("Vte", "2.90") -+# log.debug("Using VTE API 2.90") ++gi.require_version("Vte", "2.91") from gi.repository import Vte import libvirt