aboutsummaryrefslogtreecommitdiffstats
path: root/testing/grub/APKBUILD
blob: fc79982fe8682799112bd993d655a945069702b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
# Maintainer:
pkgname=grub
_ver=2.02~beta3
pkgver=2.02_beta3
pkgrel=1
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 python"
install=""
subpackages="$pkgname-dev $pkgname-doc $pkgname-efi"
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
	"
builddir="$srcdir/grub-$_ver"

# currently grub only builds on x86* and aarch64 systems
# aarch64 is not supported on pc/bios platform.
if [ ! "$CARCH" = aarch64 ]; then
	subpackages="$subpackages $pkgname-bios"
fi

_build_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() {
	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() {
	cd "$builddir"
	autoreconf -vif || return 1
	
	# BIOS build
	if [ ! "$CARCH" = aarch64 ]; then
		msg "Building grub for platform BIOS"
		cp -r "$builddir" "$builddir"/bios
		_build_bios || return 1
	fi
	
	# EFI build
	msg "Building grub for platform EFI"
	cp -r "$builddir" "$builddir"/efi
	_build_efi || return 1
}

package() {
	# install both version into the same directory
	# and overwrite similar files.
	
	# BIOS install
	if [ ! "$CARCH" = aarch64 ]; then
		cd "$builddir"/bios
		make DESTDIR="$pkgdir" install || return 1
	fi

	# EFI install
	cd "$builddir"/efi
	make DESTDIR="$pkgdir" install || return 1
	
	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/
}

md5sums="ab399fc6f74a97d66ff77f04b743149c  grub-2.02~beta3.tar.xz
7a09f166141e2a57f1829dd6cf1424fa  2.02_beta3-gcc6-ld-no-pie.patch
632f1e9dee0f8a4a52e592cb29cdf8cc  fix-gcc-no-pie-specs.patch"
sha256sums="30ec3d555e52a702c3eef449872ef874eff28b320f40b55ffc47f70db8e5ada1  grub-2.02~beta3.tar.xz
14912f087e047259e803be020c0506d9865c1507ae34683c6668b8d4a140c93b  2.02_beta3-gcc6-ld-no-pie.patch
eaa876af6b6253c2ca98a03201b98b0e0a27b9acc120b7937c9292882f2f0e0b  fix-gcc-no-pie-specs.patch"
sha512sums="4a530efef4dae45f4046cf3550563f14acb24d25cb88d5e06c93953ca5b1eec115118c6860233a9f627edcddae2571e5d6b867b70ff9dd5c184c9fef83ef7e11  grub-2.02~beta3.tar.xz
fc15c95bf26b28eee3b5a0d8e5fac538445179cea19a8657cd360e37dd5a95010ea2b899d1e4f3692b778a71f79526539ad1c741f028186f0daf135ee1678da0  2.02_beta3-gcc6-ld-no-pie.patch
b9eab870006ab7842e0af27171d3b66fea10835d3fd4e606f241a9898aa28bfc4c1cdf59cece8ad50d2e284a44cba74eb0f390ac29627518f86257a8d586976e  fix-gcc-no-pie-specs.patch"