setupboot_grub2 now supports submenus, so we can reduce our delta vs
upstream a bit.
I started by extracting 20_linux_xen from
http://snapshot.debian.org/archive/debian/20130703T094657Z/pool/main/g/grub2/grub-common_1.99-27%2Bdeb7u2_amd64.deb
and then applying the patch at
http://savannah.gnu.org/file/grub.patch?file_id=32276 (the patch from
grub bug #42420 at http://savannah.gnu.org/bugs/?43420) and
reinstating the comment at the top of the file (modified to drop the
reference to the Debian bug.
This left me with some spurious changes:
@@ -93,7 +93,7 @@ linux_entry ()
if test ! -e "${xen_dirname}/${xenpolicy}" ; then
return
fi
- xen_args=`echo $xen_args flask=enforcing`
+ xen_args=`echo $xen_args flask_enabled=1 flask_enforcing=1`
if ${recovery} ; then
title="$(gettext_quoted "%s, with Xen %s (XSM enabled) and Linux %s (recovery mode)")"
else
@@ -137,7 +137,6 @@ EOF
echo '$message'
module ${rel_dirname}/${xenpolicy}
EOF
- fi
cat << EOF
}
EOF
I think these are bugs in the patch in the grub BTS, which were fixed
while iterating over the XSM series in osstest but didn't make it into
the upstream version, the fixes to those bugs are reverted byu the
above. So I have manually reverted them.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Wei.Lui@citrix.com
Cc: longtaox.pang@intel.com
#! /bin/sh
# Copied from the identically named file in grub-common 1.99-27+deb7u2.
-# This version fixed Debian bug #690538 and GRUB bug #43420.
+# This version fixes GRUB bug #43420.
set -e
xen_dirname=`dirname ${current_xen}`
rel_xen_dirname=`make_system_path_relative_to_its_root $xen_dirname`
xen_version=`echo $xen_basename | sed -e "s,.gz$,,g;s,^xen-,,g"`
+ echo "submenu \"Xen ${xen_version}\" {"
while [ "x$list" != "x" ] ; do
linux=`version_find_latest $list`
echo "Found linux image: $linux" >&2
list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
done
+ echo "}"
xen_list=`echo $xen_list | tr ' ' '\n' | grep -vx $current_xen | tr '\n' ' '`
done