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: 2cf0a14e1a620d6f4bc4231a4515f6ba
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: linux-firmware
310 Provides: %{name}(netfilter) = 20070806
311 Provides: %{name}(vermagic) = %{kernel_release}
312 Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100
313 Obsoletes: kernel%{_alt_kernel}-char-lirc-it87
314 Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709
315 Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb
316 Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap
317 Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
318 Obsoletes: kernel-firmware
319 Obsoletes: kernel-misc-acer_acpi
320 Obsoletes: kernel-misc-fuse
321 Obsoletes: kernel-misc-uvc
322 Obsoletes: kernel-modules
323 Obsoletes: kernel-net-ar81
324 Obsoletes: kernel-net-hostap
325 Obsoletes: kernel-net-ieee80211
326 Obsoletes: kernel-net-ipp2p
327 Obsoletes: kernel-net-rt61
328 Obsoletes: kernel-smp
329 Conflicts: e2fsprogs < 1.29
330 Conflicts: isdn4k-utils < 3.1pre1
331 Conflicts: jfsutils < 1.1.3
332 Conflicts: linux-firmware < 20120720
333 Conflicts: lvm2 < 2.02.40
334 Conflicts: module-init-tools < 3.16
335 Conflicts: nfs-utils < 1.0.5
336 Conflicts: oprofile < 0.9
337 Conflicts: ppp < 1:2.4.0
338 Conflicts: procps < 3.2.0
339 Conflicts: quota-tools < 3.09
340 %{?with_reiserfs4:Conflicts: reiser4progs < 1.0.0}
341 Conflicts: reiserfsprogs < 3.6.3
342 Conflicts: rpm < 4.4.2-0.2
343 Conflicts: udev < 1:081
344 Conflicts: util-linux < 2.10o
345 Conflicts: util-vserver < 0.30.216
346 Conflicts: xfsprogs < 2.6.0
347 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-%(%{__cc} -dumpversion)
382 %define _kernelsrcdir /usr/src/linux%{versuffix}%{_alt_kernel}-%{version}
384 %if "%{_target_base_arch}" != "%{_host_base_arch}"
385 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
386 %define DepMod /bin/true
388 %if "%{_host_base_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
389 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
390 %define DepMod /sbin/depmod
393 %if "%{_host_base_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
394 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
395 %define DepMod /sbin/depmod
398 %if "%{_host_base_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 # use 64-bit offsets for fixdeps to work with 64-bit inodes
415 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64"
418 %{?with_grsecurity:Grsecurity support - enabled}\
419 %{?with_pax:PaX support - enabled}\
420 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
421 %{?with_nfsroot:Root on NFS - enabled}\
423 %define Features %(echo "%{__features}" | sed '/^$/d')
426 This package contains the Linux kernel that is used to boot and run
427 your system. It contains few device drivers for specific hardware.
428 Most hardware is instead supported by modules loaded after booting.
432 %description -l de.UTF-8
433 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
434 Linux-Betriebssystems. Der Kernel ist für grundliegende
435 Systemfunktionen verantwortlich: Speicherreservierung,
436 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
440 %description -l fr.UTF-8
441 Le package kernel contient le kernel linux (vmlinuz), la partie
442 centrale d'un système d'exploitation Linux. Le noyau traite les
443 fonctions basiques d'un système d'exploitation: allocation mémoire,
444 allocation de process, entrée/sortie de peripheriques, etc.
448 %description -l pl.UTF-8
449 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
450 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
451 się w komputerze, takiego jak sterowniki dysków itp.
456 Summary: vmlinux - uncompressed kernel image
457 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
458 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jÄ…dra
460 Obsoletes: kernel-smp-vmlinux
463 vmlinux - uncompressed kernel image.
465 %description vmlinux -l de.UTF-8
466 vmlinux - dekompressiertes Kernel Bild.
468 %description vmlinux -l pl.UTF-8
469 vmlinux - rozpakowany obraz jÄ…dra.
472 Summary: DRM kernel modules
473 Summary(de.UTF-8): DRM Kernel Treiber
474 Summary(pl.UTF-8): Sterowniki DRM
476 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
477 Requires: %{name} = %{epoch}:%{version}-%{release}
478 Obsoletes: kernel-smp-drm
484 %description drm -l de.UTF-8
487 %description drm -l pl.UTF-8
491 Summary: IDE kernel modules
492 Summary(de.UTF-8): IDE Kernel Treiber
493 Summary(pl.UTF-8): Sterowniki IDE
495 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
496 Requires: %{name} = %{epoch}:%{version}-%{release}
502 %description ide -l de.UTF-8
505 %description ide -l pl.UTF-8
509 Summary: PCMCIA modules
510 Summary(de.UTF-8): PCMCIA Module
511 Summary(pl.UTF-8): Moduły PCMCIA
513 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
514 Requires: %{name} = %{epoch}:%{version}-%{release}
515 Obsoletes: kernel-smp-pcmcia
516 Conflicts: pcmcia-cs < 3.1.21
517 Conflicts: pcmciautils < 004
523 %description pcmcia -l de.UTF-8
526 %description pcmcia -l pl.UTF-8
530 Summary: ALSA kernel modules
531 Summary(de.UTF-8): ALSA Kernel Module
532 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
534 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
535 Requires: %{name} = %{epoch}:%{version}-%{release}
536 Obsoletes: kernel-smp-sound-alsa
539 %description sound-alsa
540 ALSA (Advanced Linux Sound Architecture) sound drivers.
542 %description sound-alsa -l de.UTF-8
543 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
545 %description sound-alsa -l pl.UTF-8
546 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
549 Summary: OSS kernel modules
550 Summary(de.UTF-8): OSS Kernel Module
551 Summary(pl.UTF-8): Sterowniki dźwięku OSS
553 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
554 Requires: %{name} = %{epoch}:%{version}-%{release}
555 Obsoletes: kernel-smp-sound-oss
558 %description sound-oss
559 OSS (Open Sound System) drivers.
561 %description sound-oss -l de.UTF-8
562 OSS (Open Sound System) Treiber.
564 %description sound-oss -l pl.UTF-8
565 Sterowniki dźwięku OSS (Open Sound System).
568 Summary: Header files for the Linux kernel
569 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
570 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
571 Group: Development/Building
572 Provides: %{name}-headers(netfilter) = 20070806
576 These are the C header files for the Linux kernel, which define
577 structures and constants that are needed when rebuilding the kernel or
578 building kernel modules.
580 %description headers -l de.UTF-8
581 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
582 Strukturen und Konstante beinhalten, die beim rekompilieren des
583 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
585 %description headers -l pl.UTF-8
586 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
587 oraz budowania modułów jądra.
589 %package module-build
590 Summary: Development files for building kernel modules
591 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
592 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
593 Group: Development/Building
594 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
595 Conflicts: rpmbuild(macros) < 1.652
598 %description module-build
599 Development files from kernel source tree needed to build Linux kernel
600 modules from external packages.
602 %description module-build -l de.UTF-8
603 Development Dateien des Linux-Kernels die beim kompilieren externer
604 Kernel Module gebraucht werden.
606 %description module-build -l pl.UTF-8
607 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
608 Linuksa z zewnętrznych pakietów.
611 Summary: Kernel source tree
612 Summary(de.UTF-8): Der Kernel Quelltext
613 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
614 Group: Development/Building
615 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
619 This is the source code for the Linux kernel. You can build a custom
620 kernel that is better tuned to your particular hardware.
622 %description source -l de.UTF-8
623 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
624 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
625 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
626 im Kernel-Source definiert sind. Die Source-Dateien können auch
627 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
628 Hardware ausgerichtet ist.
630 %description source -l fr.UTF-8
631 Le package pour le kernel-source contient le code source pour le noyau
632 linux. Ces sources sont nécessaires pour compiler la plupart des
633 programmes C, car il dépend de constantes définies dans le code
634 source. Les sources peuvent être aussi utilisée pour compiler un noyau
635 personnalisé pour avoir de meilleures performances sur des matériels
638 %description source -l pl.UTF-8
639 Pakiet zawiera kod źródłowy jądra systemu.
642 Summary: Kernel documentation
643 Summary(de.UTF-8): Kernel Dokumentation
644 Summary(pl.UTF-8): Dokumentacja do jÄ…dra Linuksa
649 This is the documentation for the Linux kernel, as found in
650 /usr/src/linux/Documentation directory.
652 %description doc -l de.UTF-8
653 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
654 Verzeichniss vorgefunden werden kann.
656 %description doc -l pl.UTF-8
657 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
658 /usr/src/linux/Documentation.
662 ln -s %{SOURCE7} kernel-module-build.pl
663 ln -s %{SOURCE10} Makefile
666 # hack against warning in pax/grsec
667 sed -i 's/-Werror//' arch/alpha/kernel/Makefile
670 %if "%{postver}" != ".0"
674 %if %{without vanilla}
676 %if %{with fbcondecor}
685 # kernel-pom-ng-IPV4OPTSSTRIP.patch
688 # kernel-pom-ng-mms-conntrack-nat.patch
691 # kernel-pom-ng-rsh.patch
694 # kernel-pom-ng-rpc.patch
697 # kernel-owner-xid.patch
702 # kernel-layer7.patch
728 # kernel-rndis_host-wm5.patch
731 # hostap enhancements from/for aircrack-ng
754 # grsecurity & pax stuff
756 %if %{with grsecurity}
761 %{?with_vserver:%patch10000 -p1}
762 %{?with_vserver:%patch10001 -p1}
763 %{?with_vserver:%patch10002 -p1}
766 # end of grsecurity & pax stuff
783 # Do not remove this, please!
786 # Fix EXTRAVERSION in main Makefile
787 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
789 # cleanup backups after patching
790 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
794 cat > %{targetobj}.mk <<'EOF'
795 # generated by %{name}.spec
796 KERNELSRC := %{srcdir}
797 KERNELOUTPUT := %{objdir}
799 SRCARCH := %{target_arch_dir}
800 ARCH := %{_target_base_arch}
801 Q := %{!?with_verbose:@}
802 MAKE_OPTS := %{MakeOpts}
803 DEFCONFIG := %{defconfig}
810 CONFIG_PAX_SEGMEXEC=y
811 # performance impact on CPUs without NX bit
812 CONFIG_PAX_PAGEEXEC=n
815 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
821 CONFIG_PAX_NOELFRELOCS=n
824 CONFIG_PAX_EMUTRAMP=y
825 CONFIG_PAX_EMUSIGRT=y
829 %ifarch sparc sparc64 alpha
833 # Now we have to check MAC system integration. Grsecurity uses PAX_HAVE_ACL_FLAGS
834 # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
835 # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
836 # PAX_HOOK_ACL_FLAGS.
838 %if %{with grsecurity}
839 # Hardening grsec options if with pax
840 CONFIG_GRKERNSEC_PROC_MEMMAP=y
841 # almost rational (see HIDESYM help)
842 CONFIG_GRKERNSEC_HIDESYM=y
844 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
846 CONFIG_PAX_HAVE_ACL_FLAGS=n
847 CONFIG_PAX_HOOK_ACL_FLAGS=y
857 # CONFIG_SOUND is not set
858 # CONFIG_AUDIT is not set
859 # CONFIG_TR is not set
860 # CONFIG_BT is not set
861 # CONFIG_VIDEO_DEV is not set
862 # CONFIG_DVB_CORE is not set
863 # CONFIG_HAMRADIO is not set
864 # CONFIG_ARCNET is not set
865 # CONFIG_FB is not set
866 # CONFIG_DRM is not set
867 # CONFIG_WATCHDOG is not set
868 # CONFIG_INPUT_JOYSTICK is not set
869 # CONFIG_DEBUG_KERNEL is not set
870 # CONFIG_ISDN is not set
871 # CONFIG_AGP is not set
872 # CONFIG_SECURITY is not set
873 # CONFIG_PARIDE is not set
874 # CONFIG_CPU_FREQ is not set
875 # CONFIG_GAMEPORT is not set
876 # CONFIG_KVM is not set
877 # CONFIG_PHONE is not set
878 # CONFIG_STRICT_DEVMEM is not set
879 # CONFIG_IMA is not set
882 CONFIG_AUFS_BR_RAMFS=y
884 CONFIG_BLK_DEV_LOOP=y
897 Config="kernel-%{target_arch_dir}.config"
898 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
900 # prepare local and important options
901 cat <<-EOCONFIG > important.config
902 LOCALVERSION="-%{localversion}"
906 CONFIG_DEBUG_SLAB_LEAK=y
907 CONFIG_DEBUG_PREEMPT=y
908 CONFIG_RT_DEADLOCK_DETECT=y
915 %ifarch i686 athlon pentium3 pentium4
924 %if %{without pcmcia}
928 %if %{with fbcondecor}
932 CONFIG_FB_TILEBLITTING=n
933 CONFIG_FB_CON_DECOR=y
941 # Temporary disabled RELOCATABLE. Needed only on x86??
942 %if %{with pax} || %{with grsecurity}
948 RescueConfig rescue.config
954 # prepare kernel-style config file from multiple config files
955 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
957 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
960 %if %{without vanilla}
971 %if %{with grsecurity}
986 %{SOURCE41} %{?0:patches} \
989 $RPM_SOURCE_DIR/$Config
993 install -d arch/%{target_arch_dir}
994 BuildConfig > %{defconfig}
995 ln -sf %{defconfig} .config
999 TARGETOBJ=%{targetobj} \
1000 %{?with_verbose:V=1} \
1003 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
1007 TARGETOBJ=%{targetobj} \
1008 %{?with_verbose:V=1} \
1012 rm -rf $RPM_BUILD_ROOT
1013 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
1015 %{?with_verbose:V=1} \
1017 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
1018 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
1019 KERNELRELEASE=%{kernel_release}
1021 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1023 # create directories which may be missing, to simplyfy %files
1024 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
1026 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
1027 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1028 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1030 # no point embed content for %ghost files. empty them
1038 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1039 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1043 install -d $RPM_BUILD_ROOT/boot
1044 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1045 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
1046 %ifarch %{ix86} %{x8664}
1047 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1048 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1051 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1052 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1055 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1056 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1057 ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1059 %ifarch alpha sparc sparc64
1060 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1061 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1062 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1064 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1065 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1068 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1069 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1073 install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1077 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1078 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
1080 %if "%{_target_base_arch}" != "%{_host_base_arch}"
1081 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1085 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1087 install -d $RPM_BUILD_ROOT/etc/sysconfig
1088 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
1091 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1093 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1094 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1096 rm -f $RPM_BUILD_ROOT/COPYING
1099 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1100 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
1101 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
1102 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
1103 # copy arch/x86/include/generated
1104 for dir in $(cd %{objdir} && find arch -name generated -type d); do
1105 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
1106 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
1109 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
1110 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
1112 # collect module-build files and directories
1113 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1115 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1116 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1119 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
1121 if [ -x "$f" ]; then
1122 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1124 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1126 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
1127 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
1130 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1131 install -d $RPM_BUILD_ROOT%{_docdir}
1132 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1134 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1135 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1136 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1137 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1140 rm -rf $RPM_BUILD_ROOT
1143 if [ -x /sbin/new-kernel-pkg ]; then
1144 /sbin/new-kernel-pkg --remove %{kernel_release}
1148 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1149 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1151 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1152 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1153 %if 0%{?alt_kernel:1}
1154 mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1155 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}
1158 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1159 mv -f /boot/System.map{,.old} 2> /dev/null
1160 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1161 ln -sf System.map-%{kernel_release} /boot/System.map
1162 %if 0%{?alt_kernel:1}
1163 mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1164 mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
1165 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}
1166 ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
1170 %depmod %{kernel_release}
1173 # use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
1174 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1176 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
1177 /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release} || :
1178 initrd_file="initrd-%{kernel_release}.gz"
1181 # if dracut is present then generate full-featured initramfs
1182 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
1183 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
1184 [ -n "$initrd_file" ] || initrd_file="initramfs-%{kernel_release}.img"
1187 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1188 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1189 if [ -n "$initrd_file" ] ; then
1190 ln -sf "$initrd_file" %{initrd_dir}/initrd
1192 %if 0%{?alt_kernel:1}
1193 mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
1194 if [ -n "$initrd_file" ] ; then
1195 ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
1200 # update boot loaders when old package files are gone from filesystem
1201 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1202 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1203 /sbin/update-grub >/dev/null
1206 if [ -x /sbin/new-kernel-pkg ]; then
1207 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1209 if [ -x /sbin/rc-boot ]; then
1210 /sbin/rc-boot 1>&2 || :
1212 if [ -x /sbin/efi-boot-update ]; then
1213 /sbin/efi-boot-update --auto || :
1217 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1218 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1219 mv -f /boot/vmlinux{,.old} 2> /dev/null
1220 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1221 %if 0%{?alt_kernel:1}
1222 mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
1223 ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
1228 %depmod %{kernel_release}
1231 %depmod %{kernel_release}
1234 %depmod %{kernel_release}
1237 %depmod %{kernel_release}
1240 %depmod %{kernel_release}
1243 %depmod %{kernel_release}
1246 %depmod %{kernel_release}
1249 %depmod %{kernel_release}
1252 %depmod %{kernel_release}
1255 %depmod %{kernel_release}
1258 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1261 if [ "$1" = "0" ]; then
1262 if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
1263 if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
1264 rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1269 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1270 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1271 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1273 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1274 if [ "$1" = 0 ]; then
1275 rm -f /lib/modules/%{kernel_release}/{build,source}
1279 %defattr(644,root,root,755)
1280 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
1281 %ifarch sparc sparc64
1282 /boot/vmlinux.aout-%{kernel_release}
1285 /boot/efi/vmlinuz-%{kernel_release}
1287 /boot/vmlinuz-%{kernel_release}
1288 /boot/System.map-%{kernel_release}
1289 /boot/config-%{kernel_release}
1290 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1291 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
1292 /lib/firmware/%{kernel_release}
1294 %dir /lib/modules/%{kernel_release}
1295 %dir /lib/modules/%{kernel_release}/kernel
1296 /lib/modules/%{kernel_release}/kernel/arch
1297 /lib/modules/%{kernel_release}/kernel/crypto
1298 /lib/modules/%{kernel_release}/kernel/drivers
1300 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1303 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide
1305 /lib/modules/%{kernel_release}/kernel/fs
1306 /lib/modules/%{kernel_release}/kernel/kernel
1307 /lib/modules/%{kernel_release}/kernel/lib
1308 /lib/modules/%{kernel_release}/kernel/net
1309 /lib/modules/%{kernel_release}/kernel/mm
1311 %dir /lib/modules/%{kernel_release}/kernel/sound
1312 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1313 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1315 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1316 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1317 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1320 %dir /lib/modules/%{kernel_release}/misc
1322 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1323 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1324 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1325 %if %{without rescuecd}
1326 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1327 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1328 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1329 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1330 %exclude /lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
1331 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1333 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1334 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1335 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1336 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1337 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1338 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1339 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1340 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1343 /lib/modules/%{kernel_release}/kernel/sound
1345 /lib/modules/%{kernel_release}/kernel/security
1347 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1350 /lib/modules/%{kernel_release}/modules.order
1351 /lib/modules/%{kernel_release}/modules.builtin*
1353 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1354 %ghost /lib/modules/%{kernel_release}/modules.alias
1355 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1356 %ghost /lib/modules/%{kernel_release}/modules.dep
1357 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1358 %ghost /lib/modules/%{kernel_release}/modules.devname
1359 %ghost /lib/modules/%{kernel_release}/modules.softdep
1360 %ghost /lib/modules/%{kernel_release}/modules.symbols
1361 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1363 # symlinks pointing to kernelsrcdir
1364 %ghost /lib/modules/%{kernel_release}/build
1365 %ghost /lib/modules/%{kernel_release}/source
1367 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1369 %defattr(644,root,root,755)
1370 /boot/vmlinux-%{kernel_release}
1375 %defattr(644,root,root,755)
1376 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1381 %defattr(644,root,root,755)
1382 /lib/modules/%{kernel_release}/kernel/drivers/ide
1387 %defattr(644,root,root,755)
1388 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1389 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1390 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1391 %if %{without rescuecd}
1392 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1393 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1394 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1395 /lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
1397 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1398 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1399 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1400 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1401 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1402 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1403 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1404 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1405 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1410 %defattr(644,root,root,755)
1411 /lib/modules/%{kernel_release}/kernel/sound
1412 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1413 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1414 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1416 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1419 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1420 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1421 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1422 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1427 %defattr(644,root,root,755)
1428 /lib/modules/%{kernel_release}/kernel/sound/oss
1432 %files headers -f files.headers_exclude_kbuild
1433 %defattr(644,root,root,755)
1434 %dir %{_kernelsrcdir}
1435 %{_kernelsrcdir}/include
1436 %dir %{_kernelsrcdir}/arch
1437 %dir %{_kernelsrcdir}/arch/[!K]*
1438 %{_kernelsrcdir}/arch/*/include
1439 %dir %{_kernelsrcdir}/security
1440 %dir %{_kernelsrcdir}/security/selinux
1441 %{_kernelsrcdir}/security/selinux/include
1442 %{_kernelsrcdir}/.config
1443 %{_kernelsrcdir}/Module.symvers
1445 %files module-build -f files.mb_include_modulebuild_and_dirs
1446 %defattr(644,root,root,755)
1448 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1450 %exclude %dir %{_kernelsrcdir}/arch/um
1451 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1452 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1453 %{_kernelsrcdir}/drivers/lguest/lg.h
1454 %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1455 %{_kernelsrcdir}/kernel/bounds.c
1456 %{_kernelsrcdir}/scripts/basic/*.c
1457 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1458 %{_kernelsrcdir}/scripts/kconfig/*.in
1459 %{_kernelsrcdir}/scripts/kconfig/*_shipped
1460 %{_kernelsrcdir}/scripts/kconfig/*.pl
1461 %{_kernelsrcdir}/scripts/kconfig/*.glade
1462 %{_kernelsrcdir}/scripts/kconfig/*.gperf
1463 %{_kernelsrcdir}/scripts/kconfig/*.cc
1464 %{_kernelsrcdir}/scripts/kconfig/*.y
1465 %{_kernelsrcdir}/scripts/kconfig/*.l
1466 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1467 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1468 %{_kernelsrcdir}/scripts/kconfig/l*.h
1469 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1470 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1471 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1472 %{_kernelsrcdir}/scripts/mod/*.c
1473 %{_kernelsrcdir}/scripts/mod/[^e]*.h
1474 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1475 %{_kernelsrcdir}/scripts/mkmakefile
1476 %{_kernelsrcdir}/scripts/module-common.lds
1477 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1478 %{_kernelsrcdir}/scripts/*.c
1479 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1480 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1481 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1482 %exclude %dir %{_kernelsrcdir}/security
1483 %exclude %dir %{_kernelsrcdir}/security/selinux
1484 %if %{with grsecurity}
1485 %{_kernelsrcdir}/tools/gcc/*.c
1490 %defattr(644,root,root,755)
1491 %dir %{_docdir}/%{name}-%{version}
1493 %{_docdir}/%{name}-%{version}/[!jkz]*
1494 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1495 %{_docdir}/%{name}-%{version}/kbuild
1496 %{_docdir}/%{name}-%{version}/kdump
1497 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1498 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1499 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1503 %files source -f files.source_exclude_modulebuild_and_dirs
1504 %defattr(644,root,root,755)
1505 %{_kernelsrcdir}/arch/*/[!Mik]*
1506 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1507 %{_kernelsrcdir}/arch/ia64/install.sh
1508 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1509 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1510 %{_kernelsrcdir}/arch/m68k/install.sh
1511 %{_kernelsrcdir}/arch/parisc/install.sh
1512 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1513 %{_kernelsrcdir}/arch/ia64/kvm
1514 %{_kernelsrcdir}/arch/powerpc/kvm
1516 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1518 %{_kernelsrcdir}/arch/s390/kvm
1519 %{_kernelsrcdir}/arch/x86/kvm
1520 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1521 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1522 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1523 %exclude %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1524 %{_kernelsrcdir}/block
1525 %{_kernelsrcdir}/crypto
1526 %{_kernelsrcdir}/drivers
1527 %{_kernelsrcdir}/firmware
1529 %if %{with grsecurity} && %{without rescuecd}
1530 %{_kernelsrcdir}/grsecurity
1532 %{_kernelsrcdir}/init
1533 %{_kernelsrcdir}/ipc
1534 %{_kernelsrcdir}/kernel
1535 %exclude %{_kernelsrcdir}/kernel/bounds.c
1536 %{_kernelsrcdir}/lib
1538 %{_kernelsrcdir}/net
1539 %{_kernelsrcdir}/virt
1540 %{_kernelsrcdir}/samples
1541 %{_kernelsrcdir}/scripts/*
1542 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1543 %exclude %{_kernelsrcdir}/scripts/Makefile*
1544 %exclude %{_kernelsrcdir}/scripts/basic
1545 %exclude %{_kernelsrcdir}/scripts/kconfig
1546 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1547 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1548 %exclude %{_kernelsrcdir}/scripts/mod
1549 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1550 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1551 %exclude %{_kernelsrcdir}/scripts/*.c
1552 %exclude %{_kernelsrcdir}/scripts/*.sh
1553 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1554 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1555 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1556 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1557 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1558 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1559 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1560 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1561 %{_kernelsrcdir}/sound
1562 %{_kernelsrcdir}/security
1563 %exclude %{_kernelsrcdir}/security/selinux/include
1564 %{_kernelsrcdir}/tools/*
1565 %if %{with grsecurity}
1566 %exclude %{_kernelsrcdir}/tools/gcc/*.c
1568 %{_kernelsrcdir}/usr
1569 %{_kernelsrcdir}/COPYING
1570 %{_kernelsrcdir}/CREDITS
1571 %{_kernelsrcdir}/MAINTAINERS
1572 %{_kernelsrcdir}/README
1573 %{_kernelsrcdir}/REPORTING-BUGS