# Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: Adelie Platform Group <adelie-devel@lists.adelielinux.org> # KEEP THIS IN SYNC with the other easy-kernel packages. _kflavour="" _pkgname=easy-kernel$_kflavour pkgver=4.14.127 pkgrel=14 pkgname=$_pkgname-$pkgver-mc$pkgrel pkgdesc="The Linux kernel, packaged for your convenience" url="https://kernel.org/" arch="all" options="!check !dbg !strip !tracedeps" license="GPL-2.0-only" depends="" makedepends="bc gzip kmod lzop openssl-dev xz" provides="easy-kernel$_kflavour=$pkgver-r$pkgrel" subpackages="$_pkgname-modules-$pkgver-mc$pkgrel:modules $_pkgname-src-$pkgver-mc$pkgrel:src linux-headers:headers" _pkgmajver=${pkgver%%.*} _pkgminver=${pkgver%.*} source="https://cdn.kernel.org/pub/linux/kernel/v${_pkgmajver}.x/linux-${_pkgminver}.tar.xz https://distfiles.adelielinux.org/source/linux-${_pkgminver}-mc$pkgrel.patch.xz ast-endianness.patch config-ppc64 config-ppc config-x86_64 config-pmmx config-aarch64 config-sparc64 config-m68k kernel.h " builddir="$srcdir/linux-${_pkgminver}" prepare() { cd "$srcdir" cat linux-${_pkgminver}-mc$pkgrel.patch.xz | unxz -> linux-${_pkgminver}-mc$pkgrel.patch patch -Np1 -d "$builddir" <linux-${_pkgminver}-mc$pkgrel.patch default_prepare cd "$srcdir" cp config-$CARCH linux-${_pkgminver}/.config cp -pr linux-${_pkgminver} linux-src } build() { cd "$builddir" make LDFLAGS="" cd "$srcdir/linux-src" make LDFLAGS="" modules_prepare clean cp "$builddir/Module.symvers" . # Kernel bug: crtsavres.o is required to build modules, but modules_prepare doesn't create it. if [ $CARCH = ppc ]; then cp "$builddir/arch/powerpc/lib/crtsavres.o" arch/powerpc/lib/ fi } package() { cd "$builddir" mkdir -p "$pkgdir"/boot make INSTALL_PATH="$pkgdir"/boot \ INSTALL_MOD_PATH="$pkgdir" \ install modules_install if [ -f "$pkgdir"/boot/vmlinuz ]; then mv "$pkgdir"/boot/vmlinuz \ "$pkgdir"/boot/vmlinuz-$pkgver-mc$pkgrel-easy$_kflavour fi if [ -f "$pkgdir"/boot/vmlinux ]; then mv "$pkgdir"/boot/vmlinux \ "$pkgdir"/boot/vmlinux-$pkgver-mc$pkgrel-easy$_kflavour fi if [ -f "$pkgdir"/boot/System.map ]; then mv "$pkgdir"/boot/System.map \ "$pkgdir"/boot/System.map-$pkgver-mc$pkgrel-easy$_kflavour fi case $CARCH in aarch64|arm*) make INSTALL_PATH="$pkgdir"/boot dtbs_install ;; esac install -D "$builddir"/include/config/kernel.release \ "$pkgdir"/usr/share/kernel/easy-$pkgver-mc$pkgrel$_kflavour/kernel.release } modules() { pkgdesc="Modules / device drivers for easy-kernel" provides="easy-kernel$_kflavour-modules=$pkgver-r$pkgrel" autodeps=0 # modules should not depend on src just for symlink mkdir -p "$subpkgdir"/lib mv "$pkgdir"/lib/modules "$subpkgdir"/lib/ rm "$subpkgdir"/lib/modules/$pkgver-mc$pkgrel-easy$_kflavour/build rm "$subpkgdir"/lib/modules/$pkgver-mc$pkgrel-easy$_kflavour/source ln -s "../../../usr/src/linux-$pkgver-mc$pkgrel$_kflavour" \ "$subpkgdir"/lib/modules/$pkgver-mc$pkgrel-easy$_kflavour/build ln -s "../../../usr/src/linux-$pkgver-mc$pkgrel$_kflavour" \ "$subpkgdir"/lib/modules/$pkgver-mc$pkgrel-easy$_kflavour/source } headers() { pkgdesc="System headers provided by the Linux kernel" cd "$builddir" patch -Np1 -i "$srcdir"/../revert-broken-uapi.patch mkdir -p "$subpkgdir"/usr make headers_install INSTALL_HDR_PATH="$subpkgdir/usr" find "$subpkgdir/usr" \( -name .install -o -name ..install.cmd \) -exec \ rm -f {} \; # provided by libdrm rm -rf "$subpkgdir"/usr/include/drm # needed for spl, VMware on x86, etc install -D -m644 "$builddir"/include/generated/utsrelease.h \ "$subpkgdir"/usr/include/linux/utsrelease.h cp "$srcdir"/kernel.h "$subpkgdir"/usr/include/linux/ } src() { pkgdesc="Kernel source code used to build the kernel" provides="easy-kernel$_kflavour-src=$pkgver-r$pkgrel" mkdir -p "$subpkgdir"/usr/src mv "$srcdir"/linux-src "$subpkgdir"/usr/src/linux-$pkgver-mc$pkgrel$_kflavour } sha512sums="77e43a02d766c3d73b7e25c4aafb2e931d6b16e870510c22cef0cdb05c3acb7952b8908ebad12b10ef982c6efbe286364b1544586e715cf38390e483927904d8 linux-4.14.tar.xz 61eda169a4bd195202f1cf82a6d7c8ff10e420cfa1ad67ab8346ed868e154196e9c13002bf4849d6afe6d7115bcd139c6bb395791446ec2f69aa2adebfdf675f linux-4.14-mc14.patch.xz e41d9111219342ad13367902242444ecdd847a93575c3f9709d6c6a075bc650f4a15be9db1a8798435fc0a0b56d41705829bfe0d2c2d88f8d1c28931e27ef5be ast-endianness.patch 396617ee921b15074d4bb0caed50a30c99b2b33d0f884fbc209d260c88194748cc2924d18aa5fcb1032c5066e955f1bd1916239771fdfdfbba2e88165830a1af config-ppc64 c66fc39049c5d1d6d8f19c8f5258cdf51d617d074c69d4850f432f2c14ff96f9f526259743eeeecddcecd3bde92627486e3541d26b9ba54ae255708c2ca7a69c config-ppc 6c8beb705d27b10115ecea177b94b41da3e4583313f85ce5df79591e76627a912af5b15edab3e499968bbea49f086a93d5130f9efe5d532da193c55e22ec41ce config-x86_64 573007009d41a3b7513fb8ad82d55824cb674b8cfa328b58244e26e0554a0db505bd1b063e644974544c6c72414e195f753c5478e9d19f46ff0e268518676286 config-pmmx 709b55f770bd08434760d52eaea432a678b7ee9ec67cb5dd0ab83f8421e3ada6857c80c709a2b1163f52bd7316539e1833dc271f45a3312ee790fe2d3e62652f config-aarch64 8c5e4e1292d63a972b21f20b4f6341266429d51cf491df3d48f8f61cf3e4e96913937a9b651b9e097311723d83d70af6ab5ba9891e379eb0e0aa457d432b85f5 config-sparc64 6594f07d9d741c37ced99ce1bd9a9c10f0fb2f1a44e64da318d9350a8f6bb69b004382bd66e1a08baf8e581e7eeffb37488cfb6002ab61b0e7c8474afcae1a29 config-m68k fdd94b9de7b374f1812dec0f9971c05f5e52177ca4a16c8071daa620c18265b38f656f528e7045a24f30af01f05e53e54546fb0a9e93773cf191866e87de505d kernel.h"