Advertisement
Guest User

pkgbuild 3.14 acs v2

a guest
Apr 11th, 2014
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.45 KB | None | 0 0
  1. pkgbase=linux-mainline
  2. _srcname=linux-3.14
  3. pkgver=3.14
  4. pkgrel=2
  5. arch=('i686' 'x86_64')
  6. url="http://www.kernel.org/"
  7. license=('GPL2')
  8. makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
  9. options=('!strip')
  10. source=("https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
  11. #"https://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz"
  12. # the main kernel config files
  13. 'config' 'config.x86_64'
  14. # standard config files for mkinitcpio ramdisk
  15. 'linux.preset'
  16. 'change-default-console-loglevel.patch'
  17. '0001-Bluetooth-allocate-static-minor-for-vhci.patch'
  18. '0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch'
  19. '0003-module-remove-MODULE_GENERIC_TABLE.patch'
  20. '0004-Revert-syscalls.h-use-gcc-alias-instead-of-assembler.patch'
  21. 'http://repo-ck.com/source/gcc_patch/enable_additional_cpu_optimizations_for_gcc.patch.gz'
  22. 'radeon_load_vbios_from_file.patch'
  23. 'acs.patch'
  24. 'i915_314.patch'
  25. 'debug_registers.patch'
  26. )
  27. _kernelname=${pkgbase#linux}
  28.  
  29. prepare() {
  30. cd "${srcdir}/${_srcname}"
  31.  
  32. # add upstream patch
  33. #patch -p1 -i "${srcdir}/patch-${pkgver}"
  34.  
  35. # add latest fixes from stable queue, if needed
  36. # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
  37.  
  38. # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
  39. # remove this when a Kconfig knob is made available by upstream
  40. # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
  41. patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
  42.  
  43. # Fix vhci warning in kmod (to restore every kernel maintainer's sanity)
  44. patch -p1 -i "${srcdir}/0001-Bluetooth-allocate-static-minor-for-vhci.patch"
  45.  
  46. # Fix atkbd aliases
  47. patch -p1 -i "${srcdir}/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch"
  48. patch -p1 -i "${srcdir}/0003-module-remove-MODULE_GENERIC_TABLE.patch"
  49.  
  50. # Fix symbols: Revert http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=83460ec8dcac14142e7860a01fa59c267ac4657c
  51. # For details, see https://lkml.org/lkml/2014/1/26/22
  52. patch -p1 -i "${srcdir}/0004-Revert-syscalls.h-use-gcc-alias-instead-of-assembler.patch"
  53.  
  54. # Radeon load vbios from file
  55. patch -p1 -i "${srcdir}/radeon_load_vbios_from_file.patch"
  56.  
  57. # Overrides for missing acs capabilities
  58. patch -p1 -i "${srcdir}/acs.patch"
  59.  
  60. # patches for vga arbiter fix in intel systems
  61. patch -Np1 -i "${srcdir}/i915_314.patch"
  62.  
  63. # debug registers patch
  64. patch -Np1 -i "${srcdir}/debug_registers.patch"
  65.  
  66. zcat ${srcdir}/enable_additional_cpu_optimizations_for_gcc.patch.gz | patch -Np1
  67.  
  68. if [ "${CARCH}" = "x86_64" ]; then
  69. cat "${srcdir}/config.x86_64" > ./.config
  70. else
  71. cat "${srcdir}/config" > ./.config
  72. fi
  73.  
  74. if [ "${_kernelname}" != "" ]; then
  75. sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
  76. sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
  77. fi
  78.  
  79. # set extraversion to pkgrel
  80. sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
  81.  
  82. # don't run depmod on 'make install'. We'll do this ourselves in packaging
  83. sed -i '2iexit 0' scripts/depmod.sh
  84.  
  85. # get kernel version
  86. # make prepare
  87.  
  88. # load configuration
  89. # Configure the kernel. Replace the line below with one of your choice.
  90. make menuconfig # CLI menu for configuration
  91. #make nconfig # new CLI menu for configuration
  92. #make xconfig # X-based configuration
  93. #make oldconfig # using old config from previous kernel version
  94. # ... or manually edit .config
  95.  
  96. # rewrite configuration
  97. yes "" | make config >/dev/null
  98. }
  99.  
  100. build() {
  101. cd "${srcdir}/${_srcname}"
  102.  
  103. make ${MAKEFLAGS} LOCALVERSION= bzImage modules
  104. }
  105.  
  106. _package() {
  107. pkgdesc="The ${pkgbase/linux/Linux} kernel and modules"
  108. [ "${pkgbase}" = "linux" ] && groups=('base')
  109. depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
  110. optdepends=('crda: to set the correct wireless channels of your country')
  111. provides=("kernel26${_kernelname}=${pkgver}")
  112. conflicts=("kernel26${_kernelname}")
  113. replaces=("kernel26${_kernelname}")
  114. backup=("etc/mkinitcpio.d/${pkgbase}.preset")
  115. install=linux.install
  116.  
  117. cd "${srcdir}/${_srcname}"
  118.  
  119. KARCH=x86
  120.  
  121. # get kernel version
  122. _kernver="$(make LOCALVERSION= kernelrelease)"
  123. _basekernel=${_kernver%%-*}
  124. _basekernel=${_basekernel%.*}
  125.  
  126. mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
  127. make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
  128. cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
  129.  
  130. # set correct depmod command for install
  131. cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
  132. true && install=${install}.pkg
  133. sed \
  134. -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \
  135. -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \
  136. -i "${startdir}/${install}"
  137.  
  138. # install mkinitcpio preset file for kernel
  139. install -D -m644 "${srcdir}/linux.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
  140. sed \
  141. -e "1s|'linux.*'|'${pkgbase}'|" \
  142. -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgbase}\"|" \
  143. -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgbase}.img\"|" \
  144. -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \
  145. -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
  146.  
  147. # remove build and source links
  148. rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
  149. # remove the firmware
  150. rm -rf "${pkgdir}/lib/firmware"
  151. # gzip -9 all modules to save 100MB of space
  152. find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
  153. # make room for external modules
  154. ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
  155. # add real version for building modules and running depmod from post_install/upgrade
  156. mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
  157. echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
  158.  
  159. # Now we call depmod...
  160. depmod -b "${pkgdir}" -F System.map "${_kernver}"
  161.  
  162. # move module tree /lib -> /usr/lib
  163. mkdir -p "${pkgdir}/usr"
  164. mv "${pkgdir}/lib" "${pkgdir}/usr/"
  165.  
  166. # add vmlinux
  167. install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
  168. }
  169.  
  170. _package-headers() {
  171. pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
  172. provides=("kernel26${_kernelname}-headers=${pkgver}")
  173. conflicts=("kernel26${_kernelname}-headers")
  174. replaces=("kernel26${_kernelname}-headers")
  175.  
  176. install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
  177.  
  178. cd "${srcdir}/${_srcname}"
  179. install -D -m644 Makefile \
  180. "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
  181. install -D -m644 kernel/Makefile \
  182. "${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
  183. install -D -m644 .config \
  184. "${pkgdir}/usr/lib/modules/${_kernver}/build/.config"
  185.  
  186. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
  187.  
  188. for i in acpi asm-generic config crypto drm generated keys linux math-emu \
  189. media net pcmcia scsi sound trace uapi video xen; do
  190. cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
  191. done
  192.  
  193. # copy arch includes for external modules
  194. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86"
  195. cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/"
  196.  
  197. # copy files necessary for later builds, like nvidia and vmware
  198. cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
  199. cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"
  200.  
  201. # fix permissions on scripts dir
  202. chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
  203. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"
  204.  
  205. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"
  206.  
  207. cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
  208.  
  209. if [ "${CARCH}" = "i686" ]; then
  210. cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
  211. fi
  212.  
  213. cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
  214.  
  215. # add docbook makefile
  216. install -D -m644 Documentation/DocBook/Makefile \
  217. "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
  218.  
  219. # add dm headers
  220. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
  221. cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
  222.  
  223. # add inotify.h
  224. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
  225. cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"
  226.  
  227. # add wireless headers
  228. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
  229. cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
  230.  
  231. # add dvb headers for external modules
  232. # in reference to:
  233. # http://bugs.archlinux.org/task/9912
  234. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
  235. cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
  236. # and...
  237. # http://bugs.archlinux.org/task/11194
  238. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
  239. cp include/config/dvb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
  240.  
  241. # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
  242. # in reference to:
  243. # http://bugs.archlinux.org/task/13146
  244. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
  245. cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
  246. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
  247. cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
  248.  
  249. # add dvb headers
  250. # in reference to:
  251. # http://bugs.archlinux.org/task/20402
  252. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
  253. cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
  254. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
  255. cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
  256. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
  257. cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"
  258.  
  259. # add xfs and shmem for aufs building
  260. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
  261. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
  262. cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"
  263.  
  264. # copy in Kconfig files
  265. for i in $(find . -name "Kconfig*"); do
  266. mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
  267. cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
  268. done
  269.  
  270. chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
  271. find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
  272.  
  273. # strip scripts directory
  274. find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
  275. case "$(file -bi "${binary}")" in
  276. *application/x-sharedlib*) # Libraries (.so)
  277. /usr/bin/strip ${STRIP_SHARED} "${binary}";;
  278. *application/x-archive*) # Libraries (.a)
  279. /usr/bin/strip ${STRIP_STATIC} "${binary}";;
  280. *application/x-executable*) # Binaries
  281. /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
  282. esac
  283. done
  284.  
  285. # remove unneeded architectures
  286. 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}
  287. }
  288.  
  289. _package-docs() {
  290. pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
  291. provides=("kernel26${_kernelname}-docs=${pkgver}")
  292. conflicts=("kernel26${_kernelname}-docs")
  293. replaces=("kernel26${_kernelname}-docs")
  294.  
  295. cd "${srcdir}/${_srcname}"
  296.  
  297. mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build"
  298. cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build"
  299. find "${pkgdir}" -type f -exec chmod 444 {} \;
  300. find "${pkgdir}" -type d -exec chmod 755 {} \;
  301.  
  302. # remove a file already in linux package
  303. rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
  304. }
  305.  
  306. pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
  307. for _p in ${pkgname[@]}; do
  308. eval "package_${_p}() {
  309. _package${_p#${pkgbase}}
  310. }"
  311. done
  312.  
  313. md5sums=('b621207b3f6ecbb67db18b13258f8ea8'
  314. '3f8e5a09f217f93f9af5c289a7e79a30'
  315. 'acff9a97a1cc32b139f94d5e5cefa204'
  316. 'eb14dcfd80c00852ef81ded6e826826a'
  317. '98beb36f9b8cf16e58de2483ea9985e3'
  318. '08d82ddb0b7254cdeae0165efa1ec2f8'
  319. '188dddc5b1ff2a51408661f35aa4c569'
  320. '734bb715130713e0b7d6c059dfa7d569'
  321. '8a75792f04edef9fcd9d810a39dfabe0'
  322. '2e88eb298910bc386297edf147cb5384'
  323. '8cb409c5f761385f87330308c88eeb92'
  324. '4dd3e03ab38e6cb9ad8e1cfbfa40a6e1'
  325. '84989f4f4036814189fde35f23723ad6'
  326. 'b06c91c6a662994bd0889caea64a9bf2')
  327.  
  328. # vim:set ts=8 sts=2 sw=2 et:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement