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

  ViewVC Help
Powered by ViewVC 1.1.30