- Update to virt-manager 2.2.1 (fate#326786)

virt-manager-2.2.1.tar.bz2
  * CVE-2019-10183: Replace –unattended user-password and admin-password with user-password-file and admin-password-file (Fabiano Fidêncio)
  * Consistent –memballoon default across non-x86 (Andrea Bolognani)
  * virt-install: add –numatune memnode.* (Athina Plaskasoviti)
  * Drop hard dep on gtksourceview4, gtksourceview3 is fine as well
- Drop patches no longer needed
  033e9702-xmleditor-Handle-gtksourceview3-as-well-as-gtksourceview4.patch
  51d28f04-unattended-Dont-log-user-admin-passwords.patch
  5312a961-virt-install-Revive-wait-0-as-alias-for-noautoconsole.patch
  58c68764-unattended-Read-the-passwords-from-a-file.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=477
This commit is contained in:
Charles Arnold 2019-07-05 16:18:33 +00:00 committed by Git OBS Bridge
parent 1a980429d2
commit d8b1788c9f
13 changed files with 58 additions and 398 deletions

View File

@ -1,36 +0,0 @@
Subject: xmleditor: Handle gtksourceview3 as well as gtksourceview4
From: Cole Robinson crobinso@redhat.com Tue Jun 18 09:46:05 2019 -0400
Date: Tue Jun 18 09:54:58 2019 -0400:
Git: 033e97021e6654c9859776dedd9cd0504973f1d6
API differences don't seem to affect our usage
Subject: xmleditor: Fix the gtksource version checking
From: Cole Robinson crobinso@redhat.com Tue Jun 18 10:39:15 2019 -0400
Date: Tue Jun 18 10:50:49 2019 -0400:
Git: 267f226134afb9dfef9091e3da5647441aebabbf
Previous commit was incomplete
--- virt-manager-2.2.0/virtManager/xmleditor.py.orig 2019-06-18 15:40:59.439412915 -0600
+++ virt-manager-2.2.0/virtManager/xmleditor.py 2019-06-18 15:41:15.374797732 -0600
@@ -1,9 +1,18 @@
# This work is licensed under the GNU GPLv2 or later.
# See the COPYING file in the top-level directory.
+# pylint: disable=wrong-import-order,ungrouped-imports
import gi
-gi.require_version('GtkSource', '4')
+from virtinst import log
+
+# We can use either gtksourceview3 or gtksourceview4
+try:
+ gi.require_version("GtkSource", "4")
+ log.debug("Using GtkSource 4")
+except ValueError:
+ gi.require_version("GtkSource", "3.0")
+ log.debug("Using GtkSource 3.0")
from gi.repository import GtkSource
from .lib import uiutil

View File

@ -1,70 +0,0 @@
Subject: unattended: Don't log user & admin passwords
From: Fabiano Fidêncio fidencio@redhat.com Wed Jul 3 16:01:29 2019 +0200
Date: Wed Jul 3 13:25:26 2019 -0400:
Git: 51d28f042bcc746444ff017349c1f4cb1301bea5
Logging user & admin passwords in the command-line is a security issue,
let's avoid doing so by:
- Not printing the values set by the user when setting up the
install-script config file;
- Removing the values used in the install-scripts, when printing their
content;
'CVE-2019-10183' has been assigned to the virt-install --unattended
admin-password=xxx disclosure issue.
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
diff --git a/virtinst/install/unattended.py b/virtinst/install/unattended.py
index b01c4d6c..d7ff59a2 100644
--- a/virtinst/install/unattended.py
+++ b/virtinst/install/unattended.py
@@ -97,8 +97,6 @@ def _make_installconfig(script, osobj, unattended_data, arch, hostname, url):
log.debug("InstallScriptConfig created with the following params:")
log.debug("username: %s", config.get_user_login())
log.debug("realname: %s", config.get_user_realname())
- log.debug("user password: %s", config.get_user_password())
- log.debug("admin password: %s", config.get_admin_password())
log.debug("target disk: %s", config.get_target_disk())
log.debug("hardware arch: %s", config.get_hardware_arch())
log.debug("hostname: %s", config.get_hostname())
@@ -187,6 +185,26 @@ class OSInstallScript:
return self._script.generate_command_line(
self._osobj.get_handle(), self._config)
+ def _generate_debug(self):
+ config = Libosinfo.InstallConfig()
+
+ config.set_user_login(self._config.get_user_login())
+ config.set_user_realname(self._config.get_user_realname())
+ config.set_user_password("[SCRUBBLED]")
+ config.set_admin_password("[SCRUBBLED]")
+ config.set_target_disk(self._config.get_target_disk())
+ config.set_hardware_arch(self._config.get_hardware_arch())
+ config.set_hostname(self._config.get_hostname())
+ config.set_l10n_timezone(self._config.get_l10n_timezone())
+ config.set_l10n_language(self._config.get_l10n_language())
+ config.set_l10n_keyboard(self._config.get_l10n_keyboard())
+ if self._config.get_installation_url(): # pylint: disable=no-member
+ config.set_installation_url(self._config.get_installation_url()) # pylint: disable=no-member
+ if self._config.get_reg_product_key():
+ config.set_reg_product_key(self._config.get_reg_product_key())
+
+ return self._script.generate(self._osobj.get_handle(), config)
+
def write(self):
fileobj = tempfile.NamedTemporaryFile(
prefix="virtinst-unattended-script", delete=False)
@@ -195,8 +213,10 @@ class OSInstallScript:
content = self.generate()
open(scriptpath, "w").write(content)
+ debug_content = self._generate_debug()
+
log.debug("Generated unattended script: %s", scriptpath)
- log.debug("Generated script contents:\n%s", content)
+ log.debug("Generated script contents:\n%s", debug_content)
return scriptpath

View File

@ -1,54 +0,0 @@
Subject: virt-install: Revive --wait 0 as alias for --noautoconsole
From: Cole Robinson crobinso@redhat.com Tue Jul 2 15:39:51 2019 -0400
Date: Wed Jul 3 13:12:19 2019 -0400:
Git: 5312a9611b61801d4a62d1959e65cf8d50c38eb1
This was the behavior prior to last release, and we received
a bug report about it. Revive it, but warn about the recommended way
to do it
https://bugzilla.redhat.com/show_bug.cgi?id=1724287
Index: virt-manager-2.2.0/tests/clitest.py
===================================================================
--- virt-manager-2.2.0.orig/tests/clitest.py
+++ virt-manager-2.2.0/tests/clitest.py
@@ -841,10 +841,10 @@ c.add_valid("--hvm --install no_install=
c.add_valid("--hvm --import --prompt --force") # Working scenario w/ prompt shouldn't ask anything
c.add_valid("--paravirt --import") # PV Import install
c.add_valid("--paravirt --print-xml 1") # print single XML, implied import install
+c.add_valid("--hvm --import --wait 0", grep="Treating --wait 0 as --noautoconsole") # --wait 0 is the same as --noautoconsole
c.add_compare("-c %(EXISTIMG2)s --os-variant win2k3 --vcpus cores=4 --controller usb,model=none", "w2k3-cdrom") # HVM windows install with disk
c.add_compare("--connect %(URI-KVM)s --install fedora26 --disk size=20", "osinfo-url-with-disk") # filling in defaults, but with disk specified
c.add_invalid("--hvm --import --wait 2", grep="exceeded specified time limit") # --wait positive number, but test suite hack
-c.add_invalid("--hvm --import --wait 0", grep="exceeded specified time limit") # --wait 0, but test suite hack
c.add_invalid("--hvm --import --wait -1", grep="exceeded specified time limit") # --wait -1, but test suite hack
c.add_invalid("--hvm --import --wait", grep="exceeded specified time limit") # --wait aka --wait -1, but test suite hack
c.add_invalid("--connect test:///default --name foo --ram 64 --disk none --sdl --hvm --import", use_default_args=False, grep="exceeded specified time limit") # --sdl doesn't have a console callback, triggers implicit --wait -1
Index: virt-manager-2.2.0/virt-install
===================================================================
--- virt-manager-2.2.0.orig/virt-install
+++ virt-manager-2.2.0/virt-install
@@ -258,6 +258,14 @@ def convert_old_features(options):
options.features = [",".join(opts)]
+def convert_wait_zero(options):
+ # Historical back compat, --wait 0 is identical to --noautoconsole
+ if options.wait == 0:
+ log.warning("Treating --wait 0 as --noautoconsole")
+ options.autoconsole = False
+ options.wait = None
+
+
##################################
# Install media setup/validation #
##################################
@@ -972,6 +980,7 @@ def main(conn=None):
convert_old_features(options)
convert_old_cpuset(options)
convert_old_init(options)
+ convert_wait_zero(options)
set_test_stub_options(options)
convert_old_os_options(options)

View File

@ -1,187 +0,0 @@
Subject: unattended: Read the passwords from a file
From: Fabiano Fidêncio fidencio@redhat.com Wed Jul 3 16:01:28 2019 +0200
Date: Wed Jul 3 13:25:26 2019 -0400:
Git: 58c68764505acd3eedae6d72e6a15493a18029db
Let's not expose the user/root password in the CLI and, instead, let's
rely on a file passed by the admin and read the password from there.
'CVE-2019-10183' has been assigned to the virt-install --unattended
admin-password=xxx disclosure issue.
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Index: virt-manager-2.2.0/man/virt-install.pod
===================================================================
--- virt-manager-2.2.0.orig/man/virt-install.pod
+++ virt-manager-2.2.0/man/virt-install.pod
@@ -612,13 +612,23 @@ Choose which libosinfo unattended profil
a 'desktop' and a 'jeos' profile. virt-install will default to 'desktop'
if this is unspecified.
-=item B<admin-password=>
+=item B<admin-password-file=>
-Set the VM OS admin/root password
-
-=item B<user-password=>
-
-Set the VM user password. The username is your current host username
+A file used to set the VM OS admin/root password from. This option can
+be used either as "admin-password-file=/path/to/password-file" or as
+"admin-password-file=/dev/fd/n", being n the file descriptor of the
+password-file.
+Note that only the first line of the file will be considered, including
+any whitespace characters and excluding new-line.
+
+=item B<user-password-file=>
+
+A file used to set the VM user password. This option can be used either as
+"user-password-file=/path/to/password-file" or as
+"user-password-file=/dev/fd/n", being n the file descriptor of the
+password-file. The username is your current host username.
+Note that only the first line of the file will be considered, including
+any whitespace characters and excluding new-line.
=item B<product-key=>
Index: virt-manager-2.2.0/tests/cli-test-xml/admin-password.txt
===================================================================
--- /dev/null
+++ virt-manager-2.2.0/tests/cli-test-xml/admin-password.txt
@@ -0,0 +1 @@
+foobar
Index: virt-manager-2.2.0/tests/cli-test-xml/user-password.txt
===================================================================
--- /dev/null
+++ virt-manager-2.2.0/tests/cli-test-xml/user-password.txt
@@ -0,0 +1,3 @@
+blah
+
+
Index: virt-manager-2.2.0/tests/clitest.py
===================================================================
--- virt-manager-2.2.0.orig/tests/clitest.py
+++ virt-manager-2.2.0/tests/clitest.py
@@ -89,6 +89,8 @@ test_files = {
'ISO-F29-LIVE': iso_links[5],
'TREEDIR': "%s/fakefedoratree" % XMLDIR,
'COLLIDE': "/dev/default-pool/collidevol1.img",
+ 'ADMIN-PASSWORD-FILE': "%s/admin-password.txt" % XMLDIR,
+ 'USER-PASSWORD-FILE': "%s/user-password.txt" % XMLDIR,
}
@@ -871,22 +873,21 @@ c.add_valid("--connect %s --pxe --disk s
####################
c = vinst.add_category("unattended-install", "--connect %(URI-KVM)s --nographics --noautoconsole --disk none", prerun_check=no_osinfo_unattend_cb)
-c.add_compare("--install fedora26 --unattended profile=desktop,admin-password=foobar,user-password=blah,product-key=1234", "osinfo-url-unattended") # unattended install for fedora, using initrd injection
-c.add_compare("--cdrom %(ISO-WIN7)s --unattended profile=desktop,admin-password=foobar", "osinfo-win7-unattended") # unattended install for win7
-c.add_compare("--os-variant fedora26 --unattended profile=jeos,admin-password=123456 --location %(ISO-F26-NETINST)s", "osinfo-netinst-unattended") # triggering the special netinst checking code
+c.add_compare("--install fedora26 --unattended profile=desktop,admin-password-file=%(ADMIN-PASSWORD-FILE)s,user-password-file=%(USER-PASSWORD-FILE)s,product-key=1234", "osinfo-url-unattended") # unattended install for fedora, using initrd injection
+c.add_compare("--cdrom %(ISO-WIN7)s --unattended profile=desktop,admin-password-file=%(ADMIN-PASSWORD-FILE)s", "osinfo-win7-unattended") # unattended install for win7
+c.add_compare("--os-variant fedora26 --unattended profile=jeos,admin-password-file=%(ADMIN-PASSWORD-FILE)s --location %(ISO-F26-NETINST)s", "osinfo-netinst-unattended") # triggering the special netinst checking code
c.add_compare("--os-variant silverblue29 --location http://example.com", "network-install-resources") # triggering network-install resources override
c.add_valid("--pxe --os-variant fedora26 --unattended", grep="Using unattended profile 'desktop'") # filling in default 'desktop' profile
c.add_invalid("--os-variant fedora26 --unattended profile=jeos --location http://example.foo", grep="admin-password") # will trigger admin-password required error
c.add_invalid("--os-variant fedora26 --unattended profile=jeos --location http://example.foo", grep="admin-password") # will trigger admin-password required error
-c.add_invalid("--os-variant debian9 --unattended profile=desktop,admin-password=foobar --location http://example.foo", grep="user-password") # will trigger user-password required error
-c.add_invalid("--os-variant debian9 --unattended profile=FRIBBER,admin-password=foobar --location http://example.foo", grep="Available profiles") # will trigger unknown profile error
-c.add_invalid("--os-variant fedora29 --unattended profile=desktop,admin-password=foobar --cdrom %(ISO-F29-LIVE)s", grep="media does not support") # live media doesn't support installscript
+c.add_invalid("--os-variant debian9 --unattended profile=desktop,admin-password-file=%(ADMIN-PASSWORD-FILE)s --location http://example.foo", grep="user-password") # will trigger user-password required error
+c.add_invalid("--os-variant debian9 --unattended profile=FRIBBER,admin-password-file=%(ADMIN-PASSWORD-FILE)s --location http://example.foo", grep="Available profiles") # will trigger unknown profile error
+c.add_invalid("--os-variant fedora29 --unattended profile=desktop,admin-password-file=%(ADMIN-PASSWORD-FILE)s --cdrom %(ISO-F29-LIVE)s", grep="media does not support") # live media doesn't support installscript
c.add_invalid("--os-variant msdos --unattended profile=desktop --location http://example.com") # msdos doesn't support unattended install
c.add_invalid("--os-variant winxp --unattended profile=desktop --cdrom %(ISO-WIN7)s") # winxp doesn't support expected injection method 'cdrom'
c.add_invalid("--connect %(URI-TEST-REMOTE)s --os-variant win7 --cdrom %(EXISTIMG1)s --unattended") # --unattended method=cdrom rejected for remote connections
-
#############################
# Remote URI specific tests #
#############################
@@ -1353,7 +1354,7 @@ _add_argcomplete_cmd("virt-install --ins
_add_argcomplete_cmd("virt-install --test-stub", None,
nogrep="--test-stub-command")
_add_argcomplete_cmd("virt-install --unattended ", "profile=") # will list all --unattended subprops
-_add_argcomplete_cmd("virt-install --unattended a", "admin-password=")
+_add_argcomplete_cmd("virt-install --unattended a", "admin-password-file=")
_add_argcomplete_cmd("virt-clone --preserve", "--preserve-data")
_add_argcomplete_cmd("virt-xml --sound mode", "model")
_add_argcomplete_cmd("virt-convert --dest", "--destination")
Index: virt-manager-2.2.0/virtinst/cli.py
===================================================================
--- virt-manager-2.2.0.orig/virtinst/cli.py
+++ virt-manager-2.2.0/virtinst/cli.py
@@ -1508,8 +1508,8 @@ class ParserUnattended(VirtCLIParser):
def _init_class(cls, **kwargs):
VirtCLIParser._init_class(**kwargs)
cls.add_arg("profile", "profile")
- cls.add_arg("admin-password", "admin_password")
- cls.add_arg("user-password", "user_password")
+ cls.add_arg("admin-password-file", "admin_password_file")
+ cls.add_arg("user-password-file", "user_password_file")
cls.add_arg("product-key", "product_key")
Index: virt-manager-2.2.0/virtinst/install/unattended.py
===================================================================
--- virt-manager-2.2.0.orig/virtinst/install/unattended.py
+++ virt-manager-2.2.0/virtinst/install/unattended.py
@@ -39,23 +39,21 @@ def _make_installconfig(script, osobj, u
# Set user-password.
# In case it's required and not passed, just raise a RuntimeError.
- if script.requires_user_password() and not unattended_data.user_password:
+ if (script.requires_user_password() and
+ not unattended_data.get_user_password()):
raise RuntimeError(
_("%s requires the user-password to be set.") %
osobj.name)
- config.set_user_password(
- unattended_data.user_password if unattended_data.user_password
- else "")
+ config.set_user_password(unattended_data.get_user_password() or "")
# Set the admin-password:
# In case it's required and not passed, just raise a RuntimeError.
- if script.requires_admin_password() and not unattended_data.admin_password:
+ if (script.requires_admin_password() and
+ not unattended_data.get_admin_password()):
raise RuntimeError(
_("%s requires the admin-password to be set.") %
osobj.name)
- config.set_admin_password(
- unattended_data.admin_password if unattended_data.admin_password
- else "")
+ config.set_admin_password(unattended_data.get_admin_password() or "")
# Set the target disk.
# virtiodisk is the preferred way, in case it's supported, otherwise
@@ -205,10 +203,22 @@ class OSInstallScript:
class UnattendedData():
profile = None
- admin_password = None
- user_password = None
+ admin_password_file = None
+ user_password_file = None
product_key = None
+ def _get_password(self, pwdfile):
+ with open(pwdfile, "r") as fobj:
+ return fobj.readline().rstrip("\n\r")
+
+ def get_user_password(self):
+ if self.user_password_file:
+ return self._get_password(self.user_password_file)
+
+ def get_admin_password(self):
+ if self.admin_password_file:
+ return self._get_password(self.admin_password_file)
+
def _make_scriptmap(script_list):
"""

View File

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

View File

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

View File

@ -1,3 +1,18 @@
-------------------------------------------------------------------
Fri Jul 5 08:54:18 MDT 2019 - carnold@suse.com
- Update to virt-manager 2.2.1 (fate#326786)
virt-manager-2.2.1.tar.bz2
* CVE-2019-10183: Replace unattended user-password and admin-password with user-password-file and admin-password-file (Fabiano Fidêncio)
* Consistent memballoon default across non-x86 (Andrea Bolognani)
* virt-install: add numatune memnode.* (Athina Plaskasoviti)
* Drop hard dep on gtksourceview4, gtksourceview3 is fine as well
- Drop patches no longer needed
033e9702-xmleditor-Handle-gtksourceview3-as-well-as-gtksourceview4.patch
51d28f04-unattended-Dont-log-user-admin-passwords.patch
5312a961-virt-install-Revive-wait-0-as-alias-for-noautoconsole.patch
58c68764-unattended-Read-the-passwords-from-a-file.patch
-------------------------------------------------------------------
Wed Jul 3 12:07:53 MDT 2019 - carnold@suse.com

View File

@ -21,7 +21,7 @@
%global default_hvs "qemu,xen,lxc"
Name: virt-manager
Version: 2.2.0
Version: 2.2.1
Release: 0
Summary: Virtual Machine Manager
License: GPL-2.0-or-later
@ -32,10 +32,6 @@ Source1: virt-install.rb
Source2: virt-install.desktop
Source3: virt-manager-supportconfig
# Upstream Patches
Patch1: 033e9702-xmleditor-Handle-gtksourceview3-as-well-as-gtksourceview4.patch
Patch2: 5312a961-virt-install-Revive-wait-0-as-alias-for-noautoconsole.patch
Patch3: 58c68764-unattended-Read-the-passwords-from-a-file.patch
Patch4: 51d28f04-unattended-Dont-log-user-admin-passwords.patch
# SUSE Only
Patch70: virtman-desktop.patch
Patch71: virtman-kvm.patch
@ -168,10 +164,6 @@ machine).
%prep
%setup -q
# Upstream Patches
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
# SUSE Only
%patch70 -p1
%patch71 -p1

View File

@ -1,10 +1,10 @@
References: fate#326698 - Add pvh support to virt-manager
At this time support is disabled in this patch.
Index: virt-manager-2.2.0/virtManager/createvm.py
Index: virt-manager-2.2.1/virtManager/createvm.py
===================================================================
--- virt-manager-2.2.0.orig/virtManager/createvm.py
+++ virt-manager-2.2.0/virtManager/createvm.py
--- virt-manager-2.2.1.orig/virtManager/createvm.py
+++ virt-manager-2.2.1/virtManager/createvm.py
@@ -796,6 +796,9 @@ class vmmCreateVM(vmmGObjectUI):
for guest in guests:
if not guest.domains:
@ -15,10 +15,10 @@ Index: virt-manager-2.2.0/virtManager/createvm.py
gtype = guest.os_type
dom = guest.domains[0]
Index: virt-manager-2.2.0/virtinst/domain/os.py
Index: virt-manager-2.2.1/virtinst/domain/os.py
===================================================================
--- virt-manager-2.2.0.orig/virtinst/domain/os.py
+++ virt-manager-2.2.0/virtinst/domain/os.py
--- virt-manager-2.2.1.orig/virtinst/domain/os.py
+++ virt-manager-2.2.1/virtinst/domain/os.py
@@ -32,6 +32,8 @@ class DomainOs(XMLBuilder):
return self.os_type == "hvm"
def is_xenpv(self):
@ -28,11 +28,11 @@ Index: virt-manager-2.2.0/virtinst/domain/os.py
def is_container(self):
return self.os_type == "exe"
Index: virt-manager-2.2.0/virtinst/guest.py
Index: virt-manager-2.2.1/virtinst/guest.py
===================================================================
--- virt-manager-2.2.0.orig/virtinst/guest.py
+++ virt-manager-2.2.0/virtinst/guest.py
@@ -818,7 +818,7 @@ class Guest(XMLBuilder):
--- virt-manager-2.2.1.orig/virtinst/guest.py
+++ virt-manager-2.2.1/virtinst/guest.py
@@ -820,7 +820,7 @@ class Guest(XMLBuilder):
usb_tablet = False
usb_keyboard = False
@ -41,10 +41,10 @@ Index: virt-manager-2.2.0/virtinst/guest.py
usb_tablet = self.osinfo.supports_usbtablet()
if (self.os.is_arm_machvirt() or
self.os.is_riscv_virt() or
Index: virt-manager-2.2.0/virtManager/object/domain.py
Index: virt-manager-2.2.1/virtManager/object/domain.py
===================================================================
--- virt-manager-2.2.0.orig/virtManager/object/domain.py
+++ virt-manager-2.2.0/virtManager/object/domain.py
--- virt-manager-2.2.1.orig/virtManager/object/domain.py
+++ virt-manager-2.2.1/virtManager/object/domain.py
@@ -1150,6 +1150,8 @@ class vmmDomain(vmmLibvirtObject):
return self.get_xmlobj().os.is_xenpv()
def is_hvm(self):
@ -54,10 +54,10 @@ Index: virt-manager-2.2.0/virtManager/object/domain.py
def get_uuid(self):
if self._uuid is None:
Index: virt-manager-2.2.0/virtManager/connection.py
Index: virt-manager-2.2.1/virtManager/connection.py
===================================================================
--- virt-manager-2.2.0.orig/virtManager/connection.py
+++ virt-manager-2.2.0/virtManager/connection.py
--- virt-manager-2.2.1.orig/virtManager/connection.py
+++ virt-manager-2.2.1/virtManager/connection.py
@@ -223,6 +223,8 @@ class vmmConnection(vmmGObject):
label = "xen (paravirt)"
elif gtype == "hvm":

View File

@ -1,9 +1,9 @@
Reference: bnc#869024
Disable graphics on s390x
Index: virt-manager-2.2.0/virtinst/guest.py
Index: virt-manager-2.2.1/virtinst/guest.py
===================================================================
--- virt-manager-2.2.0.orig/virtinst/guest.py
+++ virt-manager-2.2.0/virtinst/guest.py
--- virt-manager-2.2.1.orig/virtinst/guest.py
+++ virt-manager-2.2.1/virtinst/guest.py
@@ -225,7 +225,10 @@ class Guest(XMLBuilder):
self.skip_default_channel = False
self.skip_default_sound = False
@ -14,9 +14,9 @@ Index: virt-manager-2.2.0/virtinst/guest.py
+ else:
+ self.skip_default_graphics = False
self.skip_default_rng = False
self.disable_default_memballoon = False
self.x86_cpu_default = self.cpu.SPECIAL_MODE_APP_DEFAULT
@@ -479,7 +482,7 @@ class Guest(XMLBuilder):
@@ -480,7 +483,7 @@ class Guest(XMLBuilder):
if not os_support:
return False
@ -25,7 +25,7 @@ Index: virt-manager-2.2.0/virtinst/guest.py
return True
return False
@@ -858,7 +861,7 @@ class Guest(XMLBuilder):
@@ -860,7 +863,7 @@ class Guest(XMLBuilder):
self.add_device(dev)
def _add_default_video_device(self):
@ -34,7 +34,7 @@ Index: virt-manager-2.2.0/virtinst/guest.py
return
if self.devices.video:
return
@@ -925,7 +928,7 @@ class Guest(XMLBuilder):
@@ -927,7 +930,7 @@ class Guest(XMLBuilder):
return
if self.os.is_container() and not self.conn.is_vz():
return

View File

@ -1,12 +1,12 @@
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-2.2.0/virtinst/guest.py
Index: virt-manager-2.2.1/virtinst/guest.py
===================================================================
--- virt-manager-2.2.0.orig/virtinst/guest.py
+++ virt-manager-2.2.0/virtinst/guest.py
@@ -736,6 +736,10 @@ class Guest(XMLBuilder):
self._add_default_rng()
--- virt-manager-2.2.1.orig/virtinst/guest.py
+++ virt-manager-2.2.1/virtinst/guest.py
@@ -738,6 +738,10 @@ class Guest(XMLBuilder):
self._add_default_memballoon()
self.clock.set_defaults(self)
+ if self.os.is_hvm() and self.type == "xen":

View File

@ -4,11 +4,11 @@ issue on btrfs.
Signed-off-by: Chunyan Liu <cyliu@suse.com>
Index: virt-manager-2.2.0/virtinst/storage.py
Index: virt-manager-2.2.1/virtinst/storage.py
===================================================================
--- virt-manager-2.2.0.orig/virtinst/storage.py
+++ virt-manager-2.2.0/virtinst/storage.py
@@ -655,6 +655,11 @@ class StorageVolume(_StorageObject):
--- virt-manager-2.2.1.orig/virtinst/storage.py
+++ virt-manager-2.2.1/virtinst/storage.py
@@ -548,6 +548,11 @@ class StorageVolume(_StorageObject):
return self._pool_xml.get_disk_type()
file_type = property(_get_vol_type)
@ -20,10 +20,10 @@ Index: virt-manager-2.2.0/virtinst/storage.py
##################
# XML properties #
Index: virt-manager-2.2.0/virtinst/support.py
Index: virt-manager-2.2.1/virtinst/support.py
===================================================================
--- virt-manager-2.2.0.orig/virtinst/support.py
+++ virt-manager-2.2.0/virtinst/support.py
--- virt-manager-2.2.1.orig/virtinst/support.py
+++ virt-manager-2.2.1/virtinst/support.py
@@ -283,6 +283,7 @@ class SupportCache:
conn_vnc_none_auth = _make(hv_version={"qemu": "2.9.0"})
conn_device_boot_order = _make(hv_version={"qemu": 0, "test": 0})

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-2.2.0/virtManager/connection.py
Index: virt-manager-2.2.1/virtManager/connection.py
===================================================================
--- virt-manager-2.2.0.orig/virtManager/connection.py
+++ virt-manager-2.2.0/virtManager/connection.py
@@ -1003,7 +1003,7 @@ class vmmConnection(vmmGObject):
--- virt-manager-2.2.1.orig/virtManager/connection.py
+++ virt-manager-2.2.1/virtManager/connection.py
@@ -1002,7 +1002,7 @@ class vmmConnection(vmmGObject):
self._add_conn_events()
try: