updated on Sat Jan 21 16:18:39 UTC 2012
[aur-mirror.git] / linux-fedora / PKGBUILD
blob15f5309cb39b39087b4747fe110096bdedb356fa
1 # Maintainer: 
2 # Maintainer:
4 pkgbase="linux-fedora"
5  pkgname=linux-fedora       # Build kernel with a different name
6 _kernelname=${pkgname#linux}
7 _basekernel=3.1.6
8 pkgver=${_basekernel}
9 pkgrel=1
10 makedepends=('xmlto' 'docbook-xsl')
11 arch=(i686 x86_64)
12 license=('GPL2')
13 url="http://www.kernel.org"
14 options=(!strip)
15 source=(ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-${pkgver}.tar.bz2
16         # the main kernel config files
17         config-i386 config.x86_64
18         # standard config files for mkinitcpio ramdisk
19         linux.preset
20         linux-2.6-makefile-after_link.patch
21         taint-vbox.patch
22         linux-2.6-32bit-mmap-exec-randomization.patch
23         linux-2.6-i386-nx-emulation.patch
24         linux-2.6-defaults-aspm.patch
26         linux-2.6-defaults-acpi-video.patch
27         linux-2.6-acpi-video-dos.patch
28         linux-2.6-acpi-debug-infinite-loop.patch
29         acpi-ensure-thermal-limits-match-cpu-freq.patch
30         acpi-sony-nonvs-blacklist.patch
31         linux-2.6-input-kill-stupid-messages.patch
32         linux-2.6.30-no-pcspkr-modalias.patch
33         linux-2.6-serial-460800.patch
34         die-floppy-die.patch
35         floppy-Remove-_hlt-related-functions.patch
36         linux-2.6-silence-noise.patch
37         quite-apm.patch
38         linux-2.6-silence-fbcon-logo.patch
39         drm-i915-sdvo-lvds-is-digital.patch
40         linux-2.6-intel-iommu-igfx.patch
41         linux-2.6-silence-acpi-blacklist.patch
42         disable-i8042-check-on-apple-mac.patch
43         block-stray-block-put-after-teardown.patch
44         dmar-disable-when-ricoh-multifunction.patch
45         revert-efi-rtclock.patch
46         efi-dont-map-boot-services-on-32bit.patch
47         utrace.patch
48         arm-omap-dt-compat.patch
49         arm-smsc-support-reading-mac-address-from-device-tree.patch
50         oom-fix-integer-overflow-of-points.patch
51         sysfs-msi-irq-per-device.patch
52         pci-Rework-ASPM-disable-code.patch
53         nfsv4-include-bitmap-in-nfsv4_get_acl_data.patch)
55 md5sums=('7b211c1896809658584457ece4542f7e'
56          'fc6aae0fb4d70feff92ec762d29dee45'
57          'a1d95fb1a7ec9d7ae76cff222a9e8fd5'
58          '7cc9c4fbbdf9c5f5921aa4a3e582bf53'
59          '012de79081ed3c3f280702a78f6d4982'
60          '822ee1704afed349368eeb000a7e266b'
61          'ed5a162f25836676f1ebd088d3d1044c'
62          '94b2054dd1168fddf01de3d99b4003aa'
63          'e7b0133bfd9cd2bdf4ca3c231585ea73'
64          '731ff804d9dde997c1ffd98e2355bc2d'
65          '96bd5bb046edb6de1f713e72fe8c6346'
66          '29d0aa1d221d842b6a57bf65db411e05'
67          '5abb70bd082a4e7e239c2f3272b40015'
68          '9e4cfb6d73efde3c891882aa2209d26f'
69          '10b7b35635f787cb5596aed2206c9187'
70          'd0bb7577944432e6f98bb53615da8b34'
71          '840c57e74a3e43009396d986f3fb6902'
72          '0d5ef2e9201c71ed8f4ff85a981b93dc'
73          '3a986312d06246adce0df172543e0c42'
74          '5d1ccda093c0496bb329e3315b113351'
75          'fb9a1d546f0cc373b7a70d34137cf397'
76          '13fa4b7b4f5cfaba0c39f3780b3835d0'
77          '8b6da295f65dc83295b16aa648fe1a3e'
78          '6b8c1a38653795265c31072be4ef9b02'
79          '529a3da98d3fd021c6fb949301c98eee'
80          'b5541dd0d354884dd1ff79d7ad7661f4'
81          '45277084cbe617daa3101d1b7ab270c5'
82          '93e63afd37c2726d14acce2727d84f17'
83          'f15807e741aa45bb2760982e36e6b430'
84          'c0cd97255f54e2f6ecf96f53f8cfdfe6'
85          'ae32878b437a49cfe37abe56fa6c20f0'
86          '964c902f0d3131db0f7f3bfd6ae4c9eb'
87          '945595e62cfb645eb9b871bd0aac1b90'
88          'b325b7e1245e2801332cd85de75e1400'
89          '02ed1ea7c7f23161b3e2d39955fa7e07'
90          'a9f1f67f0ced1269a3774880dbb49ba1'
91          'fefd8519e9eaabe2799e8d8b694eb2fb')
93 build() {
94   cd ${srcdir}/linux-${pkgver}
96   # Add -ARCH patches
97   #patch -Np1 -i ${srcdir}/${_patchname}
99   # build tweak for build ID magic, even for -vanilla
100   patch -Np1 -i ${srcdir}/linux-2.6-makefile-after_link.patch
101   patch -Np1 -i ${srcdir}/taint-vbox.patch
102   patch -Np1 -i ${srcdir}/linux-2.6-32bit-mmap-exec-randomization.patch
103   patch -Np1 -i ${srcdir}/linux-2.6-i386-nx-emulation.patch
104   patch -Np1 -i ${srcdir}/linux-2.6-defaults-aspm.patch
105   patch -Np1 -i ${srcdir}/linux-2.6-defaults-acpi-video.patch
106   patch -Np1 -i ${srcdir}/linux-2.6-acpi-video-dos.patch
107   patch -Np1 -i ${srcdir}/linux-2.6-acpi-debug-infinite-loop.patch
108   patch -Np1 -i ${srcdir}/acpi-ensure-thermal-limits-match-cpu-freq.patch
109   patch -Np1 -i ${srcdir}/acpi-sony-nonvs-blacklist.patch
110   patch -Np1 -i ${srcdir}/linux-2.6-input-kill-stupid-messages.patch
111   patch -Np1 -i ${srcdir}/linux-2.6.30-no-pcspkr-modalias.patch
112   patch -Np1 -i ${srcdir}/linux-2.6-serial-460800.patch
113   patch -Np1 -i ${srcdir}/die-floppy-die.patch
114   patch -Np1 -i ${srcdir}/floppy-Remove-_hlt-related-functions.patch
115   patch -Np1 -i ${srcdir}/linux-2.6-silence-noise.patch
116   patch -Np1 -i ${srcdir}/quite-apm.patch
117   patch -Np1 -i ${srcdir}/linux-2.6-silence-fbcon-logo.patch
118   
119   # rhbz#729882, https://bugs.freedesktop.org/attachment.cgi?id=49069
120   patch -Np1 -i ${srcdir}/drm-i915-sdvo-lvds-is-digital.patch
121   patch -Np1 -i ${srcdir}/linux-2.6-intel-iommu-igfx.patch
123   # Quiet boot fixes
124   # silence the ACPI blacklist code
125   patch -Np1 -i ${srcdir}/linux-2.6-silence-acpi-blacklist.patch
127   # media patches
128   # fs fixes
129   # NFSv4
131   # patches headed upstream
132   patch -Np1 -i ${srcdir}/disable-i8042-check-on-apple-mac.patch
133   patch -Np1 -i ${srcdir}/block-stray-block-put-after-teardown.patch
134   patch -Np1 -i ${srcdir}/dmar-disable-when-ricoh-multifunction.patch
135   patch -Np1 -i ${srcdir}/revert-efi-rtclock.patch
136   patch -Np1 -i ${srcdir}/efi-dont-map-boot-services-on-32bit.patch
137   patch -Np1 -i ${srcdir}/utrace.patch
139   # Flattened devicetree support
140   patch -Np1 -i ${srcdir}/arm-omap-dt-compat.patch
141   patch -Np1 -i ${srcdir}/arm-smsc-support-reading-mac-address-from-device-tree.patch
142   patch -Np1 -i ${srcdir}/oom-fix-integer-overflow-of-points.patch
143   patch -Np1 -i ${srcdir}/sysfs-msi-irq-per-device.patch
144   patch -Np1 -i ${srcdir}/pci-Rework-ASPM-disable-code.patch
146   #rhbz 753236
147   patch -Np1 -i ${srcdir}/nfsv4-include-bitmap-in-nfsv4_get_acl_data.patch
149   echo "patching ...done"
151   if [ "$CARCH" = "x86_64" ]; then
152     cat ../config.x86_64 >./.config
153   else
154     cat ../config >./.config
155   fi
156   if [ "${_kernelname}" != "" ]; then
157     sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
158   fi
159   # get kernel version  
160   make prepare
161   # load configuration
162   # Configure the kernel. Replace the line below with one of your choice.
163   #make menuconfig # CLI menu for configuration
164   #make nconfig # new CLI menu for configuration
165   #make xconfig # X-based configuration
166   #make oldconfig # using old config from previous kernel version
167   # ... or manually edit .config
168   ####################
169   # stop here
170   # this is useful to configure the kernel
171   #msg "Stopping build"
172   #return 1
173   ####################
174   yes "" | make config
175   # build!
176   make ${MAKEFLAGS} bzImage modules
179 package() {
180   pkgdesc="The Linux Kernel plus Fedora patches, modules and headers with debug enabled for systemtap"
181   groups=('base')
182   backup=(etc/mkinitcpio.d/${pkgname}.preset)
183   depends=('coreutils' 'linux-firmware' 'module-init-tools>=3.12-2' 'mkinitcpio>=0.6.8-2')
184   # pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now
185   # nforce package support was abandoned by nvidia, kernel modules should cover everything now.
186   # kernel24 support is dropped since glibc24
187   replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'
188             'alsa-driver' 'ieee80211' 'hostap-driver26'
189             'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv'
190             'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs'
191             'gspcav1' 'atl2' 'wlan-ng26' 'rt2500' 'nouveau-drm')
192   install=linux.install
193   optdepends=('crda: to set the correct wireless channels of your country')
195   KARCH=x86
196   cd ${srcdir}/linux-${pkgver}
197   # get kernel version
198   _kernver="$(make kernelrelease)"
199   mkdir -p ${pkgdir}/{lib/modules,lib/firmware,boot}
200   make INSTALL_MOD_PATH=${pkgdir} modules_install
201   cp System.map ${pkgdir}/boot/System.map${_kernelname}
202   cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz${_kernelname}
203   #  # add vmlinux
204   install -m644 -D vmlinux ${pkgdir}/usr/src/linux-${_kernver}/vmlinux
206   # install fallback mkinitcpio.conf file and preset file for kernel
207   install -m644 -D ${srcdir}/linux.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset
208   # set correct depmod command for install
209   sed \
210     -e  "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
211     -e  "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
212     -i $startdir/linux.install
213   sed \
214     -e "s|source .*|source /etc/mkinitcpio.d/linux${_kernelname}.kver|g" \
215     -e "s|default_image=.*|default_image=\"/boot/${pkgname}.img\"|g" \
216     -e "s|fallback_image=.*|fallback_image=\"/boot/${pkgname}-fallback.img\"|g" \
217     -i ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset
219   echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${pkgdir}/etc/mkinitcpio.d/${pkgname}.kver
220   # remove the firmware
221   rm -rf ${pkgdir}/lib/firmware
222   # gzip -9 all modules to safe 100MB of space
223   find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
225   # Add the headers package
226   mkdir -p ${pkgdir}/lib/modules/${_kernver}
227   cd ${pkgdir}/lib/modules/${_kernver}
228   ln -sf ../../../usr/src/linux-${_kernver} build
229   cd ${srcdir}/linux-${pkgver}
230   install -D -m644 Makefile \
231     ${pkgdir}/usr/src/linux-${_kernver}/Makefile
232   install -D -m644 kernel/Makefile \
233     ${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile
234   install -D -m644 .config \
235     ${pkgdir}/usr/src/linux-${_kernver}/.config
236   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include
238   for i in acpi asm-generic config crypto drm generated linux math-emu \
239     media net pcmcia scsi sound trace video xen; do
240     cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/
241   done
243   # copy arch includes for external modules
244   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
245   cp -a arch/x86/include ${pkgdir}/usr/src/linux-${_kernver}/arch/x86/
247   # copy files necessary for later builds, like nvidia and vmware
248   cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver}
249   cp -a scripts ${pkgdir}/usr/src/linux-${_kernver}
250   # fix permissions on scripts dir
251   chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts
252   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions
254   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel
256   cp arch/$KARCH/Makefile ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
257   if [ "$CARCH" = "i686" ]; then
258     cp arch/$KARCH/Makefile_32.cpu ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
259   fi
260   cp arch/$KARCH/kernel/asm-offsets.s ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel/
262   # add headers for lirc package
263   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video
264   cp drivers/media/video/*.h  ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/
265   for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102; do
266    mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
267    cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
268   done
269   # add docbook makefile
270   install -D -m644 Documentation/DocBook/Makefile \
271     ${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile
272   # add dm headers
273   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
274   cp drivers/md/*.h  ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
275   # add inotify.h
276   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux
277   cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/
278   # add wireless headers
279   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
280   cp net/mac80211/*.h ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
281   # add dvb headers for external modules
282   # in reference to:
283   # http://bugs.archlinux.org/task/9912
284   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core
285   cp drivers/media/dvb/dvb-core/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/
286   # add dvb headers for external modules
287   # in reference to:
288   # http://bugs.archlinux.org/task/11194
289   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
290   cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
291   # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
292   # in reference to:
293   # http://bugs.archlinux.org/task/13146
294   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
295   cp drivers/media/dvb/frontends/lgdt330x.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
296   cp drivers/media/video/msp3400-driver.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
297   # add dvb headers  
298   # in reference to:
299   # http://bugs.archlinux.org/task/20402
300   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb
301   cp drivers/media/dvb/dvb-usb/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/
302   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends
303   cp drivers/media/dvb/frontends/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
304   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners
305   cp drivers/media/common/tuners/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/
306   # add xfs and shmem for aufs building
307   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs
308   mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm
309   cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h
310   # copy in Kconfig files
311   for i in `find . -name "Kconfig*"`; do 
312     mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
313     cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i
314   done
316   chown -R root.root ${pkgdir}/usr/src/linux-${_kernver}
317   find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
318   # strip scripts directory
319   find ${pkgdir}/usr/src/linux-${_kernver}/scripts  -type f -perm -u+w 2>/dev/null | while read binary ; do
320   case "$(file -bi "$binary")" in
321     *application/x-sharedlib*) # Libraries (.so)
322     /usr/bin/strip $STRIP_SHARED "$binary";;
323     *application/x-archive*) # Libraries (.a)
324     /usr/bin/strip $STRIP_STATIC "$binary";;
325     *application/x-executable*) # Binaries
326     /usr/bin/strip $STRIP_BINARIES "$binary";;
327     esac 
328   done 
329   # remove unneeded architectures
330   rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}