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
34 %bcond_without vserver # support for VServer
36 %bcond_with vanilla # don't include any patches
37 %bcond_with rescuecd # build kernel for our rescue
38 %bcond_with myown # build with your own config (kernel-myown.config)
40 %{?debug:%define with_verbose 1}
49 %unglobal with_vserver
76 # define this to '-%{basever}' for longterm branch
77 %define versuffix -%{basever}
79 # __alt_kernel is list of features, empty string if none set
80 # _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
81 # alt_kernel should be defined if __alt_kernel has non-empty value (for %{?alt_kernel:foo} constructs)
82 %define __alt_kernel %{nil}
84 %if "%{__alt_kernel}" != ""
85 %define alt_kernel %{__alt_kernel}
88 # these override whatever name was picked from bconds
89 %if %{with myown} && "%{_alt_kernel}" == ""
90 %define alt_kernel myown
93 %define alt_kernel rescuecd
96 %define alt_kernel vanilla
99 %define alt_kernel nopae
102 # kernel release (used in filesystem and eventually in uname -r)
103 # modules will be looked from /lib/modules/%{kernel_release}
104 # localversion is just that without version for "> localversion"
105 %define localversion %{rel}
106 %define kernel_release %{version}%{?alt_kernel:.%{alt_kernel}}-%{localversion}
108 Summary: The Linux kernel (the core of the Linux operating system)
109 Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
110 Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
111 Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
112 Summary(pl.UTF-8): JÄ…dro Linuksa
113 Name: kernel%{versuffix}%{_alt_kernel}
114 Version: %{basever}%{postver}
119 Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz
120 # Source0-md5: fe9dc0f6729f36400ea81aa41d614c37
121 %if "%{postver}" != ".0"
122 Patch0: http://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
123 # Patch0-md5: e790ae84e0109a3d95cc617be448171b
125 Source1: kernel.sysconfig
127 Source3: kernel-autoconf.h
128 Source4: kernel-config.h
129 Source6: kernel-config.awk
130 Source7: kernel-module-build.pl
131 Source8: kernel-track-config-change.awk
132 # not used by kernel.spec, but it's good to have it in SOURCES
133 Source9: kernel-config-sort.pl
134 Source10: kernel.make
136 Source20: kernel-multiarch.config
137 Source21: kernel-x86.config
138 Source22: kernel-sparc.config
139 Source23: kernel-alpha.config
140 Source24: kernel-powerpc.config
141 Source25: kernel-ia64.config
143 Source41: kernel-patches.config
144 Source43: kernel-vserver.config
146 Source55: kernel-imq.config
147 Source56: kernel-uksm.config
149 Source58: kernel-inittmpfs.config
151 # http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
152 Patch3: kernel-fbcondecor.patch
153 Patch6: linux-wistron-nx.patch
155 # netfilter related stuff mostly based on patch-o-matic-ng
156 # snapshot 20070806 with some fixes. Some modules
157 # were ported to nf_conntrack.
159 Patch10: kernel-pom-ng-IPV4OPTSSTRIP.patch
161 # http://ftp.linux-vserver.org/pub/people/dhozac/p/k/delta-owner-xid-feat02.diff
162 Patch37: kernel-owner-xid.patch
164 # based on kernel-2.6.25-layer7-2.20.patch from
165 # http://switch.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.20.tar.gz
166 Patch40: kernel-layer7.patch
170 # http://zph.bratcheda.org/linux-2.6.26.3-zph.patch
171 Patch49: kernel-zph.patch
173 # http://www.linuximq.net
174 Patch50: kernel-imq.patch
176 # http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
177 Patch53: kernel-esfq.patch
179 # by Baggins request:
180 # derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
181 Patch55: kernel-atm-vbr.patch
182 Patch56: kernel-atmdd.patch
184 # http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
185 Patch59: kernel-rndis_host-wm5.patch
187 # adds some ids for hostap suported cards and monitor_enable from/for aircrack-ng
188 # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
189 Patch85: kernel-hostap.patch
191 %define vserver_patch 4.1.12-vs2.3.8.3
192 # http://vserver.13thfloor.at/Experimental/patch-4.1.12-vs2.3.8.3.diff
193 # note there are additional patches from above url:
194 # - *fix* are real fixes (we want these)
195 # - *feat* are new features/tests (we don't want these)
196 Patch100: kernel-vserver-2.3.patch
197 Patch101: kernel-vserver-fixes.patch
199 # git://github.com/sfjro/aufs4-standalone.git, read README
201 # git clone git://github.com/sfjro/aufs4-standalone.git
202 # cd aufs4-standalone
203 # git checkout -b aufs4.1 origin/aufs4.1
204 # cat aufs4-kbuild.patch aufs4-base.patch aufs4-mmap.patch aufs4-standalone.patch > ~/rpm/packages/kernel/kernel-aufs4.patch
206 # cp -a Documentation fs include linux
207 # diff -urN /usr/share/empty linux >> ~/rpm/packages/kernel/kernel-aufs4.patch
208 # drop hunk at the end of patch (hunk is patching include/linux/Kbuild with single line change)
209 # cat aufs4-loopback.patch >> ~/rpm/packages/kernel/kernel-aufs4.patch
211 Patch145: kernel-aufs4.patch
212 Patch146: kernel-aufs4+vserver.patch
214 %define uksm_major_version 0.1.2.3
215 %define uksm_version %{uksm_major_version}-for-v3.18
216 Patch150: http://kerneldedup.org/download/uksm/%{uksm_major_version}/uksm-%{uksm_version}.patch
217 # Patch150-md5: b6a2b2aae9c2844d0c74690632d7019e
219 # Show normal colors in menuconfig with ncurses ABI 6
220 Patch250: kernel-fix_256colors_menuconfig.patch
222 # https://patchwork.kernel.org/patch/236261/
223 Patch400: kernel-virtio-gl-accel.patch
225 Patch2000: kernel-small_fixes.patch
226 Patch2001: kernel-pwc-uncompress.patch
227 Patch2003: kernel-regressions.patch
228 Patch2004: kernel-libata-ahci-pm.patch
231 # ls apparmor/kernel-patches/3.12
232 Patch5000: kernel-apparmor.patch
235 # based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
236 Patch7000: kernel-inittmpfs.patch
238 # Do not remove this line, please. It is easier for me to uncomment two lines, then patch
239 # kernel.spec every time.
240 #Patch50000: kernel-usb_reset.patch
242 URL: http://www.kernel.org/
244 BuildRequires: binutils >= 3:2.18
245 %ifarch sparc sparc64
246 BuildRequires: elftoaout
249 BuildRequires: uboot-mkimage
251 BuildRequires: /sbin/depmod
252 BuildRequires: gcc >= 5:3.2
253 BuildRequires: xz >= 1:4.999.7
255 BuildRequires: hostname
256 BuildRequires: kmod >= 12-2
257 BuildRequires: perl-base
258 BuildRequires: rpm-build >= 4.5-24
259 BuildRequires: rpmbuild(macros) >= 1.707
260 Requires(post): coreutils
261 Requires(post): geninitrd >= 12749
262 Requires(post): kmod >= 12-2
263 Requires: /sbin/depmod
265 Requires: geninitrd >= 12749
266 Requires: kmod >= 12-2
268 %ifarch i686 athlon pentium3 pentium4
269 Requires: cpuinfo(pae)
275 Suggests: kernel%{versuffix}-ide = %{epoch}:%{version}-%{release}
277 Suggests: linux-firmware
279 Requires: linux-firmware
281 Provides: %{name}(netfilter) = 20070806
282 Provides: %{name}(vermagic) = %{kernel_release}
283 Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100
284 Obsoletes: kernel%{_alt_kernel}-char-lirc-it87
285 Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709
286 Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb
287 Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap
288 Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
289 Obsoletes: kernel-firmware
290 Obsoletes: kernel-misc-acer_acpi
291 Obsoletes: kernel-misc-fuse
292 Obsoletes: kernel-misc-uvc
293 Obsoletes: kernel-modules
294 Obsoletes: kernel-net-ar81
295 Obsoletes: kernel-net-hostap
296 Obsoletes: kernel-net-ieee80211
297 Obsoletes: kernel-net-ipp2p
298 Obsoletes: kernel-net-rt61
299 Obsoletes: kernel-smp
300 Conflicts: e2fsprogs < 1.29
301 Conflicts: isdn4k-utils < 3.1pre1
302 Conflicts: jfsutils < 1.1.3
303 Conflicts: libusb < 1.0.9
304 Conflicts: linux-firmware < 20120720
305 Conflicts: lvm2 < 2.02.40
306 Conflicts: module-init-tools < 3.16
307 Conflicts: nfs-utils < 1.0.5
308 Conflicts: oprofile < 0.9
309 Conflicts: ppp < 1:2.4.0
310 Conflicts: procps < 3.2.0
311 Conflicts: quota-tools < 3.09
312 Conflicts: reiserfsprogs < 3.6.3
313 Conflicts: rpm < 4.4.2-0.2
314 Conflicts: udev < 1:081
315 Conflicts: util-linux < 2.10o
316 Conflicts: util-vserver < 0.30.216
317 Conflicts: xfsprogs < 2.6.0
319 ExclusiveArch: i686 pentium3 pentium4 athlon
321 ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 alpha arm ia64 ppc ppc64 sparc sparc64
324 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
326 %define kmod_compress_cmd %{__xz}
328 %ifarch %{ix86} %{x8664} x32
329 %define target_arch_dir x86
332 %define target_arch_dir powerpc
334 %ifarch sparc sparc64
335 %define target_arch_dir sparc
337 %ifnarch %{ix86} %{x8664} x32 ppc ppc64 sparc sparc64
338 %define target_arch_dir %{_target_base_arch}
341 %define defconfig arch/%{target_arch_dir}/defconfig
343 # No ELF objects there to strip (skips processing 27k files)
344 %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
345 %define _noautochrpath .*%{_kernelsrcdir}/.*
346 %define _enable_debug_packages 0
349 %define initrd_dir /boot/efi
351 %define initrd_dir /boot
354 %define topdir %{_builddir}/%{name}-%{version}
355 %define srcdir %{topdir}/linux-%{basever}
356 %define objdir %{topdir}/%{targetobj}
357 %define targetobj %{_target_base_arch}-gcc-%(%{__cc} -dumpversion)
359 %define _kernelsrcdir /usr/src/linux%{versuffix}%{_alt_kernel}-%{version}
361 %if "%{_target_base_arch}" != "%{_host_base_arch}"
362 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
363 %define DepMod /bin/true
365 %if "%{_host_base_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
366 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
367 %define DepMod /sbin/depmod
370 %if "%{_host_base_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
371 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
372 %define DepMod /sbin/depmod
375 %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
376 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
377 %define DepMod /sbin/depmod
380 %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
381 %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
385 %define CrossOpts ARCH=powerpc CC="%{__cc}"
387 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
389 %define DepMod /sbin/depmod
391 # use 64-bit offsets for fixdeps to work with 64-bit inodes
392 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64"
395 %{?with_vserver:Vserver - enabled}\
396 %{!?with_vserver:WARNING: VSERVER IS DISABLED IN THIS KERNEL BUILD!}\
397 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
398 %{?with_nfsroot:Root on NFS - enabled}\
399 %{?with_vserver:Linux-VServer - %{vserver_patch}}\
401 %define Features %(echo "%{__features}" | sed '/^$/d')
404 This package contains the Linux kernel that is used to boot and run
405 your system. It contains few device drivers for specific hardware.
406 Most hardware is instead supported by modules loaded after booting.
410 %description -l de.UTF-8
411 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
412 Linux-Betriebssystems. Der Kernel ist für grundliegende
413 Systemfunktionen verantwortlich: Speicherreservierung,
414 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
418 %description -l fr.UTF-8
419 Le package kernel contient le kernel linux (vmlinuz), la partie
420 centrale d'un système d'exploitation Linux. Le noyau traite les
421 fonctions basiques d'un système d'exploitation: allocation mémoire,
422 allocation de process, entrée/sortie de peripheriques, etc.
426 %description -l pl.UTF-8
427 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
428 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
429 się w komputerze, takiego jak sterowniki dysków itp.
434 Summary: vmlinux - uncompressed kernel image
435 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
436 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jÄ…dra
438 Obsoletes: kernel-smp-vmlinux
441 vmlinux - uncompressed kernel image.
443 %description vmlinux -l de.UTF-8
444 vmlinux - dekompressiertes Kernel Bild.
446 %description vmlinux -l pl.UTF-8
447 vmlinux - rozpakowany obraz jÄ…dra.
450 Summary: DRM kernel modules
451 Summary(de.UTF-8): DRM Kernel Treiber
452 Summary(pl.UTF-8): Sterowniki DRM
454 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
455 Requires: %{name} = %{epoch}:%{version}-%{release}
456 Obsoletes: kernel-smp-drm
462 %description drm -l de.UTF-8
465 %description drm -l pl.UTF-8
469 Summary: IDE kernel modules
470 Summary(de.UTF-8): IDE Kernel Treiber
471 Summary(pl.UTF-8): Sterowniki IDE
473 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
474 Requires: %{name} = %{epoch}:%{version}-%{release}
480 %description ide -l de.UTF-8
483 %description ide -l pl.UTF-8
487 Summary: PCMCIA modules
488 Summary(de.UTF-8): PCMCIA Module
489 Summary(pl.UTF-8): Moduły PCMCIA
491 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
492 Requires: %{name} = %{epoch}:%{version}-%{release}
493 Obsoletes: kernel-smp-pcmcia
494 Conflicts: pcmcia-cs < 3.1.21
495 Conflicts: pcmciautils < 004
501 %description pcmcia -l de.UTF-8
504 %description pcmcia -l pl.UTF-8
508 Summary: ALSA kernel modules
509 Summary(de.UTF-8): ALSA Kernel Module
510 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
512 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
513 Requires: %{name} = %{epoch}:%{version}-%{release}
514 Obsoletes: kernel-smp-sound-alsa
517 %description sound-alsa
518 ALSA (Advanced Linux Sound Architecture) sound drivers.
520 %description sound-alsa -l de.UTF-8
521 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
523 %description sound-alsa -l pl.UTF-8
524 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
527 Summary: OSS kernel modules
528 Summary(de.UTF-8): OSS Kernel Module
529 Summary(pl.UTF-8): Sterowniki dźwięku OSS
531 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
532 Requires: %{name} = %{epoch}:%{version}-%{release}
533 Obsoletes: kernel-smp-sound-oss
536 %description sound-oss
537 OSS (Open Sound System) drivers.
539 %description sound-oss -l de.UTF-8
540 OSS (Open Sound System) Treiber.
542 %description sound-oss -l pl.UTF-8
543 Sterowniki dźwięku OSS (Open Sound System).
546 Summary: Header files for the Linux kernel
547 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
548 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
549 Group: Development/Building
550 Provides: %{name}-headers(netfilter) = 20070806
554 These are the C header files for the Linux kernel, which define
555 structures and constants that are needed when rebuilding the kernel or
556 building kernel modules.
558 %description headers -l de.UTF-8
559 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
560 Strukturen und Konstante beinhalten, die beim rekompilieren des
561 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
563 %description headers -l pl.UTF-8
564 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
565 oraz budowania modułów jądra.
567 %package module-build
568 Summary: Development files for building kernel modules
569 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
570 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
571 Group: Development/Building
572 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
574 Conflicts: rpmbuild(macros) < 1.704
577 %description module-build
578 Development files from kernel source tree needed to build Linux kernel
579 modules from external packages.
581 %description module-build -l de.UTF-8
582 Development Dateien des Linux-Kernels die beim kompilieren externer
583 Kernel Module gebraucht werden.
585 %description module-build -l pl.UTF-8
586 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
587 Linuksa z zewnętrznych pakietów.
590 Summary: Kernel source tree
591 Summary(de.UTF-8): Der Kernel Quelltext
592 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
593 Group: Development/Building
594 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
596 %if "%{_rpmversion}" >= "5"
601 This is the source code for the Linux kernel. You can build a custom
602 kernel that is better tuned to your particular hardware.
604 %description source -l de.UTF-8
605 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
606 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
607 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
608 im Kernel-Source definiert sind. Die Source-Dateien können auch
609 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
610 Hardware ausgerichtet ist.
612 %description source -l fr.UTF-8
613 Le package pour le kernel-source contient le code source pour le noyau
614 linux. Ces sources sont nécessaires pour compiler la plupart des
615 programmes C, car il dépend de constantes définies dans le code
616 source. Les sources peuvent être aussi utilisée pour compiler un noyau
617 personnalisé pour avoir de meilleures performances sur des matériels
620 %description source -l pl.UTF-8
621 Pakiet zawiera kod źródłowy jądra systemu.
624 Summary: Kernel documentation
625 Summary(de.UTF-8): Kernel Dokumentation
626 Summary(pl.UTF-8): Dokumentacja do jÄ…dra Linuksa
629 %if "%{_rpmversion}" >= "5"
634 This is the documentation for the Linux kernel, as found in
635 /usr/src/linux/Documentation directory.
637 %description doc -l de.UTF-8
638 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
639 Verzeichniss vorgefunden werden kann.
641 %description doc -l pl.UTF-8
642 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
643 /usr/src/linux/Documentation.
647 ln -s %{SOURCE7} kernel-module-build.pl
648 ln -s %{SOURCE10} Makefile
651 %if "%{postver}" != ".0"
655 %if %{without vanilla}
657 %if %{with fbcondecor}
665 # kernel-pom-ng-IPV4OPTSSTRIP.patch
668 # kernel-owner-xid.patch
673 # kernel-layer7.patch
694 # kernel-rndis_host-wm5.patch
697 # hostap enhancements from/for aircrack-ng
737 # Do not remove this, please!
740 # Fix EXTRAVERSION in main Makefile
741 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
743 # cleanup backups after patching
744 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
748 cat > %{targetobj}.mk <<'EOF'
749 # generated by %{name}.spec
750 KERNELSRC := %{srcdir}
751 KERNELOUTPUT := %{objdir}
753 SRCARCH := %{target_arch_dir}
754 ARCH := %{_target_base_arch}
755 Q := %{!?with_verbose:@}
756 MAKE_OPTS := %{MakeOpts}
757 DEFCONFIG := %{defconfig}
763 # CONFIG_SOUND is not set
764 # CONFIG_AUDIT is not set
765 # CONFIG_TR is not set
766 # CONFIG_BT is not set
767 # CONFIG_VIDEO_DEV is not set
768 # CONFIG_DVB_CORE is not set
769 # CONFIG_HAMRADIO is not set
770 # CONFIG_ARCNET is not set
771 # CONFIG_DRM is not set
772 # CONFIG_WATCHDOG is not set
773 # CONFIG_INPUT_JOYSTICK is not set
774 # CONFIG_DEBUG_KERNEL is not set
775 # CONFIG_ISDN is not set
776 # CONFIG_AGP is not set
777 # CONFIG_SECURITY is not set
778 # CONFIG_PARIDE is not set
779 # CONFIG_CPU_FREQ is not set
780 # CONFIG_GAMEPORT is not set
781 # CONFIG_KVM is not set
782 # CONFIG_PHONE is not set
783 # CONFIG_STRICT_DEVMEM is not set
784 # CONFIG_IMA is not set
785 # CONFIG_MEDIA_SUPPORT is not set
786 # CONFIG_UWB is not set
787 # CONFIG_PWM is not set
788 # CONFIG_COMEDI_NI_LABPC_ISA is not set
789 # CONFIG_FB_SYS_FILLRECT is not set
790 # CONFIG_FB_SYS_COPYAREA is not set
791 # CONFIG_FB_SYS_IMAGEBLIT is not set
792 # CONFIG_FB_SYS_FOPS is not set
793 # CONFIG_FB_HECUBA is not set
794 # CONFIG_FB_SVGALIB is not set
795 # CONFIG_FB_CIRRUS is not set
796 # CONFIG_FB_PM2 is not set
797 # CONFIG_FB_CYBER2000 is not set
798 # CONFIG_FB_ARC is not set
799 # CONFIG_FB_ASILIANT is not set
800 # CONFIG_FB_IMSTT is not set
801 # CONFIG_FB_VGA16 is not set
802 # CONFIG_FB_UVESA is not set
803 # CONFIG_FB_N411 is not set
804 # CONFIG_FB_HGA is not set
805 # CONFIG_FB_S1D13XXX is not set
806 # CONFIG_FB_NVIDIA is not set
807 # CONFIG_FB_RIVA is not set
808 # CONFIG_FB_I740 is not set
809 # CONFIG_FB_LE80578 is not set
810 # CONFIG_FB_CARILLO_RANCH is not set
811 # CONFIG_FB_MATROX is not set
812 # CONFIG_FB_RADEON is not set
813 # CONFIG_FB_ATY128 is not set
814 # CONFIG_FB_ATY is not set
815 # CONFIG_FB_S3 is not set
816 # CONFIG_FB_SAVAGE is not set
817 # CONFIG_FB_SIS is not set
818 # CONFIG_FB_VIA is not set
819 # CONFIG_FB_NEOMAGIC is not set
820 # CONFIG_FB_KYRO is not set
821 # CONFIG_FB_3DFX is not set
822 # CONFIG_FB_VOODOO1 is not set
823 # CONFIG_FB_VT8623 is not set
824 # CONFIG_FB_TRIDENT is not set
825 # CONFIG_FB_ARK is not set
826 # CONFIG_FB_PM3 is not set
827 # CONFIG_FB_CARMINE is not set
828 # CONFIG_FB_GEODE is not set
829 # CONFIG_FB_TMIO is not set
830 # CONFIG_FB_SM501 is not set
831 # CONFIG_FB_SMSCUFX is not set
832 # CONFIG_FB_UDL is not set
833 # CONFIG_FB_GOLDFISH is not set
834 # CONFIG_XEN_FBDEV_FRONTEND is not set
835 # CONFIG_FB_METRONOME is not set
836 # CONFIG_FB_MB862XX is not set
837 # CONFIG_FB_BROADSHEET is not set
838 # CONFIG_FB_AUO_K190X is not set
839 # CONFIG_FB_AUO_K1900 is not set
840 # CONFIG_FB_AUO_K1901 is not set
841 # CONFIG_FB_HYPERV is not set
844 CONFIG_AUFS_BR_RAMFS=y
846 CONFIG_BLK_DEV_LOOP=y
852 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
862 Config="kernel-%{target_arch_dir}.config"
863 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
865 # prepare local and important options
866 cat <<-EOCONFIG > important.config
867 LOCALVERSION="-%{localversion}"
871 CONFIG_DEBUG_SLAB_LEAK=y
872 CONFIG_DEBUG_PREEMPT=y
873 CONFIG_RT_DEADLOCK_DETECT=y
880 %ifarch i686 athlon pentium3 pentium4
889 %if %{without pcmcia}
893 %if %{with fbcondecor}
897 CONFIG_FB_TILEBLITTING=n
898 CONFIG_FB_CON_DECOR=y
908 RescueConfig rescue.config
910 # prepare kernel-style config file from multiple config files
911 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
913 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
916 %if %{without vanilla}
931 %{SOURCE41} %{?0:patches} \
934 $RPM_SOURCE_DIR/$Config
938 install -d arch/%{target_arch_dir}
939 BuildConfig > %{defconfig}
940 ln -sf %{defconfig} .config
944 TARGETOBJ=%{targetobj} \
945 %{?with_verbose:V=1} \
948 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
952 TARGETOBJ=%{targetobj} \
953 %{?with_verbose:V=1} \
957 rm -rf $RPM_BUILD_ROOT
958 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install %{?with_firmware:firmware_install} \
960 %{?with_verbose:V=1} \
962 mod_compress_cmd=true \
963 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
964 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
965 KERNELRELEASE=%{kernel_release}
967 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
969 # create directories which may be missing, to simplyfy %files
970 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
972 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
973 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
974 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
976 # no point embed content for %ghost files. empty them
984 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
985 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
989 install -d $RPM_BUILD_ROOT/boot
990 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
991 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
992 %ifarch %{ix86} %{x8664} x32
993 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
994 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
997 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
998 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1001 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1002 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1003 ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1005 %ifarch alpha sparc sparc64
1006 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1007 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1008 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1010 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1011 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1014 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1015 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1019 install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1023 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1024 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
1026 %if "%{_target_base_arch}" != "%{_host_base_arch}"
1027 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1031 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1033 install -d $RPM_BUILD_ROOT/etc/sysconfig
1034 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
1037 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1039 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1040 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1042 rm -f $RPM_BUILD_ROOT/COPYING
1045 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1046 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
1047 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
1048 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
1049 # copy arch/x86/include/generated
1050 for dir in $(cd %{objdir} && find arch -name generated -type d); do
1051 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
1052 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
1055 # version.h location changed in 3.7, but a lot of external modules don't know about it
1056 # add a compatibility symlink
1057 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
1059 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
1060 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
1062 # collect module-build files and directories
1063 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1065 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1066 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1069 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
1071 if [ -x "$f" ]; then
1072 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1074 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1076 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
1077 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
1081 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1082 install -d $RPM_BUILD_ROOT%{_docdir}
1083 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1085 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1086 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1087 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1088 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1090 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
1094 rm -rf $RPM_BUILD_ROOT
1097 if [ -x /sbin/new-kernel-pkg ]; then
1098 /sbin/new-kernel-pkg --remove %{kernel_release}
1102 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1103 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1105 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1106 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1107 %if 0%{?alt_kernel:1}
1108 mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1109 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}
1112 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1113 mv -f /boot/System.map{,.old} 2> /dev/null
1114 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1115 ln -sf System.map-%{kernel_release} /boot/System.map
1116 %if 0%{?alt_kernel:1}
1117 mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1118 mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
1119 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}
1120 ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
1124 %depmod %{kernel_release}
1126 %if %{without vserver}
1127 %banner -e -a kernel <<EOF
1129 WARNING: Vserver support is DISABLED in this kernel build!
1135 # use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
1136 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1138 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
1139 /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release} || :
1140 initrd_file="initrd-%{kernel_release}.gz"
1143 # if dracut is present then generate full-featured initramfs
1144 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
1145 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
1146 [ -n "$initrd_file" ] || initrd_file="initramfs-%{kernel_release}.img"
1149 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1150 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1151 if [ -n "$initrd_file" ] ; then
1152 ln -sf "$initrd_file" %{initrd_dir}/initrd
1154 %if 0%{?alt_kernel:1}
1155 mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
1156 if [ -n "$initrd_file" ] ; then
1157 ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
1162 # update boot loaders when old package files are gone from filesystem
1163 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1164 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1165 /sbin/update-grub >/dev/null
1168 if [ -x /sbin/new-kernel-pkg ]; then
1169 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/$initrd_file --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1171 if [ -x /sbin/rc-boot ]; then
1172 /sbin/rc-boot 1>&2 || :
1174 if [ -x /sbin/efi-boot-update ]; then
1175 /sbin/efi-boot-update --auto || :
1179 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1180 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1181 mv -f /boot/vmlinux{,.old} 2> /dev/null
1182 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1183 %if 0%{?alt_kernel:1}
1184 mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
1185 ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
1190 %depmod %{kernel_release}
1193 %depmod %{kernel_release}
1196 %depmod %{kernel_release}
1199 %depmod %{kernel_release}
1202 %depmod %{kernel_release}
1205 %depmod %{kernel_release}
1208 %depmod %{kernel_release}
1211 %depmod %{kernel_release}
1214 %depmod %{kernel_release}
1217 %depmod %{kernel_release}
1220 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1223 if [ "$1" = "0" ]; then
1224 if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
1225 if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
1226 rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1231 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1232 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1233 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1235 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1236 if [ "$1" = 0 ]; then
1237 rm -f /lib/modules/%{kernel_release}/{build,source}
1241 %defattr(644,root,root,755)
1242 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
1243 %ifarch sparc sparc64
1244 /boot/vmlinux.aout-%{kernel_release}
1247 /boot/efi/vmlinuz-%{kernel_release}
1249 /boot/vmlinuz-%{kernel_release}
1250 /boot/System.map-%{kernel_release}
1251 /boot/config-%{kernel_release}
1252 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1253 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
1254 %if %{with firmware}
1255 /lib/firmware/%{kernel_release}
1258 %dir /lib/modules/%{kernel_release}
1259 %dir /lib/modules/%{kernel_release}/kernel
1260 /lib/modules/%{kernel_release}/kernel/arch
1261 /lib/modules/%{kernel_release}/kernel/crypto
1262 /lib/modules/%{kernel_release}/kernel/drivers
1264 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1267 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/*
1269 /lib/modules/%{kernel_release}/kernel/fs
1270 /lib/modules/%{kernel_release}/kernel/kernel
1271 /lib/modules/%{kernel_release}/kernel/lib
1272 /lib/modules/%{kernel_release}/kernel/net
1273 /lib/modules/%{kernel_release}/kernel/mm
1275 %dir /lib/modules/%{kernel_release}/kernel/sound
1276 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1277 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1279 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1280 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1281 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
1284 %dir /lib/modules/%{kernel_release}/misc
1286 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1287 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1288 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1289 %if %{without rescuecd}
1290 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1291 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1292 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1293 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1294 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/legacy/g_midi.ko*
1296 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1297 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1298 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1299 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1300 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1301 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1302 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1303 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1306 /lib/modules/%{kernel_release}/kernel/sound
1308 /lib/modules/%{kernel_release}/kernel/security
1310 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1313 /lib/modules/%{kernel_release}/modules.order
1314 /lib/modules/%{kernel_release}/modules.builtin*
1316 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1317 %ghost /lib/modules/%{kernel_release}/modules.alias
1318 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1319 %ghost /lib/modules/%{kernel_release}/modules.dep
1320 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1321 %ghost /lib/modules/%{kernel_release}/modules.devname
1322 %ghost /lib/modules/%{kernel_release}/modules.softdep
1323 %ghost /lib/modules/%{kernel_release}/modules.symbols
1324 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1326 # symlinks pointing to kernelsrcdir
1327 %ghost /lib/modules/%{kernel_release}/build
1328 %ghost /lib/modules/%{kernel_release}/source
1330 %ifarch alpha %{ix86} %{x8664} x32 ppc ppc64 sparc sparc64
1332 %defattr(644,root,root,755)
1333 /boot/vmlinux-%{kernel_release}
1338 %defattr(644,root,root,755)
1339 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1344 %defattr(644,root,root,755)
1345 /lib/modules/%{kernel_release}/kernel/drivers/ide/*
1347 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1353 %defattr(644,root,root,755)
1354 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1355 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1356 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1357 %if %{without rescuecd}
1358 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1359 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1360 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1361 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1363 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1364 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1365 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1366 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1367 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1368 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1369 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1370 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1375 %defattr(644,root,root,755)
1376 /lib/modules/%{kernel_release}/kernel/sound
1377 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1378 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1379 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1381 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1384 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/legacy/g_midi.ko*
1385 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1386 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1387 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
1392 %defattr(644,root,root,755)
1393 /lib/modules/%{kernel_release}/kernel/sound/oss
1397 %files headers -f files.headers_exclude_kbuild
1398 %defattr(644,root,root,755)
1399 %dir %{_kernelsrcdir}
1400 %{_kernelsrcdir}/include
1401 %dir %{_kernelsrcdir}/arch
1402 %dir %{_kernelsrcdir}/arch/[!K]*
1403 %{_kernelsrcdir}/arch/*/include
1404 %dir %{_kernelsrcdir}/security
1405 %dir %{_kernelsrcdir}/security/selinux
1406 %{_kernelsrcdir}/security/selinux/include
1407 %{_kernelsrcdir}/.config
1408 %{_kernelsrcdir}/Module.symvers
1410 %files module-build -f files.mb_include_modulebuild_and_dirs
1411 %defattr(644,root,root,755)
1413 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1415 %exclude %dir %{_kernelsrcdir}/arch/um
1416 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1417 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1418 %{_kernelsrcdir}/drivers/lguest/lg.h
1419 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
1420 %{_kernelsrcdir}/kernel/bounds.c
1421 %{_kernelsrcdir}/scripts/basic/*.c
1422 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1423 %{_kernelsrcdir}/scripts/kconfig/*.in
1424 %{_kernelsrcdir}/scripts/kconfig/*_shipped
1425 %{_kernelsrcdir}/scripts/kconfig/*.pl
1426 %{_kernelsrcdir}/scripts/kconfig/*.glade
1427 %{_kernelsrcdir}/scripts/kconfig/*.gperf
1428 %{_kernelsrcdir}/scripts/kconfig/*.cc
1429 %{_kernelsrcdir}/scripts/kconfig/*.y
1430 %{_kernelsrcdir}/scripts/kconfig/*.l
1431 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1432 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1433 %{_kernelsrcdir}/scripts/kconfig/l*.h
1434 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1435 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1436 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1437 %{_kernelsrcdir}/scripts/mod/*.c
1438 %{_kernelsrcdir}/scripts/mod/modpost.h
1439 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1440 %{_kernelsrcdir}/scripts/mkmakefile
1441 %{_kernelsrcdir}/scripts/module-common.lds
1442 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1443 %{_kernelsrcdir}/scripts/*.c
1444 %{_kernelsrcdir}/scripts/*.h
1445 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1446 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1447 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1448 %exclude %dir %{_kernelsrcdir}/security
1449 %exclude %dir %{_kernelsrcdir}/security/selinux
1453 %defattr(644,root,root,755)
1454 %dir %{_docdir}/%{name}-%{version}
1456 %{_docdir}/%{name}-%{version}/[!jkz]*
1457 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1458 %{_docdir}/%{name}-%{version}/kbuild
1459 %{_docdir}/%{name}-%{version}/kdump
1460 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1461 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1462 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1466 %files source -f files.source_exclude_modulebuild_and_dirs
1467 %defattr(644,root,root,755)
1468 %{_kernelsrcdir}/arch/*/[!Mik]*
1469 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1470 %{_kernelsrcdir}/arch/ia64/install.sh
1471 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1472 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1473 %{_kernelsrcdir}/arch/m68k/install.sh
1474 %{_kernelsrcdir}/arch/parisc/install.sh
1475 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1476 %{_kernelsrcdir}/arch/powerpc/kvm
1478 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1480 %{_kernelsrcdir}/arch/arm/kvm
1481 %{_kernelsrcdir}/arch/arm64/kvm
1482 %{_kernelsrcdir}/arch/mips/kvm
1483 %{_kernelsrcdir}/arch/s390/kvm
1484 %{_kernelsrcdir}/arch/x86/kvm
1485 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1486 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1487 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1488 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
1489 %{_kernelsrcdir}/block
1490 %{_kernelsrcdir}/crypto
1491 %{_kernelsrcdir}/drivers
1492 %{_kernelsrcdir}/firmware
1494 %{_kernelsrcdir}/init
1495 %{_kernelsrcdir}/ipc
1496 %{_kernelsrcdir}/kernel
1497 %exclude %{_kernelsrcdir}/kernel/bounds.c
1498 %{_kernelsrcdir}/lib
1500 %{_kernelsrcdir}/net
1501 %{_kernelsrcdir}/virt
1502 %{_kernelsrcdir}/samples
1503 %{_kernelsrcdir}/scripts/*
1504 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1505 %exclude %{_kernelsrcdir}/scripts/Makefile*
1506 %exclude %{_kernelsrcdir}/scripts/basic
1507 %exclude %{_kernelsrcdir}/scripts/kconfig
1508 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1509 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1510 %exclude %{_kernelsrcdir}/scripts/mod
1511 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1512 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1513 %exclude %{_kernelsrcdir}/scripts/*.c
1514 %exclude %{_kernelsrcdir}/scripts/*.h
1515 %exclude %{_kernelsrcdir}/scripts/*.sh
1516 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1517 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1518 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1519 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1520 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1521 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1522 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1523 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1524 %{_kernelsrcdir}/sound
1525 %{_kernelsrcdir}/security
1526 %exclude %{_kernelsrcdir}/security/selinux/include
1527 %{_kernelsrcdir}/tools/*
1528 %{_kernelsrcdir}/usr
1529 %{_kernelsrcdir}/COPYING
1530 %{_kernelsrcdir}/CREDITS
1531 %{_kernelsrcdir}/MAINTAINERS
1532 %{_kernelsrcdir}/README
1533 %{_kernelsrcdir}/REPORTING-BUGS