3 # the following bcond combos will not work
4 # - without_vserver and any of the following
9 # LATEST VERSION CHECKER:
10 # # curl -s http://www.kernel.org/kdist/finger_banner
13 # - benchmark NO_HZ & HZ=1000 vs HZ=300 on i686
14 # - update or remove tahoe9xx patch2
15 # - update grsec_minimal patch1000:
16 # fs/proc/base.c:1484: error: 'struct task_struct' has no member named 'uid'
18 # HOWTO update configuration files:
20 # - add new options to proper config (kernel-multiarch.config, kernel-x86.config, kernel-powerpc.config etc)
21 # - sort configuration files using:
22 # ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version}/ -a x86 kernel-x86.config
23 # ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version} kernel-multiarch.config
26 %bcond_without source # don't build kernel-source package
27 %bcond_without doc # don't build kernel-doc package
28 %bcond_without pcmcia # don't build pcmcia
30 %bcond_with verbose # verbose build (V=1)
31 %bcond_without reiser4 # support for reiser4 fs (experimental)
33 %bcond_without grsecurity # don't build grsecurity nor pax at all
34 %bcond_without grsec_full # build full grsecurity
35 %bcond_with grsec_minimal # build only minimal subset (proc,link,fifo,shm)
36 %bcond_with pax # build pax and full grsecurity (ie. grsec_full && pax)
38 %bcond_with fbcondecor # build fbcondecor (disable FB_TILEBLITTING and affected fb modules)
39 %bcond_with pae # build PAE (HIGHMEM64G) support on uniprocessor
40 %bcond_with nfsroot # build with root on NFS support
42 %bcond_without imq # imq support
43 %bcond_without wrr # wrr support
44 %bcond_without esfq # esfq support
45 %bcond_without ipv6 # ipv6 support
47 %bcond_without vserver # support for VServer (enabled by default)
48 %bcond_without tuxonice # support for tuxonice (ex-suspend2) (enabled by default)
49 %bcond_without apparmor # build kernel with apparmor (exerimental mix)
51 %bcond_with rescuecd # build kernel for our rescue
53 %bcond_with myown # build with your own config (kernel-myown.config)
55 %{?debug:%define with_verbose 1}
57 %if %{without grsecurity}
58 %unglobal with_grsec_full
59 %unglobal with_grsec_minimal
64 %unglobal with_grsec_minimal
65 %define with_grsec_full 1
66 %define with_grsecurity 1
70 %if %{with grsec_minimal}
72 %unglobal with_grsec_full
73 %define with_grsecurity 1
76 %if %{with grsec_full}
77 %unglobal with_grsec_minimal
78 %define with_grsecurity 1
87 %unglobal with_apparmor
88 %unglobal with_tuxonice
89 %unglobal with_grsecurity
90 %unglobal with_grsec_full
91 %unglobal with_grsec_minimal
93 %unglobal with_vserver
102 %define have_pcmcia 0
105 %ifarch sparc sparc64
106 %unglobal with_pcmcia
111 %if %{without pcmcia}
112 %define have_pcmcia 0
115 %define basever 2.6.35
119 %define _enable_debug_packages 0
121 %define tuxonice_version 3.1.1.1
122 %define netfilter_snap 20070806
125 %if "%{_alt_kernel}" == ""
126 %define alt_kernel myown
129 %if %{without rescuecd}
130 %define __alt_kernel %{?with_pax:pax}%{!?with_grsec_full:nogrsecurity}%{!?with_apparmor:noaa}%{?with_pae:pae}
131 %if "%{__alt_kernel}" != ""
132 %define alt_kernel %{__alt_kernel}
135 %define alt_kernel rescuecd
139 # kernel release (used in filesystem and eventually in uname -r)
140 # modules will be looked from /lib/modules/%{kernel_release}
141 # localversion is just that without version for "> localversion"
142 %define localversion %{rel}
143 %define kernel_release %{version}%{?alt_kernel:_%{alt_kernel}}-%{localversion}
145 Summary: The Linux kernel (the core of the Linux operating system)
146 Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
147 Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
148 Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
149 Summary(pl.UTF-8): JÄ…dro Linuksa
150 Name: kernel%{_alt_kernel}
151 Version: %{basever}%{postver}
156 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%{basever}.tar.bz2
157 # Source0-md5: 091abeb4684ce03d1d936851618687b6
158 %if "%{postver}" != "%{nil}"
159 Source1: http://www.kernel.org/pub/linux/kernel/v2.6/patch-%{version}.bz2
160 # Source1-md5: 6a00ec267b0100f20a3fa900b97a5b7f
163 Source3: kernel-autoconf.h
164 Source4: kernel-config.h
165 Source6: kernel-config.awk
166 Source7: kernel-module-build.pl
167 Source8: kernel-track-config-change.awk
168 # not used by kernel.spec, but it's good to have it in SOURCES
169 Source9: kernel-config-sort.pl
170 Source10: kernel.make
172 Source20: kernel-multiarch.config
173 Source21: kernel-x86.config
174 Source22: kernel-sparc.config
175 Source23: kernel-alpha.config
176 Source24: kernel-powerpc.config
177 Source25: kernel-ia64.config
179 Source40: kernel-netfilter.config
180 Source41: kernel-patches.config
181 Source42: kernel-tuxonice.config
182 Source43: kernel-vserver.config
183 Source45: kernel-grsec.config
185 Source49: kernel-pax.config
186 Source50: kernel-no-pax.config
187 Source51: kernel-grsec_minimal.config
188 Source55: kernel-imq.config
189 Source56: kernel-reiser4.config
190 Source57: kernel-wrr.config
192 Source58: kernel-inittmpfs.config
193 Source59: kernel-bzip2-lzma.config
195 # tahoe9xx http://www.tahoe.pl/drivers/tahoe9xx-2.6.24.patch
196 Patch2: kernel-tahoe9xx.patch
198 # http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
199 Patch3: kernel-fbcondecor.patch
200 Patch4: kernel-fbcon-margins.patch
202 # netfilter related stuff mostly based on patch-o-matic-ng
203 # snapshot 20070806 with some fixes. Some modules
204 # were ported to nf_conntrack.
206 Patch10: kernel-pom-ng-IPV4OPTSSTRIP.patch
207 Patch11: kernel-pom-ng-ipv4options.patch
209 Patch16: kernel-pom-ng-mms-conntrack-nat.patch
210 Patch22: kernel-pom-ng-rsh.patch
211 Patch23: kernel-pom-ng-rpc.patch
213 # based on http://mike.it-loops.com/rtsp/rtsp-2.6.26.patch
214 Patch36: kernel-nf_rtsp.patch
216 # http://ftp.linux-vserver.org/pub/people/dhozac/p/k/delta-owner-xid-feat02.diff
217 Patch37: kernel-owner-xid.patch
219 # based on kernel-2.6.25-layer7-2.20.patch from
220 # http://switch.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.20.tar.gz
221 Patch40: kernel-layer7.patch
223 # http://www.ssi.bg/~ja/nfct/ipvs-nfct-2.6.34-1.diff
224 Patch41: kernel-ipvs-nfct.patch
228 # http://zph.bratcheda.org/linux-2.6.26.3-zph.patch
229 Patch49: kernel-zph.patch
231 # based on http://www.linuximq.net/patchs/linux-2.6.35-imq-multiqueue-test1.diff
232 Patch50: kernel-imq.patch
234 # http://www.kernel.org/pub/linux/kernel/people/edward/reiser4/reiser4-for-2.6/reiser4-for-2.6.35.patch.bz2
235 Patch51: kernel-reiser4.patch
237 # http://www.zz9.dk/patches/wrr-linux-071203-2.6.25.patch.gz
238 Patch52: kernel-wrr.patch
240 # http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
241 Patch53: kernel-esfq.patch
243 # http://memebeam.org/free-software/toshiba_acpi/toshiba_acpi-dev_toshiba_test5-linux_2.6.26.patch
244 Patch54: kernel-toshiba_acpi.patch
246 # by Baggins request:
247 # derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
248 Patch55: kernel-atm-vbr.patch
249 Patch56: kernel-atmdd.patch
251 # https://trac.pentoo.ch/pentoo/export/1600/kernel/trunk/2.6/2.6.34/4305_sqlzma.patch
252 Patch57: kernel-squashfs-lzma.patch
254 # http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
255 Patch59: kernel-rndis_host-wm5.patch
257 # Project suspend2 renamed to tuxonice
258 # http://www.tuxonice.net/downloads/all/tuxonice-3.1.1.1-for-head.patch.bz2
259 Patch69: kernel-tuxonice.patch
260 Patch70: kernel-tuxonice-headers.patch
262 # adds some ids for hostap suported cards and monitor_enable from/for aircrack-ng
263 # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
264 Patch85: kernel-hostap.patch
266 # http://vserver.13thfloor.at/Experimental/patch-2.6.35.4-vs2.3.0.36.32.diff
267 Patch100: kernel-vserver-2.3.patch
268 Patch101: kernel-vserver-fixes.patch
270 # Wake-On-Lan fix for nForce drivers; using http://atlas.et.tudelft.nl/verwei90/nforce2/wol.html
271 # Fix verified for that kernel version.
272 Patch130: kernel-forcedeth-WON.patch
274 # add tty ioctl to figure physical device of the console. used by showconsole.spec (blogd)
275 Patch131: kernel-TIOCGDEV.patch
277 # http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.4_for_2.6.34-rc0.diff.gz
278 # based on mandriva kernel src.rpm patches
279 Patch140: kernel-unionfs.patch
281 # http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git, read README
283 # git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git
284 # cd aufs2-standalone.git
285 # git checkout -b aufs2.1-35 origin/aufs2.1-35
286 # cat aufs2-kbuild.patch aufs2-base.patch aufs2-standalone.patch > ~/rpm/packages/kernel/kernel-aufs2.patch
288 # cp -a Documentation fs include linux
289 # diff -urN /usr/share/empty linux >> ~/rpm/packages/kernel/kernel-aufs2.patch
291 Patch145: kernel-aufs2.patch
292 Patch146: kernel-aufs2-unionfs.patch
293 Patch147: kernel-aufs2-no-const-grsec.patch
294 Patch148: kernel-aufs2-reiser4.patch
296 Patch150: kernel-ppc-crtsavres.patch
298 Patch200: kernel-ppc-ICE-hacks.patch
300 # Show normal colors in menuconfig with ncurses ABI 6
301 Patch250: kernel-fix_256colors_menuconfig.patch
303 # The following patch extend the routing functionality in Linux
304 # to support static routes (defined by user), new way to use the
305 # alternative routes, the reverse path protection (rp_filter),
306 # the NAT processing to use correctly the routing when multiple
308 # http://www.ssi.bg/~ja/routes-2.6.35-16.diff
309 Patch300: kernel-routes.patch
311 Patch1000: kernel-grsec-minimal.patch
313 Patch2000: kernel-small_fixes.patch
314 Patch2001: kernel-pwc-uncompress.patch
315 Patch2003: kernel-regressions.patch
317 # kill some thousands of warnings
318 # (only warnings, so just remove parts of this patch if conflics)
319 Patch2500: kernel-warnings.patch
321 # http://kernel.org/pub/linux/security/apparmor/AppArmor-2.6/apparmor-v2.6+v2.4-compat-for-2.6.35.patch
322 Patch5000: kernel-apparmor.patch
325 # based on http://ftp.leg.uct.ac.za/pub/linux/rip/inittmpfs-2.6.14.diff.gz
326 Patch7000: kernel-inittmpfs.patch
328 # based on http://www.grsecurity.net/~spender/grsecurity-2.2.0-2.6.35.6-201009281623.patch
329 # NOTE: put raw upstream patches on kernel-grsec_full.patch:GRSECURITY_RAW for reference
330 # (since upstream deletes older patches)
331 Patch9999: kernel-grsec_full.patch
332 Patch10000: kernel-grsec-caps.patch
333 Patch10001: kernel-grsec-common.patch
334 Patch10002: kernel-grsec_fixes.patch
336 URL: http://www.kernel.org/
337 BuildRequires: binutils >= 3:2.18
338 %ifarch sparc sparc64
339 BuildRequires: elftoaout
342 BuildRequires: uboot-mkimage
344 BuildRequires: /sbin/depmod
345 BuildRequires: gcc >= 5:3.2
346 BuildRequires: xz >= 1:4.999.7
348 # for hostname command
349 BuildRequires: module-init-tools >= 3.5
350 BuildRequires: net-tools
351 BuildRequires: perl-base
352 BuildRequires: rpm-build >= 4.5-24
353 BuildRequires: rpmbuild(macros) >= 1.217
354 Requires(post): coreutils
355 Requires(post): geninitrd >= 10000-3
356 Requires(post): module-init-tools >= 0.9.9
357 Requires: /sbin/depmod
359 Requires: geninitrd >= 10000-3
360 Requires: module-init-tools >= 0.9.9
361 Provides: %{name}(netfilter) = %{netfilter_snap}
362 Provides: %{name}(vermagic) = %{kernel_release}
363 Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
364 Obsoletes: kernel-firmware
365 Obsoletes: kernel-misc-acer_acpi
366 Obsoletes: kernel-misc-fuse
367 Obsoletes: kernel-misc-uvc
368 Obsoletes: kernel-modules
369 Obsoletes: kernel-net-ar81
370 Obsoletes: kernel-net-hostap
371 Obsoletes: kernel-net-ieee80211
372 Obsoletes: kernel-net-ipp2p
373 Obsoletes: kernel-net-rt61
374 Obsoletes: kernel-smp
375 Conflicts: e2fsprogs < 1.29
376 Conflicts: isdn4k-utils < 3.1pre1
377 Conflicts: jfsutils < 1.1.3
378 Conflicts: lvm2 < 2.02.40
379 Conflicts: module-init-tools < 0.9.10
380 Conflicts: nfs-utils < 1.0.5
381 Conflicts: oprofile < 0.9
382 Conflicts: ppp < 1:2.4.0
383 Conflicts: procps < 3.2.0
384 Conflicts: quota-tools < 3.09
385 %{?with_reiserfs4:Conflicts: reiser4progs < 1.0.0}
386 Conflicts: reiserfsprogs < 3.6.3
387 Conflicts: rpm < 4.4.2-0.2
388 Conflicts: udev < 1:081
389 Conflicts: util-linux < 2.10o
390 Conflicts: util-vserver < 0.30.216
391 Conflicts: xfsprogs < 2.6.0
393 ExcludeArch: i386 i486 i586
395 ExclusiveArch: %{ix86} %{x8664} alpha arm ia64 ppc ppc64 sparc sparc64
398 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
400 %ifarch %{ix86} %{x8664}
401 %define target_arch_dir x86
404 %define target_arch_dir powerpc
406 %ifarch sparc sparc64
407 %define target_arch_dir sparc
409 %ifnarch %{ix86} %{x8664} ppc ppc64 sparc sparc64
410 %define target_arch_dir %{_target_base_arch}
413 %define defconfig arch/%{target_arch_dir}/defconfig
415 # No ELF objects there to strip (skips processing 27k files)
416 %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
417 %define _noautochrpath .*%{_kernelsrcdir}/.*
420 %define initrd_dir /boot/efi
422 %define initrd_dir /boot
425 %define topdir %{_builddir}/%{name}-%{version}
426 %define srcdir %{topdir}/linux-%{basever}
427 %define objdir %{topdir}/%{targetobj}
428 %define targetobj %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
430 %define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version}
432 %if "%{_target_base_arch}" != "%{_arch}"
433 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
434 %define DepMod /bin/true
436 %if "%{_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
437 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
438 %define DepMod /sbin/depmod
441 %if "%{_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
442 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
443 %define DepMod /sbin/depmod
446 %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
447 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
448 %define DepMod /sbin/depmod
451 %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
452 %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
456 %define CrossOpts ARCH=powerpc CC="%{__cc}"
458 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
460 %define DepMod /sbin/depmod
462 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
464 %define __features Netfilter module dated: %{netfilter_snap}\
465 %{?with_grsec_full:Grsecurity support - enabled}\
466 %{?with_grsec_minimal:Grsecurity minimal support /proc,link,fifo,shm/ - enabled}\
467 %{?with_pax:PaX support - enabled}\
468 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
469 %{?with_nfsroot:Root on NFS - enabled}\
470 %{?with_apparmor:apparmor support - enabled}\
472 %define Features %(echo "%{__features}" | sed '/^$/d')
475 This package contains the Linux kernel that is used to boot and run
476 your system. It contains few device drivers for specific hardware.
477 Most hardware is instead supported by modules loaded after booting.
481 %description -l de.UTF-8
482 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
483 Linux-Betriebssystems. Der Kernel ist für grundliegende
484 Systemfunktionen verantwortlich: Speicherreservierung,
485 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
489 %description -l fr.UTF-8
490 Le package kernel contient le kernel linux (vmlinuz), la partie
491 centrale d'un système d'exploitation Linux. Le noyau traite les
492 fonctions basiques d'un système d'exploitation: allocation mémoire,
493 allocation de process, entrée/sortie de peripheriques, etc.
497 %description -l pl.UTF-8
498 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
499 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
500 się w komputerze, takiego jak sterowniki dysków itp.
505 Summary: vmlinux - uncompressed kernel image
506 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
507 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jÄ…dra
509 Obsoletes: kernel-smp-vmlinux
512 vmlinux - uncompressed kernel image.
514 %description vmlinux -l de.UTF-8
515 vmlinux - dekompressiertes Kernel Bild.
517 %description vmlinux -l pl.UTF-8
518 vmlinux - rozpakowany obraz jÄ…dra.
521 Summary: DRM kernel modules
522 Summary(de.UTF-8): DRM Kernel Treiber
523 Summary(pl.UTF-8): Sterowniki DRM
525 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
526 Requires: %{name} = %{epoch}:%{version}-%{release}
527 Obsoletes: kernel-smp-drm
533 %description drm -l de.UTF-8
536 %description drm -l pl.UTF-8
540 Summary: PCMCIA modules
541 Summary(de.UTF-8): PCMCIA Module
542 Summary(pl.UTF-8): Moduły PCMCIA
544 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
545 Requires: %{name} = %{epoch}:%{version}-%{release}
546 Obsoletes: kernel-smp-pcmcia
547 Conflicts: pcmcia-cs < 3.1.21
548 Conflicts: pcmciautils < 004
554 %description pcmcia -l de.UTF-8
557 %description pcmcia -l pl.UTF-8
561 Summary: ALSA kernel modules
562 Summary(de.UTF-8): ALSA Kernel Module
563 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
565 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
566 Requires: %{name} = %{epoch}:%{version}-%{release}
567 Obsoletes: kernel-smp-sound-alsa
570 %description sound-alsa
571 ALSA (Advanced Linux Sound Architecture) sound drivers.
573 %description sound-alsa -l de.UTF-8
574 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
576 %description sound-alsa -l pl.UTF-8
577 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
580 Summary: OSS kernel modules
581 Summary(de.UTF-8): OSS Kernel Module
582 Summary(pl.UTF-8): Sterowniki dźwięku OSS
584 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
585 Requires: %{name} = %{epoch}:%{version}-%{release}
586 Obsoletes: kernel-smp-sound-oss
589 %description sound-oss
590 OSS (Open Sound System) drivers.
592 %description sound-oss -l de.UTF-8
593 OSS (Open Sound System) Treiber.
595 %description sound-oss -l pl.UTF-8
596 Sterowniki dźwięku OSS (Open Sound System).
599 Summary: Header files for the Linux kernel
600 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
601 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
602 Group: Development/Building
603 Provides: %{name}-headers(netfilter) = %{netfilter_snap}
607 These are the C header files for the Linux kernel, which define
608 structures and constants that are needed when rebuilding the kernel or
609 building kernel modules.
611 %description headers -l de.UTF-8
612 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
613 Strukturen und Konstante beinhalten, die beim rekompilieren des
614 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
616 %description headers -l pl.UTF-8
617 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
618 oraz budowania modułów jądra.
620 %package module-build
621 Summary: Development files for building kernel modules
622 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
623 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
624 Group: Development/Building
625 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
626 Conflicts: rpmbuild(macros) < 1.550
629 %description module-build
630 Development files from kernel source tree needed to build Linux kernel
631 modules from external packages.
633 %description module-build -l de.UTF-8
634 Development Dateien des Linux-Kernels die beim kompilieren externer
635 Kernel Module gebraucht werden.
637 %description module-build -l pl.UTF-8
638 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
639 Linuksa z zewnętrznych pakietów.
642 Summary: Kernel source tree
643 Summary(de.UTF-8): Der Kernel Quelltext
644 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
645 Group: Development/Building
646 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
650 This is the source code for the Linux kernel. You can build a custom
651 kernel that is better tuned to your particular hardware.
653 %description source -l de.UTF-8
654 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
655 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
656 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
657 im Kernel-Source definiert sind. Die Source-Dateien können auch
658 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
659 Hardware ausgerichtet ist.
661 %description source -l fr.UTF-8
662 Le package pour le kernel-source contient le code source pour le noyau
663 linux. Ces sources sont nécessaires pour compiler la plupart des
664 programmes C, car il dépend de constantes définies dans le code
665 source. Les sources peuvent être aussi utilisée pour compiler un noyau
666 personnalisé pour avoir de meilleures performances sur des matériels
669 %description source -l pl.UTF-8
670 Pakiet zawiera kod źródłowy jądra systemu.
673 Summary: Kernel documentation
674 Summary(de.UTF-8): Kernel Dokumentation
675 Summary(pl.UTF-8): Dokumentacja do jÄ…dra Linuksa
680 This is the documentation for the Linux kernel, as found in
681 /usr/src/linux/Documentation directory.
683 %description doc -l de.UTF-8
684 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
685 Verzeichniss vorgefunden werden kann.
687 %description doc -l pl.UTF-8
688 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
689 /usr/src/linux/Documentation.
693 ln -s %{SOURCE7} kernel-module-build.pl
694 ln -s %{SOURCE10} Makefile
697 # hack against warning in pax/grsec
698 sed -i 's/-Werror//' arch/alpha/kernel/Makefile
700 %if "%{postver}" != "%{nil}"
701 %{__bzip2} -dc %{SOURCE1} | patch -p1 -s
710 # tahoe9xx: 2.6.29 - need update
713 %if %{with fbcondecor}
721 # kernel-pom-ng-IPV4OPTSSTRIP.patch
724 # kernel-pom-ng-ipv4options.patch
727 # kernel-pom-ng-mms-conntrack-nat.patch
730 # kernel-pom-ng-rsh.patch
733 # kernel-pom-ng-rpc.patch
736 # kernel-nf_rtsp.patch
739 # kernel-owner-xid.patch
744 # kernel-layer7.patch
780 # squashfs lzma support
783 # kernel-rndis_host-wm5.patch
786 # hostap enhancements from/for aircrack-ng
816 # grsecurity & pax stuff
819 # remember that we have the same config file for grsec_minimal and
820 # grsec_full, but the patches are different.
822 %if %{with grsecurity}
823 %if %{with grsec_minimal}
826 # grsec_full and/or pax
828 # aufs2 needs to modify those pointers
830 %{?with_vserver:%patch10000 -p1}
831 %{?with_vserver:%patch10001 -p1}
832 %{?with_vserver:%patch10002 -p1}
836 # end of grsecurity & pax stuff
860 # Fix EXTRAVERSION in main Makefile
861 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{postver}%{?alt_kernel:_%{alt_kernel}}#g' Makefile
863 # cleanup backups after patching
864 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
868 cat > %{targetobj}.mk <<'EOF'
869 # generated by %{name}.spec
870 KERNELSRC := %{_builddir}/%{name}-%{version}/linux-%{basever}
871 KERNELOUTPUT := %{objdir}
873 SRCARCH := %{target_arch_dir}
874 ARCH := %{_target_base_arch}
875 Q := %{!?with_verbose:@}
876 MAKE_OPTS := %{MakeOpts}
877 DEFCONFIG := %{defconfig}
884 CONFIG_PAX_SEGMEXEC=y
885 # performance impact on CPUs without NX bit
886 CONFIG_PAX_PAGEEXEC=n
889 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
895 CONFIG_PAX_NOELFRELOCS=n
898 CONFIG_PAX_EMUTRAMP=y
899 CONFIG_PAX_EMUSIGRT=y
903 %ifarch sparc sparc64 alpha
907 # Now we have to check MAC system integration. Grsecurity (full) uses PAX_HAVE_ACL_FLAGS
908 # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
909 # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
910 # PAX_HOOK_ACL_FLAGS.
912 %if %{with grsec_full}
913 # Hardening grsec options if with pax
914 CONFIG_GRKERNSEC_PROC_MEMMAP=y
915 # almost rational (see HIDESYM help)
916 CONFIG_GRKERNSEC_HIDESYM=y
918 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
920 CONFIG_PAX_HAVE_ACL_FLAGS=n
921 CONFIG_PAX_HOOK_ACL_FLAGS=y
931 # CONFIG_SOUND is not set
932 # CONFIG_AUDIT is not set
933 # CONFIG_TR is not set
934 # CONFIG_BT is not set
935 # CONFIG_VIDEO_DEV is not set
936 # CONFIG_DVB_CORE is not set
937 # CONFIG_HAMRADIO is not set
938 # CONFIG_ARCNET is not set
939 # CONFIG_FB is not set
940 # CONFIG_DRM is not set
941 # CONFIG_WATCHDOG is not set
942 # CONFIG_INPUT_JOYSTICK is not set
943 # CONFIG_DEBUG_KERNEL is not set
944 # CONFIG_ISDN is not set
945 # CONFIG_AGP is not set
946 # CONFIG_SECURITY is not set
947 # CONFIG_PARIDE is not set
948 # CONFIG_CPU_FREQ is not set
949 # CONFIG_GAMEPORT is not set
950 # CONFIG_KVM is not set
951 # CONFIG_PHONE is not set
952 # CONFIG_STRICT_DEVMEM is not set
953 # CONFIG_IMA is not set
956 CONFIG_AUFS_BR_RAMFS=y
958 CONFIG_BLK_DEV_LOOP=y
970 Config="kernel-%{target_arch_dir}.config"
971 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
973 # prepare local and important options
974 cat <<-EOCONFIG > important.config
975 LOCALVERSION="-%{localversion}"
979 CONFIG_DEBUG_SLAB_LEAK=y
980 CONFIG_DEBUG_PREEMPT=y
981 CONFIG_RT_DEADLOCK_DETECT=y
984 # apparmor, will be moved to external file if works
986 CONFIG_SECURITY_APPARMOR=y
987 CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
988 CONFIG_SECURITY_APPARMOR_DISABLE=n
989 CONFIG_SECURITY_APPARMOR_NETWORK=y
990 CONFIG_SECURITY_APPARMOR_COMPAT_24=y
991 CONFIG_DEFAULT_SECURITY_APPARMOR=n
998 %ifarch i686 athlon pentium3 pentium4
1007 %if %{without pcmcia}
1011 %if %{with fbcondecor}
1015 CONFIG_FB_TILEBLITTING=n
1016 CONFIG_FB_CON_DECOR=y
1024 # Temporary disabled RELOCATABLE. Needed only on x86??
1025 %if %{with pax} || %{with grsec_full}
1026 CONFIG_RELOCATABLE=n
1030 %if %{with rescuecd}
1031 RescueConfig rescue.config
1034 PaXconfig pax.config
1037 # prepare kernel-style config file from multiple config files
1038 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
1040 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
1043 %if %{with rescuecd}
1054 %if %{with grsec_full}
1058 %if %{with grsec_minimal}
1076 %if %{with tuxonice}
1077 %ifarch %{ix86} %{x8664} ia64 ppc ppc64
1081 %{SOURCE40} %{?0:netfilter} \
1082 %{SOURCE41} %{?0:patches} \
1084 $RPM_SOURCE_DIR/$Config
1088 install -d arch/%{target_arch_dir}
1089 BuildConfig > %{defconfig}
1090 ln -sf %{defconfig} .config
1094 TARGETOBJ=%{targetobj} \
1095 %{?with_verbose:V=1} \
1098 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
1102 TARGETOBJ=%{targetobj} \
1103 %{?with_verbose:V=1} \
1107 rm -rf $RPM_BUILD_ROOT
1108 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
1110 %{?with_verbose:V=1} \
1112 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
1113 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
1114 KERNELRELEASE=%{kernel_release}
1116 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1118 # create directories which may be missing, to simplyfy %files
1119 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
1121 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
1122 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1123 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1125 # no point embed content for %ghost files. empty them
1130 {pci,usb,ccw,isapnp,input,ieee1394,serio,of}map \
1132 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1133 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1137 install -d $RPM_BUILD_ROOT/boot
1138 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1139 %ifarch %{ix86} %{x8664}
1140 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1141 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1144 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1145 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1148 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1149 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1150 ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1152 %ifarch alpha sparc sparc64
1153 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1154 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1155 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1157 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1158 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1161 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1162 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1166 install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1170 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1172 %if "%{_target_base_arch}" != "%{_arch}"
1173 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1177 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1180 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
1181 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1182 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1184 rm -f $RPM_BUILD_ROOT/COPYING
1187 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1188 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}/Module.symvers-dist
1189 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}/config-dist
1190 cp -a %{objdir}/include/generated/autoconf.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf-dist.h
1191 cp -a %{objdir}/include/generated/utsrelease.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
1192 cp -a %{objdir}/include/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
1193 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf.h
1194 cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
1196 # collect module-build files and directories
1197 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1199 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1200 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1203 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1204 install -d $RPM_BUILD_ROOT%{_docdir}
1205 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1207 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1208 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1209 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1210 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1213 rm -rf $RPM_BUILD_ROOT
1216 if [ -x /sbin/new-kernel-pkg ]; then
1217 /sbin/new-kernel-pkg --remove %{kernel_release}
1222 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1223 %{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1224 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1225 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
1227 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1228 %{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1229 mv -f /boot/System.map{,.old} 2> /dev/null
1230 %{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
1231 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1232 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
1233 ln -sf System.map-%{kernel_release} /boot/System.map
1234 %{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
1236 %depmod %{kernel_release}
1239 # generate initrd after all dependant modules are installed
1240 /sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1241 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1242 %{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
1243 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1244 %{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
1246 # update boot loaders when old package files are gone from filesystem
1247 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1248 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1249 /sbin/update-grub >/dev/null
1252 if [ -x /sbin/new-kernel-pkg ]; then
1253 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1255 if [ -x /sbin/rc-boot ]; then
1256 /sbin/rc-boot 1>&2 || :
1260 mv -f /boot/vmlinux{,.old} 2> /dev/null
1261 %{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
1262 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1263 %{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
1266 %depmod %{kernel_release}
1269 %depmod %{kernel_release}
1272 %depmod %{kernel_release}
1275 %depmod %{kernel_release}
1278 %depmod %{kernel_release}
1281 %depmod %{kernel_release}
1284 %depmod %{kernel_release}
1287 %depmod %{kernel_release}
1290 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1293 if [ "$1" = "0" ]; then
1294 if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1295 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1296 rm -f %{_prefix}/src/linux%{_alt_kernel}
1301 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1302 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1303 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1305 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1306 if [ "$1" = 0 ]; then
1307 rm -f /lib/modules/%{kernel_release}/{build,source}
1311 %defattr(644,root,root,755)
1312 %ifarch sparc sparc64
1313 /boot/vmlinux.aout-%{kernel_release}
1316 /boot/efi/vmlinuz-%{kernel_release}
1318 /boot/vmlinuz-%{kernel_release}
1319 /boot/System.map-%{kernel_release}
1320 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1321 /lib/firmware/%{kernel_release}
1323 %dir /lib/modules/%{kernel_release}
1324 %dir /lib/modules/%{kernel_release}/kernel
1325 /lib/modules/%{kernel_release}/kernel/arch
1326 /lib/modules/%{kernel_release}/kernel/crypto
1327 /lib/modules/%{kernel_release}/kernel/drivers
1329 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1331 /lib/modules/%{kernel_release}/kernel/fs
1332 /lib/modules/%{kernel_release}/kernel/kernel
1333 /lib/modules/%{kernel_release}/kernel/lib
1334 /lib/modules/%{kernel_release}/kernel/net
1335 /lib/modules/%{kernel_release}/kernel/mm
1337 %dir /lib/modules/%{kernel_release}/kernel/sound
1338 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1339 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1341 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1342 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1343 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1346 %dir /lib/modules/%{kernel_release}/misc
1348 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1349 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1350 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1351 %if %{without rescuecd}
1352 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1353 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1354 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1355 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1356 %exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1357 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1359 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1360 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1361 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1362 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1363 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1364 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1365 %exclude /lib/modules/%{kernel_release}/kernel/drivers/serial/serial_cs.ko*
1366 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1369 /lib/modules/%{kernel_release}/kernel/sound
1372 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1375 /lib/modules/%{kernel_release}/modules.order
1376 /lib/modules/%{kernel_release}/modules.builtin
1378 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1379 %ghost /lib/modules/%{kernel_release}/modules.alias
1380 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1381 %ghost /lib/modules/%{kernel_release}/modules.ccwmap
1382 %ghost /lib/modules/%{kernel_release}/modules.dep
1383 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1384 %ghost /lib/modules/%{kernel_release}/modules.ieee1394map
1385 %ghost /lib/modules/%{kernel_release}/modules.inputmap
1386 %ghost /lib/modules/%{kernel_release}/modules.isapnpmap
1387 %ghost /lib/modules/%{kernel_release}/modules.ofmap
1388 %ghost /lib/modules/%{kernel_release}/modules.pcimap
1389 %ghost /lib/modules/%{kernel_release}/modules.seriomap
1390 %ghost /lib/modules/%{kernel_release}/modules.symbols
1391 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1392 %ghost /lib/modules/%{kernel_release}/modules.usbmap
1394 # symlinks pointing to kernelsrcdir
1395 %ghost /lib/modules/%{kernel_release}/build
1396 %ghost /lib/modules/%{kernel_release}/source
1398 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1400 %defattr(644,root,root,755)
1401 /boot/vmlinux-%{kernel_release}
1406 %defattr(644,root,root,755)
1407 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1412 %defattr(644,root,root,755)
1413 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1414 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1415 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1416 %if %{without rescuecd}
1417 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1418 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1419 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1420 /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1422 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1423 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1424 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1425 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1426 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1427 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1428 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1429 /lib/modules/%{kernel_release}/kernel/drivers/serial/serial_cs.ko*
1430 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1435 %defattr(644,root,root,755)
1436 /lib/modules/%{kernel_release}/kernel/sound
1437 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1438 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1439 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1441 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1444 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1445 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1446 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1447 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1452 %defattr(644,root,root,755)
1453 /lib/modules/%{kernel_release}/kernel/sound/oss
1457 %files headers -f files.headers_exclude_kbuild
1458 %defattr(644,root,root,755)
1459 %dir %{_kernelsrcdir}
1460 %{_kernelsrcdir}/include
1461 %dir %{_kernelsrcdir}/arch
1462 %dir %{_kernelsrcdir}/arch/[!K]*
1463 %{_kernelsrcdir}/arch/*/include
1464 %dir %{_kernelsrcdir}/security
1465 %dir %{_kernelsrcdir}/security/selinux
1466 %{_kernelsrcdir}/security/selinux/include
1467 %{_kernelsrcdir}/config-dist
1468 %{_kernelsrcdir}/Module.symvers-dist
1470 %files module-build -f files.mb_include_modulebuild_and_dirs
1471 %defattr(644,root,root,755)
1473 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1475 %exclude %dir %{_kernelsrcdir}/arch/m68knommu
1476 %exclude %dir %{_kernelsrcdir}/arch/um
1477 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1478 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1479 %{_kernelsrcdir}/drivers/lguest/lg.h
1480 %{_kernelsrcdir}/kernel/bounds.c
1481 %dir %{_kernelsrcdir}/scripts
1482 %{_kernelsrcdir}/scripts/Kbuild.include
1483 %{_kernelsrcdir}/scripts/Makefile*
1484 %{_kernelsrcdir}/scripts/basic
1485 %{_kernelsrcdir}/scripts/kconfig
1486 %{_kernelsrcdir}/scripts/mkcompile_h
1487 %{_kernelsrcdir}/scripts/mkmakefile
1488 %{_kernelsrcdir}/scripts/mod
1489 %{_kernelsrcdir}/scripts/module-common.lds
1490 %{_kernelsrcdir}/scripts/setlocalversion
1491 %{_kernelsrcdir}/scripts/*.c
1492 %{_kernelsrcdir}/scripts/*.sh
1493 %dir %{_kernelsrcdir}/scripts/selinux
1494 %{_kernelsrcdir}/scripts/selinux/Makefile
1495 %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1496 %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1497 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1498 %dir %{_kernelsrcdir}/scripts/selinux/mdp
1499 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1500 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1501 %exclude %dir %{_kernelsrcdir}/security
1502 %exclude %dir %{_kernelsrcdir}/security/selinux
1506 %defattr(644,root,root,755)
1507 %dir %{_docdir}/%{name}-%{version}
1509 %{_docdir}/%{name}-%{version}/[!jkz]*
1510 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1511 %{_docdir}/%{name}-%{version}/kbuild
1512 %{_docdir}/%{name}-%{version}/kdump
1513 %{_docdir}/%{name}-%{version}/kvm
1514 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1515 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1516 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1520 %files source -f files.source_exclude_modulebuild_and_dirs
1521 %defattr(644,root,root,755)
1522 %{_kernelsrcdir}/arch/*/[!Mik]*
1523 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1524 %{_kernelsrcdir}/arch/ia64/install.sh
1525 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1526 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1527 %{_kernelsrcdir}/arch/m68k/install.sh
1528 %{_kernelsrcdir}/arch/parisc/install.sh
1529 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1530 %{_kernelsrcdir}/arch/ia64/kvm
1531 %{_kernelsrcdir}/arch/powerpc/kvm
1533 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1535 %{_kernelsrcdir}/arch/s390/kvm
1536 %{_kernelsrcdir}/arch/x86/kvm
1537 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1538 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1539 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1540 %{_kernelsrcdir}/block
1541 %{_kernelsrcdir}/crypto
1542 %{_kernelsrcdir}/drivers
1543 %{_kernelsrcdir}/firmware
1545 %if %{with grsecurity} && %{without rescuecd}
1546 %{_kernelsrcdir}/grsecurity
1548 %{_kernelsrcdir}/init
1549 %{_kernelsrcdir}/ipc
1550 %{_kernelsrcdir}/kernel
1551 %exclude %{_kernelsrcdir}/kernel/bounds.c
1552 %{_kernelsrcdir}/lib
1554 %{_kernelsrcdir}/net
1555 %{_kernelsrcdir}/virt
1556 %{_kernelsrcdir}/samples
1557 %{_kernelsrcdir}/scripts/*
1558 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1559 %exclude %{_kernelsrcdir}/scripts/Makefile*
1560 %exclude %{_kernelsrcdir}/scripts/basic
1561 %exclude %{_kernelsrcdir}/scripts/kconfig
1562 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1563 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1564 %exclude %{_kernelsrcdir}/scripts/mod
1565 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1566 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1567 %exclude %{_kernelsrcdir}/scripts/*.c
1568 %exclude %{_kernelsrcdir}/scripts/*.sh
1569 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1570 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1571 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1572 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1573 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1574 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1575 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1576 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1577 %{_kernelsrcdir}/sound
1578 %{_kernelsrcdir}/security
1579 %exclude %{_kernelsrcdir}/security/selinux/include
1580 %{_kernelsrcdir}/tools
1581 %{_kernelsrcdir}/usr
1582 %{_kernelsrcdir}/COPYING
1583 %{_kernelsrcdir}/CREDITS
1584 %{_kernelsrcdir}/MAINTAINERS
1585 %{_kernelsrcdir}/README
1586 %{_kernelsrcdir}/REPORTING-BUGS