2 # LATEST VERSION CHECKER:
3 # # curl -s https://www.kernel.org/finger_banner
6 # - benchmark NO_HZ & HZ=1000 vs HZ=300 on i686
8 # HOWTO update configuration files:
10 # - add new options to proper config (kernel-multiarch.config, kernel-x86.config, kernel-powerpc.config etc)
11 # - sort configuration files using:
12 # ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version}/ -a x86 kernel-x86.config
13 # ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version} kernel-multiarch.config
16 %bcond_without source # don't build kernel-source package
17 %bcond_without doc # don't build kernel-doc package
18 %bcond_without pcmcia # don't build pcmcia
20 %bcond_with verbose # verbose build (V=1)
22 %bcond_with fbcondecor # build fbcondecor (disable FB_TILEBLITTING and affected fb modules)
23 %bcond_with pae # build PAE (HIGHMEM64G) support on 32bit i686 athlon pentium3 pentium4
24 %bcond_with nfsroot # build with root on NFS support
26 %bcond_without ipv6 # ipv6 support
28 %bcond_without aufs # aufs4 support
30 %bcond_with rt # real-time kernel (CONFIG_PREEMPT_RT) for low latencies
32 %bcond_with vanilla # don't include any patches
33 %bcond_with rescuecd # build kernel for our rescue
34 %bcond_with myown # build with your own config (kernel-myown.config)
36 %{?debug:%define with_verbose 1}
66 # define this to '-%{basever}' for longterm branch
67 %define versuffix %{nil}
69 # __alt_kernel is list of features, empty string if none set
70 # _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
71 # alt_kernel should be defined if __alt_kernel has non-empty value (for %{?alt_kernel:foo} constructs)
72 %define __alt_kernel %{nil}
74 %if "%{__alt_kernel}" != ""
75 %define alt_kernel %{__alt_kernel}
78 # these override whatever name was picked from bconds
79 %if %{with myown} && "%{_alt_kernel}" == ""
80 %define alt_kernel myown
83 %define alt_kernel rescuecd
86 %define alt_kernel vanilla
89 %define alt_kernel pae
95 # kernel release (used in filesystem and eventually in uname -r)
96 # modules will be looked from /lib/modules/%{kernel_release}
97 # localversion is just that without version for "> localversion"
98 %define localversion %{rel}
99 %define kernel_release %{version}%{?alt_kernel:.%{alt_kernel}}-%{localversion}
101 %define kmod_ver 26-2
103 Summary: The Linux kernel (the core of the Linux operating system)
104 Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
105 Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
106 Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
107 Summary(pl.UTF-8): JÄ…dro Linuksa
108 Name: kernel%{versuffix}%{_alt_kernel}
109 Version: %{basever}%{postver}
114 Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%{basever}.tar.xz
115 # Source0-md5: 72d623b959a11850b57406f0b9fe3946
116 %if "%{postver}" != ".0"
117 Patch0: https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz
118 # Patch0-md5: 5b31116070986a56ee2747daf53ca48c
120 Source1: kernel.sysconfig
122 Source3: kernel-autoconf.h
123 Source4: kernel-config.h
124 Source6: kernel-config.awk
125 Source7: kernel-module-build.pl
126 Source8: kernel-track-config-change.awk
127 # not used by kernel.spec, but it's good to have it in SOURCES
128 Source9: kernel-config-sort.pl
129 Source10: kernel.make
131 Source20: kernel-multiarch.config
132 Source21: kernel-x86.config
133 Source22: kernel-sparc.config
134 Source23: kernel-alpha.config
135 Source24: kernel-powerpc.config
136 Source26: kernel-arm.config
137 Source27: kernel-arm64.config
139 Source41: kernel-patches.config
140 Source44: kernel-rt.config
142 Source58: kernel-inittmpfs.config
144 Patch2: android-enable-building-binder-as-module.patch
145 # http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
146 Patch3: kernel-fbcondecor.patch
147 Patch6: linux-wistron-nx.patch
149 # netfilter related stuff mostly based on patch-o-matic-ng
150 # snapshot 20070806 with some fixes. Some modules
151 # were ported to nf_conntrack.
153 Patch10: kernel-pom-ng-IPV4OPTSSTRIP.patch
157 # by Baggins request:
158 # derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
159 Patch55: kernel-atm-vbr.patch
160 Patch56: kernel-atmdd.patch
162 # http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
163 Patch59: kernel-rndis_host-wm5.patch
165 # see update-source.sh
166 Patch145: kernel-aufs.patch
167 Patch147: kernel-aufs-make.patch
169 # Show normal colors in menuconfig with ncurses ABI 6
170 Patch250: kernel-fix_256colors_menuconfig.patch
172 # https://rt.wiki.kernel.org/
173 # https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/patch-4.9.6-rt4.patch.xz
174 Patch500: kernel-rt.patch
176 Patch2000: kernel-small_fixes.patch
177 Patch2001: kernel-pwc-uncompress.patch
180 # based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
181 Patch7000: kernel-inittmpfs.patch
184 Patch8000: rpi-sound.patch
185 Patch8001: kernel-pinebook-pro.patch
186 Patch8002: atheros-disallow-retrain-nongen1-pcie.patch
187 Patch8004: ath-regd.patch
188 Patch8005: rkvdec-hevc.patch
190 URL: https://www.kernel.org/
192 BuildRequires: /sbin/depmod
193 BuildRequires: bc >= 1.06.95
194 BuildRequires: binutils >= 3:2.23
195 BuildRequires: bison >= 2.0
196 %ifarch sparc sparc64
197 BuildRequires: elftoaout
199 BuildRequires: elfutils-devel
200 BuildRequires: flex >= 2.5.35
201 BuildRequires: gcc >= 6:7.2.0-6
202 BuildRequires: gcc-c++
203 BuildRequires: gcc-plugin-devel
204 BuildRequires: hostname
205 BuildRequires: kmod >= %{kmod_ver}
206 BuildRequires: libstdc++-devel
207 BuildRequires: make >= 1:3.81
208 BuildRequires: openssl-devel >= 1.0.0
209 BuildRequires: openssl-tools >= 1.0.0
210 BuildRequires: perl-base >= 5
211 BuildRequires: rpm-build >= 4.5-24
212 BuildRequires: rpmbuild(macros) >= 2.019
213 BuildRequires: tar >= 1:1.22
215 BuildRequires: uboot-mkimage
217 BuildRequires: xz >= 1:4.999.7
218 BuildConflicts: dwarves < 1.16
219 Requires(post): coreutils
220 Requires(post): geninitrd >= 12787-6
221 Requires(post): kmod >= %{kmod_ver}
222 Requires: /sbin/depmod
224 Requires: geninitrd >= 12787-6
225 Requires: kmod >= %{kmod_ver}
227 %ifarch i686 athlon pentium3 pentium4
228 Requires: cpuinfo(pae)
233 Suggests: linux-firmware
234 Provides: %{name}(netfilter) = 20070806
235 Provides: %{name}(vermagic) = %{kernel_release}
236 Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100 < 0.9.0
237 Obsoletes: kernel%{_alt_kernel}-char-lirc-it87 < 0.9.0
238 Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709 < 0.9.0
239 Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb < 0.9.0
240 Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap < 0.9.0
241 Obsoletes: kernel%{_alt_kernel}-isdn-mISDN < 2.0.35
242 Obsoletes: kernel-firmware < 3:2.6.33
243 Obsoletes: kernel-misc-acer_acpi < 0.3-2
244 Obsoletes: kernel-misc-fuse < 2.8.5-2
245 Obsoletes: kernel-misc-uvc < 0.215.1-10
246 Obsoletes: kernel-modules < 2.2.2-2
247 Obsoletes: kernel-net-ar81 < 1.0.1.0-3
248 Obsoletes: kernel-net-hostap < 0.4.7-2
249 Obsoletes: kernel-net-ieee80211 < 1.2.18-7
250 Obsoletes: kernel-net-ipp2p < 0.8.2.-17
251 Obsoletes: kernel-net-rt61 < 1.1.0-2.2007122707.13
252 Obsoletes: kernel-smp < 3:2.6.21
253 Conflicts: e2fsprogs < 1.29
254 Conflicts: isdn4k-utils < 3.1pre1
255 Conflicts: jfsutils < 1.1.3
256 Conflicts: libcap-libs < 1:2.34
257 Conflicts: libusb < 1.0.9
258 Conflicts: linux-firmware < 20120720
259 Conflicts: lvm2 < 2.02.40
260 Conflicts: module-init-tools < 3.16
261 Conflicts: nfs-utils < 1.0.5
262 Conflicts: oprofile < 0.9
263 Conflicts: ppp < 1:2.4.0
264 Conflicts: procps < 3.2.0
265 Conflicts: quota-tools < 3.09
266 Conflicts: reiserfsprogs < 3.6.3
267 Conflicts: rpm < 4.4.2-0.2
268 Conflicts: udev < 1:081
269 Conflicts: util-linux < 2.10o
270 Conflicts: xfsprogs < 2.6.0
272 ExclusiveArch: i686 pentium3 pentium4 athlon
274 ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 alpha %{arm} ppc ppc64 sparc sparc64 aarch64
277 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
279 %define kmod_compress_cmd %{__xz}
281 %ifarch %{ix86} %{x8664} x32
282 %define target_arch_dir x86
285 %define target_arch_dir powerpc
287 %ifarch sparc sparc64
288 %define target_arch_dir sparc
291 %define target_arch_dir arm64
293 %ifnarch %{ix86} %{x8664} x32 ppc ppc64 sparc sparc64 aarch64
294 %define target_arch_dir %{_target_base_arch}
297 %define defconfig arch/%{target_arch_dir}/defconfig
299 # No ELF objects there to strip (skips processing 27k files)
300 %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
301 %define _noautochrpath .*%{_kernelsrcdir}/.*
302 %define _enable_debug_packages 0
304 %define initrd_dir /boot
306 %define topdir %{_builddir}/%{name}-%{version}
307 %define srcdir %{topdir}/linux-%{basever}
308 %define objdir %{topdir}/%{targetobj}
309 %define targetobj %{_target_base_arch}-gcc-%(%{__cc} -dumpversion)
311 %define _kernelsrcdir /usr/src/linux%{versuffix}%{_alt_kernel}-%{version}
313 %if "%{_target_base_arch}" != "%{_host_base_arch}"
314 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
315 %define DepMod /bin/true
317 %if "%{_host_base_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
318 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
319 %define DepMod /sbin/depmod
322 %if "%{_host_base_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
323 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
324 %define DepMod /sbin/depmod
327 %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
328 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
329 %define DepMod /sbin/depmod
332 %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
333 %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
337 %define CrossOpts ARCH=powerpc CC="%{__cc}"
340 %define CrossOpts ARCH=arm64 CC="%{__cc}"
342 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
345 %define DepMod /sbin/depmod
347 # use 64-bit offsets for fixdeps to work with 64-bit inodes
348 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64"
351 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
352 %{?with_nfsroot:Root on NFS - enabled}\
353 %{?with_rt:CONFIG_PREEMPT_RT - enabled}\
355 %define Features %(echo "%{__features}" | sed '/^$/d')
358 This package contains the Linux kernel that is used to boot and run
359 your system. It contains few device drivers for specific hardware.
360 Most hardware is instead supported by modules loaded after booting.
364 %description -l de.UTF-8
365 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
366 Linux-Betriebssystems. Der Kernel ist für grundliegende
367 Systemfunktionen verantwortlich: Speicherreservierung,
368 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
372 %description -l fr.UTF-8
373 Le package kernel contient le kernel linux (vmlinuz), la partie
374 centrale d'un système d'exploitation Linux. Le noyau traite les
375 fonctions basiques d'un système d'exploitation: allocation mémoire,
376 allocation de process, entrée/sortie de peripheriques, etc.
380 %description -l pl.UTF-8
381 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
382 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
383 się w komputerze, takiego jak sterowniki dysków itp.
388 Summary: vmlinux - uncompressed kernel image
389 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
390 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jÄ…dra
392 Obsoletes: kernel-smp-vmlinux < 3:2.6.21
395 vmlinux - uncompressed kernel image.
397 %description vmlinux -l de.UTF-8
398 vmlinux - dekompressiertes Kernel Bild.
400 %description vmlinux -l pl.UTF-8
401 vmlinux - rozpakowany obraz jÄ…dra.
404 Summary: DRM kernel modules
405 Summary(de.UTF-8): DRM Kernel Treiber
406 Summary(pl.UTF-8): Sterowniki DRM
408 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
409 Requires: %{name} = %{epoch}:%{version}-%{release}
410 Provides: kernel(vboxvideo) = %{kernel_release}
411 Obsoletes: kernel-smp-drm < 3:2.6.21
417 %description drm -l de.UTF-8
420 %description drm -l pl.UTF-8
424 Summary: PCMCIA modules
425 Summary(de.UTF-8): PCMCIA Module
426 Summary(pl.UTF-8): Moduły PCMCIA
428 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
429 Requires: %{name} = %{epoch}:%{version}-%{release}
430 Obsoletes: kernel-smp-pcmcia < 3:2.6.21
431 Conflicts: pcmcia-cs < 3.1.21
432 Conflicts: pcmciautils < 004
438 %description pcmcia -l de.UTF-8
441 %description pcmcia -l pl.UTF-8
445 Summary: ALSA kernel modules
446 Summary(de.UTF-8): ALSA Kernel Module
447 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
449 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
450 Requires: %{name} = %{epoch}:%{version}-%{release}
451 Obsoletes: kernel-smp-sound-alsa < 3:2.6.21
454 %description sound-alsa
455 ALSA (Advanced Linux Sound Architecture) sound drivers.
457 %description sound-alsa -l de.UTF-8
458 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
460 %description sound-alsa -l pl.UTF-8
461 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
464 Summary: Header files for the Linux kernel
465 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
466 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
467 Group: Development/Building
468 Provides: %{name}-headers(netfilter) = 20070806
472 These are the C header files for the Linux kernel, which define
473 structures and constants that are needed when rebuilding the kernel or
474 building kernel modules.
476 %description headers -l de.UTF-8
477 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
478 Strukturen und Konstante beinhalten, die beim rekompilieren des
479 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
481 %description headers -l pl.UTF-8
482 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
483 oraz budowania modułów jądra.
485 %package module-build
486 Summary: Development files for building kernel modules
487 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
488 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
489 Group: Development/Building
490 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
491 Requires: elfutils-devel
493 Conflicts: rpmbuild(macros) < 2.019
496 %description module-build
497 Development files from kernel source tree needed to build Linux kernel
498 modules from external packages.
500 %description module-build -l de.UTF-8
501 Development Dateien des Linux-Kernels die beim kompilieren externer
502 Kernel Module gebraucht werden.
504 %description module-build -l pl.UTF-8
505 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
506 Linuksa z zewnętrznych pakietów.
509 Summary: Kernel source tree
510 Summary(de.UTF-8): Der Kernel Quelltext
511 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
512 Group: Development/Building
513 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
518 This is the source code for the Linux kernel. You can build a custom
519 kernel that is better tuned to your particular hardware.
521 %description source -l de.UTF-8
522 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
523 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
524 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
525 im Kernel-Source definiert sind. Die Source-Dateien können auch
526 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
527 Hardware ausgerichtet ist.
529 %description source -l fr.UTF-8
530 Le package pour le kernel-source contient le code source pour le noyau
531 linux. Ces sources sont nécessaires pour compiler la plupart des
532 programmes C, car il dépend de constantes définies dans le code
533 source. Les sources peuvent être aussi utilisée pour compiler un noyau
534 personnalisé pour avoir de meilleures performances sur des matériels
537 %description source -l pl.UTF-8
538 Pakiet zawiera kod źródłowy jądra systemu.
541 Summary: Kernel documentation
542 Summary(de.UTF-8): Kernel Dokumentation
543 Summary(pl.UTF-8): Dokumentacja do jÄ…dra Linuksa
549 This is the documentation for the Linux kernel, as found in
550 /usr/src/linux/Documentation directory.
552 %description doc -l de.UTF-8
553 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
554 Verzeichniss vorgefunden werden kann.
556 %description doc -l pl.UTF-8
557 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
558 /usr/src/linux/Documentation.
562 ln -s %{SOURCE7} kernel-module-build.pl
563 ln -s %{SOURCE10} Makefile
566 %if "%{postver}" != ".0"
570 %if %{without vanilla}
573 %if %{with fbcondecor}
581 # kernel-pom-ng-IPV4OPTSSTRIP.patch
590 # kernel-rndis_host-wm5.patch
603 %ifarch %{arm} aarch64
613 rm -f localversion-rt
624 chmod 755 tools/objtool/sync-check.sh
626 # Fix EXTRAVERSION in main Makefile
627 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
629 # cleanup backups after patching
630 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
632 find -name '*.py' -print0 | \
633 xargs -0 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
634 -e '1s,/usr/bin/env python$,%{__python},' \
635 -e '1s,/usr/bin/env python3$,%{__python3},'
637 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
638 -e '1s,/usr/bin/env python$,%{__python},' \
639 -e '1s,/usr/bin/env python3$,%{__python3},' \
640 scripts/bloat-o-meter \
642 scripts/dtc/dt-extract-compatibles \
643 scripts/jobserver-exec \
645 tools/hv/vmbus_testing \
646 tools/kvm/kvm_stat/kvm_stat \
647 tools/testing/selftests/exec/binfmt_script.py
649 find -name '*.pl' -print0 | \
650 xargs -0 %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \
652 %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \
653 scripts/dtc/dt_to_config \
656 scripts/documentation-file-ref-check \
657 scripts/get_dvb_firmware \
659 scripts/sphinx-pre-install \
662 %{__sed} -i -e '1s,/usr/bin/env bash,%{__bash},' \
663 tools/testing/selftests/powerpc/security/mitigation-patching.sh \
669 cat > %{targetobj}.mk <<'EOF'
670 # generated by %{name}.spec
671 KERNELSRC := %{srcdir}
672 KERNELOUTPUT := %{objdir}
674 SRCARCH := %{target_arch_dir}
675 ARCH := %{_target_base_arch}
676 Q := %{!?with_verbose:@}
677 MAKE_OPTS := %{MakeOpts}
678 DEFCONFIG := %{defconfig}
683 # CONFIG_SOUND is not set
684 # CONFIG_AUDIT is not set
685 # CONFIG_TR is not set
686 # CONFIG_BT is not set
687 # CONFIG_VIDEO_DEV is not set
688 # CONFIG_DVB_CORE is not set
689 # CONFIG_HAMRADIO is not set
690 # CONFIG_ARCNET is not set
691 # CONFIG_DRM is not set
692 # CONFIG_WATCHDOG is not set
693 # CONFIG_INPUT_JOYSTICK is not set
694 # CONFIG_DEBUG_KERNEL is not set
695 # CONFIG_ISDN is not set
696 # CONFIG_AGP is not set
697 # CONFIG_SECURITY is not set
698 # CONFIG_PARIDE is not set
699 # CONFIG_CPU_FREQ is not set
700 # CONFIG_GAMEPORT is not set
701 # CONFIG_KVM is not set
702 # CONFIG_PHONE is not set
703 # CONFIG_STRICT_DEVMEM is not set
704 # CONFIG_IMA is not set
705 # CONFIG_MEDIA_SUPPORT is not set
706 # CONFIG_UWB is not set
707 # CONFIG_PWM is not set
708 # CONFIG_COMEDI_NI_LABPC_ISA is not set
709 # CONFIG_FB_SYS_FILLRECT is not set
710 # CONFIG_FB_SYS_COPYAREA is not set
711 # CONFIG_FB_SYS_IMAGEBLIT is not set
712 # CONFIG_FB_SYS_FOPS is not set
713 # CONFIG_FB_HECUBA is not set
714 # CONFIG_FB_SVGALIB is not set
715 # CONFIG_FB_CIRRUS is not set
716 # CONFIG_FB_PM2 is not set
717 # CONFIG_FB_CYBER2000 is not set
718 # CONFIG_FB_ARC is not set
719 # CONFIG_FB_ASILIANT is not set
720 # CONFIG_FB_IMSTT is not set
721 # CONFIG_FB_VGA16 is not set
722 # CONFIG_FB_UVESA is not set
723 # CONFIG_FB_N411 is not set
724 # CONFIG_FB_HGA is not set
725 # CONFIG_FB_S1D13XXX is not set
726 # CONFIG_FB_NVIDIA is not set
727 # CONFIG_FB_RIVA is not set
728 # CONFIG_FB_I740 is not set
729 # CONFIG_FB_LE80578 is not set
730 # CONFIG_FB_CARILLO_RANCH is not set
731 # CONFIG_FB_MATROX is not set
732 # CONFIG_FB_RADEON is not set
733 # CONFIG_FB_ATY128 is not set
734 # CONFIG_FB_ATY is not set
735 # CONFIG_FB_S3 is not set
736 # CONFIG_FB_SAVAGE is not set
737 # CONFIG_FB_SIS is not set
738 # CONFIG_FB_VIA is not set
739 # CONFIG_FB_NEOMAGIC is not set
740 # CONFIG_FB_KYRO is not set
741 # CONFIG_FB_3DFX is not set
742 # CONFIG_FB_VOODOO1 is not set
743 # CONFIG_FB_VT8623 is not set
744 # CONFIG_FB_TRIDENT is not set
745 # CONFIG_FB_ARK is not set
746 # CONFIG_FB_PM3 is not set
747 # CONFIG_FB_CARMINE is not set
748 # CONFIG_FB_GEODE is not set
749 # CONFIG_FB_TMIO is not set
750 # CONFIG_FB_SM501 is not set
751 # CONFIG_FB_SMSCUFX is not set
752 # CONFIG_FB_UDL is not set
753 # CONFIG_FB_GOLDFISH is not set
754 # CONFIG_XEN_FBDEV_FRONTEND is not set
755 # CONFIG_FB_METRONOME is not set
756 # CONFIG_FB_MB862XX is not set
757 # CONFIG_FB_BROADSHEET is not set
758 # CONFIG_FB_AUO_K190X is not set
759 # CONFIG_FB_AUO_K1900 is not set
760 # CONFIG_FB_AUO_K1901 is not set
761 # CONFIG_FB_HYPERV is not set
764 CONFIG_AUFS_BR_RAMFS=y
766 CONFIG_BLK_DEV_LOOP=y
772 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
782 Config="kernel-%{target_arch_dir}.config"
783 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
785 # prepare local and important options
786 cat <<-EOCONFIG > important.config
787 LOCALVERSION="-%{localversion}"
790 CONFIG_DEBUG_PREEMPT=y
791 CONFIG_RT_DEADLOCK_DETECT=y
793 CONFIG_DEBUG_PREEMPT=n
800 %ifarch i686 athlon pentium3 pentium4
809 %if %{without pcmcia}
813 %if %{with fbcondecor}
817 CONFIG_FB_TILEBLITTING=n
818 CONFIG_FB_CON_DECOR=y
829 %if %{_ver_ge %(rpm -q --qf='%%{VERSION}' gcc) 12}
830 CONFIG_INIT_STACK_ALL_ZERO=y
831 CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=n
833 CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
838 RescueConfig rescue.config
840 # prepare kernel-style config file from multiple config files
841 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
843 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
846 %if %{without vanilla}
855 %{SOURCE41} %{?0:patches} \
858 $RPM_SOURCE_DIR/$Config
862 install -d arch/%{target_arch_dir}
863 BuildConfig > %{defconfig}
864 ln -sf %{defconfig} .config
868 TARGETOBJ=%{targetobj} \
869 %{?with_verbose:V=1} \
872 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
875 TARGETOBJ=%{targetobj} \
876 %{?with_verbose:V=1} \
881 ICECC_EXTRAFILES="${ICECC_EXTRAFILES:+$ICECC_EXTRAFILES:}$(test -d %{objdir}/scripts/gcc-plugins && find %{objdir}/scripts/gcc-plugins -name '*.so' | paste -s -d :)"
883 TARGETOBJ=%{targetobj} \
884 %{?with_verbose:V=1} \
888 rm -rf $RPM_BUILD_ROOT
889 %{__make} %{MakeOpts} %{!?with_verbose:-s} modules_install \
891 %{?with_verbose:V=1} \
893 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
894 INSTALL_MOD_STRIP="--strip-debug --remove-section=.comment --remove-section=.note.GNU-stack" \
895 KERNELRELEASE=%{kernel_release}
897 %ifarch %{arm} aarch64
899 %{__make} %{MakeOpts} %{!?with_verbose:-s} dtbs_install \
901 %{?with_verbose:V=1} \
902 INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/boot/dtb-%{kernel_release}
905 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
907 # create directories which may be missing, to simplyfy %files
908 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
910 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
911 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
912 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
914 # no point embed content for %ghost files. empty them
922 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
923 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
927 install -d $RPM_BUILD_ROOT/boot
928 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
929 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
930 %ifarch %{ix86} %{x8664} x32
931 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
932 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
935 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
936 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
938 %ifarch alpha sparc sparc64
939 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
940 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
941 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
943 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
944 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
947 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
948 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
952 install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
955 cp -a %{objdir}/arch/%{target_arch_dir}/boot/Image.gz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
959 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
960 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
962 %if "%{_target_base_arch}" != "%{_host_base_arch}"
963 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
966 # /etc/depmod.d /etc/modrobe.d
967 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{depmod.d,modprobe.d}/%{kernel_release}
969 install -d $RPM_BUILD_ROOT/etc/sysconfig
970 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
973 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
975 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
976 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
978 rm -f $RPM_BUILD_ROOT/COPYING
981 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
982 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
983 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
984 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
985 # copy arch/x86/include/generated
986 for dir in $(cd %{objdir} && find arch -name generated -type d); do
987 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
988 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
992 # Needed for CONFIG_STACK_VALIDATION / ORC_UNWINDER enabled builds
993 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool
994 cp -a %{objdir}/tools/objtool/fixdep $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool
995 cp -a %{objdir}/tools/objtool/objtool $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool
998 # version.h location changed in 3.7, but a lot of external modules don't know about it
999 # add a compatibility symlink
1000 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
1002 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
1003 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
1005 # collect module-build files and directories
1006 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1008 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1009 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1012 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
1014 if [ -x "$f" ]; then
1015 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1017 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1019 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
1020 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
1024 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1025 install -d $RPM_BUILD_ROOT%{_docdir}
1026 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1028 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1029 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1030 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1032 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
1036 rm -rf $RPM_BUILD_ROOT
1039 if [ -x /sbin/new-kernel-pkg ]; then
1040 /sbin/new-kernel-pkg --remove %{kernel_release}
1044 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1045 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1046 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1047 mv -f /boot/System.map{,.old} 2> /dev/null
1048 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1049 ln -sf System.map-%{kernel_release} /boot/System.map
1050 %ifarch %{arm} aarch64
1051 test -L /boot/dtb.old && rm /boot/dtb.old
1052 test ! -e /boot/dtb.old && mv -f /boot/dtb{,.old} 2> /dev/null
1053 ln -sf dtb-%{kernel_release} /boot/dtb
1055 %if 0%{?alt_kernel:1}
1056 mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1057 mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
1058 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}
1059 ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
1060 %ifarch %{arm} aarch64
1061 test -L /boot/dtb%{_alt_kernel}.old && rm /boot/dtb%{_alt_kernel}.old
1062 test ! -e /boot/dtb%{_alt_kernel}.old && mv -f /boot/dtb%{_alt_kernel}{,.old} 2> /dev/null
1063 ln -sf dtb-%{kernel_release} /boot/dtb%{_alt_kernel}
1068 %depmod %{kernel_release}
1071 # use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
1072 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1074 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
1075 /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release} || :
1076 initrd_file="initrd-%{kernel_release}.gz"
1079 # if dracut is present then generate full-featured initramfs
1080 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
1081 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
1082 [ -n "$initrd_file" ] || initrd_file="initramfs-%{kernel_release}.img"
1085 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1086 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1087 if [ -n "$initrd_file" ] ; then
1088 ln -sf "$initrd_file" %{initrd_dir}/initrd
1090 %if 0%{?alt_kernel:1}
1091 mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
1092 if [ -n "$initrd_file" ] ; then
1093 ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
1098 # update boot loaders when old package files are gone from filesystem
1099 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1100 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1101 /sbin/update-grub >/dev/null
1104 if [ -x /sbin/new-kernel-pkg ]; then
1105 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/$initrd_file --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1107 if [ -x /sbin/rc-boot ]; then
1108 /sbin/rc-boot 1>&2 || :
1110 if [ -x /sbin/efi-boot-update ]; then
1111 /sbin/efi-boot-update --auto || :
1115 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1116 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1117 mv -f /boot/vmlinux{,.old} 2> /dev/null
1118 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1119 %if 0%{?alt_kernel:1}
1120 mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
1121 ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
1126 %depmod %{kernel_release}
1129 %depmod %{kernel_release}
1132 %depmod %{kernel_release}
1135 %depmod %{kernel_release}
1138 %depmod %{kernel_release}
1141 %depmod %{kernel_release}
1144 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1147 if [ "$1" = "0" ]; then
1148 if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
1149 if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
1150 rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1155 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1156 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1157 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1159 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1160 if [ "$1" = 0 ]; then
1161 rm -f /lib/modules/%{kernel_release}/{build,source}
1165 %defattr(644,root,root,755)
1166 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
1167 %ifarch sparc sparc64
1168 /boot/vmlinux.aout-%{kernel_release}
1170 %ifarch %{arm} aarch64
1171 /boot/dtb-%{kernel_release}
1173 /boot/vmlinuz-%{kernel_release}
1174 /boot/System.map-%{kernel_release}
1175 /boot/config-%{kernel_release}
1176 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1177 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
1179 %dir /lib/modules/%{kernel_release}
1180 %dir /lib/modules/%{kernel_release}/kernel
1181 /lib/modules/%{kernel_release}/kernel/arch
1182 /lib/modules/%{kernel_release}/kernel/block
1183 /lib/modules/%{kernel_release}/kernel/crypto
1184 /lib/modules/%{kernel_release}/kernel/drivers
1186 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1188 /lib/modules/%{kernel_release}/kernel/fs
1189 /lib/modules/%{kernel_release}/kernel/kernel
1190 /lib/modules/%{kernel_release}/kernel/lib
1191 /lib/modules/%{kernel_release}/kernel/net
1192 /lib/modules/%{kernel_release}/kernel/mm
1194 %dir /lib/modules/%{kernel_release}/kernel/sound
1195 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1196 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1198 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1199 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1200 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
1201 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/legacy/g_midi.ko*
1204 %exclude /lib/modules/%{kernel_release}/kernel/drivers/staging/vc04_services/bcm2835-audio
1207 %dir /lib/modules/%{kernel_release}/misc
1209 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1210 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1211 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1212 %if %{without rescuecd}
1213 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1214 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1216 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/arcnet/com20020_cs.ko*
1217 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/can/softing/softing_cs.ko*
1218 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/3com/3c574_cs.ko*
1219 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/3com/3c589_cs.ko*
1220 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/8390/axnet_cs.ko*
1221 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/8390/pcnet_cs.ko*
1222 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/amd/nmclan_cs.ko*
1223 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko*
1224 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko*
1225 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko*
1226 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/atmel/*_cs.ko*
1227 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/cisco/*_cs.ko*
1228 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/intersil/hostap/hostap_cs.ko*
1229 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/intersil/orinoco/*_cs.ko*
1230 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/marvell/libertas/*_cs.ko*
1231 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1232 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1233 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1236 /lib/modules/%{kernel_release}/kernel/sound
1238 /lib/modules/%{kernel_release}/kernel/security
1239 %ifarch %{ix86} %{x8664} x32
1240 /lib/modules/%{kernel_release}/kernel/virt
1243 %dir %{_sysconfdir}/depmod.d/%{kernel_release}
1244 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1247 /lib/modules/%{kernel_release}/modules.order
1248 /lib/modules/%{kernel_release}/modules.builtin*
1250 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1251 %ghost /lib/modules/%{kernel_release}/modules.alias
1252 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1253 %ghost /lib/modules/%{kernel_release}/modules.dep
1254 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1255 %ghost /lib/modules/%{kernel_release}/modules.devname
1256 %ghost /lib/modules/%{kernel_release}/modules.softdep
1257 %ghost /lib/modules/%{kernel_release}/modules.symbols
1258 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1260 # symlinks pointing to kernelsrcdir
1261 %ghost /lib/modules/%{kernel_release}/build
1262 %ghost /lib/modules/%{kernel_release}/source
1264 %ifarch alpha %{ix86} %{x8664} x32 ppc ppc64 sparc sparc64
1266 %defattr(644,root,root,755)
1267 /boot/vmlinux-%{kernel_release}
1272 %defattr(644,root,root,755)
1273 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1278 %defattr(644,root,root,755)
1279 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1280 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1281 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1282 %if %{without rescuecd}
1283 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1284 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1286 /lib/modules/%{kernel_release}/kernel/drivers/net/arcnet/com20020_cs.ko*
1287 /lib/modules/%{kernel_release}/kernel/drivers/net/can/softing/softing_cs.ko*
1288 /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/3com/3c574_cs.ko*
1289 /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/3com/3c589_cs.ko*
1290 /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/8390/axnet_cs.ko*
1291 /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/8390/pcnet_cs.ko*
1292 /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/amd/nmclan_cs.ko*
1293 /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko*
1294 /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko*
1295 /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko*
1296 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/atmel/*_cs.ko*
1297 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/cisco/*_cs.ko*
1298 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/intersil/hostap/hostap_cs.ko*
1299 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/intersil/orinoco/*_cs.ko*
1300 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/marvell/libertas/*_cs.ko*
1301 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1302 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1303 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1308 %defattr(644,root,root,755)
1309 /lib/modules/%{kernel_release}/kernel/sound
1310 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1311 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1312 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1314 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/legacy/g_midi.ko*
1315 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1316 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1317 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
1320 /lib/modules/%{kernel_release}/kernel/drivers/staging/vc04_services/bcm2835-audio
1324 %files headers -f files.headers_exclude_kbuild
1325 %defattr(644,root,root,755)
1326 %dir %{_kernelsrcdir}
1327 %{_kernelsrcdir}/include
1328 %dir %{_kernelsrcdir}/arch
1329 %dir %{_kernelsrcdir}/arch/[!K]*
1330 %{_kernelsrcdir}/arch/*/include
1331 %dir %{_kernelsrcdir}/security
1332 %dir %{_kernelsrcdir}/security/selinux
1333 %{_kernelsrcdir}/security/selinux/include
1334 %dir %{_kernelsrcdir}/tools
1335 %{_kernelsrcdir}/tools/include
1336 %dir %{_kernelsrcdir}/usr
1337 %dir %{_kernelsrcdir}/usr/include
1338 %{_kernelsrcdir}/.config
1339 %{_kernelsrcdir}/Module.symvers
1341 %files module-build -f files.mb_include_modulebuild_and_dirs
1342 %defattr(644,root,root,755)
1344 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1346 %exclude %dir %{_kernelsrcdir}/arch/um
1347 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1348 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
1349 %{_kernelsrcdir}/kernel/bounds.c
1350 %{_kernelsrcdir}/scripts/basic/*.c
1351 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1352 %{_kernelsrcdir}/scripts/kconfig/*.pl
1353 %{_kernelsrcdir}/scripts/kconfig/*.glade
1354 %{_kernelsrcdir}/scripts/kconfig/*.cc
1355 %{_kernelsrcdir}/scripts/kconfig/*.y
1356 %{_kernelsrcdir}/scripts/kconfig/*.l
1357 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1358 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1359 %{_kernelsrcdir}/scripts/kconfig/l*.h
1360 %{_kernelsrcdir}/scripts/kconfig/[m-o]*.c
1361 %{_kernelsrcdir}/scripts/kconfig/[m-o]*.h
1362 %{_kernelsrcdir}/scripts/kconfig/preprocess.c
1363 %{_kernelsrcdir}/scripts/kconfig/[q-u]*.c
1364 %{_kernelsrcdir}/scripts/kconfig/[q-u]*.h
1365 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1366 %{_kernelsrcdir}/scripts/mod/*.c
1367 %{_kernelsrcdir}/scripts/mod/modpost.h
1368 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1369 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1370 %{_kernelsrcdir}/scripts/subarch.include
1371 %{_kernelsrcdir}/scripts/*.c
1372 %{_kernelsrcdir}/scripts/*.h
1373 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1374 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1375 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1376 %exclude %dir %{_kernelsrcdir}/security
1377 %exclude %dir %{_kernelsrcdir}/security/selinux
1378 %ifarch %{x8664} x32
1379 %attr(755,root,root) %{_kernelsrcdir}/tools/objtool/fixdep
1380 %attr(755,root,root) %{_kernelsrcdir}/tools/objtool/objtool
1385 %defattr(644,root,root,755)
1386 %dir %{_docdir}/%{name}-%{version}
1388 %{_docdir}/%{name}-%{version}/[!jkz]*
1389 %{_docdir}/%{name}-%{version}/kbuild
1390 %{_docdir}/%{name}-%{version}/kernel-hacking
1394 %files source -f files.source_exclude_modulebuild_and_dirs
1395 %defattr(644,root,root,755)
1396 %{_kernelsrcdir}/arch/*/[!Mik]*
1397 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1398 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1399 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1400 %{_kernelsrcdir}/arch/m68k/install.sh
1401 %{_kernelsrcdir}/arch/parisc/install.sh
1402 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1403 %{_kernelsrcdir}/arch/powerpc/kexec
1404 %{_kernelsrcdir}/arch/powerpc/kvm
1405 %{_kernelsrcdir}/arch/riscv/kvm
1407 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1409 %{_kernelsrcdir}/arch/arm64/kvm
1410 %{_kernelsrcdir}/arch/loongarch/kvm
1411 %{_kernelsrcdir}/arch/mips/kvm
1412 %{_kernelsrcdir}/arch/s390/kvm
1413 %{_kernelsrcdir}/arch/x86/kvm
1414 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1415 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
1416 %{_kernelsrcdir}/block
1417 %{_kernelsrcdir}/certs
1418 %{_kernelsrcdir}/crypto
1419 %{_kernelsrcdir}/drivers
1421 %{_kernelsrcdir}/init
1422 %{_kernelsrcdir}/io_uring
1423 %{_kernelsrcdir}/ipc
1424 %{_kernelsrcdir}/kernel
1425 %exclude %{_kernelsrcdir}/kernel/bounds.c
1426 %{_kernelsrcdir}/lib
1428 %{_kernelsrcdir}/net
1429 %{_kernelsrcdir}/virt
1430 %{_kernelsrcdir}/rust
1431 %{_kernelsrcdir}/samples
1432 %{_kernelsrcdir}/scripts/*
1433 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1434 %exclude %{_kernelsrcdir}/scripts/Makefile*
1435 %exclude %{_kernelsrcdir}/scripts/basic
1436 %exclude %{_kernelsrcdir}/scripts/kconfig
1437 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1438 %exclude %{_kernelsrcdir}/scripts/mod
1439 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1440 %exclude %{_kernelsrcdir}/scripts/subarch.include
1441 %exclude %{_kernelsrcdir}/scripts/*.c
1442 %exclude %{_kernelsrcdir}/scripts/*.h
1443 %exclude %{_kernelsrcdir}/scripts/*.sh
1444 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1445 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1446 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1447 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1448 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1449 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1450 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1451 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1452 %{_kernelsrcdir}/sound
1453 %{_kernelsrcdir}/security
1454 %exclude %{_kernelsrcdir}/security/selinux/include
1455 %{_kernelsrcdir}/tools/*
1456 %exclude %{_kernelsrcdir}/tools/include
1457 %ifarch %{x8664} x32
1458 %exclude %{_kernelsrcdir}/tools/objtool/fixdep
1459 %exclude %{_kernelsrcdir}/tools/objtool/objtool
1461 %{_kernelsrcdir}/usr
1462 %{_kernelsrcdir}/COPYING
1463 %{_kernelsrcdir}/CREDITS
1464 %{_kernelsrcdir}/MAINTAINERS
1465 %{_kernelsrcdir}/README