/[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 1864613 - (show annotations) (download)
Thu Jun 16 20:35:03 2022 UTC (22 months, 1 week ago) by tmb
File size: 54899 byte(s)
- update to 5.18.5
- arm64: dts: imx8mm-beacon: Enable RTS-CTS on UART3
- arm64: dts: imx8mn-beacon: Enable RTS-CTS on UART3
- init: Initialize noop_backing_dev_info early
- Revert "drm/amd/display: Fix DCN3 B0 DP Alt Mapping"


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

  ViewVC Help
Powered by ViewVC 1.1.30