diff options
Diffstat (limited to 'resources/scripts/helpers/fetch/grub')
-rwxr-xr-x | resources/scripts/helpers/fetch/grub | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/resources/scripts/helpers/fetch/grub b/resources/scripts/helpers/fetch/grub new file mode 100755 index 0000000..8dc512e --- /dev/null +++ b/resources/scripts/helpers/fetch/grub @@ -0,0 +1,78 @@ +#!/bin/bash + +# helper script: Downloads GRUB and patches it. +# +# Copyright (C) 2014, 2015 Francis Rowe <info@gluglug.org.uk> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +# This script assumes that the working directory is the +# root of libreboot_src or libreboot git. + +set -u -e -v + +# Get GRUB, revert to commit last used and apply patches. + +# Remove the old version that may still exist +# ------------------------------------------------------------------------------- + +echo "DOWNLOADING GRUB" + +rm -rf grub + +# Get latest GRUB +# ------------------------------------------------------------------------------- + +# download it using git +git clone git://git.savannah.gnu.org/grub.git + +# modifications are required +cd grub + +# Reset to the last commit that was tested +# -------------------------------------------------------------------------------- + +git reset --hard 32cd33bd19348afb77ab849846e0b6d6157ea308 + +# Apply patches +# -------------------------------------------------------------------------------- + +# Replace "GNU GRUB version" in GRUB screen with "FREE AS IN FREEDOM" +git am "../resources/grub/patch/0001-grub-core-normal-main.c-Display-FREE-AS-IN-FREEDOM-n.patch" + +## See these threads on grub-dev@gnu.org: +## [bug #44238] Add support for menu.c32 and vesamenu.c32 in lib/syslinux_parse +## [bug #44239] Behavior of syslinux_parse differs from SYSLINUX for initrd= option +## These make vesamenu.c32 work (translation: Debian/Tails ISOLINUX) but they are +## buggy at the moment; Trisquel ISOLINUX parsing fails with these patches, for instance: +## "error: syntax error.", "error: Incorrect command." +## The mailing list contains updated versions of the patches mentioned below +## Work with Lunar^ on IRC on finishing the patch so that it fixes the issue +## while not causing other regressions. Wait until this is merged in GRUB(upstream). +# Add support for menu.c32 and vesamenu.c32 in lib/syslinux_parse +# See https://savannah.gnu.org/bugs/index.php?44238 +# TODO: Remove this patch when it is upstreamed. +# git am "../resources/grub/patch/0002-syslinux_parse-add-support-for-vesa-menu.c32.patch" +# Behavior of syslinux_parse differs from SYSLINUX for initrd= option +# See https://savannah.gnu.org/bugs/index.php?44239 +# TODO: Remove this patch when it is upstreamed. +# git am "../resources/grub/patch/0003-syslinux_parse-keep-initrd-in-kernel-the-command-lin.patch" + +cd ../ +echo "FINISHED DOWNLOADING GRUB" + +# ------------------- DONE ---------------------- + + |