/[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 1861031 - (show annotations) (download)
Wed Jun 1 20:29:20 2022 UTC (21 months, 3 weeks ago) by tmb
File size: 54911 byte(s)
- hwmon: (k10temp): Load the driver on models A0h-AFh
- KVM: x86: avoid calling x86 emulator without a decoded instruction
- netfilter: nf_tables: disallow non-stateful expression in sets earlier
- x86/amd_nb: Add AMD Family 19h A0-AF IDs


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

  ViewVC Help
Powered by ViewVC 1.1.30