3 # the following bcond combos will not work
4 # - without_vserver and any of the following
7 # LATEST VERSION CHECKER:
8 # # curl -s http://www.kernel.org/kdist/finger_banner
11 # - benchmark NO_HZ & HZ=1000 vs HZ=300 on i686
12 # - IPv4 source address selection for multihomed vservers is completely broken
13 # meaning routing table is ignored except for default
15 # HOWTO update configuration files:
17 # - add new options to proper config (kernel-multiarch.config, kernel-x86.config, kernel-powerpc.config etc)
18 # - sort configuration files using:
19 # ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version}/ -a x86 kernel-x86.config
20 # ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version} kernel-multiarch.config
23 %bcond_without source # don't build kernel-source package
24 %bcond_without doc # don't build kernel-doc package
25 %bcond_without pcmcia # don't build pcmcia
27 %bcond_with verbose # verbose build (V=1)
28 %bcond_with reiser4 # support for reiser4 fs (experimental)
30 %bcond_without grsecurity # don't build grsecurity nor pax at all
31 %bcond_with pax # build pax and grsecurity (ie. grsecurity && pax)
33 %bcond_with fbcondecor # build fbcondecor (disable FB_TILEBLITTING and affected fb modules)
34 %bcond_with pae # build PAE (HIGHMEM64G) support on uniprocessor
35 %bcond_with nfsroot # build with root on NFS support
37 %bcond_without imq # imq support
38 %bcond_without wrr # wrr support
39 %bcond_without esfq # esfq support
40 %bcond_without ipv6 # ipv6 support
42 %bcond_without vserver # support for VServer (enabled by default)
44 %bcond_with vanilla # don't include any patches
45 %bcond_with rescuecd # build kernel for our rescue
46 %bcond_with myown # build with your own config (kernel-myown.config)
48 %{?debug:%define with_verbose 1}
51 %unglobal with_grsecurity
54 %if %{without grsecurity}
59 %define with_grsecurity 1
69 %unglobal with_grsecurity
71 %unglobal with_vserver
97 %define module_init_tools_ver 3.16
99 # __alt_kernel is list of features, empty string if none set
100 # _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
101 # alt_kernel should be defined if __alt_kernel has non-empty value (for %{?alt_kernel:foo} constructs)
102 %define __alt_kernel %{?with_pax:pax}%{!?with_grsecurity:nogrsecurity}%{?with_pae:pae}
104 %if "%{__alt_kernel}" != ""
105 %define alt_kernel %{__alt_kernel}
108 # these override whatever name was picked from bconds
109 %if %{with myown} && "%{_alt_kernel}" == ""
110 %define alt_kernel myown
113 %define alt_kernel rescuecd
116 %define alt_kernel vanilla
119 # kernel release (used in filesystem and eventually in uname -r)
120 # modules will be looked from /lib/modules/%{kernel_release}
121 # localversion is just that without version for "> localversion"
122 %define localversion %{rel}
123 %define kernel_release %{version}%{?alt_kernel:_%{alt_kernel}}-%{localversion}
125 Summary: The Linux kernel (the core of the Linux operating system)
126 Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
127 Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
128 Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
129 Summary(pl.UTF-8): JÄ…dro Linuksa
130 Name: kernel%{_alt_kernel}
131 Version: %{basever}%{postver}
136 Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
137 # Source0-md5: edbdc798f23ae0f8045c82f6fa22c536
138 %if "%{postver}" != ".0"
139 Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
140 # Patch0-md5: 7487d8e6f00c077f6e15d6f4f9947c30
143 Source3: kernel-autoconf.h
144 Source4: kernel-config.h
145 Source6: kernel-config.awk
146 Source7: kernel-module-build.pl
147 Source8: kernel-track-config-change.awk
148 # not used by kernel.spec, but it's good to have it in SOURCES
149 Source9: kernel-config-sort.pl
150 Source10: kernel.make
152 Source20: kernel-multiarch.config
153 Source21: kernel-x86.config
154 Source22: kernel-sparc.config
155 Source23: kernel-alpha.config
156 Source24: kernel-powerpc.config
157 Source25: kernel-ia64.config
159 Source41: kernel-patches.config
160 Source43: kernel-vserver.config
161 Source45: kernel-grsec.config
163 Source49: kernel-pax.config
164 Source50: kernel-no-pax.config
165 Source55: kernel-imq.config
166 Source56: kernel-reiser4.config
167 Source57: kernel-wrr.config
169 Source58: kernel-inittmpfs.config
171 # http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
172 Patch3: kernel-fbcondecor.patch
173 Patch4: kernel-fbcon-margins.patch
174 Patch5: linux-wistron-amilo8210.patch
176 # netfilter related stuff mostly based on patch-o-matic-ng
177 # snapshot 20070806 with some fixes. Some modules
178 # were ported to nf_conntrack.
180 Patch10: kernel-pom-ng-IPV4OPTSSTRIP.patch
182 Patch16: kernel-pom-ng-mms-conntrack-nat.patch
183 Patch22: kernel-pom-ng-rsh.patch
184 Patch23: kernel-pom-ng-rpc.patch
186 # based on http://mike.it-loops.com/rtsp/rtsp-2.6.26.patch
187 Patch36: kernel-nf_rtsp.patch
189 # http://ftp.linux-vserver.org/pub/people/dhozac/p/k/delta-owner-xid-feat02.diff
190 Patch37: kernel-owner-xid.patch
192 # based on kernel-2.6.25-layer7-2.20.patch from
193 # http://switch.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.20.tar.gz
194 Patch40: kernel-layer7.patch
198 # http://zph.bratcheda.org/linux-2.6.26.3-zph.patch
199 Patch49: kernel-zph.patch
201 # based on http://www.linuximq.net/patchs/patch-imqmq-3.0.diff.bz2
202 Patch50: kernel-imq.patch
204 # http://www.kernel.org/pub/linux/kernel/people/edward/reiser4/reiser4-for-2.6/reiser4-for-2.6.35.patch.bz2
205 Patch51: kernel-reiser4.patch
207 # http://www.zz9.dk/patches/wrr-linux-071203-2.6.25.patch.gz
208 Patch52: kernel-wrr.patch
210 # http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
211 Patch53: kernel-esfq.patch
213 # http://memebeam.org/free-software/toshiba_acpi/toshiba_acpi-dev_toshiba_test5-linux_2.6.26.patch
214 Patch54: kernel-toshiba_acpi.patch
216 # by Baggins request:
217 # derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
218 Patch55: kernel-atm-vbr.patch
219 Patch56: kernel-atmdd.patch
221 # http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
222 Patch59: kernel-rndis_host-wm5.patch
224 # adds some ids for hostap suported cards and monitor_enable from/for aircrack-ng
225 # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
226 Patch85: kernel-hostap.patch
228 # http://vserver.13thfloor.at/Experimental/patch-3.1.1-vs2.3.2.diff
229 Patch100: kernel-vserver-2.3.patch
230 Patch101: kernel-vserver-fixes.patch
232 # http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.10_for_3.1.0-rc4.diff.gz
233 Patch140: kernel-unionfs.patch
235 # git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git, read README
237 # git clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git
238 # cd aufs3-standalone
239 # git checkout -b aufs3.0 origin/aufs3.0
240 # cat aufs3-kbuild.patch aufs3-base.patch aufs3-standalone.patch > ~/rpm/packages/kernel/kernel-aufs3.patch
242 # cp -a Documentation fs include linux
243 # diff -urN /usr/share/empty linux >> ~/rpm/packages/kernel/kernel-aufs3.patch
245 Patch145: kernel-aufs3.patch
246 Patch146: kernel-aufs2-unionfs.patch
247 Patch147: kernel-aufs2-no-const-grsec.patch
248 Patch148: kernel-aufs2-reiser4.patch
250 # Show normal colors in menuconfig with ncurses ABI 6
251 Patch250: kernel-fix_256colors_menuconfig.patch
253 # https://patchwork.kernel.org/patch/236261/
254 Patch400: kernel-virtio-gl-accel.patch
256 Patch2000: kernel-small_fixes.patch
257 Patch2001: kernel-pwc-uncompress.patch
258 Patch2003: kernel-regressions.patch
260 # 0001-AppArmor-compatibility-patch-for-v5-network-controll.patch
261 # 0002-AppArmor-compatibility-patch-for-v5-interface.patch
262 # from http://kernel.org/pub/linux/security/apparmor/apparmor-2.6.36-patches.tgz
263 Patch5000: kernel-apparmor.patch
266 # based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
267 Patch7000: kernel-inittmpfs.patch
269 # based on http://grsecurity.net/~spender/grsecurity-2.2.2-3.1.1-201111181902.patch
270 # NOTE: put raw upstream patches on kernel-grsec_full.patch:GRSECURITY_RAW for reference
271 # (since upstream deletes older patches)
272 # NOTE: mirror of old grsecurity patches:
273 # https://github.com/slashbeast/grsecurity-scrape/tree/master/test
274 Patch9999: kernel-grsec_full.patch
275 Patch10000: kernel-grsec-caps.patch
276 Patch10001: kernel-grsec-common.patch
277 Patch10002: kernel-grsec_fixes.patch
279 # Do not remove this line, please. It is easier for me to uncomment two lines, then patch
280 # kernel.spec every time.
281 #Patch50000: kernel-usb_reset.patch
283 URL: http://www.kernel.org/
284 BuildRequires: binutils >= 3:2.18
285 %ifarch sparc sparc64
286 BuildRequires: elftoaout
289 BuildRequires: uboot-mkimage
291 BuildRequires: /sbin/depmod
292 BuildRequires: gcc >= 5:3.2
293 BuildRequires: xz >= 1:4.999.7
295 BuildRequires: hostname
296 BuildRequires: module-init-tools >= %{module_init_tools_ver}
297 BuildRequires: perl-base
298 BuildRequires: rpm-build >= 4.5-24
299 BuildRequires: rpmbuild(macros) >= 1.217
300 Requires(post): coreutils
301 Requires(post): geninitrd >= 10000-3
302 Requires(post): module-init-tools >= %{module_init_tools_ver}
303 Requires: /sbin/depmod
305 Requires: geninitrd >= 10000-3
306 Requires: module-init-tools >= %{module_init_tools_ver}
308 Provides: %{name}(netfilter) = 20070806
309 Provides: %{name}(vermagic) = %{kernel_release}
310 Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
311 Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100
312 Obsoletes: kernel%{_alt_kernel}-char-lirc-it87
313 Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709
314 Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb
315 Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap
316 Obsoletes: kernel-firmware
317 Obsoletes: kernel-misc-acer_acpi
318 Obsoletes: kernel-misc-fuse
319 Obsoletes: kernel-misc-uvc
320 Obsoletes: kernel-modules
321 Obsoletes: kernel-net-ar81
322 Obsoletes: kernel-net-hostap
323 Obsoletes: kernel-net-ieee80211
324 Obsoletes: kernel-net-ipp2p
325 Obsoletes: kernel-net-rt61
326 Obsoletes: kernel-smp
327 Conflicts: e2fsprogs < 1.29
328 Conflicts: isdn4k-utils < 3.1pre1
329 Conflicts: jfsutils < 1.1.3
330 Conflicts: lvm2 < 2.02.40
331 Conflicts: nfs-utils < 1.0.5
332 Conflicts: oprofile < 0.9
333 Conflicts: ppp < 1:2.4.0
334 Conflicts: procps < 3.2.0
335 Conflicts: quota-tools < 3.09
336 %{?with_reiserfs4:Conflicts: reiser4progs < 1.0.0}
337 Conflicts: reiserfsprogs < 3.6.3
338 Conflicts: rpm < 4.4.2-0.2
339 Conflicts: udev < 1:081
340 Conflicts: util-linux < 2.10o
341 Conflicts: util-vserver < 0.30.216
342 Conflicts: xfsprogs < 2.6.0
344 ExcludeArch: i386 i486 i586
346 ExclusiveArch: %{ix86} %{x8664} alpha arm ia64 ppc ppc64 sparc sparc64
349 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
351 %ifarch %{ix86} %{x8664}
352 %define target_arch_dir x86
355 %define target_arch_dir powerpc
357 %ifarch sparc sparc64
358 %define target_arch_dir sparc
360 %ifnarch %{ix86} %{x8664} ppc ppc64 sparc sparc64
361 %define target_arch_dir %{_target_base_arch}
364 %define defconfig arch/%{target_arch_dir}/defconfig
366 # No ELF objects there to strip (skips processing 27k files)
367 %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
368 %define _noautochrpath .*%{_kernelsrcdir}/.*
369 %define _enable_debug_packages 0
372 %define initrd_dir /boot/efi
374 %define initrd_dir /boot
377 %define topdir %{_builddir}/%{name}-%{version}
378 %define srcdir %{topdir}/linux-%{basever}
379 %define objdir %{topdir}/%{targetobj}
380 %define targetobj %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
382 %define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version}
384 %if "%{_target_base_arch}" != "%{_arch}"
385 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
386 %define DepMod /bin/true
388 %if "%{_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
389 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
390 %define DepMod /sbin/depmod
393 %if "%{_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
394 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
395 %define DepMod /sbin/depmod
398 %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
399 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
400 %define DepMod /sbin/depmod
403 %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
404 %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
408 %define CrossOpts ARCH=powerpc CC="%{__cc}"
410 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
412 %define DepMod /sbin/depmod
414 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
417 %{?with_grsecurity:Grsecurity support - enabled}\
418 %{?with_pax:PaX support - enabled}\
419 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
420 %{?with_nfsroot:Root on NFS - enabled}\
422 %define Features %(echo "%{__features}" | sed '/^$/d')
425 This package contains the Linux kernel that is used to boot and run
426 your system. It contains few device drivers for specific hardware.
427 Most hardware is instead supported by modules loaded after booting.
431 %description -l de.UTF-8
432 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
433 Linux-Betriebssystems. Der Kernel ist für grundliegende
434 Systemfunktionen verantwortlich: Speicherreservierung,
435 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
439 %description -l fr.UTF-8
440 Le package kernel contient le kernel linux (vmlinuz), la partie
441 centrale d'un système d'exploitation Linux. Le noyau traite les
442 fonctions basiques d'un système d'exploitation: allocation mémoire,
443 allocation de process, entrée/sortie de peripheriques, etc.
447 %description -l pl.UTF-8
448 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
449 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
450 się w komputerze, takiego jak sterowniki dysków itp.
455 Summary: vmlinux - uncompressed kernel image
456 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
457 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jÄ…dra
459 Obsoletes: kernel-smp-vmlinux
462 vmlinux - uncompressed kernel image.
464 %description vmlinux -l de.UTF-8
465 vmlinux - dekompressiertes Kernel Bild.
467 %description vmlinux -l pl.UTF-8
468 vmlinux - rozpakowany obraz jÄ…dra.
471 Summary: DRM kernel modules
472 Summary(de.UTF-8): DRM Kernel Treiber
473 Summary(pl.UTF-8): Sterowniki DRM
475 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
476 Requires: %{name} = %{epoch}:%{version}-%{release}
477 Obsoletes: kernel-smp-drm
483 %description drm -l de.UTF-8
486 %description drm -l pl.UTF-8
490 Summary: PCMCIA modules
491 Summary(de.UTF-8): PCMCIA Module
492 Summary(pl.UTF-8): Moduły PCMCIA
494 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
495 Requires: %{name} = %{epoch}:%{version}-%{release}
496 Obsoletes: kernel-smp-pcmcia
497 Conflicts: pcmcia-cs < 3.1.21
498 Conflicts: pcmciautils < 004
504 %description pcmcia -l de.UTF-8
507 %description pcmcia -l pl.UTF-8
511 Summary: ALSA kernel modules
512 Summary(de.UTF-8): ALSA Kernel Module
513 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
515 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
516 Requires: %{name} = %{epoch}:%{version}-%{release}
517 Obsoletes: kernel-smp-sound-alsa
520 %description sound-alsa
521 ALSA (Advanced Linux Sound Architecture) sound drivers.
523 %description sound-alsa -l de.UTF-8
524 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
526 %description sound-alsa -l pl.UTF-8
527 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
530 Summary: OSS kernel modules
531 Summary(de.UTF-8): OSS Kernel Module
532 Summary(pl.UTF-8): Sterowniki dźwięku OSS
534 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
535 Requires: %{name} = %{epoch}:%{version}-%{release}
536 Obsoletes: kernel-smp-sound-oss
539 %description sound-oss
540 OSS (Open Sound System) drivers.
542 %description sound-oss -l de.UTF-8
543 OSS (Open Sound System) Treiber.
545 %description sound-oss -l pl.UTF-8
546 Sterowniki dźwięku OSS (Open Sound System).
549 Summary: Header files for the Linux kernel
550 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
551 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
552 Group: Development/Building
553 Provides: %{name}-headers(netfilter) = 20070806
557 These are the C header files for the Linux kernel, which define
558 structures and constants that are needed when rebuilding the kernel or
559 building kernel modules.
561 %description headers -l de.UTF-8
562 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
563 Strukturen und Konstante beinhalten, die beim rekompilieren des
564 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
566 %description headers -l pl.UTF-8
567 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
568 oraz budowania modułów jądra.
570 %package module-build
571 Summary: Development files for building kernel modules
572 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
573 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
574 Group: Development/Building
575 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
576 Conflicts: rpmbuild(macros) < 1.619
579 %description module-build
580 Development files from kernel source tree needed to build Linux kernel
581 modules from external packages.
583 %description module-build -l de.UTF-8
584 Development Dateien des Linux-Kernels die beim kompilieren externer
585 Kernel Module gebraucht werden.
587 %description module-build -l pl.UTF-8
588 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
589 Linuksa z zewnętrznych pakietów.
592 Summary: Kernel source tree
593 Summary(de.UTF-8): Der Kernel Quelltext
594 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
595 Group: Development/Building
596 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
600 This is the source code for the Linux kernel. You can build a custom
601 kernel that is better tuned to your particular hardware.
603 %description source -l de.UTF-8
604 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
605 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
606 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
607 im Kernel-Source definiert sind. Die Source-Dateien können auch
608 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
609 Hardware ausgerichtet ist.
611 %description source -l fr.UTF-8
612 Le package pour le kernel-source contient le code source pour le noyau
613 linux. Ces sources sont nécessaires pour compiler la plupart des
614 programmes C, car il dépend de constantes définies dans le code
615 source. Les sources peuvent être aussi utilisée pour compiler un noyau
616 personnalisé pour avoir de meilleures performances sur des matériels
619 %description source -l pl.UTF-8
620 Pakiet zawiera kod źródłowy jądra systemu.
623 Summary: Kernel documentation
624 Summary(de.UTF-8): Kernel Dokumentation
625 Summary(pl.UTF-8): Dokumentacja do jÄ…dra Linuksa
630 This is the documentation for the Linux kernel, as found in
631 /usr/src/linux/Documentation directory.
633 %description doc -l de.UTF-8
634 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
635 Verzeichniss vorgefunden werden kann.
637 %description doc -l pl.UTF-8
638 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
639 /usr/src/linux/Documentation.
643 ln -s %{SOURCE7} kernel-module-build.pl
644 ln -s %{SOURCE10} Makefile
647 # hack against warning in pax/grsec
648 sed -i 's/-Werror//' arch/alpha/kernel/Makefile
651 %if "%{postver}" != ".0"
655 %if %{without vanilla}
657 %if %{with fbcondecor}
666 # kernel-pom-ng-IPV4OPTSSTRIP.patch
669 # kernel-pom-ng-mms-conntrack-nat.patch
672 # kernel-pom-ng-rsh.patch
675 # kernel-pom-ng-rpc.patch
678 # kernel-nf_rtsp.patch
681 # kernel-owner-xid.patch
686 # kernel-layer7.patch
719 # kernel-rndis_host-wm5.patch
722 # hostap enhancements from/for aircrack-ng
745 # grsecurity & pax stuff
748 %if %{with grsecurity}
752 %{?with_vserver:%patch10000 -p1}
753 %{?with_vserver:%patch10001 -p1}
754 %{?with_vserver:%patch10002 -p1}
757 # end of grsecurity & pax stuff
774 # Do not remove this, please!
777 # Fix EXTRAVERSION in main Makefile
778 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:_%{alt_kernel}}#g' Makefile
780 # cleanup backups after patching
781 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
785 cat > %{targetobj}.mk <<'EOF'
786 # generated by %{name}.spec
787 KERNELSRC := %{srcdir}
788 KERNELOUTPUT := %{objdir}
790 SRCARCH := %{target_arch_dir}
791 ARCH := %{_target_base_arch}
792 Q := %{!?with_verbose:@}
793 MAKE_OPTS := %{MakeOpts}
794 DEFCONFIG := %{defconfig}
801 CONFIG_PAX_SEGMEXEC=y
802 # performance impact on CPUs without NX bit
803 CONFIG_PAX_PAGEEXEC=n
806 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
812 CONFIG_PAX_NOELFRELOCS=n
815 CONFIG_PAX_EMUTRAMP=y
816 CONFIG_PAX_EMUSIGRT=y
820 %ifarch sparc sparc64 alpha
824 # Now we have to check MAC system integration. Grsecurity uses PAX_HAVE_ACL_FLAGS
825 # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
826 # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
827 # PAX_HOOK_ACL_FLAGS.
829 %if %{with grsecurity}
830 # Hardening grsec options if with pax
831 CONFIG_GRKERNSEC_PROC_MEMMAP=y
832 # almost rational (see HIDESYM help)
833 CONFIG_GRKERNSEC_HIDESYM=y
835 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
837 CONFIG_PAX_HAVE_ACL_FLAGS=n
838 CONFIG_PAX_HOOK_ACL_FLAGS=y
848 # CONFIG_SOUND is not set
849 # CONFIG_AUDIT is not set
850 # CONFIG_TR is not set
851 # CONFIG_BT is not set
852 # CONFIG_VIDEO_DEV is not set
853 # CONFIG_DVB_CORE is not set
854 # CONFIG_HAMRADIO is not set
855 # CONFIG_ARCNET is not set
856 # CONFIG_FB is not set
857 # CONFIG_DRM is not set
858 # CONFIG_WATCHDOG is not set
859 # CONFIG_INPUT_JOYSTICK is not set
860 # CONFIG_DEBUG_KERNEL is not set
861 # CONFIG_ISDN is not set
862 # CONFIG_AGP is not set
863 # CONFIG_SECURITY is not set
864 # CONFIG_PARIDE is not set
865 # CONFIG_CPU_FREQ is not set
866 # CONFIG_GAMEPORT is not set
867 # CONFIG_KVM is not set
868 # CONFIG_PHONE is not set
869 # CONFIG_STRICT_DEVMEM is not set
870 # CONFIG_IMA is not set
873 CONFIG_AUFS_BR_RAMFS=y
875 CONFIG_BLK_DEV_LOOP=y
888 Config="kernel-%{target_arch_dir}.config"
889 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
891 # prepare local and important options
892 cat <<-EOCONFIG > important.config
893 LOCALVERSION="-%{localversion}"
897 CONFIG_DEBUG_SLAB_LEAK=y
898 CONFIG_DEBUG_PREEMPT=y
899 CONFIG_RT_DEADLOCK_DETECT=y
906 %ifarch i686 athlon pentium3 pentium4
915 %if %{without pcmcia}
919 %if %{with fbcondecor}
923 CONFIG_FB_TILEBLITTING=n
924 CONFIG_FB_CON_DECOR=y
932 # Temporary disabled RELOCATABLE. Needed only on x86??
933 %if %{with pax} || %{with grsecurity}
939 RescueConfig rescue.config
945 # prepare kernel-style config file from multiple config files
946 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
948 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
951 %if %{without vanilla}
962 %if %{with grsecurity}
980 %{SOURCE41} %{?0:patches} \
983 $RPM_SOURCE_DIR/$Config
987 install -d arch/%{target_arch_dir}
988 BuildConfig > %{defconfig}
989 ln -sf %{defconfig} .config
993 TARGETOBJ=%{targetobj} \
994 %{?with_verbose:V=1} \
997 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
1001 TARGETOBJ=%{targetobj} \
1002 %{?with_verbose:V=1} \
1006 rm -rf $RPM_BUILD_ROOT
1007 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
1009 %{?with_verbose:V=1} \
1011 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
1012 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
1013 KERNELRELEASE=%{kernel_release}
1015 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1017 # create directories which may be missing, to simplyfy %files
1018 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
1020 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
1021 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1022 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1024 # no point embed content for %ghost files. empty them
1031 {pci,usb,ccw,isapnp,input,ieee1394,serio,of}map \
1033 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1034 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1038 install -d $RPM_BUILD_ROOT/boot
1039 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1040 %ifarch %{ix86} %{x8664}
1041 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1042 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1045 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1046 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1049 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1050 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1051 ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1053 %ifarch alpha sparc sparc64
1054 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1055 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1056 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1058 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1059 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1062 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1063 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1067 install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1071 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1073 %if "%{_target_base_arch}" != "%{_arch}"
1074 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1078 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1081 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1083 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1084 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1086 rm -f $RPM_BUILD_ROOT/COPYING
1089 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1090 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}/Module.symvers-dist
1091 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}/config-dist
1092 cp -a %{objdir}/include/generated $RPM_BUILD_ROOT%{_kernelsrcdir}/include
1093 mv $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf{,-dist}.h
1094 cp -a %{objdir}/include/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
1095 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf.h
1096 cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
1098 # collect module-build files and directories
1099 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1101 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1102 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1105 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1106 install -d $RPM_BUILD_ROOT%{_docdir}
1107 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1109 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1110 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1111 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1112 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1115 rm -rf $RPM_BUILD_ROOT
1118 if [ -x /sbin/new-kernel-pkg ]; then
1119 /sbin/new-kernel-pkg --remove %{kernel_release}
1124 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1125 %{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1126 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1127 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
1129 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1130 %{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1131 mv -f /boot/System.map{,.old} 2> /dev/null
1132 %{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
1133 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1134 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
1135 ln -sf System.map-%{kernel_release} /boot/System.map
1136 %{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
1138 %depmod %{kernel_release}
1141 # generate initrd after all dependant modules are installed
1142 /sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1143 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1144 %{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
1145 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1146 %{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
1148 # update boot loaders when old package files are gone from filesystem
1149 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1150 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1151 /sbin/update-grub >/dev/null
1154 if [ -x /sbin/new-kernel-pkg ]; then
1155 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1157 if [ -x /sbin/rc-boot ]; then
1158 /sbin/rc-boot 1>&2 || :
1162 mv -f /boot/vmlinux{,.old} 2> /dev/null
1163 %{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
1164 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1165 %{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
1168 %depmod %{kernel_release}
1171 %depmod %{kernel_release}
1174 %depmod %{kernel_release}
1177 %depmod %{kernel_release}
1180 %depmod %{kernel_release}
1183 %depmod %{kernel_release}
1186 %depmod %{kernel_release}
1189 %depmod %{kernel_release}
1192 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1195 if [ "$1" = "0" ]; then
1196 if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1197 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1198 rm -f %{_prefix}/src/linux%{_alt_kernel}
1203 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1204 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1205 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1207 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1208 if [ "$1" = 0 ]; then
1209 rm -f /lib/modules/%{kernel_release}/{build,source}
1213 %defattr(644,root,root,755)
1214 %ifarch sparc sparc64
1215 /boot/vmlinux.aout-%{kernel_release}
1218 /boot/efi/vmlinuz-%{kernel_release}
1220 /boot/vmlinuz-%{kernel_release}
1221 /boot/System.map-%{kernel_release}
1222 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1223 /lib/firmware/%{kernel_release}
1225 %dir /lib/modules/%{kernel_release}
1226 %dir /lib/modules/%{kernel_release}/kernel
1227 /lib/modules/%{kernel_release}/kernel/arch
1228 /lib/modules/%{kernel_release}/kernel/crypto
1229 /lib/modules/%{kernel_release}/kernel/drivers
1231 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1233 /lib/modules/%{kernel_release}/kernel/fs
1234 /lib/modules/%{kernel_release}/kernel/kernel
1235 /lib/modules/%{kernel_release}/kernel/lib
1236 /lib/modules/%{kernel_release}/kernel/net
1237 /lib/modules/%{kernel_release}/kernel/mm
1239 %dir /lib/modules/%{kernel_release}/kernel/sound
1240 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1241 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1243 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1244 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1245 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1248 %dir /lib/modules/%{kernel_release}/misc
1250 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1251 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1252 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1253 %if %{without rescuecd}
1254 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1255 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1256 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1257 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1258 %exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1259 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1261 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1262 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1263 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1264 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1265 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1266 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1267 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/serial_cs.ko*
1268 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1271 /lib/modules/%{kernel_release}/kernel/sound
1273 /lib/modules/%{kernel_release}/kernel/security
1275 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1278 /lib/modules/%{kernel_release}/modules.order
1279 /lib/modules/%{kernel_release}/modules.builtin*
1281 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1282 %ghost /lib/modules/%{kernel_release}/modules.alias
1283 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1284 %ghost /lib/modules/%{kernel_release}/modules.ccwmap
1285 %ghost /lib/modules/%{kernel_release}/modules.dep
1286 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1287 %ghost /lib/modules/%{kernel_release}/modules.devname
1288 %ghost /lib/modules/%{kernel_release}/modules.ieee1394map
1289 %ghost /lib/modules/%{kernel_release}/modules.inputmap
1290 %ghost /lib/modules/%{kernel_release}/modules.isapnpmap
1291 %ghost /lib/modules/%{kernel_release}/modules.ofmap
1292 %ghost /lib/modules/%{kernel_release}/modules.pcimap
1293 %ghost /lib/modules/%{kernel_release}/modules.seriomap
1294 %ghost /lib/modules/%{kernel_release}/modules.softdep
1295 %ghost /lib/modules/%{kernel_release}/modules.symbols
1296 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1297 %ghost /lib/modules/%{kernel_release}/modules.usbmap
1299 # symlinks pointing to kernelsrcdir
1300 %ghost /lib/modules/%{kernel_release}/build
1301 %ghost /lib/modules/%{kernel_release}/source
1303 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1305 %defattr(644,root,root,755)
1306 /boot/vmlinux-%{kernel_release}
1311 %defattr(644,root,root,755)
1312 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1317 %defattr(644,root,root,755)
1318 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1319 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1320 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1321 %if %{without rescuecd}
1322 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1323 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1324 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1325 /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1327 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1328 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1329 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1330 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1331 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1332 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1333 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1334 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/serial_cs.ko*
1335 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1340 %defattr(644,root,root,755)
1341 /lib/modules/%{kernel_release}/kernel/sound
1342 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1343 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1344 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1346 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1349 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1350 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1351 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1352 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1357 %defattr(644,root,root,755)
1358 /lib/modules/%{kernel_release}/kernel/sound/oss
1362 %files headers -f files.headers_exclude_kbuild
1363 %defattr(644,root,root,755)
1364 %dir %{_kernelsrcdir}
1365 %{_kernelsrcdir}/include
1366 %dir %{_kernelsrcdir}/arch
1367 %dir %{_kernelsrcdir}/arch/[!K]*
1368 %{_kernelsrcdir}/arch/*/include
1369 %dir %{_kernelsrcdir}/security
1370 %dir %{_kernelsrcdir}/security/selinux
1371 %{_kernelsrcdir}/security/selinux/include
1372 %{_kernelsrcdir}/config-dist
1373 %{_kernelsrcdir}/Module.symvers-dist
1375 %files module-build -f files.mb_include_modulebuild_and_dirs
1376 %defattr(644,root,root,755)
1378 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1380 %exclude %dir %{_kernelsrcdir}/arch/um
1381 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1382 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1383 %{_kernelsrcdir}/drivers/lguest/lg.h
1384 %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1385 %{_kernelsrcdir}/kernel/bounds.c
1386 %dir %{_kernelsrcdir}/scripts
1387 %{_kernelsrcdir}/scripts/Kbuild.include
1388 %{_kernelsrcdir}/scripts/Makefile*
1389 %{_kernelsrcdir}/scripts/basic
1390 %{_kernelsrcdir}/scripts/kconfig
1391 %{_kernelsrcdir}/scripts/mkcompile_h
1392 %{_kernelsrcdir}/scripts/mkmakefile
1393 %{_kernelsrcdir}/scripts/mod
1394 %{_kernelsrcdir}/scripts/module-common.lds
1395 %{_kernelsrcdir}/scripts/setlocalversion
1396 %{_kernelsrcdir}/scripts/*.c
1397 %{_kernelsrcdir}/scripts/*.sh
1398 %dir %{_kernelsrcdir}/scripts/selinux
1399 %{_kernelsrcdir}/scripts/selinux/Makefile
1400 %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1401 %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1402 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1403 %dir %{_kernelsrcdir}/scripts/selinux/mdp
1404 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1405 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1406 %exclude %dir %{_kernelsrcdir}/security
1407 %exclude %dir %{_kernelsrcdir}/security/selinux
1408 %if %{with grsecurity}
1409 %{_kernelsrcdir}/tools/gcc/*.c
1414 %defattr(644,root,root,755)
1415 %dir %{_docdir}/%{name}-%{version}
1417 %{_docdir}/%{name}-%{version}/[!jkz]*
1418 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1419 %{_docdir}/%{name}-%{version}/kbuild
1420 %{_docdir}/%{name}-%{version}/kdump
1421 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1422 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1423 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1427 %files source -f files.source_exclude_modulebuild_and_dirs
1428 %defattr(644,root,root,755)
1429 %{_kernelsrcdir}/arch/*/[!Mik]*
1430 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1431 %{_kernelsrcdir}/arch/ia64/install.sh
1432 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1433 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1434 %{_kernelsrcdir}/arch/m68k/install.sh
1435 %{_kernelsrcdir}/arch/parisc/install.sh
1436 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1437 %{_kernelsrcdir}/arch/ia64/kvm
1438 %{_kernelsrcdir}/arch/powerpc/kvm
1440 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1442 %{_kernelsrcdir}/arch/s390/kvm
1443 %{_kernelsrcdir}/arch/x86/kvm
1444 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1445 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1446 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1447 %exclude %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1448 %{_kernelsrcdir}/block
1449 %{_kernelsrcdir}/crypto
1450 %{_kernelsrcdir}/drivers
1451 %{_kernelsrcdir}/firmware
1453 %if %{with grsecurity} && %{without rescuecd}
1454 %{_kernelsrcdir}/grsecurity
1456 %{_kernelsrcdir}/init
1457 %{_kernelsrcdir}/ipc
1458 %{_kernelsrcdir}/kernel
1459 %exclude %{_kernelsrcdir}/kernel/bounds.c
1460 %{_kernelsrcdir}/lib
1462 %{_kernelsrcdir}/net
1463 %{_kernelsrcdir}/virt
1464 %{_kernelsrcdir}/samples
1465 %{_kernelsrcdir}/scripts/*
1466 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1467 %exclude %{_kernelsrcdir}/scripts/Makefile*
1468 %exclude %{_kernelsrcdir}/scripts/basic
1469 %exclude %{_kernelsrcdir}/scripts/kconfig
1470 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1471 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1472 %exclude %{_kernelsrcdir}/scripts/mod
1473 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1474 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1475 %exclude %{_kernelsrcdir}/scripts/*.c
1476 %exclude %{_kernelsrcdir}/scripts/*.sh
1477 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1478 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1479 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1480 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1481 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1482 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1483 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1484 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1485 %{_kernelsrcdir}/sound
1486 %{_kernelsrcdir}/security
1487 %exclude %{_kernelsrcdir}/security/selinux/include
1488 %{_kernelsrcdir}/tools/*
1489 %if %{with grsecurity}
1490 %exclude %{_kernelsrcdir}/tools/gcc/*.c
1492 %{_kernelsrcdir}/usr
1493 %{_kernelsrcdir}/COPYING
1494 %{_kernelsrcdir}/CREDITS
1495 %{_kernelsrcdir}/MAINTAINERS
1496 %{_kernelsrcdir}/README
1497 %{_kernelsrcdir}/REPORTING-BUGS