#!/bin/bash # getgrub script: Downloads GRUB and patches it. # # Copyright (C) 2014, 2015 Francis Rowe # # 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 . # 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 ----------------------