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

  ViewVC Help
Powered by ViewVC 1.1.30