Accepting request 229670 from Virtualization

Bug fixes for os13.2

OBS-URL: https://build.opensuse.org/request/show/229670
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/virt-manager?expand=0&rev=97
This commit is contained in:
Stephan Kulow 2014-04-13 11:20:08 +00:00 committed by Git OBS Bridge
commit 3e81536363
7 changed files with 143 additions and 45 deletions

View File

@ -0,0 +1,24 @@
Subject: addstorage: removing whitespace for storage path
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Wed Apr 9 23:33:00 2014 +0800
Date: Wed Apr 9 23:33:00 2014 +0800:
Git: e0215dec6104bd9899d7f59677a45af498c0fd65
virtinst util validate_name can't accept name
with whitespaces aroud it.
Remove it when getting text from UI.
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
Index: virt-manager-1.0.1/virtManager/addstorage.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/addstorage.py
+++ virt-manager-1.0.1/virtManager/addstorage.py
@@ -320,7 +320,7 @@ class vmmAddStorage(vmmGObjectUI):
if is_default:
path = self.get_default_path(vmname, collidelist)
else:
- path = self.widget("config-storage-entry").get_text()
+ path = self.widget("config-storage-entry").get_text().strip()
if is_default:
path = self._check_ideal_path(path, vmname, collidelist)

View File

@ -1,3 +1,20 @@
-------------------------------------------------------------------
Wed Apr 9 14:01:37 MDT 2014 - carnold@suse.com
- Upstream bug fix
5345682c-addstorage-remove-whitespace-for-storage-path.patch
- Add minimal detection for windows media
virtinst-detect-windows-media.patch
-------------------------------------------------------------------
Wed Apr 8 11:06:41 MDT 2014 - carnold@suse.com
- bnc#872543 - virt-manager: unable to install i386 SLES
virtinst-detect-suse-distros.patch
- bnc#872517 - Error starting domain: internal error: libxenlight
failed to create new domain '2k12r2'
Dropping virtinst-keep-cdrom-media-attached.patch for libvirt fix
-------------------------------------------------------------------
Wed Apr 3 19:25:41 MDT 2014 - carnold@suse.com

View File

@ -46,6 +46,7 @@ Patch7: 53399b45-hook-into-domain-balloon-event.patch
Patch8: 533d708d-fix-showing-vcpus-values.patch
Patch9: 533d7602-fix-changing-graphics-type.patch
Patch10: 533d7be7-clarify-iscsi-IQN-fields.patch
Patch11: 5345682c-addstorage-remove-whitespace-for-storage-path.patch
Patch50: virtman-desktop.patch
Patch51: virtman-cdrom.patch
Patch52: virtman-kvm.patch
@ -77,7 +78,7 @@ Patch156: virtinst-modify-gui-defaults.patch
Patch157: virtinst-pvgrub2-bootloader.patch
Patch158: virtinst-set-qemu-emulator.patch
Patch159: virtinst-vol-default-nocow.patch
Patch160: virtinst-keep-cdrom-media-attached.patch
Patch160: virtinst-detect-windows-media.patch
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -176,6 +177,7 @@ machine).
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1

View File

@ -2,7 +2,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.0.1.orig/virtinst/urlfetcher.py
+++ virt-manager-1.0.1/virtinst/urlfetcher.py
@@ -296,6 +296,68 @@ def _distroFromTreeinfo(fetcher, arch, v
@@ -296,6 +296,81 @@ def _distroFromTreeinfo(fetcher, arch, v
return ob
@ -14,6 +14,8 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
+
+ distribution = None
+ distro_version = None
+ distro_summary = None
+ distro_arch = None
+ filename = fetcher.acquireFile("content")
+ cbuf = f = None
+ try:
@ -31,17 +33,28 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
+ for line in lines:
+ if line.startswith("LABEL "):
+ distribution = line.split(' ', 1)
+ if distro_version:
+ break
+ if line.startswith("VERSION "):
+ distro_version = line.split(' ', 1)
+ if distribution:
+ break
+ if line.startswith("SUMMARY "):
+ distro_summary = line.split(' ', 1)
+ if line.startswith("BASEARCHS "):
+ distro_arch = line.split(' ', 1)
+ if line.startswith("DEFAULTBASE "):
+ distro_arch = line.split(' ', 1)
+ if distribution and distro_version and distro_arch:
+ break
+
+ if not distribution and distro_summary:
+ distribution = distro_summary
+ if distro_arch:
+ arch = distro_arch[1].strip()
+ else:
+ if cbuf.find("x86_64") != -1:
+ arch = "x86_64"
+ elif cbuf.find("i586") != -1:
+ arch = "i586"
+ elif cbuf.find("s390x") != -1:
+ arch = "s390x"
+
+ if distribution:
+ if re.match(".*SUSE Linux Enterprise Server*", distribution[1]) or \
@ -71,7 +84,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
def getDistroStore(guest, fetcher):
stores = []
@@ -312,6 +374,10 @@ def getDistroStore(guest, fetcher):
@@ -312,6 +387,10 @@ def getDistroStore(guest, fetcher):
if dist:
return dist
@ -82,7 +95,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
# FIXME: This 'distro ==' doesn't cut it. 'distro' is from our os
# dictionary, so would look like 'fedora9' or 'rhel5', so this needs
# to be a bit more intelligent
@@ -808,12 +874,11 @@ class SLDistro(RHELDistro):
@@ -808,12 +887,11 @@ class SLDistro(RHELDistro):
class SuseDistro(Distro):
name = "SUSE"
@ -96,7 +109,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
Distro.__init__(self, *args, **kwargs)
if re.match(r'i[4-9]86', self.arch):
self.arch = 'i386'
@@ -824,22 +889,44 @@ class SuseDistro(Distro):
@@ -824,22 +902,44 @@ class SuseDistro(Distro):
oldkern += "64"
oldinit += "64"
@ -151,7 +164,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
return True
def _get_method_arg(self):
@@ -860,6 +947,27 @@ class SuseDistro(Distro):
@@ -860,6 +960,27 @@ class SuseDistro(Distro):
return name
return self.os_variant

View File

@ -0,0 +1,73 @@
Index: virt-manager-1.0.1/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.0.1.orig/virtinst/urlfetcher.py
+++ virt-manager-1.0.1/virtinst/urlfetcher.py
@@ -372,6 +372,24 @@ def _distroFromContent(fetcher, arch, vm
return ob
+def _distroFromAutorun(fetcher, arch, vmtype=None):
+ # Just look for autorun.inf (also in uppercase)
+ # If present media is likely from a windows iso.
+ distro_version = None
+ if not fetcher.hasFile("autorun.inf"):
+ return None
+
+ dclass = WindowsDistro
+
+ ob = dclass(fetcher, arch, vmtype)
+ if dclass != GenericDistro:
+ ob.content = distro_version
+
+ # Explictly call this, so we populate os_type/variant info
+ ob.isValidStore()
+
+ return ob
+
def getDistroStore(guest, fetcher):
stores = []
logging.debug("Finding distro store for location=%s", fetcher.location)
@@ -391,6 +409,10 @@ def getDistroStore(guest, fetcher):
if dist:
return dist
+ dist = _distroFromAutorun(fetcher, arch, _type)
+ if dist:
+ return dist
+
# FIXME: This 'distro ==' doesn't cut it. 'distro' is from our os
# dictionary, so would look like 'fedora9' or 'rhel5', so this needs
# to be a bit more intelligent
@@ -1137,6 +1159,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"
+
+ def isValidStore(self):
+ return False
# Build list of all *Distro classes
def _build_distro_list():
Index: virt-manager-1.0.1/virtinst/osdict.py
===================================================================
--- virt-manager-1.0.1.orig/virtinst/osdict.py
+++ virt-manager-1.0.1/virtinst/osdict.py
@@ -316,9 +316,12 @@ _add_var("win2k", "Microsoft Windows 200
_add_var("winxp", "Microsoft Windows XP", sortby="mswin5", supported=True, xen_disable_acpi=True, parent="windows")
_add_var("winxp64", "Microsoft Windows XP (x86_64)", supported=True, sortby="mswin564", parent="windows")
_add_var("win2k3", "Microsoft Windows Server 2003", supported=True, sortby="mswinserv2003", parent="windows")
-_add_var("win2k8", "Microsoft Windows Server 2008 (or later)", supported=True, sortby="mswinserv2008", parent="windows")
+_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("vista", "Microsoft Windows Vista", supported=True, sortby="mswin6", parent="windows")
-_add_var("win7", "Microsoft Windows 7 (or later)", supported=True, sortby="mswin7", 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", "Unknown", supported=True, sortby="mswin", parent="windows")
_add_type("solaris", "Solaris", clock="localtime")

View File

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

View File

@ -1,7 +1,7 @@
Index: virt-manager-0.10.1/virtinst/osdict.py
Index: virt-manager-1.0.1/virtinst/osdict.py
===================================================================
--- virt-manager-0.10.1.orig/virtinst/osdict.py
+++ virt-manager-0.10.1/virtinst/osdict.py
--- virt-manager-1.0.1.orig/virtinst/osdict.py
+++ virt-manager-1.0.1/virtinst/osdict.py
@@ -259,11 +259,23 @@ _add_var("fedora18", "Fedora 18", suppor
_add_var("fedora19", "Fedora 19", virtiommio=True, parent="fedora18")
_add_var("fedora20", "Fedora 20 (or later)", parent="fedora19")
@ -30,21 +30,7 @@ Index: virt-manager-0.10.1/virtinst/osdict.py
_add_var("mandriva2009", "Mandriva Linux 2009 and earlier", urldistro="mandriva", parent="linux")
_add_var("mandriva2010", "Mandriva Linux 2010 (or later)", virtiodisk=True, virtionet=True, parent="mandriva2009")
@@ -304,9 +316,11 @@ _add_var("win2k", "Microsoft Windows 200
_add_var("winxp", "Microsoft Windows XP", sortby="mswin5", supported=True, xen_disable_acpi=True, parent="windows")
_add_var("winxp64", "Microsoft Windows XP (x86_64)", supported=True, sortby="mswin564", parent="windows")
_add_var("win2k3", "Microsoft Windows Server 2003", supported=True, sortby="mswinserv2003", parent="windows")
-_add_var("win2k8", "Microsoft Windows Server 2008 (or later)", supported=True, sortby="mswinserv2008", parent="windows")
+_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("vista", "Microsoft Windows Vista", supported=True, sortby="mswin6", parent="windows")
-_add_var("win7", "Microsoft Windows 7 (or later)", supported=True, sortby="mswin7", 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_type("solaris", "Solaris", clock="localtime")
@@ -333,5 +347,5 @@ _add_type("other", "Other")
@@ -333,5 +345,5 @@ _add_type("other", "Other")
_add_var("msdos", "MS-DOS", acpi=False, apic=False, parent="other")
_add_var("netware4", "Novell Netware 4", parent="other")
_add_var("netware5", "Novell Netware 5", parent="other")