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.2.0/setup.py =================================================================== --- virt-manager-1.2.0.orig/setup.py +++ virt-manager-1.2.0/setup.py @@ -280,8 +280,11 @@ class configure(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 " @@ -307,7 +310,8 @@ class configure(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 @@ -322,8 +326,10 @@ class configure(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.2.0/virtcli/cliconfig.py =================================================================== --- virt-manager-1.2.0.orig/virtcli/cliconfig.py +++ virt-manager-1.2.0/virtcli/cliconfig.py @@ -84,7 +84,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.2.0/virtManager/config.py =================================================================== --- virt-manager-1.2.0.orig/virtManager/config.py +++ virt-manager-1.2.0/virtManager/config.py @@ -165,7 +165,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.2.0/virtManager/engine.py =================================================================== --- virt-manager-1.2.0.orig/virtManager/engine.py +++ virt-manager-1.2.0/virtManager/engine.py @@ -193,21 +193,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: logging.exception("Error talking to PackageKit") - if ret: - tryuri = "qemu:///system" - else: - 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"