# Reference: <https://postmarketos.org/devicepkg>
# Maintainer: Segfault <awarnecke002@hotmail.com>
# Co-Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=device-google-nyan-big
pkgdesc="Acer Chromebook 13 CB5-311 / Acer Chromebook C810"
pkgver=1
pkgrel=2
url="https://postmarketos.org"
license="MIT"
arch="armv7"
options="!check !archcheck"
depends="
	alsa-ucm-conf
	postmarketos-base
"
subpackages="
	$pkgname-kernel-nyan-big-2gb:kernel_nyan_big_2gb
	$pkgname-kernel-nyan-big-2gb-fhd:kernel_nyan_big_4gb_fhd
	$pkgname-kernel-nyan-big-4gb:kernel_nyan_big_4gb
	$pkgname-kernel-nyan-big-4gb-fhd:kernel_nyan_big_4gb_fhd
	$pkgname-mpv-wayland:mpv_wayland
	$pkgname-mpv-xorg:mpv_xorg
	$pkgname-nonfree-firmware:nonfree_firmware
	$pkgname-sway
"
makedepends="devicepkg-dev u-boot-tools"
source="
	30-xusb-firmware.files
	deviceinfo
	modprobe.d/gpu.conf
	mpv/mpv.conf.wayland
	mpv/mpv.conf.xorg
	sway/tinydm/10-no-hardware-cursor.sh
	uboot-script.cmd
"

build() {
	devicepkg_build $startdir $pkgname

	mkimage \
		-A arm \
		-O linux \
		-T script \
		-C none \
		-a 0 \
		-e 0 \
		-n postmarketos \
		-d "$srcdir"/uboot-script.cmd \
		"$srcdir"/boot.scr
}

package() {
	devicepkg_package $startdir $pkgname

	# Block nouveau as it is in very bad condition
	install -Dm644 "$srcdir"/gpu.conf \
		"$pkgdir"/etc/modprobe.d/gpu.conf

	# U-Boot script
	install -Dm644 "$srcdir"/boot.scr \
		"$pkgdir"/boot/boot.scr
}

kernel_nyan_big_2gb() {
	pkgdesc="Google Nyan Big (2 GB)"
	depends="linux-google-nyan u-boot-nyan-2gb"
	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}

kernel_nyan_big_2gb_fhd() {
	pkgdesc="Google Nyan Big (2 GB, FullHD)"
	depends="linux-google-nyan u-boot-nyan-2gb"
	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}

kernel_nyan_big_4gb() {
	pkgdesc="Google Nyan Big (4 GB)"
	depends="linux-google-nyan u-boot-nyan-4gb"
	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}

kernel_nyan_big_4gb_fhd() {
	pkgdesc="Google Nyan Big (4 GB, FullHD)"
	depends="linux-google-nyan u-boot-nyan-4gb"
	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}

mpv_wayland() {
	# Looks like wayland libs are installed with some x11 UIs too, so match wlroots here
	install_if="$pkgname=$pkgver-r$pkgrel mpv wlroots"
	install -Dm644 "$srcdir"/mpv.conf.wayland \
		"$subpkgdir"/etc/mpv/mpv.conf
}

mpv_xorg() {
	install_if="$pkgname=$pkgver-r$pkgrel mpv xorg-server"
	install -Dm644 "$srcdir"/mpv.conf.xorg \
		"$subpkgdir"/etc/mpv/mpv.conf
}

nonfree_firmware() {
	pkgdesc="WiFi/BT, USB and GPU firmware"
	depends="linux-firmware-mrvl linux-firmware-nvidia"
	mkdir "$subpkgdir"

	# Firmware needed to boot from USB
	install -Dm644 "$srcdir"/30-xusb-firmware.files \
		"$subpkgdir"/usr/share/mkinitfs/files/30-xusb-firmware.files
}

sway() {
	install_if="$pkgname=$pkgver-r$pkgrel postmarketos-ui-sway"
	install -Dm755 "$srcdir"/10-no-hardware-cursor.sh \
		"$subpkgdir"/etc/tinydm.d/env-wayland.d/10-no-hardware-cursor.sh
}

sha512sums="
793688374d77efaf050c187d296d7fd55243773a1257b4d8adfa4cda50d4c0cacc035fb3d419a4b608989ed920636048680d900afe8a712f2166edf51552087a  30-xusb-firmware.files
0d63dbe93ab173a3939edb2b2226ddd8b4a20757053938df3538134ffa21ba218d048387e761b7a4f83f71cf906f976b6cd694e8c0b2ea7434e7ab2598b9392b  deviceinfo
e6c5382b6f7dd10f350136d65a714de3ae337978c3ca88e63f016b4a42be87b422d2388fbf6d6a2feba15516fb9b409f6c5ff08968829e6fc2d1e8aeb9d3c508  gpu.conf
8f9dc3c7caeab6c5321dc2bf498f1a03a793f23cb776763316bc356b9d433d7a3337e61154069464dcda200bf390b99f3be8f657a40c6d2f6be3cbc6fb751080  mpv.conf.wayland
d6bc39df48ba0e985a796426039205335adf1c91b9c150b05a4239339fc78b1748b3a83c699de69e9a5829f29573a323f40788da58ed15b1951de1eab7e31c3d  mpv.conf.xorg
78e566bf3a597b9b5f73f686feb93ae61d1bed350366428d74c7735f1f82ab390f47ba9deb9d21e8dfcee251dc6178956838ca1b34838bb0a7d740be0e2c8330  10-no-hardware-cursor.sh
1a4362e2c1d4eb6f7cf10d7131c1ea91b1e82836b23e2e90c1cae3b13ca77118d46f033b74a1e1281eaab19382985681816500b7a4987ec9979a50f51e5ec238  uboot-script.cmd
"
