diff --git a/PKGBUILD b/PKGBUILD index f2be835..63fc366 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -13,7 +13,7 @@ _UNIFONT_VER="6.3.20131217" pkgname="grub" pkgdesc="GNU GRand Unified Bootloader (2)" pkgver=2.02.beta2 -pkgrel=2 +pkgrel=3 epoch="1" url="https://www.gnu.org/software/grub/" arch=('x86_64' 'i686') @@ -41,22 +41,23 @@ source=("grub-${_pkgver}::git+git://git.sv.gnu.org/grub.git#tag=${_GRUB_GIT_TAG} "grub-extras::git+git://git.sv.gnu.org/grub-extras.git#branch=master" "http://ftp.gnu.org/gnu/unifont/unifont-${_UNIFONT_VER}/unifont-${_UNIFONT_VER}.bdf.gz" "http://ftp.gnu.org/gnu/unifont/unifont-${_UNIFONT_VER}/unifont-${_UNIFONT_VER}.bdf.gz.sig" + 'grub-10_linux-detect-archlinux-initramfs.patch' 'grub-add-GRUB_COLOR_variables.patch' - '10_archlinux' '60_memtest86+' 'grub.default' 'grub.cfg') + md5sums=('SKIP' 'SKIP' '728b7439ac733a7c0d56049adec364c7' 'SKIP' + '945527e0de8d384166a4cf23439ae9ee' 'e506ae4a9f9f7d1b765febfa84e10d48' - 'dcf3e0b47119b0bb06ce987c8f030ffa' 'be55eabc102f2c60b38ed35c203686d6' 'a03ffd56324520393bf574cefccb893d' 'c8b9511586d57d6f2524ae7898397a46') -pkgver() { +_pkgver() { cd "${srcdir}/grub-${_pkgver}/" echo "$(git describe --tags)" | sed -e 's|grub.||g' -e 's|-|\.|g' } @@ -65,6 +66,10 @@ prepare() { cd "${srcdir}/grub-${_pkgver}/" + msg "Patch to detect of Arch Linux initramfs images by grub-mkconfig" + patch -Np1 -i "${srcdir}/grub-10_linux-detect-archlinux-initramfs.patch" + echo + msg "Patch to enable GRUB_COLOR_* variables in grub-mkconfig" ## Based on http://lists.gnu.org/archive/html/grub-devel/2012-02/msg00021.html patch -Np1 -i "${srcdir}/grub-add-GRUB_COLOR_variables.patch" @@ -234,9 +239,6 @@ _package_grub-common_and_bios() { rm -f "${pkgdir}/usr/lib/grub/i386-pc"/*.image || true rm -f "${pkgdir}/usr/lib/grub/i386-pc"/{kernel.exec,gdb_grub,gmodule.pl} || true - msg "Install 10_archlinux helper script for grub-mkconfig" - install -D -m0755 "${srcdir}/10_archlinux" "${pkgdir}/etc/grub.d/10_archlinux" - msg "Install extra /etc/grub.d/ files" install -D -m0755 "${srcdir}/60_memtest86+" "${pkgdir}/etc/grub.d/60_memtest86+" diff --git a/grub-10_linux-detect-archlinux-initramfs.patch b/grub-10_linux-detect-archlinux-initramfs.patch new file mode 100644 index 0000000..18d9d52 --- /dev/null +++ b/grub-10_linux-detect-archlinux-initramfs.patch @@ -0,0 +1,54 @@ +From b470ffd22e43acc7c11231180187a720efd88de1 Mon Sep 17 00:00:00 2001 +From: Keshav Amburay +Date: Sat, 5 Apr 2014 20:40:51 -0400 +Subject: [PATCH] 10_linux: Detect Arch Linux main and fallback initramfs + images + +--- + util/grub.d/10_linux.in | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index 00d1931..7d4086b 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -81,6 +81,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 +@@ -180,7 +182,7 @@ while [ "x$list" != "x" ] ; do + basename=`basename $linux` + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` +- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` ++ version=`echo $basename | sed -e "s,vmlinuz-,,g"` + alt_version=`echo $version | sed -e "s,\.old$,,g"` + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + +@@ -236,6 +238,18 @@ while [ "x$list" != "x" ] ; do + + linux_entry "${OS}" "${version}" advanced \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++ ++ if test -e "${dirname}/initramfs-${version}-fallback.img" ; then ++ initrd="initramfs-${version}-fallback.img" ++ ++ if test -n "${initrd}" ; then ++ gettext_printf "Found fallback initramfs image: %s\n" "${dirname}/${initrd}" >&2 ++ fi ++ ++ linux_entry "${OS}" "${version}" fallback \ ++ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++ fi ++ + if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then + linux_entry "${OS}" "${version}" recovery \ + "single ${GRUB_CMDLINE_LINUX}" +-- +1.9.1 +