/[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 1861177 - (show annotations) (download)
Fri Jun 3 21:09:13 2022 UTC (22 months, 1 week ago) by tmb
File size: 55541 byte(s)
- blk-iolatency: Fix inflight count imbalances and IO hangs on offline
- block: Fix potential deadlock in blk_ia_range_sysfs_show()
- drm/amdgpu: add beige goby PCI ID
- drm/amdgpu/cs: make commands with 0 chunks illegal behaviour.
- wifi: mac80211: fix use-after-free in chanctx code


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

  ViewVC Help
Powered by ViewVC 1.1.30