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

# 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
BINARY_NAME=grubx64-old.efi

SLACKREQ='' # 
SLACKDESC="grub2-efi64: grub2-efi64 $PKGVER (UEFI Bootloader)  
grub2-efi64:  
grub2-efi64: This contains GRUB2 bootloader for booting UEFI systems. This 
grub2-efi64: only contains the $BINARY_NAME package, which you can rename to
grub2-efi64: bootx64.efi or grubx64.efi to get a fully functional bootloader.
grub2-efi64: 
grub2-efi64: The bootloader is signed with Fatdog64 key.
grub2-efi64: 
grub2-efi64: This is the old bootloader used in Fatdog 700 series.
grub2-efi64: 
grub2-efi64: 
"

### 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/freetype/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 --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/x86_64-efi memdisk/boot/grub/locale &&
	cp -v lib/grub/*/{*.lst,*.mod} memdisk/boot/grub/x86_64-efi &&
	
	# our config and font
	cp -v euro.pf2 memdisk &&
	cp -v grub2-embedded.cfg memdisk/boot/grub/grub.cfg &&

	# generate grubx64.efi - taken from grub-mkstandalone
	(cd memdisk; tar -c *) > memdisk.tar &&	
	bin/grub-mkimage -O x86_64-efi -o grubx64.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-2041.crt \
	    --output /usr/share/grub2-efi/$BINARY_NAME grubx64.efi &&
	sbverify --cert /keys/fatdog64-2041.crt /usr/share/grub2-efi/$BINARY_NAME &&
	rm -rf /keys &&

	pkg_build_slackdesc
}
