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: ddc8deeb8cbcb09d91986cf40545de52
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-%(%{__cc} -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 # use 64-bit offsets for fixdeps to work with 64-bit inodes
136 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64"
139 This package contains the Linux kernel that is used to boot and run
140 your system. It contains few device drivers for specific hardware.
141 Most hardware is instead supported by modules loaded after booting.
143 %description -l de.UTF-8
144 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
145 Linux-Betriebssystems. Der Kernel ist für grundliegende
146 Systemfunktionen verantwortlich: Speicherreservierung,
147 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
149 %description -l fr.UTF-8
150 Le package kernel contient le kernel linux (vmlinuz), la partie
151 centrale d'un système d'exploitation Linux. Le noyau traite les
152 fonctions basiques d'un système d'exploitation: allocation mémoire,
153 allocation de process, entrée/sortie de peripheriques, etc.
155 %description -l pl.UTF-8
156 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
157 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
158 się w komputerze, takiego jak sterowniki dysków itp.
161 Summary: vmlinux - uncompressed kernel image
162 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
163 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jądra
165 Obsoletes: kernel-smp-vmlinux
168 vmlinux - uncompressed kernel image.
170 %description vmlinux -l de.UTF-8
171 vmlinux - dekompressiertes Kernel Bild.
173 %description vmlinux -l pl.UTF-8
174 vmlinux - rozpakowany obraz jądra.
177 Summary: DRM kernel modules
178 Summary(de.UTF-8): DRM Kernel Treiber
179 Summary(pl.UTF-8): Sterowniki DRM
181 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
182 Requires: %{name} = %{epoch}:%{version}-%{release}
183 Obsoletes: kernel-smp-drm
189 %description drm -l de.UTF-8
192 %description drm -l pl.UTF-8
196 Summary: PCMCIA modules
197 Summary(de.UTF-8): PCMCIA Module
198 Summary(pl.UTF-8): Moduły PCMCIA
200 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
201 Requires: %{name} = %{epoch}:%{version}-%{release}
202 Obsoletes: kernel-smp-pcmcia
203 Conflicts: pcmcia-cs < 3.1.21
204 Conflicts: pcmciautils < 004
210 %description pcmcia -l de.UTF-8
213 %description pcmcia -l pl.UTF-8
217 Summary: ALSA kernel modules
218 Summary(de.UTF-8): ALSA Kernel Module
219 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
221 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
222 Requires: %{name} = %{epoch}:%{version}-%{release}
223 Obsoletes: kernel-smp-sound-alsa
226 %description sound-alsa
227 ALSA (Advanced Linux Sound Architecture) sound drivers.
229 %description sound-alsa -l de.UTF-8
230 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
232 %description sound-alsa -l pl.UTF-8
233 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
236 Summary: Header files for the Linux kernel
237 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
238 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
239 Group: Development/Building
240 Provides: %{name}-headers(netfilter) = 20070806
244 These are the C header files for the Linux kernel, which define
245 structures and constants that are needed when rebuilding the kernel or
246 building kernel modules.
248 %description headers -l de.UTF-8
249 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
250 Strukturen und Konstante beinhalten, die beim rekompilieren des
251 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
253 %description headers -l pl.UTF-8
254 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
255 oraz budowania modułów jądra.
257 %package module-build
258 Summary: Development files for building kernel modules
259 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
260 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
261 Group: Development/Building
262 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
263 Conflicts: rpmbuild(macros) < 1.652
266 %description module-build
267 Development files from kernel source tree needed to build Linux kernel
268 modules from external packages.
270 %description module-build -l de.UTF-8
271 Development Dateien des Linux-Kernels die beim kompilieren externer
272 Kernel Module gebraucht werden.
274 %description module-build -l pl.UTF-8
275 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
276 Linuksa z zewnętrznych pakietów.
279 Summary: Kernel source tree
280 Summary(de.UTF-8): Der Kernel Quelltext
281 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
282 Group: Development/Building
283 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
287 This is the source code for the Linux kernel. You can build a custom
288 kernel that is better tuned to your particular hardware.
290 %description source -l de.UTF-8
291 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
292 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
293 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
294 im Kernel-Source definiert sind. Die Source-Dateien können auch
295 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
296 Hardware ausgerichtet ist.
298 %description source -l fr.UTF-8
299 Le package pour le kernel-source contient le code source pour le noyau
300 linux. Ces sources sont nécessaires pour compiler la plupart des
301 programmes C, car il dépend de constantes définies dans le code
302 source. Les sources peuvent être aussi utilisée pour compiler un noyau
303 personnalisé pour avoir de meilleures performances sur des matériels
306 %description source -l pl.UTF-8
307 Pakiet zawiera kod źródłowy jądra systemu.
310 Summary: Kernel documentation
311 Summary(de.UTF-8): Kernel Dokumentation
312 Summary(pl.UTF-8): Dokumentacja do jądra Linuksa
317 This is the documentation for the Linux kernel, as found in
318 /usr/src/linux/Documentation directory.
320 %description doc -l de.UTF-8
321 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
322 Verzeichniss vorgefunden werden kann.
324 %description doc -l pl.UTF-8
325 Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu
326 /usr/src/linux/Documentation.
330 ln -s %{SOURCE2} kernel-module-build.pl
331 ln -s %{SOURCE3} Makefile
334 %if "%{postver}" != "0"
335 %{__xz} -dc %{SOURCE1} | patch -p1 -s
338 # Fix EXTRAVERSION in main Makefile
339 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:_%{alt_kernel}}#g' Makefile
341 # cleanup backups after patching
342 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
344 find -name '*.py' -print0 | \
345 xargs -0 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
346 -e '1s,/usr/bin/env python$,%{__python},' \
347 -e '1s,/usr/bin/env python3$,%{__python3},'
349 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
350 -e '1s,/usr/bin/env python$,%{__python},' \
351 -e '1s,/usr/bin/env python3$,%{__python3},' \
352 drivers/staging/greybus/tools/lbtest \
353 scripts/bloat-o-meter \
355 scripts/jobserver-exec \
357 tools/hv/vmbus_testing \
358 tools/kvm/kvm_stat/kvm_stat \
359 tools/testing/selftests/exec/binfmt_script
361 find -name '*.pl' -print0 | \
362 xargs -0 %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \
364 %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \
365 scripts/dtc/dt_to_config \
368 scripts/documentation-file-ref-check \
369 scripts/get_dvb_firmware \
371 scripts/sphinx-pre-install \
374 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\\1,' \
377 %{__sed} -i -e '1s,/usr/bin/awk,/bin/awk,' \
378 scripts/ld-version.sh
382 cat > %{targetobj}.mk <<'EOF'
383 # generated by %{name}.spec
384 KERNELSRC := %{srcdir}
385 KERNELOUTPUT := %{objdir}
387 SRCARCH := %{target_arch_dir}
388 ARCH := %{_target_base_arch}
389 Q := %{!?with_verbose:@}
390 MAKE_OPTS := %{MakeOpts}
391 DEFCONFIG := %{defconfig}
395 install -d arch/%{target_arch_dir}
397 cat %{SOURCE10} > %{defconfig}
400 cat %{SOURCE11} > %{defconfig}
402 sed -i "s:CONFIG_LOCALVERSION=\"\":CONFIG_LOCALVERSION=\"-%{localversion}\":" %{defconfig}
404 ln -sf %{defconfig} .config
408 TARGETOBJ=%{targetobj} \
409 %{?with_verbose:V=1} \
414 TARGETOBJ=%{targetobj} \
415 %{?with_verbose:V=1} \
419 rm -rf $RPM_BUILD_ROOT
420 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install \
422 %{?with_verbose:V=1} \
424 mod_compress_cmd=true \
425 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
426 KERNELRELEASE=%{kernel_release}
428 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
430 # create directories which may be missing, to simplyfy %files
431 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
433 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
434 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
435 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
437 # no point embed content for %ghost files. empty them
445 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
446 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
450 install -d $RPM_BUILD_ROOT/boot
451 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
452 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
453 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
454 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
457 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
459 %if "%{_target_base_arch}" != "%{_host_base_arch}"
460 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
464 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
467 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
469 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
470 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
472 rm -f $RPM_BUILD_ROOT/COPYING
475 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
476 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
477 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
478 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
479 # copy arch/x86/include/generated
480 for dir in $(cd %{objdir} && find arch -name generated -type d); do
481 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
482 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
485 # version.h location changed in 3.7, but a lot of external modules don't know about it
486 # add a compatibility symlink
487 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
489 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
490 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
492 # collect module-build files and directories
493 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
495 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
496 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
499 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
502 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
504 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
506 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
507 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
511 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
512 install -d $RPM_BUILD_ROOT%{_docdir}
513 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
515 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
516 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
517 #%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
518 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
520 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
524 rm -rf $RPM_BUILD_ROOT
527 if [ -x /sbin/new-kernel-pkg ]; then
528 /sbin/new-kernel-pkg --remove %{kernel_release}
532 %depmod %{kernel_release}
536 if [ -x /sbin/dracut ]; then
537 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
540 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
541 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-yes})" = "yes" ]; then
542 /sbin/update-grub >/dev/null
547 %depmod %{kernel_release}
550 %depmod %{kernel_release}
553 %depmod %{kernel_release}
556 %depmod %{kernel_release}
559 %depmod %{kernel_release}
562 %depmod %{kernel_release}
565 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
568 if [ "$1" = "0" ]; then
569 if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
570 if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
571 rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
576 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
577 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
578 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
580 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
581 if [ "$1" = 0 ]; then
582 rm -f /lib/modules/%{kernel_release}/{build,source}
586 %defattr(644,root,root,755)
587 /boot/vmlinuz-%{kernel_release}
588 /boot/System.map-%{kernel_release}
589 /boot/config-%{kernel_release}
590 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
592 %dir /lib/modules/%{kernel_release}
593 %dir /lib/modules/%{kernel_release}/kernel
594 /lib/modules/%{kernel_release}/kernel/arch
595 /lib/modules/%{kernel_release}/kernel/block
596 /lib/modules/%{kernel_release}/kernel/crypto
597 /lib/modules/%{kernel_release}/kernel/drivers
598 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
599 /lib/modules/%{kernel_release}/kernel/fs
600 /lib/modules/%{kernel_release}/kernel/kernel
601 /lib/modules/%{kernel_release}/kernel/lib
602 /lib/modules/%{kernel_release}/kernel/net
603 /lib/modules/%{kernel_release}/kernel/mm
604 %dir /lib/modules/%{kernel_release}/kernel/sound
605 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
606 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
607 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
608 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
609 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
610 %dir /lib/modules/%{kernel_release}/misc
611 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
612 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
613 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
614 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
615 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
616 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
617 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
618 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
619 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
620 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
621 /lib/modules/%{kernel_release}/kernel/security
622 /lib/modules/%{kernel_release}/kernel/virt
624 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
627 /lib/modules/%{kernel_release}/modules.order
628 /lib/modules/%{kernel_release}/modules.builtin*
630 # rest modules.* are ghost (regenerated by post depmod -a invocation)
631 %ghost /lib/modules/%{kernel_release}/modules.alias
632 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
633 %ghost /lib/modules/%{kernel_release}/modules.dep
634 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
635 %ghost /lib/modules/%{kernel_release}/modules.devname
636 %ghost /lib/modules/%{kernel_release}/modules.softdep
637 %ghost /lib/modules/%{kernel_release}/modules.symbols
638 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
640 # symlinks pointing to kernelsrcdir
641 %ghost /lib/modules/%{kernel_release}/build
642 %ghost /lib/modules/%{kernel_release}/source
645 %defattr(644,root,root,755)
646 /boot/vmlinux-%{kernel_release}
649 %defattr(644,root,root,755)
650 /lib/modules/%{kernel_release}/kernel/drivers/gpu
653 %defattr(644,root,root,755)
654 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
655 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
656 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
657 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
658 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
659 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
660 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
661 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
662 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
663 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
666 %defattr(644,root,root,755)
667 /lib/modules/%{kernel_release}/kernel/sound
668 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
669 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
670 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
671 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
672 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
673 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
675 %files headers -f files.headers_exclude_kbuild
676 %defattr(644,root,root,755)
677 %dir %{_kernelsrcdir}
678 %{_kernelsrcdir}/include
679 %dir %{_kernelsrcdir}/arch
680 %dir %{_kernelsrcdir}/arch/[!K]*
681 %{_kernelsrcdir}/arch/*/include
682 %dir %{_kernelsrcdir}/security
683 %dir %{_kernelsrcdir}/security/selinux
684 %{_kernelsrcdir}/security/selinux/include
685 %dir %{_kernelsrcdir}/usr
686 %dir %{_kernelsrcdir}/usr/include
687 %{_kernelsrcdir}/.config
688 %{_kernelsrcdir}/Module.symvers
690 %files module-build -f files.mb_include_modulebuild_and_dirs
691 %defattr(644,root,root,755)
692 %exclude %dir %{_kernelsrcdir}/arch/um
693 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
694 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
695 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
696 %{_kernelsrcdir}/kernel/bounds.c
697 %{_kernelsrcdir}/scripts/basic/*.c
698 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
699 %{_kernelsrcdir}/scripts/kconfig/*.pl
700 %{_kernelsrcdir}/scripts/kconfig/*.glade
701 %{_kernelsrcdir}/scripts/kconfig/*.cc
702 %{_kernelsrcdir}/scripts/kconfig/*.y
703 %{_kernelsrcdir}/scripts/kconfig/*.l
704 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
705 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
706 %{_kernelsrcdir}/scripts/kconfig/l*.h
707 %{_kernelsrcdir}/scripts/kconfig/[m-o]*.c
708 %{_kernelsrcdir}/scripts/kconfig/[m-o]*.h
709 %{_kernelsrcdir}/scripts/kconfig/preprocess.c
710 %{_kernelsrcdir}/scripts/kconfig/[q-u]*.c
711 %{_kernelsrcdir}/scripts/kconfig/[q-u]*.h
712 %{_kernelsrcdir}/scripts/kconfig/lxdialog
713 %{_kernelsrcdir}/scripts/mod/*.c
714 %{_kernelsrcdir}/scripts/mod/modpost.h
715 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
716 %{_kernelsrcdir}/scripts/mkmakefile
717 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
718 %{_kernelsrcdir}/scripts/subarch.include
719 %{_kernelsrcdir}/scripts/*.c
720 %{_kernelsrcdir}/scripts/*.h
721 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
722 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
723 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
724 %exclude %dir %{_kernelsrcdir}/security
725 %exclude %dir %{_kernelsrcdir}/security/selinux
729 %defattr(644,root,root,755)
730 %dir %{_docdir}/%{name}-%{version}
732 %{_docdir}/%{name}-%{version}/[!jkz]*
733 %{_docdir}/%{name}-%{version}/kbuild
734 %{_docdir}/%{name}-%{version}/kernel-hacking
738 %files source -f files.source_exclude_modulebuild_and_dirs
739 %defattr(644,root,root,755)
740 %{_kernelsrcdir}/arch/*/[!Mik]*
741 %{_kernelsrcdir}/arch/*/kernel/[!M]*
742 %{_kernelsrcdir}/arch/ia64/install.sh
743 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
744 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
745 %{_kernelsrcdir}/arch/m68k/install.sh
746 %{_kernelsrcdir}/arch/parisc/install.sh
747 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
748 %{_kernelsrcdir}/arch/arm64/kvm
749 %{_kernelsrcdir}/arch/mips/kvm
750 %{_kernelsrcdir}/arch/powerpc/kexec
751 %{_kernelsrcdir}/arch/powerpc/kvm
752 %{_kernelsrcdir}/arch/s390/kvm
753 %{_kernelsrcdir}/arch/x86/kvm
754 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
755 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
756 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
757 %{_kernelsrcdir}/block
758 %{_kernelsrcdir}/certs
759 %{_kernelsrcdir}/crypto
760 %{_kernelsrcdir}/drivers
762 %{_kernelsrcdir}/init
764 %{_kernelsrcdir}/kernel
765 %exclude %{_kernelsrcdir}/kernel/bounds.c
769 %{_kernelsrcdir}/virt
770 %{_kernelsrcdir}/samples
771 %{_kernelsrcdir}/scripts/*
772 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
773 %exclude %{_kernelsrcdir}/scripts/Makefile*
774 %exclude %{_kernelsrcdir}/scripts/basic
775 %exclude %{_kernelsrcdir}/scripts/kconfig
776 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
777 %exclude %{_kernelsrcdir}/scripts/mkmakefile
778 %exclude %{_kernelsrcdir}/scripts/mod
779 %exclude %{_kernelsrcdir}/scripts/setlocalversion
780 %exclude %{_kernelsrcdir}/scripts/*.c
781 %exclude %{_kernelsrcdir}/scripts/*.h
782 %exclude %{_kernelsrcdir}/scripts/*.sh
783 %exclude %dir %{_kernelsrcdir}/scripts/selinux
784 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
785 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
786 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
787 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
788 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
789 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
790 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
791 %{_kernelsrcdir}/sound
792 %{_kernelsrcdir}/security
793 %exclude %{_kernelsrcdir}/security/selinux/include
794 %{_kernelsrcdir}/tools/*
796 %{_kernelsrcdir}/COPYING
797 %{_kernelsrcdir}/CREDITS
798 %{_kernelsrcdir}/LICENSES
799 %{_kernelsrcdir}/MAINTAINERS
800 %{_kernelsrcdir}/README