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

  ViewVC Help
Powered by ViewVC 1.1.30