grub2/grub2-fix-Grub2-with-SUSE-Xen-package-install.patch
Michael Chang 2764c99fe0 Accepting request 212604 from home:arvidjaar:grub2-next
I think it is good time to update to 2.02 so it can get more testing.
Although internal changes are pretty extensive, externally it should be
pretty much the same. The main user visible changes are

 - autogen is not used anymore, so we can finally simplify patches
   and recreate files during RPM build. So generated files need not be
   patched and shipped any more.

 - GRUB_HIDDEN_TIMEOUT is deprecated, we should use GRUB_TIMEOUT_STYLE
   instead. This will need perl-Bootloader and YaST changes. Old config
   is still accpepted so nothing should be broken.

 - native pvgrub2 support for Xen PV guests.

 - ARM support (32 and 64 bit), although it has rough edges.

OBS-URL: https://build.opensuse.org/request/show/212604
OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=62
2014-01-06 03:50:43 +00:00

44 lines
1.8 KiB
Diff

From 86fdefd6b0d447cd7d3d80f794fcd4df2aa96792 Mon Sep 17 00:00:00 2001
From: Michael Chang <mchang@suse.com>
Date: Thu, 30 Aug 2012 15:27:50 +0800
Subject: [PATCH] fix Grub2 with SUSE Xen package install
References: bnc#774666
Patch-Mainline: no
This fixes Grub2 does not offer a Xen entry after installing hypervisor
and tools, which is caused by install sequence of xen-kernel and xen is
unpredictable.
By judging the system is dom0 with xen kernel installed, the xen_list
will be set to /boot/xen.gz if it's empty. Because the xen kernel would
trigger the config updated prior to the xen package installation.
---
util/grub.d/20_linux_xen.in | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
Index: grub-2.02~beta2/util/grub.d/20_linux_xen.in
===================================================================
--- grub-2.02~beta2.orig/util/grub.d/20_linux_xen.in
+++ grub-2.02~beta2/util/grub.d/20_linux_xen.in
@@ -170,6 +170,19 @@ file_is_not_sym () {
xen_list=`for i in /boot/xen*.gz; do
if grub_file_is_not_garbage "$i" && file_is_not_sym "$i" && test ! -L "$i" ; then echo -n "$i " ; fi
done`
+
+# bnc#774666 - Grub2 does not offer a Xen entry after installing hypervisor and tools
+# This is a workaround to the install sequence of xen-kernel and xen is unpredictable
+if [ "x${xen_list}" = "x" ] &&
+# If the code reaches here, it means that xen-kernel has been installed, but xen hypervisor
+# is missing. This is not likely a sane condition for dom0. We assume this is xen-kernel
+# triggers config update prior to the xen package.
+# Test the system is dom0, if it is, we set the xen_list to /boot/xen.gz which should become
+# available after xen package installed.
+ [ -e /proc/xen/xsd_port -o ! -e /proc/xen ]; then
+ xen_list="/boot/xen.gz"
+fi
+
prepare_boot_cache=
boot_device_id=