# Reference: <https://postmarketos.org/vendorkernel>
# Maintainer:  Clayton Craft <clayton@craftyguy.net>
# Co-Maintainer: Bhushan Shah <bshah@kde.org>
pkgname=linux-purism-librem5
pkgver=5.16.18
pkgrel=0
_purismrel=1
# <kernel ver>.<purism kernel release>
_purismver=${pkgver}pureos$_purismrel
pkgdesc="Purism Librem 5 phone kernel fork"
arch="aarch64"
_carch="arm64"
_flavor="purism-librem5"
url="https://source.puri.sm/Librem5/linux-next"
license="GPL-2.0-only"
options="!strip !check !tracedeps
	pmb:cross-native pmb:kconfigcheck-nftables
	pmb:kconfigcheck-zram
	"
makedepends="
	bison
	devicepkg-dev
	findutils
	flex
	installkernel
	openssl-dev
	perl
	rsync
	xz
	"
subpackages="$pkgname-dev"
install="$pkgname.post-upgrade"

# Source
_repository="linux"
# kconfig generated with: ARCH=arm64 make defconfig KBUILD_DEFCONFIG=librem5_defconfig
_config="config-$_flavor.$arch"
source="
	$pkgname-$_purismver.tar.gz::https://source.puri.sm/Librem5/linux/-/archive/pureos/$_purismver/linux-pureos-$_purismver.tar.gz
	0001-bq25890_charger-enter-ship-mode-on-power-off.patch
	0002-arm64-dts-imx8mq-librem5.dtsi-adjust-the-usdhc-bus-s.patch
	0003-imx8mq-librem5-r3-Set-the-CPU-voltage-to-1.0V-when-r.patch
	0004-usb-hub-reset-workarounds.patch
	$_config
"
builddir="$srcdir/$_repository-pureos-$_purismver"

prepare() {
	default_prepare
	REPLACE_GCCH=0 \
		. downstreamkernel_prepare
}

build() {
	unset LDFLAGS
	make ARCH="$_carch" CC="${CC:-gcc}" \
		KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS" \
		LOCALVERSION=".$_purismrel"
}

package() {
	downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor"

	make modules_install dtbs_install \
		ARCH="$_carch" \
		INSTALL_MOD_PATH="$pkgdir" \
		INSTALL_DTBS_PATH="$pkgdir/usr/share/dtb"

}

dev() {
	provides="linux-headers"
	replaces="linux-headers"

	cd $builddir

	# https://github.com/torvalds/linux/blob/master/Documentation/kbuild/headers_install.rst
	make -j1 headers_install \
		ARCH="$_carch" \
		INSTALL_HDR_PATH="$subpkgdir"/usr
}
sha512sums="
d59c26eb5e8f4ecaf5fb97f5431e37eae7458bf791c545a4e01b14409487a254ff88a20e9fba90142944224ee23601647df1d3c4f1d9f21ec5852e30bdeb82e6  linux-purism-librem5-5.16.18pureos1.tar.gz
0e3caf6275247e31b874b94330dc4f991837a4b62f3c15a1f8ad39a7edd02ae499679bcd7ddc9463bb1c1a5073ea5980fa144a2ece804d72a6b2fc8c76c50766  0001-bq25890_charger-enter-ship-mode-on-power-off.patch
1dbf2adaf097bcce3ee179cd6b0f10d2ebefdc82191d34fffea8cb336c9dcbc66b717bf97a2e264b8068f178c0254f2b1281a09ae72d4825fd7b4a39916c0461  0002-arm64-dts-imx8mq-librem5.dtsi-adjust-the-usdhc-bus-s.patch
c52f9e7e17f876697000a0c3b959a0d571ca506ba55ee5158e30ac00e148372097c88951a354190f669137a955405c87042a925c1bbe3cd91df40721650d45d3  0003-imx8mq-librem5-r3-Set-the-CPU-voltage-to-1.0V-when-r.patch
681f6687e37fe74d9eb74ba85b09b6a165a9b955834e1dcb9a489499ce3e224385b789e1c30e44aad470a51d40326e9f8910cec1795eccdecf4b72865872be36  0004-usb-hub-reset-workarounds.patch
944406eb210f6f020e440f50c166c347115a0e2439dc824fa66cf134cea7f4a5acc548db15d9f225dc59cadc39b6547e2662610ae36b3b9be0ca1078b165e8e4  config-purism-librem5.aarch64
"
