/[packages]/backports/8/kernel/current/SPECS/kernel.spec
ViewVC logotype

Contents of /backports/8/kernel/current/SPECS/kernel.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1892788 - (show annotations) (download)
Tue Sep 27 13:15:20 2022 UTC (8 months ago) by tmb
File size: 54960 byte(s)
- ACPI: processor idle: Practically limit "Dummy wait"  workaround to
  old Intel systems


1 # -*- Mode: rpm-spec -*-
2 #
3 # This Specfile is based on kernel-tmb spec done by
4 # Thomas Backlund <tmb@mandriva.org>
5 #
6 # The mkflavour() macroization done by Anssi Hannula <anssi@mandriva.org>
7 #
8 # ----------------------------------------------------------------------------
9 # Consult this page for extra docs:
10 #
11 # https://wiki.mageia.org/en/Kernel_update_workflow
12 #
13 # (feel free to adjust the wiki-page when adding or removing features
14 # to the spec file).
15 #
16 # After building a new kernel, remember to push:
17 #
18 # kmod-virtualbox
19 # kmod-vboxadditions
20 # kmod-xtables-addons
21 # drakx-installer-images (both core and nonfree)
22 # ----------------------------------------------------------------------------
23 #
24 # Aarch64 still has problems with multithreaded rpmbuild 4.15-rc
25 %if 0%{?mageia} >= 8
26 %ifarch aarch64
27 %global _smp_nthreads_max 1
28 %endif
29 %endif
30
31 #
32 # Mageia kernels use kernel.org versioning
33 #
34 %define kernelversion 5
35 # WARNING: when patchlevel is bumped, please update drakx/kernel/list_modules.pm for new modules!!!
36 %define patchlevel 19
37 # sublevel is now used for -stable patches
38 %define sublevel 11
39
40 # Package release
41 %define mgarel 1
42
43 # kernel Makefile extraversion is substituted by
44 # rcX which are either 0 (empty), X (as in rcX)
45 %define rcX 0
46
47 # kernel base name (also name of srpm)
48 %define kname kernel
49
50 # Patch tarball tag
51 %define ktag mga
52
53 %define rpmtag %{distsuffix}%{mgaver}
54 %if %{rcX}
55 %define rpmrel %mkrel 0.rc%{rcX}.%{mgarel}
56 %else
57 %define rpmrel %mkrel %{mgarel}
58 %endif
59
60 # fakerel and fakever never change, they are used to fool
61 # rpm/urpmi/smart and ensure the kernels are installed,
62 # not upgraded so old kernel is not overwritten or removed
63 %define fakever 1
64 %define fakerel %mkrel 1
65
66 # version defines
67 %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
68 %define kverrel %{kversion}-%{rpmrel}
69
70 # When we are using a rcX patch, the tarball is a sublevel -1
71 %if %{rcX}
72 %if %sublevel
73 %define tar_ver %{kernelversion}.%{patchlevel}
74 %else
75 %define tar_ver %{kernelversion}.%(expr %{patchlevel} - 1)
76 %endif
77 %else
78 %define tar_ver %{kernelversion}.%{patchlevel}
79 %endif
80
81 # Used for not making too long names for rpms or search paths
82 %if %rcX
83 %define buildrpmrel 0.rc%{rcX}.%{mgarel}%{rpmtag}
84 %else
85 %define buildrpmrel %{mgarel}%{rpmtag}
86 %endif
87 %define buildrel %{kversion}-%{buildrpmrel}
88
89 # libbpf major
90 %define bpfmajor 1
91
92 # Having different top level names for packges means that you have to remove
93 # them by hard :(
94 %define top_dir_name %{kname}-%{_arch}
95
96 %define build_dir ${RPM_BUILD_DIR}/%{top_dir_name}
97 %define src_dir %{build_dir}/linux-%{tar_ver}
98
99 # Disable useless debug rpms...
100 %global _enable_debug_packages %{nil}
101 %global debug_package %{nil}
102 %global __debug_package %{nil}
103 %global __debug_install_post %{nil}
104 %global _build_id_links none
105
106 # no bytecompiling wanted as it breaks build on selftests we dont even ship
107 # for older buildsystems
108 %global _python_bytecompile_build 0
109 # for systems with >= rpm-mageia-setup-2.29-1.mga7
110 %global __brp_python_bytecompile %nil
111
112 # Build defines
113 %define build_doc 1
114 %define build_uheaders 1
115 %define build_source 1
116 %define build_devel 1
117
118 %define build_debug 0
119
120 # Build desktop i586 / 4GB
121 %ifarch %{ix86}
122 %define build_desktop586 1
123 %endif
124
125 # Build desktop (i686 / 64GB) / x86_64 / arm / aarch64
126 %define build_desktop 1
127
128 # Build server (i686 / 64GB)/x86_64 / aarch64
129 %ifnarch %{arm}
130 %define build_server 1
131 %else
132 %define build_server 0
133 %endif
134
135 # build cpupower
136 %ifnarch %{arm} aarch64
137 %define build_cpupower 1
138 %else
139 %define build_cpupower 0
140 %endif
141
142 # build perf
143 %define build_perf 1
144
145 # bpf
146 %define build_bpftool 1
147 %define build_libbpf 1
148
149 # compress modules with xz
150 %ifnarch %{arm}
151 %define build_modxz 1
152 %else
153 %define build_modxz 0
154 %endif
155 # End of user definitions
156
157 # buildtime override flags
158 %{?_without_desktop586: %global build_desktop586 0}
159 %{?_without_desktop: %global build_desktop 0}
160 %{?_without_server: %global build_server 0}
161 %{?_without_doc: %global build_doc 0}
162 %{?_without_uheaders: %global build_uheaders 0}
163 %{?_without_source: %global build_source 0}
164 %{?_without_devel: %global build_devel 0}
165 %{?_without_debug: %global build_debug 0}
166 %{?_without_perf: %global build_perf 0}
167 %{?_without_cpupower: %global build_cpupower 0}
168 %{?_without_bpftool: %global build_bpftool 0}
169 %{?_without_libbpf: %global build_libbpf 0}
170 %{?_without_modxz: %global build_modxz 0}
171
172 %{?_with_desktop586: %global build_desktop586 1}
173 %{?_with_desktop: %global build_desktop 1}
174 %{?_with_server: %global build_server 1}
175 %{?_with_doc: %global build_doc 1}
176 %{?_with_uheaders: %global build_uheaders 1}
177 %{?_with_source: %global build_source 1}
178 %{?_with_devel: %global build_devel 1}
179 %{?_with_debug: %global build_debug 1}
180 %{?_with_perf: %global build_perf 1}
181 %{?_with_cpupower: %global build_cpupower 1}
182 %{?_with_bpftool: %global build_bpftool 1}
183 %{?_with_libbpf: %global build_libbpf 1}
184 %{?_with_modxz: %global build_modxz 1}
185
186 # For the .nosrc.rpm
187 %define build_nosrc 0
188 %{?_with_nosrc: %global build_nosrc 1}
189
190 %if %(if [ -z "$CC" ] ; then echo 0; else echo 1; fi)
191 %define kmake %make_build CC="$CC"
192 %else
193 %define kmake %make_build
194 %endif
195 # there are places where parallel make don't work
196 %define smake make
197
198 # Parallelize xargs invocations on smp machines
199 %define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\
200 && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
201 [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS")
202
203 # arm(64) arch matching
204 %define target_arch %(echo %{_arch} | sed -e 's/arm.*/arm/' -e 's/aarch64/arm64/')
205
206
207 #
208 # SRC RPM description
209 #
210 Summary: Linux kernel built for Mageia
211 Name: %{kname}
212 Version: %{kversion}
213 Release: %{rpmrel}
214 License: GPLv2
215 Group: System/Kernel and hardware
216 ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
217 ExclusiveOS: Linux
218 URL: https://www.kernel.org/
219
220 ####################################################################
221 #
222 # Sources
223 #
224 ### This is for full SRC RPM
225 Source0: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.xz
226 Source1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.sign
227 ### This is for stripped SRC RPM
228 %if %build_nosrc
229 NoSource: 0
230 %endif
231 # This is for disabling *config, mrproper, prepare, scripts on -devel rpms
232 Source2: disable-mrproper-in-devel-rpms.patch
233
234 Source4: README.kernel-sources
235
236 # for creating stable queue patchlist
237 Source5: generate-patchlist.sh
238
239 # copy to patched source tree along with the defconfigs and run it
240 Source10: defconfig-updater.sh
241 Source09: defconfig-updater-simple.sh
242 # x86_64 defconfigs
243 Source11: defconfig-x86_64-desktop
244 Source12: defconfig-x86_64-server
245 # i386 defconfigs
246 Source13: defconfig-i386-desktop586
247 Source14: defconfig-i386-desktop
248 Source15: defconfig-i386-server
249 # arm64 defconfigs
250 Source16: defconfig-arm64-desktop
251 Source17: defconfig-arm64-server
252 # arm defconfigs
253 Source18: defconfig-arm-desktop
254
255 # config and systemd service file from fedora
256 Source50: cpupower.service
257 Source51: cpupower.config
258
259 ####################################################################
260 #
261 # Patches
262
263 #
264 # Patch0 to Patch10 are for core kernel upgrades.
265 #
266
267 %if %sublevel
268 Patch1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kernelversion}.%{patchlevel}.%{sublevel}.xz
269 %endif
270 %if %{rcX}
271 # (tmb) Created with:
272 # wget https://git.kernel.org/torvalds/p/v5.10-rc7/v5.9 -O patch-5.10-rc7
273 # xz -6e patch-5.10-rc7
274 Patch2: patch-%{kernelversion}.%{patchlevel}-rc%{rcX}.xz
275 %endif
276
277 ###
278 ### Stable Queue can be big
279 ### Patches from 100-999
280 ###
281 ### add patches here by copying contents of kernel matching queue-x.y from:
282 ### https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/
283 ### to SOURCES, generate patchlist with generate-patchlist.sh and paste it here
284 ###
285
286 ###
287 ### Arch
288 ### Patches from 1000
289 ###
290
291 # laptop needing pci=assign-busses (#18989, needs to be submitted upstream)
292 Patch1000: x86-pci-toshiba-equium-a60-assign-busses.patch
293
294 # If users choose a bad video mode, allow to jump to
295 # a working one (TTL: forever)
296 Patch1001: x86-boot-video-80x25-if-break.patch
297
298 # Allow poweroff on UP machines running SMP kernels
299 Patch1005: x86-default_poweroff_up_machines.patch
300
301 # raise vmalloc to fix https://bugs.mageia.org/show_bug.cgi?id=904
302 Patch1010: x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch
303
304 # slows down boot
305 Patch1015: Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch
306
307 # AMD Zen mwait optimization v3
308 Patch1021: x86-Remove-vendor-checks-from-prefer_mwait_c1_over_h.patch
309 Patch1022: x86-Fix-comment-for-X86_FEATURE_ZEN.patch
310
311 # amd_nb
312 Patch1030: x86-amd_nb-Add-AMD-Family-17h-A0-AF-IDs.patch
313 Patch1031: x86-amd_nb-Add-Family-19h-model-70h-7Fh-IDs.patch
314 Patch1032: x86-amd_nb-Add-Family-19h-model-60h-6Fh-IDs.patch
315
316 # Amd cpufreq
317 Patch1035: cpufreq-amd_pstate-Fix-initial-highest_perf-value.patch
318
319 # Amd Microcode
320 Patch1040: x86-microcode-AMD-Attempt-applying-on-every-logical-thread.patch
321
322 # init
323 Patch1050: init-add-hostname-kernel-parameter.patch
324
325 ###
326 ### ACPI
327 ###
328
329 # CLEVO M360S acpi irq workaround
330 Patch1100: acpi-CLEVO-M360S-disable_acpi_irq.patch
331
332 # Clevo M720SR freezes with C3
333 Patch1105: acpi-processor-M720SR-limit-to-C2.patch
334
335 # ACPI PM fixes (TTL: 5.18)
336 Patch1130: x86-ACPI-State-Optimize-C3-entry-on-AMD-CPUs.patch
337
338 # AMD performance fix
339 Patch1135: ACPI-processor-idle-Practically-limit-Dummy-wait-wor.patch
340
341 ###
342 ### Block
343 ###
344
345 # FIXME: Don't know know why this is needed
346 Patch1200: scsi-megaraid-new-sysfs-name.patch
347
348 # adds aliases to support upgrade from old dm-raid45 patch
349 Patch1215: dm-raid-aliases.patch
350
351 # disable floppy autoloading (mga #4696)
352 Patch1220: block-floppy-disable-pnp-modalias.patch
353
354 # 5.19 regression
355 Patch1225: revert-block-freeze-the-queue-earlier-in-del_gendisk.patch
356
357 ###
358 ### bpf
359 ###
360
361 ###
362 ### Crypto
363 ###
364
365 ###
366 ### dma
367 ###
368
369 ###
370 ### File-system
371 ###
372
373 ###
374 ### FireWire
375 ###
376
377 # adding module aliases to ease upgrade from ieee1394
378 Patch1400: firewire-ieee1394-module-aliases.patch
379
380 ###
381 ### Firmware
382 ###
383
384 ###
385 ### GPU/DRM
386 ###
387
388 # mga compat option
389 Patch1500: drm-gpu-drm-treat-nokmsboot-as-nomodeset.patch
390
391 # amdgpu
392 # switch SI and CIK from radeon to amdgpu
393 Patch1520: drm-amdgpu-SI-and-CIK-enabled-by-default.patch
394 # 5.19.2 missing audio regression
395 Patch1521: Revert-drm-amdgpu-display-Prepare-for-new-interfaces.patch
396
397 # new Q57 Host Bridge id
398 Patch1530: char-agp-intel-new-Q57-id.patch
399
400 # i915
401 # TGL
402 Patch1546: drm-i915-psr-Disable-PSR2-selective-fetch-for-all-TGL-steps.patch
403
404 # https://bugzilla.kernel.org/show_bug.cgi?id=206653#c19
405 Patch1552: i2c_nvidia_gpu-change-err-into-info.patch
406
407 # nouveau
408 # 5.16.3 regression
409 Patch1560: Revert-drm-nouveau-pmu-gm200-avoid-touching-PMU-outs.patch
410
411 ###
412 ### gpio
413 ###
414
415 ###
416 ### hwmon
417 ###
418
419 # k10temp
420 Patch1600: hwmon-k10temp-Add-support-for-family-17h-models-A0h-AFh.patch
421 Patch1601: hwmon-k10temp-Add-support-for-family-19h-models-70h-7Fh.patch
422 Patch1602: hwmon-k10temp-Add-support-for-family-19h-models-60h-6Fh.patch
423
424 ###
425 ### i2c
426 ###
427
428 ###
429 ### io_uring
430 ###
431
432 ###
433 ### iommu
434 ###
435
436 ###
437 ### Input
438 ###
439
440 Patch1700: input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch
441
442 ###
443 ### HID
444 ###
445
446 ###
447 ### kernel
448 ###
449
450 ###
451 ### MFD
452 ###
453
454 ###
455 ### MM
456 ###
457
458 ###
459 ### Network
460 ###
461
462 # SiS 190 fixes
463 Patch1900: net-sis190-fix-list-usage.patch
464
465 # netfilter IFWLOG support
466 Patch1910: net-netfilter-IFWLOG.patch
467 Patch1911: net-netfilter-IFWLOG-mdv.patch
468 Patch1912: net-netfilter-IFWLOG-2.6.35-buildfix.patch
469 Patch1913: net-netfilter-IFWLOG-2.6.37-buildfix.patch
470 Patch1914: net-ipv4-netfilter-ipt_IFWLOG-3.6-buildfix.patch
471 Patch1915: net-netfilter-IFWLOG-3.7-buildfix.patch
472 Patch1916: net-netfilter-IFWLOG-remove-unused-label.patch
473 Patch1917: net-netfilter-ipt_IFWLOG-4.12-buildfix.patch
474 Patch1918: net-netfilter-IFWLOG-5.0-buildfix.patch
475
476 # netfilter psd support
477 Patch1920: net-netfilter-psd.patch
478 Patch1921: net-netfilter-psd-mdv.patch
479 Patch1922: net-netfilter-psd-2.6.35-buildfix.patch
480 Patch1923: net-netfilter-psd-fix-redefines.patch
481
482 # rtw88 wifi
483 # add alias for the replaced r8822be staging driver
484 Patch1930: net-wireless-rtw88-add-r8822be-alias.patch
485 # add alias for the replaced 8723de 3rdparty driver
486 Patch1931: net-wireless-rtw88-add-8723de-alias.patch
487
488 # iwlfiwi
489 Patch1980: net-wireless-iwlwifi-add-new-pci-id-for-6235.patch
490 Patch1981: net-wireless-iwlwifi-dont-spam-logs-with-NSS-2-messages.patch
491 Patch1982: net-wireless-iwlwifi-mark-IWLMEI-as-broken.patch
492
493 ###
494 ### PCI
495 ###
496
497 ###
498 ### pinctrl
499 ###
500
501 ###
502 ### Platform
503 ###
504
505 # Allow access to Shuttle WMI interface controls
506 # (Mainly allow turning on/off webcam and wireless on Shuttle DA18IE and DA18IM)
507 Patch2050: platform-x86-add-shuttle-wmi-driver.patch
508 Patch2051: platform-x86-shuttle-wmi-drop-devinit-exit.patch
509 Patch2052: platform-x86-shuttle-wmi-4.2-buildfix.patch
510 Patch2053: platform-x86-shuttle-wmi-4.13-buildfix.patch
511 Patch2054: platform-x86-shuttle-wmi-kernel-5.5.patch
512
513 ###
514 ### PM
515 ###
516
517 ###
518 ### Sound
519 ###
520
521 ###
522 ### SPI
523 ###
524
525 ###
526 ### Staging
527 ###
528
529 ###
530 ### Thermal
531 ###
532
533 ###
534 ### Thunderbolt
535 ###
536
537 ###
538 ### USB
539 ###
540
541 Patch2300: hid-usbhid-IBM-BladeCenterHS20-quirk.patch
542
543 Patch2310: usb-storage-unusual_devs-add-id.patch
544 Patch2311: usb-storage-unusual_devs-add-id-2.6.37-buildfix.patch
545
546 ###
547 ### V4L
548 ###
549
550 # pwc driver name in /proc/bus/devices, /sys fix and "advertisement" removal
551 Patch2400: media-usb-pwc-lie-in-proc-usb-devices.patch
552
553 ###
554 ### Video
555 ###
556
557 # Mageia framebuffer boot logo
558 Patch2500: video-mageia-logo.patch
559
560 ###
561 ### Virt
562 ###
563
564 # fix gcc-10 build
565 Patch2550: KVM-squelch-uninitialized-variable-warning.patch
566
567 ###
568 ### Tools
569 ###
570
571 # wipe powerpc refrence so we can nuke dangling symlinks (mga#17676)
572 Patch2600: tools-testing-selftest-Makefile-remove-powerpc-reference.patch
573
574 # fix perf build
575 Patch2605: tools-perf-ui-include-slang.patch
576
577 ###
578 ### UAPI
579 ###
580
581 Patch2700: uapi-avoid-namespace-conflict-in-linux-posix_types.h.patch
582
583 ###
584 ### 3rdparty
585 ###
586
587 Patch3000: 3rd-3rdparty-tree.patch
588 Patch3001: 3rd-3rdparty-merge.patch
589
590 # add rtl8812 support (mga#21043)
591 # from https://github.com/aircrack-ng/rtl8812au.git
592 Patch3200: 3rd-rtl8812au.patch
593 Patch3201: 3rd-rtl8812au-Kconfig-Makefile.patch
594 Patch3202: 3rd-rtl8812au-rename.patch
595 Patch3203: 3rd-rtl8812au-kernel-5.17.patch
596 Patch3204: 3rd-rtl8812au-kernel-5.18.patch
597 Patch3205: 3rd-rtl8812au-kernel-5.19.2.patch
598
599 # add rtl8723de support (mga#22559)
600 Patch3300: 3rd-rtl8723de.patch
601 Patch3301: 3rd-rtl8723de-Kconfig-Makefile.patch
602 Patch3302: 3rd-rtl8723de-fix-redefine.patch
603 Patch3303: 3rd-rtl8723de-nodebug.patch
604 Patch3304: 3rd-rtl8223de-kernel-5.6.patch
605 Patch3305: 3rd-rtl8723de-add-kernel-5.8-support.patch
606
607 # viahss
608 Patch3400: 3rd-viahss-0.92.patch
609 Patch3401: 3rd-viahss-config.patch
610 Patch3402: 3rd-viahss-module-license.patch
611 Patch3403: 3rd-viahss-2.6.35-buildfix.patch
612 Patch3404: 3rd-viahss-3.0-buildfix.patch
613 Patch3405: 3rd-viahss-Kconfig-Makefile.patch
614
615 # fix Kconfig files for 3rdparty:
616 Patch3900: 3rd-fix-kconfig.patch
617
618 ###
619 ### Python fixes
620 ###
621 Patch4000: linux-5.19-python3.patch
622
623 ###
624 ### TTY
625 ###
626
627 ###
628 ### Security fixes
629 ###
630 Patch5002: CVE-2019-12379.patch
631 #
632 # CVE-2020-16119
633 # https://bugzilla.redhat.com/show_bug.cgi?id=1886374
634 # https://bugzilla.redhat.com/show_bug.cgi?id=1888083
635 Patch5003: CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch
636
637 ###
638 ### Cosmetic fixes (e.g. typos, spelling, etc.)
639 ###
640
641 # broken rtla cleaner
642 Patch6000: hack-broken-rtla-cleaner.patch
643
644
645 ### Fixes from FC kernel
646 # Inspur Advantech PCI ids
647 Patch7000: 0001-scsi-smartpqi-add-inspur-advantech-ids.patch
648 # Vulcan AHCI PCI bar (aarch64)
649 Patch7001: 0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch
650
651 #END
652 ####################################################################
653
654 # Defines for the things that are needed for all the kernels
655 #
656 %define common_desc_kernel The kernel package contains the Linux kernel (vmlinuz), the core of your \
657 Mageia operating system. The kernel handles the basic functions \
658 of the operating system: memory allocation, process allocation, device \
659 input and output, etc.
660
661 %define common_desc_kernel_smp This kernel relies on in-kernel smp alternatives to switch between up & smp \
662 mode depending on detected hardware. To force the kernel to boot in single \
663 processor mode, use the "nosmp" boot parameter.
664
665 ### Global Requires/Provides
666 %define requires1 bootloader-utils >= 1.16-1
667 %define requires2 dracut >= 046-2
668 %define requires3 kmod >= 12-2
669 %define requires4 sysfsutils >= 2.1.0-16
670 %define requires5 kernel-firmware >= 20190603-1
671 # ldetect-lst with SI/CIK swich from radeon to amdgpu
672 %define requires6 ldetect-lst >= 0.6.25-1
673
674 %define kprovides1 %{kname} = %{kverrel}
675 %define kprovides2 kernel = %{tar_ver}
676 %define kprovides3 alsa = 1.0.26
677 %define kprovides_server drbd-api = 88
678
679 # conflict dkms packages that dont support kernel-5.19
680 %define kconflicts1 dkms-broadcom-wl < 6.30.223.271-64
681 %define kconflicts2 dkms-nvidia-current < 470.141.03-1
682 %define kconflicts3 dkms-nvidia470 < 470.141.03-1
683 %define kconflicts4 dkms-nvidia390 < 390.154-1
684 %define kconflicts5 dkms-virtualbox < 6.1.36-1
685 %define kconflicts6 dkms-xtables-addons < 3.21-1
686 # (tmb) conflict older btrfs-progs to get the new in same transaction and in initrd
687 %define kconflicts8 btrfs-progs < 5.10-1
688 # (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd
689 %define kconflicts9 radeon-firmware < 20201218-1
690 # (tmb) conflict old firmware to get the firmwares in initrd
691 %define kconflicts10 kernel-firmware-nonfree < 20201230-1
692 # (tmb) conflict old microcode to get updated ones in initrd for early loading
693 %define kconflicts11 microcode < 0.20201118-2
694 # (tmb) conflict old theme to get mga8 theme in initrd
695 %define kconflicts12 mageia-gfxboot-theme < 4.5.14.11-2
696 # (tmb) conflict too old grub2(-efi)
697 %define kconflicts13 grub2 < 2.02.0-15
698 %define kconflicts14 grub2-efi < 2.02.0-15
699 # (tmb) conflict too old efibootmgr
700 %define kconflicts15 efibootmgr < 16-3
701 # (tmb) force new theme in initrd
702 %define kconflicts16 mageia-theme < 8.0-2
703
704 Autoreqprov: no
705
706 # require new gcc & binutils
707 BuildRequires: gcc >= 10.4.0-2
708 BuildRequires: binutils >= 1:2.36.1-1.4
709 #
710 BuildRequires: kmod >= 12-2
711 BuildRequires: bc
712 # for crypto stuff
713 BuildRequires: pkgconfig(openssl)
714 # since 4.16
715 BuildRequires: bison
716 BuildRequires: diffutils
717 BuildRequires: elfutils-devel
718 BuildRequires: flex
719 # for headers_install
720 BuildRequires: rsync
721 # for cpupower
722 %if %{build_cpupower}
723 BuildRequires: pkgconfig(libpci)
724 %endif
725 # for perf
726 %if %{build_perf}
727 BuildRequires: audit-devel
728 BuildRequires: binutils-devel
729 BuildRequires: gtk2-devel
730 BuildRequires: libunwind-devel
731 BuildRequires: newt-devel
732 BuildRequires: python3-devel
733 BuildRequires: zlib-devel
734 BuildRequires: asciidoc
735 BuildRequires: xmlto-notex
736 BuildRequires: perl-devel
737 %if 0%{?mageia} >= 8
738 BuildRequires: systemtap-sdt-devel
739 BuildRequires: babeltrace-devel
740 %else
741 BuildRequires: libbabeltrace-devel
742 %endif
743 %ifarch %{ix86} x86_64
744 BuildRequires: numa-devel
745 %endif
746 %endif
747 %if %{build_bpftool}
748 BuildRequires: python3-docutils
749 BuildRequires: cap-devel
750 %endif
751
752 %description
753 %common_desc_kernel
754 %ifnarch %{arm}
755 %common_desc_kernel_smp
756 %endif
757
758 # mkflavour() name flavour processor
759 # name: the flavour name in the package name
760 # flavour: first parameter of CreateKernel()
761 %define mkflavour() \
762 %package -n %{kname}-%{1}-%{buildrel} \
763 Version: %{fakever} \
764 Release: %{fakerel} \
765 Provides: %kprovides1 %kprovides2 %kprovides3 \
766 %{expand:%%{?kprovides_%{1}:Provides: %{kprovides_%{1}}}} \
767 Provides: %{kname}-%{1} \
768 Requires(pre): %requires1 %requires2 %requires3 %requires4 \
769 Requires: %requires2 %requires5 %requires6 \
770 Conflicts: %kconflicts1 %kconflicts2 %kconflicts3 \
771 Conflicts: %kconflicts4 %kconflicts5 %kconflicts6 \
772 Conflicts: %kconflicts8 %kconflicts9 \
773 Conflicts: %kconflicts10 %kconflicts11 %kconflicts12 \
774 Conflicts: %kconflicts13 %kconflicts14 %kconflicts15 \
775 Conflicts: %kconflicts16 \
776 %if 0%{?mageia} >= 8 \
777 Obsoletes: crda \
778 Obsoletes: crda-devel \
779 Obsoletes: fuse-exfat \
780 %endif \
781 Provides: should-restart = system \
782 Provides: installonlypkg(kernel) \
783 Recommends: iw cpupower microcode \
784 Recommends: %{kname}-%{1}-latest \
785 %ifarch %{ix86} \
786 Conflicts: arch(x86_64) \
787 %endif \
788 Summary: %{expand:%{summary_%(echo %{1} | sed -e "s/-/_/")}} \
789 Group: System/Kernel and hardware \
790 %description -n %{kname}-%{1}-%{buildrel} \
791 %common_desc_kernel %{expand:%{info_%(echo %{1} | sed -e "s/-/_/")}} \
792 %ifnarch %{arm} \
793 %common_desc_kernel_smp \
794 %endif \
795 \
796 %if %build_devel \
797 %package -n %{kname}-%{1}-devel-%{buildrel} \
798 Version: %{fakever} \
799 Release: %{fakerel} \
800 Requires: glibc-devel ncurses-devel make gcc perl \
801 Requires: gcc >= 5.5.0-1 \
802 %ifarch x86_64 \
803 Requires: pkgconfig(libelf) \
804 %endif \
805 Summary: The kernel-devel files for %{kname}-%{1}-%{buildrel} \
806 Group: Development/Kernel \
807 Provides: %{kname}-devel = %{kverrel} \
808 Provides: %{kname}-%{1}-devel \
809 Recommends: %{kname}-%{1}-devel-latest \
810 %ifarch %{ix86} \
811 Conflicts: arch(x86_64) \
812 %endif \
813 %description -n %{kname}-%{1}-devel-%{buildrel} \
814 This package contains the kernel files (headers and build tools) \
815 that should be enough to build additional drivers for \
816 use with %{kname}-%{1}-%{buildrel}. \
817 \
818 If you want to build your own kernel, you need to install the full \
819 %{kname}-source-%{buildrel} rpm. \
820 \
821 %endif \
822 \
823 %if %build_debug \
824 %package -n %{kname}-%{1}-%{buildrel}-debuginfo \
825 Version: %{fakever} \
826 Release: %{fakerel} \
827 Summary: Files with debuginfo for %{kname}-%{1}-%{buildrel} \
828 Group: Development/Debug \
829 Provides: kernel-debug = %{kverrel} \
830 %ifarch %{ix86} \
831 Conflicts: arch(x86_64) \
832 %endif \
833 %description -n %{kname}-%{1}-%{buildrel}-debuginfo \
834 This package contains the files with debuginfo to aid in debug tasks \
835 when using %{kname}-%{1}-%{buildrel}. \
836 \
837 If you need to look at debug information or use some application that \
838 needs debugging info from the kernel, this package may help. \
839 \
840 %endif \
841 \
842 %package -n %{kname}-%{1}-latest \
843 Version: %{kversion} \
844 Release: %{rpmrel} \
845 Summary: Virtual rpm for latest %{kname}-%{1} \
846 Group: System/Kernel and hardware \
847 Requires: %{kname}-%{1}-%{buildrel} \
848 %ifarch %{ix86} \
849 Conflicts: arch(x86_64) \
850 %endif \
851 Obsoletes: vboxadditions-kernel-%{1}-latest \
852 Obsoletes: kernel-tmb-%{1}-latest \
853 %description -n %{kname}-%{1}-latest \
854 This package is a virtual rpm that aims to make sure you always have the \
855 latest %{kname}-%{1} installed... \
856 \
857 %if %build_devel \
858 %package -n %{kname}-%{1}-devel-latest \
859 Version: %{kversion} \
860 Release: %{rpmrel} \
861 Summary: Virtual rpm for latest %{kname}-%{1}-devel \
862 Group: Development/Kernel \
863 Requires: %{kname}-%{1}-devel-%{buildrel} \
864 %ifarch %{ix86} \
865 Conflicts: arch(x86_64) \
866 %endif \
867 Provides: %{kname}-devel-latest \
868 Obsoletes: kernel-tmb-%{1}-devel-latest \
869 %description -n %{kname}-%{1}-devel-latest \
870 This package is a virtual rpm that aims to make sure you always have the \
871 latest %{kname}-%{1}-devel installed... \
872 \
873 %endif \
874 \
875 %posttrans -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-posttrans \
876 %postun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-postun \
877 \
878 %if %build_devel \
879 %post -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-post \
880 %preun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-preun \
881 %postun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-postun \
882 %endif \
883 \
884 %files -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1} \
885 %files -n %{kname}-%{1}-latest \
886 \
887 %if %build_devel \
888 %files -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1} \
889 %files -n %{kname}-%{1}-devel-latest \
890 %endif \
891 \
892 %if %build_debug \
893 %files -n %{kname}-%{1}-%{buildrel}-debuginfo -f kernel_debug_files.%{1} \
894 %endif
895
896 %ifarch %{ix86}
897 #
898 # kernel-desktop586: i586, smp-alternatives, 4GB
899 #
900 %if %build_desktop586
901 %define summary_desktop586 Linux kernel for desktop use with i586 and less than 4GB RAM
902 %define info_desktop586 This kernel is compiled for desktop use, single or \
903 multiple i586 processor(s)/core(s) and less than 4GB RAM (usually 3-3.5GB \
904 detected, if you need/want to use all 4GB or more, install kernel-server), \
905 using HZ_1000, voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
906 %mkflavour desktop586
907 %endif
908 %endif
909
910 #
911 # kernel-desktop: i686, smp-alternatives, 64 GB / x86_64 / arm / aarch64
912 #
913 %if %build_desktop
914 %ifarch %{ix86}
915 %define summary_desktop Linux Kernel for desktop use with i686 and up to 64GB RAM
916 %define info_desktop This kernel is compiled for desktop use, single or \
917 multiple i686 processor(s)/core(s) and up to 64GB RAM, using HZ_1000, \
918 voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
919 %else
920 %define summary_desktop Linux Kernel for desktop use with %{_arch}
921 %define info_desktop This kernel is compiled for desktop use, single or \
922 multiple %{_arch} processor(s)/core(s), using HZ_1000, voluntary preempt, \
923 CFS cpu scheduler and cfq i/o scheduler.
924 %endif
925 %mkflavour desktop
926 %endif
927
928 #
929 # kernel-server: i686, smp-alternatives, 64 GB / x86_64 / aarch64
930 #
931 %if %build_server
932 %ifarch %{ix86}
933 %define summary_server Linux Kernel for server use with i686 & 64GB RAM
934 %define info_server This kernel is compiled for server use, single or \
935 multiple i686 processor(s)/core(s) and up to 64GB RAM using PAE, using \
936 no preempt, HZ_100, CFS cpu scheduler and cfq i/o scheduler.
937 %else
938 %define summary_server Linux Kernel for server use with %{_arch}
939 %define info_server This kernel is compiled for server use, single or \
940 multiple %{_arch} processor(s)/core(s), using no preempt, HZ_100, \
941 CFS cpu scheduler and cfq i/o scheduler.
942 %endif
943 %mkflavour server
944 %endif
945
946 #
947 # kernel-source
948 #
949 %if %build_source
950 %package -n %{kname}-source-%{buildrel}
951 Version: %{fakever}
952 Release: %{fakerel}
953 Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
954 Summary: The Linux source code for %{kname}-%{buildrel}
955 Group: Development/Kernel
956 Autoreqprov: no
957 Provides: kernel-source = %{kverrel}
958 Buildarch: noarch
959
960 %description -n %{kname}-source-%{buildrel}
961 The %{kname}-source package contains the source code files for the Mageia
962 kernel. Theese source files are only needed if you want to build your
963 own custom kernel that is better tuned to your particular hardware.
964
965 If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
966 drivers against, install the *-devel-* rpm that is matching your kernel.
967
968 #
969 # kernel-source-latest: virtual rpm
970 #
971 %package -n %{kname}-source-latest
972 Version: %{kversion}
973 Release: %{rpmrel}
974 Summary: Virtual rpm for latest %{kname}-source
975 Group: Development/Kernel
976 Requires: %{kname}-source-%{buildrel}
977 Buildarch: noarch
978
979 %description -n %{kname}-source-latest
980 This package is a virtual rpm that aims to make sure you always have the
981 latest %{kname}-source installed...
982 %endif
983
984 #
985 # kernel-doc: documentation for the Linux kernel
986 #
987 %if %build_doc
988 %package -n %{kname}-doc
989 Version: %{kversion}
990 Release: %{rpmrel}
991 Summary: Various documentation bits found in the %{kname} source
992 Group: Documentation
993 Buildarch: noarch
994
995 %description -n %{kname}-doc
996 This package contains documentation files from the %{kname} source.
997 Various bits of information about the Linux kernel and the device drivers
998 shipped with it are documented in these files. You also might want install
999 this package if you need a reference to the options that can be passed to
1000 Linux kernel modules at load time.
1001 %endif
1002
1003 #
1004 # kernel userspace-headers
1005 #
1006 %if %{build_uheaders}
1007 %package -n %{kname}-userspace-headers
1008 Version: %{kversion}
1009 Release: %{rpmrel}
1010 Summary: Linux kernel header files for userspace
1011 Group: System/Kernel and hardware
1012 %rename linux-userspace-headers
1013 Provides: kernel-headers = 1:%{version}-%{release}
1014
1015 %description -n %{kname}-userspace-headers
1016 C header files from the Linux kernel. The header files define structures
1017 and constants that are needed for building most standard programs.
1018
1019 This package is not suitable for building kernel modules.
1020 %endif
1021
1022 #
1023 # kernel/tools
1024 #
1025 %if %{build_perf}
1026 %package -n perf
1027 Version: %{kversion}
1028 Release: %{rpmrel}
1029 Summary: perf tool and the supporting documentation
1030 Group: System/Kernel and hardware
1031
1032 %description -n perf
1033 the perf tool and the supporting documentation.
1034 %endif
1035
1036 %if %{build_cpupower}
1037 %package -n cpupower
1038 Version: %{kversion}
1039 Release: %{rpmrel}
1040 Summary: the cpupower tools
1041 Group: System/Kernel and hardware
1042 Requires(post): rpm-helper >= 0.24.8-1
1043 Requires(preun): rpm-helper >= 0.24.8-1
1044 Obsoletes: cpufreq cpufrequtils
1045
1046 %description -n cpupower
1047 the cpupower tools.
1048
1049 %post -n cpupower
1050 %_post_service cpupower
1051
1052 %preun -n cpupower
1053 %_preun_service cpupower
1054
1055 %package -n cpupower-devel
1056 Version: %{kversion}
1057 Release: %{rpmrel}
1058 Summary: devel files for cpupower
1059 Group: Development/Kernel
1060 Requires: cpupower = %{kversion}-%{rpmrel}
1061 Conflicts: %{_lib}cpufreq-devel
1062
1063 %description -n cpupower-devel
1064 This package contains the development files for cpupower.
1065 %endif
1066
1067 %if %{build_bpftool}
1068 %package -n bpftool
1069 Summary: Inspection and simple manipulation of eBPF programs and maps
1070 Group: System/Kernel and hardware
1071
1072 %description -n bpftool
1073 This package contains the bpftool, which allows inspection and simple
1074 manipulation of eBPF programs and maps.
1075 %endif
1076
1077 %if %{build_libbpf}
1078 %package -n %{_lib}bpf%{bpfmajor}
1079 Summary: The bpf library from kernel source
1080 Group: System/Libraries
1081
1082 %description -n %{_lib}bpf%{bpfmajor}
1083 This package contains the kernel source bpf library.
1084
1085 %package -n %{_lib}bpf-devel
1086 Summary: Developement files for the bpf library from kernel source
1087 Group: Development/Kernel
1088 Requires: %{_lib}bpf%{bpfmajor}
1089
1090 %description -n %{_lib}bpf-devel
1091 This package includes libraries and header files needed for development
1092 of applications which use bpf library from kernel source.
1093 %endif
1094
1095 #
1096 # End packages - here begins build stage
1097 #
1098 %prep
1099 %setup -q -n %top_dir_name -c
1100
1101 cd %src_dir
1102
1103 %autopatch -p1
1104
1105 # PATCH END
1106
1107 #
1108 # Setup Begin
1109 #
1110
1111 # install x86 defconfigs
1112 install -m 644 %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} arch/x86/configs/
1113 # install arm64 defconfigs
1114 install -m 644 %{SOURCE16} %{SOURCE17} arch/arm64/configs/
1115 # install arm defconfigs
1116 install -m 644 %{SOURCE18} arch/arm/configs/
1117
1118 # make sure the kernel has the sublevel we know it has...
1119 LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
1120
1121 # get rid of unwanted files
1122 find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f
1123
1124 # fix missing exec flag on file introduced in 4.14.10-rc1
1125 chmod 755 tools/objtool/sync-check.sh
1126
1127 %build
1128 # Common target directories
1129 %define _kerneldir /usr/src/kernel-%{kversion}-%{buildrpmrel}
1130 %define _bootdir /boot
1131 %define _modulesdir /lib/modules
1132 %define _efidir %{_bootdir}/efi/mageia
1133
1134 # Directories definition needed for building
1135 %define temp_root %{build_dir}/temp-root
1136 %define temp_source %{temp_root}%{_kerneldir}
1137 %define temp_boot %{temp_root}%{_bootdir}
1138 %define temp_modules %{temp_root}%{_modulesdir}
1139
1140 PrepareKernel() {
1141 name=$1
1142 extension=$2
1143
1144 echo "Make config for kernel $extension"
1145
1146 %smake ARCH=%{target_arch} -s mrproper
1147
1148 if [ "%{target_arch}" == "i386" -o "%{target_arch}" == "x86_64" ]; then
1149 conf_dir=arch/x86/configs
1150 else
1151 conf_dir=arch/%{target_arch}/configs
1152 fi
1153 if [ -z "$name" ]; then
1154 cp $conf_dir/defconfig-%{target_arch}-desktop .config
1155 else
1156 cp $conf_dir/defconfig-%{target_arch}-$name .config
1157 fi
1158
1159 # make sure EXTRAVERSION says what we want it to say
1160 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -$extension/" Makefile
1161
1162 %smake ARCH=%{target_arch} oldconfig
1163 }
1164
1165 BuildKernel() {
1166 KernelVer=$1
1167
1168 echo "Building kernel $KernelVer"
1169
1170 %kmake ARCH=%{target_arch} -s all
1171
1172 # Start installing stuff
1173 install -d %{temp_boot}
1174 install -m 644 System.map %{temp_boot}/System.map-$KernelVer
1175 install -m 644 .config %{temp_boot}/config-$KernelVer
1176 xz -c Module.symvers > %{temp_boot}/symvers-$KernelVer.xz
1177
1178 %ifarch %{arm}
1179 IMAGE=zImage
1180 %else
1181 %ifarch aarch64
1182 IMAGE=Image.gz
1183 %else
1184 IMAGE=bzImage
1185 %endif
1186 %endif
1187 cp -f arch/%{target_arch}/boot/$IMAGE %{temp_boot}/vmlinuz-$KernelVer
1188
1189 %ifarch %{arm} aarch64
1190 install -d %{temp_root}%{_libdir}/linux-$KernelVer/
1191 find arch/%{target_arch}/boot/dts/ -name *.dtb -execdir install -D -m644 {} %{temp_root}%{_libdir}/linux-$KernelVer/{} \;
1192 %endif
1193
1194 # modules
1195 install -d %{temp_modules}/$KernelVer
1196 %smake ARCH=%{target_arch} INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=$KernelVer modules_install
1197 }
1198
1199 SaveDevel() {
1200 devel_flavour=$1
1201
1202 DevelRoot=/usr/src/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}
1203 TempDevelRoot=%{temp_root}$DevelRoot
1204
1205 mkdir -p $TempDevelRoot
1206 for i in $(find . -name 'Makefile*'); do cp -R --parents $i $TempDevelRoot;done
1207 for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*'); do cp -R --parents $i $TempDevelRoot;done
1208 cp -fR include $TempDevelRoot
1209 cp -fR scripts $TempDevelRoot
1210 cp -fR kernel/bounds.c $TempDevelRoot/kernel
1211 cp -fR tools/include $TempDevelRoot/tools/
1212 # needed for selinux
1213 cp -R --parents security/selinux/include/*.h $TempDevelRoot
1214 %ifarch %{arm}
1215 cp -fR arch/%{target_arch}/tools $TempDevelRoot/arch/%{target_arch}/
1216 cp -fR arch/%{target_arch}/kernel/signal.h $TempDevelRoot/arch/%{target_arch}/kernel/
1217 %endif
1218 %ifarch aarch64
1219 cp -fR arch/x86/entry/syscalls/syscall_32.tbl $TempDevelRoot/arch/x86/entry/syscalls/
1220 cp -fR arch/arm64/kernel/vdso/*.{S,sh} $TempDevelRoot/arch/arm64/kernel/vdso/
1221 cp -fR arch/arm64/kernel/vdso/vgettimeofday.c $TempDevelRoot/arch/arm64/kernel/vdso/
1222 cp -fR arch/arm64/tools/{cpucaps,gen-cpucaps.awk,gen-sysreg.awk,sysreg} $TempDevelRoot/arch/arm64/tools/
1223 # aarch64 build wants x86 syscall tables
1224 cp -fR arch/x86/entry/syscalls/syscall_{32,64}.tbl $TempDevelRoot/arch/x86/entry/syscalls/
1225 cp -fR lib/vdso/gettimeofday.c $TempDevelRoot/lib/vdso/
1226 %endif
1227 %ifarch %{ix86} x86_64
1228 cp -fR arch/x86/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/x86/kernel/
1229 cp -fR arch/x86/kernel/asm-offsets_{32,64}.c $TempDevelRoot/arch/x86/kernel/
1230 mkdir -p $TempDevelRoot/arch/x86/kvm/vmx
1231 cp -fR arch/x86/kvm/vmx/*.h $TempDevelRoot/arch/x86/kvm/vmx/
1232 cp -fR arch/x86/kvm/*.h $TempDevelRoot/arch/x86/kvm/
1233 cp -fR arch/x86/lib/insn.c $TempDevelRoot/arch/x86/lib/
1234 cp -fR arch/x86/purgatory/* $TempDevelRoot/arch/x86/purgatory/
1235 cp -fR arch/x86/entry/syscalls/syscall* $TempDevelRoot/arch/x86/entry/syscalls/
1236 cp -fR arch/x86/include $TempDevelRoot/arch/x86/
1237 cp -fR arch/x86/tools $TempDevelRoot/arch/x86/
1238 %else
1239 cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/%{target_arch}/kernel/
1240 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f $TempDevelRoot; done
1241 %endif
1242 cp -fR .config Module.symvers $TempDevelRoot
1243
1244 # Needed for truecrypt build (Danny)
1245 cp -fR drivers/md/dm.h $TempDevelRoot/drivers/md/
1246
1247 # needed by include/generated/timeconst.h
1248 cp -fR kernel/time/timeconst.bc $TempDevelRoot/kernel/time/
1249
1250 # Needed for lirc_gpio (#39004)
1251 cp -fR drivers/media/pci/bt8xx/bttv{,p}.h $TempDevelRoot/drivers/media/pci/bt8xx/
1252 cp -fR drivers/media/pci/bt8xx/bt848.h $TempDevelRoot/drivers/media/pci/bt8xx/
1253 cp -fR drivers/media/common/btcx-risc.h $TempDevelRoot/drivers/media/common/
1254
1255 # rtl8812au
1256 mkdir -p $TempDevelRoot/3rdparty/rtl8812au/hal/phydm/
1257 cp -fR 3rdparty/rtl8812au/hal/phydm/phydm.mk $TempDevelRoot/3rdparty/rtl8812au/hal/phydm/
1258
1259 %ifarch x86_64
1260 # orc unwinder needs theese
1261 cp -fR tools/build/Build{,.include} $TempDevelRoot/tools/build
1262 cp -fR tools/build/fixdep.c $TempDevelRoot/tools/build
1263 cp -fR tools/lib/{rbtree.c,ctype.c,str_error_r.c,string.c} $TempDevelRoot/tools/lib
1264 cp -fR tools/lib/subcmd/* $TempDevelRoot/tools/lib/subcmd
1265 cp -fR tools/objtool/* $TempDevelRoot/tools/objtool
1266 cp -fR tools/scripts/utilities.mak $TempDevelRoot/tools/scripts
1267 mkdir -p $TempDevelRoot/tools/arch/x86/tools
1268 cp -fR tools/arch/x86/tools/gen-insn-attr-x86.awk $TempDevelRoot/tools/arch/x86/tools/
1269 mkdir -p $TempDevelRoot/tools/arch/x86/lib
1270 cp -fR tools/arch/x86/lib/{inat.c,insn.c,x86-opcode-map.txt} $TempDevelRoot/tools/arch/x86/lib/
1271 mkdir -p $TempDevelRoot/tools/arch/x86/include/asm
1272 cp -fR tools/arch/x86/include/asm/{asm.h,emulate_prefix.h,inat.h,inat_types.h,insn.h,nops.h,orc_types.h} $TempDevelRoot/tools/arch/x86/include/asm/
1273 %endif
1274
1275 for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 loongarch m32r m68k m68knommu metag microblaze \
1276 mips mn10300 nds32 nios2 openrisc parisc powerpc riscv s390 score sh sparc tile unicore32 xtensa; do
1277 rm -rf $TempDevelRoot/arch/$i
1278 rm -rf $TempDevelRoot/scripts/dtc/include-prefixes/$i
1279 rm -rf $TempDevelRoot/tools/arch/$i
1280 done
1281
1282 %ifnarch %{arm} aarch64
1283 rm -rf $TempDevelRoot/arch/arm*
1284 rm -rf $TempDevelRoot/include/kvm/arm*
1285 rm -rf $TempDevelRoot/include/soc
1286 rm -rf $TempDevelRoot/scripts/dtc/include-prefixes/arm*
1287 rm -rf $TempDevelRoot/tools/arch/arm*
1288 %endif
1289 %ifnarch %{ix86} x86_64
1290 rm -rf $TempDevelRoot/arch/x86
1291 rm -rf $TempDevelRoot/tools/arch/x86
1292 # arch/x86/ras/Kconfig is included by drivers/ras/Kconfig
1293 # and kconfig's source command seems to be evaluated even under a false conditional
1294 mkdir -p $TempDevelRoot/arch/x86/ras
1295 cp -fR arch/x86/ras/Kconfig $TempDevelRoot/arch/x86/ras
1296 %endif
1297
1298 # Clean the scripts tree, and make sure everything is ok (sanity check)
1299 # running prepare+scripts (tree was already "prepared" in build)
1300 pushd $TempDevelRoot >/dev/null
1301 %smake ARCH=%{target_arch} -s prepare scripts
1302 %smake ARCH=%{target_arch} -s clean
1303 popd >/dev/null
1304 rm -f $TempDevelRoot/.config.old
1305
1306 # fix permissions
1307 chmod -R a+rX $TempDevelRoot
1308
1309 # disable mrproper in -devel rpms
1310 patch -p1 --fuzz=0 -d $TempDevelRoot -i %{SOURCE2}
1311
1312 kernel_devel_files=../kernel_devel_files.$devel_flavour
1313
1314
1315 ### Create the kernel_devel_files.*
1316 cat > $kernel_devel_files <<EOF
1317 %dir $DevelRoot
1318 %dir $DevelRoot/arch
1319 %dir $DevelRoot/include
1320 $DevelRoot/3rdparty
1321 $DevelRoot/Documentation
1322 %ifarch %{arm} aarch64
1323 $DevelRoot/arch/arm
1324 $DevelRoot/arch/arm64
1325 %endif
1326 $DevelRoot/arch/um
1327 %ifarch %{ix86} x86_64
1328 $DevelRoot/arch/x86
1329 %else
1330 $DevelRoot/arch/x86/ras
1331 %endif
1332 $DevelRoot/block
1333 $DevelRoot/certs
1334 $DevelRoot/crypto
1335 $DevelRoot/drivers
1336 $DevelRoot/fs
1337 $DevelRoot/include/acpi
1338 $DevelRoot/include/asm-generic
1339 $DevelRoot/include/clocksource
1340 $DevelRoot/include/config
1341 $DevelRoot/include/crypto
1342 $DevelRoot/include/drm
1343 $DevelRoot/include/dt-bindings
1344 $DevelRoot/include/generated
1345 $DevelRoot/include/keys
1346 $DevelRoot/include/kunit
1347 $DevelRoot/include/kvm
1348 $DevelRoot/include/linux
1349 $DevelRoot/include/math-emu
1350 $DevelRoot/include/media
1351 $DevelRoot/include/memory
1352 $DevelRoot/include/misc
1353 $DevelRoot/include/net
1354 $DevelRoot/include/pcmcia
1355 $DevelRoot/include/ras
1356 $DevelRoot/include/rdma
1357 $DevelRoot/include/scsi
1358 %ifarch %{arm} aarch64
1359 $DevelRoot/include/soc
1360 %endif
1361 $DevelRoot/include/sound
1362 $DevelRoot/include/target
1363 $DevelRoot/include/trace
1364 $DevelRoot/include/uapi
1365 $DevelRoot/include/ufs
1366 $DevelRoot/include/vdso/*.h
1367 $DevelRoot/include/video
1368 $DevelRoot/include/xen
1369 $DevelRoot/init
1370 $DevelRoot/io_uring
1371 $DevelRoot/ipc
1372 $DevelRoot/kernel
1373 $DevelRoot/lib
1374 $DevelRoot/mm
1375 $DevelRoot/net
1376 $DevelRoot/samples
1377 $DevelRoot/scripts
1378 $DevelRoot/security
1379 $DevelRoot/sound
1380 $DevelRoot/tools
1381 $DevelRoot/usr
1382 $DevelRoot/virt
1383 $DevelRoot/.config
1384 $DevelRoot/Kbuild
1385 $DevelRoot/Kconfig
1386 $DevelRoot/Makefile
1387 $DevelRoot/Module.symvers
1388 $DevelRoot/arch/Kconfig
1389 EOF
1390
1391
1392 ### Create -devel Post script on the fly
1393 cat > $kernel_devel_files-post <<EOF
1394 if [ -d /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel} ]; then
1395 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/{build,source}
1396 ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
1397 ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
1398 fi
1399 EOF
1400
1401
1402 ### Create -devel Preun script on the fly
1403 cat > $kernel_devel_files-preun <<EOF
1404 if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build ]; then
1405 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
1406 fi
1407 if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source ]; then
1408 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
1409 fi
1410 exit 0
1411 EOF
1412
1413 ### Create -devel Postun script on the fly
1414 cat > $kernel_devel_files-postun <<EOF
1415 rm -rf /usr/src/kernel-%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1416 EOF
1417 }
1418
1419 SaveDebug() {
1420 debug_flavour=$1
1421
1422 install -m 644 vmlinux \
1423 %{temp_boot}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}
1424 kernel_debug_files=../kernel_debug_files.$debug_flavour
1425 echo "%{_bootdir}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}" \
1426 >> $kernel_debug_files
1427
1428 find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1429 -name "*.ko" | \
1430 %kxargs -I '{}' objcopy --only-keep-debug '{}' '{}'.debug
1431 find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1432 -name "*.ko" | %kxargs -I '{}' \
1433 sh -c 'cd `dirname {}`; \
1434 objcopy --add-gnu-debuglink=`basename {}`.debug \
1435 --strip-debug `basename {}`'
1436
1437 pushd %{temp_modules}
1438 find %{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1439 -name "*.ko.debug" > debug_module_list
1440 popd
1441 cat %{temp_modules}/debug_module_list | \
1442 sed 's|\(.*\)|%{_modulesdir}/\1|' >> $kernel_debug_files
1443 cat %{temp_modules}/debug_module_list | \
1444 sed 's|\(.*\)|%exclude %{_modulesdir}/\1|' \
1445 >> ../kernel_exclude_debug_files.$debug_flavour
1446 rm -f %{temp_modules}/debug_module_list
1447 }
1448
1449 CreateFiles() {
1450 kernel_flavour=$1
1451
1452 kernel_files=../kernel_files.$kernel_flavour
1453
1454 ker="vmlinuz"
1455 ### Create the kernel_files.*
1456 cat > $kernel_files <<EOF
1457 %{_bootdir}/System.map-%{kversion}-$kernel_flavour-%{buildrpmrel}
1458 %{_bootdir}/symvers-%{kversion}-$kernel_flavour-%{buildrpmrel}.xz
1459 %{_bootdir}/config-%{kversion}-$kernel_flavour-%{buildrpmrel}
1460 %{_bootdir}/$ker-%{kversion}-$kernel_flavour-%{buildrpmrel}
1461 %dir %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/
1462 %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/kernel
1463 %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/modules.*
1464 %doc README.kernel-sources
1465 %ifarch %arm aarch64
1466 %dir %{_libdir}/linux-%{kversion}-$kernel_flavour-%{buildrpmrel}
1467 %{_libdir}/linux-%{kversion}-$kernel_flavour-%{buildrpmrel}/*.dtb
1468 %endif
1469 EOF
1470
1471 %if %build_debug
1472 cat ../kernel_exclude_debug_files.$kernel_flavour >> $kernel_files
1473 %endif
1474
1475 ### Create kernel Posttrans script
1476 cat > $kernel_files-posttrans <<EOF
1477 %if %build_devel
1478 # create kernel-devel symlinks if matching -devel- rpm is installed
1479 if [ -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
1480 ln -sf /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build
1481 ln -sf /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source
1482 fi
1483 %endif
1484 if [ -z "$DURING_INSTALL" ] ; then
1485 if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
1486 /usr/sbin/dkms_autoinstaller start %{kversion}-$kernel_flavour-%{buildrpmrel}
1487 fi
1488 fi
1489 /sbin/installkernel %{kversion}-$kernel_flavour-%{buildrpmrel}
1490 pushd /boot > /dev/null
1491 if [ -e initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img ]; then
1492 ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz-$kernel_flavour
1493 ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz
1494 ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd-$kernel_flavour.img
1495 ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd.img
1496 fi
1497 popd > /dev/null
1498 EOF
1499
1500 ### Create kernel Postun script on the fly
1501 cat > $kernel_files-postun <<EOF
1502 pushd /boot > /dev/null
1503 if [ -f "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
1504 echo "The kernel is still installed in postun, probably a reinstall, skipping cleanup." >&2
1505 exit
1506 fi
1507 if [ -L vmlinuz-$kernel_flavour ]; then
1508 if [ "$(readlink vmlinuz-$kernel_flavour)" = "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
1509 rm -f vmlinuz-$kernel_flavour
1510 fi
1511 fi
1512 if [ -L initrd-$kernel_flavour.img ]; then
1513 if [ "$(readlink initrd-$kernel_flavour.img)" = "initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img" ]; then
1514 rm -f initrd-$kernel_flavour.img
1515 fi
1516 fi
1517 popd > /dev/null
1518 rm -rf /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel} >/dev/null
1519 /sbin/kernel_remove_initrd %{kversion}-$kernel_flavour-%{buildrpmrel}
1520 /sbin/installkernel -R %{kversion}-$kernel_flavour-%{buildrpmrel}
1521 if [ -d /var/lib/dkms ]; then
1522 rm -f /var/lib/dkms/*/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null
1523 rm -rf /var/lib/dkms/*/*/%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1524 rm -f /var/lib/dkms-binary/*/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null
1525 rm -rf /var/lib/dkms-binary/*/*/%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1526 fi
1527 EOF
1528 }
1529
1530
1531 CreateKernel() {
1532 flavour=$1
1533
1534 PrepareKernel $flavour $flavour-%{buildrpmrel}
1535
1536 BuildKernel %{kversion}-$flavour-%{buildrpmrel}
1537 %if %build_devel
1538 SaveDevel $flavour
1539 %endif
1540 %if %build_debug
1541 SaveDebug $flavour
1542 %endif
1543 CreateFiles $flavour
1544 }
1545
1546
1547 ###
1548 # DO it...
1549 ###
1550
1551
1552 # Create a simulacro of buildroot
1553 rm -rf %{temp_root}
1554 install -d %{temp_root}
1555
1556
1557 # make sure we are in the directory
1558 cd %src_dir
1559
1560 %ifarch %{ix86}
1561 %if %build_desktop586
1562 CreateKernel desktop586
1563 %endif
1564 %endif
1565
1566 %if %build_desktop
1567 CreateKernel desktop
1568 %endif
1569
1570 %if %build_server
1571 CreateKernel server
1572 %endif
1573
1574 # set extraversion to match srpm to get nice version reported by the tools
1575 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1576
1577 # build perf
1578 %if %{build_perf}
1579 # perf
1580 %smake -s -C tools/perf NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1581 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} all
1582 %smake -C tools/perf -s prefix=%{_prefix} man
1583 %endif
1584
1585 %if %{build_cpupower}
1586 # cpupower
1587 # make sure version-gen.sh is executable.
1588 chmod +x tools/power/cpupower/utils/version-gen.sh
1589 %make_build -C tools/power/cpupower CPUFREQ_BENCH=false
1590 %endif
1591
1592 # build bpftool
1593 %if %{build_bpftool}
1594 pushd tools/bpf/bpftool
1595 make
1596 popd
1597 %endif
1598
1599 # build libbpf
1600 %if %{build_libbpf}
1601 pushd tools/lib/bpf
1602 make V=1
1603 popd
1604 %endif
1605
1606 # We don't make to repeat the depend code at the install phase
1607 %if %build_source
1608 PrepareKernel "" %{buildrpmrel}custom
1609 %smake ARCH=%{target_arch} -s mrproper
1610 %endif
1611
1612
1613 ###
1614 ### install
1615 ###
1616 %install
1617 install -m 644 %{SOURCE4} .
1618
1619 cd %src_dir
1620
1621 # Directories definition needed for installing
1622 %define target_source %{buildroot}%{_kerneldir}
1623 %define target_boot %{buildroot}%{_bootdir}
1624 %define target_modules %{buildroot}%{_modulesdir}
1625 %define target_headers %{buildroot}%{_prefix}
1626
1627 # We want to be able to test several times the install part
1628 rm -rf %{buildroot}
1629 cp -a %{temp_root} %{buildroot}
1630
1631 # Create directories infastructure
1632 %if %build_source
1633 install -d %{target_source}
1634
1635 tar cf - . | tar xf - -C %{target_source}
1636 chmod -R a+rX %{target_source}
1637
1638 # we remove all the source files that we don't ship
1639 # first architecture files
1640 for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 loongarch m32r m68k m68knommu metag microblaze \
1641 mips nds32 nios2 openrisc parisc powerpc riscv s390 score sh sh64 sparc tile unicore32 v850 xtensa mn10300; do
1642 rm -rf %{target_source}/arch/$i
1643 rm -rf %{target_source}/scripts/dtc/include-prefixes/$i
1644 rm -rf %{target_source}/tools/arch/$i
1645 rm -rf %{target_source}/tools/testing/selftests/$i
1646 done
1647 %ifnarch %{arm} aarch64
1648 rm -rf %{target_source}/include/kvm/arm*
1649 rm -rf %{target_source}/scripts/dtc/include-prefixes/arm*
1650 rm -rf %{target_source}/tools/arch/arm*
1651 %endif
1652
1653 # other misc files
1654 rm -f %{target_source}/{.clang-format,.config.old,.config.cmd,.lst,.mailmap,.get_maintainer.ignore}
1655 rm -f %{target_source}/{.missing-syscalls.d,.cocciconfig,.gitattributes}
1656 rm -rf %{target_source}/.tmp_depmod/
1657
1658 # more cleaning
1659 pushd %{target_source}
1660 # lots of gitignore files
1661 find -iname ".gitignore" -delete
1662 # clean tools tree
1663 %smake -C tools clean
1664 %smake -C tools/build clean
1665 %smake -C tools/build/feature clean
1666 # dont ship generated vdso.so*
1667 %ifarch aarch64
1668 rm -f arch/arm64/kernel/vdso/vdso.so*
1669 %endif
1670 popd
1671
1672 # nuke last as it gets re-created
1673 rm -f %{target_source}/.cache.mk
1674
1675 #endif %build_source
1676 %endif
1677
1678 # compressing modules
1679 %if %{build_modxz}
1680 find %{target_modules} -name "*.ko" | %kxargs xz -6
1681 %else
1682 find %{target_modules} -name "*.ko" | %kxargs gzip -9
1683 %endif
1684
1685 # We used to have a copy of PrepareKernel here
1686 # Now, we make sure that the thing in the linux dir is what we want it to be
1687 for i in %{target_modules}/*; do
1688 rm -f $i/build $i/source
1689 done
1690
1691 # sniff, if we compressed all the modules, we change the stamp :(
1692 # we really need the depmod -ae here
1693 pushd %{target_modules}
1694 for i in *; do
1695 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
1696 echo $?
1697 done
1698
1699 for i in *; do
1700 pushd $i
1701 echo "Creating modules.description for $i"
1702 modules=`find . -name "*.ko.[g,x]z"`
1703 echo $modules | xargs /sbin/modinfo \
1704 | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
1705 popd
1706 done
1707 popd
1708
1709 # need to set extraversion to match srpm again to avoid rebuild
1710 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1711
1712 # install userspace-headers
1713 %if %{build_uheaders}
1714 %smake ARCH=%{target_arch} headers_install INSTALL_HDR_PATH=%{target_headers}
1715 # for drakx
1716 cp include/linux/pci_ids.h %{target_headers}/include/linux/
1717 %endif
1718
1719 %if %{build_perf}
1720 # perf tool binary and supporting scripts/binaries
1721 %smake -s -C tools/perf V=1 DESTDIR=%{buildroot} NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1722 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} install
1723
1724 # perf man pages (note: implicit rpm magic compresses them later)
1725 make -C tools/perf V=1 DESTDIR=%{buildroot} prefix=%{_prefix} install-man
1726
1727 # remove perf files we dont ship
1728 rm -rf %{buildroot}/usr/lib/perf/examples
1729 rm -rf %{buildroot}/usr/lib/perf/include/bpf
1730 rm -rf %{buildroot}/usr/include/perf/perf_dlfilter.h
1731 %endif
1732
1733 %if %{build_cpupower}
1734 make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
1735 rm -f %{buildroot}%{_libdir}/*.{a,la}
1736 %find_lang cpupower
1737 mv cpupower.lang ../
1738 chmod 0755 %{buildroot}%{_libdir}/libcpupower.so*
1739 mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig
1740 install -m644 %{SOURCE50} %{buildroot}%{_unitdir}/cpupower.service
1741 install -m644 %{SOURCE51} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
1742 %endif
1743
1744 # install bpftool
1745 %if %{build_bpftool}
1746 pushd tools/bpf/bpftool
1747 make DESTDIR=%{buildroot} prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} install doc-install
1748 popd
1749 %endif
1750
1751 # install libbpf
1752 %if %{build_libbpf}
1753 pushd tools/lib/bpf
1754 make DESTDIR=%{buildroot} prefix=%{_prefix} libdir=%{_libdir} V=1 install install_headers
1755 popd
1756 %endif
1757
1758 ###
1759 ### clean
1760 ###
1761 %clean
1762 rm -rf %{buildroot}
1763
1764
1765 # We don't want to remove this, the whole reason of its existence is to be
1766 # able to do several rpm --short-circuit -bi for testing install
1767 # phase without repeating compilation phase
1768 #rm -rf %{temp_root}
1769
1770 ###
1771 ### source and doc file lists
1772 ###
1773
1774 %if %build_source
1775 %files -n %{kname}-source-%{buildrel}
1776 %doc %{_kerneldir}/LICENSES
1777 %dir %{_kerneldir}
1778 %dir %{_kerneldir}/arch
1779 %dir %{_kerneldir}/include
1780 %{_kerneldir}/3rdparty
1781 %{_kerneldir}/Documentation
1782 %{_kerneldir}/arch/Kconfig
1783 %{_kerneldir}/arch/arm
1784 %{_kerneldir}/arch/arm64
1785 %{_kerneldir}/arch/um
1786 %{_kerneldir}/arch/x86
1787 %{_kerneldir}/block
1788 %{_kerneldir}/certs
1789 %{_kerneldir}/crypto
1790 %{_kerneldir}/drivers
1791 %{_kerneldir}/fs
1792 %{_kerneldir}/include/acpi
1793 %{_kerneldir}/include/asm-generic
1794 %{_kerneldir}/include/clocksource
1795 %{_kerneldir}/include/crypto
1796 %{_kerneldir}/include/drm
1797 %{_kerneldir}/include/dt-bindings
1798 %{_kerneldir}/include/keys
1799 %{_kerneldir}/include/kunit
1800 %{_kerneldir}/include/kvm
1801 %{_kerneldir}/include/linux
1802 %{_kerneldir}/include/math-emu
1803 %{_kerneldir}/include/media
1804 %{_kerneldir}/include/memory
1805 %{_kerneldir}/include/misc
1806 %{_kerneldir}/include/net
1807 %{_kerneldir}/include/pcmcia
1808 %{_kerneldir}/include/ras
1809 %{_kerneldir}/include/rdma
1810 %{_kerneldir}/include/scsi
1811 %{_kerneldir}/include/soc
1812 %{_kerneldir}/include/sound
1813 %{_kerneldir}/include/target
1814 %{_kerneldir}/include/trace
1815 %{_kerneldir}/include/uapi
1816 %{_kerneldir}/include/ufs
1817 %{_kerneldir}/include/vdso/*.h
1818 %{_kerneldir}/include/video
1819 %{_kerneldir}/include/xen
1820 %{_kerneldir}/init
1821 %{_kerneldir}/io_uring
1822 %{_kerneldir}/ipc
1823 %{_kerneldir}/kernel
1824 %{_kerneldir}/lib
1825 %{_kerneldir}/mm
1826 %{_kerneldir}/net
1827 %{_kerneldir}/virt
1828 %{_kerneldir}/samples
1829 %{_kerneldir}/scripts
1830 %{_kerneldir}/security
1831 %{_kerneldir}/sound
1832 %{_kerneldir}/tools
1833 %{_kerneldir}/usr
1834 %{_kerneldir}/COPYING
1835 %{_kerneldir}/CREDITS
1836 %{_kerneldir}/Kbuild
1837 %{_kerneldir}/Kconfig
1838 %{_kerneldir}/MAINTAINERS
1839 %{_kerneldir}/Makefile
1840 %{_kerneldir}/README
1841 %doc README.kernel-sources
1842
1843 %files -n %{kname}-source-latest
1844 %endif
1845
1846 %if %build_doc
1847 %files -n %{kname}-doc
1848 %doc linux-%{tar_ver}/Documentation/*
1849 %endif
1850
1851 %if %build_uheaders
1852 %files -n %{kname}-userspace-headers
1853 %defattr(0644,root,root,0755)
1854 %{_includedir}/asm/
1855 %{_includedir}/asm-generic/
1856 %{_includedir}/drm/
1857 %{_includedir}/linux/
1858 %{_includedir}/misc/
1859 %{_includedir}/mtd/
1860 %{_includedir}/rdma/
1861 %{_includedir}/scsi/
1862 %{_includedir}/sound/
1863 %{_includedir}/video/
1864 %{_includedir}/xen/
1865 %endif
1866
1867 %if %{build_perf}
1868 %files -n perf
1869 %{_bindir}/perf
1870 %{_bindir}/trace
1871 %{_datadir}/perf-core/strace/groups/file
1872 %{_datadir}/perf-core/strace/groups/string
1873 %{_datadir}/doc/perf-tip/tips.txt
1874 %dir %{_libdir}/traceevent
1875 %dir %{_libdir}/traceevent/plugins
1876 %{_libdir}/traceevent/plugins/plugin_*
1877 %dir %{_prefix}/libexec/perf-core
1878 %{_prefix}/libexec/perf-core/*
1879 %{_mandir}/man[1-8]/perf*
1880 %{_sysconfdir}/bash_completion.d/perf
1881 %endif
1882
1883 %if %{build_cpupower}
1884 %files -n cpupower -f cpupower.lang
1885 %config(noreplace) %{_sysconfdir}/sysconfig/cpupower
1886 %{_bindir}/cpupower
1887 %{_datadir}/bash-completion/completions/cpupower
1888 %{_libdir}/libcpupower.so.0
1889 %{_libdir}/libcpupower.so.0.0.1
1890 %{_unitdir}/cpupower.service
1891 %{_mandir}/man[1-8]/cpupower*
1892
1893 %files -n cpupower-devel
1894 %{_libdir}/libcpupower.so
1895 %{_includedir}/cpuidle.h
1896 %{_includedir}/cpufreq.h
1897 %endif
1898
1899 %if %{build_bpftool}
1900 %files -n bpftool
1901 %{_sbindir}/bpftool
1902 %{_sysconfdir}/bash_completion.d/bpftool
1903 %{_mandir}/man8/bpftool-*.8*
1904 %{_mandir}/man8/bpftool.8*
1905 %endif
1906
1907 %if %{build_libbpf}
1908 %files -n %{_lib}bpf%{bpfmajor}
1909 %{_libdir}/libbpf.so.%{bpfmajor}{,.*}
1910
1911 %files -n %{_lib}bpf-devel
1912 %{_libdir}/libbpf.a
1913 %{_libdir}/libbpf.so
1914 %{_libdir}/pkgconfig/libbpf.pc
1915 %{_includedir}/bpf/bpf.h
1916 %{_includedir}/bpf/bpf_core_read.h
1917 %{_includedir}/bpf/bpf_endian.h
1918 %{_includedir}/bpf/bpf_helper_defs.h
1919 %{_includedir}/bpf/bpf_helpers.h
1920 %{_includedir}/bpf/bpf_tracing.h
1921 %{_includedir}/bpf/btf.h
1922 %{_includedir}/bpf/libbpf.h
1923 %{_includedir}/bpf/libbpf_common.h
1924 %{_includedir}/bpf/libbpf_legacy.h
1925 %{_includedir}/bpf/libbpf_version.h
1926 %{_includedir}/bpf/skel_internal.h
1927 %{_includedir}/bpf/usdt.bpf.h
1928 %{_includedir}/bpf/xsk.h
1929 %endif

  ViewVC Help
Powered by ViewVC 1.1.28