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 %{nil}
12 %if "%{__alt_kernel}" != ""
13 %define alt_kernel %{__alt_kernel}
16 %define versuffix -%{basever}
18 # kernel release (used in filesystem and eventually in uname -r)
19 # modules will be looked from /lib/modules/%{kernel_release}
20 # localversion is just that without version for "> localversion"
21 %define localversion %{rel}
22 %define kernel_release %{version}%{?alt_kernel:_%{alt_kernel}}-%{localversion}
24 Summary: The Linux kernel (the core of the Linux operating system)
25 Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
26 Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
27 Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
28 Summary(pl.UTF-8): Jądro Linuksa
29 Name: kernel%{versuffix}%{_alt_kernel}
30 Version: %{basever}.%{postver}
35 Source0: http://www.kernel.org/pub/linux/kernel/v5.x/linux-%{basever}.tar.xz
36 # Source0-md5: 753adc474bf799d569dec4f165ed92c3
37 %if "%{postver}" != "0"
38 Source1: http://www.kernel.org/pub/linux/kernel/v5.x/patch-%{version}.xz
39 # Source1-md5: a519e0b21c58c5e215ecd7435caf22ab
42 Source2: kernel-module-build.pl
45 Source10: kernel-x86.config
46 Source11: kernel-x86_64.config
48 URL: http://www.kernel.org/
49 BuildRequires: binutils >= 3:2.18
51 BuildRequires: /sbin/depmod
52 BuildRequires: elfutils-devel
54 BuildRequires: gcc >= 5:3.2
55 BuildRequires: gcc-plugin-devel
56 BuildRequires: xz >= 1:4.999.7
58 BuildRequires: hostname
60 BuildRequires: openssl-devel
61 BuildRequires: perl-base
62 BuildRequires: rpm >= 4.5-74
63 BuildRequires: rpmbuild(macros) >= 1.652
64 Requires(post): coreutils
65 Requires(post): dracut
66 Requires(post): kmod >= 12-2
67 Requires: /sbin/depmod
70 Requires: kmod >= 12-2
72 Requires: cpuinfo(pae)
75 Suggests: linux-firmware
76 Provides: %{name}(netfilter) = 20070806
77 Provides: %{name}(vermagic) = %{kernel_release}
78 Obsoletes: kernel-firmware
79 Obsoletes: kernel-modules
80 Conflicts: e2fsprogs < 1.29
81 Conflicts: isdn4k-utils < 3.1pre1
82 Conflicts: jfsutils < 1.1.3
83 Conflicts: linux-firmware < 20120720
84 Conflicts: lvm2 < 2.02.40
85 Conflicts: module-init-tools < 3.16
86 Conflicts: nfs-utils < 1.0.5
87 Conflicts: oprofile < 0.9
88 Conflicts: ppp < 1:2.4.0
89 Conflicts: procps < 3.2.0
90 Conflicts: quota-tools < 3.09
91 Conflicts: reiserfsprogs < 3.6.3
92 Conflicts: rpm < 4.4.2-0.2
93 Conflicts: udev < 1:081
94 Conflicts: util-linux < 2.10o
95 Conflicts: xfsprogs < 2.6.0
96 ExclusiveArch: i686 x86_64
98 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
101 %define target_arch_dir x86
103 %define target_arch_dir %{_target_base_arch}
106 %define defconfig arch/%{target_arch_dir}/defconfig
108 # No ELF objects there to strip (skips processing 27k files)
109 %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
110 %define _noautochrpath .*%{_kernelsrcdir}/.*
111 %define _enable_debug_packages 0
113 %define initrd_dir /boot
115 %define topdir %{_builddir}/%{name}-%{version}
116 %define srcdir %{topdir}/linux-%{basever}
117 %define objdir %{topdir}/%{targetobj}
118 %define targetobj %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
120 %define _kernelsrcdir /usr/src/linux%{versuffix}%{_alt_kernel}-%{version}
122 %if "%{_target_base_arch}" != "%{_host_base_arch}"
123 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux-
124 %define DepMod /bin/true
126 %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
127 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
128 %define DepMod /sbin/depmod
132 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
133 %define DepMod /sbin/depmod
135 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
138 This package contains the Linux kernel that is used to boot and run
139 your system. It contains few device drivers for specific hardware.
140 Most hardware is instead supported by modules loaded after booting.
142 %description -l de.UTF-8
143 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
144 Linux-Betriebssystems. Der Kernel ist für grundliegende
145 Systemfunktionen verantwortlich: Speicherreservierung,
146 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
148 %description -l fr.UTF-8
149 Le package kernel contient le kernel linux (vmlinuz), la partie
150 centrale d'un système d'exploitation Linux. Le noyau traite les
151 fonctions basiques d'un système d'exploitation: allocation mémoire,
152 allocation de process, entrée/sortie de peripheriques, etc.
154 %description -l pl.UTF-8
155 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
156 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
157 się w komputerze, takiego jak sterowniki dysków itp.
160 Summary: vmlinux - uncompressed kernel image
161 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
162 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jądra
164 Obsoletes: kernel-smp-vmlinux
167 vmlinux - uncompressed kernel image.
169 %description vmlinux -l de.UTF-8
170 vmlinux - dekompressiertes Kernel Bild.
172 %description vmlinux -l pl.UTF-8
173 vmlinux - rozpakowany obraz jądra.
176 Summary: DRM kernel modules
177 Summary(de.UTF-8): DRM Kernel Treiber
178 Summary(pl.UTF-8): Sterowniki DRM
180 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
181 Requires: %{name} = %{epoch}:%{version}-%{release}
182 Obsoletes: kernel-smp-drm
188 %description drm -l de.UTF-8
191 %description drm -l pl.UTF-8
195 Summary: PCMCIA modules
196 Summary(de.UTF-8): PCMCIA Module
197 Summary(pl.UTF-8): Moduły PCMCIA
199 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
200 Requires: %{name} = %{epoch}:%{version}-%{release}
201 Obsoletes: kernel-smp-pcmcia
202 Conflicts: pcmcia-cs < 3.1.21
203 Conflicts: pcmciautils < 004
209 %description pcmcia -l de.UTF-8
212 %description pcmcia -l pl.UTF-8
216 Summary: ALSA kernel modules
217 Summary(de.UTF-8): ALSA Kernel Module
218 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
220 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
221 Requires: %{name} = %{epoch}:%{version}-%{release}
222 Obsoletes: kernel-smp-sound-alsa
225 %description sound-alsa
226 ALSA (Advanced Linux Sound Architecture) sound drivers.
228 %description sound-alsa -l de.UTF-8
229 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
231 %description sound-alsa -l pl.UTF-8
232 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
235 Summary: Header files for the Linux kernel
236 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
237 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
238 Group: Development/Building
239 Provides: %{name}-headers(netfilter) = 20070806
243 These are the C header files for the Linux kernel, which define
244 structures and constants that are needed when rebuilding the kernel or
245 building kernel modules.
247 %description headers -l de.UTF-8
248 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
249 Strukturen und Konstante beinhalten, die beim rekompilieren des
250 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
252 %description headers -l pl.UTF-8
253 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
254 oraz budowania modułów jądra.
256 %package module-build
257 Summary: Development files for building kernel modules
258 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
259 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
260 Group: Development/Building
261 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
262 Conflicts: rpmbuild(macros) < 1.652
265 %description module-build
266 Development files from kernel source tree needed to build Linux kernel
267 modules from external packages.
269 %description module-build -l de.UTF-8
270 Development Dateien des Linux-Kernels die beim kompilieren externer
271 Kernel Module gebraucht werden.
273 %description module-build -l pl.UTF-8
274 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
275 Linuksa z zewnętrznych pakietów.
278 Summary: Kernel source tree
279 Summary(de.UTF-8): Der Kernel Quelltext
280 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
281 Group: Development/Building
282 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
286 This is the source code for the Linux kernel. You can build a custom
287 kernel that is better tuned to your particular hardware.
289 %description source -l de.UTF-8
290 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
291 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
292 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
293 im Kernel-Source definiert sind. Die Source-Dateien können auch
294 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
295 Hardware ausgerichtet ist.
297 %description source -l fr.UTF-8
298 Le package pour le kernel-source contient le code source pour le noyau
299 linux. Ces sources sont nécessaires pour compiler la plupart des
300 programmes C, car il dépend de constantes définies dans le code
301 source. Les sources peuvent être aussi utilisée pour compiler un noyau
302 personnalisé pour avoir de meilleures performances sur des matériels
305 %description source -l pl.UTF-8
306 Pakiet zawiera kod źródłowy jądra systemu.
309 Summary: Kernel documentation
310 Summary(de.UTF-8): Kernel Dokumentation
311 Summary(pl.UTF-8): Dokumentacja do jądra Linuksa
316 This is the documentation for the Linux kernel, as found in
317 /usr/src/linux/Documentation directory.
319 %description doc -l de.UTF-8
320 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
321 Verzeichniss vorgefunden werden kann.
323 %description doc -l pl.UTF-8
324 Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu
325 /usr/src/linux/Documentation.
329 ln -s %{SOURCE2} kernel-module-build.pl
330 ln -s %{SOURCE3} Makefile
333 %if "%{postver}" != "0"
334 %{__xz} -dc %{SOURCE1} | patch -p1 -s
337 # Fix EXTRAVERSION in main Makefile
338 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:_%{alt_kernel}}#g' Makefile
340 # cleanup backups after patching
341 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
343 find -name '*.py' -print0 | \
344 xargs -0 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
345 -e '1s,/usr/bin/env python$,%{__python},' \
346 -e '1s,/usr/bin/env python3$,%{__python3},'
348 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
349 -e '1s,/usr/bin/env python$,%{__python},' \
350 -e '1s,/usr/bin/env python3$,%{__python3},' \
351 drivers/staging/greybus/tools/lbtest \
352 scripts/bloat-o-meter \
354 scripts/jobserver-exec \
356 tools/hv/vmbus_testing \
357 tools/kvm/kvm_stat/kvm_stat \
358 tools/testing/selftests/exec/binfmt_script
360 find -name '*.pl' -print0 | \
361 xargs -0 %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \
363 %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \
364 scripts/dtc/dt_to_config \
367 scripts/documentation-file-ref-check \
368 scripts/get_dvb_firmware \
370 scripts/sphinx-pre-install \
373 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\\1,' \
376 %{__sed} -i -e '1s,/usr/bin/awk,/bin/awk,' \
377 scripts/ld-version.sh
381 cat > %{targetobj}.mk <<'EOF'
382 # generated by %{name}.spec
383 KERNELSRC := %{srcdir}
384 KERNELOUTPUT := %{objdir}
386 SRCARCH := %{target_arch_dir}
387 ARCH := %{_target_base_arch}
388 Q := %{!?with_verbose:@}
389 MAKE_OPTS := %{MakeOpts}
390 DEFCONFIG := %{defconfig}
394 install -d arch/%{target_arch_dir}
396 cat %{SOURCE10} > %{defconfig}
399 cat %{SOURCE11} > %{defconfig}
401 sed -i "s:CONFIG_LOCALVERSION=\"\":CONFIG_LOCALVERSION=\"-%{localversion}\":" %{defconfig}
403 ln -sf %{defconfig} .config
407 TARGETOBJ=%{targetobj} \
408 %{?with_verbose:V=1} \
413 TARGETOBJ=%{targetobj} \
414 %{?with_verbose:V=1} \
418 rm -rf $RPM_BUILD_ROOT
419 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install \
421 %{?with_verbose:V=1} \
423 mod_compress_cmd=true \
424 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
425 KERNELRELEASE=%{kernel_release}
427 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
429 # create directories which may be missing, to simplyfy %files
430 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
432 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
433 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
434 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
436 # no point embed content for %ghost files. empty them
444 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
445 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
449 install -d $RPM_BUILD_ROOT/boot
450 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
451 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
452 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
453 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
456 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
458 %if "%{_target_base_arch}" != "%{_host_base_arch}"
459 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
463 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
466 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
468 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
469 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
471 rm -f $RPM_BUILD_ROOT/COPYING
474 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
475 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
476 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
477 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
478 # copy arch/x86/include/generated
479 for dir in $(cd %{objdir} && find arch -name generated -type d); do
480 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
481 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
484 # version.h location changed in 3.7, but a lot of external modules don't know about it
485 # add a compatibility symlink
486 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
488 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
489 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
491 # collect module-build files and directories
492 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
494 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
495 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
498 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
501 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
503 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
505 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
506 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
510 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
511 install -d $RPM_BUILD_ROOT%{_docdir}
512 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
514 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
515 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
516 #%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
517 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
519 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
523 rm -rf $RPM_BUILD_ROOT
526 if [ -x /sbin/new-kernel-pkg ]; then
527 /sbin/new-kernel-pkg --remove %{kernel_release}
531 %depmod %{kernel_release}
535 if [ -x /sbin/dracut ]; then
536 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
539 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
540 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-yes})" = "yes" ]; then
541 /sbin/update-grub >/dev/null
546 %depmod %{kernel_release}
549 %depmod %{kernel_release}
552 %depmod %{kernel_release}
555 %depmod %{kernel_release}
558 %depmod %{kernel_release}
561 %depmod %{kernel_release}
564 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
567 if [ "$1" = "0" ]; then
568 if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
569 if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
570 rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
575 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
576 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
577 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
579 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
580 if [ "$1" = 0 ]; then
581 rm -f /lib/modules/%{kernel_release}/{build,source}
585 %defattr(644,root,root,755)
586 /boot/vmlinuz-%{kernel_release}
587 /boot/System.map-%{kernel_release}
588 /boot/config-%{kernel_release}
589 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
591 %dir /lib/modules/%{kernel_release}
592 %dir /lib/modules/%{kernel_release}/kernel
593 /lib/modules/%{kernel_release}/kernel/arch
594 /lib/modules/%{kernel_release}/kernel/block
595 /lib/modules/%{kernel_release}/kernel/crypto
596 /lib/modules/%{kernel_release}/kernel/drivers
597 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
598 /lib/modules/%{kernel_release}/kernel/fs
599 /lib/modules/%{kernel_release}/kernel/kernel
600 /lib/modules/%{kernel_release}/kernel/lib
601 /lib/modules/%{kernel_release}/kernel/net
602 /lib/modules/%{kernel_release}/kernel/mm
603 %dir /lib/modules/%{kernel_release}/kernel/sound
604 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
605 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
606 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
607 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
608 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
609 %dir /lib/modules/%{kernel_release}/misc
610 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
611 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
612 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
613 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
614 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
615 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
616 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
617 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
618 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
619 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
620 /lib/modules/%{kernel_release}/kernel/security
621 /lib/modules/%{kernel_release}/kernel/virt
623 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
626 /lib/modules/%{kernel_release}/modules.order
627 /lib/modules/%{kernel_release}/modules.builtin*
629 # rest modules.* are ghost (regenerated by post depmod -a invocation)
630 %ghost /lib/modules/%{kernel_release}/modules.alias
631 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
632 %ghost /lib/modules/%{kernel_release}/modules.dep
633 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
634 %ghost /lib/modules/%{kernel_release}/modules.devname
635 %ghost /lib/modules/%{kernel_release}/modules.softdep
636 %ghost /lib/modules/%{kernel_release}/modules.symbols
637 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
639 # symlinks pointing to kernelsrcdir
640 %ghost /lib/modules/%{kernel_release}/build
641 %ghost /lib/modules/%{kernel_release}/source
644 %defattr(644,root,root,755)
645 /boot/vmlinux-%{kernel_release}
648 %defattr(644,root,root,755)
649 /lib/modules/%{kernel_release}/kernel/drivers/gpu
652 %defattr(644,root,root,755)
653 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
654 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
655 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
656 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
657 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
658 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
659 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
660 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
661 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
662 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
665 %defattr(644,root,root,755)
666 /lib/modules/%{kernel_release}/kernel/sound
667 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
668 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
669 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
670 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
671 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
672 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
674 %files headers -f files.headers_exclude_kbuild
675 %defattr(644,root,root,755)
676 %dir %{_kernelsrcdir}
677 %{_kernelsrcdir}/include
678 %dir %{_kernelsrcdir}/arch
679 %dir %{_kernelsrcdir}/arch/[!K]*
680 %{_kernelsrcdir}/arch/*/include
681 %dir %{_kernelsrcdir}/security
682 %dir %{_kernelsrcdir}/security/selinux
683 %{_kernelsrcdir}/security/selinux/include
684 %dir %{_kernelsrcdir}/usr
685 %dir %{_kernelsrcdir}/usr/include
686 %{_kernelsrcdir}/.config
687 %{_kernelsrcdir}/Module.symvers
689 %files module-build -f files.mb_include_modulebuild_and_dirs
690 %defattr(644,root,root,755)
691 %exclude %dir %{_kernelsrcdir}/arch/um
692 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
693 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
694 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
695 %{_kernelsrcdir}/kernel/bounds.c
696 %{_kernelsrcdir}/scripts/basic/*.c
697 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
698 %{_kernelsrcdir}/scripts/kconfig/*.pl
699 %{_kernelsrcdir}/scripts/kconfig/*.glade
700 %{_kernelsrcdir}/scripts/kconfig/*.cc
701 %{_kernelsrcdir}/scripts/kconfig/*.y
702 %{_kernelsrcdir}/scripts/kconfig/*.l
703 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
704 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
705 %{_kernelsrcdir}/scripts/kconfig/l*.h
706 %{_kernelsrcdir}/scripts/kconfig/[m-o]*.c
707 %{_kernelsrcdir}/scripts/kconfig/[m-o]*.h
708 %{_kernelsrcdir}/scripts/kconfig/preprocess.c
709 %{_kernelsrcdir}/scripts/kconfig/[q-u]*.c
710 %{_kernelsrcdir}/scripts/kconfig/[q-u]*.h
711 %{_kernelsrcdir}/scripts/kconfig/lxdialog
712 %{_kernelsrcdir}/scripts/mod/*.c
713 %{_kernelsrcdir}/scripts/mod/modpost.h
714 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
715 %{_kernelsrcdir}/scripts/mkmakefile
716 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
717 %{_kernelsrcdir}/scripts/subarch.include
718 %{_kernelsrcdir}/scripts/*.c
719 %{_kernelsrcdir}/scripts/*.h
720 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
721 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
722 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
723 %exclude %dir %{_kernelsrcdir}/security
724 %exclude %dir %{_kernelsrcdir}/security/selinux
728 %defattr(644,root,root,755)
729 %dir %{_docdir}/%{name}-%{version}
731 %{_docdir}/%{name}-%{version}/[!jkz]*
732 %{_docdir}/%{name}-%{version}/kbuild
733 %{_docdir}/%{name}-%{version}/kernel-hacking
737 %files source -f files.source_exclude_modulebuild_and_dirs
738 %defattr(644,root,root,755)
739 %{_kernelsrcdir}/arch/*/[!Mik]*
740 %{_kernelsrcdir}/arch/*/kernel/[!M]*
741 %{_kernelsrcdir}/arch/ia64/install.sh
742 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
743 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
744 %{_kernelsrcdir}/arch/m68k/install.sh
745 %{_kernelsrcdir}/arch/parisc/install.sh
746 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
747 %{_kernelsrcdir}/arch/arm64/kvm
748 %{_kernelsrcdir}/arch/mips/kvm
749 %{_kernelsrcdir}/arch/powerpc/kexec
750 %{_kernelsrcdir}/arch/powerpc/kvm
751 %{_kernelsrcdir}/arch/s390/kvm
752 %{_kernelsrcdir}/arch/x86/kvm
753 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
754 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
755 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
756 %{_kernelsrcdir}/block
757 %{_kernelsrcdir}/certs
758 %{_kernelsrcdir}/crypto
759 %{_kernelsrcdir}/drivers
761 %{_kernelsrcdir}/init
763 %{_kernelsrcdir}/kernel
764 %exclude %{_kernelsrcdir}/kernel/bounds.c
768 %{_kernelsrcdir}/virt
769 %{_kernelsrcdir}/samples
770 %{_kernelsrcdir}/scripts/*
771 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
772 %exclude %{_kernelsrcdir}/scripts/Makefile*
773 %exclude %{_kernelsrcdir}/scripts/basic
774 %exclude %{_kernelsrcdir}/scripts/kconfig
775 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
776 %exclude %{_kernelsrcdir}/scripts/mkmakefile
777 %exclude %{_kernelsrcdir}/scripts/mod
778 %exclude %{_kernelsrcdir}/scripts/setlocalversion
779 %exclude %{_kernelsrcdir}/scripts/*.c
780 %exclude %{_kernelsrcdir}/scripts/*.h
781 %exclude %{_kernelsrcdir}/scripts/*.sh
782 %exclude %dir %{_kernelsrcdir}/scripts/selinux
783 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
784 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
785 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
786 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
787 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
788 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
789 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
790 %{_kernelsrcdir}/sound
791 %{_kernelsrcdir}/security
792 %exclude %{_kernelsrcdir}/security/selinux/include
793 %{_kernelsrcdir}/tools/*
795 %{_kernelsrcdir}/COPYING
796 %{_kernelsrcdir}/CREDITS
797 %{_kernelsrcdir}/LICENSES
798 %{_kernelsrcdir}/MAINTAINERS
799 %{_kernelsrcdir}/README