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_with 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_without pae # build PAE (HIGHMEM64G) support on 32bit i686 athlon pentium3 pentium4
35 %bcond_with nfsroot # build with root on NFS support
37 %bcond_without imq # imq support
38 %bcond_without esfq # esfq support
39 %bcond_without ipv6 # ipv6 support
41 %bcond_without vserver # support for VServer (enabled by default)
43 %bcond_with vanilla # don't include any patches
44 %bcond_with rescuecd # build kernel for our rescue
45 %bcond_with myown # build with your own config (kernel-myown.config)
47 %{?debug:%define with_verbose 1}
50 %unglobal with_grsecurity
53 %if %{without grsecurity}
58 %define with_grsecurity 1
68 %unglobal with_grsecurity
70 %unglobal with_vserver
96 # __alt_kernel is list of features, empty string if none set
97 # _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
98 # alt_kernel should be defined if __alt_kernel has non-empty value (for %{?alt_kernel:foo} constructs)
100 # these override whatever name was picked from bconds
102 %if "%{_alt_kernel}" == ""
103 %define alt_kernel myown
107 %define alt_kernel vanilla
110 %define alt_kernel rescuecd
111 %else # not rescuecd:
112 %define __alt_kernel longterm%{?with_pax:pax}%{?with_grsecurity:grsecurity}
113 %if "%{__alt_kernel}" != ""
114 %define alt_kernel %{__alt_kernel}
116 %endif # not rescuecd
120 # kernel release (used in filesystem and eventually in uname -r)
121 # modules will be looked from /lib/modules/%{kernel_release}
122 # localversion is just that without version for "> localversion"
123 %define localversion %{rel}
124 %define kernel_release %{version}%{?alt_kernel:.%{alt_kernel}}-%{localversion}
126 Summary: The Linux kernel (the core of the Linux operating system)
127 Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
128 Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
129 Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
130 Summary(pl.UTF-8): JÄ…dro Linuksa
131 Name: kernel%{_alt_kernel}
132 Version: %{basever}%{postver}
137 Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
138 # Source0-md5: 967f72983655e2479f951195953e8480
139 %if "%{postver}" != ".0"
140 Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz
141 # Patch0-md5: 3ce8b674af5622553dbd0d730b75392b
143 Source1: kernel.sysconfig
145 Source3: kernel-autoconf.h
146 Source4: kernel-config.h
147 Source6: kernel-config.awk
148 Source7: kernel-module-build.pl
149 Source8: kernel-track-config-change.awk
150 # not used by kernel.spec, but it's good to have it in SOURCES
151 Source9: kernel-config-sort.pl
152 Source10: kernel.make
154 Source20: kernel-multiarch.config
155 Source21: kernel-x86.config
156 Source22: kernel-sparc.config
157 Source23: kernel-alpha.config
158 Source24: kernel-powerpc.config
159 Source25: kernel-ia64.config
161 Source41: kernel-patches.config
162 Source43: kernel-vserver.config
163 Source45: kernel-grsec.config
165 Source49: kernel-pax.config
166 Source50: kernel-no-pax.config
167 Source55: kernel-imq.config
168 Source56: kernel-reiser4.config
170 Source58: kernel-inittmpfs.config
172 # http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
173 Patch3: kernel-fbcondecor.patch
174 Patch4: kernel-fbcon-margins.patch
175 Patch5: linux-wistron-amilo8210.patch
177 # netfilter related stuff mostly based on patch-o-matic-ng
178 # snapshot 20070806 with some fixes. Some modules
179 # were ported to nf_conntrack.
181 Patch10: kernel-pom-ng-IPV4OPTSSTRIP.patch
183 Patch16: kernel-pom-ng-mms-conntrack-nat.patch
184 Patch22: kernel-pom-ng-rsh.patch
185 Patch23: kernel-pom-ng-rpc.patch
187 # http://ftp.linux-vserver.org/pub/people/dhozac/p/k/delta-owner-xid-feat02.diff
188 Patch37: kernel-owner-xid.patch
190 # based on kernel-2.6.25-layer7-2.20.patch from
191 # http://switch.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.20.tar.gz
192 Patch40: kernel-layer7.patch
196 # http://zph.bratcheda.org/linux-2.6.26.3-zph.patch
197 Patch49: kernel-zph.patch
199 # based on http://www.linuximq.net/patchs/patch-imqmq-3.1.diff.bz2
200 Patch50: kernel-imq.patch
202 # http://www.kernel.org/pub/linux/kernel/people/edward/reiser4/reiser4-for-2.6/reiser4-for-2.6.35.patch.bz2
203 Patch51: kernel-reiser4.patch
205 # http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
206 Patch53: kernel-esfq.patch
208 # by Baggins request:
209 # derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
210 Patch55: kernel-atm-vbr.patch
211 Patch56: kernel-atmdd.patch
213 # http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
214 Patch59: kernel-rndis_host-wm5.patch
216 # adds some ids for hostap suported cards and monitor_enable from/for aircrack-ng
217 # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
218 Patch85: kernel-hostap.patch
220 # http://vserver.13thfloor.at/Experimental/patch-3.4.22-vs2.3.3.9.diff
221 Patch100: kernel-vserver-2.3.patch
222 Patch101: kernel-vserver-fixes.patch
224 # http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.11_for_3.3.0-rc3.diff.gz
225 Patch140: kernel-unionfs.patch
227 # git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git, read README
229 # git clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git
230 # cd aufs3-standalone
231 # git checkout -b aufs3.4 origin/aufs3.4
232 # cat aufs3-kbuild.patch aufs3-base.patch aufs3-standalone.patch > ~/rpm/packages/kernel/kernel-aufs3.patch
234 # cp -a Documentation fs include linux
235 # diff -urN /usr/share/empty linux >> ~/rpm/packages/kernel/kernel-aufs3.patch
236 # drop hunk at the end of patch (hunk is patching include/linux/Kbuild with single line change)
238 Patch145: kernel-aufs3.patch
239 Patch146: kernel-aufs2-unionfs.patch
240 Patch147: kernel-aufs2-no-const-grsec.patch
241 Patch148: kernel-aufs2-reiser4.patch
243 # Show normal colors in menuconfig with ncurses ABI 6
244 Patch250: kernel-fix_256colors_menuconfig.patch
246 # https://patchwork.kernel.org/patch/236261/
247 Patch400: kernel-virtio-gl-accel.patch
249 Patch2000: kernel-small_fixes.patch
250 Patch2001: kernel-pwc-uncompress.patch
251 Patch2003: kernel-regressions.patch
253 # http://git.kernel.org/?p=linux/kernel/git/jj/linux-apparmor.git;a=shortlog;h=refs/heads/v3.4-aa2.8
254 Patch5000: kernel-apparmor.patch
257 # based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
258 Patch7000: kernel-inittmpfs.patch
260 # based on http://grsecurity.net/~spender/grsecurity-2.2.2-3.1.1-201111181902.patch
261 # NOTE: put raw upstream patches on kernel-grsec_full.patch:GRSECURITY_RAW for reference
262 # (since upstream deletes older patches)
263 # NOTE: mirror of old grsecurity patches:
264 # https://github.com/slashbeast/grsecurity-scrape/tree/master/test
265 Patch9999: kernel-grsec_full.patch
266 Patch10000: kernel-grsec-caps.patch
267 Patch10001: kernel-grsec-common.patch
268 Patch10002: kernel-grsec_fixes.patch
270 # Do not remove this line, please. It is easier for me to uncomment two lines, then patch
271 # kernel.spec every time.
272 #Patch50000: kernel-usb_reset.patch
274 URL: http://www.kernel.org/
275 BuildRequires: binutils >= 3:2.18
276 %ifarch sparc sparc64
277 BuildRequires: elftoaout
280 BuildRequires: uboot-mkimage
282 BuildRequires: /sbin/depmod
283 BuildRequires: gcc >= 5:3.2
284 BuildRequires: xz >= 1:4.999.7
286 BuildRequires: hostname
288 BuildRequires: perl-base
289 BuildRequires: rpm-build >= 4.5-24
290 BuildRequires: rpmbuild(macros) >= 1.652
291 Requires(post): coreutils
292 Requires(post): geninitrd >= 10000-3
293 Requires(post): kmod >= 12-2
294 Requires: /sbin/depmod
296 Requires: geninitrd >= 10000-3
297 Requires: kmod >= 12-2
299 %ifarch i686 athlon pentium3 pentium4
300 Requires: cpuinfo(pae)
305 Suggests: linux-firmware
306 Provides: %{name}(netfilter) = 20070806
307 Provides: %{name}(vermagic) = %{kernel_release}
308 Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100
309 Obsoletes: kernel%{_alt_kernel}-char-lirc-it87
310 Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709
311 Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb
312 Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap
313 Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
314 Obsoletes: kernel-firmware
315 Obsoletes: kernel-misc-acer_acpi
316 Obsoletes: kernel-misc-fuse
317 Obsoletes: kernel-misc-uvc
318 Obsoletes: kernel-modules
319 Obsoletes: kernel-net-ar81
320 Obsoletes: kernel-net-hostap
321 Obsoletes: kernel-net-ieee80211
322 Obsoletes: kernel-net-ipp2p
323 Obsoletes: kernel-net-rt61
324 Obsoletes: kernel-smp
325 Conflicts: e2fsprogs < 1.29
326 Conflicts: isdn4k-utils < 3.1pre1
327 Conflicts: jfsutils < 1.1.3
328 Conflicts: linux-firmware < 20120720
329 Conflicts: lvm2 < 2.02.40
330 Conflicts: module-init-tools < 3.16
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
343 ExclusiveArch: %{ix86} %{x8664} alpha arm ia64 ppc ppc64 sparc sparc64
345 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
347 %ifarch %{ix86} %{x8664}
348 %define target_arch_dir x86
351 %define target_arch_dir powerpc
353 %ifarch sparc sparc64
354 %define target_arch_dir sparc
356 %ifnarch %{ix86} %{x8664} ppc ppc64 sparc sparc64
357 %define target_arch_dir %{_target_base_arch}
360 %define defconfig arch/%{target_arch_dir}/defconfig
362 # No ELF objects there to strip (skips processing 27k files)
363 %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
364 %define _noautochrpath .*%{_kernelsrcdir}/.*
365 %define _enable_debug_packages 0
368 %define initrd_dir /boot/efi
370 %define initrd_dir /boot
373 %define topdir %{_builddir}/%{name}-%{version}
374 %define srcdir %{topdir}/linux-%{basever}
375 %define objdir %{topdir}/%{targetobj}
376 %define targetobj %{_target_base_arch}-gcc-%(%{__cc} -dumpversion)
378 %define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version}
380 %if "%{_target_base_arch}" != "%{_host_base_arch}"
381 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
382 %define DepMod /bin/true
384 %if "%{_host_base_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
385 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
386 %define DepMod /sbin/depmod
389 %if "%{_host_base_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
390 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
391 %define DepMod /sbin/depmod
394 %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
395 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
396 %define DepMod /sbin/depmod
399 %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
400 %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
404 %define CrossOpts ARCH=powerpc CC="%{__cc}"
406 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
408 %define DepMod /sbin/depmod
410 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
413 %{?with_grsecurity:Grsecurity support - enabled}\
414 %{?with_pax:PaX support - enabled}\
415 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
416 %{?with_nfsroot:Root on NFS - enabled}\
418 %define Features %(echo "%{__features}" | sed '/^$/d')
421 This package contains the Linux kernel that is used to boot and run
422 your system. It contains few device drivers for specific hardware.
423 Most hardware is instead supported by modules loaded after booting.
427 %description -l de.UTF-8
428 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
429 Linux-Betriebssystems. Der Kernel ist für grundliegende
430 Systemfunktionen verantwortlich: Speicherreservierung,
431 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
435 %description -l fr.UTF-8
436 Le package kernel contient le kernel linux (vmlinuz), la partie
437 centrale d'un système d'exploitation Linux. Le noyau traite les
438 fonctions basiques d'un système d'exploitation: allocation mémoire,
439 allocation de process, entrée/sortie de peripheriques, etc.
443 %description -l pl.UTF-8
444 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
445 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
446 się w komputerze, takiego jak sterowniki dysków itp.
451 Summary: vmlinux - uncompressed kernel image
452 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
453 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jÄ…dra
455 Obsoletes: kernel-smp-vmlinux
458 vmlinux - uncompressed kernel image.
460 %description vmlinux -l de.UTF-8
461 vmlinux - dekompressiertes Kernel Bild.
463 %description vmlinux -l pl.UTF-8
464 vmlinux - rozpakowany obraz jÄ…dra.
467 Summary: DRM kernel modules
468 Summary(de.UTF-8): DRM Kernel Treiber
469 Summary(pl.UTF-8): Sterowniki DRM
471 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
472 Requires: %{name} = %{epoch}:%{version}-%{release}
473 Obsoletes: kernel-smp-drm
479 %description drm -l de.UTF-8
482 %description drm -l pl.UTF-8
486 Summary: PCMCIA modules
487 Summary(de.UTF-8): PCMCIA Module
488 Summary(pl.UTF-8): Moduły PCMCIA
490 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
491 Requires: %{name} = %{epoch}:%{version}-%{release}
492 Obsoletes: kernel-smp-pcmcia
493 Conflicts: pcmcia-cs < 3.1.21
494 Conflicts: pcmciautils < 004
500 %description pcmcia -l de.UTF-8
503 %description pcmcia -l pl.UTF-8
507 Summary: ALSA kernel modules
508 Summary(de.UTF-8): ALSA Kernel Module
509 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
511 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
512 Requires: %{name} = %{epoch}:%{version}-%{release}
513 Obsoletes: kernel-smp-sound-alsa
516 %description sound-alsa
517 ALSA (Advanced Linux Sound Architecture) sound drivers.
519 %description sound-alsa -l de.UTF-8
520 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
522 %description sound-alsa -l pl.UTF-8
523 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
526 Summary: OSS kernel modules
527 Summary(de.UTF-8): OSS Kernel Module
528 Summary(pl.UTF-8): Sterowniki dźwięku OSS
530 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
531 Requires: %{name} = %{epoch}:%{version}-%{release}
532 Obsoletes: kernel-smp-sound-oss
535 %description sound-oss
536 OSS (Open Sound System) drivers.
538 %description sound-oss -l de.UTF-8
539 OSS (Open Sound System) Treiber.
541 %description sound-oss -l pl.UTF-8
542 Sterowniki dźwięku OSS (Open Sound System).
545 Summary: Header files for the Linux kernel
546 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
547 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
548 Group: Development/Building
549 Provides: %{name}-headers(netfilter) = 20070806
553 These are the C header files for the Linux kernel, which define
554 structures and constants that are needed when rebuilding the kernel or
555 building kernel modules.
557 %description headers -l de.UTF-8
558 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
559 Strukturen und Konstante beinhalten, die beim rekompilieren des
560 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
562 %description headers -l pl.UTF-8
563 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
564 oraz budowania modułów jądra.
566 %package module-build
567 Summary: Development files for building kernel modules
568 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
569 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
570 Group: Development/Building
571 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
572 Conflicts: rpmbuild(macros) < 1.652
575 %description module-build
576 Development files from kernel source tree needed to build Linux kernel
577 modules from external packages.
579 %description module-build -l de.UTF-8
580 Development Dateien des Linux-Kernels die beim kompilieren externer
581 Kernel Module gebraucht werden.
583 %description module-build -l pl.UTF-8
584 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
585 Linuksa z zewnętrznych pakietów.
588 Summary: Kernel source tree
589 Summary(de.UTF-8): Der Kernel Quelltext
590 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
591 Group: Development/Building
592 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
596 This is the source code for the Linux kernel. You can build a custom
597 kernel that is better tuned to your particular hardware.
599 %description source -l de.UTF-8
600 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
601 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
602 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
603 im Kernel-Source definiert sind. Die Source-Dateien können auch
604 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
605 Hardware ausgerichtet ist.
607 %description source -l fr.UTF-8
608 Le package pour le kernel-source contient le code source pour le noyau
609 linux. Ces sources sont nécessaires pour compiler la plupart des
610 programmes C, car il dépend de constantes définies dans le code
611 source. Les sources peuvent être aussi utilisée pour compiler un noyau
612 personnalisé pour avoir de meilleures performances sur des matériels
615 %description source -l pl.UTF-8
616 Pakiet zawiera kod źródłowy jądra systemu.
619 Summary: Kernel documentation
620 Summary(de.UTF-8): Kernel Dokumentation
621 Summary(pl.UTF-8): Dokumentacja do jÄ…dra Linuksa
626 This is the documentation for the Linux kernel, as found in
627 /usr/src/linux/Documentation directory.
629 %description doc -l de.UTF-8
630 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
631 Verzeichniss vorgefunden werden kann.
633 %description doc -l pl.UTF-8
634 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
635 /usr/src/linux/Documentation.
639 ln -s %{SOURCE7} kernel-module-build.pl
640 ln -s %{SOURCE10} Makefile
643 # hack against warning in pax/grsec
644 sed -i 's/-Werror//' arch/alpha/kernel/Makefile
647 %if "%{postver}" != ".0"
651 %if %{without vanilla}
653 %if %{with fbcondecor}
662 # kernel-pom-ng-IPV4OPTSSTRIP.patch
665 # kernel-pom-ng-mms-conntrack-nat.patch
668 # kernel-pom-ng-rsh.patch
671 # kernel-pom-ng-rpc.patch
674 # kernel-owner-xid.patch
679 # kernel-layer7.patch
705 # kernel-rndis_host-wm5.patch
708 # hostap enhancements from/for aircrack-ng
731 # grsecurity & pax stuff
733 %if %{with grsecurity}
738 %{?with_vserver:%patch10000 -p1}
739 %{?with_vserver:%patch10001 -p1}
740 %{?with_vserver:%patch10002 -p1}
743 # end of grsecurity & pax stuff
760 # Do not remove this, please!
763 # Fix EXTRAVERSION in main Makefile
764 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
766 # cleanup backups after patching
767 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
771 cat > %{targetobj}.mk <<'EOF'
772 # generated by %{name}.spec
773 KERNELSRC := %{srcdir}
774 KERNELOUTPUT := %{objdir}
776 SRCARCH := %{target_arch_dir}
777 ARCH := %{_target_base_arch}
778 Q := %{!?with_verbose:@}
779 MAKE_OPTS := %{MakeOpts}
780 DEFCONFIG := %{defconfig}
787 CONFIG_PAX_SEGMEXEC=y
788 # performance impact on CPUs without NX bit
789 CONFIG_PAX_PAGEEXEC=n
792 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
798 CONFIG_PAX_NOELFRELOCS=n
801 CONFIG_PAX_EMUTRAMP=y
802 CONFIG_PAX_EMUSIGRT=y
806 %ifarch sparc sparc64 alpha
810 # Now we have to check MAC system integration. Grsecurity uses PAX_HAVE_ACL_FLAGS
811 # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
812 # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
813 # PAX_HOOK_ACL_FLAGS.
815 %if %{with grsecurity}
816 # Hardening grsec options if with pax
817 CONFIG_GRKERNSEC_PROC_MEMMAP=y
818 # almost rational (see HIDESYM help)
819 CONFIG_GRKERNSEC_HIDESYM=y
821 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
823 CONFIG_PAX_HAVE_ACL_FLAGS=n
824 CONFIG_PAX_HOOK_ACL_FLAGS=y
834 # CONFIG_SOUND is not set
835 # CONFIG_AUDIT is not set
836 # CONFIG_TR is not set
837 # CONFIG_BT is not set
838 # CONFIG_VIDEO_DEV is not set
839 # CONFIG_DVB_CORE is not set
840 # CONFIG_HAMRADIO is not set
841 # CONFIG_ARCNET is not set
842 # CONFIG_FB is not set
843 # CONFIG_DRM is not set
844 # CONFIG_WATCHDOG is not set
845 # CONFIG_INPUT_JOYSTICK is not set
846 # CONFIG_DEBUG_KERNEL is not set
847 # CONFIG_ISDN is not set
848 # CONFIG_AGP is not set
849 # CONFIG_SECURITY is not set
850 # CONFIG_PARIDE is not set
851 # CONFIG_CPU_FREQ is not set
852 # CONFIG_GAMEPORT is not set
853 # CONFIG_KVM is not set
854 # CONFIG_PHONE is not set
855 # CONFIG_STRICT_DEVMEM is not set
856 # CONFIG_IMA is not set
859 CONFIG_AUFS_BR_RAMFS=y
861 CONFIG_BLK_DEV_LOOP=y
874 Config="kernel-%{target_arch_dir}.config"
875 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
877 # prepare local and important options
878 cat <<-EOCONFIG > important.config
879 LOCALVERSION="-%{localversion}"
883 CONFIG_DEBUG_SLAB_LEAK=y
884 CONFIG_DEBUG_PREEMPT=y
885 CONFIG_RT_DEADLOCK_DETECT=y
892 %ifarch i686 athlon pentium3 pentium4
901 %if %{without pcmcia}
905 %if %{with fbcondecor}
909 CONFIG_FB_TILEBLITTING=n
910 CONFIG_FB_CON_DECOR=y
918 # Temporary disabled RELOCATABLE. Needed only on x86??
919 %if %{with pax} || %{with grsecurity}
925 RescueConfig rescue.config
931 # prepare kernel-style config file from multiple config files
932 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
934 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
937 %if %{without vanilla}
948 %if %{with grsecurity}
963 %{SOURCE41} %{?0:patches} \
966 $RPM_SOURCE_DIR/$Config
970 install -d arch/%{target_arch_dir}
971 BuildConfig > %{defconfig}
972 ln -sf %{defconfig} .config
976 TARGETOBJ=%{targetobj} \
977 %{?with_verbose:V=1} \
980 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
984 TARGETOBJ=%{targetobj} \
985 %{?with_verbose:V=1} \
989 rm -rf $RPM_BUILD_ROOT
990 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
992 %{?with_verbose:V=1} \
994 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
995 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
996 KERNELRELEASE=%{kernel_release}
998 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1000 # create directories which may be missing, to simplyfy %files
1001 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
1003 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
1004 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1005 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1007 # no point embed content for %ghost files. empty them
1015 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1016 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1020 install -d $RPM_BUILD_ROOT/boot
1021 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1022 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
1023 %ifarch %{ix86} %{x8664}
1024 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1025 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1028 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1029 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1032 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1033 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1034 ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1036 %ifarch alpha sparc sparc64
1037 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1038 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1039 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1041 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1042 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1045 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1046 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1050 install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1054 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1055 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
1057 %if "%{_target_base_arch}" != "%{_host_base_arch}"
1058 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1062 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1064 install -d $RPM_BUILD_ROOT/etc/sysconfig
1065 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
1068 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1070 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1071 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1073 rm -f $RPM_BUILD_ROOT/COPYING
1076 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1077 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
1078 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
1079 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
1080 # copy arch/x86/include/generated
1081 for dir in $(cd %{objdir} && find arch -name generated -type d); do
1082 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
1083 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
1086 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
1087 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
1089 # collect module-build files and directories
1090 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1092 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1093 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1096 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
1098 if [ -x "$f" ]; then
1099 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1101 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1103 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
1104 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
1107 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1108 install -d $RPM_BUILD_ROOT%{_docdir}
1109 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1111 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1112 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1113 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1114 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1117 rm -rf $RPM_BUILD_ROOT
1120 if [ -x /sbin/new-kernel-pkg ]; then
1121 /sbin/new-kernel-pkg --remove %{kernel_release}
1125 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1126 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1128 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1129 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1130 %if 0%{?alt_kernel:1}
1131 mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1132 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}
1135 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1136 mv -f /boot/System.map{,.old} 2> /dev/null
1137 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1138 ln -sf System.map-%{kernel_release} /boot/System.map
1139 %if 0%{?alt_kernel:1}
1140 mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1141 mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
1142 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}
1143 ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
1147 %depmod %{kernel_release}
1150 # use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
1151 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1153 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
1154 /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release} || :
1155 initrd_file="initrd-%{kernel_release}.gz"
1158 # if dracut is present then generate full-featured initramfs
1159 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
1160 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
1161 [ -n "$initrd_file" ] || initrd_file="initramfs-%{kernel_release}.img"
1164 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1165 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1166 if [ -n "$initrd_file" ] ; then
1167 ln -sf "$initrd_file" %{initrd_dir}/initrd
1169 %if 0%{?alt_kernel:1}
1170 mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
1171 if [ -n "$initrd_file" ] ; then
1172 ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
1177 # update boot loaders when old package files are gone from filesystem
1178 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1179 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1180 /sbin/update-grub >/dev/null
1183 if [ -x /sbin/new-kernel-pkg ]; then
1184 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1186 if [ -x /sbin/rc-boot ]; then
1187 /sbin/rc-boot 1>&2 || :
1189 if [ -x /sbin/efi-boot-update ]; then
1190 /sbin/efi-boot-update --auto || :
1194 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1195 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1196 mv -f /boot/vmlinux{,.old} 2> /dev/null
1197 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1198 %if 0%{?alt_kernel:1}
1199 mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
1200 ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
1205 %depmod %{kernel_release}
1208 %depmod %{kernel_release}
1211 %depmod %{kernel_release}
1214 %depmod %{kernel_release}
1217 %depmod %{kernel_release}
1220 %depmod %{kernel_release}
1223 %depmod %{kernel_release}
1226 %depmod %{kernel_release}
1229 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1232 if [ "$1" = "0" ]; then
1233 if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1234 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1235 rm -f %{_prefix}/src/linux%{_alt_kernel}
1240 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1241 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1242 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1244 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1245 if [ "$1" = 0 ]; then
1246 rm -f /lib/modules/%{kernel_release}/{build,source}
1250 %defattr(644,root,root,755)
1251 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
1252 %ifarch sparc sparc64
1253 /boot/vmlinux.aout-%{kernel_release}
1256 /boot/efi/vmlinuz-%{kernel_release}
1258 /boot/vmlinuz-%{kernel_release}
1259 /boot/System.map-%{kernel_release}
1260 /boot/config-%{kernel_release}
1261 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1262 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
1263 /lib/firmware/%{kernel_release}
1265 %dir /lib/modules/%{kernel_release}
1266 %dir /lib/modules/%{kernel_release}/kernel
1267 /lib/modules/%{kernel_release}/kernel/arch
1268 /lib/modules/%{kernel_release}/kernel/crypto
1269 /lib/modules/%{kernel_release}/kernel/drivers
1271 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1273 /lib/modules/%{kernel_release}/kernel/fs
1274 /lib/modules/%{kernel_release}/kernel/kernel
1275 /lib/modules/%{kernel_release}/kernel/lib
1276 /lib/modules/%{kernel_release}/kernel/net
1277 /lib/modules/%{kernel_release}/kernel/mm
1279 %dir /lib/modules/%{kernel_release}/kernel/sound
1280 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1281 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1283 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1284 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1285 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1288 %dir /lib/modules/%{kernel_release}/misc
1290 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1291 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1292 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1293 %if %{without rescuecd}
1294 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1295 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1296 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1297 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1298 %exclude /lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
1299 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1301 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1302 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1303 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1304 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1305 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1306 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1307 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1308 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1311 /lib/modules/%{kernel_release}/kernel/sound
1313 /lib/modules/%{kernel_release}/kernel/security
1315 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1318 /lib/modules/%{kernel_release}/modules.order
1319 /lib/modules/%{kernel_release}/modules.builtin*
1321 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1322 %ghost /lib/modules/%{kernel_release}/modules.alias
1323 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1324 %ghost /lib/modules/%{kernel_release}/modules.dep
1325 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1326 %ghost /lib/modules/%{kernel_release}/modules.devname
1327 %ghost /lib/modules/%{kernel_release}/modules.softdep
1328 %ghost /lib/modules/%{kernel_release}/modules.symbols
1329 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1331 # symlinks pointing to kernelsrcdir
1332 %ghost /lib/modules/%{kernel_release}/build
1333 %ghost /lib/modules/%{kernel_release}/source
1335 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1337 %defattr(644,root,root,755)
1338 /boot/vmlinux-%{kernel_release}
1343 %defattr(644,root,root,755)
1344 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1349 %defattr(644,root,root,755)
1350 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1351 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1352 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1353 %if %{without rescuecd}
1354 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1355 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1356 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1357 /lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
1359 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1360 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1361 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1362 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1363 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1364 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1365 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1366 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1367 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1372 %defattr(644,root,root,755)
1373 /lib/modules/%{kernel_release}/kernel/sound
1374 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1375 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1376 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1378 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1381 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1382 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1383 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1384 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1389 %defattr(644,root,root,755)
1390 /lib/modules/%{kernel_release}/kernel/sound/oss
1394 %files headers -f files.headers_exclude_kbuild
1395 %defattr(644,root,root,755)
1396 %dir %{_kernelsrcdir}
1397 %{_kernelsrcdir}/include
1398 %dir %{_kernelsrcdir}/arch
1399 %dir %{_kernelsrcdir}/arch/[!K]*
1400 %{_kernelsrcdir}/arch/*/include
1401 %dir %{_kernelsrcdir}/security
1402 %dir %{_kernelsrcdir}/security/selinux
1403 %{_kernelsrcdir}/security/selinux/include
1404 %{_kernelsrcdir}/.config
1405 %{_kernelsrcdir}/Module.symvers
1407 %files module-build -f files.mb_include_modulebuild_and_dirs
1408 %defattr(644,root,root,755)
1410 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1412 %exclude %dir %{_kernelsrcdir}/arch/um
1413 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1414 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1415 %{_kernelsrcdir}/drivers/lguest/lg.h
1416 %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1417 %{_kernelsrcdir}/kernel/bounds.c
1418 %{_kernelsrcdir}/scripts/basic/*.c
1419 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1420 %{_kernelsrcdir}/scripts/kconfig/*.in
1421 %{_kernelsrcdir}/scripts/kconfig/*_shipped
1422 %{_kernelsrcdir}/scripts/kconfig/*.pl
1423 %{_kernelsrcdir}/scripts/kconfig/*.glade
1424 %{_kernelsrcdir}/scripts/kconfig/*.gperf
1425 %{_kernelsrcdir}/scripts/kconfig/*.cc
1426 %{_kernelsrcdir}/scripts/kconfig/*.y
1427 %{_kernelsrcdir}/scripts/kconfig/*.l
1428 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1429 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1430 %{_kernelsrcdir}/scripts/kconfig/l*.h
1431 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1432 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1433 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1434 %{_kernelsrcdir}/scripts/mod/*.c
1435 %{_kernelsrcdir}/scripts/mod/[^e]*.h
1436 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1437 %{_kernelsrcdir}/scripts/mkmakefile
1438 %{_kernelsrcdir}/scripts/module-common.lds
1439 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1440 %{_kernelsrcdir}/scripts/*.c
1441 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1442 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1443 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1444 %exclude %dir %{_kernelsrcdir}/security
1445 %exclude %dir %{_kernelsrcdir}/security/selinux
1446 %if %{with grsecurity}
1447 %{_kernelsrcdir}/tools/gcc/*.c
1452 %defattr(644,root,root,755)
1453 %dir %{_docdir}/%{name}-%{version}
1455 %{_docdir}/%{name}-%{version}/[!jkz]*
1456 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1457 %{_docdir}/%{name}-%{version}/kbuild
1458 %{_docdir}/%{name}-%{version}/kdump
1459 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1460 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1461 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1465 %files source -f files.source_exclude_modulebuild_and_dirs
1466 %defattr(644,root,root,755)
1467 %{_kernelsrcdir}/arch/*/[!Mik]*
1468 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1469 %{_kernelsrcdir}/arch/ia64/install.sh
1470 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1471 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1472 %{_kernelsrcdir}/arch/m68k/install.sh
1473 %{_kernelsrcdir}/arch/parisc/install.sh
1474 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1475 %{_kernelsrcdir}/arch/ia64/kvm
1476 %{_kernelsrcdir}/arch/powerpc/kvm
1478 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1480 %{_kernelsrcdir}/arch/s390/kvm
1481 %{_kernelsrcdir}/arch/x86/kvm
1482 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1483 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1484 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1485 %exclude %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1486 %{_kernelsrcdir}/block
1487 %{_kernelsrcdir}/crypto
1488 %{_kernelsrcdir}/drivers
1489 %{_kernelsrcdir}/firmware
1491 %if %{with grsecurity} && %{without rescuecd}
1492 %{_kernelsrcdir}/grsecurity
1494 %{_kernelsrcdir}/init
1495 %{_kernelsrcdir}/ipc
1496 %{_kernelsrcdir}/kernel
1497 %exclude %{_kernelsrcdir}/kernel/bounds.c
1498 %{_kernelsrcdir}/lib
1500 %{_kernelsrcdir}/net
1501 %{_kernelsrcdir}/virt
1502 %{_kernelsrcdir}/samples
1503 %{_kernelsrcdir}/scripts/*
1504 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1505 %exclude %{_kernelsrcdir}/scripts/Makefile*
1506 %exclude %{_kernelsrcdir}/scripts/basic
1507 %exclude %{_kernelsrcdir}/scripts/kconfig
1508 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1509 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1510 %exclude %{_kernelsrcdir}/scripts/mod
1511 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1512 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1513 %exclude %{_kernelsrcdir}/scripts/*.c
1514 %exclude %{_kernelsrcdir}/scripts/*.sh
1515 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1516 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1517 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1518 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1519 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1520 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1521 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1522 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1523 %{_kernelsrcdir}/sound
1524 %{_kernelsrcdir}/security
1525 %exclude %{_kernelsrcdir}/security/selinux/include
1526 %{_kernelsrcdir}/tools/*
1527 %if %{with grsecurity}
1528 %exclude %{_kernelsrcdir}/tools/gcc/*.c
1530 %{_kernelsrcdir}/usr
1531 %{_kernelsrcdir}/COPYING
1532 %{_kernelsrcdir}/CREDITS
1533 %{_kernelsrcdir}/MAINTAINERS
1534 %{_kernelsrcdir}/README
1535 %{_kernelsrcdir}/REPORTING-BUGS