diff --git a/f11eb00b-virt-convert-decompress-gz-files-before-converting.patch b/f11eb00b-virt-convert-decompress-gz-files-before-converting.patch new file mode 100644 index 00000000..91cc9e27 --- /dev/null +++ b/f11eb00b-virt-convert-decompress-gz-files-before-converting.patch @@ -0,0 +1,53 @@ +References: fate#320353 + +Subject: virt-convert: decompress the .gz files before converting +From: Lin Ma lma@suse.com Mon Mar 7 18:39:23 2016 +0800 +Date: Wed Mar 9 20:06:16 2016 -0500: +Git: f11eb00b9a630b7b8dbd9ad2ed7333b7a5303fd2 + +The OVF specification v1.1.0(page 15) indicates that "Each file +referenced by a File element may be compressed using gzip +(see RFC1952)." + +In this case the .gz files should be decompressed first before +converting through qemu-img. + +Signed-off-by: Lin Ma + +Index: virt-manager-1.3.2/virtconv/formats.py +=================================================================== +--- virt-manager-1.3.2.orig/virtconv/formats.py ++++ virt-manager-1.3.2/virtconv/formats.py +@@ -240,6 +240,8 @@ class VirtConverter(object): + """ + binnames = ["qemu-img", "kvm-img"] + ++ decompress_cmd = None ++ + if _is_test(): + executable = "/usr/bin/qemu-img" + else: +@@ -252,12 +254,23 @@ class VirtConverter(object): + raise RuntimeError(_("None of %s tools found.") % binnames) + + base = os.path.basename(absin) ++ ext = os.path.splitext(base)[1] ++ if (ext and ext[1:] == "gz"): ++ if not find_executable("gzip"): ++ raise RuntimeError("'gzip' is needed to decompress the file, " ++ "but not found.") ++ decompress_cmd = ["gzip", "-d", absin] ++ base = os.path.splitext(base)[0] ++ absin = absin[0:-3] ++ self.print_cb("Running %s" % " ".join(decompress_cmd)) + cmd = [executable, "convert", "-O", disk_format, base, absout] + self.print_cb("Running %s" % " ".join(cmd)) + if dry: + return + + cmd[4] = absin ++ if decompress_cmd is not None: ++ _run_cmd(decompress_cmd) + _run_cmd(cmd) + + def convert_disks(self, disk_format, destdir=None, dry=False): diff --git a/virt-manager.changes b/virt-manager.changes index 938e5e0e..a64f5fba 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Fri Mar 18 15:03:06 MDT 2016 - carnold@suse.com + +- bsc#971825 - virt-manager needs to use grub.xen installing a PV + Tumbleweed VM + virtinst-pvgrub2-bootloader.patch + +------------------------------------------------------------------- +Fri Mar 11 08:11:21 MST 2016 - lma@suse.com + +- fate#320353 - Add the ability for virt-convirt to decompress + compressed files in an OVA + f11eb00b-virt-convert-decompress-gz-files-before-converting.patch + +------------------------------------------------------------------- +Wed Mar 9 13:20:36 MST 2016 - carnold@suse.com + +- bsc#951726 - Error - 'wrong number of arguments (3 for 1) ...' + when attempting to create DomU through the yast + virt-manager.spec + ------------------------------------------------------------------- Tue Feb 2 14:08:43 MST 2016 - carnold@suse.com diff --git a/virt-manager.spec b/virt-manager.spec index 0b8b1cc5..d49f7302 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -1,7 +1,7 @@ # # spec file for package virt-manager # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,7 +15,6 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # - %define with_guestfs 0 %define askpass_package "openssh-askpass" %define qemu_user "qemu" @@ -40,6 +39,7 @@ Source2: virt-install.desktop Patch1: 89c3638b-fix-detection-that-libvirtd-is-stopped.patch Patch2: eae7dc06-fix-URL-installs-when-content-length-header-missing.patch Patch3: 1c221fd0-suse-ovmf-paths.patch +Patch4: f11eb00b-virt-convert-decompress-gz-files-before-converting.patch # SUSE Only Patch70: virtman-desktop.patch Patch71: virtman-kvm.patch @@ -160,6 +160,7 @@ machine). %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 # SUSE Only %patch70 -p1 %patch71 -p1 @@ -284,6 +285,7 @@ fi %{_datadir}/appdata/%{name}.appdata.xml %{_datadir}/applications/%{name}.desktop +%{_datadir}/applications/YaST2/virt-install.desktop %{_datadir}/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.xml %{_datadir}/GConf/gsettings/org.virt-manager.virt-manager.convert @@ -313,7 +315,6 @@ fi %dir %{_datadir}/GConf/gsettings %dir %{_datadir}/appdata %{_datadir}/YaST2/clients/virt-install.rb -%{_datadir}/applications/YaST2/virt-install.desktop %{_bindir}/virt-install %{_bindir}/virt-clone diff --git a/virtinst-add-default-rng-device.patch b/virtinst-add-default-rng-device.patch index e0b58344..c14fc70b 100644 --- a/virtinst-add-default-rng-device.patch +++ b/virtinst-add-default-rng-device.patch @@ -1,9 +1,9 @@ References: bnc#885308 Enhancement to add a virtio RNG device to non windows VMs. -Index: virt-manager-1.3.0/virtinst/guest.py +Index: virt-manager-1.3.2/virtinst/guest.py =================================================================== ---- virt-manager-1.3.0.orig/virtinst/guest.py -+++ virt-manager-1.3.0/virtinst/guest.py +--- virt-manager-1.3.2.orig/virtinst/guest.py ++++ virt-manager-1.3.2/virtinst/guest.py @@ -54,6 +54,7 @@ from .pm import PM from .seclabel import Seclabel from .xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty @@ -12,7 +12,7 @@ Index: virt-manager-1.3.0/virtinst/guest.py class Guest(XMLBuilder): -@@ -711,6 +712,15 @@ class Guest(XMLBuilder): +@@ -712,6 +713,15 @@ class Guest(XMLBuilder): return self.add_device(VirtualGraphics(self.conn)) @@ -28,7 +28,7 @@ Index: virt-manager-1.3.0/virtinst/guest.py def add_default_devices(self): self.add_default_graphics() self.add_default_video_device() -@@ -718,6 +728,7 @@ class Guest(XMLBuilder): +@@ -719,6 +729,7 @@ class Guest(XMLBuilder): self.add_default_console_device() self.add_default_usb_controller() self.add_default_channels() diff --git a/virtinst-pvgrub2-bootloader.patch b/virtinst-pvgrub2-bootloader.patch index 2d0c871e..792a8bed 100644 --- a/virtinst-pvgrub2-bootloader.patch +++ b/virtinst-pvgrub2-bootloader.patch @@ -2,11 +2,11 @@ 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.3.0/virtinst/guest.py +Index: virt-manager-1.3.2/virtinst/guest.py =================================================================== ---- virt-manager-1.3.0.orig/virtinst/guest.py -+++ virt-manager-1.3.0/virtinst/guest.py -@@ -365,8 +365,19 @@ class Guest(XMLBuilder): +--- virt-manager-1.3.2.orig/virtinst/guest.py ++++ virt-manager-1.3.2/virtinst/guest.py +@@ -365,8 +365,20 @@ class Guest(XMLBuilder): if (not install and self.os.is_xenpv() and not self.os.kernel): @@ -14,7 +14,8 @@ Index: virt-manager-1.3.0/virtinst/guest.py - self.os.clear() + os_ver = self._get_os_variant() + if os_ver.startswith("sles12") or os_ver.startswith("sled12") or \ -+ os_ver.startswith("opensuse13") or os_ver.startswith("opensuse42"): ++ os_ver.startswith("opensuse13") or os_ver.startswith("opensuse42") or \ ++ os_ver.startswith("opensuse-tumbleweed"): + self.installer._install_kernel = "/usr/lib/grub2/x86_64-xen/grub.xen" + self.installer._install_initrd = None + self.installer.extraargs = None @@ -28,10 +29,10 @@ Index: virt-manager-1.3.0/virtinst/guest.py return self.get_xml_config() -Index: virt-manager-1.3.0/virtinst/installer.py +Index: virt-manager-1.3.2/virtinst/installer.py =================================================================== ---- virt-manager-1.3.0.orig/virtinst/installer.py -+++ virt-manager-1.3.0/virtinst/installer.py +--- virt-manager-1.3.2.orig/virtinst/installer.py ++++ virt-manager-1.3.2/virtinst/installer.py @@ -99,7 +99,7 @@ class Installer(object): break return bootorder diff --git a/virtinst-s390x-disable-graphics.patch b/virtinst-s390x-disable-graphics.patch index f04d9684..13b596dd 100644 --- a/virtinst-s390x-disable-graphics.patch +++ b/virtinst-s390x-disable-graphics.patch @@ -16,7 +16,7 @@ Index: virt-manager-1.3.2/virtinst/guest.py self.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY self.__os_object = None -@@ -662,7 +665,7 @@ class Guest(XMLBuilder): +@@ -663,7 +666,7 @@ class Guest(XMLBuilder): self.add_device(dev) def add_default_video_device(self): @@ -25,7 +25,7 @@ Index: virt-manager-1.3.2/virtinst/guest.py return if self.get_devices("video"): return -@@ -700,6 +703,8 @@ class Guest(XMLBuilder): +@@ -701,6 +704,8 @@ class Guest(XMLBuilder): dev.target_type = "virtio" dev.target_name = dev.CHANNEL_NAME_QEMUGA self.add_device(dev) @@ -34,7 +34,7 @@ Index: virt-manager-1.3.2/virtinst/guest.py def add_default_graphics(self): if self.skip_default_graphics: -@@ -708,7 +713,7 @@ class Guest(XMLBuilder): +@@ -709,7 +714,7 @@ class Guest(XMLBuilder): return if self.os.is_container(): return @@ -43,7 +43,7 @@ Index: virt-manager-1.3.2/virtinst/guest.py return self.add_device(VirtualGraphics(self.conn)) -@@ -1034,7 +1039,7 @@ class Guest(XMLBuilder): +@@ -1035,7 +1040,7 @@ class Guest(XMLBuilder): if self._hv_only_supports_virtio(): return True diff --git a/virtinst-set-cache-mode-unsafe-for-install.patch b/virtinst-set-cache-mode-unsafe-for-install.patch index 3d2f0a63..863bf76f 100644 --- a/virtinst-set-cache-mode-unsafe-for-install.patch +++ b/virtinst-set-cache-mode-unsafe-for-install.patch @@ -1,9 +1,9 @@ Set cache mode for target installation disk to unsafe for better performance. -Index: virt-manager-1.3.0/virtinst/guest.py +Index: virt-manager-1.3.2/virtinst/guest.py =================================================================== ---- virt-manager-1.3.0.orig/virtinst/guest.py -+++ virt-manager-1.3.0/virtinst/guest.py +--- virt-manager-1.3.2.orig/virtinst/guest.py ++++ virt-manager-1.3.2/virtinst/guest.py @@ -53,6 +53,7 @@ from .osxml import OSXML from .pm import PM from .seclabel import Seclabel @@ -30,7 +30,7 @@ Index: virt-manager-1.3.0/virtinst/guest.py self.bootloader = None if (not install and self.os.is_xenpv() and -@@ -379,7 +391,10 @@ class Guest(XMLBuilder): +@@ -380,7 +392,10 @@ class Guest(XMLBuilder): self.bootloader = "/usr/bin/pygrub" self.os.clear() diff --git a/virtinst-set-qemu-emulator.patch b/virtinst-set-qemu-emulator.patch index 9a3e2a28..3ad8e52c 100644 --- a/virtinst-set-qemu-emulator.patch +++ b/virtinst-set-qemu-emulator.patch @@ -5,7 +5,7 @@ Index: virt-manager-1.3.2/virtinst/guest.py =================================================================== --- virt-manager-1.3.2.orig/virtinst/guest.py +++ virt-manager-1.3.2/virtinst/guest.py -@@ -849,14 +849,11 @@ class Guest(XMLBuilder): +@@ -850,14 +850,11 @@ class Guest(XMLBuilder): self.emulator = None return