Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Axelen123 committed Jan 2, 2022
0 parents commit abac075
Show file tree
Hide file tree
Showing 18 changed files with 4,127 additions and 0 deletions.
69 changes: 69 additions & 0 deletions .SRCINFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
pkgbase = grub-improved-luks2-git
pkgdesc = GNU GRand Unified Bootloader (2) with Argon2 and better LUKS2 support
pkgver = 2.06.r92.g246d69b7e
pkgrel = 1
url = https://www.gnu.org/software/grub/
install = grub-improved-luks2-git.install
arch = x86_64
license = GPL3
makedepends = autogen
makedepends = bdf-unifont
makedepends = git
makedepends = help2man
makedepends = python
makedepends = rsync
makedepends = texinfo
makedepends = ttf-dejavu
depends = device-mapper
depends = freetype2
depends = fuse2
depends = gettext
optdepends = dosfstools: For grub-mkrescue FAT FS and EFI support
optdepends = efibootmgr: For grub-install EFI support
optdepends = libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue
optdepends = mtools: For grub-mkrescue FAT FS support
optdepends = os-prober: To detect other OSes when generating grub.cfg in BIOS systems
provides = grub
conflicts = grub
backup = etc/default/grub
backup = etc/grub.d/40_custom
source = grub::git+https://git.savannah.gnu.org/git/grub.git
source = grub-extras::git+https://git.savannah.gnu.org/git/grub-extras.git
source = gnulib::git+https://git.savannah.gnu.org/git/gnulib.git
source = argon_1.patch
source = argon_2.patch
source = argon_2.patch
source = argon_3.patch
source = argon_4.patch
source = argon_5.patch
source = mm_1.patch
source = mm_2.patch
source = mm_3.patch
source = mm_4.patch
source = mm_5.patch
source = mm_6.patch
source = grub-install_luks2.patch
source = add-GRUB_COLOR_variables.patch
source = detect-archlinux-initramfs.patch
source = grub.default
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = 5dee6628c48eef79812bb9e86ee772068d85e7fcebbd2b2b8d1e19d24eda9dab
sha256sums = 580a81b00088773d554832b0d74c85bf16fec37728802973c45993bcb97cd7d5
sha256sums = 791fadf182edf8d5bee4b45c008b08adce9689a9624971136527891a8f67d206

pkgname = grub-improved-luks2-git
190 changes: 190 additions & 0 deletions PKGBUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
# Maintainer: Ax333l
# Contributor: Llewelyn Trahaearn <WoefulDerelict [at] GMail [dot] com>
# Contributor: Tobias Powalowski <tpowa [at] archlinux [dot] org>
# Contributor: Ronald van Haren <ronald [at] archlinux [dot] org>
# Contributor: Keshav Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>

## "1" to enable IA32-EFI build in Arch x86_64, "0" to disable
_ia32_efi_in_arch_x64="1"

## "1" to enable EMU build, "0" to disable
_grub_emu_build="0"

[[ "${CARCH}" == "x86_64" ]] && _target_arch="x86_64"
[[ "${CARCH}" == "i686" ]] && _target_arch="i386"

_build_platforms="i386-pc ${_target_arch}-efi"
[[ "${CARCH}" == "x86_64" ]] && [[ "${_ia32_efi_in_arch_x64}" == "1" ]] && _build_platforms+=" i386-efi"
[[ "${_grub_emu_build}" == "1" ]] && _build_platforms+=" ${_target_arch}-emu"

pkgname="grub-improved-luks2-git"
pkgver=2.06.r92.g246d69b7e
pkgrel=1
pkgdesc="GNU GRand Unified Bootloader (2) with Argon2 and better LUKS2 support"
arch=('x86_64')
url="https://www.gnu.org/software/grub/"
license=('GPL3')
depends=('device-mapper' 'freetype2' 'fuse2' 'gettext')
makedepends=('autogen' 'bdf-unifont' 'git' 'help2man'
'python' 'rsync' 'texinfo' 'ttf-dejavu')
optdepends=('dosfstools: For grub-mkrescue FAT FS and EFI support'
'efibootmgr: For grub-install EFI support'
'libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue'
'mtools: For grub-mkrescue FAT FS support'
'os-prober: To detect other OSes when generating grub.cfg in BIOS systems')

if [[ "${_grub_emu_build}" == "1" ]]; then
depends+=('sdl')
makedepends+=('libusb')
optdepends+=('libusb: For grub-emu USB support')
fi

provides=("grub")
conflicts=("grub")
backup=('etc/default/grub'
'etc/grub.d/40_custom')
install="${pkgname}.install"
source=("grub::git+https://git.savannah.gnu.org/git/grub.git"
"grub-extras::git+https://git.savannah.gnu.org/git/grub-extras.git"
"gnulib::git+https://git.savannah.gnu.org/git/gnulib.git"
'argon_1.patch'
'argon_2.patch'
'argon_2.patch'
'argon_3.patch'
'argon_4.patch'
'argon_5.patch'
'mm_1.patch'
'mm_2.patch'
'mm_3.patch'
'mm_4.patch'
'mm_5.patch'
'mm_6.patch'
'grub-install_luks2.patch'
'add-GRUB_COLOR_variables.patch'
'detect-archlinux-initramfs.patch'
'grub.default')
sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'5dee6628c48eef79812bb9e86ee772068d85e7fcebbd2b2b8d1e19d24eda9dab'
'580a81b00088773d554832b0d74c85bf16fec37728802973c45993bcb97cd7d5'
'791fadf182edf8d5bee4b45c008b08adce9689a9624971136527891a8f67d206')

prepare() {
cd grub

# 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"/add-GRUB_COLOR_variables.patch

# Patch grub-mkconfig to detect Arch Linux initramfs images.
patch -Np1 -i "$srcdir"/detect-archlinux-initramfs.patch

# mm
patch -Np1 -i "$srcdir"/mm_1.patch
patch -Np1 -i "$srcdir"/mm_2.patch
patch -Np1 -i "$srcdir"/mm_3.patch
patch -Np1 -i "$srcdir"/mm_4.patch
patch -Np1 -i "$srcdir"/mm_5.patch
patch -Np1 -i "$srcdir"/mm_6.patch

# argon2
patch -Np1 -i "$srcdir"/argon_1.patch
patch -Np1 -i "$srcdir"/argon_2.patch
patch -Np1 -i "$srcdir"/argon_3.patch
patch -Np1 -i "$srcdir"/argon_4.patch
patch -Np1 -i "$srcdir"/argon_5.patch

# make grub-install work with luks2
patch -Np1 -i "$srcdir"/grub-install_luks2.patch

# 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 "configure.ac"

# Modify grub-mkconfig behaviour to silence warnings FS#36275
sed 's| ro | rw |g' -i "util/grub.d/10_linux.in"

# Modify grub-mkconfig behaviour so automatically generated entries read 'Arch Linux' FS#33393
sed 's|GNU/Linux|Linux|' -i "util/grub.d/10_linux.in"

# Pull in latest language files
./linguas.sh

# Remove lua module from grub-extras as it is incompatible with changes to grub_file_open
# http://git.savannah.gnu.org/cgit/grub.git/commit/?id=ca0a4f689a02c2c5a5e385f874aaaa38e151564e
rm -rf "$srcdir"/grub-extras/lua
}

pkgver() {
cd grub
git describe --long --tags | sed 's/^grub.//;s/\([^-]*-g\)/r\1/;s/-/./g'
}

build() {
cd grub
export GRUB_CONTRIB="$srcdir"/grub-extras
export GNULIB_SRCDIR="$srcdir"/gnulib

# Undefined references to _GLOBAL_OFFSET_TABLE_
CFLAGS=${CFLAGS/-fno-plt}

./bootstrap

for _arch in $_build_platforms; do
mkdir "$srcdir"/grub/build_"$_arch"
cd "$srcdir"/grub/build_"$_arch"

# * _FORTIFY_SOURCE requires compiling with optimization warnings
# become errors due to a -Werror added during ./configure tests.
# This results in an incorrect configuration and only by adding -O2
# to CPPFLAGS does this problem seem to be worked around.
../configure --with-platform="${_arch##*-}" \
--target="${_arch%%-*}" \
--prefix="/usr" \
--sbindir="/usr/bin" \
--sysconfdir="/etc" \
--enable-boot-time \
--enable-cache-stats \
--enable-device-mapper \
--enable-grub-mkfont \
--enable-grub-mount \
--enable-mm-debug \
--enable-nls \
--disable-silent-rules \
--disable-werror \
CPPFLAGS="$CPPFLAGS -O2"
make
done
}

package() {
cd grub

for _arch in $_build_platforms; do
cd "$srcdir"/grub/build_"$_arch"
make DESTDIR="$pkgdir" bashcompletiondir=/usr/share/bash-completion/completions install
done

# Install /etc/default/grub (used by grub-mkconfig)
install -D -m0644 "$srcdir"/grub.default "$pkgdir"/etc/default/grub

# Tidy up
find "$pkgdir"/usr/lib/grub \( -name '*.module' -o \
-name '*.image' -o \
-name 'kernel.exec' -o \
-name 'gdb_grub' -o \
-name 'gmodule.pl' \) -delete
}
41 changes: 41 additions & 0 deletions add-GRUB_COLOR_variables.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
From 21e5bcf22ab1a9f08c63e2a0212219d7482f77c1 Mon Sep 17 00:00:00 2001
From: Christian Hesse <[email protected]>
Date: Wed, 10 Mar 2021 18:42:25 +0100
Subject: [PATCH] 00_header: add GRUB_COLOR_* variables
---
util/grub-mkconfig.in | 2 ++
util/grub.d/00_header.in | 8 ++++++++
2 files changed, 10 insertions(+)

diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
index f8cbb8d7a..1189d95f9 100644
--- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in
@@ -246,6 +246,8 @@ export GRUB_DEFAULT \
GRUB_BACKGROUND \
GRUB_THEME \
GRUB_GFXPAYLOAD_LINUX \
+ GRUB_COLOR_NORMAL \
+ GRUB_COLOR_HIGHLIGHT \
GRUB_INIT_TUNE \
GRUB_SAVEDEFAULT \
GRUB_ENABLE_CRYPTODISK \
diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
index 93a90233e..c5955df00 100644
--- a/util/grub.d/00_header.in
+++ b/util/grub.d/00_header.in
@@ -125,6 +125,14 @@ cat <<EOF

EOF

+if [ x$GRUB_COLOR_NORMAL != x ] && [ x$GRUB_COLOR_HIGHLIGHT != x ] ; then
+ cat << EOF
+set menu_color_normal=$GRUB_COLOR_NORMAL
+set menu_color_highlight=$GRUB_COLOR_HIGHLIGHT
+
+EOF
+fi
+
serial=0;
gfxterm=0;
for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
56 changes: 56 additions & 0 deletions argon_1.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
grub-core/kern/dl.c | 3 ++-
util/grub-module-verifierXX.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
index 48f8a7907..7d395096f 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
@@ -467,7 +467,8 @@ grub_dl_check_license (grub_dl_t mod, El

if (grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv3") == 0
|| grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv3+") == 0
- || grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv2+") == 0)
+ || grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv2+") == 0
+ || grub_strcmp ((char *) e + s->sh_offset, "LICENSE=CC0") == 0)
return GRUB_ERR_NONE;

return grub_error (GRUB_ERR_BAD_MODULE,
diff --git a/util/grub-module-verifierXX.c b/util/grub-module-verifierXX.c
index ceb24309a..284f9026e 100644
--- a/util/grub-module-verifierXX.c
+++ b/util/grub-module-verifierXX.c
@@ -157,7 +157,8 @@ check_license (const char * const filena
Elf_Shdr *s = find_section (arch, e, ".module_license");
if (s && (strcmp ((char *) e + grub_target_to_host(s->sh_offset), "LICENSE=GPLv3") == 0
|| strcmp ((char *) e + grub_target_to_host(s->sh_offset), "LICENSE=GPLv3+") == 0
- || strcmp ((char *) e + grub_target_to_host(s->sh_offset), "LICENSE=GPLv2+") == 0))
+ || strcmp ((char *) e + grub_target_to_host(s->sh_offset), "LICENSE=GPLv2+") == 0
+ || strcmp ((char *) e + grub_target_to_host(s->sh_offset), "LICENSE=CC0") == 0))
return;
grub_util_error ("%s: incompatible license", filename);
}
--
2.32.0


The original PGP Signature. I had to modify the patch to apply it to the latest grub source code.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEF9hrgiFbCdvenl/rVbJhu7ckPpQFAmEP4xMACgkQVbJhu7ck
PpRSTxAAo3leEk7U47GFerE4CBrrC3CZpkpXjoNdcYuEbvy8rhhZrFzt4+g+8s5w
z9BvXArf1G85XY4bvk61oeaLO7A52WOg5qpK3dKfcv6wZheq/MbjrE/JjcDNiLLc
yOW/dipv23hXDNRU4xWHchWw792lBcTfO5QqTDhQczTfaze4LLYFt0W7ySuV39ir
Q6FIZSLQPJFpH/lAjRJf5CjmDGzkuc6xg+km5NBQIKh695jKUv+H3oBGzmUfcd36
Smv9cM7R7HuyU0y+Uc3nV6IU77H2+gGelvdodHpMPABiKrcsqiU3e347itmjTFRT
7Yy9iThh3biPO6dxzdVGw9BwKeM9fH0Dvja6rQxx1+NkeuM7YGBAlYIe6JV8kYRo
TtdjOUtixlfNuqwdYjFMwkAdQWaq0wCebQ9MvF9r0BuiH009u1dmGHHwen3yhzyO
xxvk1bsC0B4yjy+Wq5I2r3DZSfr10RensKYxuKyWMDKRSbI2mUk/5/JJDiZlfW+r
EIV73GAjURBM/kSS7Bo1MZmjuNcH5oXSJk4PfEOypK7xFbgPX0GM1hilJB1MZQC7
T6EJwe1+WyHkAB5nVFqiPbUM7/xWw4LwQctjLBtJ9JW/+5n/rCAtkUIGOrQIedZg
r/lckIxn6ujrKwIu5Rh03eqTIrG5PZ7Uy8LdMut0IOALp25zO7o=
=w8r3
-----END PGP SIGNATURE-----


Loading

0 comments on commit abac075

Please sign in to comment.