# Maintainer: Jami Kettunen <jami.kettunen@protonmail.com>
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-oneplus-cheeseburger
pkgdesc="OnePlus 5"
pkgver=4
pkgrel=6
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
	mkbootimg
	postmarketos-base
"
makedepends="devicepkg-dev"
source="
	21-oneplus5-ts.rules
	deviceinfo
	modules-initfs.alpine
	modules-initfs.mainline
	phoc.ini
"
subpackages="
	$pkgname-kernel-alpine:kernel_alpine
	$pkgname-kernel-mainline:kernel_mainline
	$pkgname-nonfree-firmware:nonfree_firmware
	$pkgname-phosh
	$pkgname-plasma-mobile:plasma_mobile
"

build() {
	devicepkg_build $startdir $pkgname
}

package() {
	devicepkg_package $startdir $pkgname
}

kernel_alpine() {
	# FIXME: msm-modem-uim-selection hangs boot for some 20 seconds when installed with non-free FW
	pkgdesc="Pure mainline kernel, unpatched Alpine linux-edge"
	depends="linux-edge linux-firmware-none"
	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}

kernel_mainline() {
	pkgdesc="Close to mainline kernel, plenty of working features and fixes"
	depends="linux-postmarketos-qcom-msm8998 soc-qcom-msm8998"
	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}

nonfree_firmware() {
	pkgdesc="Firmware for GPU, Wi-Fi, Bluetooth etc. (also needed for full disk encryption)"
	depends="firmware-oneplus-msm8998"
	mkdir "$subpkgdir"
}

phosh() {
	install_if="$pkgname postmarketos-ui-phosh"
	# some scaling tweaks
	install -Dm644 "$srcdir"/phoc.ini \
		"$subpkgdir"/etc/phosh/phoc.ini
}

plasma_mobile() {
	install_if="$pkgname postmarketos-ui-plasma-mobile"
	# fix incorrect 180 degree touchscreen rotation due to PlaMo kwin_wayland bug
	# https://invent.kde.org/teams/plasma-mobile/issues/-/issues/160
	install -Dm644 "$srcdir"/21-oneplus5-ts.rules \
		"$subpkgdir"/etc/udev/rules.d/21-oneplus5-ts.rules
}

sha512sums="
fcb37390af6f2a0aed381585eeec7d0dd30e0b291d97a6fa433ed4b5d3badb3298709972d382a44f555329f83aabdbb8c8affcfe3933072538c4ac8c3ff9aca8  21-oneplus5-ts.rules
e2aec223cc4d8877c53c995852b7791ed0ef4addf0009a597cb069880c0b41c7028a08b6196d836277415d10d2fd158b11396d06c8dd7fde900ef74765442bb3  deviceinfo
53472343462865f6b44897a079edc62dbbefe1b3ad0c7ceb02fa85a21d0162c0505321b516fc37a9fa7fcfe946cd17fd03a70b24bca302aa18773b576e5f14c9  modules-initfs.alpine
bea8d7d4a622d8d455a4f06e7207b636e3f310eab5c0865da5cea56942846f90cb6b00a9f5f000ecf148dab5092d54ef47d9aa021719a4a5b9867792c9f6b7e7  modules-initfs.mainline
2288f08a44aae5136c0c0c846501c2bd4bcb10f05454b40c6e4490d398385b8a7129216047b5eb7982ca6d62d3aa71f3e18bfb8661d0cd32c8a600685ca0da48  phoc.ini
"
