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

  ViewVC Help
Powered by ViewVC 1.1.30