File virtman-packages.patch of Package virt-manager.9957

Reference: bnc#866287
This patch is for when virt-manager is installed but not libvirt
This is not a normal situation on a suse distro. Split out required
libvirt packages (kvm vs xen). Only install those libvirt packages
for which the host is booted. This patch has a corresponding spec
file change (%define libvirt_kvm_packages and %define libvirt_xen_packages).
Index: virt-manager-1.5.0/setup.py
===================================================================
--- virt-manager-1.5.0.orig/setup.py
+++ virt-manager-1.5.0/setup.py
@@ -308,8 +308,11 @@ class configure(distutils.core.Command):
         ("prefix=", None, "installation prefix"),
         ("qemu-user=", None,
          "user libvirt uses to launch qemu processes (default=root)"),
-        ("libvirt-package-names=", None,
-         "list of libvirt distro packages virt-manager will check for on "
+        ("libvirt-kvm-package-names=", None,
+         "list of libvirt kvm distro packages virt-manager will check for on "
+         "first run. comma separated string (default=none)"),
+        ("libvirt-xen-package-names=", None,
+         "list of libvirt xen distro packages virt-manager will check for on "
          "first run. comma separated string (default=none)"),
         ("kvm-package-names=", None,
          "recommended kvm packages virt-manager will check for on first run "
@@ -335,7 +338,8 @@ class configure(distutils.core.Command):
     def initialize_options(self):
         self.prefix = sysprefix
         self.qemu_user = None
-        self.libvirt_package_names = None
+        self.libvirt_kvm_package_names = None
+        self.libvirt_xen_package_names = None
         self.kvm_package_names = None
         self.askpass_package_names = None
         self.preferred_distros = None
@@ -350,8 +354,10 @@ class configure(distutils.core.Command):
         template += "prefix = %s\n" % self.prefix
         if self.qemu_user is not None:
             template += "default_qemu_user = %s\n" % self.qemu_user
-        if self.libvirt_package_names is not None:
-            template += "libvirt_packages = %s\n" % self.libvirt_package_names
+        if self.libvirt_kvm_package_names is not None:
+            template += "libvirt_kvm_packages = %s\n" % self.libvirt_kvm_package_names
+        if self.libvirt_xen_package_names is not None:
+            template += "libvirt_xen_packages = %s\n" % self.libvirt_xen_package_names
         if self.kvm_package_names is not None:
             template += "hv_packages = %s\n" % self.kvm_package_names
         if self.askpass_package_names is not None:
Index: virt-manager-1.5.0/virtcli/cliconfig.py
===================================================================
--- virt-manager-1.5.0.orig/virtcli/cliconfig.py
+++ virt-manager-1.5.0/virtcli/cliconfig.py
@@ -83,7 +83,8 @@ class _CLIConfig(object):
             _get_param("preferred_distros", ""))
         self.hv_packages = _split_list(_get_param("hv_packages", ""))
         self.askpass_package = _split_list(_get_param("askpass_packages", ""))
-        self.libvirt_packages = _split_list(_get_param("libvirt_packages", ""))
+        self.libvirt_kvm_packages = _split_list(_get_param("libvirt_kvm_packages", ""))
+        self.libvirt_xen_packages = _split_list(_get_param("libvirt_xen_packages", ""))
         self.default_graphics = _get_param("default_graphics", "spice")
         self.default_hvs = _split_list(_get_param("default_hvs", ""))
 
Index: virt-manager-1.5.0/virtManager/config.py
===================================================================
--- virt-manager-1.5.0.orig/virtManager/config.py
+++ virt-manager-1.5.0/virtManager/config.py
@@ -183,7 +183,8 @@ class vmmConfig(object):
         self.default_qemu_user = CLIConfig.default_qemu_user
         self.preferred_distros = CLIConfig.preferred_distros
         self.hv_packages = CLIConfig.hv_packages
-        self.libvirt_packages = CLIConfig.libvirt_packages
+        self.libvirt_kvm_packages = CLIConfig.libvirt_kvm_packages
+        self.libvirt_xen_packages = CLIConfig.libvirt_xen_packages
         self.askpass_package = CLIConfig.askpass_package
         self.default_graphics_from_config = CLIConfig.default_graphics
         self.default_hvs = CLIConfig.default_hvs
Index: virt-manager-1.5.0/virtManager/engine.py
===================================================================
--- virt-manager-1.5.0.orig/virtManager/engine.py
+++ virt-manager-1.5.0/virtManager/engine.py
@@ -229,22 +229,18 @@ class vmmEngine(vmmGObject):
 
         ret = None
         try:
-            libvirt_packages = self.config.libvirt_packages
-            packages = self.config.hv_packages + libvirt_packages
+            tryuri = vmmConnect.default_uri()
+            if tryuri and tryuri.startswith('xen'):
+                packages = self.config.libvirt_xen_packages
+            else:
+                packages = self.config.libvirt_kvm_packages + self.config.hv_packages
 
             ret = packageutils.check_packagekit(manager, manager.err, packages)
         except Exception:
             logging.exception("Error talking to PackageKit")
 
-        tryuri = None
-        if ret:
-            tryuri = "qemu:///system"
-        elif not self.config.test_first_run:
-            tryuri = vmmConnect.default_uri()
-
         if tryuri is None:
-            manager.set_startup_error(msg)
-            return
+            tryuri = "qemu:///system"
 
         warnmsg = _("The 'libvirtd' service will need to be started.\n\n"
                     "After that, virt-manager will connect to libvirt on\n"
openSUSE Build Service is sponsored by