# Reference: <https://postmarketos.org/devicepkg>
# Maintainer:  Clayton Craft <clayton@craftyguy.net>
pkgname=device-purism-librem5
pkgdesc="Purism Librem 5 Phone"
pkgver=1.5
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
	alsa-ucm-conf
	gpsd
	linux-purism-librem5
	mesa-dri-gallium
	postmarketos-base
	u-boot-librem5
	uboot-tools
"
makedepends="devicepkg-dev"
_confver=21
_confdir=$srcdir/librem5-base-v$_confver
source="
	https://source.puri.sm/Librem5/librem5-base/-/archive/v$_confver/librem5-base-v$_confver.tar.gz
	00-kwin.sh
	00-mesa.sh
	70-gnss.rules
	77-mm-broadmobi-port-types.rules
	deviceinfo
	flash_script.lst
	modprobe.d_rsi.conf
	modules-load.d_librem5.conf
	uboot-script.cmd
"
subpackages="
	$pkgname-plasma
	$pkgname-phosh
	$pkgname-pulseaudio
"
install="$pkgname.post-install"

build() {
	mkimage -A arm64 -C none -O linux -T script -d "$srcdir/uboot-script.cmd" "$srcdir/boot.scr"
	devicepkg_build $startdir $pkgname
}

plasma() {
	pkgdesc="Plasma Mobile support for the Librem 5"
	install_if="$pkgname kwin"
	install -D -m644 "$srcdir"/00-kwin.sh "$subpkgdir"/etc/profile.d/00-kwin.sh
}

phosh() {
	pkgdesc="Phosh support for the Librem 5"
	install_if="$pkgname phosh"
	depends="
		wys
	"
	install -D -m644 "$_confdir"/default/org.freedesktop.ModemManager1.pkla \
		"$subpkgdir"/var/lib/polkit-1/localauthority/10-vendor.d/org.freedesktop.ModemManager1.pkla
}

pulseaudio() {
	pkgdesc="Pulseaudio support for the Librem 5"
	install_if="$pkgname pulseaudio"
	# install config files from upstream Purism
	mkdir -p "$subpkgdir"/etc/pulse/
	cp -r "$_confdir"/default/audio/pulse/daemon.conf.d "$subpkgdir"/etc/pulse/
	install -D -m644 "$_confdir"/default/audio/pulse/librem5.pa "$subpkgdir"/etc/pulse/librem5.pa
	mkdir -p "$subpkgdir"/usr/share/pulseaudio/alsa-mixer
	cp -r "$_confdir"/default/audio/profile-sets "$subpkgdir"/usr/share/pulseaudio/alsa-mixer/
}

package() {
	install -D -m644 "$srcdir"/boot.scr \
		"$pkgdir"/boot/boot.scr
	install -D -m644 "$srcdir"/modprobe.d_rsi.conf "$pkgdir"/etc/modprobe.d/rsi.conf
	install -D -m644 "$srcdir"/modules-load.d_librem5.conf "$pkgdir"/etc/modules-load.d/librem5.conf
	install -D -m644 "$srcdir"/00-mesa.sh "$pkgdir"/etc/profile.d/00-mesa.sh
	install -D -m644 "$srcdir"/flash_script.lst "$pkgdir"/usr/share/uuu/flash_script.lst

	# udev
	install -D -m644 "$_confdir"/default/hwdb/80-librem5.hwdb "$pkgdir"/lib/udev/hwdb.d/80-librem5.hwdb
	install -D -m644 "$_confdir"/debian/librem5-base-defaults.librem5-pm.udev  \
		"$pkgdir"/usr/lib/udev/rules.d/librem5-pm.rules
	install -D -m644 "$srcdir"/70-gnss.rules "$pkgdir"/usr/lib/udev/rules.d/70-gnss.rules

	# install audio config files from upstream Purism
	mkdir -p "$pkgdir"/usr/share/alsa/ucm
	cp -r "$_confdir"/default/audio/ucm "$pkgdir"/usr/share/alsa/

	devicepkg_package $startdir $pkgname
}
sha512sums="34170ff33c0d120e961e66fd3f252bed9eea4e5df9a9da0d0d8f00b9f832e4e45543246593199f4ed23a140c98409b17038e4a05474bb1b1589f7030a733f2b8  librem5-base-v21.tar.gz
685ec71484a932c59f83f1039d4d18a010a5849342e96d9e15ae8ce64374aac15073f9c51d7d9f270c60e70d2ea15c685b8f528cdc40f991b093b9227cba6a48  00-kwin.sh
5fdf45859f2bb154bcfe7c7341de4d5b239ef43d3f865e30456af073a8ee9d6682515c7e1dd52ddbe3969669d60689ba93c08ead32aadcfb164ff72a02b2e1a4  00-mesa.sh
be0cf9f9e37c33d526fdf5fb61de1b42b3bb9309faf1feb0db51fa9639c3c0b35608977c898130ff60ebf2e8081ac36799b96c748b7efa9dcef7501753bc4890  70-gnss.rules
00355d9ad085a77e157f3c62eb4f1bcac2823d3b341e34d1128edbfb1444fba83e8eacd263ea61da9f6d853f1328ab7fbe5ea63bd08c8a1bc9b8eaf44ae1f1c6  77-mm-broadmobi-port-types.rules
1cb3ca568d96797696b2d69cb156f097e15668ff357b12f37bd8b74a88cb977fa545e2adf7fbeefb87a6d09914e57debea3db7c5230f5800637ff4eaacb3d1dc  deviceinfo
d033df2b9125622c946af67dad83070473c86937b5825f57ad272c9145b594071dd6913949127803c45af4ea3226526551718d40739f9f1ee4bfe6446e62c856  flash_script.lst
9dc018f0de523cbfe5a49cbe831aa30e975a8dd34635197bb52582f072ac356ef2c02223fc794d970380091a69a83a74c3fbe34520190c8536e77f9ea98c7659  modprobe.d_rsi.conf
a0740e405781ec6ef765fdc9f5700c95adbb241c45c97b9384ba68cdece662cb216ca5918640042f6e65a5d1b1a9099936382c99b49a44303f7b6d77a075a471  modules-load.d_librem5.conf
3bc45540000e438e525501b2e816282d778fca10d426e42c9a80c0e752618ce50deb12c3edd9f3edc52edd8eb229d16afae7d407fe2c4ba0dbfefbcb4214780c  uboot-script.cmd"
