summaryrefslogtreecommitdiff
path: root/PKGBUILD
diff options
context:
space:
mode:
authorJaron Kent-Dobias <jaron@kent-dobias.com>2021-06-02 15:20:24 +0200
committerJaron Kent-Dobias <jaron@kent-dobias.com>2021-06-02 15:20:24 +0200
commite36696492b3b12a24c20052f78c9fc25da8d5588 (patch)
tree2d749dc5e1f642ee7cbf6bc35b961901b6d8bada /PKGBUILD
downloadlinux-pinebookpro-e36696492b3b12a24c20052f78c9fc25da8d5588.tar.gz
linux-pinebookpro-e36696492b3b12a24c20052f78c9fc25da8d5588.tar.bz2
linux-pinebookpro-e36696492b3b12a24c20052f78c9fc25da8d5588.zip
Initial commit.
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD117
1 files changed, 117 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 0000000..4fe8c86
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,117 @@
+# Maintainer: Jaron Kent-Dobias <jaron@kent-dobias.com>
+# Contributor: Vasily Khoruzhick <anarsoul@gmail.com>
+# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+
+pkgbase=linux-pinebookpro
+pkgver=5.12.8.pinebookpro3
+pkgrel=2
+pkgdesc='Pinebook Pro 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
+ uboot-tools dtc
+ clang llvm lld
+)
+options=('!strip')
+_srcname=pinebookpro-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)
+ 'D214744D04A2CC409C37D331534FC3B63E48F730' # Jaron Kent-Dobias
+)
+sha256sums=('SKIP'
+ '61d1c93602de9717ef45b6f8dd24dc4a8c7a607da3a1c78f91f199d2acb294bc')
+
+export KBUILD_BUILD_HOST=archlinux
+export KBUILD_BUILD_USER=$pkgbase
+export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
+
+export ARCH=arm64
+export CROSS_COMPILE=aarch64-linux-gnu-
+
+_make='make 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"
+ 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: