Advertisement
Guest User

PKGBUILD

a guest
Sep 16th, 2014
490
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.39 KB | None | 0 0
  1. # Maintainer: WarheadsSE <[email protected]>
  2. # Maintainer: Kevin Mihelich <[email protected]>
  3. buildarch=4
  4. pkgbase=linux-sun4i
  5. _commit=e37d760b363888f3a65cd6455c99a75cac70a7b8
  6. _srcname=linux-sunxi-${_commit}
  7. _kernelname=${pkgname#linux}
  8. _desc="AllWinner A10"
  9. pkgver=3.4.90
  10. pkgrel=3
  11. arch=('armv7h')
  12. url="http://www.kernel.org/"
  13. license=('GPL2')
  14. makedepends=('xmlto' 'docbook-xsl' 'uboot-mkimage' 'bc' 'kmod' 'inetutils' 'git')
  15. options=('!strip')
  16. source=("https://github.com/linux-sunxi/linux-sunxi/archive/${_commit}.tar.gz")
  17. md5sums=('dbf73f4cb6b1399e73449f4e91bf5694')
  18. prepare() {
  19. cd "${srcdir}/${_srcname}"
  20. cat "${srcdir}/config" > ./.config
  21. patch -p1 < "${srcdir}/../usb_power_1.patch"
  22. patch -p1 < "${srcdir}/../usb_power_2.patch"
  23. # add pkgrel to extraversion
  24. sed -ri "s|^(EXTRAVERSION =)(.*)|\1 \2-${pkgrel}|" Makefile
  25. # don't run depmod on 'make install'. We'll do this ourselves in packaging
  26. sed -i '2iexit 0' scripts/depmod.sh
  27. }
  28. build() {
  29. cd "${srcdir}/${_srcname}"
  30. LDFLAGS=""
  31. # get kernel version
  32. make prepare
  33. # load configuration
  34. # Configure the kernel. Replace the line below with one of your choice.
  35. #make menuconfig # CLI menu for configuration
  36. #make nconfig # new CLI menu for configuration
  37. #make xconfig # X-based configuration
  38. #make oldconfig # using old config from previous kernel version
  39. # ... or manually edit .config
  40. # Copy back our configuration (use with new kernel version)
  41. #cp ./.config ../${pkgver}.config
  42. ####################
  43. # stop here
  44. # this is useful to configure the kernel
  45. #msg "Stopping build"
  46. #return 1
  47. ####################
  48. #yes "" | make config
  49. # build!
  50. make ${MAKEFLAGS} modules uImage
  51. }
  52. _package() {
  53. pkgdesc="The Linux Kernel and modules - ${_desc}"
  54. depends=('coreutils' 'linux-firmware' 'module-init-tools>=3.16')
  55. optdepends=('crda: to set the correct wireless channels of your country')
  56. provides=("kernel26" "linux=${pkgver}")
  57. conflicts=('kernel26' 'linux')
  58. install=${pkgname}.install
  59. cd "${srcdir}/${_srcname}"
  60. KARCH=arm
  61. # get kernel version
  62. _kernver="$(make kernelrelease)"
  63. mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
  64. make INSTALL_MOD_PATH="${pkgdir}" modules_install
  65. #cd arch/$KARCH/boot/
  66. cd "${srcdir}/${_srcname}"
  67. #cp arch/$KARCH/boot/kernel.img ${pkgdir}/boot/kernel.img
  68. cp arch/$KARCH/boot/uImage "${pkgdir}/boot/uImage"
  69. # set correct depmod command for install
  70. sed \
  71. -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
  72. -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
  73. -i "${startdir}/${pkgname}.install"
  74. # remove build and source links
  75. rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
  76. # remove the firmware
  77. rm -rf "${pkgdir}/lib/firmware"
  78. # gzip -9 all modules to save ~100MB of space
  79. find "${pkgdir}" -name '*.ko' |xargs -P 2 -n 1 gzip -9
  80. # make room for external modules
  81. ln -s "../extramodules-${pkgver}-${_kernelname:-ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
  82. # add real version for building modules and running depmod from post_install/upgrade
  83. mkdir -p "${pkgdir}/lib/modules/extramodules-${pkgver}-${_kernelname:-ARCH}"
  84. echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${pkgver}-${_kernelname:-ARCH}/version"
  85. # Now we call depmod...
  86. depmod -b "$pkgdir" -F System.map "$_kernver"
  87. # move module tree /lib -> /usr/lib
  88. mkdir -p "${pkgdir}/usr"
  89. mv "$pkgdir/lib" "$pkgdir/usr"
  90. }
  91. _package-headers() {
  92. pkgdesc="Header files and scripts for building modules for linux kernel - ${_desc}"
  93. provides=('kernel26-headers' "linux-headers=${pkgver}")
  94. conflicts=('kernel26-headers')
  95. replaces=('kernel26-headers')
  96. install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
  97. cd "${pkgdir}/usr/lib/modules/${_kernver}"
  98. ln -sf ../../../src/linux-${_kernver} build
  99. cd "${srcdir}/${_srcname}"
  100. install -D -m644 Makefile \
  101. "${pkgdir}/usr/src/linux-${_kernver}/Makefile"
  102. install -D -m644 kernel/Makefile \
  103. "${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile"
  104. install -D -m644 .config \
  105. "${pkgdir}/usr/src/linux-${_kernver}/.config"
  106. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include"
  107. for i in acpi asm-generic config crypto drm generated linux math-emu \
  108. media net pcmcia scsi sound trace video xen; do
  109. cp -a include/${i} "${pkgdir}/usr/src/linux-${_kernver}/include/"
  110. done
  111. # copy arch includes for external modules
  112. mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH
  113. cp -a arch/$KARCH/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
  114. mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/mach-sun4i
  115. cp -a arch/$KARCH/mach-sun4i/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/mach-sun4i/
  116. mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/plat-sunxi
  117. cp -a arch/$KARCH/plat-sunxi/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/plat-sunxi/
  118. # copy files necessary for later builds, like nvidia and vmware
  119. cp Module.symvers "${pkgdir}/usr/src/linux-${_kernver}"
  120. cp -a scripts "${pkgdir}/usr/src/linux-${_kernver}"
  121. # fix permissions on scripts dir
  122. chmod og-w -R "${pkgdir}/usr/src/linux-${_kernver}/scripts"
  123. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions"
  124. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel"
  125. cp arch/${KARCH}/Makefile "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
  126. if [ "${CARCH}" = "i686" ]; then
  127. cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
  128. fi
  129. cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel/"
  130. # add headers for lirc package
  131. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video"
  132. cp drivers/media/video/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/"
  133. for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102; do
  134. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
  135. cp -a drivers/media/video/${i}/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
  136. done
  137. # add docbook makefile
  138. install -D -m644 Documentation/DocBook/Makefile \
  139. "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile"
  140. # add dm headers
  141. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/md"
  142. cp drivers/md/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/md"
  143. # add inotify.h
  144. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/linux"
  145. cp include/linux/inotify.h "${pkgdir}/usr/src/linux-${_kernver}/include/linux/"
  146. # add wireless headers
  147. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/"
  148. cp net/mac80211/*.h "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/"
  149. # add dvb headers for external modules
  150. # in reference to:
  151. # http://bugs.archlinux.org/task/9912
  152. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core"
  153. cp drivers/media/dvb/dvb-core/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/"
  154. # and...
  155. # http://bugs.archlinux.org/task/11194
  156. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/"
  157. cp include/config/dvb/*.h "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/"
  158. # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
  159. # in reference to:
  160. # http://bugs.archlinux.org/task/13146
  161. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
  162. cp drivers/media/dvb/frontends/lgdt330x.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
  163. cp drivers/media/video/msp3400-driver.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
  164. # add dvb headers
  165. # in reference to:
  166. # http://bugs.archlinux.org/task/20402
  167. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb"
  168. cp drivers/media/dvb/dvb-usb/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/"
  169. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends"
  170. cp drivers/media/dvb/frontends/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
  171. mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners"
  172. cp drivers/media/common/tuners/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/"
  173.  
  174. # copy in Kconfig files
  175. for i in `find . -name "Kconfig*"`; do
  176. mkdir -p "${pkgdir}"/usr/src/linux-${_kernver}/`echo ${i} | sed 's|/Kconfig.*||'`
  177. cp ${i} "${pkgdir}/usr/src/linux-${_kernver}/${i}"
  178. done
  179.  
  180. chown -R root.root "${pkgdir}/usr/src/linux-${_kernver}"
  181. find "${pkgdir}/usr/src/linux-${_kernver}" -type d -exec chmod 755 {} \;
  182.  
  183. # strip scripts directory
  184. find "${pkgdir}/usr/src/linux-${_kernver}/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
  185. case "$(file -bi "${binary}")" in
  186. *application/x-sharedlib*) # Libraries (.so)
  187. /usr/bin/strip ${STRIP_SHARED} "${binary}";;
  188. *application/x-archive*) # Libraries (.a)
  189. /usr/bin/strip ${STRIP_STATIC} "${binary}";;
  190. *application/x-executable*) # Binaries
  191. /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
  192. esac
  193. done
  194.  
  195. # remove unneeded architectures
  196. rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,x86,xtensa}
  197. }
  198.  
  199. pkgname=("${pkgbase}" "${pkgbase}-headers")
  200. for _p in ${pkgname[@]}; do
  201. eval "package_${_p}() {
  202. _package${_p#${pkgbase}}
  203. }"
  204. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement