]> git.pld-linux.org Git - packages/kernel.git/blame_incremental - kernel.spec
- 6.9.2
[packages/kernel.git] / kernel.spec
... / ...
CommitLineData
1#
2# LATEST VERSION CHECKER:
3# # curl -s https://www.kernel.org/finger_banner
4#
5# TODO:
6# - benchmark NO_HZ & HZ=1000 vs HZ=300 on i686
7#
8# HOWTO update configuration files:
9# - run build
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
14#
15# Conditional build:
16%bcond_without source # don't build kernel-source package
17%bcond_without doc # don't build kernel-doc package
18
19%bcond_with verbose # verbose build (V=1)
20
21%bcond_with fbcondecor # build fbcondecor (disable FB_TILEBLITTING and affected fb modules)
22%bcond_with pae # build PAE (HIGHMEM64G) support on 32bit i686 athlon pentium3 pentium4
23%bcond_with nfsroot # build with root on NFS support
24
25%bcond_without ipv6 # ipv6 support
26
27%bcond_without aufs # aufs4 support
28
29%bcond_with rt # real-time kernel (CONFIG_PREEMPT_RT) for low latencies
30
31%bcond_with vanilla # don't include any patches
32%bcond_with rescuecd # build kernel for our rescue
33%bcond_with myown # build with your own config (kernel-myown.config)
34
35%{?debug:%define with_verbose 1}
36
37%define have_drm 1
38%define have_sound 1
39
40%if %{with rescuecd}
41%define have_drm 0
42%define have_sound 0
43%endif
44
45%if %{with myown}
46%define have_drm 0
47%define have_sound 0
48%endif
49
50%ifarch sparc sparc64
51%define have_drm 0
52%endif
53
54%define rel 1
55%define basever 6.8
56%define postver .7
57
58# define this to '-%{basever}' for longterm branch
59%define versuffix %{nil}
60
61# __alt_kernel is list of features, empty string if none set
62# _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
63# alt_kernel should be defined if __alt_kernel has non-empty value (for %{?alt_kernel:foo} constructs)
64%define __alt_kernel %{nil}
65
66%if "%{__alt_kernel}" != ""
67%define alt_kernel %{__alt_kernel}
68%endif
69
70# these override whatever name was picked from bconds
71%if %{with myown} && "%{_alt_kernel}" == ""
72%define alt_kernel myown
73%endif
74%if %{with rescuecd}
75%define alt_kernel rescuecd
76%endif
77%if %{with vanilla}
78%define alt_kernel vanilla
79%endif
80%if %{with pae}
81%define alt_kernel pae
82%endif
83%if %{with rt}
84%define alt_kernel rt
85%endif
86
87# kernel release (used in filesystem and eventually in uname -r)
88# modules will be looked from /lib/modules/%{kernel_release}
89# localversion is just that without version for "> localversion"
90%define localversion %{rel}
91%define kernel_release %{version}%{?alt_kernel:.%{alt_kernel}}-%{localversion}
92
93%define kmod_ver 26-2
94
95Summary: The Linux kernel (the core of the Linux operating system)
96Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
97Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
98Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
99Summary(pl.UTF-8): JÄ…dro Linuksa
100Name: kernel%{versuffix}%{_alt_kernel}
101Version: %{basever}%{postver}
102Release: %{rel}
103Epoch: 3
104License: GPL v2
105Group: Base/Kernel
106Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%{basever}.tar.xz
107# Source0-md5: 72d623b959a11850b57406f0b9fe3946
108%if "%{postver}" != ".0"
109Patch0: https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz
110# Patch0-md5: 32d705e92b2285aedd85d8e9da354937
111%endif
112Source1: kernel.sysconfig
113
114Source3: kernel-autoconf.h
115Source4: kernel-config.h
116Source6: kernel-config.awk
117Source7: kernel-module-build.pl
118Source8: kernel-track-config-change.awk
119# not used by kernel.spec, but it's good to have it in SOURCES
120Source9: kernel-config-sort.pl
121Source10: kernel.make
122
123Source20: kernel-multiarch.config
124Source21: kernel-x86.config
125Source22: kernel-sparc.config
126Source23: kernel-alpha.config
127Source24: kernel-powerpc.config
128Source26: kernel-arm.config
129Source27: kernel-arm64.config
130
131Source41: kernel-patches.config
132Source44: kernel-rt.config
133
134Source58: kernel-inittmpfs.config
135
136Patch2: android-enable-building-binder-as-module.patch
137# http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
138Patch3: kernel-fbcondecor.patch
139Patch6: linux-wistron-nx.patch
140
141# netfilter related stuff mostly based on patch-o-matic-ng
142# snapshot 20070806 with some fixes. Some modules
143# were ported to nf_conntrack.
144
145Patch10: kernel-pom-ng-IPV4OPTSSTRIP.patch
146
147### End netfilter
148
149# by Baggins request:
150# derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
151Patch55: kernel-atm-vbr.patch
152Patch56: kernel-atmdd.patch
153
154# http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
155Patch59: kernel-rndis_host-wm5.patch
156
157# see update-source.sh
158Patch145: kernel-aufs.patch
159Patch147: kernel-aufs-make.patch
160
161# Show normal colors in menuconfig with ncurses ABI 6
162Patch250: kernel-fix_256colors_menuconfig.patch
163
164# https://rt.wiki.kernel.org/
165# https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/patch-4.9.6-rt4.patch.xz
166Patch500: kernel-rt.patch
167
168Patch2000: kernel-small_fixes.patch
169Patch2001: kernel-pwc-uncompress.patch
170
171# for rescuecd
172# based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
173Patch7000: kernel-inittmpfs.patch
174
175# ARM only
176Patch8000: rpi-sound.patch
177Patch8001: kernel-pinebook-pro.patch
178Patch8002: atheros-disallow-retrain-nongen1-pcie.patch
179Patch8004: ath-regd.patch
180Patch8005: rkvdec-hevc.patch
181
182URL: https://www.kernel.org/
183AutoReqProv: no
184BuildRequires: /sbin/depmod
185BuildRequires: bc >= 1.06.95
186BuildRequires: binutils >= 3:2.23
187BuildRequires: bison >= 2.0
188%ifarch sparc sparc64
189BuildRequires: elftoaout
190%endif
191BuildRequires: elfutils-devel
192BuildRequires: flex >= 2.5.35
193BuildRequires: gcc >= 6:7.2.0-6
194BuildRequires: gcc-c++
195BuildRequires: gcc-plugin-devel
196BuildRequires: hostname
197BuildRequires: kmod >= %{kmod_ver}
198BuildRequires: libstdc++-devel
199BuildRequires: make >= 1:3.81
200BuildRequires: openssl-devel >= 1.0.0
201BuildRequires: openssl-tools >= 1.0.0
202BuildRequires: perl-base >= 5
203BuildRequires: rpm-build >= 4.5-24
204BuildRequires: rpmbuild(macros) >= 2.019
205BuildRequires: tar >= 1:1.22
206%ifarch ppc
207BuildRequires: uboot-mkimage
208%endif
209BuildRequires: xz >= 1:4.999.7
210BuildConflicts: dwarves < 1.16
211Requires(post): coreutils
212Requires(post): geninitrd >= 12787-6
213Requires(post): kmod >= %{kmod_ver}
214Requires: /sbin/depmod
215Requires: coreutils
216Requires: geninitrd >= 12787-6
217Requires: kmod >= %{kmod_ver}
218%if %{with pae}
219%ifarch i686 athlon pentium3 pentium4
220Requires: cpuinfo(pae)
221%endif
222%endif
223Suggests: dracut
224Suggests: keyutils
225Suggests: linux-firmware
226Provides: %{name}(netfilter) = 20070806
227Provides: %{name}(vermagic) = %{kernel_release}
228Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100 < 0.9.0
229Obsoletes: kernel%{_alt_kernel}-char-lirc-it87 < 0.9.0
230Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709 < 0.9.0
231Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb < 0.9.0
232Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap < 0.9.0
233Obsoletes: kernel%{_alt_kernel}-isdn-mISDN < 2.0.35
234Obsoletes: kernel-firmware < 3:2.6.33
235Obsoletes: kernel-misc-acer_acpi < 0.3-2
236Obsoletes: kernel-misc-fuse < 2.8.5-2
237Obsoletes: kernel-misc-uvc < 0.215.1-10
238Obsoletes: kernel-modules < 2.2.2-2
239Obsoletes: kernel-net-ar81 < 1.0.1.0-3
240Obsoletes: kernel-net-hostap < 0.4.7-2
241Obsoletes: kernel-net-ieee80211 < 1.2.18-7
242Obsoletes: kernel-net-ipp2p < 0.8.2.-17
243Obsoletes: kernel-net-rt61 < 1.1.0-2.2007122707.13
244Obsoletes: kernel-smp < 3:2.6.21
245Conflicts: e2fsprogs < 1.29
246Conflicts: isdn4k-utils < 3.1pre1
247Conflicts: jfsutils < 1.1.3
248Conflicts: libcap-libs < 1:2.34
249Conflicts: libusb < 1.0.9
250Conflicts: linux-firmware < 20120720
251Conflicts: lvm2 < 2.02.40
252Conflicts: module-init-tools < 3.16
253Conflicts: nfs-utils < 1.0.5
254Conflicts: oprofile < 0.9
255Conflicts: ppp < 1:2.4.0
256Conflicts: procps < 3.2.0
257Conflicts: quota-tools < 3.09
258Conflicts: reiserfsprogs < 3.6.3
259Conflicts: rpm < 4.4.2-0.2
260Conflicts: udev < 1:081
261Conflicts: util-linux < 2.10o
262Conflicts: xfsprogs < 2.6.0
263%if %{with pae}
264ExclusiveArch: i686 pentium3 pentium4 athlon
265%else
266ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 alpha %{arm} ppc ppc64 sparc sparc64 aarch64
267%endif
268ExclusiveOS: Linux
269BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
270
271%define kmod_compress_cmd %{__xz}
272
273%ifarch %{ix86} %{x8664} x32
274%define target_arch_dir x86
275%endif
276%ifarch ppc ppc64
277%define target_arch_dir powerpc
278%endif
279%ifarch sparc sparc64
280%define target_arch_dir sparc
281%endif
282%ifarch aarch64
283%define target_arch_dir arm64
284%endif
285%ifnarch %{ix86} %{x8664} x32 ppc ppc64 sparc sparc64 aarch64
286%define target_arch_dir %{_target_base_arch}
287%endif
288
289%define defconfig arch/%{target_arch_dir}/defconfig
290
291# No ELF objects there to strip (skips processing 27k files)
292%define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
293%define _noautochrpath .*%{_kernelsrcdir}/.*
294%define _enable_debug_packages 0
295
296%define initrd_dir /boot
297
298%define topdir %{_builddir}/%{name}-%{version}
299%define srcdir %{topdir}/linux-%{basever}
300%define objdir %{topdir}/%{targetobj}
301%define targetobj %{_target_base_arch}-gcc-%(%{__cc} -dumpversion)
302
303%define _kernelsrcdir /usr/src/linux%{versuffix}%{_alt_kernel}-%{version}
304
305%if "%{_target_base_arch}" != "%{_host_base_arch}"
306 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
307 %define DepMod /bin/true
308
309 %if "%{_host_base_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
310 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
311 %define DepMod /sbin/depmod
312 %endif
313
314 %if "%{_host_base_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
315 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
316 %define DepMod /sbin/depmod
317 %endif
318
319 %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
320 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
321 %define DepMod /sbin/depmod
322 %endif
323
324 %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
325 %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
326 %endif
327%else
328 %ifarch ppc ppc64
329 %define CrossOpts ARCH=powerpc CC="%{__cc}"
330 %else
331 %ifarch aarch64
332 %define CrossOpts ARCH=arm64 CC="%{__cc}"
333 %else
334 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
335 %endif
336 %endif
337 %define DepMod /sbin/depmod
338%endif
339# use 64-bit offsets for fixdeps to work with 64-bit inodes
340%define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64"
341
342%define __features \
343%{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
344%{?with_nfsroot:Root on NFS - enabled}\
345%{?with_rt:CONFIG_PREEMPT_RT - enabled}\
346
347%define Features %(echo "%{__features}" | sed '/^$/d')
348
349%description
350This package contains the Linux kernel that is used to boot and run
351your system. It contains few device drivers for specific hardware.
352Most hardware is instead supported by modules loaded after booting.
353
354%{Features}
355
356%description -l de.UTF-8
357Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
358Linux-Betriebssystems. Der Kernel ist für grundliegende
359Systemfunktionen verantwortlich: Speicherreservierung,
360Prozeß-Management, Geräte Ein- und Ausgaben, usw.
361
362%{Features}
363
364%description -l fr.UTF-8
365Le package kernel contient le kernel linux (vmlinuz), la partie
366centrale d'un système d'exploitation Linux. Le noyau traite les
367fonctions basiques d'un système d'exploitation: allocation mémoire,
368allocation de process, entrée/sortie de peripheriques, etc.
369
370%{Features}
371
372%description -l pl.UTF-8
373Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
374Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
375się w komputerze, takiego jak sterowniki dysków itp.
376
377%{Features}
378
379%package vmlinux
380Summary: vmlinux - uncompressed kernel image
381Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
382Summary(pl.UTF-8): vmlinux - rozpakowany obraz jÄ…dra
383Group: Base/Kernel
384Obsoletes: kernel-smp-vmlinux < 3:2.6.21
385
386%description vmlinux
387vmlinux - uncompressed kernel image.
388
389%description vmlinux -l de.UTF-8
390vmlinux - dekompressiertes Kernel Bild.
391
392%description vmlinux -l pl.UTF-8
393vmlinux - rozpakowany obraz jÄ…dra.
394
395%package drm
396Summary: DRM kernel modules
397Summary(de.UTF-8): DRM Kernel Treiber
398Summary(pl.UTF-8): Sterowniki DRM
399Group: Base/Kernel
400Requires(postun): %{name} = %{epoch}:%{version}-%{release}
401Requires: %{name} = %{epoch}:%{version}-%{release}
402Provides: kernel(vboxvideo) = %{kernel_release}
403Obsoletes: kernel-smp-drm < 3:2.6.21
404AutoReqProv: no
405
406%description drm
407DRM kernel modules.
408
409%description drm -l de.UTF-8
410DRM Kernel Treiber.
411
412%description drm -l pl.UTF-8
413Sterowniki DRM.
414
415%package sound-alsa
416Summary: ALSA kernel modules
417Summary(de.UTF-8): ALSA Kernel Module
418Summary(pl.UTF-8): Sterowniki dźwięku ALSA
419Group: Base/Kernel
420Requires(postun): %{name} = %{epoch}:%{version}-%{release}
421Requires: %{name} = %{epoch}:%{version}-%{release}
422Obsoletes: kernel-smp-sound-alsa < 3:2.6.21
423AutoReqProv: no
424
425%description sound-alsa
426ALSA (Advanced Linux Sound Architecture) sound drivers.
427
428%description sound-alsa -l de.UTF-8
429ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
430
431%description sound-alsa -l pl.UTF-8
432Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
433
434%package headers
435Summary: Header files for the Linux kernel
436Summary(de.UTF-8): Header Dateien für den Linux-Kernel
437Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
438Group: Development/Building
439Provides: %{name}-headers(netfilter) = 20070806
440AutoReqProv: no
441
442%description headers
443These are the C header files for the Linux kernel, which define
444structures and constants that are needed when rebuilding the kernel or
445building kernel modules.
446
447%description headers -l de.UTF-8
448Dies sind die C Header Dateien für den Linux-Kernel, die definierte
449Strukturen und Konstante beinhalten, die beim rekompilieren des
450Kernels oder bei Kernel Modul kompilationen gebraucht werden.
451
452%description headers -l pl.UTF-8
453Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
454oraz budowania modułów jądra.
455
456%package module-build
457Summary: Development files for building kernel modules
458Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
459Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
460Group: Development/Building
461Requires: %{name}-headers = %{epoch}:%{version}-%{release}
462Requires: elfutils-devel
463Requires: make
464Conflicts: rpmbuild(macros) < 2.019
465AutoReqProv: no
466
467%description module-build
468Development files from kernel source tree needed to build Linux kernel
469modules from external packages.
470
471%description module-build -l de.UTF-8
472Development Dateien des Linux-Kernels die beim kompilieren externer
473Kernel Module gebraucht werden.
474
475%description module-build -l pl.UTF-8
476Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
477Linuksa z zewnętrznych pakietów.
478
479%package source
480Summary: Kernel source tree
481Summary(de.UTF-8): Der Kernel Quelltext
482Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
483Group: Development/Building
484Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
485AutoReqProv: no
486BuildArch: noarch
487
488%description source
489This is the source code for the Linux kernel. You can build a custom
490kernel that is better tuned to your particular hardware.
491
492%description source -l de.UTF-8
493Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
494Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
495C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
496im Kernel-Source definiert sind. Die Source-Dateien können auch
497benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
498Hardware ausgerichtet ist.
499
500%description source -l fr.UTF-8
501Le package pour le kernel-source contient le code source pour le noyau
502linux. Ces sources sont nécessaires pour compiler la plupart des
503programmes C, car il dépend de constantes définies dans le code
504source. Les sources peuvent être aussi utilisée pour compiler un noyau
505personnalisé pour avoir de meilleures performances sur des matériels
506particuliers.
507
508%description source -l pl.UTF-8
509Pakiet zawiera kod źródłowy jądra systemu.
510
511%package doc
512Summary: Kernel documentation
513Summary(de.UTF-8): Kernel Dokumentation
514Summary(pl.UTF-8): Dokumentacja do jÄ…dra Linuksa
515Group: Documentation
516AutoReqProv: no
517BuildArch: noarch
518
519%description doc
520This is the documentation for the Linux kernel, as found in
521/usr/src/linux/Documentation directory.
522
523%description doc -l de.UTF-8
524Dies ist die Kernel Dokumentation wie sie im 'Documentation'
525Verzeichniss vorgefunden werden kann.
526
527%description doc -l pl.UTF-8
528Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
529/usr/src/linux/Documentation.
530
531%prep
532%setup -qc
533ln -s %{SOURCE7} kernel-module-build.pl
534ln -s %{SOURCE10} Makefile
535cd linux-%{basever}
536
537%if "%{postver}" != ".0"
538%patch0 -p1
539%endif
540
541%if %{without vanilla}
542%patch2 -p1
543
544%if %{with fbcondecor}
545%patch3 -p1
546%endif
547%patch6 -p1
548
549## netfilter
550#
551
552# kernel-pom-ng-IPV4OPTSSTRIP.patch
553%patch10 -p1
554
555##
556# end of netfilter
557
558%patch55 -p1
559%patch56 -p1
560
561# kernel-rndis_host-wm5.patch
562%patch59 -p1
563
564%if %{with aufs}
565# aufs
566%patch145 -p1
567%patch147 -p1
568%endif
569
570%if %{with rescuecd}
571%patch7000 -p1
572%endif
573
574%ifarch %{arm} aarch64
575%patch8000 -p1
576%patch8001 -p1
577%patch8002 -p1
578%patch8004 -p1
579%patch8005 -p1
580%endif
581
582%if %{with rt}
583%patch500 -p1
584rm -f localversion-rt
585%endif
586
587%patch250 -p1
588
589%endif # vanilla
590
591# Small fixes:
592%patch2000 -p1
593%patch2001 -p1
594
595chmod 755 tools/objtool/sync-check.sh
596
597# Fix EXTRAVERSION in main Makefile
598sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
599
600# cleanup backups after patching
601find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
602
603find -name '*.py' -print0 | \
604 xargs -0 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
605 -e '1s,/usr/bin/env python$,%{__python},' \
606 -e '1s,/usr/bin/env python3$,%{__python3},'
607
608%{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
609 -e '1s,/usr/bin/env python$,%{__python},' \
610 -e '1s,/usr/bin/env python3$,%{__python3},' \
611 scripts/bloat-o-meter \
612 scripts/diffconfig \
613 scripts/dtc/dt-extract-compatibles \
614 scripts/jobserver-exec \
615 scripts/show_delta \
616 tools/hv/vmbus_testing \
617 tools/kvm/kvm_stat/kvm_stat \
618 tools/testing/selftests/exec/binfmt_script.py
619
620find -name '*.pl' -print0 | \
621 xargs -0 %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \
622
623%{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \
624 scripts/dtc/dt_to_config \
625 scripts/cleanfile \
626 scripts/cleanpatch \
627 scripts/documentation-file-ref-check \
628 scripts/get_dvb_firmware \
629 scripts/kernel-doc \
630 scripts/sphinx-pre-install \
631 scripts/stackdelta
632
633%{__sed} -i -e '1s,/usr/bin/env bash,%{__bash},' \
634 tools/testing/selftests/powerpc/security/mitigation-patching.sh \
635 scripts/config \
636 scripts/coccicheck
637
638%build
639install -d %{objdir}
640cat > %{targetobj}.mk <<'EOF'
641# generated by %{name}.spec
642KERNELSRC := %{srcdir}
643KERNELOUTPUT := %{objdir}
644
645SRCARCH := %{target_arch_dir}
646ARCH := %{_target_base_arch}
647Q := %{!?with_verbose:@}
648MAKE_OPTS := %{MakeOpts}
649DEFCONFIG := %{defconfig}
650EOF
651
652RescueConfig() {
653 set -x
654 # CONFIG_SOUND is not set
655 # CONFIG_AUDIT is not set
656 # CONFIG_TR is not set
657 # CONFIG_BT is not set
658 # CONFIG_VIDEO_DEV is not set
659 # CONFIG_DVB_CORE is not set
660 # CONFIG_HAMRADIO is not set
661 # CONFIG_ARCNET is not set
662 # CONFIG_DRM is not set
663 # CONFIG_WATCHDOG is not set
664 # CONFIG_INPUT_JOYSTICK is not set
665 # CONFIG_DEBUG_KERNEL is not set
666 # CONFIG_ISDN is not set
667 # CONFIG_AGP is not set
668 # CONFIG_SECURITY is not set
669 # CONFIG_PARIDE is not set
670 # CONFIG_CPU_FREQ is not set
671 # CONFIG_GAMEPORT is not set
672 # CONFIG_KVM is not set
673 # CONFIG_PHONE is not set
674 # CONFIG_STRICT_DEVMEM is not set
675 # CONFIG_IMA is not set
676 # CONFIG_MEDIA_SUPPORT is not set
677 # CONFIG_UWB is not set
678 # CONFIG_PWM is not set
679 # CONFIG_COMEDI_NI_LABPC_ISA is not set
680 # CONFIG_FB_SYS_FILLRECT is not set
681 # CONFIG_FB_SYS_COPYAREA is not set
682 # CONFIG_FB_SYS_IMAGEBLIT is not set
683 # CONFIG_FB_SYS_FOPS is not set
684 # CONFIG_FB_HECUBA is not set
685 # CONFIG_FB_SVGALIB is not set
686 # CONFIG_FB_CIRRUS is not set
687 # CONFIG_FB_PM2 is not set
688 # CONFIG_FB_CYBER2000 is not set
689 # CONFIG_FB_ARC is not set
690 # CONFIG_FB_ASILIANT is not set
691 # CONFIG_FB_IMSTT is not set
692 # CONFIG_FB_VGA16 is not set
693 # CONFIG_FB_UVESA is not set
694 # CONFIG_FB_N411 is not set
695 # CONFIG_FB_HGA is not set
696 # CONFIG_FB_S1D13XXX is not set
697 # CONFIG_FB_NVIDIA is not set
698 # CONFIG_FB_RIVA is not set
699 # CONFIG_FB_I740 is not set
700 # CONFIG_FB_LE80578 is not set
701 # CONFIG_FB_CARILLO_RANCH is not set
702 # CONFIG_FB_MATROX is not set
703 # CONFIG_FB_RADEON is not set
704 # CONFIG_FB_ATY128 is not set
705 # CONFIG_FB_ATY is not set
706 # CONFIG_FB_S3 is not set
707 # CONFIG_FB_SAVAGE is not set
708 # CONFIG_FB_SIS is not set
709 # CONFIG_FB_VIA is not set
710 # CONFIG_FB_NEOMAGIC is not set
711 # CONFIG_FB_KYRO is not set
712 # CONFIG_FB_3DFX is not set
713 # CONFIG_FB_VOODOO1 is not set
714 # CONFIG_FB_VT8623 is not set
715 # CONFIG_FB_TRIDENT is not set
716 # CONFIG_FB_ARK is not set
717 # CONFIG_FB_PM3 is not set
718 # CONFIG_FB_CARMINE is not set
719 # CONFIG_FB_GEODE is not set
720 # CONFIG_FB_TMIO is not set
721 # CONFIG_FB_SM501 is not set
722 # CONFIG_FB_SMSCUFX is not set
723 # CONFIG_FB_UDL is not set
724 # CONFIG_FB_GOLDFISH is not set
725 # CONFIG_XEN_FBDEV_FRONTEND is not set
726 # CONFIG_FB_METRONOME is not set
727 # CONFIG_FB_MB862XX is not set
728 # CONFIG_FB_BROADSHEET is not set
729 # CONFIG_FB_AUO_K190X is not set
730 # CONFIG_FB_AUO_K1900 is not set
731 # CONFIG_FB_AUO_K1901 is not set
732 # CONFIG_FB_HYPERV is not set
733 CONFIG_AUFS=y
734 CONFIG_AUFS_FS=y
735 CONFIG_AUFS_BR_RAMFS=y
736 CONFIG_AUFS_RDU=y
737 CONFIG_BLK_DEV_LOOP=y
738 CONFIG_ISO9660_FS=y
739 CONFIG_NLS_UTF8=y
740 CONFIG_SQUASHFS=y
741 CONFIG_FB=y
742 CONFIG_FB_EFI=y
743 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
744EOCONFIG
745
746 return 0
747}
748
749BuildConfig() {
750 %{?debug:set -x}
751 set -e
752
753 Config="kernel-%{target_arch_dir}.config"
754 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
755
756 # prepare local and important options
757 cat <<-EOCONFIG > important.config
758 LOCALVERSION="-%{localversion}"
759
760%if 0%{?debug:1}
761 CONFIG_DEBUG_PREEMPT=y
762 CONFIG_RT_DEADLOCK_DETECT=y
763%else
764 CONFIG_DEBUG_PREEMPT=n
765%endif
766
767%if %{without ipv6}
768 CONFIG_IPV6=n
769%endif
770
771%ifarch i686 athlon pentium3 pentium4
772 %if %{with pae}
773 CONFIG_HIGHMEM4G=n
774 CONFIG_HIGHMEM64G=y
775 CONFIG_X86_PAE=y
776 CONFIG_NUMA=n
777 %else
778 CONFIG_X86_PAE=n
779 %endif
780%endif
781
782%if %{with fbcondecor}
783 CONFIG_FB_S3=n
784 CONFIG_FB_VT8623=n
785 CONFIG_FB_ARK=n
786 CONFIG_FB_TILEBLITTING=n
787 CONFIG_FB_CON_DECOR=y
788%endif
789
790%if %{with nfsroot}
791 CONFIG_NFS_FS=y
792 CONFIG_ROOT_NFS=y
793%endif
794
795%ifarch x32
796 CONFIG_BPF_PRELOAD=n
797%endif
798%if %{_ver_ge %(rpm -q --qf='%%{VERSION}' gcc) 12}
799 CONFIG_INIT_STACK_ALL_ZERO=y
800 CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=n
801%else
802 CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
803%endif
804EOCONFIG
805
806%if %{with rescuecd}
807 RescueConfig rescue.config
808%endif
809 # prepare kernel-style config file from multiple config files
810 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
811%if %{with myown}
812 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
813%endif
814 important.config \
815%if %{without vanilla}
816%if %{with rescuecd}
817 %{SOURCE58} \
818 rescue.config \
819%endif
820 \
821%if %{with rt}
822 %{SOURCE44} \
823%endif
824 %{SOURCE41} %{?0:patches} \
825%endif
826 %{SOURCE20} \
827 $RPM_SOURCE_DIR/$Config
828}
829
830cd %{objdir}
831install -d arch/%{target_arch_dir}
832BuildConfig > %{defconfig}
833ln -sf %{defconfig} .config
834cd -
835
836%{__make} \
837 TARGETOBJ=%{targetobj} \
838 %{?with_verbose:V=1} \
839 oldconfig
840
841%{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
842
843%{__make} \
844 TARGETOBJ=%{targetobj} \
845 %{?with_verbose:V=1} \
846 scripts
847
848# build kernel
849export DTC_FLAGS=-@
850ICECC_EXTRAFILES="${ICECC_EXTRAFILES:+$ICECC_EXTRAFILES:}$(test -d %{objdir}/scripts/gcc-plugins && find %{objdir}/scripts/gcc-plugins -name '*.so' | paste -s -d :)"
851%{__make} \
852 TARGETOBJ=%{targetobj} \
853 %{?with_verbose:V=1} \
854 all
855
856%install
857rm -rf $RPM_BUILD_ROOT
858%{__make} %{MakeOpts} %{!?with_verbose:-s} modules_install \
859 -C %{objdir} \
860 %{?with_verbose:V=1} \
861 DEPMOD=%{DepMod} \
862 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
863 INSTALL_MOD_STRIP="--strip-debug --remove-section=.comment --remove-section=.note.GNU-stack" \
864 KERNELRELEASE=%{kernel_release}
865
866%ifarch %{arm} aarch64
867export DTC_FLAGS=-@
868%{__make} %{MakeOpts} %{!?with_verbose:-s} dtbs_install \
869 -C %{objdir} \
870 %{?with_verbose:V=1} \
871 INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/boot/dtb-%{kernel_release}
872%endif
873
874install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
875
876# create directories which may be missing, to simplyfy %files
877install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
878
879# rpm obeys filelinkto checks for ghosted symlinks, convert to files
880rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
881touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
882
883# no point embed content for %ghost files. empty them
884for a in \
885 dep{,.bin} \
886 alias{,.bin} \
887 devname \
888 softdep \
889 symbols{,.bin} \
890; do
891 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
892 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
893done
894
895# /boot
896install -d $RPM_BUILD_ROOT/boot
897cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
898cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
899%ifarch %{ix86} %{x8664} x32
900 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
901 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
902%endif
903%ifarch ppc ppc64
904 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
905 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
906%endif
907%ifarch alpha sparc sparc64
908 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
909 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
910 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
911 %ifarch sparc
912 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
913 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
914 %endif
915 %ifarch sparc64
916 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
917 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
918 %endif
919%endif
920%ifarch %{arm}
921 install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
922%endif
923%ifarch aarch64
924 cp -a %{objdir}/arch/%{target_arch_dir}/boot/Image.gz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
925%endif
926
927# ghosted initrd
928touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
929touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
930
931%if "%{_target_base_arch}" != "%{_host_base_arch}"
932touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
933%endif
934
935# /etc/depmod.d /etc/modrobe.d
936install -d $RPM_BUILD_ROOT%{_sysconfdir}/{depmod.d,modprobe.d}/%{kernel_release}
937
938install -d $RPM_BUILD_ROOT/etc/sysconfig
939install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
940
941# /usr/src/linux
942install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
943
944# test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
945if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
946 l=l
947 rm -f $RPM_BUILD_ROOT/COPYING
948fi
949
950cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
951cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
952cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
953cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
954# copy arch/x86/include/generated
955for dir in $(cd %{objdir} && find arch -name generated -type d); do
956 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
957 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
958done
959
960%ifarch %{x8664} x32
961# Needed for CONFIG_STACK_VALIDATION / ORC_UNWINDER enabled builds
962install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool
963cp -a %{objdir}/tools/objtool/fixdep $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool
964cp -a %{objdir}/tools/objtool/objtool $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool
965%endif
966
967# version.h location changed in 3.7, but a lot of external modules don't know about it
968# add a compatibility symlink
969ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
970
971# disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
972%{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
973
974# collect module-build files and directories
975# Usage: kernel-module-build.pl $rpmdir $fileoutdir
976fileoutdir=$(pwd)
977cd $RPM_BUILD_ROOT%{_kernelsrcdir}
978%{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
979cd -
980
981for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
982 ff=${f##%{objdir}/}
983 if [ -x "$f" ]; then
984 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
985 else
986 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
987 fi
988 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
989 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
990done
991
992%if %{with doc}
993# move to %{_docdir} so we wouldn't depend on any kernel package for dirs
994install -d $RPM_BUILD_ROOT%{_docdir}
995mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
996
997%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
998%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
999%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1000%else
1001%{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
1002%endif
1003
1004%clean
1005rm -rf $RPM_BUILD_ROOT
1006
1007%preun
1008if [ -x /sbin/new-kernel-pkg ]; then
1009 /sbin/new-kernel-pkg --remove %{kernel_release}
1010fi
1011
1012%post
1013[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1014if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1015 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1016 mv -f /boot/System.map{,.old} 2> /dev/null
1017 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1018 ln -sf System.map-%{kernel_release} /boot/System.map
1019%ifarch %{arm} aarch64
1020 test -L /boot/dtb.old && rm /boot/dtb.old
1021 test ! -e /boot/dtb.old && mv -f /boot/dtb{,.old} 2> /dev/null
1022 ln -sf dtb-%{kernel_release} /boot/dtb
1023%endif
1024%if 0%{?alt_kernel:1}
1025 mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1026 mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
1027 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}
1028 ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
1029%ifarch %{arm} aarch64
1030 test -L /boot/dtb%{_alt_kernel}.old && rm /boot/dtb%{_alt_kernel}.old
1031 test ! -e /boot/dtb%{_alt_kernel}.old && mv -f /boot/dtb%{_alt_kernel}{,.old} 2> /dev/null
1032 ln -sf dtb-%{kernel_release} /boot/dtb%{_alt_kernel}
1033%endif
1034%endif
1035fi
1036
1037%depmod %{kernel_release}
1038
1039%posttrans
1040# use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
1041[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1042initrd_file=""
1043if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
1044 /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release} || :
1045 initrd_file="initrd-%{kernel_release}.gz"
1046fi
1047
1048# if dracut is present then generate full-featured initramfs
1049if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
1050 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
1051 [ -n "$initrd_file" ] || initrd_file="initramfs-%{kernel_release}.img"
1052fi
1053
1054if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1055 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1056 if [ -n "$initrd_file" ] ; then
1057 ln -sf "$initrd_file" %{initrd_dir}/initrd
1058 fi
1059%if 0%{?alt_kernel:1}
1060 mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
1061 if [ -n "$initrd_file" ] ; then
1062 ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
1063 fi
1064%endif
1065fi
1066
1067# update boot loaders when old package files are gone from filesystem
1068if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1069 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1070 /sbin/update-grub >/dev/null
1071 fi
1072fi
1073if [ -x /sbin/new-kernel-pkg ]; then
1074 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/$initrd_file --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1075fi
1076if [ -x /sbin/rc-boot ]; then
1077 /sbin/rc-boot 1>&2 || :
1078fi
1079if [ -x /sbin/efi-boot-update ]; then
1080 /sbin/efi-boot-update --auto || :
1081fi
1082
1083%post vmlinux
1084[ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1085if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1086 mv -f /boot/vmlinux{,.old} 2> /dev/null
1087 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1088%if 0%{?alt_kernel:1}
1089 mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
1090 ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
1091%endif
1092fi
1093
1094%post drm
1095%depmod %{kernel_release}
1096
1097%postun drm
1098%depmod %{kernel_release}
1099
1100%post sound-alsa
1101%depmod %{kernel_release}
1102
1103%postun sound-alsa
1104%depmod %{kernel_release}
1105
1106%post headers
1107ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1108
1109%postun headers
1110if [ "$1" = "0" ]; then
1111 if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
1112 if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
1113 rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1114 fi
1115 fi
1116fi
1117
1118%triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1119ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1120ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1121
1122%triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1123if [ "$1" = 0 ]; then
1124 rm -f /lib/modules/%{kernel_release}/{build,source}
1125fi
1126
1127%files
1128%defattr(644,root,root,755)
1129%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
1130%ifarch sparc sparc64
1131/boot/vmlinux.aout-%{kernel_release}
1132%endif
1133%ifarch %{arm} aarch64
1134/boot/dtb-%{kernel_release}
1135%endif
1136/boot/vmlinuz-%{kernel_release}
1137/boot/System.map-%{kernel_release}
1138/boot/config-%{kernel_release}
1139%ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1140%ghost %{initrd_dir}/initramfs-%{kernel_release}.img
1141
1142%dir /lib/modules/%{kernel_release}
1143%dir /lib/modules/%{kernel_release}/kernel
1144/lib/modules/%{kernel_release}/kernel/arch
1145/lib/modules/%{kernel_release}/kernel/block
1146/lib/modules/%{kernel_release}/kernel/crypto
1147/lib/modules/%{kernel_release}/kernel/drivers
1148%if %{have_drm}
1149%exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1150%endif
1151/lib/modules/%{kernel_release}/kernel/fs
1152/lib/modules/%{kernel_release}/kernel/kernel
1153/lib/modules/%{kernel_release}/kernel/lib
1154/lib/modules/%{kernel_release}/kernel/net
1155/lib/modules/%{kernel_release}/kernel/mm
1156%if %{have_sound}
1157%dir /lib/modules/%{kernel_release}/kernel/sound
1158/lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1159/lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1160%ifnarch sparc
1161%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1162%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1163%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
1164%exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/legacy/g_midi.ko*
1165%endif
1166%ifarch %{arm}
1167%exclude /lib/modules/%{kernel_release}/kernel/drivers/staging/vc04_services/bcm2835-audio
1168%endif
1169%endif
1170%dir /lib/modules/%{kernel_release}/misc
1171%if %{with myown}
1172/lib/modules/%{kernel_release}/kernel/sound
1173%endif
1174/lib/modules/%{kernel_release}/kernel/security
1175%ifarch %{ix86} %{x8664} x32
1176/lib/modules/%{kernel_release}/kernel/virt
1177%endif
1178
1179%dir %{_sysconfdir}/depmod.d/%{kernel_release}
1180%dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1181
1182# provided by build
1183/lib/modules/%{kernel_release}/modules.order
1184/lib/modules/%{kernel_release}/modules.builtin*
1185
1186# rest modules.* are ghost (regenerated by post depmod -a invocation)
1187%ghost /lib/modules/%{kernel_release}/modules.alias
1188%ghost /lib/modules/%{kernel_release}/modules.alias.bin
1189%ghost /lib/modules/%{kernel_release}/modules.dep
1190%ghost /lib/modules/%{kernel_release}/modules.dep.bin
1191%ghost /lib/modules/%{kernel_release}/modules.devname
1192%ghost /lib/modules/%{kernel_release}/modules.softdep
1193%ghost /lib/modules/%{kernel_release}/modules.symbols
1194%ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1195
1196# symlinks pointing to kernelsrcdir
1197%ghost /lib/modules/%{kernel_release}/build
1198%ghost /lib/modules/%{kernel_release}/source
1199
1200%ifarch alpha %{ix86} %{x8664} x32 ppc ppc64 sparc sparc64
1201%files vmlinux
1202%defattr(644,root,root,755)
1203/boot/vmlinux-%{kernel_release}
1204%endif
1205
1206%if %{have_drm}
1207%files drm
1208%defattr(644,root,root,755)
1209/lib/modules/%{kernel_release}/kernel/drivers/gpu
1210%endif
1211
1212%if %{have_sound}
1213%files sound-alsa
1214%defattr(644,root,root,755)
1215/lib/modules/%{kernel_release}/kernel/sound
1216%exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1217%exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1218%exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1219%ifnarch sparc
1220/lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/legacy/g_midi.ko*
1221/lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1222/lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1223/lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
1224%endif
1225%ifarch %{arm}
1226/lib/modules/%{kernel_release}/kernel/drivers/staging/vc04_services/bcm2835-audio
1227%endif
1228%endif
1229
1230%files headers -f files.headers_exclude_kbuild
1231%defattr(644,root,root,755)
1232%dir %{_kernelsrcdir}
1233%{_kernelsrcdir}/include
1234%dir %{_kernelsrcdir}/arch
1235%dir %{_kernelsrcdir}/arch/[!K]*
1236%{_kernelsrcdir}/arch/*/include
1237%dir %{_kernelsrcdir}/security
1238%dir %{_kernelsrcdir}/security/selinux
1239%{_kernelsrcdir}/security/selinux/include
1240%dir %{_kernelsrcdir}/tools
1241%{_kernelsrcdir}/tools/include
1242%dir %{_kernelsrcdir}/usr
1243%dir %{_kernelsrcdir}/usr/include
1244%{_kernelsrcdir}/.config
1245%{_kernelsrcdir}/Module.symvers
1246
1247%files module-build -f files.mb_include_modulebuild_and_dirs
1248%defattr(644,root,root,755)
1249%ifarch ppc ppc64
1250%{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1251%endif
1252%exclude %dir %{_kernelsrcdir}/arch/um
1253%{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1254%{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
1255%{_kernelsrcdir}/kernel/bounds.c
1256%{_kernelsrcdir}/scripts/basic/*.c
1257%attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1258%{_kernelsrcdir}/scripts/kconfig/*.pl
1259%{_kernelsrcdir}/scripts/kconfig/*.glade
1260%{_kernelsrcdir}/scripts/kconfig/*.cc
1261%{_kernelsrcdir}/scripts/kconfig/*.y
1262%{_kernelsrcdir}/scripts/kconfig/*.l
1263%{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1264%{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1265%{_kernelsrcdir}/scripts/kconfig/l*.h
1266%{_kernelsrcdir}/scripts/kconfig/[m-o]*.c
1267%{_kernelsrcdir}/scripts/kconfig/[m-o]*.h
1268%{_kernelsrcdir}/scripts/kconfig/preprocess.c
1269%{_kernelsrcdir}/scripts/kconfig/[q-u]*.c
1270%{_kernelsrcdir}/scripts/kconfig/[q-u]*.h
1271%{_kernelsrcdir}/scripts/kconfig/lxdialog
1272%{_kernelsrcdir}/scripts/mod/*.c
1273%{_kernelsrcdir}/scripts/mod/modpost.h
1274%attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1275%attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1276%{_kernelsrcdir}/scripts/subarch.include
1277%{_kernelsrcdir}/scripts/*.c
1278%{_kernelsrcdir}/scripts/*.h
1279%attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1280%{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1281%{_kernelsrcdir}/scripts/selinux/mdp/*.c
1282%exclude %dir %{_kernelsrcdir}/security
1283%exclude %dir %{_kernelsrcdir}/security/selinux
1284%ifarch %{x8664} x32
1285%attr(755,root,root) %{_kernelsrcdir}/tools/objtool/fixdep
1286%attr(755,root,root) %{_kernelsrcdir}/tools/objtool/objtool
1287%endif
1288
1289%if %{with doc}
1290%files doc
1291%defattr(644,root,root,755)
1292%dir %{_docdir}/%{name}-%{version}
1293
1294%{_docdir}/%{name}-%{version}/[!jkz]*
1295%{_docdir}/%{name}-%{version}/kbuild
1296%{_docdir}/%{name}-%{version}/kernel-hacking
1297%endif
1298
1299%if %{with source}
1300%files source -f files.source_exclude_modulebuild_and_dirs
1301%defattr(644,root,root,755)
1302%{_kernelsrcdir}/arch/*/[!Mik]*
1303%{_kernelsrcdir}/arch/*/kernel/[!M]*
1304%{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1305%{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1306%{_kernelsrcdir}/arch/m68k/install.sh
1307%{_kernelsrcdir}/arch/parisc/install.sh
1308%{_kernelsrcdir}/arch/x86/ia32/[!M]*
1309%{_kernelsrcdir}/arch/powerpc/kexec
1310%{_kernelsrcdir}/arch/powerpc/kvm
1311%{_kernelsrcdir}/arch/riscv/kvm
1312%ifarch ppc ppc64
1313%exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1314%endif
1315%{_kernelsrcdir}/arch/arm64/kvm
1316%{_kernelsrcdir}/arch/loongarch/kvm
1317%{_kernelsrcdir}/arch/mips/kvm
1318%{_kernelsrcdir}/arch/s390/kvm
1319%{_kernelsrcdir}/arch/x86/kvm
1320%exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1321%exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
1322%{_kernelsrcdir}/block
1323%{_kernelsrcdir}/certs
1324%{_kernelsrcdir}/crypto
1325%{_kernelsrcdir}/drivers
1326%{_kernelsrcdir}/fs
1327%{_kernelsrcdir}/init
1328%{_kernelsrcdir}/io_uring
1329%{_kernelsrcdir}/ipc
1330%{_kernelsrcdir}/kernel
1331%exclude %{_kernelsrcdir}/kernel/bounds.c
1332%{_kernelsrcdir}/lib
1333%{_kernelsrcdir}/mm
1334%{_kernelsrcdir}/net
1335%{_kernelsrcdir}/virt
1336%{_kernelsrcdir}/rust
1337%{_kernelsrcdir}/samples
1338%{_kernelsrcdir}/scripts/*
1339%exclude %{_kernelsrcdir}/scripts/Kbuild.include
1340%exclude %{_kernelsrcdir}/scripts/Makefile*
1341%exclude %{_kernelsrcdir}/scripts/basic
1342%exclude %{_kernelsrcdir}/scripts/kconfig
1343%exclude %{_kernelsrcdir}/scripts/mkcompile_h
1344%exclude %{_kernelsrcdir}/scripts/mod
1345%exclude %{_kernelsrcdir}/scripts/setlocalversion
1346%exclude %{_kernelsrcdir}/scripts/subarch.include
1347%exclude %{_kernelsrcdir}/scripts/*.c
1348%exclude %{_kernelsrcdir}/scripts/*.h
1349%exclude %{_kernelsrcdir}/scripts/*.sh
1350%exclude %dir %{_kernelsrcdir}/scripts/selinux
1351%exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1352%exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1353%exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1354%exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1355%exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1356%exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1357%exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1358%{_kernelsrcdir}/sound
1359%{_kernelsrcdir}/security
1360%exclude %{_kernelsrcdir}/security/selinux/include
1361%{_kernelsrcdir}/tools/*
1362%exclude %{_kernelsrcdir}/tools/include
1363%ifarch %{x8664} x32
1364%exclude %{_kernelsrcdir}/tools/objtool/fixdep
1365%exclude %{_kernelsrcdir}/tools/objtool/objtool
1366%endif
1367%{_kernelsrcdir}/usr
1368%{_kernelsrcdir}/COPYING
1369%{_kernelsrcdir}/CREDITS
1370%{_kernelsrcdir}/MAINTAINERS
1371%{_kernelsrcdir}/README
1372%endif
This page took 0.039345 seconds and 4 git commands to generate.