aboutsummaryrefslogtreecommitdiffstats
path: root/community/wireguard-rpi/APKBUILD
blob: b31a95885b4eb10d8d2601b0ce4ac93a070c8c91 (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
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>

# wireguard version
_ver=0.0.20190406
_rel=0

# kernel version
_kver=4.19.41
_krel=0

_kpkgver="$_kver-r$_krel"

# for custom kernels set $FLAVOR
if [ -z "$FLAVOR" ]; then
	_flavor=rpi
	case $CARCH in
	armhf|armv7) _extra_flavors=rpi2;;
	esac
else
	_flavor=$FLAVOR
fi

pkgname=wireguard-$_flavor
pkgver=$_kver
pkgrel=2
pkgrel=$(($pkgrel + $_krel))

pkgdesc="Next generation secure network tunnel: kernel modules for $_flavor"
arch="armhf armv7 aarch64"
url="https://www.wireguard.com"
license="GPL-2.0"
depends="linux-$_flavor=$_kpkgver"
makedepends="
	libmnl-dev
	linux-$_flavor-dev=$_kpkgver
	linux-firmware-none
	"
install_if="wireguard-tools-wg=$_ver-r$_rel linux-$_flavor=$_kpkgver"
options="!check"
source="https://git.zx2c4.com/WireGuard/snapshot/WireGuard-$_ver.tar.xz"
builddir="$srcdir"/WireGuard-$_ver

for f in $_extra_flavors; do
	makedepends="$makedepends linux-$f-dev=$_kpkgver"
	subpackages="$subpackages wireguard-$f:_extra"
done

prepare() {
	default_prepare
	if [ -z "$FLAVOR" ]; then
		(	. "$startdir"/../../main/linux-$_flavor/APKBUILD
			[ "$_kver" != "$pkgver" ] && die "please update _kver to $pkgver"
			[ "$_krel" != "$pkgrel" ] && die "please update _krel to $pkgrel"
			return 0
		)
	fi
	if [ -z "$FLAVOR" ]; then
		(	. "$startdir"/../../community/wireguard-tools/APKBUILD
			[ "$_ver" != "$pkgver" ] && die "please update _ver to $pkgver"
			[ "$_rel" != "$pkgrel" ] && die "please update _rel to $pkgrel"
			return 0
		)
	fi
	local flavor=
	for flavor in $_flavor $_extra_flavors; do
		cp -r "$builddir" "$srcdir"/$flavor
	done
}

build() {
	unset LDFLAGS
	local flavor= kabi=
	for flavor in $_flavor $_extra_flavors; do
		kabi="$_kver-$_krel-$flavor"
		make -C "$srcdir/$flavor"/src \
			KERNELDIR=/lib/modules/$kabi/build module
	done
}

package() {
	local kabi="$_kver-$_krel-$_flavor"
	install -Dm644 "$srcdir"/$_flavor/src/wireguard.ko \
		"$pkgdir/lib/modules/$kabi/extra/wireguard.ko"
}

_extra() {
	flavor=${subpkgname##*-}
	depends="linux-$flavor=$_kpkgver"
	install_if="wireguard-tools-wg=$_ver-r$_rel linux-$flavor=$_kpkgver"
	pkgdesc="Next generation secure network tunnel: kernel modules for $flavor"
	local kabi="$_kver-$_krel-$flavor"
	install -Dm644 "$srcdir"/$flavor/src/wireguard.ko \
		"$subpkgdir/lib/modules/$kabi/extra/wireguard.ko"
}

sha512sums="e3035030299f5a6ae3ac0c2e35dc2d54745cda8f31185b21c6590f1ddcc9c7a83bf7b71cc71f6d48ed6dc8f2b31f3c704f8fa85685d4113f4c560f7eba7b7d5e  WireGuard-0.0.20190406.tar.xz"