- bnc#885308 - pass virtio-rng-pci to the guest qemu
virtinst-add-default-rng-device.patch - Fix GUI failure to display addition of a second disk Dropped virtman-device-flags.patch - bnc#885380 - virt-install: by default generates raw format against various virtual disk formats virtinst-supported-disk-formats.patch virtman-supported-disk-formats.patch - Dropped virtinst-qed.patch, virtman-qed.patch - bnc#869026 - Build0198: Unable to complete install: 'XML error: No PCI buses available' virtman-add-s390x-arch-support.patch - Upstream bug fixes 53ac1f8d-createnet-validate-last-page-before-creating-network.patch 53ac1f8d-fix-show_err-typo.patch 53b39a13-dont-create-disk-images-world-readable-executable.patch 53b409bc-add-keep-alive-method-and-connection-check.patch 53b409bd-console-prevent-access-to-deleted-objects.patch 53b728c6-report-error-during-connection-bring-up.patch 53b728c6-connection-handle-unsupported-KeepAlive.patch 53bb1995-network-refresh-XML-definition-on-state-update.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=188
This commit is contained in:
parent
97562d2a97
commit
a18ef09a88
@ -11,7 +11,7 @@ Index: virt-manager-1.0.1/virtManager/createnet.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/createnet.py
|
||||
+++ virt-manager-1.0.1/virtManager/createnet.py
|
||||
@@ -749,7 +749,7 @@ class vmmCreateNetwork(vmmGObjectUI):
|
||||
@@ -752,7 +752,7 @@ class vmmCreateNetwork(vmmGObjectUI):
|
||||
try:
|
||||
net = self._build_xmlobj()
|
||||
except Exception, e:
|
||||
|
@ -0,0 +1,48 @@
|
||||
Subject: Don't create disk images world readable and executable
|
||||
From: Ron ron@debian.org Sun Jun 29 16:16:36 2014 +0930
|
||||
Date: Wed Jul 2 07:35:15 2014 +0200:
|
||||
Git: ea1d973957ce3662c7fb22046c34b62f72f0e624
|
||||
|
||||
Python's os.open() defaults to mode 0777 if not explicitly specified.
|
||||
Disk image files don't need to be executable, and having them world
|
||||
readable isn't an ideal situation either. Owner writable and group
|
||||
readable is probably more than sufficient when initially creating
|
||||
them.
|
||||
|
||||
Signed-off-by: Ron Lee <ron@debian.org>
|
||||
|
||||
diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py
|
||||
index 5f72d00..2c74a11 100644
|
||||
--- a/virtinst/diskbackend.py
|
||||
+++ b/virtinst/diskbackend.py
|
||||
@@ -383,7 +383,7 @@ class StorageCreator(_StorageBase):
|
||||
sparse = True
|
||||
fd = None
|
||||
try:
|
||||
- fd = os.open(self._path, os.O_WRONLY | os.O_CREAT)
|
||||
+ fd = os.open(self._path, os.O_WRONLY | os.O_CREAT, 0640)
|
||||
os.ftruncate(fd, size_bytes)
|
||||
finally:
|
||||
if fd:
|
||||
@@ -401,7 +401,7 @@ class StorageCreator(_StorageBase):
|
||||
try:
|
||||
try:
|
||||
src_fd = os.open(self._clone_path, os.O_RDONLY)
|
||||
- dst_fd = os.open(self._path, os.O_WRONLY | os.O_CREAT)
|
||||
+ dst_fd = os.open(self._path, os.O_WRONLY | os.O_CREAT, 0640)
|
||||
|
||||
i = 0
|
||||
while 1:
|
||||
diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py
|
||||
index fba70f9..b51e524 100644
|
||||
--- a/virtinst/urlfetcher.py
|
||||
+++ b/virtinst/urlfetcher.py
|
||||
@@ -67,7 +67,7 @@ class _ImageFetcher(object):
|
||||
prefix = "virtinst-" + prefix
|
||||
if "VIRTINST_TEST_SUITE" in os.environ:
|
||||
fn = os.path.join(".", prefix)
|
||||
- fd = os.open(fn, os.O_RDWR | os.O_CREAT)
|
||||
+ fd = os.open(fn, os.O_RDWR | os.O_CREAT, 0640)
|
||||
else:
|
||||
(fd, fn) = tempfile.mkstemp(prefix=prefix,
|
||||
dir=self.scratchdir)
|
48
53b409bc-add-keep-alive-method-and-connection-check.patch
Normal file
48
53b409bc-add-keep-alive-method-and-connection-check.patch
Normal file
@ -0,0 +1,48 @@
|
||||
Subject: virtinst: add method to set connection keep-alive
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Tue Jul 1 12:54:38 2014 +0200
|
||||
Date: Wed Jul 2 15:31:40 2014 +0200:
|
||||
Git: 3606bb573df4132a70b9e0fe82a59cd49a400fa0
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Subject: virt-manager: check if still connected every 20 seconds
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Tue Jul 1 13:06:05 2014 +0200
|
||||
Date: Wed Jul 2 15:31:40 2014 +0200:
|
||||
Git: 538c68a41dd0538c36e442ad37690b1b9c3debee
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/connection.py
|
||||
+++ virt-manager-1.0.1/virtinst/connection.py
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
-# Copyright 2013 Red Hat, Inc.
|
||||
+# Copyright 2013, 2014 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -201,6 +201,10 @@ class VirtualConnection(object):
|
||||
self._fetch_cache[key] = ret
|
||||
return ret
|
||||
|
||||
+ def set_keep_alive(self, interval, count):
|
||||
+ if hasattr(self._libvirtconn, "setKeepAlive"):
|
||||
+ self._libvirtconn.setKeepAlive(interval, count)
|
||||
+
|
||||
def fetch_all_pools(self):
|
||||
"""
|
||||
Returns a list of StoragePool objects
|
||||
Index: virt-manager-1.0.1/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.0.1/virtManager/connection.py
|
||||
@@ -1112,6 +1112,7 @@ class vmmConnection(vmmGObject):
|
||||
logging.debug("%s capabilities:\n%s",
|
||||
self.get_uri(), self.caps.xml)
|
||||
self._add_conn_events()
|
||||
+ self._backend.setKeepAlive(20, 1)
|
||||
self.schedule_priority_tick(stats_update=True,
|
||||
pollvm=True, pollnet=True,
|
||||
pollpool=True, polliface=True,
|
50
53b409bd-console-prevent-access-to-deleted-objects.patch
Normal file
50
53b409bd-console-prevent-access-to-deleted-objects.patch
Normal file
@ -0,0 +1,50 @@
|
||||
Subject: console: prevent access to deleted objects
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Tue Jul 1 15:01:58 2014 +0200
|
||||
Date: Wed Jul 2 15:31:41 2014 +0200:
|
||||
Git: f4365b669acc36bdc61c57d793894305dcb9059a
|
||||
|
||||
last commits revealed that some objects can still be accessed by
|
||||
registered callbacks after the console is closed. Unregister these
|
||||
callbacks.
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/console.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/console.py
|
||||
+++ virt-manager-1.0.1/virtManager/console.py
|
||||
@@ -572,6 +572,7 @@ class SpiceViewer(Viewer):
|
||||
self.display = None
|
||||
self.audio = None
|
||||
self.main_channel = None
|
||||
+ self._main_channel_hids = []
|
||||
self.display_channel = None
|
||||
self.usbdev_manager = None
|
||||
|
||||
@@ -636,6 +637,11 @@ class SpiceViewer(Viewer):
|
||||
self.display.destroy()
|
||||
self.display = None
|
||||
self.display_channel = None
|
||||
+
|
||||
+ for i in self._main_channel_hids:
|
||||
+ self.main_channel.handler_disconnect(i)
|
||||
+ self._main_channel_hids = []
|
||||
+
|
||||
self.main_channel = None
|
||||
self.usbdev_manager = None
|
||||
|
||||
@@ -682,10 +688,12 @@ class SpiceViewer(Viewer):
|
||||
if self.console.tunnels:
|
||||
self.console.tunnels.unlock()
|
||||
self.main_channel = channel
|
||||
- self.main_channel.connect_after("channel-event",
|
||||
+ hid = self.main_channel.connect_after("channel-event",
|
||||
self._main_channel_event_cb)
|
||||
- self.main_channel.connect_after("notify::agent-connected",
|
||||
+ self._main_channel_hids.append(hid)
|
||||
+ hid = self.main_channel.connect_after("notify::agent-connected",
|
||||
self._agent_connected_cb)
|
||||
+ self._main_channel_hids.append(hid)
|
||||
|
||||
elif (type(channel) == SpiceClientGLib.DisplayChannel and
|
||||
not self.display):
|
28
53b728c6-connection-handle-unsupported-KeepAlive.patch
Normal file
28
53b728c6-connection-handle-unsupported-KeepAlive.patch
Normal file
@ -0,0 +1,28 @@
|
||||
Subject: connection: Handle unsupport KeepAlive (like test URIs)
|
||||
From: Cole Robinson crobinso@redhat.com Fri Jul 4 17:43:24 2014 -0400
|
||||
Date: Fri Jul 4 18:20:54 2014 -0400:
|
||||
Git: aa823b5b58d689e2a69a9822fd462a1333d8d415
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.0.1/virtManager/connection.py
|
||||
@@ -1112,7 +1112,16 @@ class vmmConnection(vmmGObject):
|
||||
logging.debug("%s capabilities:\n%s",
|
||||
self.get_uri(), self.caps.xml)
|
||||
self._add_conn_events()
|
||||
- self._backend.setKeepAlive(20, 1)
|
||||
+
|
||||
+ try:
|
||||
+ self._backend.setKeepAlive(20, 1)
|
||||
+ except Exception, e:
|
||||
+ if (type(e) is not AttributeError and
|
||||
+ not util.is_error_nosupport(e)):
|
||||
+ raise
|
||||
+ logging.debug("Connection doesn't support KeepAlive, "
|
||||
+ "skipping")
|
||||
+
|
||||
self.schedule_priority_tick(stats_update=True,
|
||||
pollvm=True, pollnet=True,
|
||||
pollpool=True, polliface=True,
|
55
53b728c6-report-error-during-connection-bring-up.patch
Normal file
55
53b728c6-report-error-during-connection-bring-up.patch
Normal file
@ -0,0 +1,55 @@
|
||||
Subject: connection: Report error if things fall over during connection bring up
|
||||
From: Cole Robinson crobinso@redhat.com Fri Jul 4 17:37:42 2014 -0400
|
||||
Date: Fri Jul 4 18:20:54 2014 -0400:
|
||||
Git: e12d7a6a8c21f0d8e0331fa06f53523258bdfaae
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.0.1/virtManager/connection.py
|
||||
@@ -1101,23 +1101,27 @@ class vmmConnection(vmmGObject):
|
||||
def _open_notify(self):
|
||||
logging.debug("Notifying open result")
|
||||
|
||||
- self.idle_emit("state-changed")
|
||||
-
|
||||
- if self.state == self.STATE_ACTIVE:
|
||||
- logging.debug("libvirt version=%s",
|
||||
- self._backend.local_libvirt_version())
|
||||
- logging.debug("daemon version=%s",
|
||||
- self._backend.daemon_version())
|
||||
- logging.debug("conn version=%s", self._backend.conn_version())
|
||||
- logging.debug("%s capabilities:\n%s",
|
||||
- self.get_uri(), self.caps.xml)
|
||||
- self._add_conn_events()
|
||||
- self._backend.setKeepAlive(20, 1)
|
||||
- self.schedule_priority_tick(stats_update=True,
|
||||
- pollvm=True, pollnet=True,
|
||||
- pollpool=True, polliface=True,
|
||||
- pollnodedev=True, pollmedia=True,
|
||||
- force=True)
|
||||
+ try:
|
||||
+ self.idle_emit("state-changed")
|
||||
+ if self.state == self.STATE_ACTIVE:
|
||||
+ logging.debug("libvirt version=%s",
|
||||
+ self._backend.local_libvirt_version())
|
||||
+ logging.debug("daemon version=%s",
|
||||
+ self._backend.daemon_version())
|
||||
+ logging.debug("conn version=%s", self._backend.conn_version())
|
||||
+ logging.debug("%s capabilities:\n%s",
|
||||
+ self.get_uri(), self.caps.xml)
|
||||
+ self._add_conn_events()
|
||||
+ self._backend.setKeepAlive(20, 1)
|
||||
+ self.schedule_priority_tick(stats_update=True,
|
||||
+ pollvm=True, pollnet=True,
|
||||
+ pollpool=True, polliface=True,
|
||||
+ pollnodedev=True, pollmedia=True,
|
||||
+ force=True)
|
||||
+ except Exception, e:
|
||||
+ self.close()
|
||||
+ self.connectError = (str(e),
|
||||
+ "".join(traceback.format_exc()), False)
|
||||
|
||||
if self.state == self.STATE_DISCONNECTED:
|
||||
if self.connectError:
|
@ -0,0 +1,23 @@
|
||||
Subject: network: refresh the XML definition on state update
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Thu Jul 3 13:55:50 2014 +0200
|
||||
Date: Tue Jul 8 00:05:09 2014 +0200:
|
||||
Git: cbb18b0e9626faa08d8f017a9e02466e5ba7b767
|
||||
|
||||
The XML definition returned by libvirt can change on a state
|
||||
transition. vmmNetwork.force_update_status invalidates the old
|
||||
definition.
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/network.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/network.py
|
||||
+++ virt-manager-1.0.1/virtManager/network.py
|
||||
@@ -80,6 +80,7 @@ class vmmNetwork(vmmLibvirtObject):
|
||||
def _set_active(self, state):
|
||||
if state == self._active:
|
||||
return
|
||||
+ self.refresh_xml()
|
||||
self.idle_emit(state and "started" or "stopped")
|
||||
self._active = state
|
||||
|
@ -1,3 +1,40 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 17 15:45:19 MDT 2014 - carnold@suse.com
|
||||
|
||||
- bnc#885308 - pass virtio-rng-pci to the guest qemu
|
||||
virtinst-add-default-rng-device.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 9 09:50:14 MDT 2014 - carnold@suse.com
|
||||
|
||||
- Fix GUI failure to display addition of a second disk
|
||||
Dropped virtman-device-flags.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 9 09:50:14 MDT 2014 - carnold@suse.com
|
||||
|
||||
- bnc#885380 - virt-install: by default generates raw format
|
||||
against various virtual disk formats
|
||||
virtinst-supported-disk-formats.patch
|
||||
virtman-supported-disk-formats.patch
|
||||
- Dropped virtinst-qed.patch, virtman-qed.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 8 10:34:20 MDT 2014 - carnold@suse.com
|
||||
|
||||
- bnc#869026 - Build0198: Unable to complete install: 'XML error:
|
||||
No PCI buses available'
|
||||
virtman-add-s390x-arch-support.patch
|
||||
- Upstream bug fixes
|
||||
53ac1f8d-createnet-validate-last-page-before-creating-network.patch
|
||||
53ac1f8d-fix-show_err-typo.patch
|
||||
53b39a13-dont-create-disk-images-world-readable-executable.patch
|
||||
53b409bc-add-keep-alive-method-and-connection-check.patch
|
||||
53b409bd-console-prevent-access-to-deleted-objects.patch
|
||||
53b728c6-report-error-during-connection-bring-up.patch
|
||||
53b728c6-connection-handle-unsupported-KeepAlive.patch
|
||||
53bb1995-network-refresh-XML-definition-on-state-update.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 1 09:55:29 MDT 2014 - carnold@suse.com
|
||||
|
||||
|
@ -76,33 +76,38 @@ Patch37: 5397b647-createnet-enable-specifying-29-subnet.patch
|
||||
Patch38: 539e8cca-createpool-fix-creation-of-gluster-pools.patch
|
||||
Patch39: 53a05e73-fix-edit-maxvcpus.patch
|
||||
Patch40: 53a995cb-fix-usb-storage-removable-syntax.patch
|
||||
Patch41: 53ac1f8d-fix-show_err-typo.patch
|
||||
Patch42: 53ac1f8d-createnet-validate-last-page-before-creating-network.patch
|
||||
Patch50: virtman-desktop.patch
|
||||
Patch51: virtman-cdrom.patch
|
||||
Patch52: virtman-kvm.patch
|
||||
Patch53: virtman-keycombo.patch
|
||||
Patch54: virtman-eepro100.patch
|
||||
Patch55: virtman-qed.patch
|
||||
Patch56: virtman-device-flags.patch
|
||||
Patch57: virtman-autorestart.patch
|
||||
Patch60: virtman-default-guest-from-host-os.patch
|
||||
Patch61: virtman-default-to-xen-pv.patch
|
||||
Patch62: virtman-autoyast-support.patch
|
||||
Patch63: virtman-vminstall.patch
|
||||
Patch64: virtman-show-suse-install-repos.patch
|
||||
Patch65: virtman-packages.patch
|
||||
Patch66: virtman-load-stored-uris.patch
|
||||
Patch67: virtman-libvirtd-not-running.patch
|
||||
Patch68: virtman-stable-os-support.patch
|
||||
Patch69: virtman-add-s390x-arch-support.patch
|
||||
Patch70: virtman-prevent-double-click-starting-vm-twice.patch
|
||||
Patch71: virtman-default-lxc-uri.patch
|
||||
Patch72: virtman-add-connect-default.patch
|
||||
Patch73: virtman-dont-allow-grub.xen-to-be-deleted.patch
|
||||
Patch74: virtman-check-for-empty-network-name.patch
|
||||
Patch41: 53ac1f8d-createnet-validate-last-page-before-creating-network.patch
|
||||
Patch42: 53ac1f8d-fix-show_err-typo.patch
|
||||
Patch43: 53b39a13-dont-create-disk-images-world-readable-executable.patch
|
||||
Patch44: 53b409bc-add-keep-alive-method-and-connection-check.patch
|
||||
Patch45: 53b409bd-console-prevent-access-to-deleted-objects.patch
|
||||
Patch46: 53b728c6-report-error-during-connection-bring-up.patch
|
||||
Patch47: 53b728c6-connection-handle-unsupported-KeepAlive.patch
|
||||
Patch48: 53bb1995-network-refresh-XML-definition-on-state-update.patch
|
||||
Patch70: virtman-desktop.patch
|
||||
Patch71: virtman-cdrom.patch
|
||||
Patch72: virtman-kvm.patch
|
||||
Patch73: virtman-keycombo.patch
|
||||
Patch74: virtman-eepro100.patch
|
||||
Patch75: virtman-supported-disk-formats.patch
|
||||
Patch76: virtman-autorestart.patch
|
||||
Patch80: virtman-default-guest-from-host-os.patch
|
||||
Patch81: virtman-default-to-xen-pv.patch
|
||||
Patch82: virtman-autoyast-support.patch
|
||||
Patch83: virtman-vminstall.patch
|
||||
Patch84: virtman-show-suse-install-repos.patch
|
||||
Patch85: virtman-packages.patch
|
||||
Patch86: virtman-load-stored-uris.patch
|
||||
Patch87: virtman-libvirtd-not-running.patch
|
||||
Patch88: virtman-stable-os-support.patch
|
||||
Patch89: virtman-add-s390x-arch-support.patch
|
||||
Patch90: virtman-prevent-double-click-starting-vm-twice.patch
|
||||
Patch91: virtman-default-lxc-uri.patch
|
||||
Patch92: virtman-add-connect-default.patch
|
||||
Patch93: virtman-dont-allow-grub.xen-to-be-deleted.patch
|
||||
Patch94: virtman-check-for-empty-network-name.patch
|
||||
Patch151: virtinst-storage-ocfs2.patch
|
||||
Patch152: virtinst-qed.patch
|
||||
Patch152: virtinst-supported-disk-formats.patch
|
||||
Patch153: virtinst-support-suse-distros.patch
|
||||
Patch154: virtinst-detect-suse-distros.patch
|
||||
Patch155: virtinst-xen-drive-type.patch
|
||||
@ -113,6 +118,7 @@ Patch159: virtinst-vol-default-nocow.patch
|
||||
Patch160: virtinst-detect-windows-media.patch
|
||||
Patch161: virtinst-xenbus-disk-index-fix.patch
|
||||
Patch162: virtinst-set-cache-mode-unsafe-for-install.patch
|
||||
Patch163: virtinst-add-default-rng-device.patch
|
||||
BuildArch: noarch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
@ -243,29 +249,34 @@ machine).
|
||||
%patch40 -p1
|
||||
%patch41 -p1
|
||||
%patch42 -p1
|
||||
%patch50 -p1
|
||||
%patch51 -p1
|
||||
%patch52 -p1
|
||||
%patch53 -p1
|
||||
%patch54 -p1
|
||||
%patch55 -p1
|
||||
%patch56 -p1
|
||||
%patch57 -p1
|
||||
%patch60 -p1
|
||||
%patch61 -p1
|
||||
%patch62 -p1
|
||||
%patch63 -p1
|
||||
%patch64 -p1
|
||||
%patch65 -p1
|
||||
%patch66 -p1
|
||||
%patch67 -p1
|
||||
%patch68 -p1
|
||||
%patch69 -p1
|
||||
%patch43 -p1
|
||||
%patch44 -p1
|
||||
%patch45 -p1
|
||||
%patch46 -p1
|
||||
%patch47 -p1
|
||||
%patch48 -p1
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
%patch72 -p1
|
||||
%patch73 -p1
|
||||
%patch74 -p1
|
||||
%patch75 -p1
|
||||
%patch76 -p1
|
||||
%patch80 -p1
|
||||
%patch81 -p1
|
||||
%patch82 -p1
|
||||
%patch83 -p1
|
||||
%patch84 -p1
|
||||
%patch85 -p1
|
||||
%patch86 -p1
|
||||
%patch87 -p1
|
||||
%patch88 -p1
|
||||
%patch89 -p1
|
||||
%patch90 -p1
|
||||
%patch91 -p1
|
||||
%patch92 -p1
|
||||
%patch93 -p1
|
||||
%patch94 -p1
|
||||
%patch151 -p1
|
||||
%patch152 -p1
|
||||
%patch153 -p1
|
||||
@ -278,6 +289,7 @@ machine).
|
||||
%patch160 -p1
|
||||
%patch161 -p1
|
||||
%patch162 -p1
|
||||
%patch163 -p1
|
||||
|
||||
%build
|
||||
%if %{qemu_user}
|
||||
|
28
virtinst-add-default-rng-device.patch
Normal file
28
virtinst-add-default-rng-device.patch
Normal file
@ -0,0 +1,28 @@
|
||||
bnc#885308
|
||||
|
||||
--- virt-manager-1.0.1/virtinst/guest.py.orig 2014-07-17 15:40:21.724772127 -0600
|
||||
+++ virt-manager-1.0.1/virtinst/guest.py 2014-07-17 15:40:27.921811664 -0600
|
||||
@@ -625,6 +625,15 @@ class Guest(XMLBuilder):
|
||||
return
|
||||
self.add_device(virtinst.VirtualGraphics(self.conn))
|
||||
|
||||
+ def add_default_rng(self):
|
||||
+ osvar = self._get_os_variant()
|
||||
+ if not self.conn.is_qemu() or not osvar or osvar.startswith("win"):
|
||||
+ return
|
||||
+ rng_dev = virtinst.VirtualRNGDevice(True)
|
||||
+ rng_dev.type = virtinst.VirtualRNGDevice.TYPE_RANDOM
|
||||
+ setattr(rng_dev, "device", "/dev/random")
|
||||
+ self.add_device(rng_dev)
|
||||
+
|
||||
def add_default_devices(self):
|
||||
self.add_default_graphics()
|
||||
self.add_default_video_device()
|
||||
@@ -632,6 +641,7 @@ class Guest(XMLBuilder):
|
||||
self.add_default_console_device()
|
||||
self.add_default_usb_controller()
|
||||
self.add_default_channels()
|
||||
+ self.add_default_rng()
|
||||
|
||||
def _set_transient_device_defaults(self, install):
|
||||
def do_remove_media(d):
|
@ -2,7 +2,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.0.1/virtinst/guest.py
|
||||
@@ -348,8 +348,18 @@ class Guest(XMLBuilder):
|
||||
@@ -351,8 +351,18 @@ class Guest(XMLBuilder):
|
||||
if (not install and
|
||||
self.os.is_xenpv() and
|
||||
not self.os.kernel):
|
||||
|
@ -1,6 +1,8 @@
|
||||
--- virt-manager-1.0.1/virtinst/guest.py.orig 2014-05-29 10:27:00.609005060 -0600
|
||||
+++ virt-manager-1.0.1/virtinst/guest.py 2014-05-29 10:27:03.588027133 -0600
|
||||
@@ -343,6 +343,12 @@ class Guest(XMLBuilder):
|
||||
Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.0.1/virtinst/guest.py
|
||||
@@ -346,6 +346,12 @@ class Guest(XMLBuilder):
|
||||
self.on_reboot = action
|
||||
self.on_crash = action
|
||||
|
||||
@ -13,7 +15,7 @@
|
||||
self._set_defaults()
|
||||
|
||||
self.bootloader = None
|
||||
@@ -362,7 +368,10 @@ class Guest(XMLBuilder):
|
||||
@@ -365,7 +371,10 @@ class Guest(XMLBuilder):
|
||||
self.bootloader = "/usr/bin/pygrub"
|
||||
self.os.clear()
|
||||
|
||||
|
@ -10,7 +10,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
import logging
|
||||
|
||||
import urlgrabber.progress as progress
|
||||
@@ -724,14 +725,22 @@ class Guest(XMLBuilder):
|
||||
@@ -727,14 +728,22 @@ class Guest(XMLBuilder):
|
||||
self.emulator = None
|
||||
return
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: virt-manager-0.10.1/virtinst/devicedisk.py
|
||||
Index: virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
===================================================================
|
||||
--- virt-manager-0.10.1.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-0.10.1/virtinst/devicedisk.py
|
||||
--- virt-manager-1.0.1.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
@@ -156,10 +156,11 @@ class VirtualDisk(VirtualDevice):
|
||||
|
||||
DRIVER_TAP_RAW = "aio"
|
||||
@ -15,10 +15,10 @@ Index: virt-manager-0.10.1/virtinst/devicedisk.py
|
||||
|
||||
CACHE_MODE_NONE = "none"
|
||||
CACHE_MODE_WRITETHROUGH = "writethrough"
|
||||
Index: virt-manager-0.10.1/virtinst/virtimage.py
|
||||
Index: virt-manager-1.0.1/virtinst/virtimage.py
|
||||
===================================================================
|
||||
--- virt-manager-0.10.1.orig/virtinst/virtimage.py
|
||||
+++ virt-manager-0.10.1/virtinst/virtimage.py
|
||||
--- virt-manager-1.0.1.orig/virtinst/virtimage.py
|
||||
+++ virt-manager-1.0.1/virtinst/virtimage.py
|
||||
@@ -209,6 +209,7 @@ class Disk(object):
|
||||
FORMAT_QCOW2 = "qcow2"
|
||||
FORMAT_VMDK = "vmdk"
|
||||
@ -37,3 +37,16 @@ Index: virt-manager-0.10.1/virtinst/virtimage.py
|
||||
validate(formats.count(self.format) > 0,
|
||||
_("The format for disk %s must be one of %s") %
|
||||
(self.file, ",".join(formats)))
|
||||
Index: virt-manager-1.0.1/virtinst/support.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/support.py
|
||||
+++ virt-manager-1.0.1/virtinst/support.py
|
||||
@@ -258,7 +258,7 @@ SUPPORT_CONN_DISK_SD = _make(version="1.
|
||||
# default to qcow2. It might be fine for xen or qemu older than the versions
|
||||
# here, but until someone tests things I'm going to be a bit conservative.
|
||||
SUPPORT_CONN_DEFAULT_QCOW2 = _make(
|
||||
- version="0.8.0", hv_version={"qemu": "1.2.0", "test": 0})
|
||||
+ version="0.8.0", hv_version={"qemu": "1.2.0", "all": 0})
|
||||
SUPPORT_CONN_DEFAULT_USB2 = _make(
|
||||
version="0.9.7", hv_version={"qemu": "1.0.0", "test": 0})
|
||||
SUPPORT_CONN_CAN_ACPI = _make(hv_version={"xen": "3.1.0", "all": 0})
|
@ -1,9 +1,9 @@
|
||||
Reference: bnc#813082
|
||||
|
||||
Index: virt-manager-1.0.0/virtinst/devicedisk.py
|
||||
Index: virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.0.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.0.0/virtinst/devicedisk.py
|
||||
--- virt-manager-1.0.1.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
@@ -558,6 +558,12 @@ class VirtualDisk(VirtualDevice):
|
||||
return None
|
||||
if self.conn.is_qemu():
|
||||
|
@ -37,7 +37,28 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.0.1/virtinst/guest.py
|
||||
@@ -598,7 +598,7 @@ class Guest(XMLBuilder):
|
||||
@@ -112,7 +112,10 @@ class Guest(XMLBuilder):
|
||||
self.skip_default_channel = False
|
||||
self.skip_default_sound = False
|
||||
self.skip_default_usbredir = False
|
||||
- self.skip_default_graphics = False
|
||||
+ if self.os.arch == "s390x":
|
||||
+ self.skip_default_graphics = True
|
||||
+ else:
|
||||
+ self.skip_default_graphics = False
|
||||
self.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY
|
||||
|
||||
self._os_variant = None
|
||||
@@ -553,7 +556,7 @@ class Guest(XMLBuilder):
|
||||
self.add_device(dev)
|
||||
|
||||
def add_default_video_device(self):
|
||||
- if self.os.is_container():
|
||||
+ if self.os.is_container() or self.os.arch == "s390x":
|
||||
return
|
||||
if self.get_devices("video"):
|
||||
return
|
||||
@@ -598,7 +601,7 @@ class Guest(XMLBuilder):
|
||||
return
|
||||
if self.os.is_container():
|
||||
return
|
||||
@ -46,3 +67,12 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
return
|
||||
self.add_device(virtinst.VirtualGraphics(self.conn))
|
||||
|
||||
@@ -804,7 +807,7 @@ class Guest(XMLBuilder):
|
||||
if not self._lookup_osdict_key(key, False):
|
||||
return False
|
||||
|
||||
- if self.os.is_x86():
|
||||
+ if self.os.is_x86() or self.os.arch == "s390x":
|
||||
return True
|
||||
if (self.os.is_arm_vexpress() and
|
||||
self.os.dtb and
|
||||
|
@ -27,7 +27,7 @@ Index: virt-manager-1.0.1/virtManager/details.py
|
||||
if self.edited(EDIT_BOOTORDER):
|
||||
kwargs["boot_order"] = self.get_config_boot_order()
|
||||
|
||||
@@ -2381,6 +2384,8 @@ class vmmDetails(vmmGObjectUI):
|
||||
@@ -2370,6 +2373,8 @@ class vmmDetails(vmmGObjectUI):
|
||||
buttons=Gtk.ButtonsType.OK,
|
||||
dialog_type=dtype)
|
||||
|
||||
|
@ -1,71 +0,0 @@
|
||||
Index: virt-manager-1.0.1/virtManager/addhardware.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.0.1/virtManager/addhardware.py
|
||||
@@ -1280,6 +1280,18 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
if controller is not None:
|
||||
logging.debug("Adding controller:\n%s",
|
||||
controller.get_xml_config())
|
||||
+
|
||||
+ # If vm is active, Try to hotplug the device and modify persistent
|
||||
+ # config in one go
|
||||
+ if self.vm.is_active():
|
||||
+ try:
|
||||
+ self.vm.attach_device_flags(self._dev, 3)
|
||||
+ return (False, None)
|
||||
+ except Exception, e:
|
||||
+ logging.debug("Could not hotplug device and modify persistent "
|
||||
+ "config at the same time: %s" % str(e))
|
||||
+ logging.debug("Trying the operations seperately ...")
|
||||
+
|
||||
# Hotplug device
|
||||
attach_err = False
|
||||
try:
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -2290,6 +2290,17 @@ class vmmDetails(vmmGObjectUI):
|
||||
text1=(_("Are you sure you want to remove this device?"))):
|
||||
return
|
||||
|
||||
+ # If vm is running, try to hot remove the device and modify
|
||||
+ # persistent config in one go
|
||||
+ if self.vm.is_active():
|
||||
+ try:
|
||||
+ self.vm.detach_device_flags(dev_type, dev_id_info, 3)
|
||||
+ return
|
||||
+ except Exception, e:
|
||||
+ logging.debug("Could not hot remove device and modify "
|
||||
+ "persistent config at the same time: %s" % str(e))
|
||||
+ logging.debug("Trying the operations seperately ...")
|
||||
+
|
||||
# Define the change
|
||||
try:
|
||||
self.vm.remove_device(devobj)
|
||||
Index: virt-manager-1.0.1/virtManager/domain.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/domain.py
|
||||
+++ virt-manager-1.0.1/virtManager/domain.py
|
||||
@@ -928,6 +928,10 @@ class vmmDomain(vmmLibvirtObject):
|
||||
devxml = devobj.get_xml_config()
|
||||
self._backend.attachDevice(devxml)
|
||||
|
||||
+ def attach_device_flags(self, devobj, flags):
|
||||
+ xml = devobj.get_xml_config()
|
||||
+ self._backend.attachDeviceFlags(xml, flags)
|
||||
+
|
||||
def detach_device(self, devobj):
|
||||
"""
|
||||
Hotunplug device from running guest
|
||||
@@ -946,6 +950,10 @@ class vmmDomain(vmmLibvirtObject):
|
||||
logging.debug("Calling update_device with xml=\n%s", xml)
|
||||
self._backend.updateDeviceFlags(xml, flags)
|
||||
|
||||
+ def detach_device_flags(self, devtype, dev_id_info, flags):
|
||||
+ xml = self._get_device_xml(devtype, dev_id_info)
|
||||
+ self._backend.detachDeviceFlags(xml, flags)
|
||||
+
|
||||
def hotplug(self, vcpus=_SENTINEL, memory=_SENTINEL, maxmem=_SENTINEL,
|
||||
description=_SENTINEL, title=_SENTINEL, storage_path=_SENTINEL,
|
||||
device=_SENTINEL):
|
@ -2,7 +2,7 @@ Index: virt-manager-1.0.1/virtManager/console.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/console.py
|
||||
+++ virt-manager-1.0.1/virtManager/console.py
|
||||
@@ -934,6 +934,16 @@ class vmmConsolePages(vmmGObjectUI):
|
||||
@@ -942,6 +942,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())
|
||||
|
@ -12,7 +12,7 @@ Index: virt-manager-1.0.1/virtManager/addhardware.py
|
||||
- formats.append("vmdk")
|
||||
- no_create_formats.append("vdi")
|
||||
+ if vm.conn.is_xen():
|
||||
+ formats = ["raw", "qcow2", "qed", "vmdk", "vdi"]
|
||||
+ formats = ["raw", "qcow2"]
|
||||
+ else:
|
||||
+ formats = ["raw", "qcow2", "qed"]
|
||||
+ if not vm.stable_defaults():
|
Loading…
Reference in New Issue
Block a user