# Maintainer: Yardena Cohen # tracks: https://projects.archlinux.org/svntogit/packages.git/log/trunk?h=packages/linux pkgname=linux-linode _basekernel=4.12 _kernelname=${pkgname#linux} _srcname=linux-${_basekernel} pkgver=${_basekernel}.5 pkgrel=1 arch=('i686' 'x86_64') url="https://github.com/yardenac/linux-linode" license=(GPL2) makedepends=(xmlto docbook-xsl kmod inetutils bc libelf) options=('!strip') source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar."{xz,sign} "https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}."{xz,sign} 'config' 'config.x86_64' '08_linux_linode' '98-linux-linode.hook' '99-grub-ll.hook' 'menu.lst' 'preset') sha512sums=('8e81b41b253e63233e92948941f44c6482acb52aa3a3fd172f03a38a86f2c35b2ad4fd407acd1bc3964673eba344fe104d3a03e3ff4bf9cd1f22bd44263bd728' 'SKIP' 'b9e74f148a0bd76df8c52e6384933b9eddd8477c713b14389a34655538abab70ffa70e99b504a60d0adf1937c771d9bb3879511e6c3666c345d490848eb4f113' 'SKIP' '57cad4a666f93eb982efd645b89f6f17b9e7266d4ac538d986e734434dade03b85a2c943d2934a7a073cf87aa9ca4d9d7db26b7e3ae4436a5e39afb5ce6f466f' '5d86b27aff9bdd7c005fb7ae776e74e2cf95ae031921ff1df10cfa2b1996fd87f60ed81ef7655209225e24035f5f86ac6642523ec9b01e10efb798f139646aca' '7a80f858c32a9dd62f43aba0b7119a1196869216117164bcde24ab46022e8a1bbe27821faa26ca690a1633a5a9fe324e98e5cdf14f37591d569cbc71f542482d' 'c57a6c8d9978cb6a1034bed33ba5e06bef9b134f22113761798d4fa46e8091e7b0bd26f3a14d79122ba780b2f7a93ca26850f4da6a654f81b34cc79c242f683f' 'db9080b2548e4dcd61eaaf20cd7d37cbbc8c204ce85a2e3408d0671f6b26010f77a61affd2c77e809768714eca29d3afb64765a3f2099317a2c928eff3feb4cf' '73cb4c064d8942fddaac48158b7e77d19afc1cb61f83936f21832ba7d7266ccfd3021114252edd5cec5542096204f48cf30544fd6bffff79bc94d96fabe74f52' '62870a08f000abfe8eb1f50271afdf04686af108554f7629dc5e1d7610ad14bdc9cd14d2609270b83f9edb745a520b81fa7bfb92ebcc28a146df040c895b549b') sha256sums=('a45c3becd4d08ce411c14628a949d08e2433d8cdeca92036c7013980e93858ab' 'SKIP' '8eb42889cd1f41a4350a0227e0dae544acdfa0ddf5a5ec671dd9c64ca917c132' 'SKIP' 'afb54c05456066a21403b509c833ca5a53a32504e3b093d3797ea549ddf18f0d' 'e7a146facce7105b5d74bea7ffb26ad8f35621be1da14136670fe8ed105f7edc' '7d56a81083d1468d90ebec97a44ec44f80f8cb87bd506ed1918d6664d6309ad5' '3efa91fcb4698bde0598678bbf9a4a747c011823af82704eed2c146ed7cd9734' '368fb58e7aa465f597e9a72da4b6eea4183c1a85242173412d54ad18d10d8fb3' 'a055b6005a324240b35c416d9d08fba21c5f614eefb46f244035d04bf085224f' '29fa2c1ea75f55a61276496507b788b1a8bde1d7c16bee4f525651db34076e46') md5sums=('fc454157e2d024d401a60905d6481c6b' 'SKIP' '0993b69927d19e4f2b52d99670a95d07' 'SKIP' '3d5e68d8b9cddaf49b9f3a52c4436759' 'e9ff420b2a89c96dd84a8576fae43d95' 'bc30565cf444b710c252675cf65fb46e' 'c52c29a8502f6c75e309208f0afab11f' '625481f015365febcd65aa136ee555f9' '15fae1e2da901b937d284890fd91cfab' 'e1b5255cfbf5f8ca79b4b4568feec801') validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linux Torvalds '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) pkgdesc="Kernel for Linode servers" depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7' 'grub') provides=(linux) conflicts=(grub-legacy) backup=(etc/mkinitcpio.d/${pkgname}.preset boot/grub/menu.lst) install=install prepare() { cd "${srcdir}/${_srcname}" patch -p1 -i "${srcdir}/patch-${pkgver}" if [ "${CARCH}" = "x86_64" ]; then cat "${srcdir}/config.x86_64" > ./.config else cat "${srcdir}/config" > ./.config fi sed -i '2iexit 0' scripts/depmod.sh sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|g" ./.config sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile make prepare } build() { cd "${srcdir}/${_srcname}" [[ "$MAKEFLAGS" =~ -j[0-9]* ]] || MAKEFLAGS+=" -j$(nproc)" ionice -c 3 nice -n 16 make ${MAKEFLAGS} LOCALVERSION= bzImage modules } package_linux-linode() { KARCH=x86 cd "${srcdir}/${_srcname}" _kernver="$(make LOCALVERSION= kernelrelease)" mkdir -p "${pkgdir}"/{lib/{modules,firmware},boot} make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install rm -rf "${pkgdir}"/lib/{firmware,modules/${_kernver}/{source,build}} cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuzll-${pkgname}" install -D -m644 vmlinux "${pkgdir}/lib/modules/${_kernver}/build/vmlinux" install -D -m644 "${srcdir}/preset" "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset" install -D -m644 "${srcdir}/98-linux-linode.hook" "${pkgdir}/usr/share/libalpm/hooks/98-linux-linode.hook" install -D -m644 "${srcdir}/99-grub-ll.hook" "${pkgdir}/usr/share/libalpm/hooks/99-grub-ll.hook" install -D -m755 "${srcdir}/08_linux_linode" "${pkgdir}/etc/grub.d/08_linux_linode" sed \ -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \ -i "${startdir}/install" sed \ -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuzll-${pkgname}\"|" \ -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgname}.img\"|" \ -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgname}-fallback.img\"|" \ -i "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset" emdir="extramodules-${_basekernel}${_kernelname:--ARCH}" mkdir -p "${pkgdir}/lib/modules/${emdir}" ln -s "../${emdir}" "${pkgdir}/lib/modules/${_kernver}/extramodules" echo "${_kernver}" >| "${pkgdir}/lib/modules/${emdir}/version" depmod -b "${pkgdir}" -F System.map "${_kernver}" mkdir -p "${pkgdir}/usr" mv "${pkgdir}/"{lib,usr/} mkdir -p ${pkgdir}/boot/grub sed "s/%VER%/${pkgver}-${pkgrel}/ig" ${srcdir}/menu.lst > ${pkgdir}/boot/grub/menu.lst }