2 %bcond_without source # don't build kernel-source package
3 %bcond_without doc # don't build kernel-doc package
4 %bcond_with verbose # verbose build (V=1)
10 %define alt_kernel 4.9
12 # kernel release (used in filesystem and eventually in uname -r)
13 # modules will be looked from /lib/modules/%{kernel_release}
14 # localversion is just that without version for "> localversion"
15 %define localversion %{rel}
16 %define kernel_release %{version}%{?alt_kernel:-%{alt_kernel}}-%{localversion}
18 Summary: The Linux kernel (the core of the Linux operating system)
19 Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
20 Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
21 Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
22 Summary(pl.UTF-8): Jądro Linuksa
23 Name: kernel%{_alt_kernel}
24 Version: %{basever}.%{postver}
29 Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz
30 # Source0-md5: 0a68ef3615c64bd5ee54a3320e46667d
31 %if "%{postver}" != "0"
32 Source1: http://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
33 # Source1-md5: f6543693793209202831577ef0c7583b
36 Source2: kernel-module-build.pl
39 Source10: kernel-x86.config
40 Source11: kernel-x86_64.config
42 URL: http://www.kernel.org/
43 BuildRequires: binutils >= 3:2.18
45 BuildRequires: /sbin/depmod
46 BuildRequires: elfutils-devel
48 BuildRequires: gcc >= 5:3.2
49 BuildRequires: gcc-plugin-devel
50 BuildRequires: xz >= 1:4.999.7
52 BuildRequires: hostname
54 BuildRequires: openssl-devel
55 BuildRequires: perl-base
56 BuildRequires: rpm >= 4.5-74
57 BuildRequires: rpmbuild(macros) >= 1.652
58 Requires(post): coreutils
59 Requires(post): dracut
60 Requires(post): kmod >= 12-2
61 Requires: /sbin/depmod
64 Requires: kmod >= 12-2
66 Requires: cpuinfo(pae)
69 Suggests: linux-firmware
70 Provides: %{name}(netfilter) = 20070806
71 Provides: %{name}(vermagic) = %{kernel_release}
72 Obsoletes: kernel%{_alt_kernel}-vanilla
73 Obsoletes: kernel-firmware
74 Obsoletes: kernel-modules
75 Conflicts: e2fsprogs < 1.29
76 Conflicts: isdn4k-utils < 3.1pre1
77 Conflicts: jfsutils < 1.1.3
78 Conflicts: linux-firmware < 20120720
79 Conflicts: lvm2 < 2.02.40
80 Conflicts: module-init-tools < 3.16
81 Conflicts: nfs-utils < 1.0.5
82 Conflicts: oprofile < 0.9
83 Conflicts: ppp < 1:2.4.0
84 Conflicts: procps < 3.2.0
85 Conflicts: quota-tools < 3.09
86 Conflicts: reiserfsprogs < 3.6.3
87 Conflicts: rpm < 4.4.2-0.2
88 Conflicts: udev < 1:081
89 Conflicts: util-linux < 2.10o
90 Conflicts: xfsprogs < 2.6.0
91 ExclusiveArch: i686 x86_64
93 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96 %define target_arch_dir x86
98 %define target_arch_dir %{_target_base_arch}
101 %define defconfig arch/%{target_arch_dir}/defconfig
103 # No ELF objects there to strip (skips processing 27k files)
104 %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
105 %define _noautochrpath .*%{_kernelsrcdir}/.*
106 %define _enable_debug_packages 0
108 %define initrd_dir /boot
110 %define topdir %{_builddir}/%{name}-%{version}
111 %define srcdir %{topdir}/linux-%{basever}
112 %define objdir %{topdir}/%{targetobj}
113 %define targetobj %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
115 %define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version}
117 %if "%{_target_base_arch}" != "%{_host_base_arch}"
118 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux-
119 %define DepMod /bin/true
121 %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
122 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
123 %define DepMod /sbin/depmod
127 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
128 %define DepMod /sbin/depmod
130 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
133 This package contains the Linux kernel that is used to boot and run
134 your system. It contains few device drivers for specific hardware.
135 Most hardware is instead supported by modules loaded after booting.
137 %description -l de.UTF-8
138 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
139 Linux-Betriebssystems. Der Kernel ist für grundliegende
140 Systemfunktionen verantwortlich: Speicherreservierung,
141 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
143 %description -l fr.UTF-8
144 Le package kernel contient le kernel linux (vmlinuz), la partie
145 centrale d'un système d'exploitation Linux. Le noyau traite les
146 fonctions basiques d'un système d'exploitation: allocation mémoire,
147 allocation de process, entrée/sortie de peripheriques, etc.
149 %description -l pl.UTF-8
150 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
151 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
152 się w komputerze, takiego jak sterowniki dysków itp.
155 Summary: vmlinux - uncompressed kernel image
156 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
157 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jądra
159 Obsoletes: kernel-smp-vmlinux
162 vmlinux - uncompressed kernel image.
164 %description vmlinux -l de.UTF-8
165 vmlinux - dekompressiertes Kernel Bild.
167 %description vmlinux -l pl.UTF-8
168 vmlinux - rozpakowany obraz jądra.
171 Summary: DRM kernel modules
172 Summary(de.UTF-8): DRM Kernel Treiber
173 Summary(pl.UTF-8): Sterowniki DRM
175 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
176 Requires: %{name} = %{epoch}:%{version}-%{release}
177 Obsoletes: kernel-smp-drm
183 %description drm -l de.UTF-8
186 %description drm -l pl.UTF-8
190 Summary: PCMCIA modules
191 Summary(de.UTF-8): PCMCIA Module
192 Summary(pl.UTF-8): Moduły PCMCIA
194 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
195 Requires: %{name} = %{epoch}:%{version}-%{release}
196 Obsoletes: kernel-smp-pcmcia
197 Conflicts: pcmcia-cs < 3.1.21
198 Conflicts: pcmciautils < 004
204 %description pcmcia -l de.UTF-8
207 %description pcmcia -l pl.UTF-8
211 Summary: ALSA kernel modules
212 Summary(de.UTF-8): ALSA Kernel Module
213 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
215 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
216 Requires: %{name} = %{epoch}:%{version}-%{release}
217 Obsoletes: kernel-smp-sound-alsa
220 %description sound-alsa
221 ALSA (Advanced Linux Sound Architecture) sound drivers.
223 %description sound-alsa -l de.UTF-8
224 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
226 %description sound-alsa -l pl.UTF-8
227 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
230 Summary: Header files for the Linux kernel
231 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
232 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
233 Group: Development/Building
234 Provides: %{name}-headers(netfilter) = 20070806
238 These are the C header files for the Linux kernel, which define
239 structures and constants that are needed when rebuilding the kernel or
240 building kernel modules.
242 %description headers -l de.UTF-8
243 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
244 Strukturen und Konstante beinhalten, die beim rekompilieren des
245 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
247 %description headers -l pl.UTF-8
248 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
249 oraz budowania modułów jądra.
251 %package module-build
252 Summary: Development files for building kernel modules
253 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
254 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
255 Group: Development/Building
256 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
257 Conflicts: rpmbuild(macros) < 1.652
260 %description module-build
261 Development files from kernel source tree needed to build Linux kernel
262 modules from external packages.
264 %description module-build -l de.UTF-8
265 Development Dateien des Linux-Kernels die beim kompilieren externer
266 Kernel Module gebraucht werden.
268 %description module-build -l pl.UTF-8
269 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
270 Linuksa z zewnętrznych pakietów.
273 Summary: Kernel source tree
274 Summary(de.UTF-8): Der Kernel Quelltext
275 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
276 Group: Development/Building
277 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
281 This is the source code for the Linux kernel. You can build a custom
282 kernel that is better tuned to your particular hardware.
284 %description source -l de.UTF-8
285 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
286 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
287 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
288 im Kernel-Source definiert sind. Die Source-Dateien können auch
289 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
290 Hardware ausgerichtet ist.
292 %description source -l fr.UTF-8
293 Le package pour le kernel-source contient le code source pour le noyau
294 linux. Ces sources sont nécessaires pour compiler la plupart des
295 programmes C, car il dépend de constantes définies dans le code
296 source. Les sources peuvent être aussi utilisée pour compiler un noyau
297 personnalisé pour avoir de meilleures performances sur des matériels
300 %description source -l pl.UTF-8
301 Pakiet zawiera kod źródłowy jądra systemu.
304 Summary: Kernel documentation
305 Summary(de.UTF-8): Kernel Dokumentation
306 Summary(pl.UTF-8): Dokumentacja do jądra Linuksa
311 This is the documentation for the Linux kernel, as found in
312 /usr/src/linux/Documentation directory.
314 %description doc -l de.UTF-8
315 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
316 Verzeichniss vorgefunden werden kann.
318 %description doc -l pl.UTF-8
319 Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu
320 /usr/src/linux/Documentation.
324 ln -s %{SOURCE2} kernel-module-build.pl
325 ln -s %{SOURCE3} Makefile
328 %if "%{postver}" != "0"
329 %{__xz} -dc %{SOURCE1} | patch -p1 -s
332 # Fix EXTRAVERSION in main Makefile
333 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:-%{alt_kernel}}#g' Makefile
335 # cleanup backups after patching
336 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
340 cat > %{targetobj}.mk <<'EOF'
341 # generated by %{name}.spec
342 KERNELSRC := %{srcdir}
343 KERNELOUTPUT := %{objdir}
345 SRCARCH := %{target_arch_dir}
346 ARCH := %{_target_base_arch}
347 Q := %{!?with_verbose:@}
348 MAKE_OPTS := %{MakeOpts}
349 DEFCONFIG := %{defconfig}
353 install -d arch/%{target_arch_dir}
355 cat %{SOURCE10} > %{defconfig}
358 cat %{SOURCE11} > %{defconfig}
360 sed -i "s:CONFIG_LOCALVERSION=\"\":CONFIG_LOCALVERSION=\"-%{localversion}\":" %{defconfig}
362 ln -sf %{defconfig} .config
366 TARGETOBJ=%{targetobj} \
367 %{?with_verbose:V=1} \
372 TARGETOBJ=%{targetobj} \
373 %{?with_verbose:V=1} \
377 rm -rf $RPM_BUILD_ROOT
378 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
380 %{?with_verbose:V=1} \
382 mod_compress_cmd=true \
383 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
384 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
385 KERNELRELEASE=%{kernel_release}
387 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
389 # create directories which may be missing, to simplyfy %files
390 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
392 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
393 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
394 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
396 # no point embed content for %ghost files. empty them
404 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
405 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
409 install -d $RPM_BUILD_ROOT/boot
410 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
411 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
412 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
413 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
416 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
418 %if "%{_target_base_arch}" != "%{_host_base_arch}"
419 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
423 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
426 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
428 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
429 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
431 rm -f $RPM_BUILD_ROOT/COPYING
434 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
435 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
436 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
437 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
438 # copy arch/x86/include/generated
439 for dir in $(cd %{objdir} && find arch -name generated -type d); do
440 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
441 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
444 # version.h location changed in 3.7, but a lot of external modules don't know about it
445 # add a compatibility symlink
446 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
448 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
449 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
451 # collect module-build files and directories
452 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
454 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
455 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
458 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
461 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
463 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
465 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
466 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
470 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
471 install -d $RPM_BUILD_ROOT%{_docdir}
472 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
474 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
475 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
476 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
477 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
479 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
483 rm -rf $RPM_BUILD_ROOT
486 if [ -x /sbin/new-kernel-pkg ]; then
487 /sbin/new-kernel-pkg --remove %{kernel_release}
491 %depmod %{kernel_release}
495 if [ -x /sbin/dracut ]; then
496 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
499 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
500 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-yes})" = "yes" ]; then
501 /sbin/update-grub >/dev/null
506 %depmod %{kernel_release}
509 %depmod %{kernel_release}
512 %depmod %{kernel_release}
515 %depmod %{kernel_release}
518 %depmod %{kernel_release}
521 %depmod %{kernel_release}
524 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
527 if [ "$1" = "0" ]; then
528 if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
529 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
530 rm -f %{_prefix}/src/linux%{_alt_kernel}
535 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
536 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
537 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
539 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
540 if [ "$1" = 0 ]; then
541 rm -f /lib/modules/%{kernel_release}/{build,source}
545 %defattr(644,root,root,755)
546 /boot/vmlinuz-%{kernel_release}
547 /boot/System.map-%{kernel_release}
548 /boot/config-%{kernel_release}
549 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
550 /lib/firmware/%{kernel_release}
552 %dir /lib/modules/%{kernel_release}
553 %dir /lib/modules/%{kernel_release}/kernel
554 /lib/modules/%{kernel_release}/kernel/arch
555 /lib/modules/%{kernel_release}/kernel/crypto
556 /lib/modules/%{kernel_release}/kernel/drivers
557 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
558 /lib/modules/%{kernel_release}/kernel/fs
559 /lib/modules/%{kernel_release}/kernel/kernel
560 /lib/modules/%{kernel_release}/kernel/lib
561 /lib/modules/%{kernel_release}/kernel/net
562 /lib/modules/%{kernel_release}/kernel/mm
563 %dir /lib/modules/%{kernel_release}/kernel/sound
564 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
565 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
566 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
567 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
568 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
569 %dir /lib/modules/%{kernel_release}/misc
570 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
571 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
572 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
573 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
574 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
575 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
576 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
577 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
578 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
579 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
580 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
581 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
582 /lib/modules/%{kernel_release}/kernel/security
583 /lib/modules/%{kernel_release}/kernel/virt
585 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
588 /lib/modules/%{kernel_release}/modules.order
589 /lib/modules/%{kernel_release}/modules.builtin*
591 # rest modules.* are ghost (regenerated by post depmod -a invocation)
592 %ghost /lib/modules/%{kernel_release}/modules.alias
593 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
594 %ghost /lib/modules/%{kernel_release}/modules.dep
595 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
596 %ghost /lib/modules/%{kernel_release}/modules.devname
597 %ghost /lib/modules/%{kernel_release}/modules.softdep
598 %ghost /lib/modules/%{kernel_release}/modules.symbols
599 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
601 # symlinks pointing to kernelsrcdir
602 %ghost /lib/modules/%{kernel_release}/build
603 %ghost /lib/modules/%{kernel_release}/source
606 %defattr(644,root,root,755)
607 /boot/vmlinux-%{kernel_release}
610 %defattr(644,root,root,755)
611 /lib/modules/%{kernel_release}/kernel/drivers/gpu
614 %defattr(644,root,root,755)
615 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
616 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
617 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
618 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
619 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
620 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
621 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
622 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
623 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
624 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
625 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
626 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
629 %defattr(644,root,root,755)
630 /lib/modules/%{kernel_release}/kernel/sound
631 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
632 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
633 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
634 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
635 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
636 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
638 %files headers -f files.headers_exclude_kbuild
639 %defattr(644,root,root,755)
640 %dir %{_kernelsrcdir}
641 %{_kernelsrcdir}/include
642 %dir %{_kernelsrcdir}/arch
643 %dir %{_kernelsrcdir}/arch/[!K]*
644 %{_kernelsrcdir}/arch/*/include
645 %dir %{_kernelsrcdir}/security
646 %dir %{_kernelsrcdir}/security/selinux
647 %{_kernelsrcdir}/security/selinux/include
648 %{_kernelsrcdir}/.config
649 %{_kernelsrcdir}/Module.symvers
651 %files module-build -f files.mb_include_modulebuild_and_dirs
652 %defattr(644,root,root,755)
653 %exclude %dir %{_kernelsrcdir}/arch/um
654 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
655 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
656 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
657 %{_kernelsrcdir}/kernel/bounds.c
658 %{_kernelsrcdir}/scripts/basic/*.c
659 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
660 %{_kernelsrcdir}/scripts/kconfig/*.in
661 %{_kernelsrcdir}/scripts/kconfig/*_shipped
662 %{_kernelsrcdir}/scripts/kconfig/*.pl
663 %{_kernelsrcdir}/scripts/kconfig/*.glade
664 %{_kernelsrcdir}/scripts/kconfig/*.cc
665 %{_kernelsrcdir}/scripts/kconfig/*.y
666 %{_kernelsrcdir}/scripts/kconfig/*.l
667 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
668 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
669 %{_kernelsrcdir}/scripts/kconfig/l*.h
670 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
671 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
672 %{_kernelsrcdir}/scripts/kconfig/lxdialog
673 %{_kernelsrcdir}/scripts/mod/*.c
674 %{_kernelsrcdir}/scripts/mod/modpost.h
675 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
676 %{_kernelsrcdir}/scripts/mkmakefile
677 %{_kernelsrcdir}/scripts/module-common.lds
678 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
679 %{_kernelsrcdir}/scripts/*.c
680 %{_kernelsrcdir}/scripts/*.h
681 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
682 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
683 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
684 %exclude %dir %{_kernelsrcdir}/security
685 %exclude %dir %{_kernelsrcdir}/security/selinux
689 %defattr(644,root,root,755)
690 %dir %{_docdir}/%{name}-%{version}
692 %{_docdir}/%{name}-%{version}/[!jkz]*
693 %{_docdir}/%{name}-%{version}/[jkz]*.txt
694 %{_docdir}/%{name}-%{version}/kbuild
695 %{_docdir}/%{name}-%{version}/kdump
696 %{_docdir}/%{name}-%{version}/kernel-documentation.rst
697 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
698 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
699 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
703 %files source -f files.source_exclude_modulebuild_and_dirs
704 %defattr(644,root,root,755)
705 %{_kernelsrcdir}/arch/*/[!Mik]*
706 %{_kernelsrcdir}/arch/*/kernel/[!M]*
707 %{_kernelsrcdir}/arch/ia64/install.sh
708 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
709 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
710 %{_kernelsrcdir}/arch/m68k/install.sh
711 %{_kernelsrcdir}/arch/parisc/install.sh
712 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
713 %{_kernelsrcdir}/arch/arm/kvm
714 %{_kernelsrcdir}/arch/arm64/kvm
715 %{_kernelsrcdir}/arch/mips/kvm
716 %{_kernelsrcdir}/arch/powerpc/kvm
717 %{_kernelsrcdir}/arch/s390/kvm
718 %{_kernelsrcdir}/arch/x86/kvm
719 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
720 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
721 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
722 %{_kernelsrcdir}/block
723 %{_kernelsrcdir}/certs
724 %{_kernelsrcdir}/crypto
725 %{_kernelsrcdir}/drivers
726 %{_kernelsrcdir}/firmware
728 %{_kernelsrcdir}/init
730 %{_kernelsrcdir}/kernel
731 %exclude %{_kernelsrcdir}/kernel/bounds.c
735 %{_kernelsrcdir}/virt
736 %{_kernelsrcdir}/samples
737 %{_kernelsrcdir}/scripts/*
738 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
739 %exclude %{_kernelsrcdir}/scripts/Makefile*
740 %exclude %{_kernelsrcdir}/scripts/basic
741 %exclude %{_kernelsrcdir}/scripts/kconfig
742 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
743 %exclude %{_kernelsrcdir}/scripts/mkmakefile
744 %exclude %{_kernelsrcdir}/scripts/mod
745 %exclude %{_kernelsrcdir}/scripts/module-common.lds
746 %exclude %{_kernelsrcdir}/scripts/setlocalversion
747 %exclude %{_kernelsrcdir}/scripts/*.c
748 %exclude %{_kernelsrcdir}/scripts/*.h
749 %exclude %{_kernelsrcdir}/scripts/*.sh
750 %exclude %dir %{_kernelsrcdir}/scripts/selinux
751 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
752 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
753 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
754 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
755 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
756 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
757 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
758 %{_kernelsrcdir}/sound
759 %{_kernelsrcdir}/security
760 %exclude %{_kernelsrcdir}/security/selinux/include
761 %{_kernelsrcdir}/tools/*
763 %{_kernelsrcdir}/COPYING
764 %{_kernelsrcdir}/CREDITS
765 %{_kernelsrcdir}/MAINTAINERS
766 %{_kernelsrcdir}/README
767 %{_kernelsrcdir}/REPORTING-BUGS