diff --git a/grub2-fix-menu-in-xen-host-server.patch b/grub2-fix-menu-in-xen-host-server.patch index cec46d9..e4f7019 100644 --- a/grub2-fix-menu-in-xen-host-server.patch +++ b/grub2-fix-menu-in-xen-host-server.patch @@ -20,11 +20,11 @@ This patch fixes above three issues. util/grub.d/20_linux_xen.in | 6 ++++-- 3 files changed, 19 insertions(+), 4 deletions(-) -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 76133b4..defc364 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -239,6 +239,11 @@ version_test_gt () +Index: grub-2.00/util/grub-mkconfig_lib.in +=================================================================== +--- grub-2.00.orig/util/grub-mkconfig_lib.in ++++ grub-2.00/util/grub-mkconfig_lib.in +@@ -235,6 +235,11 @@ version_test_gt () *.old:*.old) ;; *.old:*) version_test_gt_a="`echo -n "$version_test_gt_a" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=gt ;; *:*.old) version_test_gt_b="`echo -n "$version_test_gt_b" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=ge ;; @@ -36,20 +36,34 @@ index 76133b4..defc364 100644 esac version_test_numeric "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" return "$?" -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index e7a180e..a02bf17 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -150,15 +150,23 @@ EOF +Index: grub-2.00/util/grub.d/10_linux.in +=================================================================== +--- grub-2.00.orig/util/grub.d/10_linux.in ++++ grub-2.00/util/grub.d/10_linux.in +@@ -150,15 +150,37 @@ EOF EOF } +# bnc#757895 - Grub2 menu items incorrect when "Xen Virtual Machines Host Server" selected +# check kernel's flavor to prevent xen kernel from booting natively without hypervisor -+is_not_xen () ++# bnc#825528 - grub2-mkconfig doesn't find kernel in xen domU ++# check xen kernel in domU and process it ++is_not_xen_kernel_in_dom0 () +{ + flavor=`echo $1 | sed -e "s,.*-,,g"` -+ test "x$flavor" != xxen ++ ++ if [ "x${flavor}" = "xxen" ] ; then ++ # Determining Virtual Machine Identities ++ if [ -e /proc/xen -a ! -e /proc/xen/xsd_port ]; then ++ # We're in DomU ++ return 0 ++ else ++ # We're in Dom0 or No Xen hypervisor present at all ++ return 1 ++ fi ++ fi ++ ++ return 0 +} + machine=`uname -m` @@ -57,20 +71,20 @@ index e7a180e..a02bf17 100644 xi?86 | xx86_64) list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do - if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi -+ if grub_file_is_not_garbage "$i" && is_not_xen "$i" ; then echo -n "$i " ; fi ++ if grub_file_is_not_garbage "$i" && is_not_xen_kernel_in_dom0 "$i" ; then echo -n "$i " ; fi done` ;; *) list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do - if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi -+ if grub_file_is_not_garbage "$i" && is_not_xen "$i" ; then echo -n "$i " ; fi ++ if grub_file_is_not_garbage "$i" && is_not_xen_kernel_in_dom0 "$i" ; then echo -n "$i " ; fi done` ;; esac -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 1d94502..fd103f1 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -166,8 +166,10 @@ file_is_not_sym () { +Index: grub-2.00/util/grub.d/20_linux_xen.in +=================================================================== +--- grub-2.00.orig/util/grub.d/20_linux_xen.in ++++ grub-2.00/util/grub.d/20_linux_xen.in +@@ -171,8 +171,10 @@ file_is_not_sym () { esac } @@ -83,6 +97,3 @@ index 1d94502..fd103f1 100644 done` prepare_boot_cache= boot_device_id= --- -1.7.3.4 - diff --git a/grub2.changes b/grub2.changes index e493705..b9f0b0a 100644 --- a/grub2.changes +++ b/grub2.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jul 9 10:54:41 UTC 2013 - mchang@suse.com + +- refresh grub2-fix-menu-in-xen-host-server.patch: In domU we + have to add xen kernel to config. (bnc#825528) + ------------------------------------------------------------------- Wed Jun 26 17:02:08 UTC 2013 - elchevive@opensuse.org