pkgbase=linux-lts pkgname=('linux-lts' 'linux-lts-headers' 'linux-lts-docs') pkgver=4.4.152 _srcname=linux-4.4 pkgrel=4 makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc') arch=('x86_64') license=('GPL2') url="http://www.kernel.org" options=('!strip') source=(http://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.{xz,sign} http://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.xz # the main kernel config files config.x86_64 # standard config files for mkinitcpio ramdisk linux-lts.preset 60-linux.hook # pacman hook for depmod 90-linux.hook # pacman hook for initramfs regeneration change-default-console-loglevel.patch) md5sums=('9a78fa2eb6c68ca5a40ed5af08142599' 'SKIP' '008bb66a9c04de08d95056688f6fc666' '3c82e548b482a80cb344c083a9e4e259' 'a329f9581060d555dc7358483de9760a' 'ce6c81ad1ad1f8b333fd6077d47abdaf' 'a85bfae59eb537b973c388ffadb281ff' 'df7fceae6ee5d7e7be7b60ecd7f6bb35') validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) _kernelname=-CHAKRA-LTS prepare() { cd ${srcdir}/$_srcname # add upstream patch msg "adding upstream patch" patch -p1 -i "${srcdir}/patch-${pkgver}" # add latest fixes from stable queue, if needed # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) # remove this when a Kconfig knob is made available by upstream # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) msg "changing default console loglevel" patch -p1 -i "${srcdir}/change-default-console-loglevel.patch" # replace the config file with the x86_64 configurations cat "${srcdir}/config.x86_64" > ./.config if [ "${_kernelname}" != "" ]; then sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config fi # set extraversion to pkgrel sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile # don't run depmod on 'make install'. We'll do this ourselves in packaging sed -i '2iexit 0' scripts/depmod.sh # get kernel version make prepare make -s kernelrelease > ../version # load configuration # Configure the kernel. Replace the line below with one of your choice. #make menuconfig # CLI menu for configuration #make nconfig # new CLI menu for configuration #make xconfig # X-based configuration #make oldconfig # using old config from previous kernel version # ... or manually edit .config # rewrite configuration yes "" | make config >/dev/null # save configuration for later reuse cat .config > "${startdir}/config.x86_64.last" #################### # stop here # this is useful to configure the kernel #msg "Stopping build" #return 1 #################### } build() { cd ${srcdir}/$_srcname make ${MAKEFLAGS} LOCALVERSION= bzImage modules } package_linux-lts() { pkgdesc="The Linux LTS-Kernel and modules" groups=('lts') depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio') optdepends=('crda: to set the correct wireless channels of your country') replaces=('linux-scsi' 'squashfs' 'unionfs' 'ivtv' 'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs' 'gspcav1' 'atl2' 'wlan-ng26' 'rt2500' 'aufs3' 'nouveau-drm') provides=("aufs3=$_aufs" 'nouveau-drm-lts' 'acerhk-lts=0.5.35') conflicts=('acerhk-lts') backup=("etc/mkinitcpio.d/${pkgbase}.preset") install=${pkgname}.install local kernver="$( "$startdir/$install.pkg" true && install=$install.pkg # fill in mkinitcpio preset and pacman hooks sed "$subst" ../linux-lts.preset | install -Dm644 /dev/stdin \ "$pkgdir/etc/mkinitcpio.d/$pkgbase.preset" sed "$subst" ../60-linux.hook | install -Dm644 /dev/stdin \ "$pkgdir/usr/share/libalpm/hooks/60-$pkgbase.hook" sed "$subst" ../90-linux.hook | install -Dm644 /dev/stdin \ "$pkgdir/usr/share/libalpm/hooks/90-$pkgbase.hook" msg2 "Fixing permissions..." chmod -Rc u=rwX,go=rX "$pkgdir" } package_linux-lts-headers() { pkgdesc="Header files and scripts for building modules for linux lts-kernel" local builddir="$pkgdir/usr/lib/modules/$(