# Maintainer: Ben Allen <bensallen@me.com>
# Contributor: Ben Allen <bensallen@me.com>

_flavor=${FLAVOR:-hardened}
_kpkg=linux-$_flavor
_kver=4.9.73
_kpkgrel=0

# when chaning _ver we *must* bump _mypkgrel
_ver=5.1.30
_mypkgrel=0
_name=virtualbox-guest-modules

_kpkgver="$_kver-r$_kpkgrel"
_abi_release=${_kver}-${_kpkgrel}-${_flavor}
_abi_release_virthardened=${_kver}-${_kpkgrel}-virthardened

pkgname=${_name}-${_flavor}
pkgver=$_kver
pkgrel=$(($_kpkgrel + $_mypkgrel))
pkgdesc="VirtualBox Additions guest kernel modules for $_flavor"
arch='x86 x86_64'
url='http://virtualbox.org'
license="GPL custom"
makedepends="linux-hardened-dev=$_kpkgver linux-virthardened-dev=$_kpkgver sed coreutils"
subpackages="$_name-virthardened:_virthardened"
source="http://download.virtualbox.org/virtualbox/$_ver/VirtualBox-$_ver.tar.bz2
	vboxguest-log-use-c99.patch
	const-struct-kernel_param.patch
	"
provides="${_name}-grsec=${pkgver}-r${pkgrel}"
builddir="$srcdir"/VirtualBox-$_ver

prepare() {
	local i

	(
	# verify the kernel version before entering chroot
	_kapkbuild="$startdir"/../../main/linux-${_flavor}/APKBUILD
	if [ -f $_kapkbuild ]; then
		. $_kapkbuild
		pkgname=$_name-$_flavor
		if [ "$_kver" != "$pkgver" ]; then
			die "please update _kver to $pkgver"
		fi
		if [ "$_kpkgrel" != "$pkgrel" ]; then
			die "please update _kpkgrel to $pkgrel"
		fi
	fi
	)

	cd "$builddir"
	default_prepare
	"$builddir"/src/VBox/Additions/linux/export_modules \
		"$srcdir/vbox-kmod-$_ver.tar.gz"

	for i in $_abi_release $_abi_release_virthardened; do
		mkdir -p "$srcdir/$i"
		tar -C "$srcdir/$i" -zxf "$srcdir"/vbox-kmod-$_ver.tar.gz
	done
}

build() {
	local i
	for i in $_abi_release $_abi_release_virthardened; do
		cd "$srcdir/$i"
		# Build Kernel Modules
		make KERN_DIR=/lib/modules/${i}/build
	done
}

package() {
	local i module=
	for i in $_abi_release $_abi_release_virthardened; do
		cd "$srcdir/$i"
		for module in *.ko; do
			install -v -D -m644 ${module} \
				"$pkgdir/lib/modules/$i/misc/${module}"
		done
	done
}

_virthardened() {
	pkgdesc="VirtualBox Additions kernel modules for virthardened"
	mkdir -p "$subpkgdir"/lib/modules/
	# vboxvideo.ko won't load with virthardened kernel as it doesn't have DRM
	rm "$pkgdir"/lib/modules/$_abi_release_virthardened/misc/vboxvideo.ko
	mv "$pkgdir"/lib/modules/$_abi_release_virthardened \
		"$subpkgdir"/lib/modules/
}

sha512sums="6c44d9593f4815644a484b306e621fe7eca224002f85d89c00f2470300f2c78dbfe50ffda61d2c2465df14ca77c70a2ab86f1a05116feeee9f5833857eb18dee  VirtualBox-5.1.30.tar.bz2
bd934e9ed3d2324ef66e2539d2f3f6fab35a8858d670bba817b9cabfe66e85fe13a8594b35f4a8e639841f72fb0b8d12af38518ba25638da5ef338b259ab600b  vboxguest-log-use-c99.patch
d069876f93e431833800c1d26ea77ae1dec40c840bb549cf519ceea93ee1ca89bcb262a13b00001503d19e596965d74a71a7f49be232ea892a82114d3ea4337c  const-struct-kernel_param.patch"
