/[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 1907163 - (show annotations) (download)
Mon Nov 14 05:54:08 2022 UTC (17 months ago) by tmb
File size: 54514 byte(s)
- use proper fix for disabling of clean, scripts, oldconfig, prepare targets
  in kernel-devel rpms to cope with make 4.4 series changes


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

  ViewVC Help
Powered by ViewVC 1.1.30