Bail out if trying to run grub-mkconfig during upgrade to 2.00 (e.g.

while configuring a kernel image), since the old /etc/grub.d/00_header
conffile breaks until such time as grub-common is configured.
This commit is contained in:
Colin Watson 2012-09-13 16:07:22 +01:00
parent 136f47b985
commit a60fec8f3c
4 changed files with 41 additions and 0 deletions

3
debian/changelog vendored
View File

@ -1,6 +1,9 @@
grub2 (2.00-3) UNRELEASED; urgency=low
* Use dh-autoreconf.
* Bail out if trying to run grub-mkconfig during upgrade to 2.00 (e.g.
while configuring a kernel image), since the old /etc/grub.d/00_header
conffile breaks until such time as grub-common is configured.
-- Colin Watson <cjwatson@debian.org> Mon, 10 Sep 2012 00:23:08 +0100

View File

@ -0,0 +1,30 @@
Description: Bail out if trying to run grub-mkconfig during upgrade to 2.00
Since files in /etc/grub.d/ are conffiles, they are not put in place until
grub-common is configured, meaning that they may be out of sync with the
parts of grub-mkconfig that reside in /usr/. In GRUB 1.99,
/etc/grub.d/00_header contained a reference to ${GRUB_PREFIX}/video.lst.
This and other code from 1.99 breaks with 2.00's grub-mkconfig. Deferring
this to when grub-PLATFORM.postinst eventually runs is safe and avoids this
problem.
Author: Colin Watson <cjwatson@ubuntu.com>
Forwarded: no
Last-Update: 2012-09-13
Index: b/util/grub-mkconfig.in
===================================================================
--- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in
@@ -99,6 +99,13 @@
esac
done
+if fgrep -qs '${GRUB_PREFIX}/video.lst' "${grub_mkconfig_dir}/00_header"; then
+ echo "GRUB >= 2.00 has been unpacked but not yet configured." >&2
+ echo "grub-mkconfig will not work until the upgrade is complete." >&2
+ echo "It should run later as part of configuring the new GRUB packages." >&2
+ exit 0
+fi
+
if [ "x$EUID" = "x" ] ; then
EUID=`id -u`
fi

View File

@ -15,3 +15,4 @@ efi_disk_cache.patch
restore_mkdevicemap.patch
efi_mmap_size.patch
gettext_quiet.patch
mkconfig_mid_upgrade.patch

View File

@ -99,6 +99,13 @@ do
esac
done
if fgrep -qs '${GRUB_PREFIX}/video.lst' "${grub_mkconfig_dir}/00_header"; then
echo "GRUB >= 2.00 has been unpacked but not yet configured." >&2
echo "grub-mkconfig will not work until the upgrade is complete." >&2
echo "It should run later as part of configuring the new GRUB packages." >&2
exit 0
fi
if [ "x$EUID" = "x" ] ; then
EUID=`id -u`
fi