/[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 1860167 - (show annotations) (download)
Wed May 25 21:21:36 2022 UTC (22 months, 3 weeks ago) by tmb
File size: 56471 byte(s)
- update to 5.17.11
- init: add "hostname" kernel parameter
- iommu/amd: Increase timeout waiting for GA log enablement
- KVM: x86/mmu: fix NULL pointer dereference on guest INVPCID


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

  ViewVC Help
Powered by ViewVC 1.1.30