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

  ViewVC Help
Powered by ViewVC 1.1.30