core/grub to 2.12-3

This commit is contained in:
Kevin Mihelich 2024-09-12 10:53:48 +00:00
parent e47538d5a9
commit 0f7ba2d999
4 changed files with 370 additions and 409 deletions

View file

@ -1,44 +1,44 @@
pkgbase = grub pkgbase = grub
pkgdesc = GNU GRand Unified Bootloader (2) pkgdesc = GNU GRand Unified Bootloader (2)
pkgver = 2.12 pkgver = 2.12
pkgrel = 2 pkgrel = 3
epoch = 2 epoch = 2
url = https://www.gnu.org/software/grub/ url = https://www.gnu.org/software/grub/
install = grub.install install = grub.install
arch = x86_64 arch = x86_64
license = GPL-3.0-or-later license = GPL-3.0-or-later
makedepends = git
makedepends = rsync
makedepends = xz
makedepends = freetype2
makedepends = ttf-dejavu
makedepends = python
makedepends = autogen makedepends = autogen
makedepends = texinfo
makedepends = help2man
makedepends = gettext
makedepends = device-mapper makedepends = device-mapper
makedepends = freetype2
makedepends = fuse3 makedepends = fuse3
makedepends = gettext
makedepends = git
makedepends = help2man
makedepends = python
makedepends = rsync
makedepends = texinfo
makedepends = ttf-dejavu
makedepends = xz
depends = device-mapper
depends = gettext
depends = sh depends = sh
depends = xz depends = xz
depends = gettext optdepends = dosfstools: For grub-mkrescue FAT FS and EFI support
depends = device-mapper optdepends = efibootmgr: For grub-install EFI support
optdepends = freetype2: For grub-mkfont usage optdepends = freetype2: For grub-mkfont usage
optdepends = fuse3: For grub-mount usage optdepends = fuse3: For grub-mount usage
optdepends = dosfstools: For grub-mkrescue FAT FS and EFI support
optdepends = lzop: For grub-mkrescue LZO support
optdepends = efibootmgr: For grub-install EFI support
optdepends = libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue optdepends = libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue
optdepends = os-prober: To detect other OSes when generating grub.cfg in BIOS systems optdepends = lzop: For grub-mkrescue LZO support
optdepends = mtools: For grub-mkrescue FAT FS support optdepends = mtools: For grub-mkrescue FAT FS support
provides = grub-common optdepends = os-prober: To detect other OSes when generating grub.cfg in BIOS systems
provides = grub-bios provides = grub-bios
provides = grub-emu provides = grub-common
provides = grub-efi-x86_64 provides = grub-efi-x86_64
conflicts = grub-common provides = grub-emu
conflicts = grub-bios conflicts = grub-bios
conflicts = grub-emu conflicts = grub-common
conflicts = grub-efi-x86_64 conflicts = grub-efi-x86_64
conflicts = grub-emu
conflicts = grub-legacy conflicts = grub-legacy
replaces = grub-common replaces = grub-common
replaces = grub-bios replaces = grub-bios
@ -49,8 +49,8 @@ pkgbase = grub
backup = etc/grub.d/40_custom backup = etc/grub.d/40_custom
source = git+https://git.savannah.gnu.org/git/grub.git#tag=grub-2.12?signed source = git+https://git.savannah.gnu.org/git/grub.git#tag=grub-2.12?signed
source = git+https://git.savannah.gnu.org/git/gnulib.git source = git+https://git.savannah.gnu.org/git/gnulib.git
source = https://ftp.gnu.org/gnu/unifont/unifont-15.1.05/unifont-15.1.05.bdf.gz source = https://ftp.gnu.org/gnu/unifont/unifont-16.0.01/unifont-16.0.01.bdf.gz
source = https://ftp.gnu.org/gnu/unifont/unifont-15.1.05/unifont-15.1.05.bdf.gz.sig source = https://ftp.gnu.org/gnu/unifont/unifont-16.0.01/unifont-16.0.01.bdf.gz.sig
source = 0001-00_header-add-GRUB_COLOR_-variables.patch source = 0001-00_header-add-GRUB_COLOR_-variables.patch
source = 0002-10_linux-detect-archlinux-initramfs.patch source = 0002-10_linux-detect-archlinux-initramfs.patch
source = 0003-support-dropins-for-default-configuration.patch source = 0003-support-dropins-for-default-configuration.patch
@ -59,14 +59,14 @@ pkgbase = grub
validpgpkeys = E53D497F3FA42AD8C9B4D1E835A93B74E82E4209 validpgpkeys = E53D497F3FA42AD8C9B4D1E835A93B74E82E4209
validpgpkeys = BE5C23209ACDDACEB20DB0A28C8189F1988C2166 validpgpkeys = BE5C23209ACDDACEB20DB0A28C8189F1988C2166
validpgpkeys = 95D2E9AB8740D8046387FD151A09227B1F435A33 validpgpkeys = 95D2E9AB8740D8046387FD151A09227B1F435A33
sha256sums = SKIP b2sums = a6cec7271c3ea54a99f02ee6bc0a5825c8be657af68ba9a32b39a5fe8bcb571fb1ba39210426f6bf6a48d913e6e00df37dc2123ea1b39330f4c47bd9dbac9ae3
sha256sums = SKIP b2sums = SKIP
sha256sums = 8ea5b5a14d71e3353d1fea373f5d88d198ad1e285cedd8294655926ee11fd91d b2sums = 9f306564a63961f3a9f7a45f3f3363b1cc44a1651c3fb858ca4e87cdad79668f9aaa4b2989f91032cd614e37a98e5ca5eda2e2b0315d99deab6d0732b6f57a0d
sha256sums = SKIP b2sums = SKIP
sha256sums = 5dee6628c48eef79812bb9e86ee772068d85e7fcebbd2b2b8d1e19d24eda9dab b2sums = 992c71790785304c28fbaf0dba21dab3e283b199509f0e7e1aa0df08126da75e15b6626c3638279ff2ecaa59b925096d7dbd67d6a53cebd0ce4326ff3719d25b
sha256sums = 8488aec30a93e8fe66c23ef8c23aefda39c38389530e9e73ba3fbcc8315d244d b2sums = b4cd9ac976a579eca19d54c0b31c8d6324525fe5a0b9f5405deb63845367ac1adaa80ece4c166dfd5304608c41aa44b4f64efe235c03f437523b993be06e06e3
sha256sums = b5d9fcd62ffb3c3950fdeb7089ec2dc2294ac52e9861980ad90a437dedbd3d47 b2sums = a7820bfe9bddc34af49de63222b3d2a9788367083e29db13b33120269adbfa1619ac421d8597f662f756592889f5cc5538544a17d9936d1420bd5742282c710c
sha256sums = 7df3f5cb5df7d2dfb17f4c9b5c5dedc9519ddce6f8d2c6cd43d1be17cecb65cb b2sums = 5e42db2161e8f594b82005b26e590a20a0e8d32b01119bdd7b1a7f7c4b0f3360e8730a3ecdd5912a4dc7af5bd9aed1c3e780965ad6747d831b470158da19388d
sha256sums = f34c2b0aa2ed4ab9c7e7bcab5197470c30fedc6c2148f337839dd24bceae35fd b2sums = 052b55f53ec82d805f952afcd485bfc21623e0e427fc449f29208fecf5c321b9503d33e9025fef34ef3211b60043acfe5db08b057baaf72542a1c48cdc89b3c2
pkgname = grub pkgname = grub

View file

@ -30,63 +30,105 @@ pkgname='grub'
pkgdesc='GNU GRand Unified Bootloader (2)' pkgdesc='GNU GRand Unified Bootloader (2)'
epoch=2 epoch=2
_pkgver=2.12 _pkgver=2.12
_unifont_ver='15.1.05' _unifont_ver='16.0.01'
pkgver=${_pkgver/-/} pkgver=${_pkgver/-/}
pkgrel=2 pkgrel=3
url='https://www.gnu.org/software/grub/' url='https://www.gnu.org/software/grub/'
arch=('x86_64') arch=('x86_64')
license=('GPL-3.0-or-later') license=('GPL-3.0-or-later')
backup=('etc/default/grub' backup=(
'etc/grub.d/40_custom') etc/default/grub
etc/grub.d/40_custom
)
install="${pkgname}.install" install="${pkgname}.install"
options=('!makeflags') options=('!makeflags')
conflicts=(
conflicts=('grub-common' 'grub-bios' 'grub-emu' "grub-efi-${_EFI_ARCH}" 'grub-legacy') grub-bios
replaces=('grub-common' 'grub-bios' 'grub-emu' "grub-efi-${_EFI_ARCH}") grub-common
provides=('grub-common' 'grub-bios' 'grub-emu' "grub-efi-${_EFI_ARCH}") grub-efi-${_EFI_ARCH}
grub-emu
makedepends=('git' 'rsync' 'xz' 'freetype2' 'ttf-dejavu' 'python' 'autogen' grub-legacy
'texinfo' 'help2man' 'gettext' 'device-mapper' 'fuse3') )
depends=('sh' 'xz' 'gettext' 'device-mapper') replaces=(
optdepends=('freetype2: For grub-mkfont usage' grub-common
'fuse3: For grub-mount usage' grub-bios
'dosfstools: For grub-mkrescue FAT FS and EFI support' grub-emu
'lzop: For grub-mkrescue LZO support' grub-efi-${_EFI_ARCH}
'efibootmgr: For grub-install EFI support' )
'libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue' provides=(
'os-prober: To detect other OSes when generating grub.cfg in BIOS systems' grub-bios
'mtools: For grub-mkrescue FAT FS support') grub-common
grub-efi-${_EFI_ARCH}
grub-emu
)
makedepends=(
autogen
device-mapper
freetype2
fuse3
gettext
git
help2man
python
rsync
texinfo
ttf-dejavu
xz
)
depends=(
device-mapper
gettext
sh
xz
)
optdepends=(
'dosfstools: For grub-mkrescue FAT FS and EFI support'
'efibootmgr: For grub-install EFI support'
'freetype2: For grub-mkfont usage'
'fuse3: For grub-mount usage'
'libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue'
'lzop: For grub-mkrescue LZO support'
'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 if [[ "${_GRUB_EMU_BUILD}" == "1" ]]; then
makedepends+=('libusbx' 'sdl') makedepends+=(
optdepends+=('libusbx: For grub-emu USB support' libusbx
'sdl: For grub-emu SDL support') sdl
)
optdepends+=(
'libusbx: For grub-emu USB support'
'sdl: For grub-emu SDL support'
)
fi fi
validpgpkeys=('E53D497F3FA42AD8C9B4D1E835A93B74E82E4209' # Vladimir 'phcoder' Serbinenko <phcoder@gmail.com> validpgpkeys=(
'BE5C23209ACDDACEB20DB0A28C8189F1988C2166' # Daniel Kiper <dkiper@net-space.pl> 'E53D497F3FA42AD8C9B4D1E835A93B74E82E4209' # Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>
'95D2E9AB8740D8046387FD151A09227B1F435A33') # Paul Hardy <unifoundry@unifoundry.com> 'BE5C23209ACDDACEB20DB0A28C8189F1988C2166' # Daniel Kiper <dkiper@net-space.pl>
'95D2E9AB8740D8046387FD151A09227B1F435A33') # Paul Hardy <unifoundry@unifoundry.com>
source=("git+https://git.savannah.gnu.org/git/grub.git#tag=grub-${_pkgver}?signed" source=(
'git+https://git.savannah.gnu.org/git/gnulib.git' "git+https://git.savannah.gnu.org/git/grub.git#tag=grub-${_pkgver}?signed"
"https://ftp.gnu.org/gnu/unifont/unifont-${_unifont_ver}/unifont-${_unifont_ver}.bdf.gz"{,.sig} 'git+https://git.savannah.gnu.org/git/gnulib.git'
'0001-00_header-add-GRUB_COLOR_-variables.patch' "https://ftp.gnu.org/gnu/unifont/unifont-${_unifont_ver}/unifont-${_unifont_ver}.bdf.gz"{,.sig}
'0002-10_linux-detect-archlinux-initramfs.patch' '0001-00_header-add-GRUB_COLOR_-variables.patch'
'0003-support-dropins-for-default-configuration.patch' '0002-10_linux-detect-archlinux-initramfs.patch'
'0004-10_linux-add-archlinuxarm-s-default-kernel-path.patch' '0003-support-dropins-for-default-configuration.patch'
'grub.default' '0004-10_linux-add-archlinuxarm-s-default-kernel-path.patch'
'sbat.csv') 'grub.default'
'sbat.csv'
sha256sums=('SKIP' )
'SKIP' b2sums=('SKIP'
'8ea5b5a14d71e3353d1fea373f5d88d198ad1e285cedd8294655926ee11fd91d' 'SKIP'
'SKIP' '9f306564a63961f3a9f7a45f3f3363b1cc44a1651c3fb858ca4e87cdad79668f9aaa4b2989f91032cd614e37a98e5ca5eda2e2b0315d99deab6d0732b6f57a0d'
'5dee6628c48eef79812bb9e86ee772068d85e7fcebbd2b2b8d1e19d24eda9dab' 'SKIP'
'8488aec30a93e8fe66c23ef8c23aefda39c38389530e9e73ba3fbcc8315d244d' '992c71790785304c28fbaf0dba21dab3e283b199509f0e7e1aa0df08126da75e15b6626c3638279ff2ecaa59b925096d7dbd67d6a53cebd0ce4326ff3719d25b'
'b5d9fcd62ffb3c3950fdeb7089ec2dc2294ac52e9861980ad90a437dedbd3d47' 'b4cd9ac976a579eca19d54c0b31c8d6324525fe5a0b9f5405deb63845367ac1adaa80ece4c166dfd5304608c41aa44b4f64efe235c03f437523b993be06e06e3'
'bfa56cc7cb2e1650fcd19ecfe5b8d2d0aa7bbc4266a0a5fb1e5d4f60e4a7fa56' 'a7820bfe9bddc34af49de63222b3d2a9788367083e29db13b33120269adbfa1619ac421d8597f662f756592889f5cc5538544a17d9936d1420bd5742282c710c'
'7df3f5cb5df7d2dfb17f4c9b5c5dedc9519ddce6f8d2c6cd43d1be17cecb65cb' '879f50775080fd189b7a7f0a96e72196d0be31b292cde092ad941691e42a427f5bc48a497c5ca991daa285e9dea1d913695cff667e74f96da2520a49648c1cdd'
'f34c2b0aa2ed4ab9c7e7bcab5197470c30fedc6c2148f337839dd24bceae35fd') '5e42db2161e8f594b82005b26e590a20a0e8d32b01119bdd7b1a7f7c4b0f3360e8730a3ecdd5912a4dc7af5bd9aed1c3e780965ad6747d831b470158da19388d'
'052b55f53ec82d805f952afcd485bfc21623e0e427fc449f29208fecf5c321b9503d33e9025fef34ef3211b60043acfe5db08b057baaf72542a1c48cdc89b3c2')
_backports=( _backports=(
) )
@ -95,232 +137,232 @@ _reverts=(
) )
_configure_options=( _configure_options=(
PACKAGE_VERSION="${epoch}:${pkgver}-${pkgrel}" PACKAGE_VERSION="${epoch}:${pkgver}-${pkgrel}"
FREETYPE="pkg-config freetype2" FREETYPE="pkg-config freetype2"
BUILD_FREETYPE="pkg-config freetype2" BUILD_FREETYPE="pkg-config freetype2"
--enable-nls --enable-nls
--enable-device-mapper --enable-device-mapper
--enable-cache-stats --enable-cache-stats
--enable-grub-mkfont --enable-grub-mkfont
--enable-grub-mount --enable-grub-mount
--prefix="/usr" --prefix="/usr"
--bindir="/usr/bin" --bindir="/usr/bin"
--sbindir="/usr/bin" --sbindir="/usr/bin"
--mandir="/usr/share/man" --mandir="/usr/share/man"
--infodir="/usr/share/info" --infodir="/usr/share/info"
--datarootdir="/usr/share" --datarootdir="/usr/share"
--sysconfdir="/etc" --sysconfdir="/etc"
--program-prefix="" --program-prefix=""
--with-bootdir="/boot" --with-bootdir="/boot"
--with-grubdir="grub" --with-grubdir="grub"
--disable-silent-rules --disable-silent-rules
--disable-werror --disable-werror
) )
prepare() { prepare() {
cd "${srcdir}/grub/" cd "${srcdir}/grub/"
echo "Apply backports..." echo "Apply backports..."
local _c local _c
for _c in "${_backports[@]}"; do for _c in "${_backports[@]}"; do
git log --oneline -1 "${_c}" git log --oneline -1 "${_c}"
git cherry-pick -n "${_c}" git cherry-pick -n "${_c}"
done done
echo "Apply reverts..." echo "Apply reverts..."
local _c local _c
for _c in "${_reverts[@]}"; do for _c in "${_reverts[@]}"; do
git log --oneline -1 "${_c}" git log --oneline -1 "${_c}"
git revert -n "${_c}" git revert -n "${_c}"
done done
echo "Patch to enable GRUB_COLOR_* variables in grub-mkconfig..." echo "Patch to enable GRUB_COLOR_* variables in grub-mkconfig..."
## Based on http://lists.gnu.org/archive/html/grub-devel/2012-02/msg00021.html ## Based on http://lists.gnu.org/archive/html/grub-devel/2012-02/msg00021.html
patch -Np1 -i "${srcdir}/0001-00_header-add-GRUB_COLOR_-variables.patch" patch -Np1 -i "${srcdir}/0001-00_header-add-GRUB_COLOR_-variables.patch"
echo "Patch to detect of Arch Linux initramfs images by grub-mkconfig..." echo "Patch to detect of Arch Linux initramfs images by grub-mkconfig..."
patch -Np1 -i "${srcdir}/0002-10_linux-detect-archlinux-initramfs.patch" patch -Np1 -i "${srcdir}/0002-10_linux-detect-archlinux-initramfs.patch"
echo "Patch to support dropins for default configuration..." echo "Patch to support dropins for default configuration..."
patch -Np1 -i "${srcdir}/0003-support-dropins-for-default-configuration.patch" patch -Np1 -i "${srcdir}/0003-support-dropins-for-default-configuration.patch"
echo "Patch to detect of Arch Linux ARM kernel images by grub-mkconfig..." echo "Patch to detect of Arch Linux ARM kernel images by grub-mkconfig..."
patch -Np1 -i "${srcdir}/0004-10_linux-add-archlinuxarm-s-default-kernel-path.patch" patch -Np1 -i "${srcdir}/0004-10_linux-add-archlinuxarm-s-default-kernel-path.patch"
echo "Fix DejaVuSans.ttf location so that grub-mkfont can create *.pf2 files for starfield theme..." echo "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" sed 's|/usr/share/fonts/dejavu|/usr/share/fonts/dejavu /usr/share/fonts/TTF|g' -i "configure.ac"
echo "Fix mkinitcpio 'rw' FS#36275..." echo "Fix mkinitcpio 'rw' FS#36275..."
sed 's| ro | rw |g' -i "util/grub.d/10_linux.in" sed 's| ro | rw |g' -i "util/grub.d/10_linux.in"
echo "Fix OS naming FS#33393..." echo "Fix OS naming FS#33393..."
sed 's|GNU/Linux|Linux|' -i "util/grub.d/10_linux.in" sed 's|GNU/Linux|Linux|' -i "util/grub.d/10_linux.in"
echo "Pull in latest language files..." echo "Pull in latest language files..."
./linguas.sh ./linguas.sh
echo "Avoid problem with unifont during compile of grub..." echo "Avoid problem with unifont during compile of grub..."
# http://savannah.gnu.org/bugs/?40330 and https://bugs.archlinux.org/task/37847 # http://savannah.gnu.org/bugs/?40330 and https://bugs.archlinux.org/task/37847
gzip -cd "${srcdir}/unifont-${_unifont_ver}.bdf.gz" > "unifont.bdf" gzip -cd "${srcdir}/unifont-${_unifont_ver}.bdf.gz" > "unifont.bdf"
echo "Run bootstrap..." echo "Run bootstrap..."
./bootstrap \ ./bootstrap \
--gnulib-srcdir="${srcdir}/gnulib/" \ --gnulib-srcdir="${srcdir}/gnulib/" \
--no-git --no-git
echo "Make translations reproducible..." echo "Make translations reproducible..."
sed -i '1i /^PO-Revision-Date:/ d' po/*.sed sed -i '1i /^PO-Revision-Date:/ d' po/*.sed
} }
_build_grub-common_and_bios() { _build_grub-common_and_bios() {
echo "Set ARCH dependent variables for bios build..." echo "Set ARCH dependent variables for bios build..."
if [[ "${CARCH}" == 'x86_64' ]]; then if [[ "${CARCH}" == 'x86_64' ]]; then
_EFIEMU="--enable-efiemu" _EFIEMU="--enable-efiemu"
else else
_EFIEMU="--disable-efiemu" _EFIEMU="--disable-efiemu"
fi fi
echo "Copy the source for building the bios part..." echo "Copy the source for building the bios part..."
cp -r "${srcdir}/grub/" "${srcdir}/grub-bios/" cp -r "${srcdir}/grub/" "${srcdir}/grub-bios/"
cd "${srcdir}/grub-bios/" cd "${srcdir}/grub-bios/"
echo "Unset all compiler FLAGS for bios build..." echo "Unset all compiler FLAGS for bios build..."
unset CFLAGS unset CFLAGS
unset CPPFLAGS unset CPPFLAGS
unset CXXFLAGS unset CXXFLAGS
unset LDFLAGS unset LDFLAGS
unset MAKEFLAGS unset MAKEFLAGS
echo "Run ./configure for bios build..." echo "Run ./configure for bios build..."
./configure \ ./configure \
--with-platform="pc" \ --with-platform="pc" \
--target="i386" \ --target="i386" \
"${_EFIEMU}" \ "${_EFIEMU}" \
--enable-boot-time \ --enable-boot-time \
"${_configure_options[@]}" "${_configure_options[@]}"
if [ ! -z "${SOURCE_DATE_EPOCH}" ]; then if [ ! -z "${SOURCE_DATE_EPOCH}" ]; then
echo "Make info pages reproducible..." echo "Make info pages reproducible..."
touch -d "@${SOURCE_DATE_EPOCH}" $(find -name '*.texi') touch -d "@${SOURCE_DATE_EPOCH}" $(find -name '*.texi')
fi fi
echo "Run make for bios build..." echo "Run make for bios build..."
make make
} }
_build_grub-efi() { _build_grub-efi() {
echo "Copy the source for building the ${_EFI_ARCH} efi part..." echo "Copy the source for building the ${_EFI_ARCH} efi part..."
cp -r "${srcdir}/grub/" "${srcdir}/grub-efi-${_EFI_ARCH}/" cp -r "${srcdir}/grub/" "${srcdir}/grub-efi-${_EFI_ARCH}/"
cd "${srcdir}/grub-efi-${_EFI_ARCH}/" cd "${srcdir}/grub-efi-${_EFI_ARCH}/"
echo "Unset all compiler FLAGS for ${_EFI_ARCH} efi build..." echo "Unset all compiler FLAGS for ${_EFI_ARCH} efi build..."
unset CFLAGS unset CFLAGS
unset CPPFLAGS unset CPPFLAGS
unset CXXFLAGS unset CXXFLAGS
unset LDFLAGS unset LDFLAGS
unset MAKEFLAGS unset MAKEFLAGS
echo "Run ./configure for ${_EFI_ARCH} efi build..." echo "Run ./configure for ${_EFI_ARCH} efi build..."
./configure \ ./configure \
--with-platform="efi" \ --with-platform="efi" \
--target="${_EFI_ARCH}" \ --target="${_EFI_ARCH}" \
--disable-efiemu \ --disable-efiemu \
--enable-boot-time \ --enable-boot-time \
"${_configure_options[@]}" "${_configure_options[@]}"
echo "Run make for ${_EFI_ARCH} efi build..." echo "Run make for ${_EFI_ARCH} efi build..."
make make
} }
_build_grub-emu() { _build_grub-emu() {
echo "Copy the source for building the emu part..." echo "Copy the source for building the emu part..."
cp -r "${srcdir}/grub/" "${srcdir}/grub-emu/" cp -r "${srcdir}/grub/" "${srcdir}/grub-emu/"
cd "${srcdir}/grub-emu/" cd "${srcdir}/grub-emu/"
echo "Unset all compiler FLAGS for emu build..." echo "Unset all compiler FLAGS for emu build..."
unset CFLAGS unset CFLAGS
unset CPPFLAGS unset CPPFLAGS
unset CXXFLAGS unset CXXFLAGS
unset LDFLAGS unset LDFLAGS
unset MAKEFLAGS unset MAKEFLAGS
echo "Run ./configure for emu build..." echo "Run ./configure for emu build..."
./configure \ ./configure \
--with-platform="emu" \ --with-platform="emu" \
--target="${_EMU_ARCH}" \ --target="${_EMU_ARCH}" \
--enable-grub-emu-usb=no \ --enable-grub-emu-usb=no \
--enable-grub-emu-sdl=no \ --enable-grub-emu-sdl=no \
--disable-grub-emu-pci \ --disable-grub-emu-pci \
"${_configure_options[@]}" "${_configure_options[@]}"
echo "Run make for emu build..." echo "Run make for emu build..."
make make
} }
build() { build() {
cd "${srcdir}/grub/" cd "${srcdir}/grub/"
echo "Build grub ${_EFI_ARCH} efi stuff..." echo "Build grub ${_EFI_ARCH} efi stuff..."
_build_grub-efi _build_grub-efi
if [[ "${CARCH}" == "x86_64" ]] && [[ "${_IA32_EFI_IN_ARCH_X64}" == "1" ]]; then if [[ "${CARCH}" == "x86_64" ]] && [[ "${_IA32_EFI_IN_ARCH_X64}" == "1" ]]; then
echo "Build grub i386 efi stuff..." echo "Build grub i386 efi stuff..."
_EFI_ARCH="i386" _build_grub-efi _EFI_ARCH="i386" _build_grub-efi
fi fi
if [[ "${_GRUB_EMU_BUILD}" == "1" ]]; then if [[ "${_GRUB_EMU_BUILD}" == "1" ]]; then
echo "Build grub emu stuff..." echo "Build grub emu stuff..."
_build_grub-emu _build_grub-emu
fi fi
} }
_package_grub-common_and_bios() { _package_grub-common_and_bios() {
echo "Install /etc/default/grub (used by grub-mkconfig)..." echo "Install /etc/default/grub (used by grub-mkconfig)..."
install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub"
} }
_package_grub-efi() { _package_grub-efi() {
cd "${srcdir}/grub-efi-${_EFI_ARCH}/" cd "${srcdir}/grub-efi-${_EFI_ARCH}/"
echo "Run make install for ${_EFI_ARCH} efi build..." echo "Run make install for ${_EFI_ARCH} efi build..."
make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install
echo "Remove gdb debugging related files for ${_EFI_ARCH} efi build..." echo "Remove gdb debugging related files for ${_EFI_ARCH} efi build..."
rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/*.module || true 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"/*.image || true
rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/{kernel.exec,gdb_grub,gmodule.pl} || true rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/{kernel.exec,gdb_grub,gmodule.pl} || true
sed -e "s/%PKGVER%/${epoch}:${pkgver}-${pkgrel}/" < "${srcdir}/sbat.csv" > "${pkgdir}/usr/share/grub/sbat.csv" sed -e "s/%PKGVER%/${epoch}:${pkgver}-${pkgrel}/" < "${srcdir}/sbat.csv" > "${pkgdir}/usr/share/grub/sbat.csv"
} }
_package_grub-emu() { _package_grub-emu() {
cd "${srcdir}/grub-emu/" cd "${srcdir}/grub-emu/"
echo "Run make install for emu build..." echo "Run make install for emu build..."
make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install
echo "Remove gdb debugging related files for emu build..." echo "Remove gdb debugging related files for emu build..."
rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/*.module || true rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/*.module || true
rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/*.image || true rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/*.image || true
rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/{kernel.exec,gdb_grub,gmodule.pl} || true rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/{kernel.exec,gdb_grub,gmodule.pl} || true
} }
package() { package() {
cd "${srcdir}/grub/" cd "${srcdir}/grub/"
echo "Package grub ${_EFI_ARCH} efi stuff..." echo "Package grub ${_EFI_ARCH} efi stuff..."
_package_grub-efi _package_grub-efi
if [[ "${CARCH}" == "x86_64" ]] && [[ "${_IA32_EFI_IN_ARCH_X64}" == "1" ]]; then if [[ "${CARCH}" == "x86_64" ]] && [[ "${_IA32_EFI_IN_ARCH_X64}" == "1" ]]; then
echo "Package grub i386 efi stuff..." echo "Package grub i386 efi stuff..."
_EFI_ARCH="i386" _package_grub-efi _EFI_ARCH="i386" _package_grub-efi
fi fi
if [[ "${_GRUB_EMU_BUILD}" == "1" ]]; then if [[ "${_GRUB_EMU_BUILD}" == "1" ]]; then
echo "Package grub emu stuff..." echo "Package grub emu stuff..."
_package_grub-emu _package_grub-emu
fi fi
echo "Package grub bios stuff..." echo "Package grub bios stuff..."
_package_grub-common_and_bios _package_grub-common_and_bios
} }

View file

@ -11,55 +11,59 @@ aqdOvtPMHQKVyKIWTxC0U97ht3FHjSBOJpqk0MXKuNWRI3XoBarjYBgXJGDWhYH7
tUnEqkQBJZ27Dqy0wLHil1RuXftiG0OtrSQBuBWWfZHOWH25ozOGblJ5QPqmkd4M tUnEqkQBJZ27Dqy0wLHil1RuXftiG0OtrSQBuBWWfZHOWH25ozOGblJ5QPqmkd4M
dWRoYcOVxKxRky0zv8erZnng7IiacXFqSFOcG1IILXpZcPcr/QlXqzl2/ruHgAFR dWRoYcOVxKxRky0zv8erZnng7IiacXFqSFOcG1IILXpZcPcr/QlXqzl2/ruHgAFR
Ls7TEMfAgfpEKzgxX9f6vQ3VrvlpuvttWDjZC27MOFjFZxftDseP1F1/zQARAQAB Ls7TEMfAgfpEKzgxX9f6vQ3VrvlpuvttWDjZC27MOFjFZxftDseP1F1/zQARAQAB
tCJEYW5pZWwgS2lwZXIgPGRraXBlckBuZXQtc3BhY2UucGw+iQJYBBMBAgBCAhsD tCJEYW5pZWwgS2lwZXIgPGRraXBlckBuZXQtc3BhY2UucGw+iQKvBBMBCgCZAhsD
BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUJC2X/txYhBL5cIyCazdrOsg2wooyB Ah4BAheAAhkBBAsJCAcFFQoJCAsFFgIDAQBYGGh0dHBzOi8va2V5cy5vcGVucGdw
ifGYjCFmBQJe5L+9AhkBAAoJEIyBifGYjCFmg6cP/2bLFqtsJVyuajJKzmaJn5q1 Lm9yZy92a3MvdjEvYnktZmluZ2VycHJpbnQvQkU1QzIzMjA5QUNEREFDRUIyMERC
BqcBaGuyZYJzwtr/ePVMG6Kid3Dj8GSXbqRqJrs20+P0/PnOSX8Oo4zqsLwv8Zku MEEyOEM4MTg5RjE5ODhDMjE2NhYhBL5cIyCazdrOsg2wooyBifGYjCFmBQJmKryj
CHggrYAysNqoO8aQELha0//jF5h1RZ5HuUx7U2eNZAzOkN+Ijq2L0a99IckjQY2P BQkW+h6/AAoJEIyBifGYjCFmnTEQAJZIqJXQVMuAiZnYrG8hHHI2pyhXR2WMhAlu
eErCUDfU/+gnyn/5Kv+DpnZ50op20XLCvzrqyXD9aD98sYlXg+Emqm5J5ztmuSR/ fwq+IOhiaHPmpZyg9Qaka62aJKbzplPKWVdxpYjGW37Alj+MWnxnBXHqv9Hp6cEv
AncfQa5RzMEbvK947kg3cyGIhub+blAE8tKpdOtIX04JS4M3m84MNN9LmadNrvRr ElzBlrgc4FVKeMCYko197NJkpVCsQRHYMqEA9Kg4OkFn5aLNHfGEuGYWyZxkB/AK
2HobjCp2xS8rioYTzKhLbyhuNgRfGX5cPmkap0K0Ft1uFpxCulBv1xKOUWIN7+RL kllWfMe0slQcTrl50+JzA3nWuVGqwKQg1K0Z84tWl0bK+1EUMkFWx0m2afBklHBI
8GRjrDY+gVM6yw3kivpYISrndw/ETXhh7dWultfpu5+rF8F6kzlzKEfUW6QJYJCa pkYjiZg7nJ/ULY/0RyHQdd21sI6Qhq7VJ3hoBzQiUuq36A0xE4q2MH3PoXNQzv7v
qv/Y5zaoN0TlnE4tJUWCaxYAIabAw3pqn5Xx58h7qHa3uq8SdDg3Ttr7HNdEkn7/ 9086Ntt1J1XvP0Pc9G28fgb33ieHHRWtDas4BvIpGFtFUsIRa/wKGPN1cE2LhBV4
iUOe5dvd4o+UYs/N0TaQwbi6BGh4qZtd07bOEuvk9YG17++BUwZTaWof5H5A5Bic Zi4JAZ2NhoGhDMWEkIvBOe3QU3W74kek0ucUzzNRYMu/6T/jnJescJn24NmPrWlc
OIlM46dwH10QINEapgyBL80JpRiBJfyF8aoGynd7TAgXwKzeJ1kvl9WevERjcLo5 /j3DFfJTJt6D03PQWyYX+1Q0PfifrxMlhawMqJ9K0T0vqVvkqFV8Z5C3B7BgCLiU
9x4uCnDA0d2NL4Hh46ejKT3vn/19K7P7F6/G/UtKC2ORNsU4xeGgxlW7shNtBuoL KBN/VvH50OUlMLDe7sRR7UlUSWHydNf3ACBNwHw8zIDFifBdo0zj9qIe7eAwL8lN
aFkwBH5BPVEY2GW8ls3ftCZEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBlckBvcmFj WC9/D1pZCmeg4+KQpP2Z0naUaXbHbXO3KYSABbdakoVL69rQzPIgoCKVG+iP1JR1
bGUuY29tPokCVAQTAQgAPhYhBL5cIyCazdrOsg2wooyBifGYjCFmBQJe5L1EAhsD rkBDRMLP498hthHQhyPjsaCnFv2yUWPoSqkdbRXRN1u6Foda/xJLadpbMG0bN4G1
BQkLZf+3BQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAAoJEIyBifGYjCFmsmIP/jX5 Azf0Ti4htCZEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBlckBvcmFjbGUuY29tPokC
MtYkmqCCJ7G+J1XP68Xj7KLFaQAmYLNo0l+jk3EyKFaGTr3fSYqiRNg2vrC5sqQ+ rAQTAQoAlgIbAwIeAQIXgAQLCQgHBRUKCQgLBRYCAwEAWBhodHRwczovL2tleXMu
/Ok118kQMiMQU2Sisiw75cueCdzI5fmWjp1qvSKVLGGOaASUxAWmQE1dFlybUyRh b3BlbnBncC5vcmcvdmtzL3YxL2J5LWZpbmdlcnByaW50L0JFNUMyMzIwOUFDRERB
xHcYK7yY/A4hI705H1gFmehlh8O/6NWxUdoz62vOafRYtzDKZVB7JFjeSyDrVOxK Q0VCMjBEQjBBMjhDODE4OUYxOTg4QzIxNjYWIQS+XCMgms3azrINsKKMgYnxmIwh
p9u53BsBJ6SuJ87JGHqYDaAzmDbFyRBM7UN9T4Sxs8W5FlRfvt0KJrE5EScJdaBe ZgUCZiq8owUJFvoevwAKCRCMgYnxmIwhZsTlD/4pZtQhngLdCpttoqScVuoA2M3R
8xfQBSAv7pLZmiJxmJoOn9hVZmOCLEEhLYbaB8vLLAObxvvjHqlP22kbnVUE+cxw ZYL6UmSajqZiNfdpeNoMIXzWT4WF9iAc6dJVsT59+LuplVQV4aPDsoDMNmmcNpnE
jWAInNNxTjlNIsQ0iyI5YqVjp2pJ7IUJhklsnhLXhHGzaI/bPU/ICagght+ihpFZ 4J69D2eO+36QufcRO1jNII2SrjYU6FTvQYUF9yQDXOK77IDTClGD27IA0rZ6o9yK
TQTrYGT+ITIt1YreswU29YgFJ7NnUNiU1gmmsT5KVBBX56kLGI/hcU7Jj1MPKzOO sIPt7PBY1zZiQku+jfbj1n9RtXnHscl7dMEm5OM5gGveCf2hk5BpB0GiB/gcP5tp
6Pq07BPmmDNGDVv2OlOLgiTG9koVqc9gwbQprgS2SQiGaP/EN+51jpiMOdPIt/uW IxuApV057gCB2rr6/vu36mn643OVBfRtmtBo2gGJ1003fofMIZ5Awcm1GqFjXhrH
gqkZnL5TbURm4fktQzUjpX6GKmedzNguVUbyu6E/RMvhTE34SVEpUviFoLd6S1tT Gt/ZfoZDA5cJBzGRnU1HHZ+NjMIWUnthunH1XwEEPile1B8v+sMwDC4MU697xqRW
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
lO+vSz81 Wb0H2KQUwkiuHZ1qQ72EHsUWW5Br76uSre2bNGGA2qDUESJk0ZaCQD2E+/7cToZr
=MKAN CRm1viIfeqj+iK4JcngozJEV09d3Uu+Uu2TLK4Lhh4hpcOD1wEOLGWd/QK1FuFZC
mZ88W9mk2HM4R2Vn3HQnj30dTpNmwGE/ybtKpmuA7V3VKAhR8PRGusScYTte0hWz
ZKVtSxvcw1HP/FPKkjrQKYi/2H0oZ4Km8R68grOjUmXef0zCIoRrpIKBg5exEl9Z
cxh2fybAtwHLff1f
=dts7
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

View file

@ -50,120 +50,35 @@ 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 =pZdQ
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
XTR5GXhPjqDqP9S54l48OztCizN4bUduTsvocA==
=lFiJ
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----