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

  ViewVC Help
Powered by ViewVC 1.1.30