summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/grub/PKGBUILD192
-rw-r--r--libre/grub/grub.cfg8
-rw-r--r--libre/grub/parabola_grub_mkconfig_fixes.patch14
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