/[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 1891703 - (show annotations) (download)
Thu Sep 22 19:29:23 2022 UTC (18 months, 3 weeks ago) by tmb
File size: 55044 byte(s)
- Revert "block: freeze the queue earlier in del_gendisk"


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 10
39
40 # Package release
41 %define mgarel 2
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 Patch0100: block-blk_queue_enter-__bio_queue_enter-must-return-.patch
286
287 ###
288 ### Arch
289 ### Patches from 1000
290 ###
291
292 # laptop needing pci=assign-busses (#18989, needs to be submitted upstream)
293 Patch1000: x86-pci-toshiba-equium-a60-assign-busses.patch
294
295 # If users choose a bad video mode, allow to jump to
296 # a working one (TTL: forever)
297 Patch1001: x86-boot-video-80x25-if-break.patch
298
299 # Allow poweroff on UP machines running SMP kernels
300 Patch1005: x86-default_poweroff_up_machines.patch
301
302 # raise vmalloc to fix https://bugs.mageia.org/show_bug.cgi?id=904
303 Patch1010: x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch
304
305 # slows down boot
306 Patch1015: Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch
307
308 # AMD Zen mwait optimization v3
309 Patch1021: x86-Remove-vendor-checks-from-prefer_mwait_c1_over_h.patch
310 Patch1022: x86-Fix-comment-for-X86_FEATURE_ZEN.patch
311
312 # amd_nb
313 Patch1030: x86-amd_nb-Add-AMD-Family-17h-A0-AF-IDs.patch
314 Patch1031: x86-amd_nb-Add-Family-19h-model-70h-7Fh-IDs.patch
315 Patch1032: x86-amd_nb-Add-Family-19h-model-60h-6Fh-IDs.patch
316
317 # Amd cpufreq
318 Patch1035: cpufreq-amd_pstate-Fix-initial-highest_perf-value.patch
319
320 # Amd Microcode
321 Patch1040: x86-microcode-AMD-Attempt-applying-on-every-logical-thread.patch
322
323 # init
324 Patch1050: init-add-hostname-kernel-parameter.patch
325
326 ###
327 ### ACPI
328 ###
329
330 # CLEVO M360S acpi irq workaround
331 Patch1100: acpi-CLEVO-M360S-disable_acpi_irq.patch
332
333 # Clevo M720SR freezes with C3
334 Patch1105: acpi-processor-M720SR-limit-to-C2.patch
335
336 # ACPI PM fixes (TTL: 5.18)
337 Patch1130: x86-ACPI-State-Optimize-C3-entry-on-AMD-CPUs.patch
338
339 ###
340 ### Block
341 ###
342
343 # FIXME: Don't know know why this is needed
344 Patch1200: scsi-megaraid-new-sysfs-name.patch
345
346 # adds aliases to support upgrade from old dm-raid45 patch
347 Patch1215: dm-raid-aliases.patch
348
349 # disable floppy autoloading (mga #4696)
350 Patch1220: block-floppy-disable-pnp-modalias.patch
351
352 # 5.19 regression
353 Patch1225: revert-block-freeze-the-queue-earlier-in-del_gendisk.patch
354
355 ###
356 ### bpf
357 ###
358
359 ###
360 ### Crypto
361 ###
362
363 ###
364 ### dma
365 ###
366
367 ###
368 ### File-system
369 ###
370
371 ###
372 ### FireWire
373 ###
374
375 # adding module aliases to ease upgrade from ieee1394
376 Patch1400: firewire-ieee1394-module-aliases.patch
377
378 ###
379 ### Firmware
380 ###
381
382 ###
383 ### GPU/DRM
384 ###
385
386 # mga compat option
387 Patch1500: drm-gpu-drm-treat-nokmsboot-as-nomodeset.patch
388
389 # amdgpu
390 # switch SI and CIK from radeon to amdgpu
391 Patch1520: drm-amdgpu-SI-and-CIK-enabled-by-default.patch
392 # 5.19.2 missing audio regression
393 Patch1521: Revert-drm-amdgpu-display-Prepare-for-new-interfaces.patch
394
395 # new Q57 Host Bridge id
396 Patch1530: char-agp-intel-new-Q57-id.patch
397
398 # i915
399 # TGL
400 Patch1546: drm-i915-psr-Disable-PSR2-selective-fetch-for-all-TGL-steps.patch
401
402 # https://bugzilla.kernel.org/show_bug.cgi?id=206653#c19
403 Patch1552: i2c_nvidia_gpu-change-err-into-info.patch
404
405 # nouveau
406 # 5.16.3 regression
407 Patch1560: Revert-drm-nouveau-pmu-gm200-avoid-touching-PMU-outs.patch
408
409 ###
410 ### gpio
411 ###
412
413 ###
414 ### hwmon
415 ###
416
417 # k10temp
418 Patch1600: hwmon-k10temp-Add-support-for-family-17h-models-A0h-AFh.patch
419 Patch1601: hwmon-k10temp-Add-support-for-family-19h-models-70h-7Fh.patch
420 Patch1602: hwmon-k10temp-Add-support-for-family-19h-models-60h-6Fh.patch
421
422 ###
423 ### i2c
424 ###
425
426 ###
427 ### io_uring
428 ###
429
430 ###
431 ### iommu
432 ###
433
434 # 5.19.9 regression
435 Patch1650: revert-iommu-vt-d-fix-possible-recursive-locking-in-intel_iommu_init.patch
436
437 ###
438 ### Input
439 ###
440
441 Patch1700: input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch
442
443 ###
444 ### HID
445 ###
446
447 ###
448 ### kernel
449 ###
450
451 ###
452 ### MFD
453 ###
454
455 ###
456 ### MM
457 ###
458
459 ###
460 ### Network
461 ###
462
463 # SiS 190 fixes
464 Patch1900: net-sis190-fix-list-usage.patch
465
466 # netfilter IFWLOG support
467 Patch1910: net-netfilter-IFWLOG.patch
468 Patch1911: net-netfilter-IFWLOG-mdv.patch
469 Patch1912: net-netfilter-IFWLOG-2.6.35-buildfix.patch
470 Patch1913: net-netfilter-IFWLOG-2.6.37-buildfix.patch
471 Patch1914: net-ipv4-netfilter-ipt_IFWLOG-3.6-buildfix.patch
472 Patch1915: net-netfilter-IFWLOG-3.7-buildfix.patch
473 Patch1916: net-netfilter-IFWLOG-remove-unused-label.patch
474 Patch1917: net-netfilter-ipt_IFWLOG-4.12-buildfix.patch
475 Patch1918: net-netfilter-IFWLOG-5.0-buildfix.patch
476
477 # netfilter psd support
478 Patch1920: net-netfilter-psd.patch
479 Patch1921: net-netfilter-psd-mdv.patch
480 Patch1922: net-netfilter-psd-2.6.35-buildfix.patch
481 Patch1923: net-netfilter-psd-fix-redefines.patch
482
483 # rtw88 wifi
484 # add alias for the replaced r8822be staging driver
485 Patch1930: net-wireless-rtw88-add-r8822be-alias.patch
486 # add alias for the replaced 8723de 3rdparty driver
487 Patch1931: net-wireless-rtw88-add-8723de-alias.patch
488
489 # iwlfiwi
490 Patch1980: net-wireless-iwlwifi-add-new-pci-id-for-6235.patch
491 Patch1981: net-wireless-iwlwifi-dont-spam-logs-with-NSS-2-messages.patch
492 Patch1982: net-wireless-iwlwifi-mark-IWLMEI-as-broken.patch
493
494 ###
495 ### PCI
496 ###
497
498 ###
499 ### pinctrl
500 ###
501
502 ###
503 ### Platform
504 ###
505
506 # Allow access to Shuttle WMI interface controls
507 # (Mainly allow turning on/off webcam and wireless on Shuttle DA18IE and DA18IM)
508 Patch2050: platform-x86-add-shuttle-wmi-driver.patch
509 Patch2051: platform-x86-shuttle-wmi-drop-devinit-exit.patch
510 Patch2052: platform-x86-shuttle-wmi-4.2-buildfix.patch
511 Patch2053: platform-x86-shuttle-wmi-4.13-buildfix.patch
512 Patch2054: platform-x86-shuttle-wmi-kernel-5.5.patch
513
514 ###
515 ### PM
516 ###
517
518 ###
519 ### Sound
520 ###
521
522 ###
523 ### SPI
524 ###
525
526 ###
527 ### Staging
528 ###
529
530 ###
531 ### Thermal
532 ###
533
534 ###
535 ### Thunderbolt
536 ###
537
538 ###
539 ### USB
540 ###
541
542 Patch2300: hid-usbhid-IBM-BladeCenterHS20-quirk.patch
543
544 Patch2310: usb-storage-unusual_devs-add-id.patch
545 Patch2311: usb-storage-unusual_devs-add-id-2.6.37-buildfix.patch
546
547 ###
548 ### V4L
549 ###
550
551 # pwc driver name in /proc/bus/devices, /sys fix and "advertisement" removal
552 Patch2400: media-usb-pwc-lie-in-proc-usb-devices.patch
553
554 ###
555 ### Video
556 ###
557
558 # Mageia framebuffer boot logo
559 Patch2500: video-mageia-logo.patch
560
561 ###
562 ### Virt
563 ###
564
565 # fix gcc-10 build
566 Patch2550: KVM-squelch-uninitialized-variable-warning.patch
567
568 ###
569 ### Tools
570 ###
571
572 # wipe powerpc refrence so we can nuke dangling symlinks (mga#17676)
573 Patch2600: tools-testing-selftest-Makefile-remove-powerpc-reference.patch
574
575 # fix perf build
576 Patch2605: tools-perf-ui-include-slang.patch
577
578 ###
579 ### UAPI
580 ###
581
582 Patch2700: uapi-avoid-namespace-conflict-in-linux-posix_types.h.patch
583
584 ###
585 ### 3rdparty
586 ###
587
588 Patch3000: 3rd-3rdparty-tree.patch
589 Patch3001: 3rd-3rdparty-merge.patch
590
591 # add rtl8812 support (mga#21043)
592 # from https://github.com/aircrack-ng/rtl8812au.git
593 Patch3200: 3rd-rtl8812au.patch
594 Patch3201: 3rd-rtl8812au-Kconfig-Makefile.patch
595 Patch3202: 3rd-rtl8812au-rename.patch
596 Patch3203: 3rd-rtl8812au-kernel-5.17.patch
597 Patch3204: 3rd-rtl8812au-kernel-5.18.patch
598 Patch3205: 3rd-rtl8812au-kernel-5.19.2.patch
599
600 # add rtl8723de support (mga#22559)
601 Patch3300: 3rd-rtl8723de.patch
602 Patch3301: 3rd-rtl8723de-Kconfig-Makefile.patch
603 Patch3302: 3rd-rtl8723de-fix-redefine.patch
604 Patch3303: 3rd-rtl8723de-nodebug.patch
605 Patch3304: 3rd-rtl8223de-kernel-5.6.patch
606 Patch3305: 3rd-rtl8723de-add-kernel-5.8-support.patch
607
608 # viahss
609 Patch3400: 3rd-viahss-0.92.patch
610 Patch3401: 3rd-viahss-config.patch
611 Patch3402: 3rd-viahss-module-license.patch
612 Patch3403: 3rd-viahss-2.6.35-buildfix.patch
613 Patch3404: 3rd-viahss-3.0-buildfix.patch
614 Patch3405: 3rd-viahss-Kconfig-Makefile.patch
615
616 # fix Kconfig files for 3rdparty:
617 Patch3900: 3rd-fix-kconfig.patch
618
619 ###
620 ### Python fixes
621 ###
622 Patch4000: linux-5.19-python3.patch
623
624 ###
625 ### TTY
626 ###
627
628 ###
629 ### Security fixes
630 ###
631 Patch5002: CVE-2019-12379.patch
632 #
633 # CVE-2020-16119
634 # https://bugzilla.redhat.com/show_bug.cgi?id=1886374
635 # https://bugzilla.redhat.com/show_bug.cgi?id=1888083
636 Patch5003: CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch
637
638 ###
639 ### Cosmetic fixes (e.g. typos, spelling, etc.)
640 ###
641
642 # broken rtla cleaner
643 Patch6000: hack-broken-rtla-cleaner.patch
644
645
646 ### Fixes from FC kernel
647 # Inspur Advantech PCI ids
648 Patch7000: 0001-scsi-smartpqi-add-inspur-advantech-ids.patch
649 # Vulcan AHCI PCI bar (aarch64)
650 Patch7001: 0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch
651
652 #END
653 ####################################################################
654
655 # Defines for the things that are needed for all the kernels
656 #
657 %define common_desc_kernel The kernel package contains the Linux kernel (vmlinuz), the core of your \
658 Mageia operating system. The kernel handles the basic functions \
659 of the operating system: memory allocation, process allocation, device \
660 input and output, etc.
661
662 %define common_desc_kernel_smp This kernel relies on in-kernel smp alternatives to switch between up & smp \
663 mode depending on detected hardware. To force the kernel to boot in single \
664 processor mode, use the "nosmp" boot parameter.
665
666 ### Global Requires/Provides
667 %define requires1 bootloader-utils >= 1.16-1
668 %define requires2 dracut >= 046-2
669 %define requires3 kmod >= 12-2
670 %define requires4 sysfsutils >= 2.1.0-16
671 %define requires5 kernel-firmware >= 20190603-1
672 # ldetect-lst with SI/CIK swich from radeon to amdgpu
673 %define requires6 ldetect-lst >= 0.6.25-1
674
675 %define kprovides1 %{kname} = %{kverrel}
676 %define kprovides2 kernel = %{tar_ver}
677 %define kprovides3 alsa = 1.0.26
678 %define kprovides_server drbd-api = 88
679
680 # conflict dkms packages that dont support kernel-5.19
681 %define kconflicts1 dkms-broadcom-wl < 6.30.223.271-64
682 %define kconflicts2 dkms-nvidia-current < 470.141.03-1
683 %define kconflicts3 dkms-nvidia470 < 470.141.03-1
684 %define kconflicts4 dkms-nvidia390 < 390.154-1
685 %define kconflicts5 dkms-virtualbox < 6.1.36-1
686 %define kconflicts6 dkms-xtables-addons < 3.21-1
687 # (tmb) conflict older btrfs-progs to get the new in same transaction and in initrd
688 %define kconflicts8 btrfs-progs < 5.10-1
689 # (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd
690 %define kconflicts9 radeon-firmware < 20201218-1
691 # (tmb) conflict old firmware to get the firmwares in initrd
692 %define kconflicts10 kernel-firmware-nonfree < 20201230-1
693 # (tmb) conflict old microcode to get updated ones in initrd for early loading
694 %define kconflicts11 microcode < 0.20201118-2
695 # (tmb) conflict old theme to get mga8 theme in initrd
696 %define kconflicts12 mageia-gfxboot-theme < 4.5.14.11-2
697 # (tmb) conflict too old grub2(-efi)
698 %define kconflicts13 grub2 < 2.02.0-15
699 %define kconflicts14 grub2-efi < 2.02.0-15
700 # (tmb) conflict too old efibootmgr
701 %define kconflicts15 efibootmgr < 16-3
702 # (tmb) force new theme in initrd
703 %define kconflicts16 mageia-theme < 8.0-2
704
705 Autoreqprov: no
706
707 # require new gcc & binutils
708 BuildRequires: gcc >= 10.4.0-2
709 BuildRequires: binutils >= 1:2.36.1-1.4
710 #
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: %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}bpf%{bpfmajor}
1080 Summary: The bpf library from kernel source
1081 Group: System/Libraries
1082
1083 %description -n %{_lib}bpf%{bpfmajor}
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}bpf%{bpfmajor}
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,gen-sysreg.awk,sysreg} $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 mkdir -p $TempDevelRoot/arch/x86/kvm/vmx
1232 cp -fR arch/x86/kvm/vmx/*.h $TempDevelRoot/arch/x86/kvm/vmx/
1233 cp -fR arch/x86/kvm/*.h $TempDevelRoot/arch/x86/kvm/
1234 cp -fR arch/x86/lib/insn.c $TempDevelRoot/arch/x86/lib/
1235 cp -fR arch/x86/purgatory/* $TempDevelRoot/arch/x86/purgatory/
1236 cp -fR arch/x86/entry/syscalls/syscall* $TempDevelRoot/arch/x86/entry/syscalls/
1237 cp -fR arch/x86/include $TempDevelRoot/arch/x86/
1238 cp -fR arch/x86/tools $TempDevelRoot/arch/x86/
1239 %else
1240 cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/%{target_arch}/kernel/
1241 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f $TempDevelRoot; done
1242 %endif
1243 cp -fR .config Module.symvers $TempDevelRoot
1244
1245 # Needed for truecrypt build (Danny)
1246 cp -fR drivers/md/dm.h $TempDevelRoot/drivers/md/
1247
1248 # needed by include/generated/timeconst.h
1249 cp -fR kernel/time/timeconst.bc $TempDevelRoot/kernel/time/
1250
1251 # Needed for lirc_gpio (#39004)
1252 cp -fR drivers/media/pci/bt8xx/bttv{,p}.h $TempDevelRoot/drivers/media/pci/bt8xx/
1253 cp -fR drivers/media/pci/bt8xx/bt848.h $TempDevelRoot/drivers/media/pci/bt8xx/
1254 cp -fR drivers/media/common/btcx-risc.h $TempDevelRoot/drivers/media/common/
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 loongarch 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/ufs
1367 $DevelRoot/include/vdso/*.h
1368 $DevelRoot/include/video
1369 $DevelRoot/include/xen
1370 $DevelRoot/init
1371 $DevelRoot/io_uring
1372 $DevelRoot/ipc
1373 $DevelRoot/kernel
1374 $DevelRoot/lib
1375 $DevelRoot/mm
1376 $DevelRoot/net
1377 $DevelRoot/samples
1378 $DevelRoot/scripts
1379 $DevelRoot/security
1380 $DevelRoot/sound
1381 $DevelRoot/tools
1382 $DevelRoot/usr
1383 $DevelRoot/virt
1384 $DevelRoot/.config
1385 $DevelRoot/Kbuild
1386 $DevelRoot/Kconfig
1387 $DevelRoot/Makefile
1388 $DevelRoot/Module.symvers
1389 $DevelRoot/arch/Kconfig
1390 EOF
1391
1392
1393 ### Create -devel Post script on the fly
1394 cat > $kernel_devel_files-post <<EOF
1395 if [ -d /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel} ]; then
1396 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/{build,source}
1397 ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
1398 ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
1399 fi
1400 EOF
1401
1402
1403 ### Create -devel Preun script on the fly
1404 cat > $kernel_devel_files-preun <<EOF
1405 if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build ]; then
1406 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
1407 fi
1408 if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source ]; then
1409 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
1410 fi
1411 exit 0
1412 EOF
1413
1414 ### Create -devel Postun script on the fly
1415 cat > $kernel_devel_files-postun <<EOF
1416 rm -rf /usr/src/kernel-%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1417 EOF
1418 }
1419
1420 SaveDebug() {
1421 debug_flavour=$1
1422
1423 install -m 644 vmlinux \
1424 %{temp_boot}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}
1425 kernel_debug_files=../kernel_debug_files.$debug_flavour
1426 echo "%{_bootdir}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}" \
1427 >> $kernel_debug_files
1428
1429 find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1430 -name "*.ko" | \
1431 %kxargs -I '{}' objcopy --only-keep-debug '{}' '{}'.debug
1432 find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1433 -name "*.ko" | %kxargs -I '{}' \
1434 sh -c 'cd `dirname {}`; \
1435 objcopy --add-gnu-debuglink=`basename {}`.debug \
1436 --strip-debug `basename {}`'
1437
1438 pushd %{temp_modules}
1439 find %{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1440 -name "*.ko.debug" > debug_module_list
1441 popd
1442 cat %{temp_modules}/debug_module_list | \
1443 sed 's|\(.*\)|%{_modulesdir}/\1|' >> $kernel_debug_files
1444 cat %{temp_modules}/debug_module_list | \
1445 sed 's|\(.*\)|%exclude %{_modulesdir}/\1|' \
1446 >> ../kernel_exclude_debug_files.$debug_flavour
1447 rm -f %{temp_modules}/debug_module_list
1448 }
1449
1450 CreateFiles() {
1451 kernel_flavour=$1
1452
1453 kernel_files=../kernel_files.$kernel_flavour
1454
1455 ker="vmlinuz"
1456 ### Create the kernel_files.*
1457 cat > $kernel_files <<EOF
1458 %{_bootdir}/System.map-%{kversion}-$kernel_flavour-%{buildrpmrel}
1459 %{_bootdir}/symvers-%{kversion}-$kernel_flavour-%{buildrpmrel}.xz
1460 %{_bootdir}/config-%{kversion}-$kernel_flavour-%{buildrpmrel}
1461 %{_bootdir}/$ker-%{kversion}-$kernel_flavour-%{buildrpmrel}
1462 %dir %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/
1463 %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/kernel
1464 %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/modules.*
1465 %doc README.kernel-sources
1466 %ifarch %arm aarch64
1467 %dir %{_libdir}/linux-%{kversion}-$kernel_flavour-%{buildrpmrel}
1468 %{_libdir}/linux-%{kversion}-$kernel_flavour-%{buildrpmrel}/*.dtb
1469 %endif
1470 EOF
1471
1472 %if %build_debug
1473 cat ../kernel_exclude_debug_files.$kernel_flavour >> $kernel_files
1474 %endif
1475
1476 ### Create kernel Posttrans script
1477 cat > $kernel_files-posttrans <<EOF
1478 %if %build_devel
1479 # create kernel-devel symlinks if matching -devel- rpm is installed
1480 if [ -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
1481 ln -sf /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build
1482 ln -sf /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source
1483 fi
1484 %endif
1485 if [ -z "$DURING_INSTALL" ] ; then
1486 if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
1487 /usr/sbin/dkms_autoinstaller start %{kversion}-$kernel_flavour-%{buildrpmrel}
1488 fi
1489 fi
1490 /sbin/installkernel %{kversion}-$kernel_flavour-%{buildrpmrel}
1491 pushd /boot > /dev/null
1492 if [ -e initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img ]; then
1493 ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz-$kernel_flavour
1494 ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz
1495 ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd-$kernel_flavour.img
1496 ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd.img
1497 fi
1498 popd > /dev/null
1499 EOF
1500
1501 ### Create kernel Postun script on the fly
1502 cat > $kernel_files-postun <<EOF
1503 pushd /boot > /dev/null
1504 if [ -f "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
1505 echo "The kernel is still installed in postun, probably a reinstall, skipping cleanup." >&2
1506 exit
1507 fi
1508 if [ -L vmlinuz-$kernel_flavour ]; then
1509 if [ "$(readlink vmlinuz-$kernel_flavour)" = "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
1510 rm -f vmlinuz-$kernel_flavour
1511 fi
1512 fi
1513 if [ -L initrd-$kernel_flavour.img ]; then
1514 if [ "$(readlink initrd-$kernel_flavour.img)" = "initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img" ]; then
1515 rm -f initrd-$kernel_flavour.img
1516 fi
1517 fi
1518 popd > /dev/null
1519 rm -rf /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel} >/dev/null
1520 /sbin/kernel_remove_initrd %{kversion}-$kernel_flavour-%{buildrpmrel}
1521 /sbin/installkernel -R %{kversion}-$kernel_flavour-%{buildrpmrel}
1522 if [ -d /var/lib/dkms ]; then
1523 rm -f /var/lib/dkms/*/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null
1524 rm -rf /var/lib/dkms/*/*/%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1525 rm -f /var/lib/dkms-binary/*/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null
1526 rm -rf /var/lib/dkms-binary/*/*/%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1527 fi
1528 EOF
1529 }
1530
1531
1532 CreateKernel() {
1533 flavour=$1
1534
1535 PrepareKernel $flavour $flavour-%{buildrpmrel}
1536
1537 BuildKernel %{kversion}-$flavour-%{buildrpmrel}
1538 %if %build_devel
1539 SaveDevel $flavour
1540 %endif
1541 %if %build_debug
1542 SaveDebug $flavour
1543 %endif
1544 CreateFiles $flavour
1545 }
1546
1547
1548 ###
1549 # DO it...
1550 ###
1551
1552
1553 # Create a simulacro of buildroot
1554 rm -rf %{temp_root}
1555 install -d %{temp_root}
1556
1557
1558 # make sure we are in the directory
1559 cd %src_dir
1560
1561 %ifarch %{ix86}
1562 %if %build_desktop586
1563 CreateKernel desktop586
1564 %endif
1565 %endif
1566
1567 %if %build_desktop
1568 CreateKernel desktop
1569 %endif
1570
1571 %if %build_server
1572 CreateKernel server
1573 %endif
1574
1575 # set extraversion to match srpm to get nice version reported by the tools
1576 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1577
1578 # build perf
1579 %if %{build_perf}
1580 # perf
1581 %smake -s -C tools/perf NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1582 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} all
1583 %smake -C tools/perf -s prefix=%{_prefix} man
1584 %endif
1585
1586 %if %{build_cpupower}
1587 # cpupower
1588 # make sure version-gen.sh is executable.
1589 chmod +x tools/power/cpupower/utils/version-gen.sh
1590 %make_build -C tools/power/cpupower CPUFREQ_BENCH=false
1591 %endif
1592
1593 # build bpftool
1594 %if %{build_bpftool}
1595 pushd tools/bpf/bpftool
1596 make
1597 popd
1598 %endif
1599
1600 # build libbpf
1601 %if %{build_libbpf}
1602 pushd tools/lib/bpf
1603 make V=1
1604 popd
1605 %endif
1606
1607 # We don't make to repeat the depend code at the install phase
1608 %if %build_source
1609 PrepareKernel "" %{buildrpmrel}custom
1610 %smake ARCH=%{target_arch} -s mrproper
1611 %endif
1612
1613
1614 ###
1615 ### install
1616 ###
1617 %install
1618 install -m 644 %{SOURCE4} .
1619
1620 cd %src_dir
1621
1622 # Directories definition needed for installing
1623 %define target_source %{buildroot}%{_kerneldir}
1624 %define target_boot %{buildroot}%{_bootdir}
1625 %define target_modules %{buildroot}%{_modulesdir}
1626 %define target_headers %{buildroot}%{_prefix}
1627
1628 # We want to be able to test several times the install part
1629 rm -rf %{buildroot}
1630 cp -a %{temp_root} %{buildroot}
1631
1632 # Create directories infastructure
1633 %if %build_source
1634 install -d %{target_source}
1635
1636 tar cf - . | tar xf - -C %{target_source}
1637 chmod -R a+rX %{target_source}
1638
1639 # we remove all the source files that we don't ship
1640 # first architecture files
1641 for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 loongarch m32r m68k m68knommu metag microblaze \
1642 mips nds32 nios2 openrisc parisc powerpc riscv s390 score sh sh64 sparc tile unicore32 v850 xtensa mn10300; do
1643 rm -rf %{target_source}/arch/$i
1644 rm -rf %{target_source}/scripts/dtc/include-prefixes/$i
1645 rm -rf %{target_source}/tools/arch/$i
1646 rm -rf %{target_source}/tools/testing/selftests/$i
1647 done
1648 %ifnarch %{arm} aarch64
1649 rm -rf %{target_source}/include/kvm/arm*
1650 rm -rf %{target_source}/scripts/dtc/include-prefixes/arm*
1651 rm -rf %{target_source}/tools/arch/arm*
1652 %endif
1653
1654 # other misc files
1655 rm -f %{target_source}/{.clang-format,.config.old,.config.cmd,.lst,.mailmap,.get_maintainer.ignore}
1656 rm -f %{target_source}/{.missing-syscalls.d,.cocciconfig,.gitattributes}
1657 rm -rf %{target_source}/.tmp_depmod/
1658
1659 # more cleaning
1660 pushd %{target_source}
1661 # lots of gitignore files
1662 find -iname ".gitignore" -delete
1663 # clean tools tree
1664 %smake -C tools clean
1665 %smake -C tools/build clean
1666 %smake -C tools/build/feature clean
1667 # dont ship generated vdso.so*
1668 %ifarch aarch64
1669 rm -f arch/arm64/kernel/vdso/vdso.so*
1670 %endif
1671 popd
1672
1673 # nuke last as it gets re-created
1674 rm -f %{target_source}/.cache.mk
1675
1676 #endif %build_source
1677 %endif
1678
1679 # compressing modules
1680 %if %{build_modxz}
1681 find %{target_modules} -name "*.ko" | %kxargs xz -6
1682 %else
1683 find %{target_modules} -name "*.ko" | %kxargs gzip -9
1684 %endif
1685
1686 # We used to have a copy of PrepareKernel here
1687 # Now, we make sure that the thing in the linux dir is what we want it to be
1688 for i in %{target_modules}/*; do
1689 rm -f $i/build $i/source
1690 done
1691
1692 # sniff, if we compressed all the modules, we change the stamp :(
1693 # we really need the depmod -ae here
1694 pushd %{target_modules}
1695 for i in *; do
1696 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
1697 echo $?
1698 done
1699
1700 for i in *; do
1701 pushd $i
1702 echo "Creating modules.description for $i"
1703 modules=`find . -name "*.ko.[g,x]z"`
1704 echo $modules | xargs /sbin/modinfo \
1705 | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
1706 popd
1707 done
1708 popd
1709
1710 # need to set extraversion to match srpm again to avoid rebuild
1711 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1712
1713 # install userspace-headers
1714 %if %{build_uheaders}
1715 %smake ARCH=%{target_arch} headers_install INSTALL_HDR_PATH=%{target_headers}
1716 # for drakx
1717 cp include/linux/pci_ids.h %{target_headers}/include/linux/
1718 %endif
1719
1720 %if %{build_perf}
1721 # perf tool binary and supporting scripts/binaries
1722 %smake -s -C tools/perf V=1 DESTDIR=%{buildroot} NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1723 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} install
1724
1725 # perf man pages (note: implicit rpm magic compresses them later)
1726 make -C tools/perf V=1 DESTDIR=%{buildroot} prefix=%{_prefix} install-man
1727
1728 # remove perf files we dont ship
1729 rm -rf %{buildroot}/usr/lib/perf/examples
1730 rm -rf %{buildroot}/usr/lib/perf/include/bpf
1731 rm -rf %{buildroot}/usr/include/perf/perf_dlfilter.h
1732 %endif
1733
1734 %if %{build_cpupower}
1735 make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
1736 rm -f %{buildroot}%{_libdir}/*.{a,la}
1737 %find_lang cpupower
1738 mv cpupower.lang ../
1739 chmod 0755 %{buildroot}%{_libdir}/libcpupower.so*
1740 mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig
1741 install -m644 %{SOURCE50} %{buildroot}%{_unitdir}/cpupower.service
1742 install -m644 %{SOURCE51} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
1743 %endif
1744
1745 # install bpftool
1746 %if %{build_bpftool}
1747 pushd tools/bpf/bpftool
1748 make DESTDIR=%{buildroot} prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} install doc-install
1749 popd
1750 %endif
1751
1752 # install libbpf
1753 %if %{build_libbpf}
1754 pushd tools/lib/bpf
1755 make DESTDIR=%{buildroot} prefix=%{_prefix} libdir=%{_libdir} V=1 install install_headers
1756 popd
1757 %endif
1758
1759 ###
1760 ### clean
1761 ###
1762 %clean
1763 rm -rf %{buildroot}
1764
1765
1766 # We don't want to remove this, the whole reason of its existence is to be
1767 # able to do several rpm --short-circuit -bi for testing install
1768 # phase without repeating compilation phase
1769 #rm -rf %{temp_root}
1770
1771 ###
1772 ### source and doc file lists
1773 ###
1774
1775 %if %build_source
1776 %files -n %{kname}-source-%{buildrel}
1777 %doc %{_kerneldir}/LICENSES
1778 %dir %{_kerneldir}
1779 %dir %{_kerneldir}/arch
1780 %dir %{_kerneldir}/include
1781 %{_kerneldir}/3rdparty
1782 %{_kerneldir}/Documentation
1783 %{_kerneldir}/arch/Kconfig
1784 %{_kerneldir}/arch/arm
1785 %{_kerneldir}/arch/arm64
1786 %{_kerneldir}/arch/um
1787 %{_kerneldir}/arch/x86
1788 %{_kerneldir}/block
1789 %{_kerneldir}/certs
1790 %{_kerneldir}/crypto
1791 %{_kerneldir}/drivers
1792 %{_kerneldir}/fs
1793 %{_kerneldir}/include/acpi
1794 %{_kerneldir}/include/asm-generic
1795 %{_kerneldir}/include/clocksource
1796 %{_kerneldir}/include/crypto
1797 %{_kerneldir}/include/drm
1798 %{_kerneldir}/include/dt-bindings
1799 %{_kerneldir}/include/keys
1800 %{_kerneldir}/include/kunit
1801 %{_kerneldir}/include/kvm
1802 %{_kerneldir}/include/linux
1803 %{_kerneldir}/include/math-emu
1804 %{_kerneldir}/include/media
1805 %{_kerneldir}/include/memory
1806 %{_kerneldir}/include/misc
1807 %{_kerneldir}/include/net
1808 %{_kerneldir}/include/pcmcia
1809 %{_kerneldir}/include/ras
1810 %{_kerneldir}/include/rdma
1811 %{_kerneldir}/include/scsi
1812 %{_kerneldir}/include/soc
1813 %{_kerneldir}/include/sound
1814 %{_kerneldir}/include/target
1815 %{_kerneldir}/include/trace
1816 %{_kerneldir}/include/uapi
1817 %{_kerneldir}/include/ufs
1818 %{_kerneldir}/include/vdso/*.h
1819 %{_kerneldir}/include/video
1820 %{_kerneldir}/include/xen
1821 %{_kerneldir}/init
1822 %{_kerneldir}/io_uring
1823 %{_kerneldir}/ipc
1824 %{_kerneldir}/kernel
1825 %{_kerneldir}/lib
1826 %{_kerneldir}/mm
1827 %{_kerneldir}/net
1828 %{_kerneldir}/virt
1829 %{_kerneldir}/samples
1830 %{_kerneldir}/scripts
1831 %{_kerneldir}/security
1832 %{_kerneldir}/sound
1833 %{_kerneldir}/tools
1834 %{_kerneldir}/usr
1835 %{_kerneldir}/COPYING
1836 %{_kerneldir}/CREDITS
1837 %{_kerneldir}/Kbuild
1838 %{_kerneldir}/Kconfig
1839 %{_kerneldir}/MAINTAINERS
1840 %{_kerneldir}/Makefile
1841 %{_kerneldir}/README
1842 %doc README.kernel-sources
1843
1844 %files -n %{kname}-source-latest
1845 %endif
1846
1847 %if %build_doc
1848 %files -n %{kname}-doc
1849 %doc linux-%{tar_ver}/Documentation/*
1850 %endif
1851
1852 %if %build_uheaders
1853 %files -n %{kname}-userspace-headers
1854 %defattr(0644,root,root,0755)
1855 %{_includedir}/asm/
1856 %{_includedir}/asm-generic/
1857 %{_includedir}/drm/
1858 %{_includedir}/linux/
1859 %{_includedir}/misc/
1860 %{_includedir}/mtd/
1861 %{_includedir}/rdma/
1862 %{_includedir}/scsi/
1863 %{_includedir}/sound/
1864 %{_includedir}/video/
1865 %{_includedir}/xen/
1866 %endif
1867
1868 %if %{build_perf}
1869 %files -n perf
1870 %{_bindir}/perf
1871 %{_bindir}/trace
1872 %{_datadir}/perf-core/strace/groups/file
1873 %{_datadir}/perf-core/strace/groups/string
1874 %{_datadir}/doc/perf-tip/tips.txt
1875 %dir %{_libdir}/traceevent
1876 %dir %{_libdir}/traceevent/plugins
1877 %{_libdir}/traceevent/plugins/plugin_*
1878 %dir %{_prefix}/libexec/perf-core
1879 %{_prefix}/libexec/perf-core/*
1880 %{_mandir}/man[1-8]/perf*
1881 %{_sysconfdir}/bash_completion.d/perf
1882 %endif
1883
1884 %if %{build_cpupower}
1885 %files -n cpupower -f cpupower.lang
1886 %config(noreplace) %{_sysconfdir}/sysconfig/cpupower
1887 %{_bindir}/cpupower
1888 %{_datadir}/bash-completion/completions/cpupower
1889 %{_libdir}/libcpupower.so.0
1890 %{_libdir}/libcpupower.so.0.0.1
1891 %{_unitdir}/cpupower.service
1892 %{_mandir}/man[1-8]/cpupower*
1893
1894 %files -n cpupower-devel
1895 %{_libdir}/libcpupower.so
1896 %{_includedir}/cpuidle.h
1897 %{_includedir}/cpufreq.h
1898 %endif
1899
1900 %if %{build_bpftool}
1901 %files -n bpftool
1902 %{_sbindir}/bpftool
1903 %{_sysconfdir}/bash_completion.d/bpftool
1904 %{_mandir}/man8/bpftool-*.8*
1905 %{_mandir}/man8/bpftool.8*
1906 %endif
1907
1908 %if %{build_libbpf}
1909 %files -n %{_lib}bpf%{bpfmajor}
1910 %{_libdir}/libbpf.so.%{bpfmajor}{,.*}
1911
1912 %files -n %{_lib}bpf-devel
1913 %{_libdir}/libbpf.a
1914 %{_libdir}/libbpf.so
1915 %{_libdir}/pkgconfig/libbpf.pc
1916 %{_includedir}/bpf/bpf.h
1917 %{_includedir}/bpf/bpf_core_read.h
1918 %{_includedir}/bpf/bpf_endian.h
1919 %{_includedir}/bpf/bpf_helper_defs.h
1920 %{_includedir}/bpf/bpf_helpers.h
1921 %{_includedir}/bpf/bpf_tracing.h
1922 %{_includedir}/bpf/btf.h
1923 %{_includedir}/bpf/libbpf.h
1924 %{_includedir}/bpf/libbpf_common.h
1925 %{_includedir}/bpf/libbpf_legacy.h
1926 %{_includedir}/bpf/libbpf_version.h
1927 %{_includedir}/bpf/skel_internal.h
1928 %{_includedir}/bpf/usdt.bpf.h
1929 %{_includedir}/bpf/xsk.h
1930 %endif

  ViewVC Help
Powered by ViewVC 1.1.30