- Upstream bug fixes

535fb6f6-hide-scrollbar-until-something-scrollable.patch
  535fe0c2-fix-screenshot-with-qxl-spice.patch
  535feaca-fix-storage-when-directory-name-contains-whitespace.patch
  535ff0b7-fix-install-when-one-package-is-already-installed.patch 
  536152fe-fix-error-detecting-OS-in-show-all-list.patch
  536154d8-show-error-if-launching-delete-dialog-fails.patch
  53615662-call-path_exists-before-getting-storage-volume.patch

- s390x: Set the correct emulator 
  virtinst-set-qemu-emulator.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=169
This commit is contained in:
Charles Arnold 2014-05-01 03:32:04 +00:00 committed by Git OBS Bridge
parent 24c47c97a8
commit 78a202101a
13 changed files with 242 additions and 12 deletions

View File

@ -0,0 +1,25 @@
Subject: serialcon: Hide scrollbar until there's something to scroll
From: Cole Robinson crobinso@redhat.com Fri Apr 25 19:13:44 2014 -0400
Date: Tue Apr 29 10:28:06 2014 -0400:
Git: 02f49be9e2f58032a7c124ea77d7983834dc80b6
Index: virt-manager-1.0.1/virtManager/serialcon.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/serialcon.py
+++ virt-manager-1.0.1/virtManager/serialcon.py
@@ -378,6 +378,14 @@ class vmmSerialConsole(vmmGObject):
self.box.append_page(self.error_label, Gtk.Label(""))
self.box.show_all()
+ scrollbar.hide()
+ scrollbar.get_adjustment().connect(
+ "changed", self._scrollbar_adjustment_changed, scrollbar)
+
+ def _scrollbar_adjustment_changed(self, adjustment, scrollbar):
+ scrollbar.set_visible(
+ adjustment.get_upper() > adjustment.get_page_size())
+
def _cleanup(self):
self.console.cleanup()
self.console = None

View File

@ -0,0 +1,22 @@
Subject: snapshots: Fix screenshot with qxl+spice (bz 1089780)
From: Cole Robinson crobinso@redhat.com Tue Apr 29 13:26:26 2014 -0400
Date: Tue Apr 29 13:26:26 2014 -0400:
Git: 2272166844f84943342fc097af927a09737ee57f
Index: virt-manager-1.0.1/virtManager/snapshots.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/snapshots.py
+++ virt-manager-1.0.1/virtManager/snapshots.py
@@ -379,6 +379,11 @@ class vmmSnapshotPage(vmmGObjectUI):
return
try:
+ # Perform two screenshots, because qemu + qxl has a bug where
+ # screenshot generally only shows the data from the previous
+ # screenshot request:
+ # https://bugs.launchpad.net/qemu/+bug/1314293
+ self._take_screenshot()
mime, sdata = self._take_screenshot()
except:
logging.exception("Error taking screenshot")

View File

@ -0,0 +1,29 @@
Subject: Fix using storage when the directory name contains whitespace (bz 1091384)
From: Cole Robinson crobinso@redhat.com Tue Apr 29 14:09:14 2014 -0400
Date: Tue Apr 29 14:09:14 2014 -0400:
Git: feadd98fed045ec40d5d5cf8250c7b05517eb9c9
diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py
index 370996c..3d5aed8 100644
--- a/virtinst/diskbackend.py
+++ b/virtinst/diskbackend.py
@@ -137,13 +137,14 @@ def manage_path(conn, path):
return vol, pool, path_is_pool
dirname = os.path.dirname(path)
- poolname = StoragePool.find_free_name(
- conn, os.path.basename(dirname) or "pool")
+ poolname = os.path.basename(dirname).replace(" ", "_")
+ if not poolname:
+ poolname = "dirpool"
+ poolname = StoragePool.find_free_name(conn, poolname)
logging.debug("Attempting to build pool=%s target=%s", poolname, dirname)
poolxml = StoragePool(conn)
- poolxml.name = poolxml.find_free_name(
- conn, os.path.basename(dirname) or "dirpool")
+ poolxml.name = poolname
poolxml.type = poolxml.TYPE_DIR
poolxml.target_path = dirname
pool = poolxml.install(build=False, create=True, autostart=True)

View File

@ -0,0 +1,41 @@
Subject: packageutils: Fix install when one package is already installed (bz 1090181)
From: Cole Robinson crobinso@redhat.com Tue Apr 29 14:34:31 2014 -0400
Date: Tue Apr 29 14:34:31 2014 -0400:
Git: 15449eb12601ec1b88aa6d8ee52986ef5ab41ae2
Index: virt-manager-1.0.1/virtManager/packageutils.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/packageutils.py
+++ virt-manager-1.0.1/virtManager/packageutils.py
@@ -53,7 +53,12 @@ def check_packagekit(parent, errbox, pac
return
try:
- packagekit_install(parent, packages)
+ for package in packages[:]:
+ if packagekit_isinstalled(package):
+ packages.remove(package)
+
+ if packages:
+ packagekit_install(parent, packages)
except Exception, e:
# PackageKit frontend should report an error for us, so just log
# the actual error
@@ -63,6 +68,16 @@ def check_packagekit(parent, errbox, pac
return True
+def packagekit_isinstalled(package):
+ bus = Gio.bus_get_sync(Gio.BusType.SESSION, None)
+ pk_control = Gio.DBusProxy.new_sync(bus, 0, None,
+ "org.freedesktop.PackageKit",
+ "/org/freedesktop/PackageKit",
+ "org.freedesktop.PackageKit.Query", None)
+
+ return pk_control.IsInstalled("(ss)", package, "")
+
+
def packagekit_install(parent, package_list):
bus = Gio.bus_get_sync(Gio.BusType.SESSION, None)
pk_control = Gio.DBusProxy.new_sync(bus, 0, None,

View File

@ -0,0 +1,29 @@
Subject: create: Fix error when detecting OS in 'show all' list
From: Cole Robinson crobinso@redhat.com Wed Apr 30 15:46:06 2014 -0400
Date: Wed Apr 30 15:46:06 2014 -0400:
Git: 3d49bbe6494ac1fa9305c019df1db81371a89385
The will be free'd when the widget is repopulated, so don't access
stale data.
Index: virt-manager-1.0.1/virtManager/create.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/create.py
+++ virt-manager-1.0.1/virtManager/create.py
@@ -1181,6 +1181,7 @@ class vmmCreate(vmmGObjectUI):
type_row = self._selected_os_row()
if not type_row:
return
+ old_type = type_row[0]
self.show_all_os = True
self.populate_os_type_model()
@@ -1188,7 +1189,7 @@ class vmmCreate(vmmGObjectUI):
os_type_list = self.widget("install-os-type")
os_type_model = os_type_list.get_model()
for idx in range(len(os_type_model)):
- if os_type_model[idx][0] == type_row[0]:
+ if os_type_model[idx][0] == old_type:
os_type_list.set_active(idx)
break

View File

@ -0,0 +1,23 @@
Subject: engine: Show error if launching delete dialog fails
From: Cole Robinson crobinso@redhat.com Wed Apr 30 15:54:00 2014 -0400
Date: Wed Apr 30 15:54:00 2014 -0400:
Git: f35438a01bbf3ba54b4e448d14e7981110a74f08
Index: virt-manager-1.0.1/virtManager/engine.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/engine.py
+++ virt-manager-1.0.1/virtManager/engine.py
@@ -1176,6 +1176,9 @@ class vmmEngine(vmmGObject):
conn = self._lookup_conn(uri)
vm = conn.get_vm(uuid)
- if not self.delete_dialog:
- self.delete_dialog = vmmDeleteDialog()
- self.delete_dialog.show(vm, src.topwin)
+ try:
+ if not self.delete_dialog:
+ self.delete_dialog = vmmDeleteDialog()
+ self.delete_dialog.show(vm, src.topwin)
+ except Exception, e:
+ src.err.show_err(_("Error launching delete dialog: %s") % str(e))

View File

@ -0,0 +1,24 @@
Subject: connection: Call path_exists before getting storage volume (bz 1092739)
From: Cole Robinson crobinso@redhat.com Wed Apr 30 16:00:34 2014 -0400
Date: Wed Apr 30 16:00:34 2014 -0400:
Git: 5c28a00d3e28ba7446f323a31ac47a194eb200b1
path_exists will check to ensure the volume actually survives a pool
refresh, incase it was deleted behind libvirt's back. This makes the
delete dialog happier at least.
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
@@ -751,6 +751,10 @@ class vmmConnection(vmmGObject):
return self.get_pool_by_name("default")
def get_vol_by_path(self, path):
+ # path_exists will handle stuff like refreshing a busted pool
+ if not virtinst.VirtualDisk.path_exists(self.get_backend(), path):
+ return None
+
for pool in self.pools.values():
for vol in pool.get_volumes().values():
if vol.get_target_path() == path:

View File

@ -1,3 +1,21 @@
-------------------------------------------------------------------
Wed Apr 30 07:24:54 MDT 2014 - carnold@suse.com
- Upstream bug fixes
535fb6f6-hide-scrollbar-until-something-scrollable.patch
535fe0c2-fix-screenshot-with-qxl-spice.patch
535feaca-fix-storage-when-directory-name-contains-whitespace.patch
535ff0b7-fix-install-when-one-package-is-already-installed.patch
536152fe-fix-error-detecting-OS-in-show-all-list.patch
536154d8-show-error-if-launching-delete-dialog-fails.patch
53615662-call-path_exists-before-getting-storage-volume.patch
-------------------------------------------------------------------
Tue Apr 29 11:37:12 MDT 2014 - carnold@suse.com
- s390x: Set the correct emulator
virtinst-set-qemu-emulator.patch
-------------------------------------------------------------------
Mon Apr 28 15:21:58 MDT 2014 - carnold@suse.com

View File

@ -28,7 +28,7 @@
Name: virt-manager
Version: 1.0.1
Release: 0
Release: 3.2
Summary: Virtual Machine Manager
License: GPL-2.0+
Group: System/Monitoring
@ -54,6 +54,13 @@ Patch15: 534d6406-display-the-domain-for-PCI-devices.patch
Patch16: 534eafe4-avoid-useless-errors-when-connection-closes.patch
Patch17: 5350d9cc-display-error-on-empty-installation-URL.patch
Patch18: 535584ed-fix-target-validation-when-editing-device.patch
Patch19: 535fb6f6-hide-scrollbar-until-something-scrollable.patch
Patch20: 535fe0c2-fix-screenshot-with-qxl-spice.patch
Patch21: 535feaca-fix-storage-when-directory-name-contains-whitespace.patch
Patch22: 535ff0b7-fix-install-when-one-package-is-already-installed.patch
Patch23: 536152fe-fix-error-detecting-OS-in-show-all-list.patch
Patch24: 536154d8-show-error-if-launching-delete-dialog-fails.patch
Patch25: 53615662-call-path_exists-before-getting-storage-volume.patch
Patch50: virtman-desktop.patch
Patch51: virtman-cdrom.patch
Patch52: virtman-kvm.patch
@ -190,6 +197,13 @@ machine).
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1

View File

@ -2,7 +2,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.0.1.orig/virtinst/urlfetcher.py
+++ virt-manager-1.0.1/virtinst/urlfetcher.py
@@ -379,6 +379,24 @@ def _distroFromContent(fetcher, arch, vm
@@ -383,6 +383,24 @@ def _distroFromContent(fetcher, arch, vm
return ob
@ -27,7 +27,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
def getDistroStore(guest, fetcher):
stores = []
logging.debug("Finding distro store for location=%s", fetcher.location)
@@ -398,6 +416,10 @@ def getDistroStore(guest, fetcher):
@@ -402,6 +420,10 @@ def getDistroStore(guest, fetcher):
if dist:
return dist
@ -38,7 +38,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
# FIXME: This 'distro ==' doesn't cut it. 'distro' is from our os
# dictionary, so would look like 'fedora9' or 'rhel5', so this needs
# to be a bit more intelligent
@@ -1144,6 +1166,13 @@ class ALTLinuxDistro(Distro):
@@ -1148,6 +1170,13 @@ class ALTLinuxDistro(Distro):
logging.debug("Regex didn't match, not a %s distro", self.name)
return False

View File

@ -10,12 +10,15 @@ Index: virt-manager-1.0.1/virtinst/guest.py
import logging
import urlgrabber.progress as progress
@@ -724,14 +725,19 @@ class Guest(XMLBuilder):
@@ -724,14 +725,22 @@ class Guest(XMLBuilder):
self.emulator = None
return
- if self.emulator:
+ if self.conn.is_qemu():
+ if self.os.arch == "s390x":
+ preferred_emulator = "/usr/bin/qemu-system-s390x"
+ else:
+ preferred_emulator = "/usr/bin/qemu-system-x86_64"
+ else:
+ preferred_emulator = "/usr/lib/xen/bin/qemu-system-i386"
@ -31,7 +34,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
+ self.emulator = preferred_emulator
+ elif self.os.is_hvm() and self.type == "xen":
+ self.emulator = "/usr/lib/xen/bin/qemu-dm"
+ else:
+ elif not self.emulator:
+ self.emulator = "/usr/bin/qemu-kvm"
def _set_cpu_defaults(self):

View File

@ -37,7 +37,7 @@ Index: virt-manager-1.0.1/virtManager/create.py
# Get previous
type_row = self._selected_os_row()
if not type_row:
@@ -1589,7 +1612,10 @@ class vmmCreate(vmmGObjectUI):
@@ -1590,7 +1613,10 @@ class vmmCreate(vmmGObjectUI):
if extra:
extraargs += extra
if ks:
@ -49,7 +49,7 @@ Index: virt-manager-1.0.1/virtManager/create.py
if extraargs:
self.guest.installer.extraargs = extraargs
@@ -1985,6 +2011,7 @@ class vmmCreate(vmmGObjectUI):
@@ -1986,6 +2012,7 @@ class vmmCreate(vmmGObjectUI):
dl = self.set_os_val(self.widget("install-os-type"), distro_type)
vl = self.set_os_val(self.widget("install-os-version"), distro_var)
self.set_distro_labels(dl, vl)

View File

@ -1,6 +1,8 @@
--- virt-manager-1.0.0/virtManager/packageutils.py.orig 2014-03-13 14:43:07.187281364 -0600
+++ virt-manager-1.0.0/virtManager/packageutils.py 2014-03-13 14:45:06.847936733 -0600
@@ -136,8 +136,8 @@ def start_libvirtd():
Index: virt-manager-1.0.1/virtManager/packageutils.py
===================================================================
--- virt-manager-1.0.1.orig/virtManager/packageutils.py
+++ virt-manager-1.0.1/virtManager/packageutils.py
@@ -151,8 +151,8 @@ def start_libvirtd():
logging.debug("libvirtd not running, asking system-config-services "
"to start it")
scs = Gio.DBusProxy.new_sync(bus, 0, None,