/[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 1878844 - (show annotations) (download)
Sat Aug 20 11:02:04 2022 UTC (19 months, 4 weeks ago) by tmb
File size: 55125 byte(s)
- Revert "drm/amdgpu/display: Prepare for new interfaces"
  (fixes 5.19.2 audio regression)
- Revert "usb: typec: ucsi: add a common function ucsi_unregister_connectors()"
  (fixes 5.19 regression casuing kernel crash)


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

  ViewVC Help
Powered by ViewVC 1.1.30