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.19-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: 740a90cf810c2105df8ee12e5d0bb900
31 %if "%{postver}" != "0"
32 Source1: http://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
33 # Source1-md5: 4f14b9445ffe373efe39f59e42e2c2ad
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 \
391 %{?with_verbose:V=1} \
393 mod_compress_cmd=true \
394 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
395 KERNELRELEASE=%{kernel_release}
397 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
399 # create directories which may be missing, to simplyfy %files
400 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
402 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
403 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
404 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
406 # no point embed content for %ghost files. empty them
414 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
415 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
419 install -d $RPM_BUILD_ROOT/boot
420 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
421 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
422 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
423 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
426 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
428 %if "%{_target_base_arch}" != "%{_host_base_arch}"
429 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
433 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
436 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
438 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
439 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
441 rm -f $RPM_BUILD_ROOT/COPYING
444 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
445 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
446 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
447 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
448 # copy arch/x86/include/generated
449 for dir in $(cd %{objdir} && find arch -name generated -type d); do
450 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
451 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
454 # version.h location changed in 3.7, but a lot of external modules don't know about it
455 # add a compatibility symlink
456 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
458 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
459 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
461 # collect module-build files and directories
462 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
464 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
465 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
468 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
471 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
473 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
475 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
476 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
480 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
481 install -d $RPM_BUILD_ROOT%{_docdir}
482 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
484 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
485 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
486 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
487 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
489 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
493 rm -rf $RPM_BUILD_ROOT
496 if [ -x /sbin/new-kernel-pkg ]; then
497 /sbin/new-kernel-pkg --remove %{kernel_release}
501 %depmod %{kernel_release}
505 if [ -x /sbin/dracut ]; then
506 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
509 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
510 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-yes})" = "yes" ]; then
511 /sbin/update-grub >/dev/null
516 %depmod %{kernel_release}
519 %depmod %{kernel_release}
522 %depmod %{kernel_release}
525 %depmod %{kernel_release}
528 %depmod %{kernel_release}
531 %depmod %{kernel_release}
534 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
537 if [ "$1" = "0" ]; then
538 if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
539 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
540 rm -f %{_prefix}/src/linux%{_alt_kernel}
545 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
546 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
547 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
549 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
550 if [ "$1" = 0 ]; then
551 rm -f /lib/modules/%{kernel_release}/{build,source}
555 %defattr(644,root,root,755)
556 /boot/vmlinuz-%{kernel_release}
557 /boot/System.map-%{kernel_release}
558 /boot/config-%{kernel_release}
559 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
561 %dir /lib/modules/%{kernel_release}
562 %dir /lib/modules/%{kernel_release}/kernel
563 /lib/modules/%{kernel_release}/kernel/arch
564 /lib/modules/%{kernel_release}/kernel/block
565 /lib/modules/%{kernel_release}/kernel/crypto
566 /lib/modules/%{kernel_release}/kernel/drivers
567 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
568 /lib/modules/%{kernel_release}/kernel/fs
569 /lib/modules/%{kernel_release}/kernel/kernel
570 /lib/modules/%{kernel_release}/kernel/lib
571 /lib/modules/%{kernel_release}/kernel/net
572 /lib/modules/%{kernel_release}/kernel/mm
573 %dir /lib/modules/%{kernel_release}/kernel/sound
574 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
575 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
576 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
577 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
578 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
579 %dir /lib/modules/%{kernel_release}/misc
580 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
581 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
582 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
583 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
584 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
585 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
586 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
587 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
588 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
589 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
590 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
591 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
592 /lib/modules/%{kernel_release}/kernel/security
593 /lib/modules/%{kernel_release}/kernel/virt
595 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
598 /lib/modules/%{kernel_release}/modules.order
599 /lib/modules/%{kernel_release}/modules.builtin*
601 # rest modules.* are ghost (regenerated by post depmod -a invocation)
602 %ghost /lib/modules/%{kernel_release}/modules.alias
603 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
604 %ghost /lib/modules/%{kernel_release}/modules.dep
605 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
606 %ghost /lib/modules/%{kernel_release}/modules.devname
607 %ghost /lib/modules/%{kernel_release}/modules.softdep
608 %ghost /lib/modules/%{kernel_release}/modules.symbols
609 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
611 # symlinks pointing to kernelsrcdir
612 %ghost /lib/modules/%{kernel_release}/build
613 %ghost /lib/modules/%{kernel_release}/source
616 %defattr(644,root,root,755)
617 /boot/vmlinux-%{kernel_release}
620 %defattr(644,root,root,755)
621 /lib/modules/%{kernel_release}/kernel/drivers/gpu
624 %defattr(644,root,root,755)
625 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
626 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
627 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
628 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
629 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
630 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
631 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
632 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
633 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
634 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
635 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
636 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
639 %defattr(644,root,root,755)
640 /lib/modules/%{kernel_release}/kernel/sound
641 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
642 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
643 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
644 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
645 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
646 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
648 %files headers -f files.headers_exclude_kbuild
649 %defattr(644,root,root,755)
650 %dir %{_kernelsrcdir}
651 %{_kernelsrcdir}/include
652 %dir %{_kernelsrcdir}/arch
653 %dir %{_kernelsrcdir}/arch/[!K]*
654 %{_kernelsrcdir}/arch/*/include
655 %dir %{_kernelsrcdir}/security
656 %dir %{_kernelsrcdir}/security/selinux
657 %{_kernelsrcdir}/security/selinux/include
658 %{_kernelsrcdir}/.config
659 %{_kernelsrcdir}/Module.symvers
661 %files module-build -f files.mb_include_modulebuild_and_dirs
662 %defattr(644,root,root,755)
663 %exclude %dir %{_kernelsrcdir}/arch/um
664 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
665 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
666 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
667 %{_kernelsrcdir}/kernel/bounds.c
668 %{_kernelsrcdir}/scripts/basic/*.c
669 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
670 %{_kernelsrcdir}/scripts/kconfig/*.pl
671 %{_kernelsrcdir}/scripts/kconfig/*.glade
672 %{_kernelsrcdir}/scripts/kconfig/*.cc
673 %{_kernelsrcdir}/scripts/kconfig/*.y
674 %{_kernelsrcdir}/scripts/kconfig/*.l
675 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
676 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
677 %{_kernelsrcdir}/scripts/kconfig/l*.h
678 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
679 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
680 %{_kernelsrcdir}/scripts/kconfig/lxdialog
681 %{_kernelsrcdir}/scripts/mod/*.c
682 %{_kernelsrcdir}/scripts/mod/modpost.h
683 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
684 %{_kernelsrcdir}/scripts/mkmakefile
685 %{_kernelsrcdir}/scripts/module-common.lds
686 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
687 %{_kernelsrcdir}/scripts/*.c
688 %{_kernelsrcdir}/scripts/*.h
689 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
690 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
691 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
692 %exclude %dir %{_kernelsrcdir}/security
693 %exclude %dir %{_kernelsrcdir}/security/selinux
697 %defattr(644,root,root,755)
698 %dir %{_docdir}/%{name}-%{version}
700 %{_docdir}/%{name}-%{version}/[!jkz]*
701 %{_docdir}/%{name}-%{version}/[jkz]*.txt
702 %{_docdir}/%{name}-%{version}/kbuild
703 %{_docdir}/%{name}-%{version}/kdump
704 %{_docdir}/%{name}-%{version}/kernel-hacking
708 %files source -f files.source_exclude_modulebuild_and_dirs
709 %defattr(644,root,root,755)
710 %{_kernelsrcdir}/arch/*/[!Mik]*
711 %{_kernelsrcdir}/arch/*/kernel/[!M]*
712 %{_kernelsrcdir}/arch/ia64/install.sh
713 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
714 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
715 %{_kernelsrcdir}/arch/m68k/install.sh
716 %{_kernelsrcdir}/arch/parisc/install.sh
717 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
718 %{_kernelsrcdir}/arch/arm/kvm
719 %{_kernelsrcdir}/arch/arm64/kvm
720 %{_kernelsrcdir}/arch/mips/kvm
721 %{_kernelsrcdir}/arch/powerpc/kvm
722 %{_kernelsrcdir}/arch/s390/kvm
723 %{_kernelsrcdir}/arch/x86/kvm
724 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
725 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
726 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
727 %{_kernelsrcdir}/block
728 %{_kernelsrcdir}/certs
729 %{_kernelsrcdir}/crypto
730 %{_kernelsrcdir}/drivers
731 %{_kernelsrcdir}/firmware
733 %{_kernelsrcdir}/init
735 %{_kernelsrcdir}/kernel
736 %exclude %{_kernelsrcdir}/kernel/bounds.c
740 %{_kernelsrcdir}/virt
741 %{_kernelsrcdir}/samples
742 %{_kernelsrcdir}/scripts/*
743 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
744 %exclude %{_kernelsrcdir}/scripts/Makefile*
745 %exclude %{_kernelsrcdir}/scripts/basic
746 %exclude %{_kernelsrcdir}/scripts/kconfig
747 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
748 %exclude %{_kernelsrcdir}/scripts/mkmakefile
749 %exclude %{_kernelsrcdir}/scripts/mod
750 %exclude %{_kernelsrcdir}/scripts/module-common.lds
751 %exclude %{_kernelsrcdir}/scripts/setlocalversion
752 %exclude %{_kernelsrcdir}/scripts/*.c
753 %exclude %{_kernelsrcdir}/scripts/*.h
754 %exclude %{_kernelsrcdir}/scripts/*.sh
755 %exclude %dir %{_kernelsrcdir}/scripts/selinux
756 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
757 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
758 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
759 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
760 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
761 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
762 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
763 %{_kernelsrcdir}/sound
764 %{_kernelsrcdir}/security
765 %exclude %{_kernelsrcdir}/security/selinux/include
766 %{_kernelsrcdir}/tools/*
768 %{_kernelsrcdir}/COPYING
769 %{_kernelsrcdir}/CREDITS
770 %{_kernelsrcdir}/LICENSES
771 %{_kernelsrcdir}/MAINTAINERS
772 %{_kernelsrcdir}/README