# Contributor: Carlo Landmeter # Maintainer: setvar pkgname = 'grub' setvar pkgver = '2.02' setvar pkgrel = '1' setvar pkgdesc = ""Bootloader with support for Linux, Multiboot and more"" setvar url = ""https://www.gnu.org/software/grub/"" setvar arch = ""all !armhf !s390x"" setvar license = ""GPLv3+"" setvar depends = """" setvar depends_dev = """" setvar makedepends = ""$depends_dev bison flex linux-headers xz-dev lvm2-dev automake autoconf libtool python2 freetype-dev unifont"" setvar install = """" # strip handled by grub Makefiles, abuild strip breaks xen pv-grub setvar options = ""!strip"" setvar subpackages = ""$pkgname-dev $pkgname-doc"" # currently grub only builds on x86*, aarch64 and ppc64le systems case (CARCH) { x86 { setvar subpackages = ""$subpackages $pkgname-efi $pkgname-bios"" } x86_64 { setvar subpackages = ""$subpackages $pkgname-efi $pkgname-bios $pkgname-xenhost"" } aarch64 { setvar subpackages = ""$subpackages $pkgname-efi"" } ppc64le { setvar subpackages = ""$subpackages $pkgname-ieee1275"" setvar makedepends = ""$makedepends powerpc-utils"" } s390x { setvar subpackages = ""$subpackages $pkgname-emu"" } } setvar source = ""https://ftp.gnu.org/gnu/grub/grub-$pkgver.tar.xz fix-gcc-no-pie-specs.patch grub2-accept-empty-module.patch grub-xen-host_grub.cfg 2.02_beta3-mkconfig-alpine.patch "" setvar builddir = ""$srcdir/grub-$pkgver"" proc _build_bios { msg "Building grub for platform BIOS" cd $builddir/bios ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var \ --disable-nls \ --disable-werror \ --with-platform=pc \ || return 1 make || return 1 } proc _build_efi { msg "Building grub for platform EFI" cd $builddir/efi ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var \ --disable-nls \ --disable-werror \ --with-platform=efi \ --disable-efiemu \ || return 1 make || return 1 } proc _build_xen { msg "Building grub for platform XEN" cd $builddir/xen ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var \ --disable-nls \ --disable-werror \ --with-platform=xen \ --target=$CARCH \ || return 1 make || return 1 } proc _build_ieee1275 { msg "Building grub for platform IEEE1275" cd $builddir/ieee1275 ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var \ --disable-nls \ --disable-werror \ --with-platform=ieee1275 \ || return 1 make || return 1 } proc _build_emu { msg "Building grub for platform EMU" cd $builddir/emu ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var \ --disable-nls \ --disable-werror \ --with-platform=emu \ || return 1 make || return 1 } proc build { cd $builddir autoreconf -vif || return 1 cd $srcdir setvar tmpdir = ""$srcdir"/tmp" mv $builddir $tmpdir mkdir $builddir cp -r $tmpdir "$builddir"/bios cp -r $tmpdir "$builddir"/efi cp -r $tmpdir "$builddir"/xen cp -r $tmpdir "$builddir"/emu mv $tmpdir "$builddir"/ieee1275 case (CARCH) { x86 { _build_bios || return 1 _build_efi || return 1 } x86_64 { _build_bios || return 1 _build_efi || return 1 _build_xen || return 1 } aarch64 { _build_efi || return 1 } ppc64le { _build_ieee1275 || return 1 } s390x { _build_emu || return 1} } } proc _install_bios { cd "$builddir"/bios make DESTDIR="$pkgdir" install-strip || return 1 } proc _install_efi { cd "$builddir"/efi make DESTDIR="$pkgdir" install-strip || return 1 } proc _install_xen { cd "$builddir"/xen setvar grub_dir = $(mktemp -d) setvar cfg = $(mktemp) setvar grub_memdisk = $(mktemp) mkdir -p $grub_dir/boot/grub echo 'normal (memdisk)/grub.cfg' > $cfg sed -e "s/@@PVBOOT_ARCH@@/$CARCH/g" \ $srcdir/grub-xen-host_grub.cfg \ > $grub_dir/grub.cfg tar -cf - -C $grub_dir grub.cfg > $grub_memdisk ./grub-mkimage \ -O $CARCH-xen \ -c $cfg \ -d ./grub-core ./grub-core/*.mod \ -m $grub_memdisk \ -o $pkgdir/grub-$CARCH-xen.bin rm -r $grub_dir rm $cfg rm $grub_memdisk } proc _install_ieee1275 { cd "$builddir"/ieee1275 make DESTDIR="$pkgdir" install-strip || return 1 } proc _install_emu { cd "$builddir"/emu make DESTDIR="$pkgdir" install-strip || return 1 } proc package { # install BIOS & EFI version into the same directory # and overwrite similar files. case (CARCH) { x86 { _install_bios _install_efi } x86_64 { _install_bios _install_efi _install_xen } aarch64 { _install_efi } ppc64le { _install_ieee1275 } s390x { _install_emu } } rm -f "$pkgdir"/usr/lib/charset.alias } proc bios { setvar pkgdesc = ""$pkgdesc (BIOS version)"" setvar depends = "$pkgname" mkdir -p $subpkgdir/usr/lib/grub mv $pkgdir/usr/lib/grub/*-pc $subpkgdir/usr/lib/grub/ } proc efi { setvar pkgdesc = ""$pkgdesc (EFI version)"" setvar depends = "$pkgname" mkdir -p $subpkgdir/usr/lib/grub mv $pkgdir/usr/lib/grub/*-efi $subpkgdir/usr/lib/grub/ } proc xenhost { setvar pkgdesc = ""$pkgdesc (XEN host version)"" mkdir -p $subpkgdir/usr/lib/grub-xen mv $pkgdir/*-xen.bin $subpkgdir/usr/lib/grub-xen/ } proc ieee1275 { setvar pkgdesc = ""$pkgdesc (IEEE1275 version)"" setvar depends = ""$pkgname powerpc-utils"" mkdir -p $subpkgdir/usr/lib/grub mv $pkgdir/usr/lib/grub/*-ieee1275 $subpkgdir/usr/lib/grub/ } proc emu { setvar pkgdesc = ""$pkgdesc (EMU version)"" setvar depends = "$pkgname" mkdir -p $subpkgdir/usr/lib/grub mv $pkgdir/usr/lib/grub/*-emu $subpkgdir/usr/lib/grub/ } setvar sha512sums = ""cc6eb0a42b5c8df2f671cc128ff725afb3ff1f8832a196022e433cf0d3b75decfca2316d0aa5fabea75747d55e88f3d021dd93508563f8ca80fd7b9e7fe1f088 grub-2.02.tar.xz f2a7d9ab6c445f4e402e790db56378cecd6631b5c367451aa6ce5c01cd95b95c83c3dd24d6d4b857f8f42601eba82c855607513eb6ce5b2af6bd6c71f046e288 fix-gcc-no-pie-specs.patch 098a1742aef131c85d63b934a9815879b991f2e73030cb90ac4b5dcd07d249fa0dd0a281e52ada0e10f05d59223493bd416eb47543242bf0ba336a0ebc9b2a1a grub2-accept-empty-module.patch 4e7394e0fff6772c89683039ccf81099ebbfe4f498e6df408977a1488fd59389b6e19afdbf0860ec271e2b2aea0df7216243dcc8235d1ca3af0e7f4d0a9d60a4 grub-xen-host_grub.cfg 5de7c1cc11640a3892447f0daa1e3fd1f67b0c474c8aec555e4e6315b5e6c00491ba02c88b420cec221da0640c6961d639f148746df14a0b2c15bda7989cd25c 2.02_beta3-mkconfig-alpine.patch""