5 pkgname=linux-fedora # Build kernel with a different name
6 _kernelname=${pkgname#linux}
10 makedepends=('xmlto' 'docbook-xsl')
13 url="http://www.kernel.org"
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
20 linux-2.6-makefile-after_link.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
35 floppy-Remove-_hlt-related-functions.patch
36 linux-2.6-silence-noise.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
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')
94 cd ${srcdir}/linux-${pkgver}
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
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
124 # silence the ACPI blacklist code
125 patch -Np1 -i ${srcdir}/linux-2.6-silence-acpi-blacklist.patch
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
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
154 cat ../config >./.config
156 if [ "${_kernelname}" != "" ]; then
157 sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
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
170 # this is useful to configure the kernel
171 #msg "Stopping build"
176 make ${MAKEFLAGS} bzImage modules
180 pkgdesc="The Linux Kernel plus Fedora patches, modules and headers with debug enabled for systemtap"
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')
196 cd ${srcdir}/linux-${pkgver}
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}
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
210 -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
211 -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
212 -i $startdir/linux.install
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/
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/
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
269 # add docbook makefile
270 install -D -m644 Documentation/DocBook/Makefile \
271 ${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile
273 mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
274 cp drivers/md/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
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
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
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
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/
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
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";;
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}