/[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 1866244 - (show annotations) (download)
Sat Jun 25 14:51:45 2022 UTC (21 months, 3 weeks ago) by tmb
File size: 54845 byte(s)
- ipv4: ping: fix bind address validity check
- random: quiet urandom warning ratelimit suppression message
- random: schedule mix_interrupt_randomness() less often


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

  ViewVC Help
Powered by ViewVC 1.1.30