# Reference: <https://postmarketos.org/devicepkg>
maintainer="Anjandev Momi <anjan@momi.ca>"
pkgname=device-google-bonito
pkgdesc="Google Pixel 3a XL"
pkgver=7
pkgrel=1
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
	alsa-ucm-conf-qcom-sdm670
	firmware-google-sargo
	hexagonrpcd
	linux-firmware-ath10k
	linux-firmware-qca
	linux-firmware-qcom
	make-dynpart-mappings
	mkbootimg
	postmarketos-base
	soc-qcom
	soc-qcom-modem
	soc-qcom-pd-mapper
	soc-qcom-qbootctl
	unl0kr-fbforcerefresh
"
makedepends="devicepkg-dev"
install="$pkgname-openrc.post-install"
source="
	81-libssc-google-sargo.rules
	deviceinfo
	hexagonrpcd-adsp-sensorspd.confd
	modules-initfs
	no-hexagonrpcd-on-suspend.sh
	q6voiced.conf
"
subpackages="
	$pkgname-kernel-sdc:kernel_sdc
	$pkgname-kernel-tianma:kernel_tianma
	$pkgname-openrc:openrc
"

build() {
	devicepkg_build $startdir $pkgname
}

package() {
	replaces="$pkgname-nonfree-firmware"
	devicepkg_package $startdir $pkgname

	# Sensors depend on ADSP firmware and the sensors registry served over FastRPC.
	install -Dm644 "$srcdir"/hexagonrpcd-adsp-sensorspd.confd \
		"$pkgdir"/usr/share/hexagonrpcd/hexagonrpcd-adsp-sensorspd.conf
	install -Dm644 "$srcdir"/81-libssc-google-sargo.rules \
		"$pkgdir"/usr/lib/udev/rules.d/81-libssc-google-sargo.rules

	# The q6voiced configuration can only be used if the ADSP is brought up
	# via non-free firmware.
	install -Dm644 "$srcdir"/q6voiced.conf "$pkgdir"/etc/conf.d/q6voiced
}

kernel_sdc() {
	pkgdesc="Kernel for devices with the Samsung panel"
	depends="linux-postmarketos-qcom-sdm670"

	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}

kernel_tianma() {
	pkgdesc="Kernel for devices with the Tianma panel"
	depends="linux-postmarketos-qcom-sdm670"

	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}

openrc() {
	install_if="$pkgname=$pkgver-r$pkgrel openrc"
	# Enable HexagonRPCD by default, but not if the user installed this
	# package then disabled it.
	depends="hexagonrpcd-openrc openrc"

	# The FastRPC service is only enabled when non-free firmware is installed.
	install -Dm755 "$srcdir"/no-hexagonrpcd-on-suspend.sh \
		-t "$subpkgdir"/usr/libexec/elogind/system-sleep
}

sha512sums="
089ce0acba4e1d789e337bedfca7570796a6416e7230ae9b8fc6b625747a40dbb064b1a707877cd6b7bdc73844c6571316e2ec0746a77060f13d98c52fdbfc00  81-libssc-google-sargo.rules
a43f5d4803aa93bca507563ff35528407e31a3d7de40a66cc48cc8f8de0dd906c6b20ffdcb97a2341f7e77d29a6312f0cddc54c816468a3e2a4f85541be72e66  deviceinfo
b6208c254b6e44ac4f6d748a38cc6b05da0db2c90235ada2011b138b82ccc3372687df2f5ad97e885e9eea135216a3c52266a08a7f4eb323e62e799f6f82ec7b  hexagonrpcd-adsp-sensorspd.confd
0253ff4688b789aa7cdbffb22e7ff9497aabe083adc44bf33fa52617215a1f48fc722bd61aa13a35d109eff1e69202eb599dccff029e39c0a390dcab11dd9b76  modules-initfs
2972005a9cf6ca57061965075593dddfa8ee479bc6c21cd41851b1a14768cb1cddbd31a17975ae17adc36d40d294ccbc6bf83defbd69fc7b363f638d8564fbbc  no-hexagonrpcd-on-suspend.sh
3a4a9322839d4b3ef9d79668a37840a9f444954759ae3c512e694051d2f9a2573db42ad6c4c1a5c75eeb861232a27ba1a8cef9b503decd54ead25a96e3dd6f98  q6voiced.conf
"
