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

  ViewVC Help
Powered by ViewVC 1.1.30