# Maintainer: Jami Kettunen <jami.kettunen@protonmail.com>
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-oneplus-cheeseburger
pkgdesc="OnePlus 5"
pkgver=4
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
	mkbootimg
	postmarketos-base
	postmarketos-update-kernel
"
makedepends="devicepkg-dev"
source="
	21-oneplus5-ts.rules
	deviceinfo
	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
2e1a7b6636b3694d14a3aa153998f7477327e2c08ed83753607ec0073764b362f70b54f15e1a9911325bc57bf30c2d1b97647c599eb1638ea14d020f0c4722c6  deviceinfo
2288f08a44aae5136c0c0c846501c2bd4bcb10f05454b40c6e4490d398385b8a7129216047b5eb7982ca6d62d3aa71f3e18bfb8661d0cd32c8a600685ca0da48  phoc.ini
"
