Advertisement
Guest User

PKGBUILD

a guest
Aug 6th, 2010
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.62 KB | None | 0 0
  1. # $Id: PKGBUILD 86792 2010-08-04 14:39:45Z thomas $ ## 2.6.34.2-2
  2. # Maintainer: ?
  3. ###
  4.  
  5. ### pkg variables, etc...
  6. # pkgbase="kernel26"
  7. # pkgname=('kernel26' 'kernel26-headers' 'kernel26-manpages' 'kernel26-docs') # Build stock -ARCH kernel
  8. pkgext=-nx6310
  9. pkgname=kernel26$pkgext # Build kernel with a different name
  10. _kernelname=${pkgname#kernel26}
  11. _basekernel=2.6.34
  12. nxver=$_basekernel$pkgext
  13. pkgver=${_basekernel}.2
  14. pkgrel=2
  15. makedepends=('xmlto' 'docbook-xsl')
  16. _patchname="patch-${pkgver}-${pkgrel}-ARCH"
  17. arch=(i686)
  18. license=('GPL2')
  19. url="http://www.kernel.org"
  20. ###
  21.  
  22. ### User/Environment defined variables
  23. toi_patchset=${toi_patchset:-0}
  24. bfs_scheduler=${bfs_scheduler:-0}
  25. use_config_gz=${use_config_gz:-0}
  26. ###
  27.  
  28. ### Files/Versions
  29. file_toi="tuxonice-3.1.1.1-for-2.6.34.patch.bz2"
  30. file_bfs="2.6.34-sched-bfs-318.patch"
  31. ###
  32.  
  33. ### Package sources -- #### $pkgver instead of $_basekernel
  34. source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$pkgver.tar.bz2
  35. ftp://ftp.archlinux.org/other/kernel26/${_patchname}.bz2
  36. config
  37. http://www.tuxonice.net/downloads/all/${file_toi}
  38. http://ck.kolivas.org/patches/bfs/${file_bfs}
  39. $pkgname.install
  40. $pkgname.preset
  41. mkinitcpio-$pkgname.conf)
  42. ###
  43.  
  44. ### md5 list
  45. md5sums=('bccca90a4bfd74b1335012e78d433cd5'
  46. '2a8f0f455395296a1678b226ae63c5a7'
  47. 'e1e2ac8b88618549c0a7d2aa6b51f84d'
  48. 'd1bd3ba8d10ae891395e34bc7dbb8479'
  49. 'e47d527b10d799281211e6ac677edf3c'
  50. 'b7c1b7ffe1f57810f7b8b1db27ff9f8a'
  51. '50d5b832eaed72a497ba416e1dcac7ef'
  52. '6dd77178c89de50e63528f1c358a6cb2')
  53. ###
  54.  
  55. build() {
  56. cd ${srcdir}/linux-$pkgver
  57.  
  58. ## load kernel config
  59. cat ../config >./.config
  60. ##
  61.  
  62. ## Adding -ARCH patches - See http://projects.archlinux.org/linux-2.6-ARCH.git/
  63. # patch -Np1 -i ${srcdir}/${_patchname} || return 1
  64. ##
  65.  
  66. ## Adding a tuxonice patch
  67. if [ "$toi_patchset" = "1" ]; then
  68. bzip2 -dck ${srcdir}/${file_toi} \
  69. | sed 's/printk(KERN_INFO "PM: Creating hibernation image:\\n/printk(KERN_INFO "PM: Creating hibernation image: \\n/' \
  70. | patch -Np1 -F4 || return 1
  71. fi
  72. ##
  73.  
  74. ## Adding a Brain Fuck Scheduler patch
  75. if [ "$bfs_scheduler" = "1" ]; then
  76. # applying BFS scheduler patch
  77. echo "Applying BFS scheduler patch"
  78. ## Delete the Makefile changes that break patching.
  79. sed '/Index: linux-2.6.32-ck1\/Makefile/,/To see a list of typical targets execute "make help"/d' \
  80. ${srcdir}/${file_bfs} | patch -Np1 || return 1
  81. fi
  82. ##
  83.  
  84. ## Use existing config.gz
  85. if [ "$use_config_gz" = "1" ]; then
  86. zcat /proc/config.gz > ./.config
  87. make oldconfig
  88. fi
  89. ##
  90.  
  91. ## A hack to prevent output kernel from being marked as dirty or git
  92. sed 's/head=$(git rev-parse --verify --short HEAD 2>\/dev\/null)/0/' \
  93. ${srcdir}/linux-$pkgver/scripts/setlocalversion \
  94. > ${srcdir}/linux-$pkgver/scripts/setlocalversion
  95. ##
  96.  
  97. ## uname-r part:
  98. if [ "${_kernelname}" != "" ]; then
  99. sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
  100. fi
  101. ##
  102.  
  103. make prepare
  104.  
  105. # load configuration
  106. # Configure the kernel. Replace the line below with one of your choice.
  107. #make menuconfig # CLI menu for configuration
  108. #make xconfig # X-based configuration
  109. #make oldconfig # using old config from previous kernel version
  110. # ... or manually edit .config
  111. ####################
  112. # stop here
  113. # this is useful to configure the kernel
  114. #msg "Stopping build"
  115. #return 1
  116. ####################
  117. # yes "" | make oldconfig ## before: yes "" | make config
  118. # build!
  119. make bzImage modules || return 1
  120. }
  121.  
  122. package_kernel26-nx6310() {
  123. pkgdesc="The Linux Kernel and modules for nx6310 (ey588es)"
  124. groups=('base')
  125. backup=(etc/mkinitcpio.d/$pkgname.preset)
  126. depends=('coreutils' 'linux-firmware' 'module-init-tools' 'mkinitcpio>=0.5.20')
  127. replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'
  128. 'alsa-driver' 'ieee80211' 'hostap-driver26'
  129. 'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv'
  130. 'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs'
  131. 'gspcav1' 'atl2' 'wlan-ng26' 'rt2500' 'nouveau-drm')
  132. install=$pkgname.install
  133. optdepends=('crda: to set the correct wireless channels of your country')
  134.  
  135. ################## DEBUG PART ##########################
  136. KARCH=x86
  137. cd ${srcdir}/linux-$pkgver
  138. ## get kernel version
  139. mkdir -p $pkgdir/{lib/modules,boot}
  140. make INSTALL_MOD_PATH=$pkgdir modules_install || return 1
  141. install -D -m644 System.map $pkgdir/boot/System.map26$pkgext
  142. install -D -m644 arch/$KARCH/boot/bzImage $pkgdir/boot/vmlinuz26$pkgext
  143. install -D -m644 Makefile $pkgdir/usr/src/linux-$nxver/Makefile
  144. install -D -m644 kernel/Makefile $pkgdir/usr/src/linux-$nxver/kernel/Makefile
  145. install -D -m644 .config $pkgdir/usr/src/linux-$nxver/.config
  146. install -D -m644 .config $pkgdir/boot/kconfig26$pkgext
  147. mkdir -p $pkgdir/usr/src/linux-$nxver/include
  148.  
  149. for i in acpi asm-generic config generated linux math-emu media net pcmcia scsi sound trace video; do
  150. cp -a include/$i $pkgdir/usr/src/linux-$nxver/include/
  151. done
  152.  
  153. # copy arch includes for external modules
  154. mkdir -p $pkgdir/usr/src/linux-$nxver/arch/$KARCH
  155. cp -a arch/$KARCH/include $pkgdir/usr/src/linux-$nxver/arch/$KARCH/
  156.  
  157. # copy files necessary for later builds, like nvidia and vmware MAYBE UNNECESSARY!!!!!!!!!!<================
  158. cp Module.symvers $pkgdir/usr/src/linux-$nxver
  159. cp -a scripts $pkgdir/usr/src/linux-$nxver
  160.  
  161. # fix permissions on scripts dir
  162. chmod og-w -R $pkgdir/usr/src/linux-$nxver/scripts
  163.  
  164. mkdir -p $pkgdir/usr/src/linux-$nxver/arch/$KARCH/kernel
  165.  
  166. cp arch/$KARCH/Makefile $pkgdir/usr/src/linux-$nxver/arch/$KARCH/
  167. if [ "${CARCH}" = "i686" ]; then
  168. cp arch/$KARCH/Makefile_32.cpu $pkgdir/usr/src/linux-$nxver/arch/$KARCH/
  169. fi
  170. cp arch/$KARCH/kernel/asm-offsets.s $pkgdir/usr/src/linux-$nxver/arch/$KARCH/kernel/
  171.  
  172. # add headers for lirc package
  173. mkdir -p $pkgdir/usr/src/linux-$nxver/drivers/media/video
  174. cp drivers/media/video/*.h $pkgdir/usr/src/linux-$nxver/drivers/media/video/
  175. for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo zc0301
  176. do
  177. mkdir -p $pkgdir/usr/src/linux-$nxver/drivers/media/video/$i
  178. cp -a drivers/media/video/$i/*.h $pkgdir/usr/src/linux-$nxver/drivers/media/video/$i
  179. done
  180.  
  181. # add dm headers
  182. mkdir -p $pkgdir/usr/src/linux-$nxver/drivers/md
  183. cp drivers/md/*.h $pkgdir/usr/src/linux-$nxver/drivers/md
  184.  
  185. # add inotify.h
  186. mkdir -p $pkgdir/usr/src/linux-$nxver/include/linux
  187. cp include/linux/inotify.h $pkgdir/usr/src/linux-$nxver/include/linux/
  188.  
  189. # add CLUSTERIP file for iptables
  190. mkdir -p $pkgdir/usr/src/linux-$nxver/net/ipv4/netfilter/
  191. cp net/ipv4/netfilter/ipt_CLUSTERIP.c $pkgdir/usr/src/linux-$nxver/net/ipv4/netfilter/
  192.  
  193. # add wireless headers
  194. mkdir -p $pkgdir/usr/src/linux-$nxver/net/mac80211/
  195. cp net/mac80211/*.h $pkgdir/usr/src/linux-$nxver/net/mac80211/
  196.  
  197. # add xfs and shmem for aufs building
  198. mkdir -p $pkgdir/usr/src/linux-$nxver/fs/xfs
  199. mkdir -p $pkgdir/usr/src/linux-$nxver/mm
  200. cp fs/xfs/xfs_sb.h $pkgdir/usr/src/linux-$nxver/fs/xfs/xfs_sb.h
  201. cp mm/shmem.c $pkgdir/usr/src/linux-$nxver/mm/shmem.c
  202.  
  203. # add vmlinux
  204. cp vmlinux $pkgdir/usr/src/linux-$nxver
  205.  
  206. # copy in Kconfig files
  207. for i in $(find . -name "Kconfig*")
  208. do
  209. mkdir -p $pkgdir/usr/src/linux-$nxver/$(echo $i | sed 's|/Kconfig.*||')
  210. cp $i $pkgdir/usr/src/linux-$nxver/$i
  211. done
  212.  
  213. chown -R root.root $pkgdir/usr/src/linux-$nxver
  214. find $pkgdir/usr/src/linux-$nxver -type d -exec chmod 755 {} \;
  215. cd $pkgdir/lib/modules/$pkgver$pkgext && (rm -f source build; ########## SOME CRAP HERE
  216. ln -sf ../../../usr/src/linux-$nxver build)
  217.  
  218. # install fallback mkinitcpio.conf file and preset file for kernel
  219. install -m644 -D ${srcdir}/$pkgname.preset $pkgdir/etc/mkinitcpio.d/${pkgname}.preset || return 1
  220. install -m644 -D ${srcdir}/mkinitcpio-$pkgname.conf $pkgdir/etc/mkinitcpio.d/$pkgname-fallback.conf || return 1
  221.  
  222. # set correct depmod command for install
  223. sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=$nxver/g" $startdir/$pkgname.install
  224. echo -e "# DO NOT EDIT THIS FILE\nALL_kver='$nxver'" > $pkgdir/etc/mkinitcpio.d/$pkgname.kver
  225.  
  226. # remove unneeded architectures
  227. rm -rf $pkgdir/usr/src/linux-$nxver/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
  228.  
  229. # Delete firmware directory
  230. rm -rf $pkgdir/lib/firmware
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement