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
69 %unglobal with_grsecurity
71 %unglobal with_vserver
98 %define versuffix -%{basever}
100 # __alt_kernel is list of features, empty string if none set
101 # _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
102 # alt_kernel should be defined if __alt_kernel has non-empty value (for %{?alt_kernel:foo} constructs)
104 # these override whatever name was picked from bconds
106 %if "%{_alt_kernel}" == ""
107 %define alt_kernel myown
111 %define alt_kernel vanilla
114 %define alt_kernel rescuecd
115 %else # not rescuecd:
116 %define __alt_kernel %{?with_pax:pax}%{?with_grsecurity:grsecurity}
117 %if "%{__alt_kernel}" != ""
118 %define alt_kernel %{__alt_kernel}
120 %endif # not rescuecd
124 # kernel release (used in filesystem and eventually in uname -r)
125 # modules will be looked from /lib/modules/%{kernel_release}
126 # localversion is just that without version for "> localversion"
127 %define localversion %{rel}
128 %define kernel_release %{version}%{?alt_kernel:.%{alt_kernel}}-%{localversion}
130 Summary: The Linux kernel (the core of the Linux operating system)
131 Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
132 Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
133 Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
134 Summary(pl.UTF-8): JÄ…dro Linuksa
135 Name: kernel%{versuffix}%{_alt_kernel}
136 Version: %{basever}%{postver}
141 Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
142 # Source0-md5: 967f72983655e2479f951195953e8480
143 %if "%{postver}" != ".0"
144 Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz
145 # Patch0-md5: 9621abae3d827c53f7ba2814f6d8ec65
147 Source1: kernel.sysconfig
149 Source3: kernel-autoconf.h
150 Source4: kernel-config.h
151 Source6: kernel-config.awk
152 Source7: kernel-module-build.pl
153 Source8: kernel-track-config-change.awk
154 # not used by kernel.spec, but it's good to have it in SOURCES
155 Source9: kernel-config-sort.pl
156 Source10: kernel.make
158 Source20: kernel-multiarch.config
159 Source21: kernel-x86.config
160 Source22: kernel-sparc.config
161 Source23: kernel-alpha.config
162 Source24: kernel-powerpc.config
163 Source25: kernel-ia64.config
165 Source41: kernel-patches.config
166 Source43: kernel-vserver.config
167 Source45: kernel-grsec.config
169 Source49: kernel-pax.config
170 Source50: kernel-no-pax.config
171 Source55: kernel-imq.config
172 Source56: kernel-reiser4.config
174 Source58: kernel-inittmpfs.config
176 # http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
177 Patch3: kernel-fbcondecor.patch
178 Patch4: kernel-fbcon-margins.patch
179 Patch5: linux-wistron-amilo8210.patch
181 # netfilter related stuff mostly based on patch-o-matic-ng
182 # snapshot 20070806 with some fixes. Some modules
183 # were ported to nf_conntrack.
185 Patch10: kernel-pom-ng-IPV4OPTSSTRIP.patch
187 Patch16: kernel-pom-ng-mms-conntrack-nat.patch
188 Patch22: kernel-pom-ng-rsh.patch
189 Patch23: kernel-pom-ng-rpc.patch
191 # http://ftp.linux-vserver.org/pub/people/dhozac/p/k/delta-owner-xid-feat02.diff
192 Patch37: kernel-owner-xid.patch
194 # based on kernel-2.6.25-layer7-2.20.patch from
195 # http://switch.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.20.tar.gz
196 Patch40: kernel-layer7.patch
200 # http://zph.bratcheda.org/linux-2.6.26.3-zph.patch
201 Patch49: kernel-zph.patch
203 # based on http://www.linuximq.net/patchs/patch-imqmq-3.1.diff.bz2
204 Patch50: kernel-imq.patch
206 # http://www.kernel.org/pub/linux/kernel/people/edward/reiser4/reiser4-for-2.6/reiser4-for-2.6.35.patch.bz2
207 Patch51: kernel-reiser4.patch
209 # http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
210 Patch53: kernel-esfq.patch
212 # by Baggins request:
213 # derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
214 Patch55: kernel-atm-vbr.patch
215 Patch56: kernel-atmdd.patch
217 # http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
218 Patch59: kernel-rndis_host-wm5.patch
220 # adds some ids for hostap suported cards and monitor_enable from/for aircrack-ng
221 # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
222 Patch85: kernel-hostap.patch
224 # http://vserver.13thfloor.at/Experimental/patch-3.4.22-vs2.3.3.9.diff
225 Patch100: kernel-vserver-2.3.patch
226 Patch101: kernel-vserver-fixes.patch
228 # http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.11_for_3.3.0-rc3.diff.gz
229 Patch140: kernel-unionfs.patch
231 # git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git, read README
233 # git clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git
234 # cd aufs3-standalone
235 # git checkout -b aufs3.4 origin/aufs3.4
236 # cat aufs3-kbuild.patch aufs3-base.patch aufs3-standalone.patch > ~/rpm/packages/kernel/kernel-aufs3.patch
238 # cp -a Documentation fs include linux
239 # diff -urN /usr/share/empty linux >> ~/rpm/packages/kernel/kernel-aufs3.patch
240 # drop hunk at the end of patch (hunk is patching include/linux/Kbuild with single line change)
242 Patch145: kernel-aufs3.patch
243 Patch146: kernel-aufs2-unionfs.patch
244 Patch147: kernel-aufs2-no-const-grsec.patch
245 Patch148: kernel-aufs2-reiser4.patch
247 # Show normal colors in menuconfig with ncurses ABI 6
248 Patch250: kernel-fix_256colors_menuconfig.patch
250 # https://patchwork.kernel.org/patch/236261/
251 Patch400: kernel-virtio-gl-accel.patch
253 Patch2000: kernel-small_fixes.patch
254 Patch2001: kernel-pwc-uncompress.patch
255 Patch2003: kernel-regressions.patch
257 # http://git.kernel.org/?p=linux/kernel/git/jj/linux-apparmor.git;a=shortlog;h=refs/heads/v3.4-aa2.8
258 Patch5000: kernel-apparmor.patch
261 # based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
262 Patch7000: kernel-inittmpfs.patch
264 # based on http://grsecurity.net/~spender/grsecurity-2.2.2-3.1.1-201111181902.patch
265 # NOTE: put raw upstream patches on kernel-grsec_full.patch:GRSECURITY_RAW for reference
266 # (since upstream deletes older patches)
267 # NOTE: mirror of old grsecurity patches:
268 # https://github.com/slashbeast/grsecurity-scrape/tree/master/test
269 Patch9999: kernel-grsec_full.patch
270 Patch10000: kernel-grsec-caps.patch
271 Patch10001: kernel-grsec-common.patch
272 Patch10002: kernel-grsec_fixes.patch
274 # Do not remove this line, please. It is easier for me to uncomment two lines, then patch
275 # kernel.spec every time.
276 #Patch50000: kernel-usb_reset.patch
278 URL: http://www.kernel.org/
279 BuildRequires: binutils >= 3:2.18
280 %ifarch sparc sparc64
281 BuildRequires: elftoaout
284 BuildRequires: uboot-mkimage
286 BuildRequires: /sbin/depmod
287 BuildRequires: gcc >= 5:3.2
288 BuildRequires: xz >= 1:4.999.7
290 BuildRequires: hostname
292 BuildRequires: perl-base
293 BuildRequires: rpm-build >= 4.5-24
294 BuildRequires: rpmbuild(macros) >= 1.652
295 Requires(post): coreutils
296 Requires(post): geninitrd >= 10000-3
297 Requires(post): kmod >= 12-2
298 Requires: /sbin/depmod
300 Requires: geninitrd >= 10000-3
301 Requires: kmod >= 12-2
303 %ifarch i686 athlon pentium3 pentium4
304 Requires: cpuinfo(pae)
309 Suggests: kernel%{versuffix}-ide = %{epoch}:%{version}-%{release}
310 Suggests: linux-firmware
311 Provides: %{name}(netfilter) = 20070806
312 Provides: %{name}(vermagic) = %{kernel_release}
313 Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100
314 Obsoletes: kernel%{_alt_kernel}-char-lirc-it87
315 Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709
316 Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb
317 Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap
318 Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
319 Obsoletes: kernel-firmware
320 Obsoletes: kernel-misc-acer_acpi
321 Obsoletes: kernel-misc-fuse
322 Obsoletes: kernel-misc-uvc
323 Obsoletes: kernel-modules
324 Obsoletes: kernel-net-ar81
325 Obsoletes: kernel-net-hostap
326 Obsoletes: kernel-net-ieee80211
327 Obsoletes: kernel-net-ipp2p
328 Obsoletes: kernel-net-rt61
329 Obsoletes: kernel-smp
330 Conflicts: e2fsprogs < 1.29
331 Conflicts: isdn4k-utils < 3.1pre1
332 Conflicts: jfsutils < 1.1.3
333 Conflicts: linux-firmware < 20120720
334 Conflicts: lvm2 < 2.02.40
335 Conflicts: module-init-tools < 3.16
336 Conflicts: nfs-utils < 1.0.5
337 Conflicts: oprofile < 0.9
338 Conflicts: ppp < 1:2.4.0
339 Conflicts: procps < 3.2.0
340 Conflicts: quota-tools < 3.09
341 %{?with_reiserfs4:Conflicts: reiser4progs < 1.0.0}
342 Conflicts: reiserfsprogs < 3.6.3
343 Conflicts: rpm < 4.4.2-0.2
344 Conflicts: udev < 1:081
345 Conflicts: util-linux < 2.10o
346 Conflicts: util-vserver < 0.30.216
347 Conflicts: xfsprogs < 2.6.0
348 ExclusiveArch: %{ix86} %{x8664} alpha arm ia64 ppc ppc64 sparc sparc64
350 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
352 %ifarch %{ix86} %{x8664}
353 %define target_arch_dir x86
356 %define target_arch_dir powerpc
358 %ifarch sparc sparc64
359 %define target_arch_dir sparc
361 %ifnarch %{ix86} %{x8664} ppc ppc64 sparc sparc64
362 %define target_arch_dir %{_target_base_arch}
365 %define defconfig arch/%{target_arch_dir}/defconfig
367 # No ELF objects there to strip (skips processing 27k files)
368 %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
369 %define _noautochrpath .*%{_kernelsrcdir}/.*
370 %define _enable_debug_packages 0
373 %define initrd_dir /boot/efi
375 %define initrd_dir /boot
378 %define topdir %{_builddir}/%{name}-%{version}
379 %define srcdir %{topdir}/linux-%{basever}
380 %define objdir %{topdir}/%{targetobj}
381 %define targetobj %{_target_base_arch}-gcc-%(%{__cc} -dumpversion)
383 %define _kernelsrcdir /usr/src/linux%{versuffix}%{_alt_kernel}-%{version}
385 %if "%{_target_base_arch}" != "%{_host_base_arch}"
386 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
387 %define DepMod /bin/true
389 %if "%{_host_base_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
390 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
391 %define DepMod /sbin/depmod
394 %if "%{_host_base_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
395 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
396 %define DepMod /sbin/depmod
399 %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
400 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
401 %define DepMod /sbin/depmod
404 %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
405 %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
409 %define CrossOpts ARCH=powerpc CC="%{__cc}"
411 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
413 %define DepMod /sbin/depmod
415 # use 64-bit offsets for fixdeps to work with 64-bit inodes
416 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64"
419 %{?with_grsecurity:Grsecurity support - enabled}\
420 %{?with_pax:PaX support - enabled}\
421 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
422 %{?with_nfsroot:Root on NFS - enabled}\
424 %define Features %(echo "%{__features}" | sed '/^$/d')
427 This package contains the Linux kernel that is used to boot and run
428 your system. It contains few device drivers for specific hardware.
429 Most hardware is instead supported by modules loaded after booting.
433 %description -l de.UTF-8
434 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
435 Linux-Betriebssystems. Der Kernel ist für grundliegende
436 Systemfunktionen verantwortlich: Speicherreservierung,
437 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
441 %description -l fr.UTF-8
442 Le package kernel contient le kernel linux (vmlinuz), la partie
443 centrale d'un système d'exploitation Linux. Le noyau traite les
444 fonctions basiques d'un système d'exploitation: allocation mémoire,
445 allocation de process, entrée/sortie de peripheriques, etc.
449 %description -l pl.UTF-8
450 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
451 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
452 się w komputerze, takiego jak sterowniki dysków itp.
457 Summary: vmlinux - uncompressed kernel image
458 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
459 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jÄ…dra
461 Obsoletes: kernel-smp-vmlinux
464 vmlinux - uncompressed kernel image.
466 %description vmlinux -l de.UTF-8
467 vmlinux - dekompressiertes Kernel Bild.
469 %description vmlinux -l pl.UTF-8
470 vmlinux - rozpakowany obraz jÄ…dra.
473 Summary: DRM kernel modules
474 Summary(de.UTF-8): DRM Kernel Treiber
475 Summary(pl.UTF-8): Sterowniki DRM
477 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
478 Requires: %{name} = %{epoch}:%{version}-%{release}
479 Obsoletes: kernel-smp-drm
485 %description drm -l de.UTF-8
488 %description drm -l pl.UTF-8
492 Summary: IDE kernel modules
493 Summary(de.UTF-8): IDE Kernel Treiber
494 Summary(pl.UTF-8): Sterowniki IDE
496 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
497 Requires: %{name} = %{epoch}:%{version}-%{release}
503 %description ide -l de.UTF-8
506 %description ide -l pl.UTF-8
510 Summary: PCMCIA modules
511 Summary(de.UTF-8): PCMCIA Module
512 Summary(pl.UTF-8): Moduły PCMCIA
514 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
515 Requires: %{name} = %{epoch}:%{version}-%{release}
516 Obsoletes: kernel-smp-pcmcia
517 Conflicts: pcmcia-cs < 3.1.21
518 Conflicts: pcmciautils < 004
524 %description pcmcia -l de.UTF-8
527 %description pcmcia -l pl.UTF-8
531 Summary: ALSA kernel modules
532 Summary(de.UTF-8): ALSA Kernel Module
533 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
535 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
536 Requires: %{name} = %{epoch}:%{version}-%{release}
537 Obsoletes: kernel-smp-sound-alsa
540 %description sound-alsa
541 ALSA (Advanced Linux Sound Architecture) sound drivers.
543 %description sound-alsa -l de.UTF-8
544 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
546 %description sound-alsa -l pl.UTF-8
547 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
550 Summary: OSS kernel modules
551 Summary(de.UTF-8): OSS Kernel Module
552 Summary(pl.UTF-8): Sterowniki dźwięku OSS
554 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
555 Requires: %{name} = %{epoch}:%{version}-%{release}
556 Obsoletes: kernel-smp-sound-oss
559 %description sound-oss
560 OSS (Open Sound System) drivers.
562 %description sound-oss -l de.UTF-8
563 OSS (Open Sound System) Treiber.
565 %description sound-oss -l pl.UTF-8
566 Sterowniki dźwięku OSS (Open Sound System).
569 Summary: Header files for the Linux kernel
570 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
571 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
572 Group: Development/Building
573 Provides: %{name}-headers(netfilter) = 20070806
577 These are the C header files for the Linux kernel, which define
578 structures and constants that are needed when rebuilding the kernel or
579 building kernel modules.
581 %description headers -l de.UTF-8
582 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
583 Strukturen und Konstante beinhalten, die beim rekompilieren des
584 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
586 %description headers -l pl.UTF-8
587 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
588 oraz budowania modułów jądra.
590 %package module-build
591 Summary: Development files for building kernel modules
592 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
593 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
594 Group: Development/Building
595 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
596 Conflicts: rpmbuild(macros) < 1.652
599 %description module-build
600 Development files from kernel source tree needed to build Linux kernel
601 modules from external packages.
603 %description module-build -l de.UTF-8
604 Development Dateien des Linux-Kernels die beim kompilieren externer
605 Kernel Module gebraucht werden.
607 %description module-build -l pl.UTF-8
608 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
609 Linuksa z zewnętrznych pakietów.
612 Summary: Kernel source tree
613 Summary(de.UTF-8): Der Kernel Quelltext
614 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
615 Group: Development/Building
616 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
618 %if "%{_rpmversion}" >= "5"
623 This is the source code for the Linux kernel. You can build a custom
624 kernel that is better tuned to your particular hardware.
626 %description source -l de.UTF-8
627 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
628 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
629 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
630 im Kernel-Source definiert sind. Die Source-Dateien können auch
631 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
632 Hardware ausgerichtet ist.
634 %description source -l fr.UTF-8
635 Le package pour le kernel-source contient le code source pour le noyau
636 linux. Ces sources sont nécessaires pour compiler la plupart des
637 programmes C, car il dépend de constantes définies dans le code
638 source. Les sources peuvent être aussi utilisée pour compiler un noyau
639 personnalisé pour avoir de meilleures performances sur des matériels
642 %description source -l pl.UTF-8
643 Pakiet zawiera kod źródłowy jądra systemu.
646 Summary: Kernel documentation
647 Summary(de.UTF-8): Kernel Dokumentation
648 Summary(pl.UTF-8): Dokumentacja do jÄ…dra Linuksa
651 %if "%{_rpmversion}" >= "5"
656 This is the documentation for the Linux kernel, as found in
657 /usr/src/linux/Documentation directory.
659 %description doc -l de.UTF-8
660 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
661 Verzeichniss vorgefunden werden kann.
663 %description doc -l pl.UTF-8
664 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
665 /usr/src/linux/Documentation.
669 ln -s %{SOURCE7} kernel-module-build.pl
670 ln -s %{SOURCE10} Makefile
673 # hack against warning in pax/grsec
674 sed -i 's/-Werror//' arch/alpha/kernel/Makefile
677 %if "%{postver}" != ".0"
681 %if %{without vanilla}
683 %if %{with fbcondecor}
692 # kernel-pom-ng-IPV4OPTSSTRIP.patch
695 # kernel-pom-ng-mms-conntrack-nat.patch
698 # kernel-pom-ng-rsh.patch
701 # kernel-pom-ng-rpc.patch
704 # kernel-owner-xid.patch
709 # kernel-layer7.patch
735 # kernel-rndis_host-wm5.patch
738 # hostap enhancements from/for aircrack-ng
761 # grsecurity & pax stuff
763 %if %{with grsecurity}
768 %{?with_vserver:%patch10000 -p1}
769 %{?with_vserver:%patch10001 -p1}
770 %{?with_vserver:%patch10002 -p1}
773 # end of grsecurity & pax stuff
790 # Do not remove this, please!
793 # Fix EXTRAVERSION in main Makefile
794 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
796 # cleanup backups after patching
797 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
801 cat > %{targetobj}.mk <<'EOF'
802 # generated by %{name}.spec
803 KERNELSRC := %{srcdir}
804 KERNELOUTPUT := %{objdir}
806 SRCARCH := %{target_arch_dir}
807 ARCH := %{_target_base_arch}
808 Q := %{!?with_verbose:@}
809 MAKE_OPTS := %{MakeOpts}
810 DEFCONFIG := %{defconfig}
817 CONFIG_PAX_SEGMEXEC=y
818 # performance impact on CPUs without NX bit
819 CONFIG_PAX_PAGEEXEC=n
822 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
828 CONFIG_PAX_NOELFRELOCS=n
831 CONFIG_PAX_EMUTRAMP=y
832 CONFIG_PAX_EMUSIGRT=y
836 %ifarch sparc sparc64 alpha
840 # Now we have to check MAC system integration. Grsecurity uses PAX_HAVE_ACL_FLAGS
841 # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
842 # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
843 # PAX_HOOK_ACL_FLAGS.
845 %if %{with grsecurity}
846 # Hardening grsec options if with pax
847 CONFIG_GRKERNSEC_PROC_MEMMAP=y
848 # almost rational (see HIDESYM help)
849 CONFIG_GRKERNSEC_HIDESYM=y
851 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
853 CONFIG_PAX_HAVE_ACL_FLAGS=n
854 CONFIG_PAX_HOOK_ACL_FLAGS=y
864 # CONFIG_SOUND is not set
865 # CONFIG_AUDIT is not set
866 # CONFIG_TR is not set
867 # CONFIG_BT is not set
868 # CONFIG_VIDEO_DEV is not set
869 # CONFIG_DVB_CORE is not set
870 # CONFIG_HAMRADIO is not set
871 # CONFIG_ARCNET is not set
872 # CONFIG_FB is not set
873 # CONFIG_DRM is not set
874 # CONFIG_WATCHDOG is not set
875 # CONFIG_INPUT_JOYSTICK is not set
876 # CONFIG_DEBUG_KERNEL is not set
877 # CONFIG_ISDN is not set
878 # CONFIG_AGP is not set
879 # CONFIG_SECURITY is not set
880 # CONFIG_PARIDE is not set
881 # CONFIG_CPU_FREQ is not set
882 # CONFIG_GAMEPORT is not set
883 # CONFIG_KVM is not set
884 # CONFIG_PHONE is not set
885 # CONFIG_STRICT_DEVMEM is not set
886 # CONFIG_IMA is not set
889 CONFIG_AUFS_BR_RAMFS=y
891 CONFIG_BLK_DEV_LOOP=y
904 Config="kernel-%{target_arch_dir}.config"
905 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
907 # prepare local and important options
908 cat <<-EOCONFIG > important.config
909 LOCALVERSION="-%{localversion}"
913 CONFIG_DEBUG_SLAB_LEAK=y
914 CONFIG_DEBUG_PREEMPT=y
915 CONFIG_RT_DEADLOCK_DETECT=y
922 %ifarch i686 athlon pentium3 pentium4
931 %if %{without pcmcia}
935 %if %{with fbcondecor}
939 CONFIG_FB_TILEBLITTING=n
940 CONFIG_FB_CON_DECOR=y
948 # Temporary disabled RELOCATABLE. Needed only on x86??
949 %if %{with pax} || %{with grsecurity}
955 RescueConfig rescue.config
961 # prepare kernel-style config file from multiple config files
962 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
964 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
967 %if %{without vanilla}
978 %if %{with grsecurity}
993 %{SOURCE41} %{?0:patches} \
996 $RPM_SOURCE_DIR/$Config
1000 install -d arch/%{target_arch_dir}
1001 BuildConfig > %{defconfig}
1002 ln -sf %{defconfig} .config
1006 TARGETOBJ=%{targetobj} \
1007 %{?with_verbose:V=1} \
1010 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
1014 TARGETOBJ=%{targetobj} \
1015 %{?with_verbose:V=1} \
1019 rm -rf $RPM_BUILD_ROOT
1020 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
1022 %{?with_verbose:V=1} \
1024 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
1025 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
1026 KERNELRELEASE=%{kernel_release}
1028 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1030 # create directories which may be missing, to simplyfy %files
1031 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
1033 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
1034 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1035 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1037 # no point embed content for %ghost files. empty them
1045 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1046 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1050 install -d $RPM_BUILD_ROOT/boot
1051 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1052 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
1053 %ifarch %{ix86} %{x8664}
1054 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1055 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1058 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1059 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1062 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1063 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1064 ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1066 %ifarch alpha sparc sparc64
1067 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1068 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1069 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1071 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1072 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1075 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1076 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1080 install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1084 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1085 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
1087 %if "%{_target_base_arch}" != "%{_host_base_arch}"
1088 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1092 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1094 install -d $RPM_BUILD_ROOT/etc/sysconfig
1095 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
1098 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1100 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1101 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1103 rm -f $RPM_BUILD_ROOT/COPYING
1106 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1107 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
1108 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
1109 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
1110 # copy arch/x86/include/generated
1111 for dir in $(cd %{objdir} && find arch -name generated -type d); do
1112 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
1113 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
1116 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
1117 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
1119 # collect module-build files and directories
1120 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1122 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1123 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1126 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
1128 if [ -x "$f" ]; then
1129 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1131 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1133 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
1134 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
1138 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1139 install -d $RPM_BUILD_ROOT%{_docdir}
1140 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1142 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1143 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1144 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1145 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1147 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
1151 rm -rf $RPM_BUILD_ROOT
1154 if [ -x /sbin/new-kernel-pkg ]; then
1155 /sbin/new-kernel-pkg --remove %{kernel_release}
1159 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1160 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1162 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1163 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1164 %if 0%{?alt_kernel:1}
1165 mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1166 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}
1169 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1170 mv -f /boot/System.map{,.old} 2> /dev/null
1171 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1172 ln -sf System.map-%{kernel_release} /boot/System.map
1173 %if 0%{?alt_kernel:1}
1174 mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1175 mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
1176 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}
1177 ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
1181 %depmod %{kernel_release}
1184 # use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
1185 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1187 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
1188 /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release} || :
1189 initrd_file="initrd-%{kernel_release}.gz"
1192 # if dracut is present then generate full-featured initramfs
1193 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
1194 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
1195 [ -n "$initrd_file" ] || initrd_file="initramfs-%{kernel_release}.img"
1198 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1199 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1200 if [ -n "$initrd_file" ] ; then
1201 ln -sf "$initrd_file" %{initrd_dir}/initrd
1203 %if 0%{?alt_kernel:1}
1204 mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
1205 if [ -n "$initrd_file" ] ; then
1206 ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
1211 # update boot loaders when old package files are gone from filesystem
1212 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1213 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1214 /sbin/update-grub >/dev/null
1217 if [ -x /sbin/new-kernel-pkg ]; then
1218 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1220 if [ -x /sbin/rc-boot ]; then
1221 /sbin/rc-boot 1>&2 || :
1223 if [ -x /sbin/efi-boot-update ]; then
1224 /sbin/efi-boot-update --auto || :
1228 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1229 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1230 mv -f /boot/vmlinux{,.old} 2> /dev/null
1231 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1232 %if 0%{?alt_kernel:1}
1233 mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
1234 ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
1239 %depmod %{kernel_release}
1242 %depmod %{kernel_release}
1245 %depmod %{kernel_release}
1248 %depmod %{kernel_release}
1251 %depmod %{kernel_release}
1254 %depmod %{kernel_release}
1257 %depmod %{kernel_release}
1260 %depmod %{kernel_release}
1263 %depmod %{kernel_release}
1266 %depmod %{kernel_release}
1269 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1272 if [ "$1" = "0" ]; then
1273 if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
1274 if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
1275 rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1280 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1281 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1282 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1284 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1285 if [ "$1" = 0 ]; then
1286 rm -f /lib/modules/%{kernel_release}/{build,source}
1290 %defattr(644,root,root,755)
1291 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
1292 %ifarch sparc sparc64
1293 /boot/vmlinux.aout-%{kernel_release}
1296 /boot/efi/vmlinuz-%{kernel_release}
1298 /boot/vmlinuz-%{kernel_release}
1299 /boot/System.map-%{kernel_release}
1300 /boot/config-%{kernel_release}
1301 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1302 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
1303 /lib/firmware/%{kernel_release}
1305 %dir /lib/modules/%{kernel_release}
1306 %dir /lib/modules/%{kernel_release}/kernel
1307 /lib/modules/%{kernel_release}/kernel/arch
1308 /lib/modules/%{kernel_release}/kernel/crypto
1309 /lib/modules/%{kernel_release}/kernel/drivers
1311 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1314 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/*
1316 /lib/modules/%{kernel_release}/kernel/fs
1317 /lib/modules/%{kernel_release}/kernel/kernel
1318 /lib/modules/%{kernel_release}/kernel/lib
1319 /lib/modules/%{kernel_release}/kernel/net
1320 /lib/modules/%{kernel_release}/kernel/mm
1322 %dir /lib/modules/%{kernel_release}/kernel/sound
1323 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1324 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1326 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1327 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1328 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1331 %dir /lib/modules/%{kernel_release}/misc
1333 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1334 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1335 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1336 %if %{without rescuecd}
1337 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1338 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1339 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1340 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1341 %exclude /lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
1342 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1344 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1345 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1346 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1347 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1348 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1349 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1350 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1351 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1354 /lib/modules/%{kernel_release}/kernel/sound
1356 /lib/modules/%{kernel_release}/kernel/security
1358 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1361 /lib/modules/%{kernel_release}/modules.order
1362 /lib/modules/%{kernel_release}/modules.builtin*
1364 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1365 %ghost /lib/modules/%{kernel_release}/modules.alias
1366 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1367 %ghost /lib/modules/%{kernel_release}/modules.dep
1368 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1369 %ghost /lib/modules/%{kernel_release}/modules.devname
1370 %ghost /lib/modules/%{kernel_release}/modules.softdep
1371 %ghost /lib/modules/%{kernel_release}/modules.symbols
1372 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1374 # symlinks pointing to kernelsrcdir
1375 %ghost /lib/modules/%{kernel_release}/build
1376 %ghost /lib/modules/%{kernel_release}/source
1378 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1380 %defattr(644,root,root,755)
1381 /boot/vmlinux-%{kernel_release}
1386 %defattr(644,root,root,755)
1387 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1392 %defattr(644,root,root,755)
1393 /lib/modules/%{kernel_release}/kernel/drivers/ide/*
1395 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1401 %defattr(644,root,root,755)
1402 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1403 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1404 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1405 %if %{without rescuecd}
1406 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1407 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1408 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1409 /lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
1411 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1412 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1413 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1414 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1415 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1416 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1417 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1418 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1419 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1424 %defattr(644,root,root,755)
1425 /lib/modules/%{kernel_release}/kernel/sound
1426 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1427 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1428 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1430 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1433 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1434 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1435 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1436 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1441 %defattr(644,root,root,755)
1442 /lib/modules/%{kernel_release}/kernel/sound/oss
1446 %files headers -f files.headers_exclude_kbuild
1447 %defattr(644,root,root,755)
1448 %dir %{_kernelsrcdir}
1449 %{_kernelsrcdir}/include
1450 %dir %{_kernelsrcdir}/arch
1451 %dir %{_kernelsrcdir}/arch/[!K]*
1452 %{_kernelsrcdir}/arch/*/include
1453 %dir %{_kernelsrcdir}/security
1454 %dir %{_kernelsrcdir}/security/selinux
1455 %{_kernelsrcdir}/security/selinux/include
1456 %{_kernelsrcdir}/.config
1457 %{_kernelsrcdir}/Module.symvers
1459 %files module-build -f files.mb_include_modulebuild_and_dirs
1460 %defattr(644,root,root,755)
1462 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1464 %exclude %dir %{_kernelsrcdir}/arch/um
1465 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1466 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1467 %{_kernelsrcdir}/drivers/lguest/lg.h
1468 %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1469 %{_kernelsrcdir}/kernel/bounds.c
1470 %{_kernelsrcdir}/scripts/basic/*.c
1471 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1472 %{_kernelsrcdir}/scripts/kconfig/*.in
1473 %{_kernelsrcdir}/scripts/kconfig/*_shipped
1474 %{_kernelsrcdir}/scripts/kconfig/*.pl
1475 %{_kernelsrcdir}/scripts/kconfig/*.glade
1476 %{_kernelsrcdir}/scripts/kconfig/*.gperf
1477 %{_kernelsrcdir}/scripts/kconfig/*.cc
1478 %{_kernelsrcdir}/scripts/kconfig/*.y
1479 %{_kernelsrcdir}/scripts/kconfig/*.l
1480 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1481 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1482 %{_kernelsrcdir}/scripts/kconfig/l*.h
1483 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1484 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1485 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1486 %{_kernelsrcdir}/scripts/mod/*.c
1487 %{_kernelsrcdir}/scripts/mod/[^e]*.h
1488 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1489 %{_kernelsrcdir}/scripts/mkmakefile
1490 %{_kernelsrcdir}/scripts/module-common.lds
1491 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1492 %{_kernelsrcdir}/scripts/*.c
1493 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1494 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1495 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1496 %exclude %dir %{_kernelsrcdir}/security
1497 %exclude %dir %{_kernelsrcdir}/security/selinux
1498 %if %{with grsecurity}
1499 %{_kernelsrcdir}/tools/gcc/*.c
1504 %defattr(644,root,root,755)
1505 %dir %{_docdir}/%{name}-%{version}
1507 %{_docdir}/%{name}-%{version}/[!jkz]*
1508 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1509 %{_docdir}/%{name}-%{version}/kbuild
1510 %{_docdir}/%{name}-%{version}/kdump
1511 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1512 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1513 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1517 %files source -f files.source_exclude_modulebuild_and_dirs
1518 %defattr(644,root,root,755)
1519 %{_kernelsrcdir}/arch/*/[!Mik]*
1520 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1521 %{_kernelsrcdir}/arch/ia64/install.sh
1522 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1523 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1524 %{_kernelsrcdir}/arch/m68k/install.sh
1525 %{_kernelsrcdir}/arch/parisc/install.sh
1526 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1527 %{_kernelsrcdir}/arch/ia64/kvm
1528 %{_kernelsrcdir}/arch/powerpc/kvm
1530 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1532 %{_kernelsrcdir}/arch/s390/kvm
1533 %{_kernelsrcdir}/arch/x86/kvm
1534 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1535 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1536 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1537 %exclude %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1538 %{_kernelsrcdir}/block
1539 %{_kernelsrcdir}/crypto
1540 %{_kernelsrcdir}/drivers
1541 %{_kernelsrcdir}/firmware
1543 %if %{with grsecurity} && %{without rescuecd}
1544 %{_kernelsrcdir}/grsecurity
1546 %{_kernelsrcdir}/init
1547 %{_kernelsrcdir}/ipc
1548 %{_kernelsrcdir}/kernel
1549 %exclude %{_kernelsrcdir}/kernel/bounds.c
1550 %{_kernelsrcdir}/lib
1552 %{_kernelsrcdir}/net
1553 %{_kernelsrcdir}/virt
1554 %{_kernelsrcdir}/samples
1555 %{_kernelsrcdir}/scripts/*
1556 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1557 %exclude %{_kernelsrcdir}/scripts/Makefile*
1558 %exclude %{_kernelsrcdir}/scripts/basic
1559 %exclude %{_kernelsrcdir}/scripts/kconfig
1560 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1561 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1562 %exclude %{_kernelsrcdir}/scripts/mod
1563 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1564 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1565 %exclude %{_kernelsrcdir}/scripts/*.c
1566 %exclude %{_kernelsrcdir}/scripts/*.sh
1567 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1568 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1569 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1570 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1571 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1572 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1573 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1574 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1575 %{_kernelsrcdir}/sound
1576 %{_kernelsrcdir}/security
1577 %exclude %{_kernelsrcdir}/security/selinux/include
1578 %{_kernelsrcdir}/tools/*
1579 %if %{with grsecurity}
1580 %exclude %{_kernelsrcdir}/tools/gcc/*.c
1582 %{_kernelsrcdir}/usr
1583 %{_kernelsrcdir}/COPYING
1584 %{_kernelsrcdir}/CREDITS
1585 %{_kernelsrcdir}/MAINTAINERS
1586 %{_kernelsrcdir}/README
1587 %{_kernelsrcdir}/REPORTING-BUGS