Advertisement
Guest User

Untitled

a guest
Jul 19th, 2015
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.29 KB | None | 0 0
  1. # Based on the file created for Arch Linux by:
  2. # Tobias Powalowski <tpowa@archlinux.org>
  3. # Thomas Baechler <thomas@archlinux.org>
  4.  
  5. # Maintainer: Philip Müller <philm@manjaro.org>
  6. # Maintainer: Guinux <guillaume@manjaro.org>
  7. # Maintainer: Rob McCathie <rob@manjaro.org>
  8.  
  9. pkgbase=linux41-custom
  10. pkgname=('linux41' 'linux41-headers')
  11. _kernelname=-MANJARO
  12. _basekernel=4.1
  13. _basever=41
  14. _aufs=20150629
  15. _bfq=v7r8
  16. pkgver=${_basekernel}.1
  17. pkgrel=2
  18. arch=('i686' 'x86_64')
  19. url="http://www.kernel.org/"
  20. license=('GPL2')
  21. makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
  22. options=('!strip')
  23. source=("https://www.kernel.org/pub/linux/kernel/v4.x/linux-${_basekernel}.tar.xz"
  24. "http://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.xz"
  25. # the main kernel config files
  26. 'config' 'config.x86_64' 'config.aufs'
  27. # standard config files for mkinitcpio ramdisk
  28. "${pkgname}.preset"
  29. "aufs4.1-${_aufs}.patch.bz2"
  30. 'aufs4-base.patch'
  31. 'aufs4-kbuild.patch'
  32. 'aufs4-loopback.patch'
  33. 'aufs4-mmap.patch'
  34. 'aufs4-standalone.patch'
  35. 'tmpfs-idr.patch'
  36. 'vfs-ino.patch'
  37. 'http://sources.gentoo.org/cgi-bin/viewvc.cgi/linux-patches/genpatches-2.6/trunk/3.15/1700_enable-thinkpad-micled.patch'
  38. 'http://sources.gentoo.org/cgi-bin/viewvc.cgi/linux-patches/genpatches-2.6/trunk/3.15/2700_ThinkPad-30-brightness-control-fix.patch'
  39. "0001-block-cgroups-kconfig-build-bits-for-BFQ-${_bfq}.patch::ftp://teambelgium.net/bfq/patches/4.1.0-${_bfq}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${_bfq}-4.1.patch"
  40. "0002-block-introduce-the-BFQ-${_bfq}-I-O-sched.patch::ftp://teambelgium.net/bfq/patches/4.1.0-${_bfq}/0002-block-introduce-the-BFQ-${_bfq}-I-O-sched-for-4.1.patch"
  41. "0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${_bfq}.patch::ftp://teambelgium.net/bfq/patches/4.1.0-${_bfq}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${_bfq}-for-4.1.0.patch"
  42. # ARCH Patches
  43. 'change-default-console-loglevel.patch'
  44. '0001-block-loop-convert-to-per-device-workqueue.patch'
  45. '0002-block-loop-avoiding-too-many-pending-per-work-I-O.patch'
  46. )
  47. sha256sums=('caf51f085aac1e1cea4d00dbbf3093ead07b551fc07b31b2a989c05f8ea72d9f'
  48. '48a813fb6795153f6906759501bea9e290db528894d1c0726667efc8e55dd7ad'
  49. '0fdbfdd8f51106ee2c2b57e6c3ca93d8f5d31ddc2ac12c5e2a35a52bc6ad3307'
  50. '3435ad970f6fc9b7ac9c026a69fb8c6805675a6ac0c1027bf6fd3cc5ef26d7f2'
  51. 'd1cecc720df66c70f43bdb86e0169d6b756161c870db8d7d39c32c04dc36ed36'
  52. '6d058de24e029651eef6e7e0133616eddf710aa51dfbba1652026f57a35e42ad'
  53. '58c9b0fdbbb5ec33d337a3bcf80b68b0b97b5c0a28dfc351e0950db9a2958e3a'
  54. 'b20a0ddb146d1e7e861dbdf1c6f99b92a822ff975e30fff8f3cea29e257fcfb9'
  55. '68baa54faa3dbb76522b1f311c8b4e780e4244836c1ae5396a8d943842ee80a7'
  56. '56b136946bbdc29e0cbd88a9ecba125e37049e9febc262b69958e7e533f93e63'
  57. '1743a764597b0bdcb967f502c517d10e46ec05fbb9217ae4813d2739477ecbfc'
  58. '99febb7e7399ea6237b42bb07e2fc877ab9eaa1d68339839ed958ad4ac248a74'
  59. '1f64e8e78169bc7b3658e2e948cea9d88724cef419b6e9af25101e247796cd5a'
  60. '9129c349305fa1d003bd47fdf11a768a69805c852a3c269af5a04f0d6f50eeea'
  61. '461aa0da7de8bda9474797339532304894b55825be34f8c009244da8c00c5b41'
  62. 'a3f85c3c35ee478fd174f8aaa6ca15e5fad8612b42ca4d90cc3ef79b49a99989'
  63. 'ec0ca3c8051ea6d9a27a450998af8162464c224299deefc29044172940e96975'
  64. 'c5c2c48638c2a8180948bd118ffcc33c8b7ff5f9f1e4b04c8e2cafeca2bde87b'
  65. '4f30f76adbdf49aec8d41ac27ad212734500c272f3cba594f134a7bc263820d9'
  66. '44e7e15c95af9676f715569e72688fd64304a70d2854b0f804c156d4961c72c0'
  67. '9e1d3fd95d768a46353593f6678513839cedb98ee66e83d9323233104ec3b23f'
  68. 'bbe3631c737ed8329a1b7a9610cc0a07330c14194da5e9afec7705e7f37eeb81')
  69.  
  70. prepare() {
  71. cd "${srcdir}/linux-${_basekernel}"
  72.  
  73. # add upstream patch
  74. patch -p1 -i "${srcdir}/patch-${pkgver}"
  75.  
  76. # add latest fixes from stable queue, if needed
  77. # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
  78. # enable only if you have "gen-stable-queue-patch.sh" executed before
  79. #patch -Np1 -i "${srcdir}/prepatch-${_basekernel}`date +%Y%m%d`"
  80.  
  81. # Fix deadlock with stacked loop devices (FS#45129)
  82. # http://marc.info/?l=linux-kernel&m=143280649731902&w=2
  83. patch -Np1 -i ../0001-block-loop-convert-to-per-device-workqueue.patch
  84. patch -Np1 -i ../0002-block-loop-avoiding-too-many-pending-per-work-I-O.patch
  85.  
  86. # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
  87. # remove this when a Kconfig knob is made available by upstream
  88. # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
  89. patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
  90.  
  91. # add Gentoo patches
  92. patch -Np1 -i "${srcdir}/1700_enable-thinkpad-micled.patch"
  93. patch -Np1 -i "${srcdir}/2700_ThinkPad-30-brightness-control-fix.patch"
  94.  
  95. # fix aufs4
  96. sed -i -e 's|f_dentry|f_path.dentry|g' "${srcdir}/aufs4-loopback.patch"
  97.  
  98. # add aufs4 support
  99. patch -Np1 -i "${srcdir}/aufs4.1-${_aufs}.patch"
  100. patch -Np1 -i "${srcdir}/aufs4-base.patch"
  101. patch -Np1 -i "${srcdir}/aufs4-kbuild.patch"
  102. patch -Np1 -i "${srcdir}/aufs4-loopback.patch"
  103. patch -Np1 -i "${srcdir}/aufs4-mmap.patch"
  104. patch -Np1 -i "${srcdir}/aufs4-standalone.patch"
  105. patch -Np1 -i "${srcdir}/tmpfs-idr.patch"
  106. patch -Np1 -i "${srcdir}/vfs-ino.patch"
  107.  
  108. # add BFQ scheduler
  109. patch -Np1 -i "${srcdir}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${_bfq}.patch"
  110. patch -Np1 -i "${srcdir}/0002-block-introduce-the-BFQ-${_bfq}-I-O-sched.patch"
  111. patch -Np1 -i "${srcdir}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${_bfq}.patch"
  112.  
  113. if [ "${CARCH}" = "x86_64" ]; then
  114. cat "${srcdir}/config.x86_64" > ./.config
  115. else
  116. cat "${srcdir}/config" > ./.config
  117. fi
  118.  
  119. cat "${srcdir}/config.aufs" >> ./.config
  120.  
  121. if [ "${_kernelname}" != "" ]; then
  122. sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
  123. sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
  124. fi
  125.  
  126. # set extraversion to pkgrel
  127. sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
  128.  
  129. # don't run depmod on 'make install'. We'll do this ourselves in packaging
  130. sed -i '2iexit 0' scripts/depmod.sh
  131.  
  132. # normally not needed
  133. make clean
  134.  
  135. # get kernel version
  136. make prepare
  137.  
  138. # load configuration
  139. # Configure the kernel. Replace the line below with one of your choice.
  140. make menuconfig # CLI menu for configuration
  141. #make nconfig # new CLI menu for configuration
  142. #make xconfig # X-based configuration
  143. #make oldconfig # using old config from previous kernel version
  144. # ... or manually edit .config
  145.  
  146. # rewrite configuration
  147. yes "" | make config >/dev/null
  148. }
  149.  
  150. build() {
  151. cd "${srcdir}/linux-${_basekernel}"
  152.  
  153. # build!
  154. make ${MAKEFLAGS} LOCALVERSION= bzImage modules
  155. }
  156.  
  157. package_linux41() {
  158. pkgdesc="The ${pkgbase/linux/Linux} kernel and modules"
  159. depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
  160. optdepends=('crda: to set the correct wireless channels of your country')
  161. provides=("linux=${pkgver}")
  162. install=${pkgname}.install
  163.  
  164. cd "${srcdir}/linux-${_basekernel}"
  165.  
  166. KARCH=x86
  167.  
  168. # get kernel version
  169. _kernver="$(make LOCALVERSION= kernelrelease)"
  170.  
  171. mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
  172. make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
  173. cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${_basekernel}-${CARCH}"
  174.  
  175. # add kernel version
  176. if [ "${CARCH}" = "x86_64" ]; then
  177. echo "${pkgver}-${pkgrel}-MANJARO x64" > "${pkgdir}/boot/${pkgbase}-${CARCH}.kver"
  178. else
  179. echo "${pkgver}-${pkgrel}-MANJARO x32" > "${pkgdir}/boot/${pkgbase}-${CARCH}.kver"
  180. fi
  181.  
  182. # set correct depmod command for install
  183. cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
  184. true && install=${install}.pkg
  185. sed \
  186. -e "s/RELEASE=.*/RELEASE=${pkgver}-${pkgrel}/g" \
  187. -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
  188. -e "s/KERNEL_BASE=.*/KERNEL_BASE=${_basekernel}/g" \
  189. -e "s/BASEVER=.*/BASEVER=${_basever}/g" \
  190. -e "s/ARCH=.*/ARCH=${CARCH}/g" \
  191. -i "${startdir}/${install}"
  192.  
  193. # install mkinitcpio preset file for kernel
  194. install -D -m644 "${srcdir}/${pkgname}.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
  195. sed \
  196. -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${_basekernel}-${CARCH}\"|g" \
  197. -e "s|default_image=.*|default_image=\"/boot/initramfs-${_basekernel}-${CARCH}.img\"|g" \
  198. -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${_basekernel}-${CARCH}-fallback.img\"|g" \
  199. -i "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
  200.  
  201. # remove build and source links
  202. rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
  203. # remove the firmware
  204. rm -rf "${pkgdir}/lib/firmware"
  205. # gzip -9 all modules to save 100MB of space
  206. find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
  207. # make room for external modules
  208. ln -s "../extramodules-${_basekernel}${_kernelname:--MANJARO}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
  209. # add real version for building modules and running depmod from post_install/upgrade
  210. mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--MANJARO}"
  211. echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--MANJARO}/version"
  212.  
  213. # Now we call depmod...
  214. depmod -b "${pkgdir}" -F System.map "${_kernver}"
  215.  
  216. # move module tree /lib -> /usr/lib
  217. mkdir -p "${pkgdir}/usr"
  218. mv "${pkgdir}/lib" "${pkgdir}/usr/"
  219.  
  220. # add vmlinux
  221. install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
  222. }
  223.  
  224. package_linux41-headers() {
  225. pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
  226. provides=("linux-headers=$pkgver")
  227.  
  228. install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
  229.  
  230. cd "${srcdir}/linux-${_basekernel}"
  231. install -D -m644 Makefile \
  232. "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
  233. install -D -m644 kernel/Makefile \
  234. "${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
  235. install -D -m644 .config \
  236. "${pkgdir}/usr/lib/modules/${_kernver}/build/.config"
  237.  
  238. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
  239.  
  240. for i in acpi asm-generic config crypto drm generated keys linux math-emu \
  241. media net pcmcia scsi sound trace uapi video xen; do
  242. cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
  243. done
  244.  
  245. # copy arch includes for external modules
  246. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86"
  247. cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/"
  248.  
  249. # copy files necessary for later builds, like nvidia and vmware
  250. cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
  251. cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"
  252.  
  253. # fix permissions on scripts dir
  254. chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
  255. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"
  256.  
  257. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"
  258.  
  259. cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
  260.  
  261. if [ "${CARCH}" = "i686" ]; then
  262. cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
  263. fi
  264.  
  265. cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
  266.  
  267. # add docbook makefile
  268. install -D -m644 Documentation/DocBook/Makefile \
  269. "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
  270.  
  271. # add dm headers
  272. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
  273. cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
  274.  
  275. # add inotify.h
  276. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
  277. cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"
  278.  
  279. # add wireless headers
  280. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
  281. cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
  282.  
  283. # add dvb headers for external modules
  284. # in reference to:
  285. # http://bugs.archlinux.org/task/9912
  286. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
  287. cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
  288. # and...
  289. # http://bugs.archlinux.org/task/11194
  290. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
  291. cp include/config/dvb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
  292.  
  293. # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
  294. # in reference to:
  295. # http://bugs.archlinux.org/task/13146
  296. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
  297. cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
  298. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
  299. cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
  300.  
  301. # add dvb headers
  302. # in reference to:
  303. # http://bugs.archlinux.org/task/20402
  304. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
  305. cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
  306. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
  307. cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
  308. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
  309. cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"
  310.  
  311. # add xfs and shmem for aufs building
  312. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/libxfs"
  313. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
  314. cp fs/xfs/libxfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/libxfs/xfs_sb.h"
  315.  
  316. # copy in Kconfig files
  317. for i in $(find . -name "Kconfig*"); do
  318. mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
  319. cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
  320. done
  321.  
  322. chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
  323. find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
  324.  
  325. # strip scripts directory
  326. find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
  327. case "$(file -bi "${binary}")" in
  328. *application/x-sharedlib*) # Libraries (.so)
  329. /usr/bin/strip ${STRIP_SHARED} "${binary}";;
  330. *application/x-archive*) # Libraries (.a)
  331. /usr/bin/strip ${STRIP_STATIC} "${binary}";;
  332. *application/x-executable*) # Binaries
  333. /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
  334. esac
  335. done
  336.  
  337. # remove unneeded architectures
  338. rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
  339. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement