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-vanilla
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: 7432fed2908736cc45aa5f31fa191347
36 Source2: kernel-module-build.pl
39 Source10: kernel-vanilla-x86.config
40 Source11: kernel-vanilla-x86_64.config
42 URL: http://www.kernel.org/
43 BuildRequires: binutils >= 3:2.18
44 BuildRequires: /sbin/depmod
45 BuildRequires: gcc >= 5:3.2
46 BuildRequires: gcc-plugin-devel
47 BuildRequires: xz >= 1:4.999.7
49 BuildRequires: hostname
51 BuildRequires: perl-base
52 BuildRequires: rpm >= 4.5-74
53 BuildRequires: rpmbuild(macros) >= 1.652
54 Requires(post): coreutils
55 Requires(post): dracut
56 Requires(post): kmod >= 12-2
57 Requires: /sbin/depmod
60 Requires: kmod >= 12-2
62 Requires: cpuinfo(pae)
66 Suggests: linux-firmware
67 Provides: %{name}(netfilter) = 20070806
68 Provides: %{name}(vermagic) = %{kernel_release}
69 Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100
70 Obsoletes: kernel%{_alt_kernel}-char-lirc-it87
71 Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709
72 Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb
73 Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap
74 Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
75 Obsoletes: kernel-firmware
76 Obsoletes: kernel-misc-acer_acpi
77 Obsoletes: kernel-misc-fuse
78 Obsoletes: kernel-misc-uvc
79 Obsoletes: kernel-modules
80 Obsoletes: kernel-net-ar81
81 Obsoletes: kernel-net-hostap
82 Obsoletes: kernel-net-ieee80211
83 Obsoletes: kernel-net-ipp2p
84 Obsoletes: kernel-net-rt61
86 Conflicts: e2fsprogs < 1.29
87 Conflicts: isdn4k-utils < 3.1pre1
88 Conflicts: jfsutils < 1.1.3
89 Conflicts: linux-firmware < 20120720
90 Conflicts: lvm2 < 2.02.40
91 Conflicts: module-init-tools < 3.16
92 Conflicts: nfs-utils < 1.0.5
93 Conflicts: oprofile < 0.9
94 Conflicts: ppp < 1:2.4.0
95 Conflicts: procps < 3.2.0
96 Conflicts: quota-tools < 3.09
97 Conflicts: reiserfsprogs < 3.6.3
98 Conflicts: rpm < 4.4.2-0.2
99 Conflicts: udev < 1:081
100 Conflicts: util-linux < 2.10o
101 Conflicts: xfsprogs < 2.6.0
102 ExclusiveArch: i686 x86_64
104 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
107 %define target_arch_dir x86
109 %define target_arch_dir %{_target_base_arch}
112 %define defconfig arch/%{target_arch_dir}/defconfig
114 # No ELF objects there to strip (skips processing 27k files)
115 %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
116 %define _noautochrpath .*%{_kernelsrcdir}/.*
117 %define _enable_debug_packages 0
119 %define initrd_dir /boot
121 %define topdir %{_builddir}/%{name}-%{version}
122 %define srcdir %{topdir}/linux-%{basever}
123 %define objdir %{topdir}/%{targetobj}
124 %define targetobj %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
126 %define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version}
128 %if "%{_target_base_arch}" != "%{_host_base_arch}"
129 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux-
130 %define DepMod /bin/true
132 %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
133 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
134 %define DepMod /sbin/depmod
138 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
139 %define DepMod /sbin/depmod
141 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
144 This package contains the Linux kernel that is used to boot and run
145 your system. It contains few device drivers for specific hardware.
146 Most hardware is instead supported by modules loaded after booting.
148 %description -l de.UTF-8
149 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
150 Linux-Betriebssystems. Der Kernel ist für grundliegende
151 Systemfunktionen verantwortlich: Speicherreservierung,
152 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
154 %description -l fr.UTF-8
155 Le package kernel contient le kernel linux (vmlinuz), la partie
156 centrale d'un système d'exploitation Linux. Le noyau traite les
157 fonctions basiques d'un système d'exploitation: allocation mémoire,
158 allocation de process, entrée/sortie de peripheriques, etc.
160 %description -l pl.UTF-8
161 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
162 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
163 się w komputerze, takiego jak sterowniki dysków itp.
166 Summary: vmlinux - uncompressed kernel image
167 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
168 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jądra
170 Obsoletes: kernel-smp-vmlinux
173 vmlinux - uncompressed kernel image.
175 %description vmlinux -l de.UTF-8
176 vmlinux - dekompressiertes Kernel Bild.
178 %description vmlinux -l pl.UTF-8
179 vmlinux - rozpakowany obraz jądra.
182 Summary: DRM kernel modules
183 Summary(de.UTF-8): DRM Kernel Treiber
184 Summary(pl.UTF-8): Sterowniki DRM
186 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
187 Requires: %{name} = %{epoch}:%{version}-%{release}
188 Obsoletes: kernel-smp-drm
194 %description drm -l de.UTF-8
197 %description drm -l pl.UTF-8
201 Summary: PCMCIA modules
202 Summary(de.UTF-8): PCMCIA Module
203 Summary(pl.UTF-8): Moduły PCMCIA
205 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
206 Requires: %{name} = %{epoch}:%{version}-%{release}
207 Obsoletes: kernel-smp-pcmcia
208 Conflicts: pcmcia-cs < 3.1.21
209 Conflicts: pcmciautils < 004
215 %description pcmcia -l de.UTF-8
218 %description pcmcia -l pl.UTF-8
222 Summary: ALSA kernel modules
223 Summary(de.UTF-8): ALSA Kernel Module
224 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
226 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
227 Requires: %{name} = %{epoch}:%{version}-%{release}
228 Obsoletes: kernel-smp-sound-alsa
231 %description sound-alsa
232 ALSA (Advanced Linux Sound Architecture) sound drivers.
234 %description sound-alsa -l de.UTF-8
235 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
237 %description sound-alsa -l pl.UTF-8
238 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
241 Summary: Header files for the Linux kernel
242 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
243 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
244 Group: Development/Building
245 Provides: %{name}-headers(netfilter) = 20070806
249 These are the C header files for the Linux kernel, which define
250 structures and constants that are needed when rebuilding the kernel or
251 building kernel modules.
253 %description headers -l de.UTF-8
254 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
255 Strukturen und Konstante beinhalten, die beim rekompilieren des
256 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
258 %description headers -l pl.UTF-8
259 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
260 oraz budowania modułów jądra.
262 %package module-build
263 Summary: Development files for building kernel modules
264 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
265 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
266 Group: Development/Building
267 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
268 Conflicts: rpmbuild(macros) < 1.652
271 %description module-build
272 Development files from kernel source tree needed to build Linux kernel
273 modules from external packages.
275 %description module-build -l de.UTF-8
276 Development Dateien des Linux-Kernels die beim kompilieren externer
277 Kernel Module gebraucht werden.
279 %description module-build -l pl.UTF-8
280 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
281 Linuksa z zewnętrznych pakietów.
284 Summary: Kernel source tree
285 Summary(de.UTF-8): Der Kernel Quelltext
286 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
287 Group: Development/Building
288 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
292 This is the source code for the Linux kernel. You can build a custom
293 kernel that is better tuned to your particular hardware.
295 %description source -l de.UTF-8
296 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
297 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
298 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
299 im Kernel-Source definiert sind. Die Source-Dateien können auch
300 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
301 Hardware ausgerichtet ist.
303 %description source -l fr.UTF-8
304 Le package pour le kernel-source contient le code source pour le noyau
305 linux. Ces sources sont nécessaires pour compiler la plupart des
306 programmes C, car il dépend de constantes définies dans le code
307 source. Les sources peuvent être aussi utilisée pour compiler un noyau
308 personnalisé pour avoir de meilleures performances sur des matériels
311 %description source -l pl.UTF-8
312 Pakiet zawiera kod źródłowy jądra systemu.
315 Summary: Kernel documentation
316 Summary(de.UTF-8): Kernel Dokumentation
317 Summary(pl.UTF-8): Dokumentacja do jądra Linuksa
322 This is the documentation for the Linux kernel, as found in
323 /usr/src/linux/Documentation directory.
325 %description doc -l de.UTF-8
326 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
327 Verzeichniss vorgefunden werden kann.
329 %description doc -l pl.UTF-8
330 Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu
331 /usr/src/linux/Documentation.
335 ln -s %{SOURCE2} kernel-module-build.pl
336 ln -s %{SOURCE3} Makefile
339 %if "%{postver}" != "0"
340 %{__xz} -dc %{SOURCE1} | patch -p1 -s
343 # Fix EXTRAVERSION in main Makefile
344 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:-%{alt_kernel}}#g' Makefile
346 # cleanup backups after patching
347 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
351 cat > %{targetobj}.mk <<'EOF'
352 # generated by %{name}.spec
353 KERNELSRC := %{srcdir}
354 KERNELOUTPUT := %{objdir}
356 SRCARCH := %{target_arch_dir}
357 ARCH := %{_target_base_arch}
358 Q := %{!?with_verbose:@}
359 MAKE_OPTS := %{MakeOpts}
360 DEFCONFIG := %{defconfig}
364 install -d arch/%{target_arch_dir}
366 cat %{SOURCE10} > %{defconfig}
369 cat %{SOURCE11} > %{defconfig}
371 sed -i "s:CONFIG_LOCALVERSION=\"\":CONFIG_LOCALVERSION=\"-%{localversion}\":" %{defconfig}
373 ln -sf %{defconfig} .config
377 TARGETOBJ=%{targetobj} \
378 %{?with_verbose:V=1} \
383 TARGETOBJ=%{targetobj} \
384 %{?with_verbose:V=1} \
388 rm -rf $RPM_BUILD_ROOT
389 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
391 %{?with_verbose:V=1} \
393 mod_compress_cmd=true \
394 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
395 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
396 KERNELRELEASE=%{kernel_release}
398 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
400 # create directories which may be missing, to simplyfy %files
401 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
403 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
404 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
405 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
407 # no point embed content for %ghost files. empty them
415 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
416 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
420 install -d $RPM_BUILD_ROOT/boot
421 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
422 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
423 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
424 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
427 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
429 %if "%{_target_base_arch}" != "%{_host_base_arch}"
430 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
434 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
437 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
439 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
440 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
442 rm -f $RPM_BUILD_ROOT/COPYING
445 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
446 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
447 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
448 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
449 # copy arch/x86/include/generated
450 for dir in $(cd %{objdir} && find arch -name generated -type d); do
451 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
452 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
455 # version.h location changed in 3.7, but a lot of external modules don't know about it
456 # add a compatibility symlink
457 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
459 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
460 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
462 # collect module-build files and directories
463 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
465 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
466 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
469 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
472 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
474 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
476 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
477 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
481 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
482 install -d $RPM_BUILD_ROOT%{_docdir}
483 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
485 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
486 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
487 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
488 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
490 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
494 rm -rf $RPM_BUILD_ROOT
497 if [ -x /sbin/new-kernel-pkg ]; then
498 /sbin/new-kernel-pkg --remove %{kernel_release}
502 %depmod %{kernel_release}
506 if [ -x /sbin/dracut ]; then
507 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
510 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
511 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-yes})" = "yes" ]; then
512 /sbin/update-grub >/dev/null
517 %depmod %{kernel_release}
520 %depmod %{kernel_release}
523 %depmod %{kernel_release}
526 %depmod %{kernel_release}
529 %depmod %{kernel_release}
532 %depmod %{kernel_release}
535 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
538 if [ "$1" = "0" ]; then
539 if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
540 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
541 rm -f %{_prefix}/src/linux%{_alt_kernel}
546 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
547 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
548 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
550 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
551 if [ "$1" = 0 ]; then
552 rm -f /lib/modules/%{kernel_release}/{build,source}
556 %defattr(644,root,root,755)
557 /boot/vmlinuz-%{kernel_release}
558 /boot/System.map-%{kernel_release}
559 /boot/config-%{kernel_release}
560 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
561 /lib/firmware/%{kernel_release}
563 %dir /lib/modules/%{kernel_release}
564 %dir /lib/modules/%{kernel_release}/kernel
565 /lib/modules/%{kernel_release}/kernel/arch
566 /lib/modules/%{kernel_release}/kernel/crypto
567 /lib/modules/%{kernel_release}/kernel/drivers
568 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
569 /lib/modules/%{kernel_release}/kernel/fs
570 /lib/modules/%{kernel_release}/kernel/kernel
571 /lib/modules/%{kernel_release}/kernel/lib
572 /lib/modules/%{kernel_release}/kernel/net
573 /lib/modules/%{kernel_release}/kernel/mm
574 %dir /lib/modules/%{kernel_release}/kernel/sound
575 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
576 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
577 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
578 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
579 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
580 %dir /lib/modules/%{kernel_release}/misc
581 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
582 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
583 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
584 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
585 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
586 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
587 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
588 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
589 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
590 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
591 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
592 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
593 /lib/modules/%{kernel_release}/kernel/security
594 /lib/modules/%{kernel_release}/kernel/virt
596 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
599 /lib/modules/%{kernel_release}/modules.order
600 /lib/modules/%{kernel_release}/modules.builtin*
602 # rest modules.* are ghost (regenerated by post depmod -a invocation)
603 %ghost /lib/modules/%{kernel_release}/modules.alias
604 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
605 %ghost /lib/modules/%{kernel_release}/modules.dep
606 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
607 %ghost /lib/modules/%{kernel_release}/modules.devname
608 %ghost /lib/modules/%{kernel_release}/modules.softdep
609 %ghost /lib/modules/%{kernel_release}/modules.symbols
610 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
612 # symlinks pointing to kernelsrcdir
613 %ghost /lib/modules/%{kernel_release}/build
614 %ghost /lib/modules/%{kernel_release}/source
617 %defattr(644,root,root,755)
618 /boot/vmlinux-%{kernel_release}
621 %defattr(644,root,root,755)
622 /lib/modules/%{kernel_release}/kernel/drivers/gpu
625 %defattr(644,root,root,755)
626 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
627 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
628 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
629 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
630 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
631 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
632 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
633 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
634 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
635 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
636 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
637 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
640 %defattr(644,root,root,755)
641 /lib/modules/%{kernel_release}/kernel/sound
642 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
643 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
644 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
645 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
646 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
647 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
649 %files headers -f files.headers_exclude_kbuild
650 %defattr(644,root,root,755)
651 %dir %{_kernelsrcdir}
652 %{_kernelsrcdir}/include
653 %dir %{_kernelsrcdir}/arch
654 %dir %{_kernelsrcdir}/arch/[!K]*
655 %{_kernelsrcdir}/arch/*/include
656 %dir %{_kernelsrcdir}/security
657 %dir %{_kernelsrcdir}/security/selinux
658 %{_kernelsrcdir}/security/selinux/include
659 %{_kernelsrcdir}/.config
660 %{_kernelsrcdir}/Module.symvers
662 %files module-build -f files.mb_include_modulebuild_and_dirs
663 %defattr(644,root,root,755)
664 %exclude %dir %{_kernelsrcdir}/arch/um
665 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
666 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
667 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
668 %{_kernelsrcdir}/kernel/bounds.c
669 %{_kernelsrcdir}/scripts/basic/*.c
670 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
671 %{_kernelsrcdir}/scripts/kconfig/*.in
672 %{_kernelsrcdir}/scripts/kconfig/*_shipped
673 %{_kernelsrcdir}/scripts/kconfig/*.pl
674 %{_kernelsrcdir}/scripts/kconfig/*.glade
675 %{_kernelsrcdir}/scripts/kconfig/*.cc
676 %{_kernelsrcdir}/scripts/kconfig/*.y
677 %{_kernelsrcdir}/scripts/kconfig/*.l
678 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
679 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
680 %{_kernelsrcdir}/scripts/kconfig/l*.h
681 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
682 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
683 %{_kernelsrcdir}/scripts/kconfig/lxdialog
684 %{_kernelsrcdir}/scripts/mod/*.c
685 %{_kernelsrcdir}/scripts/mod/modpost.h
686 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
687 %{_kernelsrcdir}/scripts/mkmakefile
688 %{_kernelsrcdir}/scripts/module-common.lds
689 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
690 %{_kernelsrcdir}/scripts/*.c
691 %{_kernelsrcdir}/scripts/*.h
692 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
693 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
694 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
695 %exclude %dir %{_kernelsrcdir}/security
696 %exclude %dir %{_kernelsrcdir}/security/selinux
700 %defattr(644,root,root,755)
701 %dir %{_docdir}/%{name}-%{version}
703 %{_docdir}/%{name}-%{version}/[!jkz]*
704 %{_docdir}/%{name}-%{version}/[jkz]*.txt
705 %{_docdir}/%{name}-%{version}/kbuild
706 %{_docdir}/%{name}-%{version}/kdump
707 %{_docdir}/%{name}-%{version}/kernel-documentation.rst
708 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
709 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
710 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
714 %files source -f files.source_exclude_modulebuild_and_dirs
715 %defattr(644,root,root,755)
716 %{_kernelsrcdir}/arch/*/[!Mik]*
717 %{_kernelsrcdir}/arch/*/kernel/[!M]*
718 %{_kernelsrcdir}/arch/ia64/install.sh
719 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
720 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
721 %{_kernelsrcdir}/arch/m68k/install.sh
722 %{_kernelsrcdir}/arch/parisc/install.sh
723 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
724 %{_kernelsrcdir}/arch/arm/kvm
725 %{_kernelsrcdir}/arch/arm64/kvm
726 %{_kernelsrcdir}/arch/mips/kvm
727 %{_kernelsrcdir}/arch/powerpc/kvm
728 %{_kernelsrcdir}/arch/s390/kvm
729 %{_kernelsrcdir}/arch/x86/kvm
730 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
731 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
732 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
733 %{_kernelsrcdir}/block
734 %{_kernelsrcdir}/certs
735 %{_kernelsrcdir}/crypto
736 %{_kernelsrcdir}/drivers
737 %{_kernelsrcdir}/firmware
739 %{_kernelsrcdir}/init
741 %{_kernelsrcdir}/kernel
742 %exclude %{_kernelsrcdir}/kernel/bounds.c
746 %{_kernelsrcdir}/virt
747 %{_kernelsrcdir}/samples
748 %{_kernelsrcdir}/scripts/*
749 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
750 %exclude %{_kernelsrcdir}/scripts/Makefile*
751 %exclude %{_kernelsrcdir}/scripts/basic
752 %exclude %{_kernelsrcdir}/scripts/kconfig
753 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
754 %exclude %{_kernelsrcdir}/scripts/mkmakefile
755 %exclude %{_kernelsrcdir}/scripts/mod
756 %exclude %{_kernelsrcdir}/scripts/module-common.lds
757 %exclude %{_kernelsrcdir}/scripts/setlocalversion
758 %exclude %{_kernelsrcdir}/scripts/*.c
759 %exclude %{_kernelsrcdir}/scripts/*.h
760 %exclude %{_kernelsrcdir}/scripts/*.sh
761 %exclude %dir %{_kernelsrcdir}/scripts/selinux
762 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
763 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
764 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
765 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
766 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
767 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
768 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
769 %{_kernelsrcdir}/sound
770 %{_kernelsrcdir}/security
771 %exclude %{_kernelsrcdir}/security/selinux/include
772 %{_kernelsrcdir}/tools/*
774 %{_kernelsrcdir}/COPYING
775 %{_kernelsrcdir}/CREDITS
776 %{_kernelsrcdir}/MAINTAINERS
777 %{_kernelsrcdir}/README
778 %{_kernelsrcdir}/REPORTING-BUGS