diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 116 |
1 files changed, 59 insertions, 57 deletions
@@ -49,11 +49,10 @@ _use_current= ### Do not edit below this line unless you know what you're doing pkgbase=linux-bfq -pkgname=('linux-bfq' 'linux-bfq-headers' 'linux-bfq-docs') -_kernelname=-bfq +# pkgname=('linux-bfq' 'linux-bfq-headers' 'linux-bfq-docs') _srcname=linux-4.8 pkgver=4.8.8 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') url="http://algo.ing.unimo.it" license=('GPL2') @@ -74,12 +73,21 @@ source=("http://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz" "${_bfqpath}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${_bfqrel}-to-.patch" "${_bfqpath}/0004-Turn-BFQ-${_bfqrel}-into-BFQ-${_bfqver}-for-4.8.0.patch" "http://repo-ck.com/source/gcc_patch/${_gcc_patch}.gz" - 'linux-bfq.preset' 'change-default-console-loglevel.patch' - 'config' 'config.x86_64') - + # the main kernel config files + 'config' 'config.x86_64' + # pacman hook for initramfs regeneration + '99-linux.hook' + # standard config files for mkinitcpio ramdisk + 'linux.preset' + # patches from https://github.com/linusw/linux-bfq/commits/bfq-v8 + '0005-BFQ-Fix.patch' + '0006-BFQ-Fix.patch') + +_kernelname=${pkgbase#linux} + prepare() { - cd ${_srcname} + cd "${srcdir}/${_srcname}" ### Add upstream patch msg "Add upstream patch" @@ -93,7 +101,7 @@ prepare() { ### Patch source with BFQ msg "Patching source with BFQ patches" - for p in "${srcdir}"/000{1,2,3,4}-*BFQ*.patch; do + for p in "${srcdir}"/000{1,2,3,4,5,6}-*BFQ*.patch; do msg " $p" patch -Np1 -i "$p" done @@ -213,57 +221,54 @@ prepare() { } build() { - cd ${_srcname} - msg "Running make bzImage and modules" - make ${MAKEFLAGS} LOCALVERSION= bzImage modules + cd "${srcdir}/${_srcname}" + + make ${MAKEFLAGS} LOCALVERSION= bzImage modules } -package_linux-bfq() { +_package() { pkgdesc='Linux Kernel and modules with the BFQ scheduler.' depends=('coreutils' 'linux-firmware' 'mkinitcpio>=0.7') optdepends=('crda: to set the correct wireless channels of your country' 'nvidia-bfq: nVidia drivers for linux-bfq' 'modprobed-db: Keeps track of EVERY kernel module that has ever been probed - useful for those of us who make localmodconfig') - backup=("etc/mkinitcpio.d/linux-bfq.preset") - install=linux-bfq.install + backup=("etc/mkinitcpio.d/${pkgbase}.preset") + install=linux.install - cd ${_srcname} + cd "${srcdir}/${_srcname}" KARCH=x86 - # get kernel version - _kernver="$(make LOCALVERSION= kernelrelease)" - _basekernel=${_kernver%%-*} - _basekernel=${_basekernel%.*} + # get kernel version + _kernver="$(make LOCALVERSION= kernelrelease)" + _basekernel=${_kernver%%-*} + _basekernel=${_basekernel%.*} mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot} make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install - cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-linux-bfq" + cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}" # set correct depmod command for install - cp -f "${startdir}/${install}" "${startdir}/${install}.pkg" + sed -e "s|%PKGBASE%|${pkgbase}|g;s|%KERNVER%|${_kernver}|g" \ + "${startdir}/${install}" > "${startdir}/${install}.pkg" true && install=${install}.pkg - sed \ - -e "s/KERNEL_NAME=.*/KERNEL_NAME=-bfq/g" \ - -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \ - -i "${startdir}/${install}" # install mkinitcpio preset file for kernel - install -D -m644 "${srcdir}/linux-bfq.preset" "${pkgdir}/etc/mkinitcpio.d/linux-bfq.preset" - sed \ - -e "1s|'linux.*'|'linux-bfq'|" \ - -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-linux-bfq\"|" \ - -e "s|default_image=.*|default_image=\"/boot/initramfs-linux-bfq.img\"|" \ - -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-linux-bfq-fallback.img\"|" \ - -i "${pkgdir}/etc/mkinitcpio.d/linux-bfq.preset" + sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/linux.preset" | + install -D -m644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" + + # install pacman hook for initramfs regeneration + sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux.hook" | + install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/99-${pkgbase}.hook" # remove build and source links rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build} # remove the firmware rm -rf "${pkgdir}/lib/firmware" # make room for external modules - ln -s "../extramodules-${_basekernel}${_kernelname:bfq}" "${pkgdir}/lib/modules/${_kernver}/extramodules" + ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules" # add real version for building modules and running depmod from post_install/upgrade - mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:bfq}" - echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:bfq}/version" + mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}" + echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version" + # Now we call depmod... depmod -b "${pkgdir}" -F System.map "${_kernver}" @@ -276,22 +281,15 @@ package_linux-bfq() { install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux" } -package_linux-bfq-headers() { +_package-headers() { pkgdesc='Header files and scripts to build modules for linux-bfq.' depends=('linux-bfq') install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}" - cd ${_srcname} - - KARCH=x86 - - # get kernel version - _kernver="$(make LOCALVERSION= kernelrelease)" - _basekernel=${_kernver%%-*} - _basekernel=${_basekernel%.*} - + cd "${srcdir}/${_srcname}" + install -D -m644 Makefile \ "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile" install -D -m644 kernel/Makefile \ @@ -421,18 +419,11 @@ package_linux-bfq-headers() { rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa} } -package_linux-bfq-docs() { +_package-docs() { pkgdesc="Kernel hackers manual - HTML documentation that comes with the linux-bfq kernel" depends=('linux-bfq') - cd ${_srcname} - - KARCH=x86 - - # get kernel version - _kernver="$(make LOCALVERSION= kernelrelease)" - _basekernel=${_kernver%%-*} - _basekernel=${_basekernel%.*} + cd "${srcdir}/${_srcname}" mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build" cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build" @@ -443,6 +434,14 @@ package_linux-bfq-docs() { rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile" } +pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs") +for _p in ${pkgname[@]}; do + eval "package_${_p}() { + $(declare -f "_package${_p#${pkgbase}}") + _package${_p#${pkgbase}} + }" +done + sha512sums=('a48a065f21e1c7c4de4cf8ca47b8b8d9a70f86b64e7cfa6e01be490f78895745b9c8790734b1d22182cf1f930fb87eaaa84e62ec8cc1f64ac4be9b949e7c0358' 'SKIP' '4ad7b881c9fafaf446d00e53af22d1940ecf00291ed57d1706ad12725a7bf525abb1d17500d662409eccd77ed0e9c2a11580ce94d6b6344188f35bd9e49c2418' @@ -452,10 +451,13 @@ sha512sums=('a48a065f21e1c7c4de4cf8ca47b8b8d9a70f86b64e7cfa6e01be490f78895745b9c '135afcffee2439e2260a71202658dce9ec5f555de3291b2d49a5cffdd953c6d7851b8a90e961576895555142a618e52220a7e4a46521ca4ba19d37df71887581' '87ae76889ab84ced46c237374c124786551982f8ff7325102af9153aed1ab7be72bec4db1f7516426c5ee34c5ce17221679eb2f129c5cbdeec05c0d3cb7f785d' '8e8f407262f3f573654e7f0fceec6075fd2da0258a384206d28e5f59698168609e575f3d855adb8bb476b0684da409dab22f7ddc0f00e9c10c67debe4409c30b' - '607c0fa70375bff2f51387c4984e6f2da18c786a58281ab5c28f6b49c6da22578832afa96503f26a18575ffed677b2f9522a822b5db856b76c4144dd5b59ff6b' 'd9d28e02e964704ea96645a5107f8b65cae5f4fb4f537e224e5e3d087fd296cb770c29ac76e0ce95d173bc420ea87fb8f187d616672a60a0cae618b0ef15b8c8' - '2f63a2f373a1b97cba7ceee112a1ee69a90f8448dda2487b7ac91e669bc6b43febec0f584100cd27f7ef3be53fb75ed3b027ad881220cdb06e57fe93f214b4eb' - '8cfc9f98fd12333b035ec7bef53b4c3af2906e9d997aa41bd938298a669c59b51e8f554599e452f03f6e09a580ca9ca459ec29e31cec80866f4ffc2f477f79c6') + 'dee17ff84be74abecb016613f4fd34fd0432e0b6410fe799d2cb69d39bc1e301e9ba116c1bcfbcdf719cfe4404c7a926513295968f7f7d523255b8e8a837c2f5' + 'a0775a2f4a5b4ea09570e5f14c5568356b7d3dcebcefbb42d3076133efe08d215adb7d1ca21ff744522bd47ffb1e426b2ae41c168933e048423212975792bcb8' + 'd6faa67f3ef40052152254ae43fee031365d0b1524aa0718b659eb75afc21a3f79ea8d62d66ea311a800109bed545bc8f79e8752319cd378eef2cbd3a09aba22' + '2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf' + '3889679e288d51f6fecc7ed6581ccde34acbf1e4861f5c9ca237a1ad13158502757d3fc457d7b6caf1c8c99c9dba842265004154a71cffb8ec14e1030e49e312' + '3c3f3b6407d9a1a63cd91c2b5c35e6c932afa5bf33f1b2e8a530dbd9eacda8c8f956616c4cc9228657624da58e354ba5714252237d84ff3386fd65cf44f06ddc') validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds |