/[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 1896691 - (show annotations) (download)
Thu Oct 13 04:48:14 2022 UTC (18 months ago) by tmb
File size: 54738 byte(s)
- update to 5.19.15
  * drop merged patch


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

  ViewVC Help
Powered by ViewVC 1.1.30