# Reference: <https://postmarketos.org/vendorkernel>
# Maintainer: Clayton Craft <clayton@craftyguy.net>
# Co-Maintainer: Alistair Francis <alistair@alistair23.me>
# Co-Maintainer: Newbyte <newbyte@postmarketos.org>
pkgname=linux-purism-librem5
pkgver=6.4.5
pkgrel=0
# NOTE: Don't forget to rebase the config! See prepare() for instructions.
_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"
license="GPL-2.0-only"
options="!strip !check !tracedeps
	pmb:cross-native
	pmb:kconfigcheck-community
	"
makedepends="
	bash
	bison
	devicepkg-dev
	findutils
	flex
	installkernel
	openssl-dev
	perl
	rsync
	xz
	"
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
	$_config
"
builddir="$srcdir/$_repository-pureos-$_purismver"

prepare() {
	default_prepare
	REPLACE_GCCH=0 \
		. downstreamkernel_prepare

	####### Rebase config
	# The kernel config needs to be periodically rebased to enable new
	# modules/features that Purism has enabled in their defconfig. This is done
	# by: 1) generate .config using librem5_defconfig, 2) diff that .config
	# with the config in this package, 3) carefully going over the diff and
	# selecting new things enabled in their config.
	#
	# This can be uncommented to help generate the defconfig using "pmbootstrap
	# build linux-purism-librem5". The build will fail (exit 1) to let you grab
	# the config before it starts building the kernel:
	#    make ARCH="$_carch" CC="${CC:-gcc}" \
	#       defconfig KBUILD_DEFCONFIG=librem5_defconfig
	#    exit 1
}

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/boot/dtbs"

}

sha512sums="
7caa91307676b7d89f0393aaec23d9a694765e8ec18fcb770be8beb66dab793a0b5474d6d09c3934c2d72c2a9d438d955b1396fcbf6ece974077e55126ef01a8  linux-purism-librem5-6.4.5pureos1.tar.gz
3c4acc4d0825cfab78a86a0f3e7eb91ec395f6b66e82c3fcb5784099669adbfbc0a60170e328dad6d6fc0e37aa255d11d86a4eaff51c567190ab115ab6777498  config-purism-librem5.aarch64
"
