2 # LATEST VERSION CHECKER:
3 # # curl -s https://www.kernel.org/finger_banner
6 # - benchmark NO_HZ & HZ=1000 vs HZ=300 on i686
7 # - IPv4 source address selection for multihomed vservers is completely broken
8 # meaning routing table is ignored except for default
10 # HOWTO update configuration files:
12 # - add new options to proper config (kernel-multiarch.config, kernel-x86.config, kernel-powerpc.config etc)
13 # - sort configuration files using:
14 # ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version}/ -a x86 kernel-x86.config
15 # ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version} kernel-multiarch.config
18 %bcond_without source # don't build kernel-source package
19 %bcond_without doc # don't build kernel-doc package
20 %bcond_without pcmcia # don't build pcmcia
21 %bcond_without firmware # don't build firmware into main package
23 %bcond_with verbose # verbose build (V=1)
25 %bcond_with fbcondecor # build fbcondecor (disable FB_TILEBLITTING and affected fb modules)
26 %bcond_without pae # build PAE (HIGHMEM64G) support on 32bit i686 athlon pentium3 pentium4
27 %bcond_with nfsroot # build with root on NFS support
28 %bcond_with uksm # build with UKSM patch, http://kerneldedup.org/projects/uksm/
30 %bcond_without imq # imq support
31 %bcond_without esfq # esfq support
32 %bcond_without ipv6 # ipv6 support
33 %bcond_with padmcrypt # parallel dm-crypt
35 %bcond_without vserver # support for VServer
37 %bcond_with vanilla # don't include any patches
38 %bcond_with rescuecd # build kernel for our rescue
39 %bcond_with myown # build with your own config (kernel-myown.config)
41 %{?debug:%define with_verbose 1}
50 %unglobal with_vserver
77 # define this to '-%{basever}' for longterm branch
78 %define versuffix -%{basever}
80 # __alt_kernel is list of features, empty string if none set
81 # _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
82 # alt_kernel should be defined if __alt_kernel has non-empty value (for %{?alt_kernel:foo} constructs)
83 %define __alt_kernel %{nil}
85 %if "%{__alt_kernel}" != ""
86 %define alt_kernel %{__alt_kernel}
89 # these override whatever name was picked from bconds
90 %if %{with myown} && "%{_alt_kernel}" == ""
91 %define alt_kernel myown
94 %define alt_kernel rescuecd
97 %define alt_kernel vanilla
100 %define alt_kernel nopae
103 # kernel release (used in filesystem and eventually in uname -r)
104 # modules will be looked from /lib/modules/%{kernel_release}
105 # localversion is just that without version for "> localversion"
106 %define localversion %{rel}
107 %define kernel_release %{version}%{?alt_kernel:.%{alt_kernel}}-%{localversion}
109 Summary: The Linux kernel (the core of the Linux operating system)
110 Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
111 Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
112 Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
113 Summary(pl.UTF-8): JÄ…dro Linuksa
114 Name: kernel%{versuffix}%{_alt_kernel}
115 Version: %{basever}%{postver}
120 Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
121 # Source0-md5: 9e854df51ca3fef8bfe566dbd7b89241
122 %if "%{postver}" != ".0"
123 Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz
124 # Patch0-md5: 8bc8e01ff448b6b7a4d63c4dcb0d7eaa
126 Source1: kernel.sysconfig
128 Source3: kernel-autoconf.h
129 Source4: kernel-config.h
130 Source6: kernel-config.awk
131 Source7: kernel-module-build.pl
132 Source8: kernel-track-config-change.awk
133 # not used by kernel.spec, but it's good to have it in SOURCES
134 Source9: kernel-config-sort.pl
135 Source10: kernel.make
137 Source20: kernel-multiarch.config
138 Source21: kernel-x86.config
139 Source22: kernel-sparc.config
140 Source23: kernel-alpha.config
141 Source24: kernel-powerpc.config
142 Source25: kernel-ia64.config
144 Source41: kernel-patches.config
145 Source43: kernel-vserver.config
147 Source55: kernel-imq.config
148 Source56: kernel-uksm.config
150 Source58: kernel-inittmpfs.config
152 # http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
153 Patch3: kernel-fbcondecor.patch
154 Patch6: linux-wistron-nx.patch
156 # netfilter related stuff mostly based on patch-o-matic-ng
157 # snapshot 20070806 with some fixes. Some modules
158 # were ported to nf_conntrack.
160 Patch10: kernel-pom-ng-IPV4OPTSSTRIP.patch
162 # http://ftp.linux-vserver.org/pub/people/dhozac/p/k/delta-owner-xid-feat02.diff
163 Patch37: kernel-owner-xid.patch
165 # based on kernel-2.6.25-layer7-2.20.patch from
166 # http://switch.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.20.tar.gz
167 Patch40: kernel-layer7.patch
171 # http://zph.bratcheda.org/linux-2.6.26.3-zph.patch
172 Patch49: kernel-zph.patch
174 # http://www.linuximq.net
175 Patch50: kernel-imq.patch
177 # http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
178 Patch53: kernel-esfq.patch
180 # by Baggins request:
181 # derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
182 Patch55: kernel-atm-vbr.patch
183 Patch56: kernel-atmdd.patch
185 # http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
186 Patch59: kernel-rndis_host-wm5.patch
188 # adds some ids for hostap suported cards and monitor_enable from/for aircrack-ng
189 # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
190 Patch85: kernel-hostap.patch
192 %define vserver_patch 3.18.5-vs2.3.7.3
193 # http://vserver.13thfloor.at/Experimental/patch-3.18.5-vs2.3.7.3.diff
194 # note there are additional patches from above url:
195 # - *fix* are real fixes (we want these)
196 # - *feat* are new features/tests (we don't want these)
197 Patch100: kernel-vserver-2.3.patch
198 Patch101: kernel-vserver-fixes.patch
200 # git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git, read README
202 # git clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git
203 # cd aufs3-standalone
204 # git checkout -b aufs3.15 origin/aufs3.15
205 # cat aufs3-kbuild.patch aufs3-base.patch aufs3-mmap.patch aufs3-standalone.patch > ~/rpm/packages/kernel/kernel-aufs3.patch
207 # cp -a Documentation fs include linux
208 # diff -urN /usr/share/empty linux >> ~/rpm/packages/kernel/kernel-aufs3.patch
209 # drop hunk at the end of patch (hunk is patching include/linux/Kbuild with single line change)
210 # cat aufs3-loopback.patch >> ~/rpm/packages/kernel/kernel-aufs3.patch
212 Patch145: kernel-aufs3.patch
213 Patch146: kernel-aufs3+vserver.patch
215 # http://kerneldedup.org/download/uksm/0.1.2.3/uksm-0.1.2.3-for-v3.18.patch
216 Patch150: uksm-0.1.2.3-for-v3.18.patch
218 # Show normal colors in menuconfig with ncurses ABI 6
219 Patch250: kernel-fix_256colors_menuconfig.patch
221 # https://patchwork.kernel.org/patch/236261/
222 Patch400: kernel-virtio-gl-accel.patch
224 # http://people.redhat.com/mpatocka/patches/kernel/dm-crypt-paralelizace/current/series.html
225 Patch500: dm-crypt-unbound-workqueue.patch
226 Patch501: dm-crypt-dont-allocate-partial-pages.patch
227 Patch502: dm-crypt-fix-allocation-deadlock.patch
228 Patch503: dm-crypt-remove-io-pool.patch
229 Patch504: dm-crypt-offload-writes-to-thread.patch
230 Patch505: dm-crypt-sort-requests.patch
232 Patch2000: kernel-small_fixes.patch
233 Patch2001: kernel-pwc-uncompress.patch
234 Patch2003: kernel-regressions.patch
237 # ls apparmor/kernel-patches/3.12
238 Patch5000: kernel-apparmor.patch
241 # based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
242 Patch7000: kernel-inittmpfs.patch
244 # Do not remove this line, please. It is easier for me to uncomment two lines, then patch
245 # kernel.spec every time.
246 #Patch50000: kernel-usb_reset.patch
248 URL: http://www.kernel.org/
250 BuildRequires: binutils >= 3:2.18
251 %ifarch sparc sparc64
252 BuildRequires: elftoaout
255 BuildRequires: uboot-mkimage
257 BuildRequires: /sbin/depmod
258 BuildRequires: gcc >= 5:3.2
259 BuildRequires: xz >= 1:4.999.7
261 BuildRequires: hostname
262 BuildRequires: kmod >= 12-2
263 BuildRequires: perl-base
264 BuildRequires: rpm-build >= 4.5-24
265 BuildRequires: rpmbuild(macros) >= 1.707
266 Requires(post): coreutils
267 Requires(post): geninitrd >= 10000.32
268 Requires(post): kmod >= 12-2
269 Requires: /sbin/depmod
271 Requires: geninitrd >= 10000.32
272 Requires: kmod >= 12-2
274 %ifarch i686 athlon pentium3 pentium4
275 Requires: cpuinfo(pae)
281 Suggests: kernel%{versuffix}-ide = %{epoch}:%{version}-%{release}
283 Suggests: linux-firmware
285 Requires: linux-firmware
287 Provides: %{name}(netfilter) = 20070806
288 Provides: %{name}(vermagic) = %{kernel_release}
289 Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100
290 Obsoletes: kernel%{_alt_kernel}-char-lirc-it87
291 Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709
292 Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb
293 Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap
294 Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
295 Obsoletes: kernel-firmware
296 Obsoletes: kernel-misc-acer_acpi
297 Obsoletes: kernel-misc-fuse
298 Obsoletes: kernel-misc-uvc
299 Obsoletes: kernel-modules
300 Obsoletes: kernel-net-ar81
301 Obsoletes: kernel-net-hostap
302 Obsoletes: kernel-net-ieee80211
303 Obsoletes: kernel-net-ipp2p
304 Obsoletes: kernel-net-rt61
305 Obsoletes: kernel-smp
306 Conflicts: e2fsprogs < 1.29
307 Conflicts: isdn4k-utils < 3.1pre1
308 Conflicts: jfsutils < 1.1.3
309 Conflicts: libusb < 1.0.9
310 Conflicts: linux-firmware < 20120720
311 Conflicts: lvm2 < 2.02.40
312 Conflicts: module-init-tools < 3.16
313 Conflicts: nfs-utils < 1.0.5
314 Conflicts: oprofile < 0.9
315 Conflicts: ppp < 1:2.4.0
316 Conflicts: procps < 3.2.0
317 Conflicts: quota-tools < 3.09
318 Conflicts: reiserfsprogs < 3.6.3
319 Conflicts: rpm < 4.4.2-0.2
320 Conflicts: udev < 1:081
321 Conflicts: util-linux < 2.10o
322 Conflicts: util-vserver < 0.30.216
323 Conflicts: xfsprogs < 2.6.0
325 ExclusiveArch: i686 pentium3 pentium4 athlon
327 ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 alpha arm ia64 ppc ppc64 sparc sparc64
330 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
332 %define kmod_compress_cmd %{__xz}
334 %ifarch %{ix86} %{x8664} x32
335 %define target_arch_dir x86
338 %define target_arch_dir powerpc
340 %ifarch sparc sparc64
341 %define target_arch_dir sparc
343 %ifnarch %{ix86} %{x8664} x32 ppc ppc64 sparc sparc64
344 %define target_arch_dir %{_target_base_arch}
347 %define defconfig arch/%{target_arch_dir}/defconfig
349 # No ELF objects there to strip (skips processing 27k files)
350 %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
351 %define _noautochrpath .*%{_kernelsrcdir}/.*
352 %define _enable_debug_packages 0
355 %define initrd_dir /boot/efi
357 %define initrd_dir /boot
360 %define topdir %{_builddir}/%{name}-%{version}
361 %define srcdir %{topdir}/linux-%{basever}
362 %define objdir %{topdir}/%{targetobj}
363 %define targetobj %{_target_base_arch}-gcc-%(%{__cc} -dumpversion)
365 %define _kernelsrcdir /usr/src/linux%{versuffix}%{_alt_kernel}-%{version}
367 %if "%{_target_base_arch}" != "%{_host_base_arch}"
368 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
369 %define DepMod /bin/true
371 %if "%{_host_base_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
372 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
373 %define DepMod /sbin/depmod
376 %if "%{_host_base_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
377 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
378 %define DepMod /sbin/depmod
381 %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
382 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
383 %define DepMod /sbin/depmod
386 %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
387 %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
391 %define CrossOpts ARCH=powerpc CC="%{__cc}"
393 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
395 %define DepMod /sbin/depmod
397 # use 64-bit offsets for fixdeps to work with 64-bit inodes
398 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64"
401 %{?with_vserver:Vserver - enabled}\
402 %{!?with_vserver:WARNING: VSERVER IS DISABLED IN THIS KERNEL BUILD!}\
403 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
404 %{?with_nfsroot:Root on NFS - enabled}\
405 %{?with_vserver:Linux-VServer - %{vserver_patch}}\
407 %define Features %(echo "%{__features}" | sed '/^$/d')
410 This package contains the Linux kernel that is used to boot and run
411 your system. It contains few device drivers for specific hardware.
412 Most hardware is instead supported by modules loaded after booting.
416 %description -l de.UTF-8
417 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
418 Linux-Betriebssystems. Der Kernel ist für grundliegende
419 Systemfunktionen verantwortlich: Speicherreservierung,
420 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
424 %description -l fr.UTF-8
425 Le package kernel contient le kernel linux (vmlinuz), la partie
426 centrale d'un système d'exploitation Linux. Le noyau traite les
427 fonctions basiques d'un système d'exploitation: allocation mémoire,
428 allocation de process, entrée/sortie de peripheriques, etc.
432 %description -l pl.UTF-8
433 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
434 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
435 się w komputerze, takiego jak sterowniki dysków itp.
440 Summary: vmlinux - uncompressed kernel image
441 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
442 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jÄ…dra
444 Obsoletes: kernel-smp-vmlinux
447 vmlinux - uncompressed kernel image.
449 %description vmlinux -l de.UTF-8
450 vmlinux - dekompressiertes Kernel Bild.
452 %description vmlinux -l pl.UTF-8
453 vmlinux - rozpakowany obraz jÄ…dra.
456 Summary: DRM kernel modules
457 Summary(de.UTF-8): DRM Kernel Treiber
458 Summary(pl.UTF-8): Sterowniki DRM
460 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
461 Requires: %{name} = %{epoch}:%{version}-%{release}
462 Obsoletes: kernel-smp-drm
468 %description drm -l de.UTF-8
471 %description drm -l pl.UTF-8
475 Summary: IDE kernel modules
476 Summary(de.UTF-8): IDE Kernel Treiber
477 Summary(pl.UTF-8): Sterowniki IDE
479 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
480 Requires: %{name} = %{epoch}:%{version}-%{release}
486 %description ide -l de.UTF-8
489 %description ide -l pl.UTF-8
493 Summary: PCMCIA modules
494 Summary(de.UTF-8): PCMCIA Module
495 Summary(pl.UTF-8): Moduły PCMCIA
497 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
498 Requires: %{name} = %{epoch}:%{version}-%{release}
499 Obsoletes: kernel-smp-pcmcia
500 Conflicts: pcmcia-cs < 3.1.21
501 Conflicts: pcmciautils < 004
507 %description pcmcia -l de.UTF-8
510 %description pcmcia -l pl.UTF-8
514 Summary: ALSA kernel modules
515 Summary(de.UTF-8): ALSA Kernel Module
516 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
518 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
519 Requires: %{name} = %{epoch}:%{version}-%{release}
520 Obsoletes: kernel-smp-sound-alsa
523 %description sound-alsa
524 ALSA (Advanced Linux Sound Architecture) sound drivers.
526 %description sound-alsa -l de.UTF-8
527 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
529 %description sound-alsa -l pl.UTF-8
530 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
533 Summary: OSS kernel modules
534 Summary(de.UTF-8): OSS Kernel Module
535 Summary(pl.UTF-8): Sterowniki dźwięku OSS
537 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
538 Requires: %{name} = %{epoch}:%{version}-%{release}
539 Obsoletes: kernel-smp-sound-oss
542 %description sound-oss
543 OSS (Open Sound System) drivers.
545 %description sound-oss -l de.UTF-8
546 OSS (Open Sound System) Treiber.
548 %description sound-oss -l pl.UTF-8
549 Sterowniki dźwięku OSS (Open Sound System).
552 Summary: Header files for the Linux kernel
553 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
554 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
555 Group: Development/Building
556 Provides: %{name}-headers(netfilter) = 20070806
560 These are the C header files for the Linux kernel, which define
561 structures and constants that are needed when rebuilding the kernel or
562 building kernel modules.
564 %description headers -l de.UTF-8
565 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
566 Strukturen und Konstante beinhalten, die beim rekompilieren des
567 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
569 %description headers -l pl.UTF-8
570 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
571 oraz budowania modułów jądra.
573 %package module-build
574 Summary: Development files for building kernel modules
575 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
576 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
577 Group: Development/Building
578 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
580 Conflicts: rpmbuild(macros) < 1.704
583 %description module-build
584 Development files from kernel source tree needed to build Linux kernel
585 modules from external packages.
587 %description module-build -l de.UTF-8
588 Development Dateien des Linux-Kernels die beim kompilieren externer
589 Kernel Module gebraucht werden.
591 %description module-build -l pl.UTF-8
592 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
593 Linuksa z zewnętrznych pakietów.
596 Summary: Kernel source tree
597 Summary(de.UTF-8): Der Kernel Quelltext
598 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
599 Group: Development/Building
600 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
602 %if "%{_rpmversion}" >= "5"
607 This is the source code for the Linux kernel. You can build a custom
608 kernel that is better tuned to your particular hardware.
610 %description source -l de.UTF-8
611 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
612 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
613 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
614 im Kernel-Source definiert sind. Die Source-Dateien können auch
615 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
616 Hardware ausgerichtet ist.
618 %description source -l fr.UTF-8
619 Le package pour le kernel-source contient le code source pour le noyau
620 linux. Ces sources sont nécessaires pour compiler la plupart des
621 programmes C, car il dépend de constantes définies dans le code
622 source. Les sources peuvent être aussi utilisée pour compiler un noyau
623 personnalisé pour avoir de meilleures performances sur des matériels
626 %description source -l pl.UTF-8
627 Pakiet zawiera kod źródłowy jądra systemu.
630 Summary: Kernel documentation
631 Summary(de.UTF-8): Kernel Dokumentation
632 Summary(pl.UTF-8): Dokumentacja do jÄ…dra Linuksa
635 %if "%{_rpmversion}" >= "5"
640 This is the documentation for the Linux kernel, as found in
641 /usr/src/linux/Documentation directory.
643 %description doc -l de.UTF-8
644 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
645 Verzeichniss vorgefunden werden kann.
647 %description doc -l pl.UTF-8
648 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
649 /usr/src/linux/Documentation.
653 ln -s %{SOURCE7} kernel-module-build.pl
654 ln -s %{SOURCE10} Makefile
657 %if "%{postver}" != ".0"
661 %if %{without vanilla}
663 %if %{with fbcondecor}
671 # kernel-pom-ng-IPV4OPTSSTRIP.patch
674 # kernel-owner-xid.patch
679 # kernel-layer7.patch
700 # kernel-rndis_host-wm5.patch
703 # hostap enhancements from/for aircrack-ng
736 %if %{with padmcrypt}
752 # Do not remove this, please!
755 # Fix EXTRAVERSION in main Makefile
756 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
758 # cleanup backups after patching
759 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
763 cat > %{targetobj}.mk <<'EOF'
764 # generated by %{name}.spec
765 KERNELSRC := %{srcdir}
766 KERNELOUTPUT := %{objdir}
768 SRCARCH := %{target_arch_dir}
769 ARCH := %{_target_base_arch}
770 Q := %{!?with_verbose:@}
771 MAKE_OPTS := %{MakeOpts}
772 DEFCONFIG := %{defconfig}
778 # CONFIG_SOUND is not set
779 # CONFIG_AUDIT is not set
780 # CONFIG_TR is not set
781 # CONFIG_BT is not set
782 # CONFIG_VIDEO_DEV is not set
783 # CONFIG_DVB_CORE is not set
784 # CONFIG_HAMRADIO is not set
785 # CONFIG_ARCNET is not set
786 # CONFIG_DRM is not set
787 # CONFIG_WATCHDOG is not set
788 # CONFIG_INPUT_JOYSTICK is not set
789 # CONFIG_DEBUG_KERNEL is not set
790 # CONFIG_ISDN is not set
791 # CONFIG_AGP is not set
792 # CONFIG_SECURITY is not set
793 # CONFIG_PARIDE is not set
794 # CONFIG_CPU_FREQ is not set
795 # CONFIG_GAMEPORT is not set
796 # CONFIG_KVM is not set
797 # CONFIG_PHONE is not set
798 # CONFIG_STRICT_DEVMEM is not set
799 # CONFIG_IMA is not set
800 # CONFIG_MEDIA_SUPPORT is not set
801 # CONFIG_UWB is not set
802 # CONFIG_PWM is not set
803 # CONFIG_COMEDI_NI_LABPC_ISA is not set
804 # CONFIG_FB_SYS_FILLRECT is not set
805 # CONFIG_FB_SYS_COPYAREA is not set
806 # CONFIG_FB_SYS_IMAGEBLIT is not set
807 # CONFIG_FB_SYS_FOPS is not set
808 # CONFIG_FB_HECUBA is not set
809 # CONFIG_FB_SVGALIB is not set
810 # CONFIG_FB_CIRRUS is not set
811 # CONFIG_FB_PM2 is not set
812 # CONFIG_FB_CYBER2000 is not set
813 # CONFIG_FB_ARC is not set
814 # CONFIG_FB_ASILIANT is not set
815 # CONFIG_FB_IMSTT is not set
816 # CONFIG_FB_VGA16 is not set
817 # CONFIG_FB_UVESA is not set
818 # CONFIG_FB_N411 is not set
819 # CONFIG_FB_HGA is not set
820 # CONFIG_FB_S1D13XXX is not set
821 # CONFIG_FB_NVIDIA is not set
822 # CONFIG_FB_RIVA is not set
823 # CONFIG_FB_I740 is not set
824 # CONFIG_FB_LE80578 is not set
825 # CONFIG_FB_CARILLO_RANCH is not set
826 # CONFIG_FB_MATROX is not set
827 # CONFIG_FB_RADEON is not set
828 # CONFIG_FB_ATY128 is not set
829 # CONFIG_FB_ATY is not set
830 # CONFIG_FB_S3 is not set
831 # CONFIG_FB_SAVAGE is not set
832 # CONFIG_FB_SIS is not set
833 # CONFIG_FB_VIA is not set
834 # CONFIG_FB_NEOMAGIC is not set
835 # CONFIG_FB_KYRO is not set
836 # CONFIG_FB_3DFX is not set
837 # CONFIG_FB_VOODOO1 is not set
838 # CONFIG_FB_VT8623 is not set
839 # CONFIG_FB_TRIDENT is not set
840 # CONFIG_FB_ARK is not set
841 # CONFIG_FB_PM3 is not set
842 # CONFIG_FB_CARMINE is not set
843 # CONFIG_FB_GEODE is not set
844 # CONFIG_FB_TMIO is not set
845 # CONFIG_FB_SM501 is not set
846 # CONFIG_FB_SMSCUFX is not set
847 # CONFIG_FB_UDL is not set
848 # CONFIG_FB_GOLDFISH is not set
849 # CONFIG_XEN_FBDEV_FRONTEND is not set
850 # CONFIG_FB_METRONOME is not set
851 # CONFIG_FB_MB862XX is not set
852 # CONFIG_FB_BROADSHEET is not set
853 # CONFIG_FB_AUO_K190X is not set
854 # CONFIG_FB_AUO_K1900 is not set
855 # CONFIG_FB_AUO_K1901 is not set
856 # CONFIG_FB_HYPERV is not set
859 CONFIG_AUFS_BR_RAMFS=y
861 CONFIG_BLK_DEV_LOOP=y
867 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
877 Config="kernel-%{target_arch_dir}.config"
878 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
880 # prepare local and important options
881 cat <<-EOCONFIG > important.config
882 LOCALVERSION="-%{localversion}"
886 CONFIG_DEBUG_SLAB_LEAK=y
887 CONFIG_DEBUG_PREEMPT=y
888 CONFIG_RT_DEADLOCK_DETECT=y
895 %ifarch i686 athlon pentium3 pentium4
904 %if %{without pcmcia}
908 %if %{with fbcondecor}
912 CONFIG_FB_TILEBLITTING=n
913 CONFIG_FB_CON_DECOR=y
923 RescueConfig rescue.config
925 # prepare kernel-style config file from multiple config files
926 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
928 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
931 %if %{without vanilla}
946 %{SOURCE41} %{?0:patches} \
949 $RPM_SOURCE_DIR/$Config
953 install -d arch/%{target_arch_dir}
954 BuildConfig > %{defconfig}
955 ln -sf %{defconfig} .config
959 TARGETOBJ=%{targetobj} \
960 %{?with_verbose:V=1} \
963 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
967 TARGETOBJ=%{targetobj} \
968 %{?with_verbose:V=1} \
972 rm -rf $RPM_BUILD_ROOT
973 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install %{?with_firmware:firmware_install} \
975 %{?with_verbose:V=1} \
977 mod_compress_cmd=true \
978 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
979 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
980 KERNELRELEASE=%{kernel_release}
982 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
984 # create directories which may be missing, to simplyfy %files
985 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
987 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
988 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
989 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
991 # no point embed content for %ghost files. empty them
999 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1000 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1004 install -d $RPM_BUILD_ROOT/boot
1005 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1006 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
1007 %ifarch %{ix86} %{x8664} x32
1008 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1009 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1012 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1013 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1016 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1017 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1018 ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1020 %ifarch alpha sparc sparc64
1021 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1022 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1023 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1025 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1026 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1029 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1030 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1034 install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1038 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1039 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
1041 %if "%{_target_base_arch}" != "%{_host_base_arch}"
1042 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1046 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1048 install -d $RPM_BUILD_ROOT/etc/sysconfig
1049 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
1052 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1054 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1055 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1057 rm -f $RPM_BUILD_ROOT/COPYING
1060 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1061 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
1062 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
1063 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
1064 # copy arch/x86/include/generated
1065 for dir in $(cd %{objdir} && find arch -name generated -type d); do
1066 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
1067 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
1070 # version.h location changed in 3.7, but a lot of external modules don't know about it
1071 # add a compatibility symlink
1072 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
1074 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
1075 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
1077 # collect module-build files and directories
1078 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1080 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1081 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1084 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
1086 if [ -x "$f" ]; then
1087 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1089 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1091 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
1092 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
1096 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1097 install -d $RPM_BUILD_ROOT%{_docdir}
1098 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1100 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1101 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1102 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1103 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1105 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
1109 rm -rf $RPM_BUILD_ROOT
1112 if [ -x /sbin/new-kernel-pkg ]; then
1113 /sbin/new-kernel-pkg --remove %{kernel_release}
1117 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1118 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1120 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1121 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1122 %if 0%{?alt_kernel:1}
1123 mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1124 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}
1127 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1128 mv -f /boot/System.map{,.old} 2> /dev/null
1129 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1130 ln -sf System.map-%{kernel_release} /boot/System.map
1131 %if 0%{?alt_kernel:1}
1132 mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1133 mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
1134 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}
1135 ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
1139 %depmod %{kernel_release}
1141 %if %{without vserver}
1142 %banner -e -a kernel <<EOF
1144 WARNING: Vserver support is DISABLED in this kernel build!
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_file --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 %depmod %{kernel_release}
1232 %depmod %{kernel_release}
1235 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1238 if [ "$1" = "0" ]; then
1239 if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
1240 if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
1241 rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1246 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1247 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1248 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1250 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1251 if [ "$1" = 0 ]; then
1252 rm -f /lib/modules/%{kernel_release}/{build,source}
1256 %defattr(644,root,root,755)
1257 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
1258 %ifarch sparc sparc64
1259 /boot/vmlinux.aout-%{kernel_release}
1262 /boot/efi/vmlinuz-%{kernel_release}
1264 /boot/vmlinuz-%{kernel_release}
1265 /boot/System.map-%{kernel_release}
1266 /boot/config-%{kernel_release}
1267 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1268 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
1269 %if %{with firmware}
1270 /lib/firmware/%{kernel_release}
1273 %dir /lib/modules/%{kernel_release}
1274 %dir /lib/modules/%{kernel_release}/kernel
1275 /lib/modules/%{kernel_release}/kernel/arch
1276 /lib/modules/%{kernel_release}/kernel/crypto
1277 /lib/modules/%{kernel_release}/kernel/drivers
1279 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1282 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/*
1284 /lib/modules/%{kernel_release}/kernel/fs
1285 /lib/modules/%{kernel_release}/kernel/kernel
1286 /lib/modules/%{kernel_release}/kernel/lib
1287 /lib/modules/%{kernel_release}/kernel/net
1288 /lib/modules/%{kernel_release}/kernel/mm
1290 %dir /lib/modules/%{kernel_release}/kernel/sound
1291 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1292 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1294 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1295 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1296 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
1299 %dir /lib/modules/%{kernel_release}/misc
1301 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1302 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1303 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1304 %if %{without rescuecd}
1305 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1306 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1307 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1308 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1309 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/legacy/g_midi.ko*
1311 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1312 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1313 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1314 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1315 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1316 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1317 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1318 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1321 /lib/modules/%{kernel_release}/kernel/sound
1323 /lib/modules/%{kernel_release}/kernel/security
1325 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1328 /lib/modules/%{kernel_release}/modules.order
1329 /lib/modules/%{kernel_release}/modules.builtin*
1331 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1332 %ghost /lib/modules/%{kernel_release}/modules.alias
1333 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1334 %ghost /lib/modules/%{kernel_release}/modules.dep
1335 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1336 %ghost /lib/modules/%{kernel_release}/modules.devname
1337 %ghost /lib/modules/%{kernel_release}/modules.softdep
1338 %ghost /lib/modules/%{kernel_release}/modules.symbols
1339 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1341 # symlinks pointing to kernelsrcdir
1342 %ghost /lib/modules/%{kernel_release}/build
1343 %ghost /lib/modules/%{kernel_release}/source
1345 %ifarch alpha %{ix86} %{x8664} x32 ppc ppc64 sparc sparc64
1347 %defattr(644,root,root,755)
1348 /boot/vmlinux-%{kernel_release}
1353 %defattr(644,root,root,755)
1354 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1359 %defattr(644,root,root,755)
1360 /lib/modules/%{kernel_release}/kernel/drivers/ide/*
1362 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1368 %defattr(644,root,root,755)
1369 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1370 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1371 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1372 %if %{without rescuecd}
1373 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1374 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1375 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1376 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1378 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1379 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1380 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1381 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1382 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1383 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1384 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1385 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1390 %defattr(644,root,root,755)
1391 /lib/modules/%{kernel_release}/kernel/sound
1392 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1393 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1394 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1396 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1399 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/legacy/g_midi.ko*
1400 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1401 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1402 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
1407 %defattr(644,root,root,755)
1408 /lib/modules/%{kernel_release}/kernel/sound/oss
1412 %files headers -f files.headers_exclude_kbuild
1413 %defattr(644,root,root,755)
1414 %dir %{_kernelsrcdir}
1415 %{_kernelsrcdir}/include
1416 %dir %{_kernelsrcdir}/arch
1417 %dir %{_kernelsrcdir}/arch/[!K]*
1418 %{_kernelsrcdir}/arch/*/include
1419 %dir %{_kernelsrcdir}/security
1420 %dir %{_kernelsrcdir}/security/selinux
1421 %{_kernelsrcdir}/security/selinux/include
1422 %{_kernelsrcdir}/.config
1423 %{_kernelsrcdir}/Module.symvers
1425 %files module-build -f files.mb_include_modulebuild_and_dirs
1426 %defattr(644,root,root,755)
1428 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1430 %exclude %dir %{_kernelsrcdir}/arch/um
1431 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1432 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1433 %{_kernelsrcdir}/drivers/lguest/lg.h
1434 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
1435 %{_kernelsrcdir}/kernel/bounds.c
1436 %{_kernelsrcdir}/scripts/basic/*.c
1437 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1438 %{_kernelsrcdir}/scripts/kconfig/*.in
1439 %{_kernelsrcdir}/scripts/kconfig/*_shipped
1440 %{_kernelsrcdir}/scripts/kconfig/*.pl
1441 %{_kernelsrcdir}/scripts/kconfig/*.glade
1442 %{_kernelsrcdir}/scripts/kconfig/*.gperf
1443 %{_kernelsrcdir}/scripts/kconfig/*.cc
1444 %{_kernelsrcdir}/scripts/kconfig/*.y
1445 %{_kernelsrcdir}/scripts/kconfig/*.l
1446 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1447 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1448 %{_kernelsrcdir}/scripts/kconfig/l*.h
1449 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1450 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1451 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1452 %{_kernelsrcdir}/scripts/mod/*.c
1453 %{_kernelsrcdir}/scripts/mod/modpost.h
1454 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1455 %{_kernelsrcdir}/scripts/mkmakefile
1456 %{_kernelsrcdir}/scripts/module-common.lds
1457 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1458 %{_kernelsrcdir}/scripts/*.c
1459 %{_kernelsrcdir}/scripts/*.h
1460 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1461 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1462 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1463 %exclude %dir %{_kernelsrcdir}/security
1464 %exclude %dir %{_kernelsrcdir}/security/selinux
1468 %defattr(644,root,root,755)
1469 %dir %{_docdir}/%{name}-%{version}
1471 %{_docdir}/%{name}-%{version}/[!jkz]*
1472 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1473 %{_docdir}/%{name}-%{version}/kbuild
1474 %{_docdir}/%{name}-%{version}/kdump
1475 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1476 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1477 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1481 %files source -f files.source_exclude_modulebuild_and_dirs
1482 %defattr(644,root,root,755)
1483 %{_kernelsrcdir}/arch/*/[!Mik]*
1484 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1485 %{_kernelsrcdir}/arch/ia64/install.sh
1486 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1487 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1488 %{_kernelsrcdir}/arch/m68k/install.sh
1489 %{_kernelsrcdir}/arch/parisc/install.sh
1490 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1491 %{_kernelsrcdir}/arch/ia64/kvm
1492 %{_kernelsrcdir}/arch/powerpc/kvm
1494 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1496 %{_kernelsrcdir}/arch/arm/kvm
1497 %{_kernelsrcdir}/arch/arm64/kvm
1498 %{_kernelsrcdir}/arch/mips/kvm
1499 %{_kernelsrcdir}/arch/s390/kvm
1500 %{_kernelsrcdir}/arch/x86/kvm
1501 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1502 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1503 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1504 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
1505 %{_kernelsrcdir}/block
1506 %{_kernelsrcdir}/crypto
1507 %{_kernelsrcdir}/drivers
1508 %{_kernelsrcdir}/firmware
1510 %{_kernelsrcdir}/init
1511 %{_kernelsrcdir}/ipc
1512 %{_kernelsrcdir}/kernel
1513 %exclude %{_kernelsrcdir}/kernel/bounds.c
1514 %{_kernelsrcdir}/lib
1516 %{_kernelsrcdir}/net
1517 %{_kernelsrcdir}/virt
1518 %{_kernelsrcdir}/samples
1519 %{_kernelsrcdir}/scripts/*
1520 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1521 %exclude %{_kernelsrcdir}/scripts/Makefile*
1522 %exclude %{_kernelsrcdir}/scripts/basic
1523 %exclude %{_kernelsrcdir}/scripts/kconfig
1524 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1525 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1526 %exclude %{_kernelsrcdir}/scripts/mod
1527 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1528 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1529 %exclude %{_kernelsrcdir}/scripts/*.c
1530 %exclude %{_kernelsrcdir}/scripts/*.h
1531 %exclude %{_kernelsrcdir}/scripts/*.sh
1532 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1533 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1534 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1535 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1536 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1537 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1538 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1539 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1540 %{_kernelsrcdir}/sound
1541 %{_kernelsrcdir}/security
1542 %exclude %{_kernelsrcdir}/security/selinux/include
1543 %{_kernelsrcdir}/tools/*
1544 %{_kernelsrcdir}/usr
1545 %{_kernelsrcdir}/COPYING
1546 %{_kernelsrcdir}/CREDITS
1547 %{_kernelsrcdir}/MAINTAINERS
1548 %{_kernelsrcdir}/README
1549 %{_kernelsrcdir}/REPORTING-BUGS