/[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 1852260 - (show annotations) (download)
Wed Apr 20 22:42:22 2022 UTC (23 months, 4 weeks ago) by tmb
File size: 55993 byte(s)
- update to 5.17.4
  * drop merged patches
- drm/amd/display: Only set PSR version when valid
- x86/cpu: Load microcode during restore_processor_state()


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

  ViewVC Help
Powered by ViewVC 1.1.30