# Maintainer: Jaron Kent-Dobias <jaron@kent-dobias.com> # Contributor: Vasily Khoruzhick <anarsoul@gmail.com> # Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org> pkgbase=linux-pinephone pkgver=5.19.1.pp1 pkgrel=1 pkgdesc='Pinephone Linux' _srctag=v${pkgver%.*}-${pkgver##*.} url="https://git.kent-dobias.com/system/linux/log/?h=$_srctag" arch=(aarch64) license=(GPL2) makedepends=( bc kmod libelf pahole xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick git dtc clang llvm lld ) options=('!strip') _srcname=pinephone-linux source=( "$_srcname::git+https://git.kent-dobias.com/system/linux?signed#tag=$_srctag" config ) validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman '8218F88849AAC522E94CF470A5E9288C4FA415FA' # Jan Alexander Steffens (heftig) '0E3A444DD0760E65901BF59679E824090BD31086' # Jaron Kent-Dobias ) sha256sums=('SKIP' '8e464927634b4b4d4fba0c2e3956b4da537ba75d53d1ed1f00b7f6ffba1485db') export KBUILD_BUILD_HOST=archlinux export KBUILD_BUILD_USER=$pkgbase export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" _make='make ARCH=arm64 LLVM=1' prepare() { cd $_srcname echo "Setting version..." scripts/setlocalversion --save-scmversion echo "-$pkgrel" > localversion.10-pkgrel echo "${pkgbase#linux}" > localversion.20-pkgname local src for src in "${source[@]}"; do src="${src%%::*}" src="${src##*/}" [[ $src = *.patch ]] || continue echo "Applying patch $src..." patch -Np1 < "../$src" done echo "Setting config..." cp ../config .config $_make olddefconfig $_make -s kernelrelease > version echo "Prepared $pkgbase version $(<version)" } build() { cd $_srcname $_make all # Generate device tree blobs with symbols to support applying device tree overlays in U-Boot # $_make htmldocs } _package() { pkgdesc="The $pkgdesc kernel and modules" depends=(coreutils kmod initramfs) optdepends=('crda: to set the correct wireless channels of your country' 'linux-firmware: firmware images needed for some devices') provides=(linux VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE) replaces=(virtualbox-guest-modules-arch wireguard-arch) conflicts=(linux) cd $_srcname local kernver="$(<version)" local modulesdir="$pkgdir/usr/lib/modules/$kernver" echo "Installing boot image..." install -Dm644 arch/arm64/boot/Image "${pkgdir}/boot/Image" install -Dm644 arch/arm64/boot/Image.gz "${pkgdir}/boot/Image.gz" # systemd expects to find the kernel here to allow hibernation # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344 install -Dm644 "$($_make -s image_name)" "$modulesdir/vmlinuz" # Used by mkinitcpio to name the kernel echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase" echo "Installing modules..." $_make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 modules_install echo "Installing dtbs..." $_make INSTALL_DTBS_PATH="${pkgdir}/boot/dtbs" dtbs_install # remove build and source links rm "$modulesdir"/{source,build} } pkgname=("$pkgbase") for _p in "${pkgname[@]}"; do eval "package_$_p() { $(declare -f "_package${_p#$pkgbase}") _package${_p#$pkgbase} }" done # vim:set ts=8 sts=2 sw=2 et: