diff options
-rw-r--r-- | libre/grub/PKGBUILD | 192 | ||||
-rw-r--r-- | libre/grub/grub.cfg | 8 | ||||
-rw-r--r-- | libre/grub/parabola_grub_mkconfig_fixes.patch | 14 |
3 files changed, 123 insertions, 91 deletions
diff --git a/libre/grub/PKGBUILD b/libre/grub/PKGBUILD index de9ebb452..57620a868 100644 --- a/libre/grub/PKGBUILD +++ b/libre/grub/PKGBUILD @@ -1,23 +1,25 @@ # Maintainer : Tobias Powalowski <tpowa@archlinux.org> # Maintainer : Ronald van Haren <ronald.archlinux.org> -# Contributor: Keshav Padram (the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)> +# Contributor: Keshav Padram Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)> # Maintainer (Parabola): André Silva <emulatorman@parabola.nu> -_GRUB_BZR_REV="5086" +_pkgver="2.00" +_GRUB_GIT_COMMIT="5ae5c54c7e5cb048cdd78a53181cee0da698a953" -## grub-extras lua and gpxe fail to build with grub bzr rev 5043 +## grub-extras gpxe is not needed [[ "${CARCH}" == "x86_64" ]] && _EFI_ARCH="x86_64" [[ "${CARCH}" == "i686" ]] && _EFI_ARCH="i386" -pkgname=grub +pkgname="grub" pkgdesc="GNU GRand Unified Bootloader (2), (Parabola rebranded)" -pkgver=2.00.${_GRUB_BZR_REV} +pkgver=2.00.1282.g5ae5c54 pkgrel=1 +epoch="1" url="https://www.gnu.org/software/grub/" arch=('x86_64' 'i686') license=('GPL3') -backup=('etc/default/grub' 'etc/grub.d/40_custom') +backup=('boot/grub/grub.cfg' 'etc/default/grub' 'etc/grub.d/40_custom') install="${pkgname}.install" options=('!makeflags') @@ -25,8 +27,9 @@ conflicts=('grub-common' 'grub-bios' "grub-efi-${_EFI_ARCH}" 'grub-legacy') replaces=('grub-common' 'grub-bios' "grub-efi-${_EFI_ARCH}") provides=('grub-common' 'grub-bios' "grub-efi-${_EFI_ARCH}") -makedepends=('xz' 'freetype2' 'bdf-unifont' 'ttf-dejavu' 'python' 'autogen' - 'texinfo' 'help2man' 'gettext' 'device-mapper' 'fuse' 'bzr' 'rsync') +makedepends=('git' 'bzr' 'rsync' 'xz' 'freetype2' 'ttf-dejavu' + 'python2' 'autogen' 'texinfo' 'help2man' + 'gettext' 'device-mapper' 'fuse') depends=('sh' 'xz' 'gettext' 'device-mapper') optdepends=('freetype2: For grub-mkfont usage' 'fuse: For grub-mount usage' @@ -37,52 +40,94 @@ optdepends=('freetype2: For grub-mkfont usage' 'mtools: For grub-mkrescue FAT FS support') # source=("http://ftp.gnu.org/gnu/grub/grub-${pkgver}.tar.xz" -source=("grub-${pkgver}::bzr+bzr://bzr.savannah.gnu.org/grub/trunk/grub/#revision=${_GRUB_BZR_REV}" +source=("grub-${_pkgver}::git+git://git.sv.gnu.org/grub.git#commit=${_GRUB_GIT_COMMIT}" + 'http://unifoundry.com/unifont-5.1.20080820.bdf.gz' 'parabola_grub_mkconfig_fixes.patch' '60_memtest86+' 'grub.default' - 'grub-2.00-mkinitcpio-0.15.patch' - 'grub-2.00.5086-fix-lvm-parsing.patch') + 'grub.cfg') + md5sums=('SKIP' - 'b3068b52b6f1dcd2850b5c7585bb185f' + '6b8263ceccef33bd633aa019d74b7943' + '955301d5b43f525334fe6051281f5c6c' 'be55eabc102f2c60b38ed35c203686d6' '52d374e0194e3f2e39ff7c92ecd58a6c' - 'd25d2dcf8ba708dcf768fcaea799f59c' - 'b2bafd4aeb098580754e71991ab7eed8' + 'b166b025c1d674ccac83e1ad94deed05' + 'SKIP' 'SKIP' 'SKIP') -for _DIR_ in 915resolution ntldr-img ; do +for _DIR_ in 915resolution lua ntldr-img ; do source+=("grub-extras-${_DIR_}::bzr+bzr://bzr.savannah.gnu.org/grub-extras/${_DIR_}/#revision=") done +pkgver() { + cd "${srcdir}/grub-${_pkgver}/" + echo "$(git describe --tags)" | sed -e 's|-|\.|g' +} + +prepare() { + + cd "${srcdir}/grub-${_pkgver}/" + + msg "Patch to enable grub-mkconfig detect Parabola kernels and initramfs" + patch -Np1 -i "${srcdir}/parabola_grub_mkconfig_fixes.patch" + + msg "Fix DejaVuSans.ttf location so that grub-mkfont can create *.pf2 files for starfield theme" + sed 's|/usr/share/fonts/dejavu|/usr/share/fonts/dejavu /usr/share/fonts/TTF|g' -i "${srcdir}/grub-${_pkgver}/configure.ac" + + msg "Fix mkinitcpio 'rw' FS#36275" + sed 's| ro | rw |g' -i "${srcdir}/grub-${_pkgver}/util/grub.d/10_linux.in" + + msg "autogen.sh requires python (2/3). since bzr is in makedepends, use python2 and no need to pull python3" + sed 's|python |python2 |g' -i "${srcdir}/grub-${_pkgver}/autogen.sh" + + msg "Pull in latest language files" + ./linguas.sh + echo + + msg "Remove non working langs which need LC_ALL=C.UTF-8" + sed -e 's#en@cyrillic en@greek##g' -i "${srcdir}/grub-${_pkgver}/po/LINGUAS" + + msg "Avoid problem with unifont during compile of grub, http://savannah.gnu.org/bugs/?40330 and https://bugs.archlinux.org/task/37847" + cp "${srcdir}/unifont-5.1.20080820.bdf" "${srcdir}/grub-${_pkgver}/unifont.bdf" + +} _build_grub-common_and_bios() { - ## Copy the source for building the common/bios package - cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-${pkgver}-bios" - cd "${srcdir}/grub-${pkgver}-bios/" + msg "Set ARCH dependent variables for bios build" + if [[ "${CARCH}" == 'x86_64' ]]; then + _EFIEMU="--enable-efiemu" + else + _EFIEMU="--disable-efiemu" + fi - ## Add the grub-extra sources - export GRUB_CONTRIB="${srcdir}/grub-${pkgver}-bios/grub-extras/" + msg "Copy the source for building the bios package" + cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-bios" + cd "${srcdir}/grub-${_pkgver}-bios/" - install -d "${srcdir}/grub-${pkgver}-bios/grub-extras" + msg "Add the grub-extra sources for bios build" + install -d "${srcdir}/grub-${_pkgver}-bios/grub-extras" for _DIR_ in 915resolution ntldr-img ; do - cp -r "${srcdir}/grub-extras-${_DIR_}" "${srcdir}/grub-${pkgver}-bios/grub-extras/${_DIR_}" + cp -r "${srcdir}/grub-extras-${_DIR_}" "${srcdir}/grub-${_pkgver}-bios/grub-extras/${_DIR_}" done + export GRUB_CONTRIB="${srcdir}/grub-bios/grub-extras/" - ## Unset all compiler FLAGS for bios build + msg "Unset all compiler FLAGS for bios build" unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS - ## Start the actual build process - cd "${srcdir}/grub-${pkgver}-bios/" + cd "${srcdir}/grub-${_pkgver}-bios/" + + msg "Run autogen.sh for bios build" ./autogen.sh echo + msg "Run ./configure for bios build" ./configure \ --with-platform="pc" \ --target="i386" \ @@ -91,6 +136,7 @@ _build_grub-common_and_bios() { --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ + --enable-boot-time \ --enable-grub-mkfont \ --enable-grub-mount \ --prefix="/usr" \ @@ -103,37 +149,42 @@ _build_grub-common_and_bios() { --program-prefix="" \ --with-bootdir="/boot" \ --with-grubdir="grub" \ + --disable-silent-rules \ --disable-werror echo + msg "Run make for bios build" make echo } _build_grub-efi() { - ## Copy the source for building the efi package - cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-${pkgver}-efi" - cd "${srcdir}/grub-${pkgver}-efi/" - - # export GRUB_CONTRIB="${srcdir}/grub-${pkgver}-efi/grub-extras/" + msg "Copy the source for building the efi package" + cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-efi" + cd "${srcdir}/grub-${_pkgver}-efi/" - # install -d "${srcdir}/grub-${pkgver}-efi/grub-extras/" - # for _DIR_ in lua gpxe ; do - # cp -r "${srcdir}/grub-extras-${_DIR_}" "${srcdir}/grub-${pkgver}-bios/grub-extras/${_DIR_}" - # done + msg "Add the grub-extra sources for efi build" + install -d "${srcdir}/grub-${_pkgver}-efi/grub-extras/" + for _DIR_ in lua ; do + cp -r "${srcdir}/grub-extras-${_DIR_}" "${srcdir}/grub-${_pkgver}-efi/grub-extras/${_DIR_}" + done + # export GRUB_CONTRIB="${srcdir}/grub-efi/grub-extras/" - ## Unset all compiler FLAGS for efi build + msg "Unset all compiler FLAGS for efi build" unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS - cd "${srcdir}/grub-${pkgver}-efi/" + cd "${srcdir}/grub-${_pkgver}-efi/" + + msg "Run autogen.sh for efi build" ./autogen.sh echo + msg "Run ./configure for efi build" ./configure \ --with-platform="efi" \ --target="${_EFI_ARCH}" \ @@ -142,6 +193,7 @@ _build_grub-efi() { --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ + --enable-boot-time \ --enable-grub-mkfont \ --enable-grub-mount \ --prefix="/usr" \ @@ -154,87 +206,63 @@ _build_grub-efi() { --program-prefix="" \ --with-bootdir="/boot" \ --with-grubdir="grub" \ + --disable-silent-rules \ --disable-werror echo + msg "Run make for efi build" make echo } -prepare() { - - ## Set ARCH dependent variables - if [[ "${CARCH}" == 'x86_64' ]]; then - _EFIEMU="--enable-efiemu" - else - _EFIEMU="--disable-efiemu" - fi - - cd "${srcdir}/grub-${pkgver}/" - - ## Apply Parabola specific fixes to enable grub-mkconfig detect kernels and initramfs - patch -Np1 -i "${srcdir}/parabola_grub_mkconfig_fixes.patch" - echo - - ## fix 10_linux - patch -Np0 -i "${srcdir}/grub-2.00-mkinitcpio-0.15.patch" - patch -Np1 -i "${srcdir}/grub-2.00.5086-fix-lvm-parsing.patch" - - ## fix unifont.bdf location so that grub-mkfont can create *.pf2 files - sed 's|/usr/share/fonts/unifont|/usr/share/fonts/unifont /usr/share/fonts/misc|g' -i "${srcdir}/grub-${pkgver}/configure.ac" +build() { - ## fix DejaVuSans.ttf location so that grub-mkfont can create *.pf2 files for starfield theme - sed 's|/usr/share/fonts/dejavu|/usr/share/fonts/dejavu /usr/share/fonts/TTF|g' -i "${srcdir}/grub-${pkgver}/configure.ac" + cd "${srcdir}/grub-${_pkgver}/" - ## Requires python2 - # sed 's|python |python2 |g' -i "${srcdir}/grub-${pkgver}/autogen.sh" - - ## pull in language files - ./linguas.sh - -} - -build() { - - cd "${srcdir}/grub-${pkgver}/" - - # remove not working langs which need LC_ALL=C.UTF-8 - sed -i -e 's#en@cyrillic en@greek##g' po/LINGUAS + msg "Build grub bios stuff" _build_grub-common_and_bios echo + msg "Build grub efi stuff" _build_grub-efi echo - + } _package_grub-common_and_bios() { - cd "${srcdir}/grub-${pkgver}-bios/" + cd "${srcdir}/grub-${_pkgver}-bios/" + + msg "Run make install for bios build" make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install echo - ## remove gdb debugging related files + msg "Remove gdb debugging related files for bios build" rm -f "${pkgdir}/usr/lib/grub/i386-pc"/*.module || true 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 - ## Install extra /etc/grub.d/ files + msg "Install extra /etc/grub.d/ files" install -D -m0755 "${srcdir}/60_memtest86+" "${pkgdir}/etc/grub.d/60_memtest86+" - ## Install /etc/default/grub (used by grub-mkconfig) + msg "Install /etc/default/grub (used by grub-mkconfig)" install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" + msg "Install grub.cfg for backup array" + install -D -m0644 "${srcdir}/grub.cfg" "${pkgdir}/boot/grub/grub.cfg" + } _package_grub-efi() { - cd "${srcdir}/grub-${pkgver}-efi/" + cd "${srcdir}/grub-${_pkgver}-efi/" + + msg "Run make install for efi build" make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install echo - ## remove gdb debugging related files + msg "Remove gdb debugging related files for efi build" rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/*.module || true rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/*.image || true rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/{kernel.exec,gdb_grub,gmodule.pl} || true @@ -243,8 +271,12 @@ _package_grub-efi() { package() { + msg "Package grub efi stuff" _package_grub-efi + msg "Package grub bios stuff" _package_grub-common_and_bios } + + diff --git a/libre/grub/grub.cfg b/libre/grub/grub.cfg index 0d91ff6bc..32e163f0c 100644 --- a/libre/grub/grub.cfg +++ b/libre/grub/grub.cfg @@ -90,8 +90,8 @@ menuentry 'Parabola GNU/Linux-libre, with Linux libre kernel' --class parabola - else search --no-floppy --fs-uuid --set=root ad4103fa-d940-47ca-8506-301d8071d467 fi - echo 'Loading Linux libre core repo kernel ...' - linux /boot/vmlinuz-linux-libre root=UUID=ad4103fa-d940-47ca-8506-301d8071d467 ro quiet + echo 'Loading Linux libre kernel ...' + linux /boot/vmlinuz-linux-libre root=UUID=ad4103fa-d940-47ca-8506-301d8071d467 rw quiet echo 'Loading initial ramdisk ...' initrd /boot/initramfs-linux-libre.img } @@ -107,8 +107,8 @@ menuentry 'Parabola GNU/Linux-libre, with Linux libre kernel (Fallback initramfs else search --no-floppy --fs-uuid --set=root ad4103fa-d940-47ca-8506-301d8071d467 fi - echo 'Loading Linux libre core repo kernel ...' - linux /boot/vmlinuz-linux-libre root=UUID=ad4103fa-d940-47ca-8506-301d8071d467 ro quiet + echo 'Loading Linux libre kernel ...' + linux /boot/vmlinuz-linux-libre root=UUID=ad4103fa-d940-47ca-8506-301d8071d467 rw quiet echo 'Loading initial ramdisk ...' initrd /boot/initramfs-linux-libre-fallback.img } diff --git a/libre/grub/parabola_grub_mkconfig_fixes.patch b/libre/grub/parabola_grub_mkconfig_fixes.patch index fbcca19ec..842fbdf2e 100644 --- a/libre/grub/parabola_grub_mkconfig_fixes.patch +++ b/libre/grub/parabola_grub_mkconfig_fixes.patch @@ -1,5 +1,5 @@ diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 8decc1d..170047f 100644 +index db58ab9..e66e139 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -212,6 +212,8 @@ export GRUB_DEFAULT \ @@ -12,7 +12,7 @@ index 8decc1d..170047f 100644 GRUB_SAVEDEFAULT \ GRUB_ENABLE_CRYPTODISK \ diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index 2c4bb0a..c7120d2 100644 +index 9838720..dbb5dd2 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -125,6 +125,14 @@ cat <<EOF @@ -31,7 +31,7 @@ index 2c4bb0a..c7120d2 100644 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 14402e8..e85f7d6 100644 +index e27d6f7..0a255f5 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -31,7 +31,13 @@ CLASS="--class gnu-linux --class gnu --class os" @@ -130,11 +130,11 @@ index 14402e8..e85f7d6 100644 + done + fi + - if [ "x$is_first_entry" = xtrue ]; then + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then linux_entry "${OS}" "${version}" simple \ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -@@ -239,8 +280,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' {" +@@ -240,8 +281,11 @@ while [ "x$list" != "x" ] ; do + is_top_level=false fi + if ! test -e "/etc/arch-release" ; then @@ -150,7 +150,7 @@ index 14402e8..e85f7d6 100644 # 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 + if [ x"$is_top_level" != xtrue ]; then echo '}' fi +fi |