aboutsummaryrefslogtreecommitdiffstats
path: root/community/vmm_clock-lts/APKBUILD
blob: 2ed881127a8e6083f240460aade8f25948f40440 (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
# Contributor: Klemens Nanni <kn@openbsd.org>
# Maintainer: Klemens Nanni <kn@openbsd.org>

# when changing _ver we *must* bump _rel
_name=vmm_clock
_ver=0.2.0
_rel=0

# kernel version
# when changing _kver make sure _krel=0 & _rel=0
_flavor=${FLAVOR:-lts}
_kpkg="linux-$_flavor"
_kver=6.6.30
_krel=0
_kpkgver="$_kver-r$_krel"

# for custom kernels set $FLAVOR
case $CARCH in
# see $arch comment
x86|x86_64) _extra_flavors="virt";;
esac

pkgname="$_name-$_flavor"
pkgver=$_kver
pkgrel=$(( _rel + _krel ))

pkgdesc="clocksource under OpenBSD VMM"
url="https://github.com/voutilad/vmm_clock"
# amd64-only https://man.openbsd.org/vmm.4 supports i386 and amd64 guests
arch="x86 x86_64"
license="GPL-2.0-only"
depends="$_kpkg=$_kpkgver"
makedepends="$_kpkg-dev=$_kpkgver"
source="$_name-$_ver.tar.gz::https://github.com/voutilad/vmm_clock/archive/refs/tags/$_ver.tar.gz"
builddir="$srcdir/$_name-$_ver"
options="!check" # no tests

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

prepare() {
	default_prepare
	# verify the kernel version
	local _kapkbuild="$startdir/../../main/linux-$_flavor-/APKBUILD"
	if [ -f "$_kapkbuild" ]; then
		(	. $_kapkbuild
			pkgname=$_name-$_flavor
			[ "$_kver" != "$pkgver" ] && die "please update _kver to $pkgver"
			[ "$_krel" != "$pkgrel" ] && die "please update _krel to $pkgrel"
			return 0
		)
	fi
	local flavor=
	for flavor in $_flavor $_extra_flavors; do
		cp -r "$builddir" "$srcdir/$flavor"
	done
}

build() {
	local flavor= kabi=
	for flavor in $_flavor $_extra_flavors; do
		kabi="$_kver-$_krel-$flavor"
		make -C "$srcdir/$flavor" KERNELRELEASE="$kabi"
	done
}

package() {
	local flavor= kabi= module= modules="vmm_clock"
	for flavor in $_flavor $_extra_flavors; do
		kabi="$_kver-$_krel-$flavor"
		for module in $modules; do
			install -Dm644 "$srcdir/$flavor/$module.ko" \
				"$pkgdir/lib/modules/$kabi/extra/$module.ko"
		done
		printf '%s\n' $modules |
			install -D -m644 /dev/stdin \
				"$pkgdir/lib/modules-load.d/$_name-$flavor".conf
	done
}

_extra() {
	local flavor=${subpkgname##*-}
	depends="linux-$flavor=$_kpkgver"
	pkgdesc="$pkgdesc for $flavor kernel"

	amove \
		lib/modules/*-$flavor \
		lib/modules-load.d/*-$flavor.conf
}

sha512sums="
00d6f74cb78d01ed641225e0d74e0dbc892372722712a5981c553d6a50e9014114c1c65a2f8a222be4caa82b08e7acc56805add958e89da996d28266a92da2c6  vmm_clock-0.2.0.tar.gz
"