From a5afc1a80a5b636f0c0f10d5977aed77d28eeb0d Mon Sep 17 00:00:00 2001
From: Jaron Kent-Dobias <jaron@kent-dobias.com>
Date: Tue, 27 Jul 2021 17:49:16 +0200
Subject: First commit.

---
 PKGBUILD | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 126 insertions(+)
 create mode 100644 PKGBUILD

(limited to 'PKGBUILD')

diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 0000000..63cd9cd
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,126 @@
+# Maintainer: Jaron Kent-Dobias <jaron@kent-dobias.com>
+# Contributor: Vasily Khoruzhick <anarsoul@gmail.com>
+# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+
+pkgbase=linux-raspberrypi4
+pkgver=5.13.4.raspberrypi2
+pkgrel=2
+pkgdesc='Raspberry Pi 4 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=raspberrypi4-linux
+source=(
+  "$_srcname::git+https://git.kent-dobias.com/system/linux?signed#tag=$_srctag"
+  config
+  config.txt
+  cmdline.txt
+)
+validpgpkeys=(
+  'ABAF11C65A2970B130ABE3C479BE3E4300411886'  # Linus Torvalds
+  '647F28654894E3BD457199BE38DBBDC86092693E'  # Greg Kroah-Hartman
+  '8218F88849AAC522E94CF470A5E9288C4FA415FA'  # Jan Alexander Steffens (heftig)
+  'D214744D04A2CC409C37D331534FC3B63E48F730'  # Jaron Kent-Dobias
+  '0E3A444DD0760E65901BF59679E824090BD31086'  # Jaron Kent-Dobias
+)
+sha256sums=('SKIP'
+            'aab57069364c0573d69de09b7946580e17cde5eb8a3ed3c711ddccd29ffd1714'
+            '61061d5c40a71f6d48735081cc8e8c38d8604ccd2fc91ac64b634bd39aedc825'
+            '4525594b37c19582ccbcbaa70c92f344fb752c58bbdd24eebc888282c7fc3a05')
+
+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=$pkgver 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/kernel8.img"
+#  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_install
+  find "${pkgdir}/boot/broadcom" -type f -print0 | xargs -0 mv -t "${pkgdir}/boot"
+
+  # remove build and source links
+  rm "$modulesdir"/{source,build}
+
+  install -m644 ../config.txt "${pkgdir}/boot/config.txt"
+  install -m644 ../cmdline.txt "${pkgdir}/boot/cmdline.txt"
+}
+
+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:
-- 
cgit v1.2.3-70-g09d2