# Contributor: A. Wilcox # Maintainer: Adelie Platform Group # KEEP THIS IN SYNC with the other easy-kernel packages. _kflavour="" _patchver=1 _pkgname=easy-kernel$_kflavour pkgver=5.4.66 pkgrel=0 pkgname=$_pkgname-$pkgver-mc$_patchver 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="kernel-boot" makedepends="bc bison flex gzip kmod lzop openssl-dev rsync xz" provides="easy-kernel$_kflavour=$pkgver-r$pkgrel" replaces="easy-kernel-power8 easy-kernel-power8-64k" subpackages="$_pkgname-modules-$pkgver-mc$_patchver:modules $_pkgname-src-$pkgver-mc$_patchver: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$_patchver-patches.tar.xz config-aarch64 config-armv7 config-m68k config-pmmx config-ppc config-ppc64 config-sparc64 config-x86_64 kernel.h uapi-iphdr.patch " builddir="$srcdir/linux-${_pkgminver}" prepare() { for patch in "$srcdir/linux-${_pkgminver}-mc$_patchver-patches"/*; do patch -p1 -i "$patch" done default_prepare cd "$srcdir" cp config-$CARCH linux-${_pkgminver}/.config cp -pr linux-${_pkgminver} linux-src if [ -f $HOME/kernel_key.pem ]; then cp $HOME/kernel_key.pem "$builddir"/certs/signing_key.pem fi } build() { 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() { 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$_patchver-easy$_kflavour fi if [ -f "$pkgdir"/boot/vmlinux ]; then mv "$pkgdir"/boot/vmlinux \ "$pkgdir"/boot/vmlinux-$pkgver-mc$_patchver-easy$_kflavour fi if [ -f "$pkgdir"/boot/System.map ]; then mv "$pkgdir"/boot/System.map \ "$pkgdir"/boot/System.map-$pkgver-mc$_patchver-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$_patchver$_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$_patchver-easy$_kflavour/build rm "$subpkgdir"/lib/modules/$pkgver-mc$_patchver-easy$_kflavour/source ln -s "../../../usr/src/linux-$pkgver-mc$_patchver$_kflavour" \ "$subpkgdir"/lib/modules/$pkgver-mc$_patchver-easy$_kflavour/build ln -s "../../../usr/src/linux-$pkgver-mc$_patchver$_kflavour" \ "$subpkgdir"/lib/modules/$pkgver-mc$_patchver-easy$_kflavour/source } headers() { pkgdesc="System headers provided by the Linux kernel" cd "$builddir" 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 install -m644 "$srcdir"/kernel.h "$subpkgdir"/usr/include/linux/kernel.h } 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$_patchver$_kflavour } sha512sums="9f60f77e8ab972b9438ac648bed17551c8491d6585a5e85f694b2eaa4c623fbc61eb18419b2656b6795eac5deec0edaa04547fc6723fbda52256bd7f3486898f linux-5.4.tar.xz e6a7a5933dbe638be42a1308fd64895e53fe38be1238016a560985127106356570e6ea6ba94e6fbfb5924e24728232487c91ff1affcc79af1d724b8c813f5036 linux-5.4-mc1-patches.tar.xz d0493196ecbb92d3cb76411a89d7a7bdb445eb7dfcbb5a77a7d4abc11bcbf65e248b0eaef2cdf482e93c4aaa4e381a8e9e37979cc3ab7cb23228e5fd8442275a config-aarch64 7885134ad764882a7a1a4f3893f7b4dc192c83d72b4134c1b4fa60d1c1c58c3bf27259a3c71923a774734bfc6eaa40baddb4f56090fb55e4f4f78b9c2856b44c config-armv7 581da20b2e0db48fcb29fe97ce6cf5d2e6a7092cbe2fd1b48cbdaddc1bc15d24e2470e56394624ff61b94b6ccf25035d07a18d9cbc4c16ac7f2865913a13c0d8 config-m68k a096a2dd1f2aa1068800fbddbc1a8b909253f5f2174527691731932a0d57c8262e8ed631a054099dedd1ced0709562f09a81040bbd0f72d1a584151456905ccf config-pmmx 20834051bba37b1035dfed97431f36bb8ca973077a33d8186b0968d0d90c74573ad63a39b879437bc8231acc3a8a3b405c2b845b910c03ca4a5fbc65243addb6 config-ppc dcf8bc3638b3234df3d66f5b804938113e859ffd1df4c7b689f476ea5d9c43d5df9c58dbb8b4def61e8f720554d9d11db6d6065ed5ded7482d5bb088d838f23e config-ppc64 4527b7951620953e83e824c41e2dbc5c49e92f13709500fd849813dc157897da33d177b901ce1304b317a51a7c19a561a891a02e463f98236ff9e6957131d65a config-sparc64 a71f8446cc483c9e571b8793d6de92a15f9752cc85a0199fa0a62baa6da3ddb90e1e8354132789496074e4bb337706e56bf52e4cb331b33eb990c3a68eceba87 config-x86_64 61dcd633d72876566b7738dd08856b26850c935b4a81ab2364711335fe01c397083160f530b3382bbc239c6a8135be6a032e93039083ec2cefdae2902429a2e0 kernel.h 6f309a18c65c991240265afd200cc79a706f5d9e5d072838a9a641ab3676a5e4c32033f9767fc723ff4c45ee462169a0f77bd7dfe63b547d521dadd073f827a7 uapi-iphdr.patch"