# Maintainer: Milan P. Stanić _flavor=asahi-git pkgname=linux-${_flavor} pkgver=6.8.4 #_tag=1 kver=${pkgver//_/-} _realver=6.8.4-1 _commit_id=5205c460bd73b97b66e6a95711a8f47b920eba7f pkgdesc="Apple Silicon (M1 development kernel)" pkgrel=2 url="https://github.com/jannau/linux/tree/beta-6.8/asahi-wip" depends="initramfs-generator" _depends_dev="perl gmp-dev elfutils-dev flex bison" #_rust=1.74.1-r0 _rust=1.77.0-r1 makedepends="$_depends_dev sed bc linux-headers installkernel linux-firmware-none openssl-dev diffutils findutils cargo=$_rust rust=$_rust rustfmt=$_rust rust-bindgen rust-src=$_rust " options="!strip !check" _config=${config:-config-asahi-git.${CARCH}} #https://github.com/jannau/linux/commits/beta-6.8/asahi-wip/ #source="linux-asahi-$pkgver-${_commit_id}.tar.gz::https://github.com/AsahiLinux/linux/archive/${_commit_id}.tar.gz #source="linux-asahi-$pkgver-${_commit_id}.tar.gz::https://github.com/jannau/linux/archive/${_commit_id}.tar.gz source="linux-asahi-$pkgver.tar.gz::https://github.com/jannau/linux/archive/refs/tags/asahi-6.8.4-1.tar.gz config-asahi-git.aarch64 sensors.patch " builddir="$srcdir/linux-asahi-$_realver" #builddir="$srcdir/linux-${_commit_id}" arch="aarch64" _carch="arm64" license="GPL-2.0" _flavors= for _i in $source; do case $_i in config-*.$CARCH) _f=${_i%.$CARCH} _f=${_f#config-} _flavors="$_flavors ${_f}" if [ "linux-$_f" != "$pkgname" ]; then subpackages="$subpackages linux-${_f}::$CBUILD_ARCH linux-${_f}-dev:_dev:$CBUILD_ARCH" fi ;; esac done _carch=${CARCH} case "$_carch" in aarch64*) _carch="arm64" ;; arm*) _carch="arm" ;; esac prepare() { local _patch_failed= cd $builddir case $pkgver in *.*.0);; *) msg "Applying patch-$pkgver.xz" # unxz -c < "$srcdir"/patch-$pkgver.xz | patch -p1 -N ;; esac # first apply patches in specified order for i in $source; do case $i in *.patch) msg "Applying $i..." if ! patch -s -p1 -N -i "$srcdir"/$i; then echo $i >>failed _patch_failed=1 fi ;; esac done if ! [ -z "$_patch_failed" ]; then error "The following patches failed:" cat failed return 1 fi # Fix for newer bindgen versions sed -i -e s/blacklist/blocklist/ \ -e s/whitelist/allowlist/ \ rust/Makefile sed -i 's/^#EXTRAVERSION =/EXTRAVERSION =/' "$builddir"/Makefile sed -i 's/^EXTRAVERSION :=/#EXTRAVERSION :=/' "$builddir"/Makefile # remove localversion from patch if any rm -f localversion* oldconfig } oldconfig() { for i in $_flavors; do local _config=config-$i.${CARCH} local _builddir="$srcdir"/linux-$_commit_id mkdir -p "$_builddir" echo "-$pkgrel-$i" > "$_builddir"/localversion-alpine \ || return 1 cp "$srcdir"/$_config "$_builddir"/.config make -C $builddir \ O="$builddir" \ ARCH="$_carch" \ listnewconfig oldconfig done } build() { unset LDFLAGS export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" cd $builddir make ARCH="$_carch" \ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" } _package() { local _buildflavor="$1" _outdir="$2" local _abi_release=${kver}-${pkgrel}-${_buildflavor} export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" cd $builddir # modules_install seems to regenerate a defect Modules.symvers on s390x. Work # around it by backing it up and restore it after modules_install cp Module.symvers Module.symvers.backup mkdir -p "$_outdir"/boot "$_outdir"/lib/modules local _install case "$CARCH" in arm*|aarch64) _install="zinstall dtbs_install";; *) _install=install;; esac make -j1 modules_install $_install \ ARCH="$_carch" \ INSTALL_MOD_PATH="$_outdir" \ INSTALL_MOD_STRIP=1 \ INSTALL_PATH="$_outdir"/boot \ INSTALL_DTBS_PATH="$_outdir/boot/dtbs-$_buildflavor" cp Module.symvers.backup Module.symvers rm -f "$_outdir"/lib/modules/${_abi_release}/build \ "$_outdir"/lib/modules/${_abi_release}/source rm -rf "$_outdir"/lib/firmware install -D -m644 include/config/kernel.release \ "$_outdir"/usr/share/kernel/$_buildflavor/kernel.release cp "$builddir"/.config $pkgdir/boot/config-$_flavor } # main flavor installs in $pkgdir package() { depends="$depends linux-firmware-any" _package asahi-git "$pkgdir" } sha512sums=" d1b60e1a3343fee42e104deae1c84b690a6782971aae5f91e6579647e70a920893f4703ead5b989ec15f235c1098386e5beae45df73d893ed3901540db181e74 linux-asahi-6.8.4.tar.gz fd2f0a7932c428cc39d5e6ba6af53e794af6c653a50a9549b88f488d3d9f0ce9f8b22d15c1939cebf9dcde4a7cab7bc8dfd511dba7db216f6ee1a7da7c5ecf26 config-asahi-git.aarch64 49dfcbc7e3d6d01fde548bfa4174e011fbb36ece94853d856e028f768da3ab156f77c01e0642e6d91f5f024f0c97d5de5847bb064e2a033f3237dfc66768049e sensors.patch "