Hello community,
here is the log from the commit of package virt-manager for openSUSE:Factory checked in at 2015-05-06 07:49:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-manager (Old)
and /work/SRC/openSUSE:Factory/.virt-manager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-manager"
Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-manager/virt-manager.changes 2015-04-27 12:59:39.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.virt-manager.new/virt-manager.changes 2015-05-06 07:49:33.000000000 +0200
@@ -1,0 +2,33 @@
+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
+ 65f7017e-createnet-fix.patch
+ virt-manager-Gtk-30.patch
+ virtman-sync-vm-startup-for-cpu-usage.patch
+ virtinst-ignore-error-403-on-directories.patch
+ virtman-check-for-empty-network-name.patch
+ activate-default-console.patch
+ virtinst-ppc64le.patch
+ virtinst-supported-disk-formats.patch
+ virtinst-support-suse-distros.patch
+ virtman-default-lxc-uri.patch
+ virtman-stable-os-support.patch
+
+-------------------------------------------------------------------
Old:
----
65f7017e-createnet-fix.patch
activate-default-console.patch
virt-manager-1.1.0.tar.bz2
virt-manager-Gtk-30.patch
virtinst-ignore-error-403-on-directories.patch
virtinst-ppc64le.patch
virtinst-support-suse-distros.patch
virtinst-supported-disk-formats.patch
virtman-check-for-empty-network-name.patch
virtman-default-lxc-uri.patch
virtman-stable-os-support.patch
virtman-sync-vm-startup-for-cpu-usage.patch
New:
----
virt-manager-1.2.0.tar.bz2
virtinst-default-xen-to-qcow2-format.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virt-manager.spec ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:35.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:35.000000000 +0200
@@ -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 @@
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 @@
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 @@
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 @@
%endif
BuildRequires: glib2-devel
+%if 0%{?suse_version} > 1320
BuildRequires: gobject-introspection
+%endif
BuildRequires: intltool
BuildRequires: perl
BuildRequires: python
@@ -161,8 +154,8 @@
%prep
%setup -q
+# Upstream Patches
# SUSE Only
-%patch1 -p1
%patch70 -p1
%patch71 -p1
%patch72 -p1
@@ -173,7 +166,6 @@
%patch77 -p1
%patch78 -p1
%patch79 -p1
-%patch80 -p1
# Enhancements
%patch100 -p1
%patch101 -p1
@@ -183,10 +175,8 @@
%patch105 -p1
%patch106 -p1
%patch107 -p1
-%patch108 -p1
%patch120 -p1
%patch121 -p1
-%patch122 -p1
%patch123 -p1
%patch124 -p1
%patch125 -p1
@@ -194,7 +184,6 @@
%patch127 -p1
%patch128 -p1
%patch129 -p1
-%patch130 -p1
# Bug Fixes
%patch150 -p1
%patch151 -p1
@@ -202,14 +191,9 @@
%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 @@
python setup.py configure \
--prefix=%{_prefix} \
- --pkgversion="%{version}" \
--default-graphics="spice" \
%{?_qemu_user} \
%{?_kvm_packages} \
@@ -296,6 +279,7 @@
%{_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,12 @@
%{_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
+%dir %{_datadir}/appdata
%{_datadir}/YaST2/clients/virt-install.rb
%{_datadir}/applications/YaST2/virt-install.desktop
++++++ virt-manager-1.1.0.tar.bz2 -> virt-manager-1.2.0.tar.bz2 ++++++
++++ 365101 lines of diff (skipped)
++++++ virtinst-add-default-rng-device.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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()
++++++ virtinst-default-xen-to-qcow2-format.patch ++++++
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})
++++++ virtinst-detect-suse-distros.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
+ 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 @@
+ 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 @@
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 @@
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 @@
+ 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 @@
+ # 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 @@
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 @@
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)
+
++++++ virtinst-detect-windows-media.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
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
++++++ virtinst-modify-gui-defaults.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
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
++++++ virtinst-nfs-install-sanitize.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
@@ -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:"):
++++++ virtinst-pvgrub2-bootloader.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
+ 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 @@
===================================================================
--- 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 <os></os> block)
-@@ -122,7 +122,7 @@ class Installer(object):
+@@ -123,7 +123,7 @@ class Installer(object):
'post-install' phase.
@type isinstall: C{bool}
"""
++++++ virtinst-refresh_before_fetch_pool.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
===================================================================
--- 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:
++++++ virtinst-set-cache-mode-unsafe-for-install.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
+ 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 @@
+ target_disk.driver_cache = saved_cache
+ return xml_config
- def get_continue_inst(self):
- """
+
+ ##############
++++++ virtinst-set-qemu-emulator.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
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 @@
+ 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():
++++++ virtinst-storage-ocfs2.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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",
++++++ virtinst-vol-default-nocow.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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)
++++++ virtinst-xen-drive-type.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
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 @@
+ return self.type
return None
- if self._storage_creator:
+ drvtype = self._storage_backend.get_driver_type()
++++++ virtinst-xenbus-disk-index-fix.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
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:
++++++ virtman-add-connect-default.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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
++++++ virtman-add-s390x-arch-support.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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"])
-
- # Install Options
- method_tree = self.widget("method-tree")
-@@ -690,7 +690,7 @@ class vmmCreate(vmmGObjectUI):
+ installable_arch = (self.capsinfo.arch in
+- ["i686", "x86_64", "ppc64", "ppc64le", "ia64"])
++ ["i686", "x86_64", "ppc64", "ppc64le", "ia64", "s390x"])
+
+ 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 @@
+ 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 @@
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
++++++ virtman-allow-creating-i686-vm.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
- archs.remove("i686")
archs.sort()
- prios = ["x86_64", "i686", "armv7l", "ppc64", "s390x"]
+ prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le", "s390x"]
++++++ virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
+ 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 @@
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 @@
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 @@
"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:
++++++ virtman-autoyast-support.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
+ 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 @@
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 @@
===================================================================
--- virt-manager-1.1.0.orig/ui/create.ui
+++ virt-manager-1.1.0/ui/create.ui
-@@ -841,7 +841,7 @@ bar</property>
+@@ -843,7 +843,7 @@ bar</property>
<property name="column_spacing">6</property>
<property name="row_spacing">4</property>
<child>
@@ -69,4 +71,4 @@
+ <object class="GtkLabel" id="kickstart-url-label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
+ <property name="label" translatable="yes">Kickstart URL:</property>
++++++ virtman-check-for-valid-display.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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:]
++++++ virtman-default-guest-from-host-os.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
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 @@
+ 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 @@
+ 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 @@
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()
++++++ virtman-default-to-xen-pv.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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.
++++++ virtman-desktop.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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
++++++ virtman-dont-allow-grub.xen-to-be-deleted.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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:
++++++ virtman-eepro100.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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")
++++++ virtman-increase-setKeepAlive-count.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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)):
++++++ virtman-keycombo.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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())
++++++ virtman-kvm.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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"
++++++ virtman-libvirtd-not-running.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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,
++++++ virtman-load-stored-uris.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
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
++++++ virtman-packages.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
"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 @@
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 @@
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 @@
- 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)
++++++ virtman-prevent-double-click-starting-vm-twice.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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):
++++++ virtman-s390x-default-to-vminstall.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
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 @@
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 @@
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()
++++++ virtman-show-suse-install-repos.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
===================================================================
--- 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 @@
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
++++++ virtman-supported-disk-formats.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 = []
++++++ virtman-vminstall.patch ++++++
--- /var/tmp/diff_new_pack.x7cxgY/_old 2015-05-06 07:49:37.000000000 +0200
+++ /var/tmp/diff_new_pack.x7cxgY/_new 2015-05-06 07:49:37.000000000 +0200
@@ -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 @@
<property name="can_focus">False</property>
<property name="show_arrow">False</property>
@@ -19,11 +25,11 @@
</packing>
</child>
<child>
-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 @@
"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 @@
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 @@
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 @@
# 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 @@
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 @@
+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 @@
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 @@
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 @@
+
+ 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: