diff options
author | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2022-06-27 22:21:53 +0200 |
---|---|---|
committer | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2022-06-27 22:21:53 +0200 |
commit | 40c3e539799a8e209a35a1f7b83da26d5d294c6f (patch) | |
tree | ee61842bcf088a9aec94e2866c630ecbc5a77e47 /PKGBUILD | |
download | linux-pinephone-40c3e539799a8e209a35a1f7b83da26d5d294c6f.tar.gz linux-pinephone-40c3e539799a8e209a35a1f7b83da26d5d294c6f.tar.bz2 linux-pinephone-40c3e539799a8e209a35a1f7b83da26d5d294c6f.zip |
First commit.
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..438cffc --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,113 @@ +# 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.18.7.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' + '883047070706e416f140f28c4d02a0e8e96c8a8f21c1137ec17e7e07f85ab8f8') + +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 +# $_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" + + # 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: |