- Update to virt-manager version 1.4.0

virt-manager-1.4.0.tar.bz2
  virtman-dont-specify-vte-version.patch
  * virt-manager: spice GL console support (Marc-André Lureau, Cole Robinson)
  * Bump gtk and pygobject deps to 3.14
  * virt-manager: add checkbox to forget keyring password (Pavel Hrdina)
  * cli: add --graphics gl= (Marc-André Lureau)
  * cli: add --video accel3d= (Marc-André Lureau)
  * cli: add --graphics listen=none (Marc-André Lureau)
  * cli: add --transient flag (Richard W.M. Jones)
  * cli: --features gic= support, and set a default for it (Pavel Hrdina)
  * cli: Expose --video heads, ram, vram, vgamem
  * cli: add --graphics listen=socket
  * cli: add device address.type/address.bus/...
  * cli: add --disk seclabelX.model (and .label, .relabel)
  * cli: add -cpu cellX.id (and .cpus, and .memory)
  * cli: add --network rom_bar= and rom_file=
  * cli: add --disk backing_format=
  * Many bug fixes and improvements
 - Dropped the following
  virt-manager-1.3.2.tar.bz2
  89c3638b-fix-detection-that-libvirtd-is-stopped.patch
  21fd079e-replace-unar-with-other-archivers.patch
  eae7dc06-fix-URL-installs-when-content-length-header-missing.patch
  1c221fd0-suse-ovmf-paths.patch
  f11eb00b-virt-convert-decompress-gz-files-before-converting.patch
  8ba48f52-add-virtio-device-model-and-accel3d-attribute.patch
  f454798b-virtman-fix-making-screenshot.patch
  5ecc2b44-dont-clear-recommended-machine-if-none-is-selected.patch
  de9cd87f-return-recommended-machine-for-XEN.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=319
This commit is contained in:
Charles Arnold 2016-06-21 22:34:03 +00:00 committed by Git OBS Bridge
parent b58945c840
commit ff660c61ba
41 changed files with 233 additions and 686 deletions

View File

@ -1,23 +0,0 @@
commit 1c221fd0349b993e8ee2eabbf227239d6e989d90
Author: Jim Fehlig <jfehlig@suse.com>
Date: Wed Jan 27 19:51:32 2016 -0700
virtinst: Support paths to SUSE OVMF firmwares
Extend the domcapabilities regex to include SUSE's OVMF
file naming convention.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Index: virt-manager-1.3.2/virtinst/domcapabilities.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/domcapabilities.py
+++ virt-manager-1.3.2/virtinst/domcapabilities.py
@@ -101,6 +101,7 @@ class DomainCapabilities(XMLBuilder):
"x86_64": [
".*OVMF_CODE\.fd", # RHEL
".*ovmf-x64/OVMF.*\.fd", # gerd's firmware repo
+ ".*ovmf-x86_64-.*", # SUSE
],
"aarch64": [
".*AAVMF_CODE\.fd", # RHEL

View File

@ -1,109 +0,0 @@
References: bnc#934270
Subject: Replace the unar to more common archivers
From: Lin Ma lma@suse.com Wed Jan 6 12:22:57 2016 +0800
Date: Sun Jan 10 18:23:29 2016 -0500:
Git: 21fd079eb19899cf5283c6a55e9006d1fa0619b9
Because some of distributions dont provide the unar (universal archiver),
Using more common archivers to replace it.
Signed-off-by: Lin Ma <lma@suse.com>
(crobinso: adjust test suite)
diff --git a/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt b/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt
index b03ca3c..b046c66 100644
--- a/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt
+++ b/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt
@@ -73,5 +73,5 @@
</domain>
-test-vmx-zip.zip appears to be an archive, running: unar -o /var/tmp/virt-convert-tmp test-vmx-zip.zip
+test-vmx-zip.zip appears to be an archive, running: unzip -o -d /var/tmp/virt-convert-tmp /home/crobinso/src/virt-manager/tests/virtconv-files/vmx_input/test-vmx-zip.zip
Copying MS-DOS.vmdk to /var/lib/libvirt/images/MS-DOS
diff --git a/tests/virtconvtest.py b/tests/virtconvtest.py
index 7f1c735..622117f 100644
--- a/tests/virtconvtest.py
+++ b/tests/virtconvtest.py
@@ -15,7 +15,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301 USA.
-from distutils.spawn import find_executable
import glob
import os
import StringIO
@@ -66,10 +65,6 @@ class TestVirtConv(unittest.TestCase):
if disk_format:
out_path += ".disk_%s" % disk_format
- if (os.path.splitext(in_path)[1] in [".zip"] and
- not find_executable("unar")):
- self.skipTest("Install 'unar' to run all tests.")
-
try:
os.chdir(os.path.dirname(in_path))
self._convert_helper(in_path, out_path, in_type, disk_format)
diff --git a/virtconv/formats.py b/virtconv/formats.py
index 9a6d237..ed8a66e 100644
--- a/virtconv/formats.py
+++ b/virtconv/formats.py
@@ -118,6 +118,8 @@ def _find_input(input_file, parser, print_cb):
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, print_cb):
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

View File

@ -1,27 +0,0 @@
Subject: virtManager.create: don't clear recommended machine if none is selected
From: Pavel Hrdina phrdina@redhat.com Thu Jun 16 11:04:36 2016 +0200
Date: Thu Jun 16 12:00:10 2016 +0200:
Git: 5ecc2b440a8e34e00a0c4192c94030428102f0cb
This improves loading domcapabilities to get domcapabilities for recommended
machine, not for default machine.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Index: virt-manager-1.3.2/virtManager/create.py
===================================================================
--- virt-manager-1.3.2.orig/virtManager/create.py
+++ virt-manager-1.3.2/virtManager/create.py
@@ -1636,7 +1636,11 @@ class vmmCreate(vmmGObjectUI):
def _build_guest(self, variant):
guest = self.conn.caps.build_virtinst_guest(self._capsinfo)
- guest.os.machine = self._get_config_machine()
+
+ # If no machine was selected don't clear recommended machine
+ machine = self._get_config_machine()
+ if machine:
+ guest.os.machine = machine
# Generate UUID (makes customize dialog happy)
try:

View File

@ -1,32 +0,0 @@
Subject: connection: fix detection that libvirtd is stopped
From: Pavel Hrdina phrdina@redhat.com Tue Jan 5 10:17:37 2016 +0100
Date: Fri Jan 8 10:21:42 2016 +0100:
Git: 89c3638b63e5b251db92ef7066c1753bfa469d38
In case that libvirtd is stopped, we could receive another type of error
from libvirt "libvirtError: internal error: client socket is closed".
This one is usually reported from local connection.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Index: virt-manager-1.3.2/virtManager/connection.py
===================================================================
--- virt-manager-1.3.2.orig/virtManager/connection.py
+++ virt-manager-1.3.2/virtManager/connection.py
@@ -1298,6 +1298,7 @@ class vmmConnection(vmmGObject):
from_remote = getattr(libvirt, "VIR_FROM_REMOTE", None)
from_rpc = getattr(libvirt, "VIR_FROM_RPC", None)
sys_error = getattr(libvirt, "VIR_ERR_SYSTEM_ERROR", None)
+ internal_error = getattr(libvirt, "VIR_ERR_INTERNAL_ERROR", None)
dom = -1
code = -1
@@ -1309,7 +1310,7 @@ class vmmConnection(vmmGObject):
self.get_uri(), exc_info=True)
if (dom in [from_remote, from_rpc] and
- code in [sys_error]):
+ code in [sys_error, internal_error]):
e = None
logging.debug("Not showing user error since libvirtd "
"appears to have stopped.")

View File

@ -1,68 +0,0 @@
Subject: virtinst: add virtio device model and accel3d attribute
From: Marc-André Lureau marcandre.lureau@gmail.com Fri Mar 4 12:31:52 2016 +0100
Date: Wed Mar 9 20:25:37 2016 -0500:
Git: 8ba48f5299409354fb610cd8620987e635c90643
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Index: virt-manager-1.3.2/man/virt-install.pod
===================================================================
--- virt-manager-1.3.2.orig/man/virt-install.pod
+++ virt-manager-1.3.2/man/virt-install.pod
@@ -1334,7 +1334,7 @@ Use --console=? to see a list of all ava
Specify what video device model will be attached to the guest. Valid values
for VIDEO are hypervisor specific, but some options for recent kvm are
-cirrus, vga, qxl, or vmvga (vmware).
+cirrus, vga, qxl, virtio, or vmvga (vmware).
Use --video=? to see a list of all available sub options. Complete details at L<http://libvirt.org/formatdomain.html#elementsVideo>
Index: virt-manager-1.3.2/tests/xmlparse-xml/change-videos-out.xml
===================================================================
--- virt-manager-1.3.2.orig/tests/xmlparse-xml/change-videos-out.xml
+++ virt-manager-1.3.2/tests/xmlparse-xml/change-videos-out.xml
@@ -30,7 +30,9 @@
<model type="vmvga" heads="5"/>
</video>
<video>
- <model type="qxl" vgamem="8192" ram="100"/>
+ <model type="qxl" vgamem="8192" ram="100">
+ <acceleration accel3d="yes"/>
+ </model>
</video>
</devices>
</domain>
Index: virt-manager-1.3.2/tests/xmlparse.py
===================================================================
--- virt-manager-1.3.2.orig/tests/xmlparse.py
+++ virt-manager-1.3.2/tests/xmlparse.py
@@ -673,6 +673,7 @@ class XMLParseTest(unittest.TestCase):
check("model", "cirrus", "cirrus", "qxl")
check("ram", None, 100)
check("vgamem", None, 8192)
+ check("accel3d", None, True)
self._alter_compare(guest.get_xml_config(), outfile)
Index: virt-manager-1.3.2/virtinst/devicevideo.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/devicevideo.py
+++ virt-manager-1.3.2/virtinst/devicevideo.py
@@ -27,7 +27,7 @@ class VirtualVideoDevice(VirtualDevice):
# Default models list
MODEL_DEFAULT = "default"
- MODELS = ["cirrus", "vga", "vmvga", "xen", "qxl"]
+ MODELS = ["cirrus", "vga", "vmvga", "xen", "qxl", "virtio"]
@staticmethod
def pretty_model(model):
@@ -43,6 +43,7 @@ class VirtualVideoDevice(VirtualDevice):
ram = XMLProperty("./model/@ram", is_int=True)
heads = XMLProperty("./model/@heads", is_int=True)
vgamem = XMLProperty("./model/@vgamem", is_int=True)
+ accel3d = XMLProperty("./model/acceleration/@accel3d", is_yesno=True)
VirtualVideoDevice.register_type()

View File

@ -1,57 +0,0 @@
Subject: virtinst.capabilities: return recommended machine for XEN
From: Pavel Hrdina phrdina@redhat.com Thu Jun 16 12:00:51 2016 +0200
Date: Thu Jun 16 12:16:49 2016 +0200:
Git: de9cd87fda742dfd5e9a14cf4b68c60e574d3e3d
This is required in order to ask for correct domcapabilities. If you don't
specify any machine libvirt will return domcapabilities for default machine
which is xenpv.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Index: virt-manager-1.3.2/tests/cli-test-xml/compare/virt-install-xen-hvm.xml
===================================================================
--- virt-manager-1.3.2.orig/tests/cli-test-xml/compare/virt-install-xen-hvm.xml
+++ virt-manager-1.3.2/tests/cli-test-xml/compare/virt-install-xen-hvm.xml
@@ -5,7 +5,7 @@
<currentMemory>65536</currentMemory>
<vcpu>1</vcpu>
<os>
- <type arch="x86_64">hvm</type>
+ <type arch="x86_64" machine="xenfv">hvm</type>
<loader>/usr/lib/xen/boot/hvmloader</loader>
<boot dev="cdrom"/>
<boot dev="hd"/>
Index: virt-manager-1.3.2/tests/cli-test-xml/compare/virt-install-xen-pv.xml
===================================================================
--- virt-manager-1.3.2.orig/tests/cli-test-xml/compare/virt-install-xen-pv.xml
+++ virt-manager-1.3.2/tests/cli-test-xml/compare/virt-install-xen-pv.xml
@@ -5,7 +5,7 @@
<currentMemory>65536</currentMemory>
<vcpu>1</vcpu>
<os>
- <type arch="x86_64">linux</type>
+ <type arch="x86_64" machine="xenpv">linux</type>
<kernel>/tmp/virtinst-vmlinuz.</kernel>
<initrd>/tmp/virtinst-initrd.img.</initrd>
<cmdline>method=tests/cli-test-xml/faketree</cmdline>
Index: virt-manager-1.3.2/virtinst/capabilities.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/capabilities.py
+++ virt-manager-1.3.2/virtinst/capabilities.py
@@ -350,9 +350,14 @@ class _CapsInfo(object):
# For any other HV just let libvirt get us the default, these
# are the only ones we've tested.
- if not self.conn.is_test() and not self.conn.is_qemu():
+ if (not self.conn.is_test() and
+ not self.conn.is_qemu() and
+ not self.conn.is_xen()):
return None
+ if self.conn.is_xen() and len(self.machines):
+ return self.machines[0]
+
if (self.arch in ["ppc64", "ppc64le"] and
"pseries" in self.machines):
return "pseries"

View File

@ -1,25 +0,0 @@
Subject: urlfetcher: Fix URL installs when content-length header missing
From: Cole Robinson crobinso@redhat.com Tue Jan 12 12:45:02 2016 -0500
Date: Tue Jan 12 12:45:02 2016 -0500:
Git: eae7dc061968a83fef8ebb632c8f939621ff22b1
Suggested-by: bduff@sjm.com
Index: virt-manager-1.3.2/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/urlfetcher.py
+++ virt-manager-1.3.2/virtinst/urlfetcher.py
@@ -186,8 +186,11 @@ class _HTTPURLFetcher(_URLFetcher):
"""
response = requests.get(url, stream=True)
response.raise_for_status()
- size = response.headers.get('content-length')
- return response, size.isdigit() and int(size) or None
+ try:
+ size = int(response.headers.get('content-length'))
+ except:
+ size = None
+ return response, size
def _write(self, urlobj, fileobj):
"""

View File

@ -1,53 +0,0 @@
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 <lma@suse.com>
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
@@ -263,6 +263,8 @@ class VirtConverter(object):
"""
binnames = ["qemu-img", "kvm-img"]
+ decompress_cmd = None
+
if _is_test():
executable = "/usr/bin/qemu-img"
else:
@@ -275,12 +277,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):

View File

@ -1,26 +0,0 @@
From f454798b337aedb881671f62fe3b25fad703b768 Mon Sep 17 00:00:00 2001
From: Cole Robinson <crobinso@redhat.com>
Date: Fri, 15 Jan 2016 15:07:58 -0500
Subject: [PATCH] details: Fix screenshot on F24 rawhide (bz 1297988)
---
virtManager/details.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/virtManager/details.py b/virtManager/details.py
index 0bd2569..3dbd82f 100644
--- a/virtManager/details.py
+++ b/virtManager/details.py
@@ -1486,6 +1486,9 @@ class vmmDetails(vmmGObjectUI):
# and future proof it a bit
if type(ret) is tuple and len(ret) >= 2:
ret = ret[1]
+ # F24 rawhide, ret[1] is a named tuple with a 'buffer' element...
+ if hasattr(ret, "buffer"):
+ ret = ret.buffer
import datetime
now = str(datetime.datetime.now()).split(".")[0].replace(" ", "_")
--
2.8.3

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:85bbe080c4945afa0f047d3e9a508f8c1c029db746673fcbabdec48ad8d0e2a8
size 1384510

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:217e45f882d082d27dbbf2c0e1e5e6bcdeeaf473490934aecf1e8a647e732c7a
size 1460026

View File

@ -1,3 +1,40 @@
-------------------------------------------------------------------
Mon Jun 20 15:21:20 MDT 2016 - carnold@suse.com
- Update to virt-manager version 1.4.0
virt-manager-1.4.0.tar.bz2
virtman-dont-specify-vte-version.patch
* virt-manager: spice GL console support (Marc-André Lureau, Cole Robinson)
* Bump gtk and pygobject deps to 3.14
* virt-manager: add checkbox to forget keyring password (Pavel Hrdina)
* cli: add --graphics gl= (Marc-André Lureau)
* cli: add --video accel3d= (Marc-André Lureau)
* cli: add --graphics listen=none (Marc-André Lureau)
* cli: add --transient flag (Richard W.M. Jones)
* cli: --features gic= support, and set a default for it (Pavel Hrdina)
* cli: Expose --video heads, ram, vram, vgamem
* cli: add --graphics listen=socket
* cli: add device address.type/address.bus/...
* cli: add --disk seclabelX.model (and .label, .relabel)
* cli: add -cpu cellX.id (and .cpus, and .memory)
* cli: add --network rom_bar= and rom_file=
* cli: add --disk backing_format=
* Many bug fixes and improvements
- Dropped the following
virt-manager-1.3.2.tar.bz2
89c3638b-fix-detection-that-libvirtd-is-stopped.patch
21fd079e-replace-unar-with-other-archivers.patch
eae7dc06-fix-URL-installs-when-content-length-header-missing.patch
1c221fd0-suse-ovmf-paths.patch
f11eb00b-virt-convert-decompress-gz-files-before-converting.patch
8ba48f52-add-virtio-device-model-and-accel3d-attribute.patch
f454798b-virtman-fix-making-screenshot.patch
5ecc2b44-dont-clear-recommended-machine-if-none-is-selected.patch
de9cd87f-return-recommended-machine-for-XEN.patch
0acdea1d-show-firmware-options-also-for-XEN-guests.patch
virtinst-fix-sle12sp1-detection.patch
virtinst-fix-tumbleweed-detection.patch
-------------------------------------------------------------------
Tue Jun 14 16:08:05 MDT 2016 - carnold@suse.com

View File

@ -23,11 +23,11 @@
%define libvirt_xen_packages ""
%define preferred_distros "sles12sp1,opensuse42.1"
%define kvm_packages ""
%define _version 1.3.2
%define _version 1.4.0
%define _release 0
Name: virt-manager
Version: 1.3.2
Version: 1.4.0
Release: 0
Summary: Virtual Machine Manager
License: GPL-2.0+
@ -37,16 +37,6 @@ Source0: %{name}-%{version}.tar.bz2
Source1: virt-install.rb
Source2: virt-install.desktop
# Upstream Patches
Patch1: 89c3638b-fix-detection-that-libvirtd-is-stopped.patch
Patch2: 21fd079e-replace-unar-with-other-archivers.patch
Patch3: eae7dc06-fix-URL-installs-when-content-length-header-missing.patch
Patch4: 1c221fd0-suse-ovmf-paths.patch
Patch5: f11eb00b-virt-convert-decompress-gz-files-before-converting.patch
Patch6: 8ba48f52-add-virtio-device-model-and-accel3d-attribute.patch
Patch7: f454798b-virtman-fix-making-screenshot.patch
Patch8: 5ecc2b44-dont-clear-recommended-machine-if-none-is-selected.patch
Patch9: de9cd87f-return-recommended-machine-for-XEN.patch
Patch10: 0acdea1d-show-firmware-options-also-for-XEN-guests.patch
# SUSE Only
Patch70: virtman-desktop.patch
Patch71: virtman-kvm.patch
@ -78,12 +68,11 @@ Patch151: virtman-increase-setKeepAlive-count.patch
Patch152: virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch
Patch153: virtman-check-for-valid-display.patch
Patch154: virtman-allow-creating-i686-vm.patch
Patch155: virtman-dont-specify-vte-version.patch
Patch160: virtinst-xen-drive-type.patch
Patch161: virtinst-xenbus-disk-index-fix.patch
Patch162: virtinst-refresh_before_fetch_pool.patch
Patch163: virtinst-fix-sle12sp1-detection.patch
Patch164: virtinst-fix-tumbleweed-detection.patch
Patch165: virtinst-use-xenpae-kernel-for-32bit.patch
Patch163: virtinst-use-xenpae-kernel-for-32bit.patch
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -165,16 +154,6 @@ machine).
%prep
%setup -q
# Upstream Patches
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
# SUSE Only
%patch70 -p1
%patch71 -p1
@ -206,12 +185,11 @@ machine).
%patch152 -p1
%patch153 -p1
%patch154 -p1
%patch155 -p1
%patch160 -p1
%patch161 -p1
%patch162 -p1
%patch163 -p1
%patch164 -p1
%patch165 -p1
%build
%if %{qemu_user}

View File

@ -1,9 +1,9 @@
References: bnc#885308
Enhancement to add a virtio RNG device to non windows VMs.
Index: virt-manager-1.3.2/virtinst/guest.py
Index: virt-manager-1.4.0/virtinst/guest.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/guest.py
+++ virt-manager-1.3.2/virtinst/guest.py
--- virt-manager-1.4.0.orig/virtinst/guest.py
+++ virt-manager-1.4.0/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.2/virtinst/guest.py
class Guest(XMLBuilder):
@@ -712,6 +713,15 @@ class Guest(XMLBuilder):
@@ -654,6 +655,15 @@ class Guest(XMLBuilder):
return
self.add_device(VirtualGraphics(self.conn))
@ -28,7 +28,7 @@ Index: virt-manager-1.3.2/virtinst/guest.py
def add_default_devices(self):
self.add_default_graphics()
self.add_default_video_device()
@@ -719,6 +729,7 @@ class Guest(XMLBuilder):
@@ -661,6 +671,7 @@ class Guest(XMLBuilder):
self.add_default_console_device()
self.add_default_usb_controller()
self.add_default_channels()

View File

@ -1,10 +1,10 @@
Reference: bnc#869024
Add s390x and ppc64 support
Index: virt-manager-1.3.2/virtinst/urlfetcher.py
Index: virt-manager-1.4.0/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/urlfetcher.py
+++ virt-manager-1.3.2/virtinst/urlfetcher.py
@@ -430,6 +430,10 @@ def _distroFromSUSEContent(fetcher, arch
--- virt-manager-1.4.0.orig/virtinst/urlfetcher.py
+++ virt-manager-1.4.0/virtinst/urlfetcher.py
@@ -438,6 +438,10 @@ def _distroFromSUSEContent(fetcher, arch
arch = "i586"
elif cbuf.find("s390x") != -1:
arch = "s390x"
@ -13,9 +13,9 @@ Index: virt-manager-1.3.2/virtinst/urlfetcher.py
+ elif cbuf.find("ppc64le") != -1:
+ arch = "ppc64le"
dclass = GenericDistro
if distribution:
@@ -969,10 +973,12 @@ class SuseDistro(Distro):
def _parse_sle_distribution(d):
sle_version = d[1].strip().rsplit(' ')[4]
@@ -989,10 +993,12 @@ class SuseDistro(Distro):
oldkern += "64"
oldinit += "64"

View File

@ -1,13 +1,13 @@
Enhancement to correctly detect Open Enterprise Server media is
selected as the installation source.
Index: virt-manager-1.3.2/virtinst/urlfetcher.py
Index: virt-manager-1.4.0/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/urlfetcher.py
+++ virt-manager-1.3.2/virtinst/urlfetcher.py
@@ -442,6 +442,10 @@ def _distroFromSUSEContent(fetcher, arch
--- virt-manager-1.4.0.orig/virtinst/urlfetcher.py
+++ virt-manager-1.4.0/virtinst/urlfetcher.py
@@ -456,6 +456,10 @@ def _distroFromSUSEContent(fetcher, arch
dclass = SLEDDistro
if distro_version is None:
distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[4]]
distro_version = _parse_sle_distribution(distribution)
+ elif re.match(".*Open Enterprise Server*", distribution[1]):
+ dclass = SLESDistro
+ if distro_version is None:

View File

@ -1,41 +0,0 @@
Index: virt-manager-1.3.2/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/urlfetcher.py
+++ virt-manager-1.3.2/virtinst/urlfetcher.py
@@ -402,6 +402,10 @@ def _distroFromSUSEContent(fetcher, arch
distro_distro = line.rsplit(',', 1)
elif line.startswith("VERSION "):
distro_version = line.split(' ', 1)
+ if len(distro_version) > 1:
+ d_version = distro_version[1].split('-', 1)
+ if len(d_version) > 1:
+ distro_version[1] = d_version[0]
elif line.startswith("SUMMARY "):
distro_summary = line.split(' ', 1)
elif line.startswith("BASEARCHS "):
@@ -435,17 +439,23 @@ def _distroFromSUSEContent(fetcher, arch
elif cbuf.find("ppc64le") != -1:
arch = "ppc64le"
+ def parse_sle_distribution(d):
+ sle_version = d[1].strip().rsplit(' ')[4]
+ if len(d[1].strip().rsplit(' ')) > 5:
+ sle_version = sle_version + '.' + d[1].strip().rsplit(' ')[5][2]
+ return ['VERSION', sle_version]
+
dclass = GenericDistro
if distribution:
if re.match(".*SUSE Linux Enterprise Server*", distribution[1]) or \
re.match(".*SUSE SLES*", distribution[1]):
dclass = SLESDistro
if distro_version is None:
- distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[4]]
+ distro_version = parse_sle_distribution(distribution)
elif re.match(".*SUSE Linux Enterprise Desktop*", distribution[1]):
dclass = SLEDDistro
if distro_version is None:
- distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[4]]
+ distro_version = parse_sle_distribution(distribution)
elif re.match(".*Open Enterprise Server*", distribution[1]):
dclass = SLESDistro
if distro_version is None:

View File

@ -1,32 +0,0 @@
References: bsc#964407
Problem in the SUSE specific parsing code due to the non-standard way of
defining the media in the SUSE content file.
While we are here, also fix tumbleweed detection. You need an updated libosinfo
that contains a definition for tumbleweed.
Index: virt-manager-1.3.2/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/urlfetcher.py
+++ virt-manager-1.3.2/virtinst/urlfetcher.py
@@ -464,9 +464,6 @@ def _distroFromSUSEContent(fetcher, arch
dclass = OpensuseDistro
if distro_version is None:
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
@@ -1018,7 +1015,11 @@ class SuseDistro(Distro):
if sp_version:
self.os_variant += sp_version
else:
- self.os_variant += distro_version
+ # Tumbleweed 8 digit date
+ if len(version) == 8:
+ self.os_variant += "tumbleweed"
+ else:
+ self.os_variant += distro_version
else:
self.os_variant += "9"

View File

@ -3,11 +3,11 @@ Enhancement for the following GUI wizard installation options.
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.3.0/virtManager/create.py
Index: virt-manager-1.4.0/virtManager/create.py
===================================================================
--- virt-manager-1.3.0.orig/virtManager/create.py
+++ virt-manager-1.3.0/virtManager/create.py
@@ -371,7 +371,19 @@ class vmmCreate(vmmGObjectUI):
--- virt-manager-1.4.0.orig/virtManager/create.py
+++ virt-manager-1.4.0/virtManager/create.py
@@ -376,7 +376,19 @@ class vmmCreate(vmmGObjectUI):
self.widget("method-local").set_active(True)
self.widget("create-conn").set_active(-1)
activeconn = self._populate_conn_list(urihint)
@ -28,10 +28,10 @@ Index: virt-manager-1.3.0/virtManager/create.py
if self._set_conn(activeconn) is False:
return False
Index: virt-manager-1.3.0/virtManager/netlist.py
Index: virt-manager-1.4.0/virtManager/netlist.py
===================================================================
--- virt-manager-1.3.0.orig/virtManager/netlist.py
+++ virt-manager-1.3.0/virtManager/netlist.py
--- virt-manager-1.4.0.orig/virtManager/netlist.py
+++ virt-manager-1.4.0/virtManager/netlist.py
@@ -167,9 +167,19 @@ class vmmNetworkList(vmmGObjectUI):
return rows, vnet_bridges, default_label

View File

@ -5,10 +5,10 @@ A fix for accessing nfs mounted media. A comment in the code states,
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.3.2/virtinst/util.py
Index: virt-manager-1.4.0/virtinst/util.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/util.py
+++ virt-manager-1.3.2/virtinst/util.py
--- virt-manager-1.4.0.orig/virtinst/util.py
+++ virt-manager-1.4.0/virtinst/util.py
@@ -552,3 +552,22 @@ def getInstallRepos(enabled_sources_only
return (index_dom0, zypper_output)
@ -32,11 +32,11 @@ Index: virt-manager-1.3.2/virtinst/util.py
+
+ return url
+
Index: virt-manager-1.3.2/virtinst/distroinstaller.py
Index: virt-manager-1.4.0/virtinst/distroinstaller.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/distroinstaller.py
+++ virt-manager-1.3.2/virtinst/distroinstaller.py
@@ -49,6 +49,8 @@ def _sanitize_url(url):
--- virt-manager-1.4.0.orig/virtinst/distroinstaller.py
+++ virt-manager-1.4.0/virtinst/distroinstaller.py
@@ -44,6 +44,8 @@ def _sanitize_url(url):
"""
Do nothing for http or ftp, but make sure nfs is in the expected format
"""
@ -45,19 +45,19 @@ Index: virt-manager-1.3.2/virtinst/distroinstaller.py
if url.startswith("nfs://"):
# Convert RFC compliant NFS nfs://server/path/to/distro
# to what mount/anaconda expect nfs:server:/path/to/distro
Index: virt-manager-1.3.2/virtinst/urlfetcher.py
Index: virt-manager-1.4.0/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/urlfetcher.py
+++ virt-manager-1.3.2/virtinst/urlfetcher.py
@@ -33,6 +33,7 @@ import urllib2
import urlparse
--- virt-manager-1.4.0.orig/virtinst/urlfetcher.py
+++ virt-manager-1.4.0/virtinst/urlfetcher.py
@@ -34,6 +34,7 @@ import urlparse
import requests
from .osdict import OSDB
+from virtinst import util
#########################################################################
@@ -298,7 +299,8 @@ class _MountedURLFetcher(_LocalURLFetche
@@ -301,7 +302,8 @@ class _MountedURLFetcher(_LocalURLFetche
logging.debug("Preparing mount at " + self._srcdir)
if self.location.startswith("nfs:"):

View File

@ -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.2/virtinst/guest.py
Index: virt-manager-1.4.0/virtinst/guest.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/guest.py
+++ virt-manager-1.3.2/virtinst/guest.py
@@ -365,8 +365,20 @@ class Guest(XMLBuilder):
--- virt-manager-1.4.0.orig/virtinst/guest.py
+++ virt-manager-1.4.0/virtinst/guest.py
@@ -362,8 +362,20 @@ class Guest(XMLBuilder):
if (not install and
self.os.is_xenpv() and
not self.os.kernel):
@ -29,10 +29,10 @@ Index: virt-manager-1.3.2/virtinst/guest.py
return self.get_xml_config()
Index: virt-manager-1.3.2/virtinst/installer.py
Index: virt-manager-1.4.0/virtinst/installer.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/installer.py
+++ virt-manager-1.3.2/virtinst/installer.py
--- virt-manager-1.4.0.orig/virtinst/installer.py
+++ virt-manager-1.4.0/virtinst/installer.py
@@ -99,7 +99,7 @@ class Installer(object):
break
return bootorder

View File

@ -1,9 +1,9 @@
Reference: bnc#869024
Disable graphics on s390x
Index: virt-manager-1.3.2/virtinst/guest.py
Index: virt-manager-1.4.0/virtinst/guest.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/guest.py
+++ virt-manager-1.3.2/virtinst/guest.py
--- virt-manager-1.4.0.orig/virtinst/guest.py
+++ virt-manager-1.4.0/virtinst/guest.py
@@ -123,7 +123,10 @@ class Guest(XMLBuilder):
self.skip_default_channel = False
self.skip_default_sound = False
@ -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
@@ -663,7 +666,7 @@ class Guest(XMLBuilder):
@@ -605,7 +608,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
@@ -701,6 +704,8 @@ class Guest(XMLBuilder):
@@ -643,6 +646,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:
@@ -709,7 +714,7 @@ class Guest(XMLBuilder):
@@ -651,7 +656,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))
@@ -1035,7 +1040,7 @@ class Guest(XMLBuilder):
@@ -979,7 +984,7 @@ class Guest(XMLBuilder):
if self._hv_only_supports_virtio():
return True

View File

@ -1,9 +1,9 @@
Set cache mode for target installation disk to unsafe for better
performance.
Index: virt-manager-1.3.2/virtinst/guest.py
Index: virt-manager-1.4.0/virtinst/guest.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/guest.py
+++ virt-manager-1.3.2/virtinst/guest.py
--- virt-manager-1.4.0.orig/virtinst/guest.py
+++ virt-manager-1.4.0/virtinst/guest.py
@@ -53,6 +53,7 @@ from .osxml import OSXML
from .pm import PM
from .seclabel import Seclabel
@ -12,7 +12,7 @@ Index: virt-manager-1.3.2/virtinst/guest.py
class Guest(XMLBuilder):
@@ -361,6 +362,17 @@ class Guest(XMLBuilder):
@@ -358,6 +359,17 @@ class Guest(XMLBuilder):
self._set_osxml_defaults()
@ -30,7 +30,7 @@ Index: virt-manager-1.3.2/virtinst/guest.py
self.bootloader = None
if (not install and
self.os.is_xenpv() and
@@ -380,7 +392,10 @@ class Guest(XMLBuilder):
@@ -377,7 +389,10 @@ class Guest(XMLBuilder):
self.bootloader = "/usr/bin/pygrub"
self.os.clear()

View File

@ -1,11 +1,11 @@
Use the correct qemu emulator based on the architecture.
We want to get away from using the old qemu-dm emulator
for Xen HVM guests so default to qemu-system-i386.
Index: virt-manager-1.3.2/virtinst/guest.py
Index: virt-manager-1.4.0/virtinst/guest.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/guest.py
+++ virt-manager-1.3.2/virtinst/guest.py
@@ -850,14 +850,11 @@ class Guest(XMLBuilder):
--- virt-manager-1.4.0.orig/virtinst/guest.py
+++ virt-manager-1.4.0/virtinst/guest.py
@@ -792,14 +792,11 @@ class Guest(XMLBuilder):
self.emulator = None
return

View File

@ -1,9 +1,9 @@
Enhancement to add ocfs2 as a supported FS type
Index: virt-manager-1.3.0/virtinst/storage.py
Index: virt-manager-1.4.0/virtinst/storage.py
===================================================================
--- virt-manager-1.3.0.orig/virtinst/storage.py
+++ virt-manager-1.3.0/virtinst/storage.py
@@ -448,7 +448,7 @@ class StoragePool(_StorageObject):
--- virt-manager-1.4.0.orig/virtinst/storage.py
+++ virt-manager-1.4.0/virtinst/storage.py
@@ -459,7 +459,7 @@ class StoragePool(_StorageObject):
def list_formats(self):
if self.type == self.TYPE_FS:
return ["auto", "ext2", "ext3", "ext4", "ufs", "iso9660", "udf",

View File

@ -4,11 +4,11 @@ a non pae version. The sles10 sp4 32bit kernel will only boot para-
virtualized if the pae kernel is selected.
Note that sles12 and newer has no 32bit release.
Index: virt-manager-1.3.2/virtinst/urlfetcher.py
Index: virt-manager-1.4.0/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/urlfetcher.py
+++ virt-manager-1.3.2/virtinst/urlfetcher.py
@@ -999,8 +999,12 @@ class SuseDistro(Distro):
--- virt-manager-1.4.0.orig/virtinst/urlfetcher.py
+++ virt-manager-1.4.0/virtinst/urlfetcher.py
@@ -1012,8 +1012,12 @@ class SuseDistro(Distro):
"boot/%s/initrd" % self.arch))
# Matches Opensuse > 10.2 and sles 10

View File

@ -4,13 +4,13 @@ issue on btrfs.
Signed-off-by: Chunyan Liu <cyliu@suse.com>
Index: virt-manager-1.3.2/virtinst/storage.py
Index: virt-manager-1.4.0/virtinst/storage.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/storage.py
+++ virt-manager-1.3.2/virtinst/storage.py
@@ -716,6 +716,12 @@ class StorageVolume(_StorageObject):
lazy_refcounts = XMLProperty("./target/features/lazy_refcounts",
is_bool=True, default_cb=_lazy_refcounts_default_cb)
--- virt-manager-1.4.0.orig/virtinst/storage.py
+++ virt-manager-1.4.0/virtinst/storage.py
@@ -707,6 +707,12 @@ class StorageVolume(_StorageObject):
return self.TYPE_FILE
file_type = property(_get_vol_type)
+ def _nocow_default_cb(self):
+ return self.conn.check_support(
@ -19,18 +19,18 @@ Index: virt-manager-1.3.2/virtinst/storage.py
+ is_bool=True, default_cb=_nocow_default_cb)
+
######################
# Public API helpers #
Index: virt-manager-1.3.2/virtinst/support.py
##################
# XML properties #
Index: virt-manager-1.4.0/virtinst/support.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/support.py
+++ virt-manager-1.3.2/virtinst/support.py
@@ -314,6 +314,8 @@ SUPPORT_CONN_VCPU_PLACEMENT = _make(
SUPPORT_CONN_MEM_STATS_PERIOD = _make(
function="virDomain.setMemoryStatsPeriod",
version="1.1.1", hv_version={"qemu": 0})
--- virt-manager-1.4.0.orig/virtinst/support.py
+++ virt-manager-1.4.0/virtinst/support.py
@@ -316,6 +316,8 @@ SUPPORT_CONN_SPICE_GL = _make(version="1
SUPPORT_CONN_VIDEO_VIRTIO_ACCEL3D = _make(version="1.3.0",
hv_version={"qemu": "2.7.0", "test": 0})
SUPPORT_CONN_GRAPHICS_LISTEN_NONE = _make(version="2.0.0")
+SUPPORT_CONN_NOCOW = _make(
+ version="1.2.18", hv_version={"qemu": "2.2.0", "test": 0})
# This is for disk <driver name=qemu>. xen supports this, but it's
# limited to arbitrary new enough xen, since I know libxl can handle it

View File

@ -2,11 +2,11 @@ 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.3.2/virtinst/devicedisk.py
Index: virt-manager-1.4.0/virtinst/devicedisk.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/devicedisk.py
+++ virt-manager-1.3.2/virtinst/devicedisk.py
@@ -557,6 +557,10 @@ class VirtualDisk(VirtualDevice):
--- virt-manager-1.4.0.orig/virtinst/devicedisk.py
+++ virt-manager-1.4.0/virtinst/devicedisk.py
@@ -568,6 +568,10 @@ class VirtualDisk(VirtualDevice):
http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html
"""
if self.driver_name != self.DRIVER_NAME_QEMU:

View File

@ -6,11 +6,11 @@ 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.3.2/virtinst/devicedisk.py
Index: virt-manager-1.4.0/virtinst/devicedisk.py
===================================================================
--- virt-manager-1.3.2.orig/virtinst/devicedisk.py
+++ virt-manager-1.3.2/virtinst/devicedisk.py
@@ -978,6 +978,17 @@ class VirtualDisk(VirtualDevice):
--- virt-manager-1.4.0.orig/virtinst/devicedisk.py
+++ virt-manager-1.4.0/virtinst/devicedisk.py
@@ -993,6 +993,17 @@ class VirtualDisk(VirtualDevice):
@rtype C{str}
"""
prefix, maxnode = self.get_target_prefix(skip_targets)
@ -28,7 +28,7 @@ Index: virt-manager-1.3.2/virtinst/devicedisk.py
skip_targets = [t for t in skip_targets if t and t.startswith(prefix)]
skip_targets.sort()
@@ -991,7 +1002,12 @@ class VirtualDisk(VirtualDevice):
@@ -1006,7 +1017,12 @@ class VirtualDisk(VirtualDevice):
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
for i in ran:

View File

@ -1,11 +1,11 @@
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.3.0/virtManager/create.py
Index: virt-manager-1.4.0/virtManager/create.py
===================================================================
--- virt-manager-1.3.0.orig/virtManager/create.py
+++ virt-manager-1.3.0/virtManager/create.py
@@ -775,11 +775,6 @@ class vmmCreate(vmmGObjectUI):
--- virt-manager-1.4.0.orig/virtManager/create.py
+++ virt-manager-1.4.0/virtManager/create.py
@@ -780,11 +780,6 @@ class vmmCreate(vmmGObjectUI):
for guest in self.conn.caps.guests:
if guest.os_type == self._capsinfo.os_type:
archs.append(guest.arch)

View File

@ -6,11 +6,11 @@ Steps to get a KVM VM in the crashed state:
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.3.2/virtManager/manager.py
Index: virt-manager-1.4.0/virtManager/manager.py
===================================================================
--- virt-manager-1.3.2.orig/virtManager/manager.py
+++ virt-manager-1.3.2/virtManager/manager.py
@@ -854,7 +854,7 @@ class vmmManager(vmmGObjectUI):
--- virt-manager-1.4.0.orig/virtManager/manager.py
+++ virt-manager-1.4.0/virtManager/manager.py
@@ -839,7 +839,7 @@ class vmmManager(vmmGObjectUI):
show_pause = bool(vm and vm.is_unpauseable())
else:
show_pause = bool(vm and vm.is_pauseable())
@ -19,10 +19,10 @@ Index: virt-manager-1.3.2/virtManager/manager.py
if vm and vm.managedsave_supported:
self.change_run_text(vm.has_managed_save())
Index: virt-manager-1.3.2/virtManager/vmmenu.py
Index: virt-manager-1.4.0/virtManager/vmmenu.py
===================================================================
--- virt-manager-1.3.2.orig/virtManager/vmmenu.py
+++ virt-manager-1.3.2/virtManager/vmmenu.py
--- virt-manager-1.4.0.orig/virtManager/vmmenu.py
+++ virt-manager-1.4.0/virtManager/vmmenu.py
@@ -31,6 +31,7 @@ class _VMMenu(Gtk.Menu):
self._parent = src
self._current_vm_cb = current_vm_cb

View File

@ -1,15 +1,15 @@
References: bnc#907958
Sanity check for those who forget '-X' on ssh and try to start virt-manager
Index: virt-manager-1.3.0/virt-manager
Index: virt-manager-1.4.0/virt-manager
===================================================================
--- virt-manager-1.3.0.orig/virt-manager
+++ virt-manager-1.3.0/virt-manager
@@ -171,8 +171,11 @@ def main():
from gi.repository import Gtk
leftovers = sys.argv[1:]
--- virt-manager-1.4.0.orig/virt-manager
+++ virt-manager-1.4.0/virt-manager
@@ -79,8 +79,11 @@ def _import_gtk(leftovers):
print "gtk3 3.14.0 or later is required."
sys.exit(1)
- # This will error if Gtk wasn't correctly initialized
- Gtk.Window()
- Gtk.init()
+ if os.environ.has_key('DISPLAY') and os.environ['DISPLAY']:
+ # This will error if Gtk wasn't correctly initialized
+ Gtk.Window()

View File

@ -1,9 +1,9 @@
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.3.0/virtManager/create.py
Index: virt-manager-1.4.0/virtManager/create.py
===================================================================
--- virt-manager-1.3.0.orig/virtManager/create.py
+++ virt-manager-1.3.0/virtManager/create.py
--- virt-manager-1.4.0.orig/virtManager/create.py
+++ virt-manager-1.4.0/virtManager/create.py
@@ -21,6 +21,8 @@
import logging
import threading
@ -13,7 +13,7 @@ Index: virt-manager-1.3.0/virtManager/create.py
from gi.repository import GObject
from gi.repository import Gtk
@@ -963,7 +965,7 @@ class vmmCreate(vmmGObjectUI):
@@ -968,7 +970,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,
@ -22,7 +22,7 @@ Index: virt-manager-1.3.0/virtManager/create.py
for v in variants:
supported = v in supportl or v.name == "generic"
@@ -1320,6 +1322,53 @@ class vmmCreate(vmmGObjectUI):
@@ -1324,6 +1326,53 @@ class vmmCreate(vmmGObjectUI):
def _cdrom_changed(self, src):
self._detectable_media_widget_changed(src)
@ -76,7 +76,7 @@ Index: virt-manager-1.3.0/virtManager/create.py
def _toggle_detect_os(self, src):
dodetect = src.get_active()
@@ -1332,6 +1381,8 @@ class vmmCreate(vmmGObjectUI):
@@ -1336,6 +1385,8 @@ class vmmCreate(vmmGObjectUI):
self.widget("install-os-version-entry").set_text("")
self._os_already_detected_for_media = False
self._start_detect_os_if_needed()

View File

@ -1,9 +1,9 @@
Enhancement to default to PV instead of HVM on Xen host.
Index: virt-manager-1.3.0/virtManager/create.py
Index: virt-manager-1.4.0/virtManager/create.py
===================================================================
--- virt-manager-1.3.0.orig/virtManager/create.py
+++ virt-manager-1.3.0/virtManager/create.py
@@ -685,7 +685,12 @@ class vmmCreate(vmmGObjectUI):
--- virt-manager-1.4.0.orig/virtManager/create.py
+++ virt-manager-1.4.0/virtManager/create.py
@@ -690,7 +690,12 @@ class vmmCreate(vmmGObjectUI):
if gtype is None:
# If none specified, prefer HVM so install options aren't limited
# with a default PV choice.

View File

@ -1,14 +1,14 @@
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.3.0/virtManager/delete.py
Index: virt-manager-1.4.0/virtManager/delete.py
===================================================================
--- virt-manager-1.3.0.orig/virtManager/delete.py
+++ virt-manager-1.3.0/virtManager/delete.py
@@ -242,7 +242,7 @@ def populate_storage_list(storage_list,
diskdata.append(("dtb", vm.get_xmlobj().os.dtb, True, False))
--- virt-manager-1.4.0.orig/virtManager/delete.py
+++ virt-manager-1.4.0/virtManager/delete.py
@@ -243,7 +243,7 @@ def populate_storage_list(storage_list,
diskdata.append(("dtb", vm.get_xmlobj().os.dtb, True, False, True))
for target, path, ro, shared in diskdata:
for target, path, ro, shared, is_media in diskdata:
- if not path:
+ if not path or path == "/usr/lib/grub2/x86_64-xen/grub.xen":
continue

View File

@ -0,0 +1,25 @@
Creates a problem for gobject-introspection identifying what
version of vte is really allowed. Vte 2.91 is installed on the
host but the RPM is built requiring 2.90.
--- virt-manager-1.4.0/virtManager/serialcon.py.orig 2016-06-21 15:35:45.109272839 -0600
+++ virt-manager-1.4.0/virtManager/serialcon.py 2016-06-21 15:35:56.637272738 -0600
@@ -32,12 +32,12 @@ from gi.repository import Gtk
# We can use either 2.91 or 2.90. This is just to silence runtime warnings
# pylint: disable=wrong-import-position
-try:
- gi.require_version("Vte", "2.91")
- logging.debug("Using VTE API 2.91")
-except ValueError:
- gi.require_version("Vte", "2.90")
- logging.debug("Using VTE API 2.90")
+#try:
+# gi.require_version("Vte", "2.91")
+# logging.debug("Using VTE API 2.91")
+#except ValueError:
+# gi.require_version("Vte", "2.90")
+# logging.debug("Using VTE API 2.90")
from gi.repository import Vte
import libvirt

View File

@ -2,11 +2,11 @@ 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.3.0/virtManager/connection.py
Index: virt-manager-1.4.0/virtManager/connection.py
===================================================================
--- virt-manager-1.3.0.orig/virtManager/connection.py
+++ virt-manager-1.3.0/virtManager/connection.py
@@ -945,7 +945,7 @@ class vmmConnection(vmmGObject):
--- virt-manager-1.4.0.orig/virtManager/connection.py
+++ virt-manager-1.4.0/virtManager/connection.py
@@ -947,7 +947,7 @@ class vmmConnection(vmmGObject):
self.caps.get_cpu_values("x86_64")
try:

View File

@ -1,9 +1,9 @@
Enhancement adding Send Keys for mostly NetWare and also Windows
Index: virt-manager-1.3.0/virtManager/console.py
Index: virt-manager-1.4.0/virtManager/console.py
===================================================================
--- virt-manager-1.3.0.orig/virtManager/console.py
+++ virt-manager-1.3.0/virtManager/console.py
@@ -141,6 +141,16 @@ class vmmConsolePages(vmmGObjectUI):
--- virt-manager-1.4.0.orig/virtManager/console.py
+++ virt-manager-1.4.0/virtManager/console.py
@@ -218,6 +218,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())

View File

@ -4,11 +4,11 @@ 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.3.2/setup.py
Index: virt-manager-1.4.0/setup.py
===================================================================
--- virt-manager-1.3.2.orig/setup.py
+++ virt-manager-1.3.2/setup.py
@@ -299,8 +299,11 @@ class configure(distutils.core.Command):
--- virt-manager-1.4.0.orig/setup.py
+++ virt-manager-1.4.0/setup.py
@@ -308,8 +308,11 @@ class configure(distutils.core.Command):
("prefix=", None, "installation prefix"),
("qemu-user=", None,
"user libvirt uses to launch qemu processes (default=root)"),
@ -22,7 +22,7 @@ Index: virt-manager-1.3.2/setup.py
"first run. comma separated string (default=none)"),
("kvm-package-names=", None,
"recommended kvm packages virt-manager will check for on first run "
@@ -326,7 +329,8 @@ class configure(distutils.core.Command):
@@ -335,7 +338,8 @@ class configure(distutils.core.Command):
def initialize_options(self):
self.prefix = sysprefix
self.qemu_user = None
@ -32,7 +32,7 @@ Index: virt-manager-1.3.2/setup.py
self.kvm_package_names = None
self.askpass_package_names = None
self.preferred_distros = None
@@ -341,8 +345,10 @@ class configure(distutils.core.Command):
@@ -350,8 +354,10 @@ class configure(distutils.core.Command):
template += "prefix = %s\n" % self.prefix
if self.qemu_user is not None:
template += "default_qemu_user = %s\n" % self.qemu_user
@ -45,10 +45,10 @@ Index: virt-manager-1.3.2/setup.py
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.3.2/virtcli/cliconfig.py
Index: virt-manager-1.4.0/virtcli/cliconfig.py
===================================================================
--- virt-manager-1.3.2.orig/virtcli/cliconfig.py
+++ virt-manager-1.3.2/virtcli/cliconfig.py
--- virt-manager-1.4.0.orig/virtcli/cliconfig.py
+++ virt-manager-1.4.0/virtcli/cliconfig.py
@@ -83,7 +83,8 @@ class _CLIConfig(object):
_get_param("preferred_distros", ""))
self.hv_packages = _split_list(_get_param("hv_packages", ""))
@ -59,10 +59,10 @@ Index: virt-manager-1.3.2/virtcli/cliconfig.py
self.default_graphics = _get_param("default_graphics", "spice")
self.default_hvs = _split_list(_get_param("default_hvs", ""))
Index: virt-manager-1.3.2/virtManager/config.py
Index: virt-manager-1.4.0/virtManager/config.py
===================================================================
--- virt-manager-1.3.2.orig/virtManager/config.py
+++ virt-manager-1.3.2/virtManager/config.py
--- virt-manager-1.4.0.orig/virtManager/config.py
+++ virt-manager-1.4.0/virtManager/config.py
@@ -172,7 +172,8 @@ class vmmConfig(object):
self.default_qemu_user = CLIConfig.default_qemu_user
self.preferred_distros = CLIConfig.preferred_distros
@ -73,10 +73,10 @@ Index: virt-manager-1.3.2/virtManager/config.py
self.askpass_package = CLIConfig.askpass_package
self.default_graphics_from_config = CLIConfig.default_graphics
self.default_hvs = CLIConfig.default_hvs
Index: virt-manager-1.3.2/virtManager/engine.py
Index: virt-manager-1.4.0/virtManager/engine.py
===================================================================
--- virt-manager-1.3.2.orig/virtManager/engine.py
+++ virt-manager-1.3.2/virtManager/engine.py
--- virt-manager-1.4.0.orig/virtManager/engine.py
+++ virt-manager-1.4.0/virtManager/engine.py
@@ -226,21 +226,18 @@ class vmmEngine(vmmGObject):
ret = None

View File

@ -3,14 +3,14 @@ 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.3.2/virtManager/details.py
Index: virt-manager-1.4.0/virtManager/details.py
===================================================================
--- virt-manager-1.3.2.orig/virtManager/details.py
+++ virt-manager-1.3.2/virtManager/details.py
@@ -1416,6 +1416,9 @@ class vmmDetails(vmmGObjectUI):
self.widget("details-menu-usb-redirection").set_sensitive(can_usb)
--- virt-manager-1.4.0.orig/virtManager/details.py
+++ virt-manager-1.4.0/virtManager/details.py
@@ -1418,6 +1418,9 @@ class vmmDetails(vmmGObjectUI):
def control_vm_run(self, src_ignore):
if self.has_unapplied_changes(self.get_hw_row()):
return
+ # De-sensitize widget so a double click on the icon won't attempt to
+ # start the VM twice
+ self.widget("control-run").set_sensitive(False)

View File

@ -2,11 +2,11 @@ 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 creating a VM.
Index: virt-manager-1.3.0/virtManager/create.py
Index: virt-manager-1.4.0/virtManager/create.py
===================================================================
--- virt-manager-1.3.0.orig/virtManager/create.py
+++ virt-manager-1.3.0/virtManager/create.py
@@ -398,7 +398,13 @@ class vmmCreate(vmmGObjectUI):
--- virt-manager-1.4.0.orig/virtManager/create.py
+++ virt-manager-1.4.0/virtManager/create.py
@@ -403,7 +403,13 @@ class vmmCreate(vmmGObjectUI):
self.widget("install-url-entry").set_text("")
self.widget("install-url-options").set_expanded(False)
urlmodel = self.widget("install-url-combo").get_model()
@ -21,10 +21,10 @@ Index: virt-manager-1.3.0/virtManager/create.py
self._set_distro_labels("-", "-")
# Install import
Index: virt-manager-1.3.0/virtinst/util.py
Index: virt-manager-1.4.0/virtinst/util.py
===================================================================
--- virt-manager-1.3.0.orig/virtinst/util.py
+++ virt-manager-1.3.0/virtinst/util.py
--- virt-manager-1.4.0.orig/virtinst/util.py
+++ virt-manager-1.4.0/virtinst/util.py
@@ -24,9 +24,12 @@ import random
import re
import stat