b94eda4466
5347b524-evtchn-eliminate-64k-ports-limitation.patch 53aac342-x86-HVM-consolidate-and-sanitize-CR4-guest-reserved-bit-determination.patch 53b16cd4-VT-d-ATS-correct-and-clean-up-dev_invalidate_iotlb.patch 53b56de1-properly-reference-count-DOMCTL_-un-pausedomain-hypercalls.patch 53cfdcc7-avoid-crash-when-doing-shutdown-with-active-cpupools.patch 53cfddaf-x86-mem_event-validate-the-response-vcpu_id-before-acting-on-it.patch 53cfdde4-x86-mem_event-prevent-underflow-of-vcpu-pause-counts.patch - bnc#886801 - xl vncviewer: The first domu can be accessed by any id 53c9151b-Fix-xl-vncviewer-accesses-port-0-by-any-invalid-domid.patch - Upstream pygrub bug fix 5370e03b-pygrub-fix-error-handling-if-no-valid-partitions-are-found.patch - Fix pygrub to handle old 32 bit VMs pygrub-boot-legacy-sles.patch (Mike Latimer) - Remove xen-vmresync utility. It is an old Platespin Orchestrate utility that should have never been included in the Xen package. Updated xen.spec - Rework xen-destroy utility included in xen-utils bnc#885292 and bnc#886063 Updated xen-utils-0.1.tar.bz2 - bnc#886063 - Xen monitor fails (xl list --long output different from xm list --long output) - bnc#885292 - VirtualDomain: pid_status does not know how to check status on SLE12 OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=322
64 lines
2.4 KiB
Diff
64 lines
2.4 KiB
Diff
Index: xen-4.4.0-testing/tools/pygrub/src/pygrub
|
|
===================================================================
|
|
--- xen-4.4.0-testing.orig/tools/pygrub/src/pygrub
|
|
+++ xen-4.4.0-testing/tools/pygrub/src/pygrub
|
|
@@ -452,7 +452,7 @@ class Grub:
|
|
self.cf.filename = f
|
|
break
|
|
if self.__dict__.get('cf', None) is None:
|
|
- raise RuntimeError, "couldn't find bootloader config file in the image provided."
|
|
+ return
|
|
f = fs.open_file(self.cf.filename)
|
|
# limit read size to avoid pathological cases
|
|
buf = f.read(FS_READ_MAX)
|
|
@@ -598,6 +598,20 @@ def run_grub(file, entry, fs, cfg_args):
|
|
|
|
g = Grub(file, fs)
|
|
|
|
+ # If missing config or grub has no menu entries to select, look for
|
|
+ # vmlinuz-xen and initrd-xen in /boot
|
|
+ if g.__dict__.get('cf', None) is None or len(g.cf.images) == 0 or re.search(r"xen(-pae)?\.gz",g.cf.images[0].kernel[1]):
|
|
+ if not list_entries:
|
|
+ chosencfg = { "kernel": None, "ramdisk": None, "args": "" }
|
|
+ chosencfg = sniff_xen_kernel(fs, incfg)
|
|
+ if chosencfg["kernel"] and chosencfg["ramdisk"]:
|
|
+ chosencfg["args"] = cfg_args
|
|
+ return chosencfg
|
|
+ if g.__dict__.get('cf', None) is None:
|
|
+ raise RuntimeError, "couldn't find bootloader config file in the image provided."
|
|
+ else:
|
|
+ return
|
|
+
|
|
if list_entries:
|
|
for i in range(len(g.cf.images)):
|
|
img = g.cf.images[i]
|
|
@@ -693,6 +707,19 @@ def sniff_netware(fs, cfg):
|
|
|
|
return cfg
|
|
|
|
+def sniff_xen_kernel(fs, cfg):
|
|
+ if not cfg["kernel"]:
|
|
+ if fs.file_exists('/boot/vmlinuz-xen'):
|
|
+ cfg["kernel"] = '/boot/vmlinuz-xen'
|
|
+ elif fs.file_exists('/boot/vmlinuz-xenpae'):
|
|
+ cfg["kernel"] = '/boot/vmlinuz-xenpae'
|
|
+ if cfg["kernel"] and not cfg["ramdisk"]:
|
|
+ if fs.file_exists('/boot/initrd-xen'):
|
|
+ cfg["ramdisk"] = '/boot/initrd-xen'
|
|
+ elif fs.file_exists('/boot/initrd-xenpae'):
|
|
+ cfg["ramdisk"] = '/boot/initrd-xenpae'
|
|
+ return cfg
|
|
+
|
|
def format_sxp(kernel, ramdisk, args):
|
|
s = "linux (kernel %s)" % kernel
|
|
if ramdisk:
|
|
@@ -773,7 +800,7 @@ if __name__ == "__main__":
|
|
debug = False
|
|
not_really = False
|
|
output_format = "sxp"
|
|
- output_directory = "/var/run/xend/boot"
|
|
+ output_directory = "/var/run/xen"
|
|
|
|
# what was passed in
|
|
incfg = { "kernel": None, "ramdisk": None, "args": "" }
|