virtman-s390x-ppc64-arch-support.patch

Drop virtman-s390x-default-to-vminstall.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=260
This commit is contained in:
Charles Arnold 2015-09-10 21:19:49 +00:00 committed by Git OBS Bridge
parent c7dfc18daa
commit 64e4967c4d
10 changed files with 170 additions and 192 deletions

View File

@ -3,8 +3,9 @@ Thu Sep 10 13:46:12 MDT 2015 - carnold@suse.com
- Add upstream s390x support patch (bnc#869024)
8dbe96fc-add-s390x-arch-support.patch
virtman-s390x-dont-add-graphics-support.patch
virtman-s390x-ppc64-arch-support.patch
Drop virtman-add-s390x-arch-support.patch
Drop virtman-s390x-default-to-vminstall.patch
-------------------------------------------------------------------
Tue Sep 8 15:59:53 MDT 2015 - carnold@suse.com

View File

@ -54,11 +54,10 @@ Patch71: virtman-kvm.patch
Patch72: virtman-keycombo.patch
Patch73: virtman-vminstall.patch
Patch74: virtman-show-suse-install-repos.patch
Patch75: virtman-s390x-default-to-vminstall.patch
Patch76: virtman-libvirtd-not-running.patch
Patch77: virtman-dont-allow-grub.xen-to-be-deleted.patch
Patch78: virtinst-pvgrub2-bootloader.patch
Patch79: virtinst-nfs-install-sanitize.patch
Patch75: virtman-libvirtd-not-running.patch
Patch76: virtman-dont-allow-grub.xen-to-be-deleted.patch
Patch77: virtinst-pvgrub2-bootloader.patch
Patch78: virtinst-nfs-install-sanitize.patch
# Features or Enhancements
Patch100: virtman-eepro100.patch
Patch101: virtman-default-guest-from-host-os.patch
@ -66,7 +65,7 @@ Patch102: virtman-default-to-xen-pv.patch
Patch103: virtman-autoyast-support.patch
Patch104: virtman-packages.patch
Patch105: virtman-load-stored-uris.patch
Patch106: virtman-s390x-dont-add-graphics-support.patch
Patch106: virtman-s390x-ppc64-arch-support.patch
Patch107: virtman-add-connect-default.patch
Patch120: virtinst-storage-ocfs2.patch
Patch121: virtinst-default-xen-to-qcow2-format.patch
@ -190,7 +189,6 @@ machine).
%patch76 -p1
%patch77 -p1
%patch78 -p1
%patch79 -p1
# Enhancements
%patch100 -p1
%patch101 -p1

View File

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

View File

@ -1,10 +1,10 @@
Enhancement for when no hypervisor can be found locally it opens
the new connection dialog.
Index: virt-manager-1.1.0/virtManager/engine.py
Index: virt-manager-1.2.1/virtManager/engine.py
===================================================================
--- virt-manager-1.1.0.orig/virtManager/engine.py
+++ virt-manager-1.1.0/virtManager/engine.py
@@ -203,9 +203,6 @@ class vmmEngine(vmmGObject):
--- virt-manager-1.2.1.orig/virtManager/engine.py
+++ virt-manager-1.2.1/virtManager/engine.py
@@ -202,9 +202,6 @@ class vmmEngine(vmmGObject):
except:
logging.exception("Error talking to PackageKit")
@ -14,7 +14,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
warnmsg = _("The 'libvirtd' service will need to be started.\n\n"
"After that, virt-manager will connect to libvirt on\n"
"the next application start up.")
@@ -219,7 +216,11 @@ class vmmEngine(vmmGObject):
@@ -218,7 +215,11 @@ class vmmEngine(vmmGObject):
if not connected and do_start:
manager.err.ok(_("Libvirt service must be started"), warnmsg)

View File

@ -6,10 +6,10 @@ Steps to get a KVM VM in the crashed state:
4) Edit the VM's /etc/default/grub file and remove the crashkernel information
and then run grub2-mkconfig /boot/grub2/grub.cfg.
5) Start the VM and within the VM's terminal type "echo 'c' > /proc/sysrq-trigger"
Index: virt-manager-1.1.0/virtManager/manager.py
Index: virt-manager-1.2.1/virtManager/manager.py
===================================================================
--- virt-manager-1.1.0.orig/virtManager/manager.py
+++ virt-manager-1.1.0/virtManager/manager.py
--- virt-manager-1.2.1.orig/virtManager/manager.py
+++ virt-manager-1.2.1/virtManager/manager.py
@@ -864,7 +864,7 @@ class vmmManager(vmmGObjectUI):
show_pause = bool(vm and vm.is_unpauseable())
else:
@ -19,19 +19,11 @@ Index: virt-manager-1.1.0/virtManager/manager.py
if vm and vm.managedsave_supported:
self.change_run_text(vm.has_managed_save())
Index: virt-manager-1.1.0/virtManager/vmmenu.py
Index: virt-manager-1.2.1/virtManager/vmmenu.py
===================================================================
--- virt-manager-1.1.0.orig/virtManager/vmmenu.py
+++ virt-manager-1.1.0/virtManager/vmmenu.py
@@ -22,6 +22,7 @@ from gi.repository import Gtk
from virtManager import config
import platform
+import logging
####################################################################
# Build toolbar new button menu (manager and details toolbar) #
@@ -53,6 +54,7 @@ class _VMMenu(Gtk.Menu):
--- virt-manager-1.2.1.orig/virtManager/vmmenu.py
+++ virt-manager-1.2.1/virtManager/vmmenu.py
@@ -50,6 +50,7 @@ class _VMMenu(Gtk.Menu):
self._parent = src
self._current_vm_cb = current_vm_cb
self._show_open = show_open
@ -39,7 +31,7 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py
self._init_state()
@@ -114,6 +116,7 @@ class VMShutdownMenu(_VMMenu):
@@ -111,6 +112,7 @@ class VMShutdownMenu(_VMMenu):
name = getattr(child, "vmm_widget_name", None)
if name in statemap:
child.set_sensitive(statemap[name])
@ -47,7 +39,7 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py
if name == "reset":
child.set_tooltip_text(None)
@@ -130,7 +133,8 @@ class VMActionMenu(_VMMenu):
@@ -127,7 +129,8 @@ class VMActionMenu(_VMMenu):
self._add_action(_("_Pause"), "suspend", Gtk.STOCK_MEDIA_PAUSE)
self._add_action(_("R_esume"), "resume", Gtk.STOCK_MEDIA_PAUSE)
s = self._add_action(_("_Shut Down"), "shutdown", addcb=False)
@ -57,7 +49,7 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py
self.add(Gtk.SeparatorMenuItem())
self._add_action(_("Clone..."), "clone", None)
@@ -146,7 +150,7 @@ class VMActionMenu(_VMMenu):
@@ -143,7 +146,7 @@ class VMActionMenu(_VMMenu):
def update_widget_states(self, vm):
statemap = {
"run": bool(vm and vm.is_runable()),
@ -66,7 +58,7 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py
"suspend": bool(vm and vm.is_stoppable()),
"resume": bool(vm and vm.is_paused()),
"migrate": bool(vm and vm.is_stoppable()),
@@ -163,6 +167,8 @@ class VMActionMenu(_VMMenu):
@@ -160,6 +163,8 @@ class VMActionMenu(_VMMenu):
child.get_submenu().update_widget_states(vm)
if name in statemap:
child.set_sensitive(statemap[name])

View File

@ -2,11 +2,11 @@ Reference: bnc#867749
When booted into the native kernel don't ask libvirt to make a
local Xen connection and likewise when booted into the Xen kernel
don't ask libvirt to connect to the local qemu.
Index: virt-manager-1.1.0/virtManager/engine.py
Index: virt-manager-1.2.1/virtManager/engine.py
===================================================================
--- virt-manager-1.1.0.orig/virtManager/engine.py
+++ virt-manager-1.1.0/virtManager/engine.py
@@ -227,9 +227,22 @@ class vmmEngine(vmmGObject):
--- virt-manager-1.2.1.orig/virtManager/engine.py
+++ virt-manager-1.2.1/virtManager/engine.py
@@ -226,9 +226,22 @@ class vmmEngine(vmmGObject):
if not uris:
return
logging.debug("About to connect to uris %s", uris)

View File

@ -4,10 +4,10 @@ This is not a normal situation on a suse distro. Split out required
libvirt packages (kvm vs xen). Only install those libvirt packages
for which the host is booted. This patch has a corresponding spec
file change (%define libvirt_kvm_packages and %define libvirt_xen_packages).
Index: virt-manager-1.2.0/setup.py
Index: virt-manager-1.2.1/setup.py
===================================================================
--- virt-manager-1.2.0.orig/setup.py
+++ virt-manager-1.2.0/setup.py
--- virt-manager-1.2.1.orig/setup.py
+++ virt-manager-1.2.1/setup.py
@@ -280,8 +280,11 @@ class configure(Command):
("prefix=", None, "installation prefix"),
("qemu-user=", None,
@ -45,10 +45,10 @@ Index: virt-manager-1.2.0/setup.py
if self.kvm_package_names is not None:
template += "hv_packages = %s\n" % self.kvm_package_names
if self.askpass_package_names is not None:
Index: virt-manager-1.2.0/virtcli/cliconfig.py
Index: virt-manager-1.2.1/virtcli/cliconfig.py
===================================================================
--- virt-manager-1.2.0.orig/virtcli/cliconfig.py
+++ virt-manager-1.2.0/virtcli/cliconfig.py
--- virt-manager-1.2.1.orig/virtcli/cliconfig.py
+++ virt-manager-1.2.1/virtcli/cliconfig.py
@@ -84,7 +84,8 @@ class _CLIConfig(object):
_get_param("preferred_distros", ""))
self.hv_packages = _split_list(_get_param("hv_packages", ""))
@ -59,10 +59,10 @@ Index: virt-manager-1.2.0/virtcli/cliconfig.py
self.default_graphics = _get_param("default_graphics", "spice")
self.default_hvs = _split_list(_get_param("default_hvs", ""))
Index: virt-manager-1.2.0/virtManager/config.py
Index: virt-manager-1.2.1/virtManager/config.py
===================================================================
--- virt-manager-1.2.0.orig/virtManager/config.py
+++ virt-manager-1.2.0/virtManager/config.py
--- virt-manager-1.2.1.orig/virtManager/config.py
+++ virt-manager-1.2.1/virtManager/config.py
@@ -165,7 +165,8 @@ class vmmConfig(object):
self.default_qemu_user = CLIConfig.default_qemu_user
self.preferred_distros = CLIConfig.preferred_distros
@ -73,11 +73,11 @@ Index: virt-manager-1.2.0/virtManager/config.py
self.askpass_package = CLIConfig.askpass_package
self.default_graphics_from_config = CLIConfig.default_graphics
self.default_hvs = CLIConfig.default_hvs
Index: virt-manager-1.2.0/virtManager/engine.py
Index: virt-manager-1.2.1/virtManager/engine.py
===================================================================
--- virt-manager-1.2.0.orig/virtManager/engine.py
+++ virt-manager-1.2.0/virtManager/engine.py
@@ -193,21 +193,18 @@ class vmmEngine(vmmGObject):
--- virt-manager-1.2.1.orig/virtManager/engine.py
+++ virt-manager-1.2.1/virtManager/engine.py
@@ -192,21 +192,18 @@ class vmmEngine(vmmGObject):
ret = None
try:

View File

@ -1,87 +0,0 @@
Reference: bnc#888173
Force the use of vm-install on s390. The viewer in virt-manager
and virt-viewer needs a graphics adapter defined in the VM to show
the display correctly. On s390 you can't have a graphics adapter
(you get the error 'No PCI buses available'). Vm-install gets
around this problem by starting an xterm window in which to run the
VM.
Index: virt-manager-1.1.0/virtManager/engine.py
===================================================================
--- virt-manager-1.1.0.orig/virtManager/engine.py
+++ virt-manager-1.1.0/virtManager/engine.py
@@ -27,6 +27,7 @@ import re
import Queue
import threading
import traceback
+import platform
import os
from subprocess import *
@@ -821,7 +822,7 @@ class vmmEngine(vmmGObject):
obj.connect("action-clone-domain", self._do_show_clone)
obj.connect("action-show-domain", self._do_show_vm)
obj.connect("action-show-preferences", self._do_show_preferences)
- obj.connect("action-show-create", self._do_show_create)
+ obj.connect("action-show-create", self._do_show_create_virtinstall)
obj.connect("action-show-create-vminstall", self._do_show_create_vminstall)
obj.connect("action-show-about", self._do_show_about)
obj.connect("action-show-host", self._do_show_host)
@@ -869,7 +870,20 @@ class vmmEngine(vmmGObject):
self.windowCreate = None
def _do_show_create_vminstall(self, src, uri):
- self._do_show_create(src, uri, True)
+ # When pop-down menu is selected
+ if platform.machine() == "s390x":
+ # For s390, the pop-down is virt-install
+ self._do_show_create(src, uri, False)
+ else:
+ self._do_show_create(src, uri, True)
+
+ def _do_show_create_virtinstall(self, src, uri):
+ # When 'Create a new virtual machine' button is selected
+ if platform.machine() == "s390x":
+ # For s390, the button is vm-install
+ self._do_show_create(src, uri, True)
+ else:
+ self._do_show_create(src, uri, False)
def _do_show_create(self, src, uri, use_vminstall=False):
if uri is None:
@@ -952,7 +966,10 @@ class vmmEngine(vmmGObject):
def show_domain_creator(self, uri):
self.show_manager()
- self._do_show_create(self.get_manager(), uri)
+ if platform.machine() == "s390x":
+ self._do_show_create(self.get_manager(), uri, True)
+ else:
+ self._do_show_create(self.get_manager(), uri, False)
def _find_vm_by_cli_str(self, uri, clistr):
Index: virt-manager-1.1.0/virtManager/vmmenu.py
===================================================================
--- virt-manager-1.1.0.orig/virtManager/vmmenu.py
+++ virt-manager-1.1.0/virtManager/vmmenu.py
@@ -21,6 +21,7 @@
from gi.repository import Gtk
from virtManager import config
+import platform
####################################################################
# Build toolbar new button menu (manager and details toolbar) #
@@ -33,8 +34,10 @@ def build_new_button_menu(widget, vminst
widget.set_menu(menu)
vminstallimg = Gtk.Image.new_from_icon_name(icon_name, Gtk.IconSize.MENU)
-
- vminstall = Gtk.ImageMenuItem.new_with_mnemonic(_("_Vm-install"))
+ if platform.machine() == "s390x":
+ vminstall = Gtk.ImageMenuItem.new_with_mnemonic(_("_Virt-install"))
+ else:
+ vminstall = Gtk.ImageMenuItem.new_with_mnemonic(_("_Vm-install"))
vminstall.set_image(vminstallimg)
vminstall.show()
vminstall.connect("activate", vminstall_cb)

View File

@ -1,51 +0,0 @@
Reference: bnc#869024
Add s390x support
Index: virt-manager-1.2.1/virtinst/guest.py
===================================================================
--- virt-manager-1.2.1.orig/virtinst/guest.py
+++ virt-manager-1.2.1/virtinst/guest.py
@@ -120,7 +120,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.is_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_object = None
@@ -605,11 +608,13 @@ class Guest(XMLBuilder):
self.conn.check_support(
self.conn.SUPPORT_CONN_VIRTIO_CONSOLE)):
dev.target_type = "virtio"
+ elif self.os.is_s390x():
+ dev.target_type = "sclp"
self.add_device(dev)
def add_default_video_device(self):
- if self.os.is_container():
+ if self.os.is_container() or self.os.is_s390x():
return
if self.get_devices("video"):
return
@@ -654,7 +659,7 @@ class Guest(XMLBuilder):
return
if self.os.is_container():
return
- if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64"]:
+ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64", "s390x"]:
return
self.add_device(VirtualGraphics(self.conn))
@@ -957,7 +962,7 @@ class Guest(XMLBuilder):
if self._hv_only_supports_virtio():
return True
- if self.os.is_x86():
+ if self.os.is_x86() or self.os.is_s390x():
return True
if (self.os.is_arm_vexpress() and

View File

@ -0,0 +1,125 @@
Reference: bnc#869024
Add s390x support
Index: virt-manager-1.2.1/virtinst/guest.py
===================================================================
--- virt-manager-1.2.1.orig/virtinst/guest.py
+++ virt-manager-1.2.1/virtinst/guest.py
@@ -120,7 +120,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.is_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_object = None
@@ -605,11 +608,13 @@ class Guest(XMLBuilder):
self.conn.check_support(
self.conn.SUPPORT_CONN_VIRTIO_CONSOLE)):
dev.target_type = "virtio"
+ elif self.os.is_s390x():
+ dev.target_type = "sclp"
self.add_device(dev)
def add_default_video_device(self):
- if self.os.is_container():
+ if self.os.is_container() or self.os.is_s390x():
return
if self.get_devices("video"):
return
@@ -654,7 +659,7 @@ class Guest(XMLBuilder):
return
if self.os.is_container():
return
- if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64"]:
+ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64", "s390x"]:
return
self.add_device(VirtualGraphics(self.conn))
@@ -957,7 +962,7 @@ class Guest(XMLBuilder):
if self._hv_only_supports_virtio():
return True
- if self.os.is_x86():
+ if self.os.is_x86() or self.os.is_s390x():
return True
if (self.os.is_arm_vexpress() and
--- virt-manager-1.2.1/virtinst/urlfetcher.py.orig 2015-09-10 15:05:22.973065632 -0600
+++ virt-manager-1.2.1/virtinst/urlfetcher.py 2015-09-10 15:07:15.127199219 -0600
@@ -371,6 +371,12 @@ def _distroFromSUSEContent(fetcher, arch
arch = "x86_64"
elif cbuf.find("i586") != -1:
arch = "i586"
+ elif cbuf.find("s390x") != -1:
+ arch = "s390x"
+ elif cbuf.find("ppc64") != -1:
+ arch = "ppc64"
+ elif cbuf.find("ppc64le") != -1:
+ arch = "ppc64le"
dclass = GenericDistro
if distribution:
@@ -383,6 +389,10 @@ def _distroFromSUSEContent(fetcher, arch
dclass = SLEDDistro
if distro_version is None:
distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[4]]
+ elif re.match(".*Open Enterprise Server*", distribution[1]):
+ dclass = SLESDistro
+ if distro_version is None:
+ distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[4]]
elif re.match(".*openSUSE.*", distribution[1]):
dclass = OpensuseDistro
if distro_version is None:
@@ -936,16 +946,23 @@ class SuseDistro(Distro):
oldkern += "64"
oldinit += "64"
- # Tested with Opensuse >= 10.2, 11, and sles 10
- self._hvm_kernel_paths = [("boot/%s/loader/linux" % self.arch,
- "boot/%s/loader/initrd" % self.arch)]
- # Tested with Opensuse 10.0
- self._hvm_kernel_paths.append(("boot/loader/%s" % oldkern,
- "boot/loader/%s" % oldinit))
-
- # Matches Opensuse > 10.2 and sles 10
- self._xen_kernel_paths = [("boot/%s/vmlinuz-xen" % self.arch,
- "boot/%s/initrd-xen" % self.arch)]
+ if self.arch == "s390x" or \
+ self.arch == "ppc64" or self.arch == "ppc64le":
+ self._hvm_kernel_paths = [ ("boot/%s/linux" % self.arch,
+ "boot/%s/initrd" % self.arch) ]
+ # No Xen on s390x and ppc
+ self._xen_kernel_paths = []
+ else:
+ # Tested with Opensuse >= 10.2, 11, and sles 10
+ self._hvm_kernel_paths = [("boot/%s/loader/linux" % self.arch,
+ "boot/%s/loader/initrd" % self.arch)]
+ # Tested with Opensuse 10.0
+ self._hvm_kernel_paths.append(("boot/loader/%s" % oldkern,
+ "boot/loader/%s" % oldinit))
+
+ # Matches Opensuse > 10.2 and sles 10
+ self._xen_kernel_paths = [("boot/%s/vmlinuz-xen" % self.arch,
+ "boot/%s/initrd-xen" % self.arch)]
def _variantFromVersion(self):
distro_version = self.version_from_content[1].strip()
@@ -973,6 +990,13 @@ class SuseDistro(Distro):
self._variantFromVersion()
self.os_variant = self._detect_osdict_from_url()
+
+ # Reset kernel name for sle11 source on s390x
+ if self.arch == "s390x":
+ if self.os_variant == "sles11" or self.os_variant == "sled11":
+ self._hvm_kernel_paths = [ ("boot/%s/vmrdr.ikr" % self.arch,
+ "boot/%s/initrd" % self.arch) ]
+
return True
def _get_method_arg(self):