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

  ViewVC Help
Powered by ViewVC 1.1.30