# Contributor: Natanael Copa # Contributor: Alex Denes # Maintainer: Alex Denes pkgname=linux _kver=5.15 _kpatch=12 pkgver=$_kver.$_kpatch pkgrel=2 _configs=" config-full.x86_64 config-slim.x86_64 config-rockpro64.aarch64 " source=" https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$pkgver.tar.xz $_configs rtw89-add-Realtek-802.11ax-driver.patch " _kabi= _klocalver= _kconfig= _kbdmain= _kbddev= _kflavor= _kdir_src="$srcdir/linux-$pkgver" arch="noarch" _depends_dev=" perl gmp-dev elfutils-dev bash flex bison " makedepends=" $_depends_dev sed linux-headers installkernel bc openssl-dev diffutils findutils " pkgdesc="Linux Kernel - Metapackage" url="https://www.kernel.org" license="GPL-2.0" options="!strip" builddir="$_kdir_src" _carch=${CARCH} # abuild to kernel arch mapping case "$_carch" in aarch64*) _carch="arm64" ;; arm*) _carch="arm" ;; mips*) _carch="mips" ;; ppc*) _carch="powerpc" ;; s390*) _carch="s390" ;; esac _archflavors() { for i in $_configs; do local _nocfg="${i#config-}" local _arch="${_nocfg#*.}" local _flavour="${_nocfg%.*}" [ "$_arch" == "$CARCH" ] && echo "$_flavour" done } _bvars() { _kconfig="config-$_kflavor.$CARCH" _kdir_main="$srcdir/build-$_kflavor.$CARCH" _kdir_dev="$srcdir/build-$_kflavor-dev.$CARCH" _ksaf="$_kflavor" _kabi="$pkgver-$pkgrel-$_ksaf" _klocalver="-$pkgrel-$_ksaf" } _spvars() { _kflavor="$(echo $subpkgname | cut -d- -f2)" } for _kflavor in $(_archflavors); do _bvars subpackages=" $subpackages $pkgname-$_ksaf:_pkg_kernel:$CBUILD_ARCH $pkgname-$_ksaf-dev:_pkg_extmod:$CBUILD_ARCH " done export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" prepare() { default_prepare for _kflavor in $(_archflavors); do _bvars for _kbuilddir in "$_kdir_main" "$_kdir_dev"; do mkdir -p "$_kbuilddir" echo "$_klocalver" > "$_kbuilddir"/localversion-alpine \ || return 1 cp "$srcdir"/"$_kconfig" "$_kbuilddir"/.config make -C "$_kdir_src" \ O="$_kbuilddir" \ ARCH="$_carch" \ olddefconfig done done } build() { unset LDFLAGS for _kflavor in $(_archflavors); do _bvars # Build kernel and modules msg "Building $_kflavor for $CARCH" cd "$_kdir_main" make \ ARCH="$_carch" \ CC="${CC:-gcc}" \ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" # Build out-of-tree builder msg "Building $_kflavor-dev for $CARCH" cd "$_kdir_dev" make syncconfig \ ARCH="$_carch" make prepare \ ARCH="$_carch" make modules_prepare \ ARCH="$_carch" make scripts \ ARCH="$_carch" done } package() { mkdir -p "$pkgdir" } _pkg_kernel() { _spvars _bvars local _install= case "$CARCH" in arm*|aarch64) _install="zinstall dtbs_install";; *) _install=install;; esac local _outdir="$subpkgdir" mkdir -p "$_outdir"/boot "$_outdir"/lib/modules cd "$_kdir_main" # Install modules make modules_install \ ARCH="$_carch" \ INSTALL_MOD_PATH="$_outdir" # Install kernel make $_install \ ARCH="$_carch" \ INSTALL_PATH="$_outdir"/boot \ INSTALL_DTBS_PATH="$_outdir/boot/dtbs-$_ksaf" # Remove incorrect build-time symlinks rm -f "$_outdir"/lib/modules/"$_kabi"/build \ "$_outdir"/lib/modules/"$_kabi"/source rm -rf "$_outdir"/lib/firmware # Install release file install -D -m644 include/config/kernel.release \ "$_outdir"/usr/share/kernel/"$_kflavor"/kernel.release } _pkg_extmod() { _spvars _bvars depends="$_depends_dev" local _outdir="$subpkgdir/usr/src/linux-headers-$_kabi" _builddir="$subpkgdir/lib/modules/$_kabi" mkdir -p "$_outdir" cd "$_kdir_dev" msg "Copying kernel out-of-tree build files" rm Makefile source cp -a . "$_outdir" cd "$_kdir_src" msg "Copying kernel out-of-tree build tree" cp -a scripts include "$_outdir" find . \ -path './include/*' -prune -o \ -path './scripts/*' -prune -o \ -type f \( \ -name 'Makefile*' -o \ -name 'Kconfig*' -o \ -name 'Kbuild*' -o \ -name '*.sh' -o \ -name '*.pl' -o \ -name '*.lds' -o \ -name 'Platform' \ \) -print | \ cpio -pdm "$_outdir" find ./arch \ -path './arch/*/include/*' \ -type f -print | \ cpio -pdm "$_outdir" mkdir -p "$_builddir" ln -sf "/usr/src/linux-headers-$_kabi" "$_builddir"/build } sha512sums=" 8b79f30c26a865578d771b0c1a8273ecbf19135e4844210cb31c81784311601b8f7adfe1b3a9bc75c6bed99dcad9a5ff5e1976494b64f0de45be3a6570336890 linux-5.15.12.tar.xz 0db424b64b50a1ffda7a8591526eb3d4d77b97b74aeee49810ef05730f95622573775026073ce57e43b4389c5c2ba075be42c49b5c3fd5e745d8c6b948a77b62 config-full.x86_64 acc7f183a6773d3de0e10c808cbfadb7b54b6f9fcf891234473adef449f87e04a486ed6ec3fae106d0ff10f0c4bc3224971319aeba03fbcaafb1590e89c5ae84 config-slim.x86_64 ad69e8a63a9aae01191e751520dc50ed43397770b90b154e9b4fc5129765f29d93d36f219ee62dda9f3826fdc0e2b312aaaac2edc998c1a073efb1200ada1338 config-rockpro64.aarch64 8c97361cf0b8cf8b4630198b69e318413bedd63c34ec8cc62604f4198cc66cdffb029ed9f719fa946e97aacece327cf72b1dc5bbf3c6b4c0391bf51be96135e2 rtw89-add-Realtek-802.11ax-driver.patch "