- 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:
parent
1a980429d2
commit
d8b1788c9f
@ -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
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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):
|
||||
"""
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f32bd91e7a42a2ba2f66d5f6f72ec3342bb12606c5612750c6165544128d2db5
|
||||
size 1482123
|
3
virt-manager-2.2.1.tar.bz2
Normal file
3
virt-manager-2.2.1.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e1c28128eee24bc5fdd3f67a3b3e6713cac14ed9664619948f98f1ca71ec992f
|
||||
size 1483469
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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":
|
||||
|
@ -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
|
||||
|
@ -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":
|
||||
|
@ -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})
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user