pkgname=linux-linode _basekernel=3.11 _kernelname=${pkgname#linux} _srcname=linux-${_basekernel} pkgver=${_basekernel}.3 pkgrel=1 arch=('i686' 'x86_64') url="https://github.com/yardenac/linux-linode" license=(GPL2) makedepends=(xmlto docbook-xsl kmod inetutils bc) options=('!strip') source=("http://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz" "http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz" 'config' 'config.x86_64' 'menu.lst' "preset" 'change-default-console-loglevel.patch') md5sums=('fea363551ff45fbe4cb88497b863b261' 'b098457c2d9e9626faacfda931deefb6' '0b028e1c57c3682d1fd834d3d98134fb' '10f235b279fd7283be21b3a5c582778d' '01afd0c0ff8fcf3fe6e0cd91d12886bd' '3d6427cc412dbc226b5d058c82ba7c66' '98beb36f9b8cf16e58de2483ea9985e3') pkgdesc="Kernel for Linode servers" depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7') provides=(linux) conflicts=(grub grub-legacy) backup=(etc/mkinitcpio.d/${pkgname}.preset boot/grub/menu.lst) install=install prepare() { cd "${srcdir}/${_srcname}" patch -p1 -i "${srcdir}/patch-${pkgver}" patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch" 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}" CFLAGS=${CFLAGS}" -march=corei7 -mtune=corei7 -mcpu=corei7 " CXXFLAGS=${CXXFLAGS}" -march=corei7 -mtune=corei7 -mcpu=corei7 " cpus=$(awk '/^processor/ {cpus++} END {print cpus}' /proc/cpuinfo) [[ "$MAKEFLAGS" =~ -j[0-9]* ]] || MAKEFLAGS+=" -j${cpus:-1}" ionice -c 3 nice -n 19 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 cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgname}" install -D -m644 vmlinux "${pkgdir}/usr/src/linux-${_kernver}/vmlinux" install -D -m644 "${srcdir}/preset" "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset" sed \ -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \ -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \ -i "${startdir}/install" sed \ -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${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" rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build} rm -rf "${pkgdir}/lib/firmware" find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; 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}" mv "${pkgdir}/"{lib,usr/} mkdir -p ${pkgdir}/boot/grub sed "s/%VER%/${pkgver}-${pkgrel}/ig" ${srcdir}/menu.lst > ${pkgdir}/boot/grub/menu.lst }