diff options
Diffstat (limited to 'libre/grub2/parabola_grub_mkconfig_fixes.patch')
-rw-r--r-- | libre/grub2/parabola_grub_mkconfig_fixes.patch | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/libre/grub2/parabola_grub_mkconfig_fixes.patch b/libre/grub2/parabola_grub_mkconfig_fixes.patch new file mode 100644 index 000000000..d199dc86a --- /dev/null +++ b/libre/grub2/parabola_grub_mkconfig_fixes.patch @@ -0,0 +1,150 @@ +diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in +index df3b733..65a7fff 100644 +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -213,6 +213,8 @@ export GRUB_DEFAULT \ + GRUB_THEME \ + GRUB_GFXPAYLOAD_LINUX \ + GRUB_DISABLE_OS_PROBER \ ++ GRUB_COLOR_NORMAL \ ++ GRUB_COLOR_HIGHLIGHT \ + GRUB_INIT_TUNE \ + GRUB_SAVEDEFAULT \ + GRUB_ENABLE_CRYPTODISK \ +diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in +index 765bfdc..b148558 100644 +--- a/util/grub.d/00_header.in ++++ b/util/grub.d/00_header.in +@@ -115,6 +115,14 @@ cat <<EOF + + EOF + ++if [ x$GRUB_COLOR_NORMAL != x ] && [ x$GRUB_COLOR_HIGHLIGHT != x ] ; then ++ cat << EOF ++set menu_color_normal=$GRUB_COLOR_NORMAL ++set menu_color_highlight=$GRUB_COLOR_HIGHLIGHT ++ ++EOF ++fi ++ + serial=0; + gfxterm=0; + for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index 8c75fab..0d4a137 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -31,7 +31,7 @@ + if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then + OS=GNU/Linux + else +- OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ OS="${GRUB_DISTRIBUTOR}" + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}" + fi + +@@ -87,6 +87,8 @@ linux_entry () + case $type in + recovery) + title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;; ++ fallback) ++ title="$(gettext_printf "%s, with Linux %s (Fallback initramfs)" "${os}" "${version}")" ;; + *) + title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; + esac +@@ -100,7 +102,7 @@ linux_entry () + else + echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" + fi +- if [ x$type != xrecovery ] ; then ++ if [ x$type != xrecovery ] && [ x$type != xfallback ] ; then + save_default_entry | sed -e "s/^/\t/" + fi + +@@ -132,7 +134,8 @@ linux_entry () + fi + printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" + fi +- message="$(gettext_printf "Loading Linux %s ..." ${version})" ++ ++ message="$(gettext_printf "Loading Linux %s ..." "${version}")" + sed "s/^/$submenu_indentation/" << EOF + echo '$message' + linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} +@@ -181,13 +184,29 @@ while [ "x$list" != "x" ] ; do + alt_version=`echo $version | sed -e "s,\.old$,,g"` + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + ++ if test -e "/etc/arch-release" ; then ++ if echo "${basename}" | grep -q 'vmlinuz-linux' ; then ++ version="`echo "${basename}" | sed -e 's,vmlinuz-linux,,g'`" ++ ++ if [ "x${version}" = "x" ] ; then ++ version="core repo kernel" ++ else ++ version="`echo "${version}" | sed -e 's,-,,g'`" ++ version="${version} kernel" ++ fi ++ fi ++ fi ++ + initrd= ++ initrd_arch="`echo "${basename}" | sed -e 's,vmlinuz,initramfs,g'`" ++ + for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \ + "initrd-${version}" "initramfs-${version}.img" \ + "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ + "initrd-${alt_version}" "initramfs-${alt_version}.img" \ + "initramfs-genkernel-${version}" \ +- "initramfs-genkernel-${alt_version}"; do ++ "initramfs-genkernel-${alt_version}" \ ++ "${initrd_arch}.img" ; do + if test -e "${dirname}/${i}" ; then + initrd="$i" + break +@@ -215,6 +234,22 @@ while [ "x$list" != "x" ] ; do + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if test -e "/etc/arch-release" ; then ++ is_first_entry="false" ++ ++ linux_entry "${OS}" "${version}" true \ ++ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++ ++ for i in "${initrd_arch}-fallback.img" "initramfs-${version}-fallback.img" ; do ++ if test -e "${dirname}/${i}" ; then ++ initrd="${i}" ++ linux_entry "${OS}" "${version}" fallback \ ++ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++ break ++ fi ++ done ++ fi ++ + if [ "x$is_first_entry" = xtrue ]; then + linux_entry "${OS}" "${version}" simple \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" +@@ -228,8 +263,11 @@ while [ "x$list" != "x" ] ; do + echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {" + fi + ++ if ! test -e "/etc/arch-release" ; then + linux_entry "${OS}" "${version}" advanced \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++ fi ++ + if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then + linux_entry "${OS}" "${version}" recovery \ + "single ${GRUB_CMDLINE_LINUX}" +@@ -241,8 +279,10 @@ done + + # If at least one kernel was found, then we need to + # add a closing '}' for the submenu command. ++if ! test -e "/etc/arch-release" ; then + if [ x"$is_first_entry" != xtrue ]; then + echo '}' + fi ++fi + + echo "$title_correction_code" |