Hello community, here is the log from the commit of package virt-manager for openSUSE:Factory checked in at 2015-06-23 12:00:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-06-10 09:16:36.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.virt-manager.new/virt-manager.changes 2015-06-23 12:00:50.000000000 +0200 @@ -1,0 +2,6 @@ +Mon Jun 15 14:17:50 UTC 2015 - lma@suse.com + +- bnc#934270 - virt-convert cannot handle .ova files + virtinst-replace-unar-with-other-archivers.patch + +------------------------------------------------------------------- New: ---- virtinst-replace-unar-with-other-archivers.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ virt-manager.spec ++++++ --- /var/tmp/diff_new_pack.zTCcpv/_old 2015-06-23 12:00:51.000000000 +0200 +++ /var/tmp/diff_new_pack.zTCcpv/_new 2015-06-23 12:00:51.000000000 +0200 @@ -76,6 +76,7 @@ Patch160: virtinst-xen-drive-type.patch Patch161: virtinst-xenbus-disk-index-fix.patch Patch162: virtinst-refresh_before_fetch_pool.patch +Patch163: virtinst-replace-unar-with-other-archivers.patch BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -195,6 +196,7 @@ %patch160 -p1 %patch161 -p1 %patch162 -p1 +%patch163 -p1 %build %if %{qemu_user} ++++++ virtinst-replace-unar-with-other-archivers.patch ++++++ References: bnc#934270 We don't ship unar with any suse distro (not even in Factory). Until we do, keep this patch to execute the correct archiver program. Index: virt-manager-1.2.1/virtconv/formats.py =================================================================== --- virt-manager-1.2.1.orig/virtconv/formats.py +++ virt-manager-1.2.1/virtconv/formats.py @@ -118,6 +118,8 @@ def _find_input(input_file, parser, prin try: ext = os.path.splitext(input_file)[1] tempdir = None + binname = None + pkg = None if ext and ext[1:] in ["zip", "gz", "ova", "tar", "bz2", "bzip2", "7z", "xz"]: basedir = "/var/tmp" @@ -129,19 +131,40 @@ def _find_input(input_file, parser, prin base = os.path.basename(input_file) - # check if 'unar' command existed. - if not find_executable("unar"): + if (ext[1:] == "zip"): + binname = "unzip" + pkg = "unzip" + cmd = ["unzip", "-o", "-d", tempdir, input_file] + elif (ext[1:] == "7z"): + binname = "7z" + pkg = "p7zip" + cmd = ["7z", "-o" + tempdir, "e", input_file] + elif (ext[1:] == "ova" or ext[1:] == "tar"): + binname = "tar" + pkg = "tar" + cmd = ["tar", "xf", input_file, "-C", tempdir] + elif (ext[1:] == "gz"): + binname = "gzip" + pkg = "gzip" + cmd = ["tar", "zxf", input_file, "-C", tempdir] + elif (ext[1:] == "bz2" or ext[1:] == "bzip2"): + binname = "bzip2" + pkg = "bzip2" + cmd = ["tar", "jxf", input_file, "-C", tempdir] + elif (ext[1:] == "xz"): + binname = "xz" + pkg = "xz" + cmd = ["tar", "Jxf", input_file, "-C", tempdir] + if not find_executable(binname): raise RuntimeError(_("%s appears to be an archive, " - "but 'unar' is not installed. " - "Please either install 'unar', or extract the archive " + "but '%s' is not installed. " + "Please either install '%s', or extract the archive " "yourself and point virt-convert at " - "the extracted directory.") % base) + "the extracted directory.") % (base, pkg, pkg)) - cmd = ["unar", "-o", tempdir, base] print_cb(_("%s appears to be an archive, running: %s") % (base, " ".join(cmd))) - cmd[-1] = input_file _run_cmd(cmd) force_clean.append(tempdir) input_file = tempdir