summaryrefslogtreecommitdiffstats
path: root/debian/patches/mkconfig-ubuntu-recovery.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/mkconfig-ubuntu-recovery.patch')
-rw-r--r--debian/patches/mkconfig-ubuntu-recovery.patch107
1 files changed, 107 insertions, 0 deletions
diff --git a/debian/patches/mkconfig-ubuntu-recovery.patch b/debian/patches/mkconfig-ubuntu-recovery.patch
new file mode 100644
index 0000000..1fa5bde
--- /dev/null
+++ b/debian/patches/mkconfig-ubuntu-recovery.patch
@@ -0,0 +1,107 @@
+From 13c9a7101d2611bbc02b464ef4e32b02cfc7860b Mon Sep 17 00:00:00 2001
+From: Colin Watson <cjwatson@ubuntu.com>
+Date: Mon, 13 Jan 2014 12:13:06 +0000
+Subject: "single" -> "recovery" when friendly-recovery is installed
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If configured with --enable-ubuntu-recovery, also set nomodeset for
+recovery mode, and disable 'set gfxpayload=keep' even if the system
+normally supports it. See
+https://launchpad.net/ubuntu/+spec/desktop-o-xorg-tools-and-processes.
+
+Author: Stéphane Graber <stgraber@ubuntu.com>
+Forwarded: no
+Last-Update: 2013-12-25
+
+Patch-Name: mkconfig-ubuntu-recovery.patch
+---
+ configure.ac | 11 +++++++++++
+ util/grub.d/10_linux.in | 16 ++++++++++++++--
+ util/grub.d/30_os-prober.in | 2 +-
+ 3 files changed, 26 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 7517fc49d..74778a6f8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1904,6 +1904,17 @@ fi
+ AC_SUBST([LIBZFS])
+ AC_SUBST([LIBNVPAIR])
+
++AC_ARG_ENABLE([ubuntu-recovery],
++ [AS_HELP_STRING([--enable-ubuntu-recovery],
++ [adjust boot options for the Ubuntu recovery mode (default=no)])],
++ [], [enable_ubuntu_recovery=no])
++if test x"$enable_ubuntu_recovery" = xyes ; then
++ UBUNTU_RECOVERY=1
++else
++ UBUNTU_RECOVERY=0
++fi
++AC_SUBST([UBUNTU_RECOVERY])
++
+ LIBS=""
+
+ AC_SUBST([FONT_SOURCE])
+diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
+index 46696dd66..f215e3213 100644
+--- a/util/grub.d/10_linux.in
++++ b/util/grub.d/10_linux.in
+@@ -20,6 +20,7 @@ set -e
+ prefix="@prefix@"
+ exec_prefix="@exec_prefix@"
+ datarootdir="@datarootdir@"
++ubuntu_recovery="@UBUNTU_RECOVERY@"
+
+ . "$pkgdatadir/grub-mkconfig_lib"
+
+@@ -84,6 +85,15 @@ esac
+
+ title_correction_code=
+
++if [ -x /lib/recovery-mode/recovery-menu ]; then
++ GRUB_CMDLINE_LINUX_RECOVERY=recovery
++else
++ GRUB_CMDLINE_LINUX_RECOVERY=single
++fi
++if [ "$ubuntu_recovery" = 1 ]; then
++ GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY nomodeset"
++fi
++
+ linux_entry ()
+ {
+ os="$1"
+@@ -123,7 +133,9 @@ linux_entry ()
+ if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then
+ echo " load_video" | sed "s/^/$submenu_indentation/"
+ fi
+- echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/"
++ if [ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]; then
++ echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/"
++ fi
+ fi
+
+ echo " insmod gzio" | sed "s/^/$submenu_indentation/"
+@@ -288,7 +300,7 @@ while [ "x$list" != "x" ] ; do
+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
+ if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
+ linux_entry "${OS}" "${version}" recovery \
+- "single ${GRUB_CMDLINE_LINUX}"
++ "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}"
+ fi
+
+ list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '`
+diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in
+index 5984e92d2..37d5f05b5 100644
+--- a/util/grub.d/30_os-prober.in
++++ b/util/grub.d/30_os-prober.in
+@@ -223,7 +223,7 @@ EOF
+ fi
+
+ onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
+- recovery_params="$(echo "${LPARAMS}" | grep single)" || true
++ recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true
+ counter=1
+ while echo "$used_osprober_linux_ids" | grep 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id' > /dev/null; do
+ counter=$((counter+1));