### this file is sourced not run
PKGVER=2.00
PKGBUILD=1
PKGARCH=i686

# source: james + Fedora patches
TARBALL=grub2-fedora-patched.tar.xz
MD5SUM=04e443db2936ae6ebc9a0cc84f16a6cf
SRC_URL=http://distro.ibiblio.org/fatdog/source/700/$TARBALL
BUNDLE=

PKG_NOSTRIP=yes # don't strip to preserve Secure Boot signatures

SLACKREQ='' # 
SLACKDESC="grub2-efi32: grub2-efi32 2.0 (UEFI Bootloader)  
grub2-efi32:  
grub2-efi32: This contains GRUB2 bootloader for booting 32-bit UEFI systems. 
grub2-efi32: It only contains the grubia32.efi package, which you can rename to
grub2-efi32: bootia32.efi to get a fully functional bootloader.
grub2-efi32: 
grub2-efi32: The bootloader is signed with Fatdog64 key.
grub2-efi32: 
grub2-efi32: 
grub2-efi32: 
grub2-efi32: 
"

### default pkg_download
### prepare
pkg_prepare() {
	pkg_prepare_default &&
	cp -a $SRC_DIR/../keys . &&
	mkdir tmp/build &&
	cp $CHROOT_DIR/tmp/pkg/grub2-embedded.cfg tmp/build &&
	cp $CHROOT_DIR/tmp/pkg/euro.pf2 tmp/build &&
	cd tmp/grub* &&
	patch -Np1 -i $CHROOT_DIR/tmp/pkg/0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch &&
	patch -Np1 -i $CHROOT_DIR/tmp/pkg/remove-artificial-initrd-limit.patch
}

### default pkg_package
### build
pkg_build() {
	cd /tmp/grub* 
	
	# Fatdog FTFBS patches
	sed -i -e 's|freetype/ftsynth.h|freetype2/ftsynth.h|' util/grub-mkfont.c &&
	sed -i -e '/^SUBDIRS/ s/docs//' Makefile.am &&
	autoreconf -fi &&
	
	# build - use -O1, something in -O2 and -Os kills it
	CFLAGS="-O1" \
	./configure --with-platform=efi --target=i386 --disable-werror --prefix=/tmp/build &&
	make $MAKEFLAGS && make install &&
	
	# post-processing a standalone image
	cd /tmp/build &&
	
	# default contents for memdisk - taken from grub-mkstandalone
	mkdir -p memdisk/boot/grub/i386-efi memdisk/boot/grub/locale &&
	cp -v lib/grub/*/{*.lst,*.mod} memdisk/boot/grub/i386-efi &&
	
	# our config and font
	cp -v euro.pf2 memdisk &&
	cp -v grub2-embedded.cfg memdisk/boot/grub/grub.cfg &&

	# generate grubia32.efi - taken from grub-mkstandalone
	(cd memdisk; tar -c *) > memdisk.tar &&	
	bin/i386-grub-mkimage -O i386-efi -o grubia32.efi -C xz \
	    -m memdisk.tar --prefix='(memdisk)/boot/grub' memdisk tar &&

	# sign it
	mkdir -p /usr/share/grub2-efi &&	
	sbsign --key /keys/fatdog64.key --cert /keys/fatdog64.crt \
	    --output /usr/share/grub2-efi/grubia32.efi grubia32.efi &&
	sbverify --cert /keys/fatdog64.crt /usr/share/grub2-efi/grubia32.efi &&
	rm -rf /keys &&

	pkg_build_slackdesc
}
