diff options
-rw-r--r-- | libre/grub2/PKGBUILD | 10 | ||||
-rw-r--r-- | libre/grub2/parabola_grub_mkconfig_fixes.patch | 150 |
2 files changed, 155 insertions, 5 deletions
diff --git a/libre/grub2/PKGBUILD b/libre/grub2/PKGBUILD index 25a24a956..df7449cba 100644 --- a/libre/grub2/PKGBUILD +++ b/libre/grub2/PKGBUILD @@ -13,7 +13,7 @@ _grub_915_ver=9 pkgname=('grub2-common' 'grub2-bios' 'grub2-efi-i386') pkgbase=grub2 pkgver=2.00beta3 -pkgrel=1 +pkgrel=1.1 url="http://www.gnu.org/software/grub/" arch=('i686' 'x86_64') license=('GPL3') @@ -27,7 +27,7 @@ source=("http://alpha.gnu.org/gnu/grub/grub-${_pkgver}".tar.xz "ftp://ftp.archlinux.org/other/grub2/grub2_extras_gpxe_r${_grub_gpxe_ver}.tar.xz" "ftp://ftp.archlinux.org/other/grub2/grub2_extras_ntldr-img_r${_grub_ntldr_ver}.tar.xz" "ftp://ftp.archlinux.org/other/grub2/grub2_extras_915resolution_r${_grub_915_ver}.tar.xz" - 'archlinux_grub_mkconfig_fixes.patch' + 'parabola_grub_mkconfig_fixes.patch' 'grub.default' 'grub.cfg' '20_memtest86+') @@ -42,7 +42,7 @@ sha1sums=('96bfdf4d53767faaf2c744ee82d4d703e4b672a2' 'b04994c005910b4bf123f034b30109d5c8d6fd86' 'eb4b35b4c36b64f9405cbcbc538cb205171c1c0a' 'd5ae2efec25616028a9d89e98b6e454f1c4c415f' - 'cdace8067562fab04aaacac8d99a4ea612fa0c5b' + 'bf8e692c3920f0cf125ee77f14b8432133cae84d' '348b148d5183825f31a3d24a7ebf2d6a709f4e6a' '6f0870673b9f994163326a416432aee7eacdbfc5' 'ce35d7ae75cd1b5b677e894e528f96add40e77b9') @@ -53,8 +53,8 @@ _build_grub2-common_and_bios() { cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub_bios-${_pkgver}" cd "${srcdir}/grub_bios-${_pkgver}" - ## Apply Archlinux specific fixes to enable grub-mkconfig detect Arch kernels and initramfs - patch -Np1 -i "${srcdir}/archlinux_grub_mkconfig_fixes.patch" + ## Apply Parabola specific fixes to enable grub-mkconfig detect Libre kernels and initramfs + patch -Np1 -i "${srcdir}/parabola_grub_mkconfig_fixes.patch" echo ## add the grub-extra sources 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" |