Hello community,

here is the log from the commit of package virt-manager for openSUSE:Factory 
checked in at 2014-04-05 21:41:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-manager (Old)
 and      /work/SRC/openSUSE:Factory/.virt-manager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "virt-manager"

Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-manager/virt-manager.changes        
2014-03-30 12:29:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.virt-manager.new/virt-manager.changes   
2014-04-05 21:41:34.000000000 +0200
@@ -1,0 +2,42 @@
+Wed Apr  3 19:25:41 MDT 2014 - carn...@suse.com
+
+- Upstream bug fixes
+  533d708d-fix-showing-vcpus-values.patch
+  533d7602-fix-changing-graphics-type.patch
+  533d7be7-clarify-iscsi-IQN-fields.patch
+- Dropped virtman-init-vm-processor-topology.patch in favor of
+  upstream 533d708d-fix-showing-vcpus-values.patch
+
+-------------------------------------------------------------------
+Wed Apr  2 16:13:41 MDT 2014 - carn...@suse.com
+
+- bnc#869024 - Build0198: Only option to create a virtual machine is
+  "import existing disk image" 
+  virtman-add-s390x-arch-support.patch
+
+-------------------------------------------------------------------
+Wed Apr  2 14:16:42 MDT 2014 - carn...@suse.com
+
+- bnc#871642 - virt-manager wants to install libvirt-daemon-xen
+  even when it is installed 
+  xen.spec
+- Xen: Virt-install won't reboot VM after install of SLE HVM guest
+  because of libxl exception.
+  virtinst-keep-cdrom-media-attached.patch
+
+-------------------------------------------------------------------
+Wed Apr  2 04:34:59 CST 2014 - cy...@suse.com
+
+- Fate#315125: add NOCOW flag
+  virtinst-vol-default-nocow.patch 
+
+-------------------------------------------------------------------
+Fri Mar 31 13:47:38 MDT 2014 - carn...@suse.com
+
+- Upstream bug fixes
+  53375bad-raise-value-error-when-no-ipaddr-set.patch
+  53388de2-show-port-number-for-active-autoport-VM.patch
+  53397ae0-check-ip-address-format.patch
+  53399b45-hook-into-domain-balloon-event.patch
+
+-------------------------------------------------------------------

Old:
----
  virtman-init-vm-processor-topology.patch

New:
----
  53375bad-raise-value-error-when-no-ipaddr-set.patch
  53388de2-show-port-number-for-active-autoport-VM.patch
  53397ae0-check-ip-address-format.patch
  53399b45-hook-into-domain-balloon-event.patch
  533d708d-fix-showing-vcpus-values.patch
  533d7602-fix-changing-graphics-type.patch
  533d7be7-clarify-iscsi-IQN-fields.patch
  virtinst-keep-cdrom-media-attached.patch
  virtinst-vol-default-nocow.patch
  virtman-add-s390x-arch-support.patch

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

Other differences:
------------------
++++++ virt-manager.spec ++++++
--- /var/tmp/diff_new_pack.94ggUb/_old  2014-04-05 21:41:35.000000000 +0200
+++ /var/tmp/diff_new_pack.94ggUb/_new  2014-04-05 21:41:35.000000000 +0200
@@ -19,15 +19,15 @@
 %define with_guestfs       0
 %define askpass_package    "openssh-askpass"
 %define qemu_user          "qemu"
-%define libvirt_kvm_packages   "libvirt-daemon-qemu"
-%define libvirt_xen_packages   "libvirt-daemon-xen"
+%define libvirt_kvm_packages   ""
+%define libvirt_xen_packages   ""
 %define preferred_distros  "sles,opensuse"
-%define kvm_packages       "qemu-x86"
+%define kvm_packages       ""
 %define _version           1.0.1
 %define _release           1
 
 Name:           virt-manager
-Version:        %{_version}
+Version:        1.0.1
 Release:        0
 Summary:        Virtual Machine Manager
 License:        GPL-2.0+
@@ -39,6 +39,13 @@
 Patch1:         5332ee4d-enable-media-detection-for-ISO-images.patch
 Patch2:         53341e7e-hide-hardware-removal-for-non-devices.patch
 Patch3:         53342f31-set-right-ip-address-for-ipv6.patch
+Patch4:         53375bad-raise-value-error-when-no-ipaddr-set.patch
+Patch5:         53388de2-show-port-number-for-active-autoport-VM.patch
+Patch6:         53397ae0-check-ip-address-format.patch
+Patch7:         53399b45-hook-into-domain-balloon-event.patch
+Patch8:         533d708d-fix-showing-vcpus-values.patch
+Patch9:         533d7602-fix-changing-graphics-type.patch
+Patch10:        533d7be7-clarify-iscsi-IQN-fields.patch
 Patch50:        virtman-desktop.patch
 Patch51:        virtman-cdrom.patch
 Patch52:        virtman-kvm.patch
@@ -59,7 +66,7 @@
 Patch73:        virtman-load-stored-uris.patch
 Patch74:        virtman-libvirtd-not-running.patch
 Patch75:        virtman-stable-os-support.patch
-Patch76:        virtman-init-vm-processor-topology.patch
+Patch76:        virtman-add-s390x-arch-support.patch
 Patch150:       virtinst-cdrom.patch
 Patch151:       virtinst-storage-ocfs2.patch
 Patch152:       virtinst-qed.patch
@@ -69,16 +76,18 @@
 Patch156:       virtinst-modify-gui-defaults.patch
 Patch157:       virtinst-pvgrub2-bootloader.patch
 Patch158:       virtinst-set-qemu-emulator.patch
+Patch159:       virtinst-vol-default-nocow.patch
+Patch160:       virtinst-keep-cdrom-media-attached.patch
 BuildArch:      noarch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %define verrel %{version}-%{release}
-Requires:       virt-manager-common = %{verrel}
 Requires:       avahi                                                          
                                                            
+Requires:       dbus-1-x11
+Requires:       dconf
 Requires:       gtk3
 Requires:       python-gconf
-Requires:       dconf                                                          
                                                            
-Requires:       dbus-1-x11                                                     
                                                              
+Requires:       virt-manager-common = %{verrel}
 Requires:       vm-install >= 0.5.6
 
 # Libvirt-glib
@@ -93,12 +102,12 @@
 Requires:       gtk-vnc2
 Requires:       libspice-client-glib-2_0-8
 Requires:       libspice-client-gtk-3_0-4
-Requires:       typelib-1_0-SpiceClientGlib-2_0
-Requires:       typelib-1_0-SpiceClientGtk-3_0
-Requires:       typelib-1_0-Gtk-3_0
+Requires:       python-gobject-cairo
 Requires:       typelib-1_0-GVnc-1_0
+Requires:       typelib-1_0-Gtk-3_0
 Requires:       typelib-1_0-GtkVnc-2_0
-Requires:       python-gobject-cairo
+Requires:       typelib-1_0-SpiceClientGlib-2_0
+Requires:       typelib-1_0-SpiceClientGtk-3_0
 Recommends:     python-SpiceClientGtk
 
 Requires:       virt-install
@@ -127,9 +136,9 @@
 # This version not strictly required: virt-manager should work with older,
 # however varying amounts of functionality will not be enabled.
 Requires:       libvirt-python >= 0.7.0
-Requires:       python-urlgrabber
 Requires:       python-ipaddr
 Requires:       python-libxml2
+Requires:       python-urlgrabber
 
 %description common
 Common files used by the different virt-manager interfaces, as well as
@@ -142,10 +151,10 @@
 
 Requires:       virt-manager-common = %{verrel}
 
+Provides:       python-virtinst
 Provides:       virt-clone
-Provides:       virt-image
 Provides:       virt-convert
-Provides:       python-virtinst
+Provides:       virt-image
 Obsoletes:      python-virtinst <= 0.600.4
 Supplements:    virt-manager
 
@@ -160,6 +169,13 @@
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
 %patch50 -p1
 %patch51 -p1
 %patch52 -p1
@@ -190,6 +206,8 @@
 %patch156 -p1
 %patch157 -p1
 %patch158 -p1
+%patch159 -p1
+%patch160 -p1
 
 %build
 %if %{qemu_user}

++++++ 53375bad-raise-value-error-when-no-ipaddr-set.patch ++++++
Subject: createinterface: raise value error when no ip addr set
From: Chen Hanxiao chenhanx...@cn.fujitsu.com Sun Mar 30 07:47:22 2014 +0800
Date: Sun Mar 30 07:47:57 2014 +0800:
Git: 119025e1ef5e6b47d634c1e05d9143f0092da5c2

We could set blank ip address

IP setting->Configure->Mode (static), then press "OK".

And libvirt will throw an error not very helpful:
Error creating interface: 'Could not define interface:
XML error: could not get interface XML description:
XML invalid - Element protocol failed to validate attributes.

This patch will forbid setting an empty ip address.

Signed-off-by: Chen Hanxiao <chenhanx...@cn.fujitsu.com>

diff --git a/virtManager/createinterface.py b/virtManager/createinterface.py
index 11fc9b2..4588bba 100644
--- a/virtManager/createinterface.py
+++ b/virtManager/createinterface.py
@@ -764,7 +764,7 @@ class vmmCreateInterface(vmmGObjectUI):
     def build_ip_info(self):
         def build_ip(addr_str):
             if not addr_str:
-                return None, None
+                raise ValueError(_("Please enter an IP address"))
             ret = addr_str.rsplit("/", 1)
             address = ret[0]
             prefix = None
++++++ 53388de2-show-port-number-for-active-autoport-VM.patch ++++++
Subject: gfxdetails: Show port number for active autoport VM (bz 1081614)
From: Cole Robinson crobi...@redhat.com Sun Mar 30 17:34:26 2014 -0400
Date: Sun Mar 30 17:34:26 2014 -0400:
Git: 7f802e287c21a6395a0e9f5435c1eab78b2ce6b5


diff --git a/virtManager/gfxdetails.py b/virtManager/gfxdetails.py
index 0141f7e..d6865a8 100644
--- a/virtManager/gfxdetails.py
+++ b/virtManager/gfxdetails.py
@@ -154,15 +154,20 @@ class vmmGraphicsDetails(vmmGObjectUI):
             auto = self.widget(basename + "-auto")
             widget = self.widget(basename)
             auto.set_inconsistent(False)
+            label = auto.get_label().split(" (")[0]
 
             if val == -1 or gfx.autoport:
                 auto.set_active(True)
+                if val and val != -1:
+                    label += " (%s %s)" % (_("Port"), val)
             elif val is None:
                 auto.set_inconsistent(True)
             else:
                 auto.set_active(False)
                 widget.set_value(val)
 
+            auto.set_label(label)
+
         gtype = gfx.type
         is_vnc = (gtype == "vnc")
         is_sdl = (gtype == "sdl")
++++++ 53397ae0-check-ip-address-format.patch ++++++
Subject: interface: check ip address format
From: Chen Hanxiao chenhanx...@cn.fujitsu.com Mon Mar 31 22:25:36 2014 +0800
Date: Mon Mar 31 22:25:36 2014 +0800:
Git: 89c45af26deca41cba5dffcc4cae5e653fedc89a

Signed-off-by: Chen Hanxiao <chenhanx...@cn.fujitsu.com>

Index: virt-manager-1.0.1/tests/xmlparse-xml/interface-test-bridge-ip-out.xml
===================================================================
--- virt-manager-1.0.1.orig/tests/xmlparse-xml/interface-test-bridge-ip-out.xml
+++ virt-manager-1.0.1/tests/xmlparse-xml/interface-test-bridge-ip-out.xml
@@ -15,7 +15,7 @@
   </protocol>
   <protocol family="ipv6">
     <ip address="fe99::215:58ff:fe6e:5" prefix="32"/>
-    <ip address="foobar" prefix="38"/>
+    <ip address="2002::" prefix="38"/>
     <route gateway="1.2.3.4"/>
   </protocol>
 </interface>
Index: virt-manager-1.0.1/tests/xmlparse.py
===================================================================
--- virt-manager-1.0.1.orig/tests/xmlparse.py
+++ virt-manager-1.0.1/tests/xmlparse.py
@@ -958,7 +958,7 @@ class XMLParseTest(unittest.TestCase):
         check("autoconf", True, False)
 
         check = self._make_checker(iface.protocols[1].ips[1])
-        check("address", "fe80::215:58ff:fe6e:5", "foobar")
+        check("address", "fe80::215:58ff:fe6e:5", "2002::")
         check("prefix", 64, 38)
 
         # Remove a child interface, verify it's data remains intact
Index: virt-manager-1.0.1/virtinst/interface.py
===================================================================
--- virt-manager-1.0.1.orig/virtinst/interface.py
+++ virt-manager-1.0.1/virtinst/interface.py
@@ -23,6 +23,7 @@ Classes for building and installing libv
 import logging
 
 import libvirt
+import ipaddr
 
 from virtinst import util
 from virtinst.xmlbuilder import XMLBuilder, XMLChildProperty, XMLProperty
@@ -32,7 +33,15 @@ class _IPAddress(XMLBuilder):
     _XML_PROP_ORDER = ["address", "prefix"]
     _XML_ROOT_NAME = "ip"
 
-    address = XMLProperty("./@address")
+    ######################
+    # Validation helpers #
+    ######################
+
+    def _validate_ipaddr(self, addr):
+        ipaddr.IPAddress(addr)
+        return addr
+
+    address = XMLProperty("./@address", validate_cb=_validate_ipaddr)
     prefix = XMLProperty("./@prefix", is_int=True)
 
 
++++++ 53399b45-hook-into-domain-balloon-event.patch ++++++
Subject: connection: Hook into domain balloon event (bz 1081424)
From: Cole Robinson crobi...@redhat.com Mon Mar 31 12:43:49 2014 -0400
Date: Mon Mar 31 12:43:49 2014 -0400:
Git: adf3545671b155ca37c82bff0ab96d0c038ffee8


diff --git a/virtManager/connection.py b/virtManager/connection.py
index bc8a81f..27d5bd9 100644
--- a/virtManager/connection.py
+++ b/virtManager/connection.py
@@ -99,9 +99,9 @@ class vmmConnection(vmmGObject):
         self._nodedev_capable = None
 
         self.using_domain_events = False
-        self._domain_cb_id = None
+        self._domain_cb_ids = []
         self.using_network_events = False
-        self._network_cb_id = None
+        self._network_cb_ids = []
 
         self._xml_flags = {}
 
@@ -840,6 +840,16 @@ class vmmConnection(vmmGObject):
     # event driven setup is hard, so we end up doing more polling than
     # necessary on most events.
 
+    def _domain_xml_misc_event(self, conn, domain, *args):
+        # Just trigger a domain XML refresh for hotplug type events
+        ignore = conn
+        ignore = args
+
+        obj = self.vms.get(domain.UUIDString(), None)
+        if not obj:
+            return
+        self.idle_add(obj.refresh_xml, True)
+
     def _domain_lifecycle_event(self, conn, domain, event, reason, userdata):
         ignore = conn
         ignore = reason
@@ -872,19 +882,41 @@ class vmmConnection(vmmGObject):
 
     def _add_conn_events(self):
         try:
-            self._domain_cb_id = self.get_backend().domainEventRegisterAny(
+            self._domain_cb_ids.append(
+                self.get_backend().domainEventRegisterAny(
                 None, libvirt.VIR_DOMAIN_EVENT_ID_LIFECYCLE,
-                self._domain_lifecycle_event, None)
+                self._domain_lifecycle_event, None))
             self.using_domain_events = True
             logging.debug("Using domain events")
         except Exception, e:
             self.using_domain_events = False
             logging.debug("Error registering domain events: %s", e)
 
+        def _add_domain_xml_event(eventid, typestr):
+            if not self.using_domain_events:
+                return
+            try:
+                self._domain_cb_ids.append(
+                    self.get_backend().domainEventRegisterAny(
+                    None, eventid, self._domain_xml_misc_event, None))
+            except Exception, e:
+                logging.debug("Error registering domain %s event: %s",
+                    typestr, e)
+
+        _add_domain_xml_event(
+            getattr(libvirt, "VIR_DOMAIN_EVENT_ID_BALLOON_CHANGE", 13),
+            "balloon")
+        _add_domain_xml_event(
+            getattr(libvirt, "VIR_DOMAIN_EVENT_ID_TRAY_CHANGE", 10), "tray")
+        _add_domain_xml_event(
+            getattr(libvirt, "VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED", 15),
+            "device removed")
+
         try:
             eventid = getattr(libvirt, "VIR_NETWORK_EVENT_ID_LIFECYCLE", 0)
-            self._network_cb_id = self.get_backend().networkEventRegisterAny(
-                None, eventid, self._network_lifecycle_event, None)
+            self._network_cb_ids.append(
+                self.get_backend().networkEventRegisterAny(
+                None, eventid, self._network_lifecycle_event, None))
             self.using_network_events = True
             logging.debug("Using network events")
         except Exception, e:
@@ -936,15 +968,13 @@ class vmmConnection(vmmGObject):
 
         try:
             if not self._backend.is_closed():
-                if self._domain_cb_id is not None:
-                    self._backend.domainEventDeregisterAny(
-                        self._domain_cb_id)
-                self._domain_cb_id = None
-
-                if self._network_cb_id is not None:
-                    self._backend.networkEventDeregisterAny(
-                        self._network_cb_id)
-                self._network_cb_id = None
+                for eid in self._domain_cb_ids:
+                    self._backend.domainEventDeregisterAny(eid)
+                self._domain_cb_ids = []
+
+                for eid in self._network_cb_ids:
+                    self._backend.networkEventDeregisterAny(eid)
+                self._network_cb_ids = []
         except:
             logging.debug("Failed to deregister events in conn cleanup",
                 exc_info=True)
++++++ 533d708d-fix-showing-vcpus-values.patch ++++++
Subject: details: Fix showing vcpus values in 'customize' dialog (bz 1083903)
From: Cole Robinson crobi...@redhat.com Thu Apr 3 10:30:37 2014 -0400
Date: Thu Apr 3 10:30:37 2014 -0400:
Git: ee6a541167b787a84cc5c7e553089cbd5ab9ada3


Index: virt-manager-1.0.1/virtManager/details.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/details.py
+++ virt-manager-1.0.1/virtManager/details.py
@@ -2546,6 +2546,12 @@ class vmmDetails(vmmGObjectUI):
                                         self.vm.network_traffic_vector())
 
     def refresh_config_cpu(self):
+        # This bit needs to come first, since CPU values can be affected
+        # by whether topology is enabled
+        cpu = self.vm.get_cpu_config()
+        show_top = bool(cpu.sockets or cpu.cores or cpu.threads)
+        self.widget("cpu-topology-enable").set_active(show_top)
+
         conn = self.vm.conn
         host_active_count = conn.host_active_processor_count()
         maxvcpus = self.vm.vcpu_max_count()
@@ -2563,13 +2569,10 @@ class vmmDetails(vmmGObjectUI):
         self.widget("config-vcpus-warn-box").set_visible(warn)
 
         # CPU model config
-        cpu = self.vm.get_cpu_config()
-        show_top = bool(cpu.sockets or cpu.cores or cpu.threads)
         sockets = cpu.sockets or 1
         cores = cpu.cores or 1
         threads = cpu.threads or 1
 
-        self.widget("cpu-topology-enable").set_active(show_top)
         self.widget("cpu-sockets").set_value(sockets)
         self.widget("cpu-cores").set_value(cores)
         self.widget("cpu-threads").set_value(threads)
++++++ 533d7602-fix-changing-graphics-type.patch ++++++
Subject: details: Fix changing graphics type (bz 1083903)
From: Cole Robinson crobi...@redhat.com Thu Apr 3 10:53:54 2014 -0400
Date: Thu Apr 3 10:53:54 2014 -0400:
Git: 932e6e00bb08647800a62e59f61c8adee9c5de59

And clean up the API usage to avoid these types of issues in the future.

Index: virt-manager-1.0.1/virtManager/addhardware.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/addhardware.py
+++ virt-manager-1.0.1/virtManager/addhardware.py
@@ -905,12 +905,12 @@ class vmmAddHardware(vmmGObjectUI):
 
     # Input getters
     def get_config_input(self):
-        row = uiutil.get_list_selection(self.widget("input-type"))
+        row = uiutil.get_list_selection(self.widget("input-type"), None)
         return row[1], row[2]
 
     # Network getters
     def get_config_net_model(self):
-        return uiutil.get_list_selection(self.widget("net-model"))[0]
+        return uiutil.get_list_selection(self.widget("net-model"), 0)
 
     def get_config_macaddr(self):
         macaddr = None
@@ -933,7 +933,7 @@ class vmmAddHardware(vmmGObjectUI):
         return usb_info
 
     def get_config_host_device_info(self):
-        return uiutil.get_list_selection(self.widget("host-device"))
+        return uiutil.get_list_selection(self.widget("host-device"), None)
 
     # Video Getters
     def get_config_video_model(self):
@@ -1016,7 +1016,7 @@ class vmmAddHardware(vmmGObjectUI):
         uiutil.set_list_selection(self.widget("hw-list"), page)
 
     def get_hw_selection(self):
-        return uiutil.get_list_selection(self.widget("hw-list"))
+        return uiutil.get_list_selection(self.widget("hw-list"), None)
 
     def update_char_device_type_model(self):
         stable_blacklist = ["pipe", "udp"]
Index: virt-manager-1.0.1/virtManager/create.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/create.py
+++ virt-manager-1.0.1/virtManager/create.py
@@ -940,8 +940,8 @@ class vmmCreate(vmmGObjectUI):
         return self.widget("create-vm-name").get_text()
 
     def get_config_machine(self):
-        return uiutil.get_list_selection(self.widget("config-machine"),
-            rowindex=0, check_visible=True)
+        return uiutil.get_list_selection(self.widget("config-machine"), 0,
+            check_visible=True)
 
     def is_install_page(self):
         notebook = self.widget("create-pages")
@@ -965,8 +965,10 @@ class vmmCreate(vmmGObjectUI):
                 return INSTALL_PAGE_CONTAINER_OS
 
     def get_config_os_info(self):
-        drow = uiutil.get_list_selection(self.widget("install-os-type"))
-        vrow = uiutil.get_list_selection(self.widget("install-os-version"))
+        drow = uiutil.get_list_selection(
+            self.widget("install-os-type"), None)
+        vrow = uiutil.get_list_selection(
+            self.widget("install-os-version"), None)
         distro = None
         dlabel = None
         variant = None
@@ -1153,7 +1155,8 @@ class vmmCreate(vmmGObjectUI):
             self.detect_media_os()
 
     def _selected_os_row(self):
-        return uiutil.get_list_selection(self.widget("install-os-type"))
+        return uiutil.get_list_selection(
+            self.widget("install-os-type"), None)
 
     def change_os_type(self, box):
         ignore = box
Index: virt-manager-1.0.1/virtManager/createinterface.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/createinterface.py
+++ virt-manager-1.0.1/virtManager/createinterface.py
@@ -775,7 +775,7 @@ class vmmCreateInterface(vmmGObjectUI):
         is_manual = self.widget("ip-do-manual").get_active()
 
         copy_row = uiutil.get_list_selection(
-            self.widget("ip-copy-interface-combo"))
+            self.widget("ip-copy-interface-combo"), None)
 
         v4_mode = self.widget("ipv4-mode").get_active()
         v4_addr = self.widget("ipv4-address").get_text()
Index: virt-manager-1.0.1/virtManager/details.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/details.py
+++ virt-manager-1.0.1/virtManager/details.py
@@ -1109,7 +1109,7 @@ class vmmDetails(vmmGObjectUI):
             self.widget("toolbar-box").hide()
 
     def get_boot_selection(self):
-        return uiutil.get_list_selection(self.widget("config-boot-list"))
+        return uiutil.get_list_selection(self.widget("config-boot-list"), None)
 
     def set_hw_selection(self, page, disable_apply=True):
         if disable_apply:
@@ -1117,7 +1117,7 @@ class vmmDetails(vmmGObjectUI):
         uiutil.set_list_selection(self.widget("hw-list"), page)
 
     def get_hw_row(self):
-        return uiutil.get_list_selection(self.widget("hw-list"))
+        return uiutil.get_list_selection(self.widget("hw-list"), None)
 
     def get_hw_selection(self, field):
         row = self.get_hw_row()
Index: virt-manager-1.0.1/virtManager/fsdetails.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/fsdetails.py
+++ virt-manager-1.0.1/virtManager/fsdetails.py
@@ -155,16 +155,16 @@ class vmmFSDetails(vmmGObjectUI):
         return self._dev
 
     def get_config_fs_mode(self):
-        return uiutil.get_list_selection(self.widget("fs-mode-combo"),
-                                         rowindex=0, check_visible=True)
+        return uiutil.get_list_selection(self.widget("fs-mode-combo"), 0,
+                                         check_visible=True)
 
     def get_config_fs_wrpolicy(self):
-        return uiutil.get_list_selection(self.widget("fs-wrpolicy-combo"),
-                                         rowindex=0, check_visible=True)
+        return uiutil.get_list_selection(self.widget("fs-wrpolicy-combo"), 0,
+                                         check_visible=True)
 
     def get_config_fs_type(self):
-        return uiutil.get_list_selection(self.widget("fs-type-combo"),
-                                         rowindex=0, check_visible=True)
+        return uiutil.get_list_selection(self.widget("fs-type-combo"), 0,
+                                         check_visible=True)
 
     def get_config_fs_readonly(self):
         if not self.widget("fs-readonly").is_visible():
@@ -172,12 +172,12 @@ class vmmFSDetails(vmmGObjectUI):
         return self.widget("fs-readonly").get_active()
 
     def get_config_fs_driver(self):
-        return uiutil.get_list_selection(self.widget("fs-driver-combo"),
-                                         rowindex=0, check_visible=True)
+        return uiutil.get_list_selection(self.widget("fs-driver-combo"), 0,
+                                         check_visible=True)
 
     def get_config_fs_format(self):
-        return uiutil.get_list_selection(self.widget("fs-format-combo"),
-                                         rowindex=0, check_visible=True)
+        return uiutil.get_list_selection(self.widget("fs-format-combo"), 0,
+                                         check_visible=True)
 
     # Setters
     def set_dev(self, dev):
Index: virt-manager-1.0.1/virtManager/gfxdetails.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/gfxdetails.py
+++ virt-manager-1.0.1/virtManager/gfxdetails.py
@@ -134,9 +134,9 @@ class vmmGraphicsDetails(vmmGObjectUI):
         self.widget("graphics-password-chk").set_active(False)
 
     def get_values(self):
-        gtype = uiutil.get_list_selection(self.widget("graphics-type"))
+        gtype = uiutil.get_list_selection(self.widget("graphics-type"), 0)
         port, tlsport = self._get_config_graphics_ports()
-        addr = uiutil.get_list_selection(self.widget("graphics-address"))
+        addr = uiutil.get_list_selection(self.widget("graphics-address"), 0)
         keymap = uiutil.get_combo_entry(self.widget("graphics-keymap"))
         if keymap == "auto":
             keymap = None
Index: virt-manager-1.0.1/virtManager/manager.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/manager.py
+++ virt-manager-1.0.1/virtManager/manager.py
@@ -427,7 +427,7 @@ class vmmManager(vmmGObjectUI):
     ##################
 
     def current_row(self):
-        return uiutil.get_list_selection(self.widget("vm-list"))
+        return uiutil.get_list_selection(self.widget("vm-list"), None)
 
     def current_vm(self):
         row = self.current_row()
Index: virt-manager-1.0.1/virtManager/migrate.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/migrate.py
+++ virt-manager-1.0.1/virtManager/migrate.py
@@ -184,7 +184,7 @@ class vmmMigrateDialog(vmmGObjectUI):
         self.reset_state()
 
     def destconn_changed(self, src):
-        row = uiutil.get_list_selection(src)
+        row = uiutil.get_list_selection(src, None)
         tooltip = ""
         if row:
             tooltip = _("A valid destination connection must be selected.")
@@ -212,7 +212,7 @@ class vmmMigrateDialog(vmmGObjectUI):
         self.widget("migrate-port").set_sensitive(enable)
 
     def get_config_destconn(self):
-        row = uiutil.get_list_selection(self.widget("migrate-dest"))
+        row = uiutil.get_list_selection(self.widget("migrate-dest"), None)
         if not row or not row[2]:
             return None
         return row[1]
Index: virt-manager-1.0.1/virtManager/netlist.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/netlist.py
+++ virt-manager-1.0.1/virtManager/netlist.py
@@ -284,13 +284,11 @@ class vmmNetworkList(vmmGObjectUI):
     ###############
 
     def get_network_row(self):
-        return uiutil.get_list_selection(self.widget("net-source"))
+        return uiutil.get_list_selection(self.widget("net-source"), None)
 
     def get_network_selection(self):
-        net_list = self.widget("net-source")
         bridge_entry = self.widget("net-bridge-name")
-
-        row = uiutil.get_list_selection(net_list)
+        row = self.get_network_row()
         if not row:
             return None, None, None
 
@@ -472,9 +470,9 @@ class vmmNetworkList(vmmGObjectUI):
                 return
 
     def _on_net_source_changed(self, src):
+        ignore = src
         self._emit_changed()
-
-        row = uiutil.get_list_selection(src)
+        row = self.get_network_row()
         if not row:
             return
 
Index: virt-manager-1.0.1/virtManager/storagebrowse.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/storagebrowse.py
+++ virt-manager-1.0.1/virtManager/storagebrowse.py
@@ -221,7 +221,7 @@ class vmmStorageBrowser(vmmGObjectUI):
         return data["enable_create"]
 
     def current_pool(self):
-        row = uiutil.get_list_selection(self.widget("pool-list"))
+        row = uiutil.get_list_selection(self.widget("pool-list"), None)
         if not row:
             return
         try:
@@ -232,7 +232,7 @@ class vmmStorageBrowser(vmmGObjectUI):
     def current_vol_row(self):
         if not self.current_pool():
             return
-        return uiutil.get_list_selection(self.widget("vol-list"))
+        return uiutil.get_list_selection(self.widget("vol-list"), None)
 
     def current_vol(self):
         pool = self.current_pool()
Index: virt-manager-1.0.1/virtManager/uiutil.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/uiutil.py
+++ virt-manager-1.0.1/virtManager/uiutil.py
@@ -58,9 +58,11 @@ def spin_get_helper(widget):
         return adj.get_value()
 
 
-def get_list_selection(widget, rowindex=None, check_visible=False):
+def get_list_selection(widget, rowindex, check_visible=False):
     """
-    Helper to simplify getting the selected row in a list/tree/combo
+    Helper to simplify getting the selected row and value in a list/tree/combo
+
+    If rowindex is None, return the whole row.
     """
     if check_visible and not widget.get_visible():
         return None
@@ -145,7 +147,7 @@ def get_combo_entry(combo, rowidx=0):
     Helper to get the value specified in a combo box, with or
     without and entry
     """
-    row = get_list_selection(combo)
+    row = get_list_selection(combo, None)
     if row:
         return row[rowidx]
     if not combo.get_has_entry():
++++++ 533d7be7-clarify-iscsi-IQN-fields.patch ++++++
Subject: createpool: Clarify iscsi IQN fields (bz 1084011)
From: Cole Robinson crobi...@redhat.com Thu Apr 3 11:19:03 2014 -0400
Date: Thu Apr 3 11:19:03 2014 -0400:
Git: 8fa2aad1d31f811bb09505595c6401bdf6b90d78


Index: virt-manager-1.0.1/ui/createpool.ui
===================================================================
--- virt-manager-1.0.1.orig/ui/createpool.ui
+++ virt-manager-1.0.1/ui/createpool.ui
@@ -315,7 +315,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">1</property>
-                            <property name="label" translatable="yes">_Source 
Path:</property>
+                            <property name="label" 
translatable="yes">sourcep:</property>
                             <property name="use_underline">True</property>
                           </object>
                           <packing>
@@ -330,7 +330,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">1</property>
-                            <property name="label" 
translatable="yes">_IQN:</property>
+                            <property name="label" 
translatable="yes">Initiator _IQN:</property>
                             <property name="use_underline">True</property>
                             <property 
name="mnemonic_widget">pool-iqn-chk</property>
                           </object>
Index: virt-manager-1.0.1/virtManager/createpool.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/createpool.py
+++ virt-manager-1.0.1/virtManager/createpool.py
@@ -277,6 +277,11 @@ class vmmCreatePool(vmmGObjectUI):
         show_row("pool-iqn", iqn)
         show_row("pool-source-name", src_name)
 
+        if iqn:
+            self.widget("pool-source-label").set_label(_("_Source IQN:"))
+        else:
+            self.widget("pool-source-label").set_label(_("_Source Path:"))
+
         if tgt:
             self.widget("pool-target-path").get_child().set_text(
                 self._pool.target_path)
++++++ virtinst-detect-suse-distros.patch ++++++
--- /var/tmp/diff_new_pack.94ggUb/_old  2014-04-05 21:41:35.000000000 +0200
+++ /var/tmp/diff_new_pack.94ggUb/_new  2014-04-05 21:41:35.000000000 +0200
@@ -96,7 +96,7 @@
          Distro.__init__(self, *args, **kwargs)
          if re.match(r'i[4-9]86', self.arch):
              self.arch = 'i386'
-@@ -824,18 +889,34 @@ class SuseDistro(Distro):
+@@ -824,22 +889,44 @@ class SuseDistro(Distro):
              oldkern += "64"
              oldinit += "64"
  
@@ -111,7 +111,7 @@
 -        self._xen_kernel_paths = [("boot/%s/vmlinuz-xen" % self.arch,
 -                                    "boot/%s/initrd-xen" % self.arch)]
 +        if self.arch == "s390x":
-+            self._hvm_kernel_paths = [ ("boot/%s/vmrdr.ikr" % self.arch,
++            self._hvm_kernel_paths = [ ("boot/%s/linux" % self.arch,
 +                                        "boot/%s/initrd" % self.arch) ]
 +            # No Xen on s390x
 +            self._xen_kernel_paths = []
@@ -141,7 +141,17 @@
          if not self.fetcher.hasFile("directory.yast"):
              return False
  
-@@ -860,6 +941,27 @@ class SuseDistro(Distro):
+         self.os_variant = self._detect_osdict_from_url()
++
++        # Reset kernel name for sle11 source on s390x
++        if self.arch == "s390x":
++            if self.os_variant == "sles11" or self.os_variant == "sled11":
++                self._hvm_kernel_paths = [ ("boot/%s/vmrdr.ikr" % self.arch,
++                                            "boot/%s/initrd" % self.arch) ]
+         return True
+ 
+     def _get_method_arg(self):
+@@ -860,6 +947,27 @@ class SuseDistro(Distro):
                  return name
          return self.os_variant
  

++++++ virtinst-keep-cdrom-media-attached.patch ++++++
--- virt-manager-1.0.1/virtinst/guest.py.orig   2014-04-02 14:12:01.000000000 
-0600
+++ virt-manager-1.0.1/virtinst/guest.py        2014-04-02 14:14:08.000000000 
-0600
@@ -626,10 +626,13 @@ class Guest(XMLBuilder):
             # Keep cdrom around, but with no media attached,
             # But only if we are a distro that doesn't have a multi
             # stage install (aka not Windows)
+            # libxl will throw an exception with the XML that gets generated
+            # for a cdrom device that has no actual media attached
             return (d.is_cdrom() and
                     d.transient and
                     not install and
-                    not self.get_continue_inst())
+                    not self.get_continue_inst() and
+                    self.type != "xen")
 
         def do_skip_disk(d):
             # Skip transient labeled non-media disks
++++++ virtinst-vol-default-nocow.patch ++++++
Set NOCOW flag to newly created volume by default, to solve performance
issue on btrfs.

Signed-off-by: Chunyan Liu <cy...@suse.com>

Index: virt-manager-1.0.0/virtinst/storage.py
===================================================================
--- virt-manager-1.0.0.orig/virtinst/storage.py
+++ virt-manager-1.0.0/virtinst/storage.py
@@ -656,6 +656,11 @@ class StorageVolume(_StorageObject):
     lazy_refcounts = XMLProperty("./target/features/lazy_refcounts",
         is_bool=True, default_cb=_lazy_refcounts_default_cb)
 
+    def _nocow_default_cb(self):
+        return True
+    nocow = XMLProperty("./target/nocow",
+        is_bool=True, default_cb=_nocow_default_cb)
+
 
     ######################
     # Public API helpers #
++++++ virtman-add-s390x-arch-support.patch ++++++
Index: virt-manager-1.0.1/virtManager/create.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/create.py
+++ virt-manager-1.0.1/virtManager/create.py
@@ -415,7 +415,7 @@ class vmmCreate(vmmGObjectUI):
         can_remote_url = self.conn.get_backend().support_remote_url_install()
 
         installable_arch = (self.capsguest.arch in
-                            ["i686", "x86_64", "ppc64", "ia64"])
+                            ["i686", "x86_64", "ppc64", "ia64", "s390x"])
 
         # Install Options
         method_tree = self.widget("method-tree")
@@ -677,7 +677,7 @@ class vmmCreate(vmmGObjectUI):
             archs.remove("i686")
         archs.sort()
 
-        prios = ["x86_64", "i686", "armv7l", "ppc64"]
+        prios = ["x86_64", "i686", "armv7l", "ppc64", "s390x"]
         if self.conn.caps.host.cpu.arch not in prios:
             prios = []
         else:
Index: virt-manager-1.0.1/virtinst/osxml.py
===================================================================
--- virt-manager-1.0.1.orig/virtinst/osxml.py
+++ virt-manager-1.0.1/virtinst/osxml.py
@@ -53,6 +53,8 @@ class OSXML(XMLBuilder):
         return self.arch == "ppc64"
     def is_pseries(self):
         return self.is_ppc64 and self.machine == "pseries"
+    def is_s390x(self):
+        return self.arch == "s390x"
 
     _XML_ROOT_NAME = "os"
     _XML_PROP_ORDER = ["arch", "os_type", "loader",
Index: virt-manager-1.0.1/virtinst/guest.py
===================================================================
--- virt-manager-1.0.1.orig/virtinst/guest.py
+++ virt-manager-1.0.1/virtinst/guest.py
@@ -598,7 +598,7 @@ class Guest(XMLBuilder):
             return
         if self.os.is_container():
             return
-        if self.os.arch not in ["x86_64", "i686", "ppc64", "ia64"]:
+        if self.os.arch not in ["x86_64", "i686", "ppc64", "ia64", "s390x"]:
             return
         self.add_device(virtinst.VirtualGraphics(self.conn))
 
++++++ virtman-autoyast-support.patch ++++++
--- /var/tmp/diff_new_pack.94ggUb/_old  2014-04-05 21:41:35.000000000 +0200
+++ /var/tmp/diff_new_pack.94ggUb/_new  2014-04-05 21:41:35.000000000 +0200
@@ -2,7 +2,7 @@
 ===================================================================
 --- virt-manager-1.0.1.orig/virtManager/create.py
 +++ virt-manager-1.0.1/virtManager/create.py
-@@ -1227,11 +1227,34 @@ class vmmCreate(vmmGObjectUI):
+@@ -1230,11 +1230,34 @@ class vmmCreate(vmmGObjectUI):
          variant = self.widget("install-os-version")
          variant.set_active(0)
  
@@ -37,7 +37,7 @@
          # Get previous
          type_row = self._selected_os_row()
          if not type_row:
-@@ -1585,7 +1608,10 @@ class vmmCreate(vmmGObjectUI):
+@@ -1588,7 +1611,10 @@ class vmmCreate(vmmGObjectUI):
              if extra:
                  extraargs += extra
              if ks:
@@ -49,7 +49,7 @@
  
              if extraargs:
                  self.guest.installer.extraargs = extraargs
-@@ -1981,6 +2007,7 @@ class vmmCreate(vmmGObjectUI):
+@@ -1984,6 +2010,7 @@ class vmmCreate(vmmGObjectUI):
          dl = self.set_os_val(self.widget("install-os-type"), distro_type)
          vl = self.set_os_val(self.widget("install-os-version"), distro_var)
          self.set_distro_labels(dl, vl)

++++++ virtman-default-guest-from-host-os.patch ++++++
--- /var/tmp/diff_new_pack.94ggUb/_old  2014-04-05 21:41:35.000000000 +0200
+++ /var/tmp/diff_new_pack.94ggUb/_new  2014-04-05 21:41:35.000000000 +0200
@@ -11,7 +11,7 @@
  
  # pylint: disable=E0611
  from gi.repository import GObject
-@@ -1140,6 +1142,55 @@ class vmmCreate(vmmGObjectUI):
+@@ -1142,6 +1144,55 @@ class vmmCreate(vmmGObjectUI):
              return
          self.start_detection(forward=forward)
  
@@ -67,7 +67,7 @@
      def toggle_detect_os(self, src):
          dodetect = src.get_active()
  
-@@ -1151,6 +1202,8 @@ class vmmCreate(vmmGObjectUI):
+@@ -1153,6 +1204,8 @@ class vmmCreate(vmmGObjectUI):
          if dodetect:
              self.mediaDetected = False
              self.detect_media_os()
@@ -75,4 +75,4 @@
 +            self.detect_host_os()
  
      def _selected_os_row(self):
-         return uiutil.get_list_selection(self.widget("install-os-type"))
+         return uiutil.get_list_selection(

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to