diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2017-05-22 14:07:52 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2017-05-22 14:22:00 +0000 |
commit | 5b05d9838e2aeb8d29ba22e64fdc205445f9e3a0 (patch) | |
tree | 64d54828d7226a17160b7ccf610dcde06221cd8a /main/grub/APKBUILD | |
parent | 5d1c3fc11703f547a43bc4d7b9f089d75efbec60 (diff) | |
download | aports-5b05d9838e2aeb8d29ba22e64fdc205445f9e3a0.tar.bz2 aports-5b05d9838e2aeb8d29ba22e64fdc205445f9e3a0.tar.xz |
main/grub: move from testing
neeed for ppc64le image
Diffstat (limited to 'main/grub/APKBUILD')
-rw-r--r-- | main/grub/APKBUILD | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/main/grub/APKBUILD b/main/grub/APKBUILD new file mode 100644 index 0000000000..4783fdaa02 --- /dev/null +++ b/main/grub/APKBUILD @@ -0,0 +1,231 @@ +# Contributor: Carlo Landmeter <clandmeter@gmail.com> +# Maintainer: +pkgname=grub +_ver=2.02~beta3 +pkgver=2.02_beta3 +pkgrel=6 +pkgdesc="Bootloader with support for Linux, Multiboot and more" +url="https://www.gnu.org/software/grub/" +arch="all !armhf" +license="GPLv3+" +depends="" +depends_dev="" +makedepends="$depends_dev bison flex linux-headers xz-dev lvm2-dev + automake autoconf libtool python2 freetype-dev unifont" +install="" +# strip handled by grub Makefiles, abuild strip breaks xen pv-grub +options="!strip" +subpackages="$pkgname-dev $pkgname-doc" + +# currently grub only builds on x86*, aarch64 and ppc64le systems +case "$CARCH" in +x86) subpackages="$subpackages $pkgname-efi $pkgname-bios" ;; +x86_64) subpackages="$subpackages $pkgname-efi $pkgname-bios $pkgname-xenhost" ;; +aarch64) subpackages="$subpackages $pkgname-efi" ;; +ppc64le) subpackages="$subpackages $pkgname-ieee1275" ;; +esac + +source="ftp://alpha.gnu.org/gnu/grub/grub-$_ver.tar.xz + 2.02_beta3-gcc6-ld-no-pie.patch + fix-gcc-no-pie-specs.patch + grub2-accept-empty-module.patch + grub-xen-host_grub.cfg + 2.02_beta3-mkconfig-alpine.patch + " +builddir="$srcdir/grub-$_ver" + + +_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 +} + +_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 +} + +_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 +} + +_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 +} + +build() { + cd "$builddir" + autoreconf -vif || return 1 + + cd "$srcdir" + tmpdir="$srcdir"/tmp + mv "$builddir" "$tmpdir" + + mkdir "$builddir" + cp -r "$tmpdir" "$builddir"/bios + cp -r "$tmpdir" "$builddir"/efi + cp -r "$tmpdir" "$builddir"/xen + mv "$tmpdir" "$builddir"/ieee1275 + + case "$CARCH" in + 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 ;; + esac +} + +_install_bios() { + cd "$builddir"/bios + make DESTDIR="$pkgdir" install-strip || return 1 +} + +_install_efi() { + cd "$builddir"/efi + make DESTDIR="$pkgdir" install-strip || return 1 +} + +_install_xen() { + cd "$builddir"/xen + + grub_dir=`mktemp -d` + cfg=`mktemp` + 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" +} + +_install_ieee1275() { + cd "$builddir"/ieee1275 + make DESTDIR="$pkgdir" install-strip || return 1 +} + +package() { + # install BIOS & EFI version into the same directory + # and overwrite similar files. + + case "$CARCH" in + x86) + _install_bios + _install_efi ;; + x86_64) + _install_bios + _install_efi + _install_xen ;; + aarch64) + _install_efi ;; + ppc64le) + _install_ieee1275 ;; + esac + + rm -f "$pkgdir"/usr/lib/charset.alias +} + +bios() { + pkgdesc="$pkgdesc (BIOS version)" + depends="$pkgname" + mkdir -p $subpkgdir/usr/lib/grub + mv $pkgdir/usr/lib/grub/*-pc $subpkgdir/usr/lib/grub/ +} + +efi() { + pkgdesc="$pkgdesc (EFI version)" + depends="$pkgname" + mkdir -p $subpkgdir/usr/lib/grub + mv $pkgdir/usr/lib/grub/*-efi $subpkgdir/usr/lib/grub/ +} + +xenhost() { + pkgdesc="$pkgdesc (XEN host version)" + mkdir -p $subpkgdir/usr/lib/grub-xen + mv $pkgdir/*-xen.bin $subpkgdir/usr/lib/grub-xen/ +} + +ieee1275() { + pkgdesc="$pkgdesc (IEEE1275 version)" + depends="$pkgname" + mkdir -p $subpkgdir/usr/lib/grub + mv $pkgdir/usr/lib/grub/*-ieee1275 $subpkgdir/usr/lib/grub/ +} + +sha512sums="4a530efef4dae45f4046cf3550563f14acb24d25cb88d5e06c93953ca5b1eec115118c6860233a9f627edcddae2571e5d6b867b70ff9dd5c184c9fef83ef7e11 grub-2.02~beta3.tar.xz +fc15c95bf26b28eee3b5a0d8e5fac538445179cea19a8657cd360e37dd5a95010ea2b899d1e4f3692b778a71f79526539ad1c741f028186f0daf135ee1678da0 2.02_beta3-gcc6-ld-no-pie.patch +b9eab870006ab7842e0af27171d3b66fea10835d3fd4e606f241a9898aa28bfc4c1cdf59cece8ad50d2e284a44cba74eb0f390ac29627518f86257a8d586976e 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" |