From 51d9ace4b3fdb19109bf190a514f390b74930bb9 Mon Sep 17 00:00:00 2001 From: Charles Arnold Date: Thu, 10 Apr 2014 23:19:20 +0000 Subject: [PATCH] - Upstream bug fix 5345682c-addstorage-remove-whitespace-for-storage-path.patch - Add minimal detection for windows media virtinst-detect-windows-media.patch - 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 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=164 --- ...e-remove-whitespace-for-storage-path.patch | 24 ++++++ virt-manager.changes | 17 +++++ virt-manager.spec | 4 +- virtinst-detect-suse-distros.patch | 31 +++++--- virtinst-detect-windows-media.patch | 73 +++++++++++++++++++ virtinst-keep-cdrom-media-attached.patch | 17 ----- virtinst-support-suse-distros.patch | 22 +----- 7 files changed, 143 insertions(+), 45 deletions(-) create mode 100644 5345682c-addstorage-remove-whitespace-for-storage-path.patch create mode 100644 virtinst-detect-windows-media.patch delete mode 100644 virtinst-keep-cdrom-media-attached.patch diff --git a/5345682c-addstorage-remove-whitespace-for-storage-path.patch b/5345682c-addstorage-remove-whitespace-for-storage-path.patch new file mode 100644 index 00000000..262fb0db --- /dev/null +++ b/5345682c-addstorage-remove-whitespace-for-storage-path.patch @@ -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 + +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) diff --git a/virt-manager.changes b/virt-manager.changes index 2ad6e556..5b77dd6e 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -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 diff --git a/virt-manager.spec b/virt-manager.spec index 33750828..bb3abe73 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -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 diff --git a/virtinst-detect-suse-distros.patch b/virtinst-detect-suse-distros.patch index fb1d6f03..9fc47fcb 100644 --- a/virtinst-detect-suse-distros.patch +++ b/virtinst-detect-suse-distros.patch @@ -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 diff --git a/virtinst-detect-windows-media.patch b/virtinst-detect-windows-media.patch new file mode 100644 index 00000000..631a05ae --- /dev/null +++ b/virtinst-detect-windows-media.patch @@ -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") diff --git a/virtinst-keep-cdrom-media-attached.patch b/virtinst-keep-cdrom-media-attached.patch deleted file mode 100644 index 1203665c..00000000 --- a/virtinst-keep-cdrom-media-attached.patch +++ /dev/null @@ -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 diff --git a/virtinst-support-suse-distros.patch b/virtinst-support-suse-distros.patch index 31da5bba..d1c254f0 100644 --- a/virtinst-support-suse-distros.patch +++ b/virtinst-support-suse-distros.patch @@ -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")