diff --git a/65f7017e-createnet-fix.patch b/65f7017e-createnet-fix.patch deleted file mode 100644 index 2c3c7c90..00000000 --- a/65f7017e-createnet-fix.patch +++ /dev/null @@ -1,19 +0,0 @@ -Subject: createnet: Fix creating network with forward device -From: Charles Arnold carnold@suse.com Fri Jan 16 13:29:09 2015 -0500 -Date: Fri Jan 16 13:30:36 2015 -0500: -Git: 65f7017eaf775af4c817b16d525256cd25aef160 - - -diff --git a/virtManager/createnet.py b/virtManager/createnet.py -index 6c0634c..18cadf1 100644 ---- a/virtManager/createnet.py -+++ b/virtManager/createnet.py -@@ -174,7 +174,7 @@ class vmmCreateNetwork(vmmGObjectUI): - - devnames = [] - for nodedev in self.conn.get_nodedevs("net"): -- devnames.append(nodedev.name) -+ devnames.append(nodedev.interface) - for iface in self.conn.list_interfaces(): - if iface.get_name() not in devnames: - devnames.append(iface.get_name()) diff --git a/activate-default-console.patch b/activate-default-console.patch deleted file mode 100644 index 168c4d8d..00000000 --- a/activate-default-console.patch +++ /dev/null @@ -1,29 +0,0 @@ -From a1d3602b017e1145e6da03b23c99a3508bad4482 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= -Date: Fri, 23 Jan 2015 14:08:53 +0100 -Subject: [PATCH] Activate the default console in all cases - -If the Details page of a container is show when hitting the Run button, -switching back to the Console page, doesn't show the text console. By -updating the default console even if the Console page isn't show we -won't have this anymore. ---- - virtManager/details.py | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/virtManager/details.py b/virtManager/details.py -index ddcacae..aa10912 100644 ---- a/virtManager/details.py -+++ b/virtManager/details.py -@@ -1345,8 +1345,6 @@ class vmmDetails(vmmGObjectUI): - - def activate_default_console_page(self): - pages = self.widget("details-pages") -- if pages.get_current_page() != DETAILS_PAGE_CONSOLE: -- return - self.console.activate_default_console_page() - - # activate_* are called from engine.py via CLI options --- -2.1.2 - diff --git a/virt-manager-1.1.0.tar.bz2 b/virt-manager-1.1.0.tar.bz2 deleted file mode 100644 index 27e7db7b..00000000 --- a/virt-manager-1.1.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b9362178ca3c9be7687881e7995f69018cc97f1d56ee99451e0f1b5bd2d72c4c -size 1343570 diff --git a/virt-manager-1.2.0.tar.bz2 b/virt-manager-1.2.0.tar.bz2 new file mode 100644 index 00000000..82663eee --- /dev/null +++ b/virt-manager-1.2.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2d9fb2a6efe454e0a7b73af6803cc45ff097eddc1d1bb8efb5bb36fe2efbbf0 +size 1350664 diff --git a/virt-manager-Gtk-30.patch b/virt-manager-Gtk-30.patch deleted file mode 100644 index 840bcc04..00000000 --- a/virt-manager-Gtk-30.patch +++ /dev/null @@ -1,33 +0,0 @@ -Index: virt-manager-1.1.0/virtManager/config.py -=================================================================== ---- virt-manager-1.1.0.orig/virtManager/config.py -+++ virt-manager-1.1.0/virtManager/config.py -@@ -20,8 +20,10 @@ - import os - import logging - -+import gi - from gi.repository import Gio - from gi.repository import GLib -+gi.require_version('Gtk', '3.0') - from gi.repository import Gtk - - from virtinst import CPU -Index: virt-manager-1.1.0/virtManager/console.py -=================================================================== ---- virt-manager-1.1.0.orig/virtManager/console.py -+++ virt-manager-1.1.0/virtManager/console.py -@@ -20,10 +20,13 @@ - # MA 02110-1301 USA. - # - -+import gi - from gi.repository import GObject - from gi.repository import Gtk - from gi.repository import Gdk -+gi.require_version('GtkVnc', '2.0') - from gi.repository import GtkVnc -+gi.require_version('SpiceClientGtk', '3.0') - from gi.repository import SpiceClientGtk - from gi.repository import SpiceClientGLib - diff --git a/virt-manager.changes b/virt-manager.changes index 48927076..0e51b271 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -1,3 +1,37 @@ +------------------------------------------------------------------- +Mon May 4 13:38:06 MDT 2015 - carnold@suse.com + +- Update to virt-manager 1.2.0 + virt-manager-1.2.0.tar.bz2 + virtinst-default-xen-to-qcow2-format.patch + * OVMF/AAVMF Support (Laszlo Ersek, Giuseppe Scrivano, Cole Robinson) + * Improved support for AArch64 qemu/kvm + * virt-install: Support –disk type=network parameters + * virt-install: Make –disk just work + * virt-install: Add –disk sgio= option (Giuseppe Scrivano) + * addhardware: default to an existing bus when adding a new disk (Giuseppe Scrivano) + * virt-install: Add –input device option + * virt-manager: Unify storagebrowser and storage details functionality + * virt-manager: allow setting a custom connection row name + * virt-install: Support –hostdev scsi passthrough + * virt-install: Fill in a bunch of –graphics spice options + * Disable spice image compression for new local VMs + * virt-manager: big reworking of the migration dialog +- Dropped tarball and patches + virt-manager-1.1.0.tar.bz2 + 0b391fe9-Gtk-30.patch + 20fe2873-check-for-empty-network-name.patch + 24faf867-ignore-error-403-on-directories.patch + 65f7017e-createnet-fix.patch + activate-default-console.patch + ce74cd77-connection-state-tick-updates-lock.patch + virtinst-ppc64le.patch + virtinst-supported-disk-formats.patch + virtinst-support-suse-distros.patch + virt-manager-1.1.0.tar.bz2 + virtman-default-lxc-uri.patch + virtman-stable-os-support.patch + ------------------------------------------------------------------- Sat Apr 11 19:15:22 UTC 2015 - stefan.bruens@rwth-aachen.de diff --git a/virt-manager.spec b/virt-manager.spec index 241a641d..1ff3196c 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -21,13 +21,13 @@ %define qemu_user "qemu" %define libvirt_kvm_packages "" %define libvirt_xen_packages "" -%define preferred_distros "sles,opensuse" +%define preferred_distros "sles12,opensuse13.2" %define kvm_packages "" -%define _version 1.1.0 +%define _version 1.2.0 %define _release 1 Name: virt-manager -Version: 1.1.0 +Version: 1.2.0 Release: 0 Summary: Virtual Machine Manager License: GPL-2.0+ @@ -36,19 +36,18 @@ Url: http://virt-manager.org/ Source0: %{name}-%{version}.tar.bz2 Source1: virt-install.rb Source2: virt-install.desktop +# Upstream Patches # SUSE Only -Patch1: 65f7017e-createnet-fix.patch Patch70: virtman-desktop.patch Patch71: virtman-kvm.patch Patch72: virtman-keycombo.patch Patch73: virtman-vminstall.patch Patch74: virtman-show-suse-install-repos.patch -Patch75: virtman-stable-os-support.patch -Patch76: virtman-dont-allow-grub.xen-to-be-deleted.patch -Patch77: virtman-s390x-default-to-vminstall.patch -Patch78: virtman-libvirtd-not-running.patch -Patch79: virtinst-pvgrub2-bootloader.patch -Patch80: virtinst-nfs-install-sanitize.patch +Patch75: virtman-s390x-default-to-vminstall.patch +Patch76: virtman-libvirtd-not-running.patch +Patch77: virtman-dont-allow-grub.xen-to-be-deleted.patch +Patch78: virtinst-pvgrub2-bootloader.patch +Patch79: virtinst-nfs-install-sanitize.patch # Features or Enhancements Patch100: virtman-eepro100.patch Patch101: virtman-default-guest-from-host-os.patch @@ -57,11 +56,9 @@ Patch103: virtman-autoyast-support.patch Patch104: virtman-packages.patch Patch105: virtman-load-stored-uris.patch Patch106: virtman-add-s390x-arch-support.patch -Patch107: virtman-default-lxc-uri.patch -Patch108: virtman-add-connect-default.patch +Patch107: virtman-add-connect-default.patch Patch120: virtinst-storage-ocfs2.patch -Patch121: virtinst-supported-disk-formats.patch -Patch122: virtinst-support-suse-distros.patch +Patch121: virtinst-default-xen-to-qcow2-format.patch Patch123: virtinst-detect-suse-distros.patch Patch124: virtinst-modify-gui-defaults.patch Patch125: virtinst-vol-default-nocow.patch @@ -69,22 +66,16 @@ Patch126: virtinst-detect-windows-media.patch Patch127: virtinst-set-cache-mode-unsafe-for-install.patch Patch128: virtinst-add-default-rng-device.patch Patch129: virtinst-set-qemu-emulator.patch -Patch130: virtinst-ppc64le.patch # Bug Fixes Patch150: virtman-supported-disk-formats.patch Patch151: virtman-prevent-double-click-starting-vm-twice.patch -Patch152: virtman-check-for-empty-network-name.patch -Patch153: virtman-increase-setKeepAlive-count.patch -Patch154: virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch -Patch155: virtman-sync-vm-startup-for-cpu-usage.patch -Patch156: virtman-check-for-valid-display.patch -Patch157: virtinst-xen-drive-type.patch -Patch158: virtinst-xenbus-disk-index-fix.patch -Patch159: virtinst-refresh_before_fetch_pool.patch -Patch160: virtinst-ignore-error-403-on-directories.patch -Patch161: virt-manager-Gtk-30.patch -Patch162: activate-default-console.patch -Patch163: virtman-allow-creating-i686-vm.patch +Patch152: virtman-increase-setKeepAlive-count.patch +Patch153: virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch +Patch154: virtman-check-for-valid-display.patch +Patch155: virtman-allow-creating-i686-vm.patch +Patch160: virtinst-xen-drive-type.patch +Patch161: virtinst-xenbus-disk-index-fix.patch +Patch162: virtinst-refresh_before_fetch_pool.patch BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -112,7 +103,9 @@ Requires: python-libguestfs %endif BuildRequires: glib2-devel +%if 0%{?suse_version} > 1320 BuildRequires: gobject-introspection +%endif BuildRequires: intltool BuildRequires: perl BuildRequires: python @@ -161,8 +154,8 @@ machine). %prep %setup -q +# Upstream Patches # SUSE Only -%patch1 -p1 %patch70 -p1 %patch71 -p1 %patch72 -p1 @@ -173,7 +166,6 @@ machine). %patch77 -p1 %patch78 -p1 %patch79 -p1 -%patch80 -p1 # Enhancements %patch100 -p1 %patch101 -p1 @@ -183,10 +175,8 @@ machine). %patch105 -p1 %patch106 -p1 %patch107 -p1 -%patch108 -p1 %patch120 -p1 %patch121 -p1 -%patch122 -p1 %patch123 -p1 %patch124 -p1 %patch125 -p1 @@ -194,7 +184,6 @@ machine). %patch127 -p1 %patch128 -p1 %patch129 -p1 -%patch130 -p1 # Bug Fixes %patch150 -p1 %patch151 -p1 @@ -202,14 +191,9 @@ machine). %patch153 -p1 %patch154 -p1 %patch155 -p1 -%patch156 -p1 -%patch157 -p1 -%patch158 -p1 -%patch159 -p1 %patch160 -p1 %patch161 -p1 %patch162 -p1 -%patch163 -p1 %build %if %{qemu_user} @@ -238,7 +222,6 @@ machine). python setup.py configure \ --prefix=%{_prefix} \ - --pkgversion="%{version}" \ --default-graphics="spice" \ %{?_qemu_user} \ %{?_kvm_packages} \ @@ -296,6 +279,7 @@ fi %{_datadir}/appdata/%{name}.appdata.xml %{_datadir}/applications/%{name}.desktop %{_datadir}/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.xml +%{_datadir}/GConf/gsettings/org.virt-manager.virt-manager.convert %files common -f %{name}.lang %defattr(-,root,root,-) @@ -316,8 +300,11 @@ fi %{_datadir}/%{name}/virt-clone %{_datadir}/%{name}/virt-convert %{_datadir}/%{name}/virt-xml -%dir %{_datadir}/* -%dir %{_datadir}/*/* +%dir %{_datadir}/YaST2 +%dir %{_datadir}/YaST2/clients +%dir %{_datadir}/applications/YaST2 +%dir %{_datadir}/GConf +%dir %{_datadir}/GConf/gsettings %{_datadir}/YaST2/clients/virt-install.rb %{_datadir}/applications/YaST2/virt-install.desktop diff --git a/virtinst-add-default-rng-device.patch b/virtinst-add-default-rng-device.patch index 392eebd2..b9ee1141 100644 --- a/virtinst-add-default-rng-device.patch +++ b/virtinst-add-default-rng-device.patch @@ -1,26 +1,34 @@ -bnc#885308 - +References: bnc#885308 +Enhancement to add a virtio RNG device to non windows VMs. Index: virt-manager-1.1.0/virtinst/guest.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/guest.py +++ virt-manager-1.1.0/virtinst/guest.py -@@ -638,6 +638,15 @@ class Guest(XMLBuilder): +@@ -53,6 +53,7 @@ from .pm import PM + from .seclabel import Seclabel + from .xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty + from .devicedisk import VirtualDisk ++from .devicerng import VirtualRNGDevice + + + class Guest(XMLBuilder): +@@ -681,6 +682,15 @@ class Guest(XMLBuilder): return - self.add_device(virtinst.VirtualGraphics(self.conn)) + self.add_device(VirtualGraphics(self.conn)) + def add_default_rng(self): + osvar = self._get_os_variant() + if not self.conn.is_qemu() or not osvar or osvar.startswith("win"): + return -+ rng_dev = virtinst.VirtualRNGDevice(True) -+ rng_dev.type = virtinst.VirtualRNGDevice.TYPE_RANDOM ++ rng_dev = VirtualRNGDevice(True) ++ rng_dev.type = VirtualRNGDevice.TYPE_RANDOM + setattr(rng_dev, "device", "/dev/random") + self.add_device(rng_dev) + def add_default_devices(self): self.add_default_graphics() self.add_default_video_device() -@@ -645,6 +654,7 @@ class Guest(XMLBuilder): +@@ -688,6 +698,7 @@ class Guest(XMLBuilder): self.add_default_console_device() self.add_default_usb_controller() self.add_default_channels() diff --git a/virtinst-default-xen-to-qcow2-format.patch b/virtinst-default-xen-to-qcow2-format.patch new file mode 100644 index 00000000..eae2e2ef --- /dev/null +++ b/virtinst-default-xen-to-qcow2-format.patch @@ -0,0 +1,15 @@ +Reference: bnc#885380 +Allow Xen based VMs to default to using qcow2 +Index: virt-manager-1.1.0/virtinst/support.py +=================================================================== +--- virt-manager-1.1.0.orig/virtinst/support.py ++++ virt-manager-1.1.0/virtinst/support.py +@@ -258,7 +258,7 @@ SUPPORT_CONN_DISK_SD = _make(version="1. + # default to qcow2. It might be fine for xen or qemu older than the versions + # here, but until someone tests things I'm going to be a bit conservative. + SUPPORT_CONN_DEFAULT_QCOW2 = _make( +- version="0.8.0", hv_version={"qemu": "1.2.0", "test": 0}) ++ version="0.8.0", hv_version={"qemu": "1.2.0", "all": 0}) + SUPPORT_CONN_DEFAULT_USB2 = _make( + version="0.9.7", hv_version={"qemu": "1.0.0", "test": 0}) + SUPPORT_CONN_CAN_ACPI = _make(hv_version={"xen": "3.1.0", "all": 0}) diff --git a/virtinst-detect-suse-distros.patch b/virtinst-detect-suse-distros.patch index f9fed781..1187e608 100644 --- a/virtinst-detect-suse-distros.patch +++ b/virtinst-detect-suse-distros.patch @@ -1,8 +1,10 @@ +Enhancement to correctly detect SUSE media when such media is +selected as the installation source. Index: virt-manager-1.1.0/virtinst/urlfetcher.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/urlfetcher.py +++ virt-manager-1.1.0/virtinst/urlfetcher.py -@@ -323,6 +323,89 @@ def _distroFromTreeinfo(fetcher, arch, v +@@ -318,6 +318,94 @@ def _distroFromTreeinfo(fetcher, arch, v return ob @@ -44,6 +46,8 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py + distro_arch = line.split(' ', 1) + elif line.startswith("DEFAULTBASE "): + distro_arch = line.split(' ', 1) ++ elif line.startswith("REPOID "): ++ distro_arch = line.rsplit('/', 1) + if distribution and distro_version and distro_arch: + break + @@ -76,7 +80,10 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py + elif re.match(".*openSUSE.*", distribution[1]): + dclass = OpensuseDistro + if distro_version is None: -+ distro_version = ['VERSION', '13.1'] ++ distro_version = ['VERSION', distribution[0].strip().rsplit(':')[4]] ++ # For tumbleweed we only have an 8 character date string so default to 13.2 ++ if distro_version[1] and len(distro_version[1]) == 8: ++ distro_version = ['VERSION', '13.2'] + + if distro_version is None: + return None @@ -92,7 +99,7 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py def getDistroStore(guest, fetcher): stores = [] -@@ -339,6 +422,10 @@ def getDistroStore(guest, fetcher): +@@ -334,6 +422,10 @@ def getDistroStore(guest, fetcher): if dist: return dist @@ -103,7 +110,31 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py stores = _allstores[:] # If user manually specified an os_distro, bump it's URL class -@@ -821,29 +908,59 @@ class SLDistro(RHELDistro): +@@ -375,6 +467,23 @@ def getDistroStore(guest, fetcher): + (fetcher.location, extramsg))) + + ++def detectMediaDistro(guest, location): ++ """ ++ Attempt to detect the os type + variant for the passed location ++ """ ++ import urlgrabber ++ meter = urlgrabber.progress.BaseMeter() ++ scratchdir = "/var/tmp" ++ fetcher = fetcherForURI(location, scratchdir, meter) ++ ++ try: ++ fetcher.prepareLocation() ++ store = getDistroStore(guest, fetcher) ++ return store.get_osdict_info() ++ finally: ++ fetcher.cleanupLocation() ++ ++ + ################## + # Distro classes # + ################## +@@ -832,29 +941,64 @@ class SLDistro(RHELDistro): class SuseDistro(Distro): name = "SUSE" @@ -131,10 +162,12 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py + oldkern += "64" + oldinit += "64" + -+ if self.arch == "s390x": ++ if self.arch == "s390x" or \ ++ self.arch == "ppc64" or self.arch == "ppc64le": ++ + self._hvm_kernel_paths = [ ("boot/%s/linux" % self.arch, + "boot/%s/initrd" % self.arch) ] -+ # No Xen on s390x ++ # No Xen on s390x and ppc + self._xen_kernel_paths = [] + else: + # Tested with Opensuse >= 10.2, 11, and sles 10 @@ -152,10 +185,13 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py + # self.content is the VERSION line from the contents file + if self.content is None or self.content[1] is None: + return False -+ distro_version = self.content[1] ++ distro_version = self.content[1].strip() + version = distro_version.split('.', 1)[0].strip() + if int(version) >= 10: -+ self.os_variant += version ++ if self.os_variant.startswith("sles"): ++ self.os_variant += version ++ else: ++ self.os_variant += distro_version + else: + self.os_variant += "9" + @@ -172,7 +208,7 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py return True def _get_method_arg(self): -@@ -863,6 +980,27 @@ class SuseDistro(Distro): +@@ -874,6 +1018,27 @@ class SuseDistro(Distro): return osobj.name return self.os_variant @@ -200,3 +236,18 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py class DebianDistro(Distro): # ex. http://ftp.egr.msu.edu/debian/dists/sarge/main/installer-i386/ +Index: virt-manager-1.1.0/virtinst/distroinstaller.py +=================================================================== +--- virt-manager-1.1.0.orig/virtinst/distroinstaller.py ++++ virt-manager-1.1.0/virtinst/distroinstaller.py +@@ -505,6 +505,10 @@ class DistroInstaller(Installer): + "remote connection.") + else: + distro = OSDB.lookup_os_by_media(self.location) ++ # libosinfo relies on treeinfo to detect media which suse ++ # doesn't have. Fallback to url method for detecting ISO media. ++ if distro is None: ++ distro = urlfetcher.detectMediaDistro(guest, self.location) + except: + logging.debug("Error attempting to detect distro.", exc_info=True) + diff --git a/virtinst-detect-windows-media.patch b/virtinst-detect-windows-media.patch index 92fecfa8..8688b179 100644 --- a/virtinst-detect-windows-media.patch +++ b/virtinst-detect-windows-media.patch @@ -1,3 +1,6 @@ +Enhancement to detect windows media. It is based solely upon +finding an autorun.inf file in the root of the installation source. +It only assumes windows, not the specific version of windows. Index: virt-manager-1.1.0/virtinst/urlfetcher.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/urlfetcher.py @@ -38,34 +41,17 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py stores = _allstores[:] # If user manually specified an os_distro, bump it's URL class -@@ -1161,6 +1183,13 @@ class ALTLinuxDistro(Distro): +@@ -1204,6 +1226,13 @@ class ALTLinuxDistro(Distro): logging.debug("Regex didn't match, not a %s distro", self.name) return False +class WindowsDistro(Distro): + + urldistro = "windows" -+ os_variant = "win-unknown" ++ os_variant = "win8.1" + + def isValidStore(self): + return False # Build list of all *Distro classes def _build_distro_list(): -Index: virt-manager-1.1.0/virtinst/osdict.py -=================================================================== ---- virt-manager-1.1.0.orig/virtinst/osdict.py -+++ virt-manager-1.1.0/virtinst/osdict.py -@@ -543,6 +543,12 @@ _add_var("oes11", "Novell Open Enterpris - _add_var("rear", "Relax and Recover", supported=True, virtiodisk=True, virtionet=True, parent="sles11") - _add_var("netware6", "Novell Netware 6 (or later)", supported=True, parent="other") - -+_add_var("win2k8", "Microsoft Windows Server 2008", supported=True, sortby="mswinserv2008", parent="windows") -+_add_var("win2k12", "Microsoft Windows Server 2012 (or later)", supported=True, sortby="mswinserv2012", parent="windows") -+_add_var("win7", "Microsoft Windows 7", supported=True, sortby="mswin7", parent="windows") -+_add_var("win8", "Microsoft Windows 8 (or later)", supported=True, sortby="mswin8", parent="windows") -+_add_var("win-unknown", "Microsoft Windows Unknown Version", supported=True, sortby="mswin", parent="windows") -+ - - _os_data_loaded = False - _os_loader = None diff --git a/virtinst-ignore-error-403-on-directories.patch b/virtinst-ignore-error-403-on-directories.patch deleted file mode 100644 index 320e682a..00000000 --- a/virtinst-ignore-error-403-on-directories.patch +++ /dev/null @@ -1,24 +0,0 @@ -bnc#892821 - -Ignore HTTP error 403 if the location is a directory. This allows -the OS detection procedure to succeed when Indexes are disabled -on the HTTP server. - -Index: virt-manager-1.1.0/virtinst/urlfetcher.py -=================================================================== ---- virt-manager-1.1.0.orig/virtinst/urlfetcher.py -+++ virt-manager-1.1.0/virtinst/urlfetcher.py -@@ -142,8 +142,11 @@ class _HTTPImageFetcher(_URIImageFetcher - request.get_method = lambda: "HEAD" - urllib2.urlopen(request) - except Exception, e: -- logging.debug("HTTP hasFile: didn't find %s: %s", path, str(e)) -- return False -+ if path.endswith("/") and e.code == 403: -+ logging.debug("HTTP hasFile: indexing disabled in %s?.", path) -+ else: -+ logging.debug("HTTP hasFile: didn't find %s: %s", path, str(e)) -+ return False - return True - - diff --git a/virtinst-modify-gui-defaults.patch b/virtinst-modify-gui-defaults.patch index b8e1e522..1e8fa06c 100644 --- a/virtinst-modify-gui-defaults.patch +++ b/virtinst-modify-gui-defaults.patch @@ -1,12 +1,18 @@ +Enhancement for the following GUI wizard installation options. +1) If Xen, leave 'Architecture options' expanded so users know PV +is the default +2) Under 'Network selection' default to a bridge that has an actual +IP address if available (not just the first one found). Index: virt-manager-1.1.0/virtManager/create.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/create.py +++ virt-manager-1.1.0/virtManager/create.py -@@ -342,7 +342,18 @@ class vmmCreate(vmmGObjectUI): +@@ -331,7 +331,19 @@ class vmmCreate(vmmGObjectUI): self.widget("method-local").set_active(True) self.widget("create-conn").set_active(-1) activeconn = self.populate_conn_list(urihint) - self.widget("arch-expander").set_expanded(False) ++ # For Xen have the expander open so users can see PV is the default + if activeconn and activeconn.is_xen(): + self.widget("arch-expander").set_expanded(True) + else: @@ -46,7 +52,7 @@ Index: virt-manager-1.1.0/virtManager/netlist.py skip_ifaces = ["lo"] vnet_taps = [] -@@ -228,10 +238,18 @@ class vmmNetworkList(vmmGObjectUI): +@@ -229,10 +239,18 @@ class vmmNetworkList(vmmGObjectUI): if can_default and not default_label: default_label = label diff --git a/virtinst-nfs-install-sanitize.patch b/virtinst-nfs-install-sanitize.patch index 0cecd7d7..8029f417 100644 --- a/virtinst-nfs-install-sanitize.patch +++ b/virtinst-nfs-install-sanitize.patch @@ -1,10 +1,15 @@ -bnc#888251 - +Reference: bnc#888251 +A fix for accessing nfs mounted media. A comment in the code states, + "Convert RFC compliant NFS nfs://server/path/to/distro + to what mount/anaconda expect nfs:server:/path/to/distro + and carry the latter form around internally" +We need the RFC version to work correctly whereas redhat's anaconda +needs their own modified version. Index: virt-manager-1.1.0/virtinst/util.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/util.py +++ virt-manager-1.1.0/virtinst/util.py -@@ -612,3 +612,22 @@ def getInstallRepos(enabled_sources_only +@@ -557,3 +557,22 @@ def getInstallRepos(enabled_sources_only zypper_output.insert(0, dom0_inst_source) return (index_dom0, zypper_output) @@ -47,12 +52,12 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py @@ -33,6 +33,7 @@ import urlparse import urlgrabber.grabber as grabber - from virtinst import osdict + from .osdict import OSDB +from virtinst import util ######################################################################### -@@ -223,7 +224,8 @@ class _MountedImageFetcher(_LocalImageFe +@@ -218,7 +219,8 @@ class _MountedImageFetcher(_LocalImageFe logging.debug("Preparing mount at " + self.srcdir) if self.location.startswith("nfs:"): diff --git a/virtinst-ppc64le.patch b/virtinst-ppc64le.patch deleted file mode 100644 index 18babe1b..00000000 --- a/virtinst-ppc64le.patch +++ /dev/null @@ -1,71 +0,0 @@ -Index: virt-manager-1.1.0/virtinst/guest.py -=================================================================== ---- virt-manager-1.1.0.orig/virtinst/guest.py -+++ virt-manager-1.1.0/virtinst/guest.py -@@ -635,7 +635,7 @@ class Guest(XMLBuilder): - return - if self.os.is_container(): - return -- if self.os.arch not in ["x86_64", "i686", "ppc64", "ia64", "s390x"]: -+ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64", "s390x"]: - return - self.add_device(virtinst.VirtualGraphics(self.conn)) - -@@ -773,6 +773,8 @@ class Guest(XMLBuilder): - if self.conn.is_qemu(): - if self.os.arch == "s390x": - preferred_emulator = "/usr/bin/qemu-system-s390x" -+ elif self.os.arch == "ppc64" or self.os.arch == "ppc64le": -+ preferred_emulator = "/usr/bin/qemu-system-ppc64" - else: - preferred_emulator = "/usr/bin/qemu-system-x86_64" - elif self.conn.is_lxc(): -@@ -883,7 +885,7 @@ class Guest(XMLBuilder): - if not self._lookup_osdict_key(key, False): - return False - -- if self.os.is_x86() or self.os.is_s390x(): -+ if self.os.is_x86() or self.os.is_s390x() or self.os.is_ppc64(): - return True - if (self.os.is_arm_vexpress() and - self.os.dtb and -@@ -934,6 +936,8 @@ class Guest(XMLBuilder): - net_model = None - elif self._can_virtio("virtionet"): - net_model = "virtio" -+ elif self.os.is_pseries(): -+ net_model = "spapr-vlan" - else: - net_model = self._lookup_osdict_key("netmodel", None) - -Index: virt-manager-1.1.0/virtinst/osxml.py -=================================================================== ---- virt-manager-1.1.0.orig/virtinst/osxml.py -+++ virt-manager-1.1.0/virtinst/osxml.py -@@ -60,6 +60,8 @@ class OSXML(XMLBuilder): - return self.is_ppc64 and self.machine == "pseries" - def is_s390x(self): - return self.arch == "s390x" -+ def is_ppc64(self): -+ return self.arch == "ppc64" or self.arch == "ppc64le" - - _XML_ROOT_NAME = "os" - _XML_PROP_ORDER = ["arch", "os_type", "loader", -Index: virt-manager-1.1.0/virtinst/urlfetcher.py -=================================================================== ---- virt-manager-1.1.0.orig/virtinst/urlfetcher.py -+++ virt-manager-1.1.0/virtinst/urlfetcher.py -@@ -945,10 +945,11 @@ class SuseDistro(Distro): - oldkern += "64" - oldinit += "64" - -- if self.arch == "s390x": -+ if self.arch == "s390x" or \ -+ self.arch == "ppc64" or self.arch == "ppc64le": - self._hvm_kernel_paths = [ ("boot/%s/linux" % self.arch, - "boot/%s/initrd" % self.arch) ] -- # No Xen on s390x -+ # No Xen on s390x and ppc - self._xen_kernel_paths = [] - else: - # Tested with Opensuse >= 10.2, 11, and sles 10 diff --git a/virtinst-pvgrub2-bootloader.patch b/virtinst-pvgrub2-bootloader.patch index 042acf2d..c727cdbf 100644 --- a/virtinst-pvgrub2-bootloader.patch +++ b/virtinst-pvgrub2-bootloader.patch @@ -1,8 +1,12 @@ +Reference: bnc#863821 +grub.xen is required to boot PV VMs that use the BTRFS filesystem. +This patch forces the use of grub.xen (instead of using pygrub) for +newer suse distros like SLE12 and openSUSE 13.2. Index: virt-manager-1.1.0/virtinst/guest.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/guest.py +++ virt-manager-1.1.0/virtinst/guest.py -@@ -350,8 +350,18 @@ class Guest(XMLBuilder): +@@ -364,8 +364,18 @@ class Guest(XMLBuilder): if (not install and self.os.is_xenpv() and not self.os.kernel): @@ -15,7 +19,7 @@ Index: virt-manager-1.1.0/virtinst/guest.py + self.installer.extraargs = None + # alter_bootconfig won't update the osxml unless it thinks + # we are in an install phase. Add force_update param to call -+ self.installer.alter_bootconfig(self, True, self.os, True) ++ self.installer.alter_bootconfig(self, True, True) + logging.info("Using grub.xen to boot guest") + else: + self.bootloader = "/usr/bin/pygrub" @@ -27,16 +31,16 @@ Index: virt-manager-1.1.0/virtinst/installer.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/installer.py +++ virt-manager-1.1.0/virtinst/installer.py -@@ -111,7 +111,7 @@ class Installer(object): +@@ -112,7 +112,7 @@ class Installer(object): dev.validate() return dev -- def alter_bootconfig(self, guest, isinstall, bootconfig): -+ def alter_bootconfig(self, guest, isinstall, bootconfig, force_update=False): +- def alter_bootconfig(self, guest, isinstall): ++ def alter_bootconfig(self, guest, isinstall, force_update=False): """ Generate the portion of the guest xml that determines boot devices and parameters. (typically the block) -@@ -122,7 +122,7 @@ class Installer(object): +@@ -123,7 +123,7 @@ class Installer(object): 'post-install' phase. @type isinstall: C{bool} """ diff --git a/virtinst-refresh_before_fetch_pool.patch b/virtinst-refresh_before_fetch_pool.patch index ac5539d7..96f9bf9c 100644 --- a/virtinst-refresh_before_fetch_pool.patch +++ b/virtinst-refresh_before_fetch_pool.patch @@ -1,3 +1,4 @@ +Reference: bnc#887868 Refresh pools status before fetch_pools. Currently, when connecting to hypervisor, if there are pools active @@ -16,7 +17,7 @@ Index: virt-manager-1.1.0/virtinst/pollhelpers.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/pollhelpers.py +++ virt-manager-1.1.0/virtinst/pollhelpers.py -@@ -133,6 +133,19 @@ def fetch_pools(backend, origmap, build_ +@@ -132,6 +132,19 @@ def fetch_pools(backend, origmap, build_ if backend.check_support( backend.SUPPORT_CONN_LISTALLSTORAGEPOOLS) and not _force_old_poll: diff --git a/virtinst-set-cache-mode-unsafe-for-install.patch b/virtinst-set-cache-mode-unsafe-for-install.patch index 2beb3a71..9676b2e0 100644 --- a/virtinst-set-cache-mode-unsafe-for-install.patch +++ b/virtinst-set-cache-mode-unsafe-for-install.patch @@ -1,19 +1,21 @@ +Set cache mode for target installation disk to unsafe for better +performance. Index: virt-manager-1.1.0/virtinst/guest.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/guest.py +++ virt-manager-1.1.0/virtinst/guest.py -@@ -31,6 +31,7 @@ from virtinst import util - from virtinst import support - from virtinst import OSXML - from virtinst import VirtualDevice -+from virtinst import VirtualDisk - from virtinst import Clock - from virtinst import Seclabel - from virtinst import CPU -@@ -348,6 +349,13 @@ class Guest(XMLBuilder): - self.on_crash = action +@@ -52,6 +52,7 @@ from .osxml import OSXML + from .pm import PM + from .seclabel import Seclabel + from .xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty ++from .devicedisk import VirtualDisk + + + class Guest(XMLBuilder): +@@ -363,6 +364,14 @@ class Guest(XMLBuilder): + dev.set_defaults(self) + self._set_disk_defaults(disks=self._install_devices) - self._set_defaults() + # At install time set the target disk to 'unsafe' for + # better performance if the target is not a block device + if install: @@ -21,10 +23,11 @@ Index: virt-manager-1.1.0/virtinst/guest.py + saved_cache = target_disk.driver_cache + if target_disk.type != VirtualDisk.TYPE_BLOCK: + target_disk.driver_cache = VirtualDisk.CACHE_MODE_UNSAFE - ++ self.bootloader = None if (not install and -@@ -366,7 +374,10 @@ class Guest(XMLBuilder): + self.os.is_xenpv() and +@@ -380,7 +389,10 @@ class Guest(XMLBuilder): self.bootloader = "/usr/bin/pygrub" self.os.clear() @@ -34,5 +37,5 @@ Index: virt-manager-1.1.0/virtinst/guest.py + target_disk.driver_cache = saved_cache + return xml_config - def get_continue_inst(self): - """ + + ############## diff --git a/virtinst-set-qemu-emulator.patch b/virtinst-set-qemu-emulator.patch index b2b92ee0..fd366adc 100644 --- a/virtinst-set-qemu-emulator.patch +++ b/virtinst-set-qemu-emulator.patch @@ -1,7 +1,8 @@ -Index: virt-manager-1.1.0/virtinst/guest.py +Use the correct qemu emulator based on the architecture. +Index: virt-manager-1.2.0/virtinst/guest.py =================================================================== ---- virt-manager-1.1.0.orig/virtinst/guest.py -+++ virt-manager-1.1.0/virtinst/guest.py +--- virt-manager-1.2.0.orig/virtinst/guest.py ++++ virt-manager-1.2.0/virtinst/guest.py @@ -19,6 +19,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA. @@ -10,7 +11,7 @@ Index: virt-manager-1.1.0/virtinst/guest.py import logging import urlgrabber.progress as progress -@@ -769,14 +770,26 @@ class Guest(XMLBuilder): +@@ -815,14 +816,28 @@ class Guest(XMLBuilder): self.emulator = None return @@ -18,6 +19,8 @@ Index: virt-manager-1.1.0/virtinst/guest.py + if self.conn.is_qemu(): + if self.os.arch == "s390x": + preferred_emulator = "/usr/bin/qemu-system-s390x" ++ elif self.os.arch == "ppc64" or self.os.arch == "ppc64le": ++ preferred_emulator = "/usr/bin/qemu-system-ppc64" + else: + preferred_emulator = "/usr/bin/qemu-system-x86_64" + elif self.conn.is_lxc(): diff --git a/virtinst-storage-ocfs2.patch b/virtinst-storage-ocfs2.patch index 71bc1f12..c3051229 100644 --- a/virtinst-storage-ocfs2.patch +++ b/virtinst-storage-ocfs2.patch @@ -1,8 +1,9 @@ -Index: virt-manager-1.1.0/virtinst/storage.py +Enhancement to add ocfs2 as a supported FS type +Index: virt-manager-1.2.0/virtinst/storage.py =================================================================== ---- virt-manager-1.1.0.orig/virtinst/storage.py -+++ virt-manager-1.1.0/virtinst/storage.py -@@ -405,7 +405,7 @@ class StoragePool(_StorageObject): +--- virt-manager-1.2.0.orig/virtinst/storage.py ++++ virt-manager-1.2.0/virtinst/storage.py +@@ -436,7 +436,7 @@ class StoragePool(_StorageObject): def list_formats(self): if self.type == self.TYPE_FS: return ["auto", "ext2", "ext3", "ext4", "ufs", "iso9660", "udf", diff --git a/virtinst-support-suse-distros.patch b/virtinst-support-suse-distros.patch deleted file mode 100644 index 7f5d6a21..00000000 --- a/virtinst-support-suse-distros.patch +++ /dev/null @@ -1,26 +0,0 @@ -Index: virt-manager-1.1.0/virtinst/osdict.py -=================================================================== ---- virt-manager-1.1.0.orig/virtinst/osdict.py -+++ virt-manager-1.1.0/virtinst/osdict.py -@@ -528,6 +528,21 @@ _add_type("unix", "UNIX") - _add_type("other", "Other") - _add_var("generic", "Generic", supported=True, parent="other") - -+_add_var("opensuse11", "openSUSE 11", urldistro="opensuse", supported=True, virtiodisk=True, virtionet=True, parent="linux") -+_add_var("opensuse12", "openSUSE 12", inputtype="tablet", inputbus="usb", parent="opensuse11") -+_add_var("opensuse13", "openSUSE 13 (or later)", parent="opensuse12") -+_add_var("sles", "Suse Linux Enterprise Server", urldistro="suse", supported=True, parent="linux") -+_add_var("sles10", "Suse Linux Enterprise Server 10", supported=True, virtiodisk=True, virtionet=True, parent="sles") -+_add_var("sles11", "Suse Linux Enterprise Server 11", supported=True, virtiodisk=True, virtionet=True, inputtype="tablet", inputbus="usb", parent="sles10") -+_add_var("sles12", "Suse Linux Enterprise Server 12 (or later)", supported=True, virtiodisk=True, virtionet=True, parent="sles11") -+_add_var("sled10", "Suse Linux Enterprise Desktop 10", supported=True, virtiodisk=True, virtionet=True, parent="sles10") -+_add_var("sled11", "Suse Linux Enterprise Desktop 11", supported=True, virtiodisk=True, virtionet=True, inputtype="tablet", inputbus="usb", parent="sles11") -+_add_var("sled12", "Suse Linux Enterprise Desktop 12 (or later)", supported=True, virtiodisk=True, virtionet=True, parent="sles12") -+_add_var("oes2l", "Novell Open Enterprise Server 2", supported=True, virtiodisk=True, virtionet=True, parent="sles10") -+_add_var("oes11", "Novell Open Enterprise Server 11 (or later)", supported=True, virtiodisk=True, virtionet=True, parent="sles11") -+_add_var("rear", "Relax and Recover", supported=True, virtiodisk=True, virtionet=True, parent="sles11") -+_add_var("netware6", "Novell Netware 6 (or later)", supported=True, parent="other") -+ - - _os_data_loaded = False - _os_loader = None diff --git a/virtinst-supported-disk-formats.patch b/virtinst-supported-disk-formats.patch deleted file mode 100644 index e173443b..00000000 --- a/virtinst-supported-disk-formats.patch +++ /dev/null @@ -1,30 +0,0 @@ -Index: virt-manager-1.0.1/virtinst/devicedisk.py -=================================================================== ---- virt-manager-1.0.1.orig/virtinst/devicedisk.py -+++ virt-manager-1.0.1/virtinst/devicedisk.py -@@ -156,10 +156,11 @@ class VirtualDisk(VirtualDevice): - - DRIVER_TAP_RAW = "aio" - DRIVER_TAP_QCOW = "qcow" -+ DRIVER_TAP_QED = "qed" - DRIVER_TAP_VMDK = "vmdk" - DRIVER_TAP_VDISK = "vdisk" - driver_types = [DRIVER_TAP_RAW, DRIVER_TAP_QCOW, -- DRIVER_TAP_VMDK, DRIVER_TAP_VDISK] -+ DRIVER_TAP_QED, DRIVER_TAP_VMDK, DRIVER_TAP_VDISK] - - CACHE_MODE_NONE = "none" - CACHE_MODE_WRITETHROUGH = "writethrough" -Index: virt-manager-1.0.1/virtinst/support.py -=================================================================== ---- virt-manager-1.0.1.orig/virtinst/support.py -+++ virt-manager-1.0.1/virtinst/support.py -@@ -258,7 +258,7 @@ SUPPORT_CONN_DISK_SD = _make(version="1. - # default to qcow2. It might be fine for xen or qemu older than the versions - # here, but until someone tests things I'm going to be a bit conservative. - SUPPORT_CONN_DEFAULT_QCOW2 = _make( -- version="0.8.0", hv_version={"qemu": "1.2.0", "test": 0}) -+ version="0.8.0", hv_version={"qemu": "1.2.0", "all": 0}) - SUPPORT_CONN_DEFAULT_USB2 = _make( - version="0.9.7", hv_version={"qemu": "1.0.0", "test": 0}) - SUPPORT_CONN_CAN_ACPI = _make(hv_version={"xen": "3.1.0", "all": 0}) diff --git a/virtinst-vol-default-nocow.patch b/virtinst-vol-default-nocow.patch index 1eb2d9c7..3ee93f28 100644 --- a/virtinst-vol-default-nocow.patch +++ b/virtinst-vol-default-nocow.patch @@ -1,13 +1,14 @@ +Reference: fate#315125: Set NOCOW flag to newly created volume by default, to solve performance issue on btrfs. Signed-off-by: Chunyan Liu -Index: virt-manager-1.1.0/virtinst/storage.py +Index: virt-manager-1.2.0/virtinst/storage.py =================================================================== ---- virt-manager-1.1.0.orig/virtinst/storage.py -+++ virt-manager-1.1.0/virtinst/storage.py -@@ -658,6 +658,11 @@ class StorageVolume(_StorageObject): +--- virt-manager-1.2.0.orig/virtinst/storage.py ++++ virt-manager-1.2.0/virtinst/storage.py +@@ -705,6 +705,11 @@ class StorageVolume(_StorageObject): lazy_refcounts = XMLProperty("./target/features/lazy_refcounts", is_bool=True, default_cb=_lazy_refcounts_default_cb) diff --git a/virtinst-xen-drive-type.patch b/virtinst-xen-drive-type.patch index 4f5d5e0f..fc3a794c 100644 --- a/virtinst-xen-drive-type.patch +++ b/virtinst-xen-drive-type.patch @@ -1,10 +1,12 @@ Reference: bnc#813082 +Virt-manager on Xen doesn't fill in any type thereby defaulting to +'raw'. This patch will generate the correct XML on Xen. Index: virt-manager-1.1.0/virtinst/devicedisk.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/devicedisk.py +++ virt-manager-1.1.0/virtinst/devicedisk.py -@@ -562,6 +562,12 @@ class VirtualDisk(VirtualDevice): +@@ -572,6 +572,12 @@ class VirtualDisk(VirtualDevice): return None if self.conn.is_qemu(): return self.DRIVER_QEMU @@ -17,7 +19,7 @@ Index: virt-manager-1.1.0/virtinst/devicedisk.py return None def _get_default_driver_type(self): -@@ -575,6 +581,8 @@ class VirtualDisk(VirtualDevice): +@@ -585,6 +591,8 @@ class VirtualDisk(VirtualDevice): http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html """ if self.driver_name != self.DRIVER_QEMU: @@ -25,4 +27,4 @@ Index: virt-manager-1.1.0/virtinst/devicedisk.py + return self.type return None - if self._storage_creator: + drvtype = self._storage_backend.get_driver_type() diff --git a/virtinst-xenbus-disk-index-fix.patch b/virtinst-xenbus-disk-index-fix.patch index e76a0e22..f36ad06f 100644 --- a/virtinst-xenbus-disk-index-fix.patch +++ b/virtinst-xenbus-disk-index-fix.patch @@ -1,10 +1,16 @@ -bnc#872789 +Reference: bnc#872789 +This is an indexing problem created by virt-manager. It knows not +to add two IDE disks of the same name (eg, 'hda' twice) or two Xen +disks of the same name (eg, 'xvda' twice) but with the different bus +types (ide vs xen) it added xvda with hda. These disks were then +passed to qemu where it error'ed out with the disks having the same +index (in this case both are 0). Index: virt-manager-1.1.0/virtinst/devicedisk.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/devicedisk.py +++ virt-manager-1.1.0/virtinst/devicedisk.py -@@ -936,6 +936,17 @@ class VirtualDisk(VirtualDevice): +@@ -1012,6 +1012,17 @@ class VirtualDisk(VirtualDevice): @rtype C{str} """ prefix, maxnode = self.get_target_prefix(skip_targets) @@ -22,7 +28,7 @@ Index: virt-manager-1.1.0/virtinst/devicedisk.py skip_targets = [t for t in skip_targets if t and t.startswith(prefix)] skip_targets.sort() -@@ -949,7 +960,12 @@ class VirtualDisk(VirtualDevice): +@@ -1025,7 +1036,12 @@ class VirtualDisk(VirtualDevice): ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7) for i in ran: diff --git a/virtman-add-connect-default.patch b/virtman-add-connect-default.patch index 20e4a5a1..2b677fe7 100644 --- a/virtman-add-connect-default.patch +++ b/virtman-add-connect-default.patch @@ -1,3 +1,5 @@ +Enhancement for when no hypervisor can be found locally it opens +the new connection dialog. Index: virt-manager-1.1.0/virtManager/engine.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/engine.py diff --git a/virtman-add-s390x-arch-support.patch b/virtman-add-s390x-arch-support.patch index 9a94d5b5..1dc8bf66 100644 --- a/virtman-add-s390x-arch-support.patch +++ b/virtman-add-s390x-arch-support.patch @@ -1,43 +1,45 @@ -Index: virt-manager-1.1.0/virtManager/create.py +Reference: bnc#869024 +Add s390x support +Index: virt-manager-1.2.0/virtManager/create.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/create.py -+++ virt-manager-1.1.0/virtManager/create.py -@@ -428,7 +428,7 @@ class vmmCreate(vmmGObjectUI): +--- virt-manager-1.2.0.orig/virtManager/create.py ++++ virt-manager-1.2.0/virtManager/create.py +@@ -417,7 +417,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"]) + installable_arch = (self.capsinfo.arch in +- ["i686", "x86_64", "ppc64", "ppc64le", "ia64"]) ++ ["i686", "x86_64", "ppc64", "ppc64le", "ia64", "s390x"]) - # Install Options - method_tree = self.widget("method-tree") -@@ -690,7 +690,7 @@ class vmmCreate(vmmGObjectUI): + if self.capsinfo.arch == "aarch64": + try: +@@ -684,7 +684,7 @@ class vmmCreate(vmmGObjectUI): archs.remove("i686") archs.sort() -- prios = ["x86_64", "i686", "armv7l", "ppc64"] -+ prios = ["x86_64", "i686", "armv7l", "ppc64", "s390x"] +- prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le"] ++ prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le", "s390x"] if self.conn.caps.host.cpu.arch not in prios: prios = [] else: -Index: virt-manager-1.1.0/virtinst/osxml.py +Index: virt-manager-1.2.0/virtinst/osxml.py =================================================================== ---- virt-manager-1.1.0.orig/virtinst/osxml.py -+++ virt-manager-1.1.0/virtinst/osxml.py -@@ -58,6 +58,8 @@ class OSXML(XMLBuilder): - return self.arch == "ppc64" +--- virt-manager-1.2.0.orig/virtinst/osxml.py ++++ virt-manager-1.2.0/virtinst/osxml.py +@@ -70,6 +70,8 @@ class OSXML(XMLBuilder): + return self.arch == "ppc64" or self.arch == "ppc64le" def is_pseries(self): - return self.is_ppc64 and self.machine == "pseries" + 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.1.0/virtinst/guest.py + _XML_PROP_ORDER = ["arch", "os_type", "loader", "loader_ro", "loader_type", +Index: virt-manager-1.2.0/virtinst/guest.py =================================================================== ---- virt-manager-1.1.0.orig/virtinst/guest.py -+++ virt-manager-1.1.0/virtinst/guest.py -@@ -112,7 +112,10 @@ class Guest(XMLBuilder): +--- virt-manager-1.2.0.orig/virtinst/guest.py ++++ virt-manager-1.2.0/virtinst/guest.py +@@ -119,7 +119,10 @@ class Guest(XMLBuilder): self.skip_default_channel = False self.skip_default_sound = False self.skip_default_usbredir = False @@ -48,8 +50,8 @@ Index: virt-manager-1.1.0/virtinst/guest.py + self.skip_default_graphics = False self.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY - self._os_variant = None -@@ -569,11 +572,13 @@ class Guest(XMLBuilder): + self.__os_object = None +@@ -611,11 +614,13 @@ class Guest(XMLBuilder): self.conn.check_support( self.conn.SUPPORT_CONN_VIRTIO_CONSOLE)): dev.target_type = "virtio" @@ -64,21 +66,21 @@ Index: virt-manager-1.1.0/virtinst/guest.py return if self.get_devices("video"): return -@@ -618,7 +623,7 @@ class Guest(XMLBuilder): +@@ -660,7 +665,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"]: +- if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64"]: ++ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64", "s390x"]: return - self.add_device(virtinst.VirtualGraphics(self.conn)) + self.add_device(VirtualGraphics(self.conn)) -@@ -844,7 +849,7 @@ class Guest(XMLBuilder): - if not self._lookup_osdict_key(key, False): - return False +@@ -948,7 +953,7 @@ class Guest(XMLBuilder): + if self._hv_only_supports_virtio(): + return True - if self.os.is_x86(): + if self.os.is_x86() or self.os.is_s390x(): return True + if (self.os.is_arm_vexpress() and - self.os.dtb and diff --git a/virtman-allow-creating-i686-vm.patch b/virtman-allow-creating-i686-vm.patch index fa1c7e13..08f6378b 100644 --- a/virtman-allow-creating-i686-vm.patch +++ b/virtman-allow-creating-i686-vm.patch @@ -1,10 +1,13 @@ +References: bsc#919692 +Because openSUSE repos combine 32 and 64 bit sources we need to +continue showing the 'Architecture' pop-up. Index: virt-manager-1.1.0/virtManager/create.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/create.py +++ virt-manager-1.1.0/virtManager/create.py -@@ -694,11 +694,6 @@ class vmmCreate(vmmGObjectUI): +@@ -689,11 +689,6 @@ class vmmCreate(vmmGObjectUI): for guest in self.conn.caps.guests: - if guest.os_type == self.capsguest.os_type: + if guest.os_type == self.capsinfo.os_type: archs.append(guest.arch) - - # Combine x86/i686 to avoid confusion @@ -13,4 +16,4 @@ Index: virt-manager-1.1.0/virtManager/create.py - archs.remove("i686") archs.sort() - prios = ["x86_64", "i686", "armv7l", "ppc64", "s390x"] + prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le", "s390x"] diff --git a/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch b/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch index 0e6af245..c2aafc76 100644 --- a/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch +++ b/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch @@ -1,9 +1,16 @@ -bnc#875111 +Reference: bnc#875111 +Steps to get a KVM VM in the crashed state: +1) Install a sles12 KVM VM +2) Manually edit the XML and add/modify preserve +3) In virt-manager add the panic device (Details->Add Hardware) +4) Edit the VM's /etc/default/grub file and remove the crashkernel information + and then run grub2-mkconfig /boot/grub2/grub.cfg. +5) Start the VM and within the VM's terminal type "echo 'c' > /proc/sysrq-trigger" Index: virt-manager-1.1.0/virtManager/manager.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/manager.py +++ virt-manager-1.1.0/virtManager/manager.py -@@ -921,7 +921,7 @@ class vmmManager(vmmGObjectUI): +@@ -864,7 +864,7 @@ class vmmManager(vmmGObjectUI): show_pause = bool(vm and vm.is_unpauseable()) else: show_pause = bool(vm and vm.is_pauseable()) @@ -11,7 +18,7 @@ Index: virt-manager-1.1.0/virtManager/manager.py + show_shutdown = bool(vm and vm.is_destroyable()) if vm and vm.managedsave_supported: - self.change_run_text(vm.hasSavedImage()) + self.change_run_text(vm.has_managed_save()) Index: virt-manager-1.1.0/virtManager/vmmenu.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/vmmenu.py @@ -38,9 +45,9 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py child.set_sensitive(statemap[name]) + child.set_visible(statemap[name]) - - class VMActionMenu(_VMMenu): -@@ -122,7 +125,8 @@ class VMActionMenu(_VMMenu): + if name == "reset": + child.set_tooltip_text(None) +@@ -130,7 +133,8 @@ class VMActionMenu(_VMMenu): self._add_action(_("_Pause"), "suspend", Gtk.STOCK_MEDIA_PAUSE) self._add_action(_("R_esume"), "resume", Gtk.STOCK_MEDIA_PAUSE) s = self._add_action(_("_Shut Down"), "shutdown", addcb=False) @@ -50,7 +57,7 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py self.add(Gtk.SeparatorMenuItem()) self._add_action(_("Clone..."), "clone", None) -@@ -138,7 +142,7 @@ class VMActionMenu(_VMMenu): +@@ -146,7 +150,7 @@ class VMActionMenu(_VMMenu): def update_widget_states(self, vm): statemap = { "run": bool(vm and vm.is_runable()), @@ -59,8 +66,8 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py "suspend": bool(vm and vm.is_stoppable()), "resume": bool(vm and vm.is_paused()), "migrate": bool(vm and vm.is_stoppable()), -@@ -155,6 +159,8 @@ class VMActionMenu(_VMMenu): - child.update_widget_states(vm) +@@ -163,6 +167,8 @@ class VMActionMenu(_VMMenu): + child.get_submenu().update_widget_states(vm) if name in statemap: child.set_sensitive(statemap[name]) + if name == "shutdown" and self._shutdown: diff --git a/virtman-autoyast-support.patch b/virtman-autoyast-support.patch index aaeea3d4..532dcb64 100644 --- a/virtman-autoyast-support.patch +++ b/virtman-autoyast-support.patch @@ -1,10 +1,12 @@ +Enhancement to switch the label from 'Kickstart' to 'Autoyast' when +a suse distro is selected. Index: virt-manager-1.1.0/virtManager/create.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/create.py +++ virt-manager-1.1.0/virtManager/create.py -@@ -1265,11 +1265,34 @@ class vmmCreate(vmmGObjectUI): - if self.widget("install-os-version").get_visible(): - self.widget("install-os-version-entry").grab_focus() +@@ -1242,11 +1242,34 @@ class vmmCreate(vmmGObjectUI): + self.populate_os_type_model() + return + def _update_kickstart_label(self): + # Update label based on os version selected to either kickstart or autoyast @@ -34,10 +36,10 @@ Index: virt-manager-1.1.0/virtManager/create.py + self._update_kickstart_label() + - # Get previous + # 'show all OS' was clicked + # Get previous type to reselect it later type_row = self._selected_os_row() - if not type_row: -@@ -1634,7 +1657,10 @@ class vmmCreate(vmmGObjectUI): +@@ -1611,7 +1634,10 @@ class vmmCreate(vmmGObjectUI): if extra: extraargs += extra if ks: @@ -49,7 +51,7 @@ Index: virt-manager-1.1.0/virtManager/create.py if extraargs: self.guest.installer.extraargs = extraargs -@@ -2042,6 +2068,7 @@ class vmmCreate(vmmGObjectUI): +@@ -2053,6 +2079,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) @@ -61,7 +63,7 @@ Index: virt-manager-1.1.0/ui/create.ui =================================================================== --- virt-manager-1.1.0.orig/ui/create.ui +++ virt-manager-1.1.0/ui/create.ui -@@ -841,7 +841,7 @@ bar +@@ -843,7 +843,7 @@ bar 6 4 @@ -69,4 +71,4 @@ Index: virt-manager-1.1.0/ui/create.ui + True False - 0 + Kickstart URL: diff --git a/virtman-check-for-empty-network-name.patch b/virtman-check-for-empty-network-name.patch deleted file mode 100644 index 1a2cc49f..00000000 --- a/virtman-check-for-empty-network-name.patch +++ /dev/null @@ -1,15 +0,0 @@ -bnc#885273 - -Index: virt-manager-1.1.0/virtManager/createnet.py -=================================================================== ---- virt-manager-1.1.0.orig/virtManager/createnet.py -+++ virt-manager-1.1.0/virtManager/createnet.py -@@ -257,6 +257,8 @@ class vmmCreateNetwork(vmmGObjectUI): - try: - net = self._build_xmlstub() - net.name = self.widget("net-name").get_text() -+ if net.name == '': -+ return self.err.val_err(_("Invalid network name"), "") - except Exception, e: - return self.err.val_err(_("Invalid network name"), str(e)) - diff --git a/virtman-check-for-valid-display.patch b/virtman-check-for-valid-display.patch index 0d9f4ead..cc18ee00 100644 --- a/virtman-check-for-valid-display.patch +++ b/virtman-check-for-valid-display.patch @@ -1,6 +1,10 @@ ---- virt-manager-1.1.0/virt-manager.orig 2014-12-02 12:08:47.000000000 -0700 -+++ virt-manager-1.1.0/virt-manager 2014-12-02 12:09:20.000000000 -0700 -@@ -175,8 +175,11 @@ def main(): +References: bnc#907958 +Sanity check for those who forget '-X' on ssh and try to start virt-manager +Index: virt-manager-1.1.0/virt-manager +=================================================================== +--- virt-manager-1.1.0.orig/virt-manager ++++ virt-manager-1.1.0/virt-manager +@@ -181,8 +181,11 @@ def main(): from gi.repository import Gtk leftovers = sys.argv[1:] diff --git a/virtman-default-guest-from-host-os.patch b/virtman-default-guest-from-host-os.patch index 94b63df0..c14268a2 100644 --- a/virtman-default-guest-from-host-os.patch +++ b/virtman-default-guest-from-host-os.patch @@ -1,8 +1,10 @@ +Enhancement to default to the host os version when creating a VM +and media detection of the install source is turned off. Index: virt-manager-1.1.0/virtManager/create.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/create.py +++ virt-manager-1.1.0/virtManager/create.py -@@ -22,6 +22,8 @@ import traceback +@@ -21,6 +21,8 @@ import logging import threading import time @@ -11,7 +13,16 @@ Index: virt-manager-1.1.0/virtManager/create.py from gi.repository import GObject from gi.repository import Gtk -@@ -1175,6 +1177,55 @@ class vmmCreate(vmmGObjectUI): +@@ -836,7 +838,7 @@ class vmmCreate(vmmGObjectUI): + preferred = self.config.preferred_distros + variants = virtinst.OSDB.list_os(typename=_type, sortpref=preferred) + supportl = virtinst.OSDB.list_os(typename=_type, sortpref=preferred, +- only_supported=True) ++ only_supported=False) + + for v in variants: + supported = v in supportl or v.name == "generic" +@@ -1158,6 +1160,53 @@ class vmmCreate(vmmGObjectUI): return self.start_detection(forward=forward) @@ -22,10 +33,12 @@ Index: virt-manager-1.1.0/virtManager/create.py + lines = f.readlines() + f.close() + for line in lines: -+ if "openSUSE 13" in line: -+ return 'linux', 'opensuse13' -+ if "openSUSE 12" in line: -+ return 'linux', 'opensuse12' ++ if "openSUSE " in line: ++ parts = line.split(' ') ++ if len(parts) > 2 and len(parts[3]) <= 4: ++ os_ver = "opensuse" + parts[3] ++ return 'linux', os_ver ++ return 'linux', 'opensuse13.2' + if "SUSE Linux Enterprise Server 12" in line: + return 'linux', 'sles12' + if "SUSE Linux Enterprise Desktop 12" in line: @@ -34,10 +47,6 @@ Index: virt-manager-1.1.0/virtManager/create.py + return 'linux', 'sles11' + if "SUSE Linux Enterprise Desktop 11" in line: + return 'linux', 'sled11' -+ if "Fedora" in line: -+ return 'linux', 'fedora17' -+ if "Red Hat Enterprise Linux Server" in line: -+ return 'linux', 'rhel6' + return None, None + + def detect_host_os(self): @@ -67,7 +76,7 @@ Index: virt-manager-1.1.0/virtManager/create.py def toggle_detect_os(self, src): dodetect = src.get_active() -@@ -1187,6 +1238,8 @@ class vmmCreate(vmmGObjectUI): +@@ -1170,6 +1219,8 @@ class vmmCreate(vmmGObjectUI): self.widget("install-os-version-entry").set_text("") self.mediaDetected = False self.detect_media_os() diff --git a/virtman-default-lxc-uri.patch b/virtman-default-lxc-uri.patch deleted file mode 100644 index a3edcb67..00000000 --- a/virtman-default-lxc-uri.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 02c2d2fcb3c445082a91807ab277a7c85d0a38db Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= -Date: Tue, 20 May 2014 17:14:27 +0200 -Subject: [PATCH] Default connection URI if libvirt-daemon-driver-lxc is - installed - -The default URI is set to lxc:/// if libvirt's lxc driver is installed -locally, but only if there is no kvm/xen URI to default to. ---- - virtManager/connect.py | 4 ++++ - 2 files changed, 11 insertions(+), 3 deletions(-) - -Index: virt-manager-1.1.0/virtManager/connect.py -=================================================================== ---- virt-manager-1.1.0.orig/virtManager/connect.py -+++ virt-manager-1.1.0/virtManager/connect.py -@@ -115,6 +115,10 @@ class vmmConnect(vmmGObjectUI): - return "qemu:///system" - else: - return "qemu:///session" -+ -+ if (os.path.exists("/usr/lib/libvirt/libvirt_lxc") or -+ os.path.exists("/usr/lib64/libvirt/libvirt_lxc")): -+ return "lxc:///" - return None - - def cancel(self, ignore1=None, ignore2=None): diff --git a/virtman-default-to-xen-pv.patch b/virtman-default-to-xen-pv.patch index 20e58548..715c74b1 100644 --- a/virtman-default-to-xen-pv.patch +++ b/virtman-default-to-xen-pv.patch @@ -1,8 +1,9 @@ +Enhancement to default to PV instead of HVM on Xen host. Index: virt-manager-1.1.0/virtManager/create.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/create.py +++ virt-manager-1.1.0/virtManager/create.py -@@ -884,7 +884,12 @@ class vmmCreate(vmmGObjectUI): +@@ -860,7 +860,12 @@ class vmmCreate(vmmGObjectUI): if gtype is None: # If none specified, prefer HVM so install options aren't limited # with a default PV choice. diff --git a/virtman-desktop.patch b/virtman-desktop.patch index 6680e0a0..8e7a0849 100644 --- a/virtman-desktop.patch +++ b/virtman-desktop.patch @@ -1,7 +1,7 @@ -Index: virt-manager-0.10.0/data/virt-manager.desktop.in +Index: virt-manager-1.1.0/data/virt-manager.desktop.in =================================================================== ---- virt-manager-0.10.0.orig/data/virt-manager.desktop.in -+++ virt-manager-0.10.0/data/virt-manager.desktop.in +--- virt-manager-1.1.0.orig/data/virt-manager.desktop.in ++++ virt-manager-1.1.0/data/virt-manager.desktop.in @@ -1,8 +1,19 @@ [Desktop Entry] _Name=Virtual Machine Manager diff --git a/virtman-dont-allow-grub.xen-to-be-deleted.patch b/virtman-dont-allow-grub.xen-to-be-deleted.patch index 6c2269e3..702abf22 100644 --- a/virtman-dont-allow-grub.xen-to-be-deleted.patch +++ b/virtman-dont-allow-grub.xen-to-be-deleted.patch @@ -1,10 +1,11 @@ -bnc#885094 - +Reference: bnc#885094 +grub.xen is required to boot Xen PV VMs using BTRFS. It belongs to +the grub2-x86_64-xen RPM and should never be deleted. Index: virt-manager-1.1.0/virtManager/delete.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/delete.py +++ virt-manager-1.1.0/virtManager/delete.py -@@ -240,7 +240,7 @@ def populate_storage_list(storage_list, +@@ -250,7 +250,7 @@ def populate_storage_list(storage_list, diskdata.append(("dtb", vm.get_xmlobj().os.dtb, True, False)) for target, path, ro, shared in diskdata: diff --git a/virtman-eepro100.patch b/virtman-eepro100.patch index 85b25672..8ceec5d0 100644 --- a/virtman-eepro100.patch +++ b/virtman-eepro100.patch @@ -1,12 +1,13 @@ -Index: virt-manager-1.1.0/virtManager/addhardware.py +Enhancement to add the eepro100 NIC for KVM +Index: virt-manager-1.2.0/virtManager/addhardware.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/addhardware.py -+++ virt-manager-1.1.0/virtManager/addhardware.py -@@ -574,6 +574,7 @@ class vmmAddHardware(vmmGObjectUI): +--- virt-manager-1.2.0.orig/virtManager/addhardware.py ++++ virt-manager-1.2.0/virtManager/addhardware.py +@@ -582,6 +582,7 @@ class vmmAddHardware(vmmGObjectUI): if vm.is_hvm(): - mod_list = ["rtl8139", "ne2k_pci", "pcnet", "e1000"] + mod_list = [] if vm.get_hv_type() in ["kvm", "qemu", "test"]: + mod_list.append("eepro100") mod_list.append("virtio") - if (vm.get_hv_type() == "kvm" and - vm.get_machtype() == "pseries"): + mod_list.append("rtl8139") + mod_list.append("e1000") diff --git a/virtman-increase-setKeepAlive-count.patch b/virtman-increase-setKeepAlive-count.patch index 9203ae38..0ce3787c 100644 --- a/virtman-increase-setKeepAlive-count.patch +++ b/virtman-increase-setKeepAlive-count.patch @@ -1,14 +1,17 @@ -bnc#892003 +References: bnc#892003 +For very large memory VMs Xen takes a long time scrubbing memory +which causes the libvirt connection to timeout. Upstream was not +interested in making this a preferences option (4/11/2015) Index: virt-manager-1.1.0/virtManager/connection.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/connection.py +++ virt-manager-1.1.0/virtManager/connection.py -@@ -1028,7 +1028,7 @@ class vmmConnection(vmmGObject): - self._add_conn_events() +@@ -903,7 +903,7 @@ class vmmConnection(vmmGObject): + self.caps.get_cpu_values("x86_64") - try: -- self._backend.setKeepAlive(20, 1) -+ self._backend.setKeepAlive(20, 10) - except Exception, e: - if (type(e) is not AttributeError and - not util.is_error_nosupport(e)): + try: +- self._backend.setKeepAlive(20, 1) ++ self._backend.setKeepAlive(20, 10) + except Exception, e: + if (type(e) is not AttributeError and + not util.is_error_nosupport(e)): diff --git a/virtman-keycombo.patch b/virtman-keycombo.patch index e9fb7448..5e7be3bc 100644 --- a/virtman-keycombo.patch +++ b/virtman-keycombo.patch @@ -1,8 +1,9 @@ +Enhancement adding Send Keys for mostly NetWare and also Windows Index: virt-manager-1.1.0/virtManager/console.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/console.py +++ virt-manager-1.1.0/virtManager/console.py -@@ -940,6 +940,16 @@ class vmmConsolePages(vmmGObjectUI): +@@ -140,6 +140,16 @@ class vmmConsolePages(vmmGObjectUI): make_item("Ctrl+Alt+_Backspace", ["Control_L", "Alt_L", "BackSpace"]) make_item("Ctrl+Alt+_Delete", ["Control_L", "Alt_L", "Delete"]) menu.add(Gtk.SeparatorMenuItem()) diff --git a/virtman-kvm.patch b/virtman-kvm.patch index 50c4ca92..ff9f696d 100644 --- a/virtman-kvm.patch +++ b/virtman-kvm.patch @@ -1,13 +1,15 @@ +/usr/bin/kvm doesn't exist on suse distros so check instead for +/usr/bin/qemu-system-x86_64 Index: virt-manager-1.1.0/virtManager/connect.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/connect.py +++ virt-manager-1.1.0/virtManager/connect.py -@@ -109,7 +109,7 @@ class vmmConnect(vmmGObjectUI): +@@ -114,7 +114,7 @@ class vmmConnect(vmmGObjectUI): if (os.path.exists("/usr/bin/qemu") or os.path.exists("/usr/bin/qemu-kvm") or - os.path.exists("/usr/bin/kvm") or + os.path.exists("/usr/bin/qemu-system-x86_64") or - os.path.exists("/usr/libexec/qemu-kvm")): - if always_system or os.geteuid() == 0: - return "qemu:///system" + os.path.exists("/usr/libexec/qemu-kvm") or + glob.glob("/usr/bin/qemu-system-*")): + return "qemu:///system" diff --git a/virtman-libvirtd-not-running.patch b/virtman-libvirtd-not-running.patch index d0a8f40f..047f910a 100644 --- a/virtman-libvirtd-not-running.patch +++ b/virtman-libvirtd-not-running.patch @@ -1,8 +1,9 @@ -Index: virt-manager-1.1.0/virtManager/packageutils.py +Use the correct systemd to start libvirt. +Index: virt-manager-1.2.0/virtManager/packageutils.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/packageutils.py -+++ virt-manager-1.1.0/virtManager/packageutils.py -@@ -149,8 +149,8 @@ def start_libvirtd(): +--- virt-manager-1.2.0.orig/virtManager/packageutils.py ++++ virt-manager-1.2.0/virtManager/packageutils.py +@@ -154,8 +154,8 @@ def start_libvirtd(): logging.debug("libvirtd not running, asking system-config-services " "to start it") scs = Gio.DBusProxy.new_sync(bus, 0, None, diff --git a/virtman-load-stored-uris.patch b/virtman-load-stored-uris.patch index 5248a983..5e0abff4 100644 --- a/virtman-load-stored-uris.patch +++ b/virtman-load-stored-uris.patch @@ -1,3 +1,7 @@ +Reference: bnc#867749 +When booted into the native kernel don't ask libvirt to make a +local Xen connection and likewise when booted into the Xen kernel +don't ask libvirt to connect to the local qemu. Index: virt-manager-1.1.0/virtManager/engine.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/engine.py @@ -6,7 +10,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py if not uris: return logging.debug("About to connect to uris %s", uris) -+ tryuri = vmmConnect.default_uri(always_system=True) ++ tryuri = vmmConnect.default_uri() + found_uri = None for uri in uris: + # If booted Xen, don't try connecting to local qemu diff --git a/virtman-packages.patch b/virtman-packages.patch index dad79468..9d8fac96 100644 --- a/virtman-packages.patch +++ b/virtman-packages.patch @@ -1,9 +1,15 @@ -Index: virt-manager-1.1.0/setup.py +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.1.0.orig/setup.py -+++ virt-manager-1.1.0/setup.py -@@ -303,8 +303,11 @@ class configure(Command): - ("pkgversion=", None, "user specified version-id"), +--- 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, @@ -16,9 +22,9 @@ Index: virt-manager-1.1.0/setup.py "first run. comma separated string (default=none)"), ("kvm-package-names=", None, "recommended kvm packages virt-manager will check for on first run " -@@ -330,7 +333,8 @@ class configure(Command): +@@ -307,7 +310,8 @@ class configure(Command): + def initialize_options(self): self.prefix = sysprefix - self.pkgversion = None self.qemu_user = None - self.libvirt_package_names = None + self.libvirt_kvm_package_names = None @@ -26,8 +32,8 @@ Index: virt-manager-1.1.0/setup.py self.kvm_package_names = None self.askpass_package_names = None self.preferred_distros = None -@@ -347,8 +351,10 @@ class configure(Command): - template += "pkgversion = %s\n" % self.pkgversion +@@ -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: @@ -39,49 +45,50 @@ Index: virt-manager-1.1.0/setup.py 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.1.0/virtcli/cliconfig.py +Index: virt-manager-1.2.0/virtcli/cliconfig.py =================================================================== ---- virt-manager-1.1.0.orig/virtcli/cliconfig.py -+++ virt-manager-1.1.0/virtcli/cliconfig.py -@@ -92,6 +92,7 @@ stable_defaults = bool(int(_get_param("s - preferred_distros = _split_list(_get_param("preferred_distros", "")) - hv_packages = _split_list(_get_param("hv_packages", "")) - askpass_package = _split_list(_get_param("askpass_packages", "")) --libvirt_packages = _split_list(_get_param("libvirt_packages", "")) -+libvirt_kvm_packages = _split_list(_get_param("libvirt_kvm_packages", "")) -+libvirt_xen_packages = _split_list(_get_param("libvirt_xen_packages", "")) - default_graphics = _get_param("default_graphics", "spice") - with_bhyve = bool(int(_get_param("with_bhyve", "0"))) -Index: virt-manager-1.1.0/virtManager/config.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.1.0.orig/virtManager/config.py -+++ virt-manager-1.1.0/virtManager/config.py -@@ -158,7 +158,8 @@ class vmmConfig(object): - self.stable_defaults = cliconfig.stable_defaults - 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.with_bhyve = cliconfig.with_bhyve -Index: virt-manager-1.1.0/virtManager/engine.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.1.0.orig/virtManager/engine.py -+++ virt-manager-1.1.0/virtManager/engine.py -@@ -194,21 +194,17 @@ class vmmEngine(vmmGObject): +--- 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(always_system=True) ++ 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") @@ -89,7 +96,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py - if ret: - tryuri = "qemu:///system" - else: -- tryuri = vmmConnect.default_uri(always_system=True) +- tryuri = vmmConnect.default_uri() - if tryuri is None: - manager.set_startup_error(msg) diff --git a/virtman-prevent-double-click-starting-vm-twice.patch b/virtman-prevent-double-click-starting-vm-twice.patch index b8ad3756..c2647014 100644 --- a/virtman-prevent-double-click-starting-vm-twice.patch +++ b/virtman-prevent-double-click-starting-vm-twice.patch @@ -1,10 +1,13 @@ -bnc#874594 - virt-manager allows issuing of start for xen domain twice, resulting in failure - -Index: virt-manager-1.1.0/virtManager/details.py +Reference: bnc#874594 +When the 'Power on virtual machine' button is double clicked, +virt-manager issues two start commands to start the VM which +results in a failure. There is code elsewhere to desensitize the +button but this patch does it earlier. +Index: virt-manager-1.2.0/virtManager/details.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/details.py -+++ virt-manager-1.1.0/virtManager/details.py -@@ -1499,6 +1499,9 @@ class vmmDetails(vmmGObjectUI): +--- virt-manager-1.2.0.orig/virtManager/details.py ++++ virt-manager-1.2.0/virtManager/details.py +@@ -1471,6 +1471,9 @@ class vmmDetails(vmmGObjectUI): self.widget("details-menu-usb-redirection").set_sensitive(can_usb) def control_vm_run(self, src_ignore): diff --git a/virtman-s390x-default-to-vminstall.patch b/virtman-s390x-default-to-vminstall.patch index c3e41e85..8f577e2f 100644 --- a/virtman-s390x-default-to-vminstall.patch +++ b/virtman-s390x-default-to-vminstall.patch @@ -1,3 +1,10 @@ +Reference: bnc#888173 +Force the use of vm-install on s390. The viewer in virt-manager +and virt-viewer needs a graphics adapter defined in the VM to show +the display correctly. On s390 you can't have a graphics adapter +(you get the error 'No PCI buses available'). Vm-install gets +around this problem by starting an xterm window in which to run the +VM. Index: virt-manager-1.1.0/virtManager/engine.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/engine.py @@ -10,7 +17,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py import os from subprocess import * -@@ -795,7 +796,7 @@ class vmmEngine(vmmGObject): +@@ -821,7 +822,7 @@ class vmmEngine(vmmGObject): obj.connect("action-clone-domain", self._do_show_clone) obj.connect("action-show-domain", self._do_show_vm) obj.connect("action-show-preferences", self._do_show_preferences) @@ -19,7 +26,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py obj.connect("action-show-create-vminstall", self._do_show_create_vminstall) obj.connect("action-show-about", self._do_show_about) obj.connect("action-show-host", self._do_show_host) -@@ -843,7 +844,20 @@ class vmmEngine(vmmGObject): +@@ -869,7 +870,20 @@ class vmmEngine(vmmGObject): self.windowCreate = None def _do_show_create_vminstall(self, src, uri): @@ -41,7 +48,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py def _do_show_create(self, src, uri, use_vminstall=False): if uri is None: -@@ -927,7 +941,10 @@ class vmmEngine(vmmGObject): +@@ -952,7 +966,10 @@ class vmmEngine(vmmGObject): def show_domain_creator(self, uri): self.show_manager() diff --git a/virtman-show-suse-install-repos.patch b/virtman-show-suse-install-repos.patch index abc64226..edcfb20c 100644 --- a/virtman-show-suse-install-repos.patch +++ b/virtman-show-suse-install-repos.patch @@ -1,16 +1,12 @@ +Enhancement that gets the hosts installation location from +install.inf and also collects the repos provided by zypper. +These locations are then presented as potential installation +locations when createing a VM. Index: virt-manager-1.1.0/virtManager/create.py =================================================================== --- virt-manager-1.1.0.orig/virtManager/create.py +++ virt-manager-1.1.0/virtManager/create.py -@@ -18,6 +18,7 @@ - # MA 02110-1301 USA. - # - -+import traceback - import logging - import threading - import time -@@ -368,7 +369,13 @@ class vmmCreate(vmmGObjectUI): +@@ -359,7 +359,13 @@ class vmmCreate(vmmGObjectUI): self.widget("install-url-options").set_expanded(False) urlmodel = self.widget("install-url-box").get_model() ksmodel = self.widget("install-ks-box").get_model() @@ -29,14 +25,13 @@ Index: virt-manager-1.1.0/virtinst/util.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/util.py +++ virt-manager-1.1.0/virtinst/util.py -@@ -23,12 +23,14 @@ import os +@@ -23,11 +23,13 @@ import os import random import re import stat +import commands import libvirt - import libxml2 _host_blktap_capable = None @@ -44,10 +39,10 @@ Index: virt-manager-1.1.0/virtinst/util.py def listify(l): -@@ -517,3 +519,96 @@ def convert_units(value, old_unit, new_u - power = get_power(new_unit) - - return in_bytes / pow(factor, power) +@@ -462,3 +464,96 @@ def register_libvirt_error_handler(): + ignore = userdata + ignore = err + libvirt.registerErrorHandler(f=libvirt_callback, ctx=None) + +def getHostInstallSource(): + global _host_repo_url diff --git a/virtman-stable-os-support.patch b/virtman-stable-os-support.patch deleted file mode 100644 index 8b254eea..00000000 --- a/virtman-stable-os-support.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: virt-manager-1.1.0/virtManager/create.py -=================================================================== ---- virt-manager-1.1.0.orig/virtManager/create.py -+++ virt-manager-1.1.0/virtManager/create.py -@@ -62,8 +62,9 @@ INSTALL_PAGE_CONTAINER_APP = 4 - INSTALL_PAGE_CONTAINER_OS = 5 - - STABLE_OS_SUPPORT = [ -- "rhel3", "rhel4", "rhel5.4", "rhel6", -- "win2k3", "winxp", "win2k8", "vista", "win7", -+ "oes11", "sles10", "sles11", "sles12", -+ "sled10", "sled11", "sled12", -+ "win2k3", "win2k8", "win2k12", "win7", "win8", - ] - - diff --git a/virtman-supported-disk-formats.patch b/virtman-supported-disk-formats.patch index 089f2cf2..00b96f22 100644 --- a/virtman-supported-disk-formats.patch +++ b/virtman-supported-disk-formats.patch @@ -1,10 +1,13 @@ -Index: virt-manager-1.1.0/virtManager/addhardware.py +Reference: bnc#885380 +Xen no longer supports vmdk and never supported qed. +See /usr/share/doc/packages/xen/misc/xl-disk-configuration.txt +Index: virt-manager-1.2.0/virtManager/addhardware.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/addhardware.py -+++ virt-manager-1.1.0/virtManager/addhardware.py -@@ -719,11 +719,14 @@ class vmmAddHardware(vmmGObjectUI): +--- virt-manager-1.2.0.orig/virtManager/addhardware.py ++++ virt-manager-1.2.0/virtManager/addhardware.py +@@ -762,11 +762,14 @@ class vmmAddHardware(vmmGObjectUI): combo.set_model(model) - uiutil.set_combo_text_column(combo, 0) + uiutil.init_combo_text_column(combo, 0) - formats = ["raw", "qcow2", "qed"] no_create_formats = [] diff --git a/virtman-sync-vm-startup-for-cpu-usage.patch b/virtman-sync-vm-startup-for-cpu-usage.patch deleted file mode 100644 index 688f3df1..00000000 --- a/virtman-sync-vm-startup-for-cpu-usage.patch +++ /dev/null @@ -1,19 +0,0 @@ -bnc#886311 and bnc#888289 -Prevents a second unecessary vmmDomain object from being created for the VM. -The orignal object gets the cpu stats from libvirt but the new one is used to -update the display but it is never updated with the new stats. - -Index: virt-manager-1.1.0/virtManager/connection.py -=================================================================== ---- virt-manager-1.1.0.orig/virtManager/connection.py -+++ virt-manager-1.1.0/virtManager/connection.py -@@ -1245,6 +1245,9 @@ class vmmConnection(vmmGObject): - self.emit("nodedev-added", name) - - self.idle_add(tick_send_signals) -+ if len(self._vms) < len(vms): -+ # Allow time for tick_send_signals to run -+ time.sleep(.1) - - ticklist = [] - def add_to_ticklist(l, args=()): diff --git a/virtman-vminstall.patch b/virtman-vminstall.patch index 7d33d14f..65ba15f0 100644 --- a/virtman-vminstall.patch +++ b/virtman-vminstall.patch @@ -1,7 +1,13 @@ -Index: virt-manager-1.1.0/ui/manager.ui +Allow vm-install to be launched from virt-manager. Vm-install is +considered a legacy installation tool since SLE12 and os13.2. This +patch creates a pop-down menu to allow the selection of vm-install +as the install tool. Vm-install is the required installation tool +for s390 but is only a convenience for those still attached to using +it instead of virt-install on x86. +Index: virt-manager-1.2.0/ui/manager.ui =================================================================== ---- virt-manager-1.1.0.orig/ui/manager.ui -+++ virt-manager-1.1.0/ui/manager.ui +--- virt-manager-1.2.0.orig/ui/manager.ui ++++ virt-manager-1.2.0/ui/manager.ui @@ -277,7 +277,7 @@ False False @@ -19,11 +25,11 @@ Index: virt-manager-1.1.0/ui/manager.ui -Index: virt-manager-1.1.0/virtManager/manager.py +Index: virt-manager-1.2.0/virtManager/manager.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/manager.py -+++ virt-manager-1.1.0/virtManager/manager.py -@@ -93,6 +93,7 @@ class vmmManager(vmmGObjectUI): +--- virt-manager-1.2.0.orig/virtManager/manager.py ++++ virt-manager-1.2.0/virtManager/manager.py +@@ -92,6 +92,7 @@ class vmmManager(vmmGObjectUI): "action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]), "action-show-preferences": (GObject.SignalFlags.RUN_FIRST, None, []), "action-show-create": (GObject.SignalFlags.RUN_FIRST, None, [str]), @@ -31,7 +37,7 @@ Index: virt-manager-1.1.0/virtManager/manager.py "action-suspend-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]), "action-resume-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]), "action-run-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]), -@@ -290,7 +291,8 @@ class vmmManager(vmmGObjectUI): +@@ -289,7 +290,8 @@ class vmmManager(vmmGObjectUI): def init_toolbar(self): @@ -41,7 +47,7 @@ Index: virt-manager-1.1.0/virtManager/manager.py self.widget("vm-open").set_icon_name("icon_console") menu = vmmenu.VMShutdownMenu(self, self.current_vm) -@@ -475,6 +477,9 @@ class vmmManager(vmmGObjectUI): +@@ -474,6 +476,9 @@ class vmmManager(vmmGObjectUI): def new_vm(self, src_ignore=None): self.emit("action-show-create", self.current_conn_uri()) @@ -51,10 +57,10 @@ Index: virt-manager-1.1.0/virtManager/manager.py def show_about(self, src_ignore): self.emit("action-show-about") -Index: virt-manager-1.1.0/virtManager/vmmenu.py +Index: virt-manager-1.2.0/virtManager/vmmenu.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/vmmenu.py -+++ virt-manager-1.1.0/virtManager/vmmenu.py +--- virt-manager-1.2.0.orig/virtManager/vmmenu.py ++++ virt-manager-1.2.0/virtManager/vmmenu.py @@ -19,9 +19,28 @@ # @@ -84,13 +90,13 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py # Build toolbar shutdown button menu (manager and details toolbar) # #################################################################### -Index: virt-manager-1.1.0/virtManager/config.py +Index: virt-manager-1.2.0/virtManager/config.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/config.py -+++ virt-manager-1.1.0/virtManager/config.py -@@ -190,6 +190,13 @@ class vmmConfig(object): +--- virt-manager-1.2.0.orig/virtManager/config.py ++++ virt-manager-1.2.0/virtManager/config.py +@@ -197,6 +197,13 @@ class vmmConfig(object): - # General app wide helpers (gconf agnostic) + # General app wide helpers (gsettings agnostic) + def get_new_icon_name(self): + theme = Gtk.IconTheme.get_default() @@ -102,10 +108,10 @@ Index: virt-manager-1.1.0/virtManager/config.py def get_appname(self): return self.appname def get_appversion(self): -Index: virt-manager-1.1.0/virtManager/engine.py +Index: virt-manager-1.2.0/virtManager/engine.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/engine.py -+++ virt-manager-1.1.0/virtManager/engine.py +--- virt-manager-1.2.0.orig/virtManager/engine.py ++++ virt-manager-1.2.0/virtManager/engine.py @@ -27,6 +27,8 @@ import re import Queue import threading @@ -113,9 +119,9 @@ Index: virt-manager-1.1.0/virtManager/engine.py +import os +from subprocess import * - from virtinst import util - -@@ -74,6 +76,7 @@ class vmmEngine(vmmGObject): + from . import packageutils + from .about import vmmAbout +@@ -72,6 +74,7 @@ class vmmEngine(vmmGObject): self.windowCreate = None self.windowManager = None self.windowMigrate = None @@ -123,7 +129,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py self.conns = {} self.err = vmmErrorDialog() -@@ -793,6 +796,7 @@ class vmmEngine(vmmGObject): +@@ -819,6 +822,7 @@ class vmmEngine(vmmGObject): obj.connect("action-show-domain", self._do_show_vm) obj.connect("action-show-preferences", self._do_show_preferences) obj.connect("action-show-create", self._do_show_create) @@ -131,7 +137,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py obj.connect("action-show-about", self._do_show_about) obj.connect("action-show-host", self._do_show_host) obj.connect("action-show-connect", self._do_show_connect) -@@ -835,11 +839,52 @@ class vmmEngine(vmmGObject): +@@ -861,11 +865,52 @@ class vmmEngine(vmmGObject): self.windowCreate = obj return self.windowCreate @@ -148,7 +154,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py + + def _do_show_create(self, src, uri, use_vminstall=False): + if uri is None: -+ uri = vmmConnect.default_uri(always_system=True) ++ uri = vmmConnect.default_uri() + conn = self._lookup_conn(uri) + do_remote = conn.is_remote() + if self.windowCreate == None or do_remote != self.remote_install: