/[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 1935597 - (show annotations) (download)
Tue Jan 24 10:18:02 2023 UTC (14 months, 4 weeks ago) by tmb
File size: 54172 byte(s)
- update to 6.1.8
  * drop merged patches
- hid: Add support for Intel Precise Touch and Stylus
- hid: Add support for Intel Touch Host Controller
- update defconfigs for Microsoft Surface devices
- enable more hid devices


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 1
37 # sublevel is now used for -stable patches
38 %define sublevel 8
39
40 # Package release
41 %define mgarel 1
42
43 # kernel Makefile extraversion is substituted by
44 # rcX which are either 0 (empty), X (as in rcX)
45 %define rcX 0
46
47 # kernel base name (also name of srpm)
48 %define kname kernel
49
50 # Patch tarball tag
51 %define ktag mga
52
53 %define rpmtag %{distsuffix}%{mgaver}
54 %if %{rcX}
55 %define rpmrel %mkrel 0.rc%{rcX}.%{mgarel}
56 %else
57 %define rpmrel %mkrel %{mgarel}
58 %endif
59
60 # fakerel and fakever never change, they are used to fool
61 # rpm/urpmi/smart and ensure the kernels are installed,
62 # not upgraded so old kernel is not overwritten or removed
63 %define fakever 1
64 %define fakerel %mkrel 1
65
66 # version defines
67 %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
68 %define kverrel %{kversion}-%{rpmrel}
69
70 # When we are using a rcX patch, the tarball is a sublevel -1
71 %if %{rcX}
72 %if %sublevel
73 %define tar_ver %{kernelversion}.%{patchlevel}
74 %else
75 %define tar_ver %{kernelversion}.%(expr %{patchlevel} - 1)
76 %endif
77 %else
78 %define tar_ver %{kernelversion}.%{patchlevel}
79 %endif
80
81 # Used for not making too long names for rpms or search paths
82 %if %rcX
83 %define buildrpmrel 0.rc%{rcX}.%{mgarel}%{rpmtag}
84 %else
85 %define buildrpmrel %{mgarel}%{rpmtag}
86 %endif
87 %define buildrel %{kversion}-%{buildrpmrel}
88
89 # libbpf major
90 %define bpfmajor 1
91
92 # Having different top level names for packges means that you have to remove
93 # them by hard :(
94 %define top_dir_name %{kname}-%{_arch}
95
96 %define build_dir ${RPM_BUILD_DIR}/%{top_dir_name}
97 %define src_dir %{build_dir}/linux-%{tar_ver}
98
99 # Disable useless debug rpms...
100 %global _enable_debug_packages %{nil}
101 %global debug_package %{nil}
102 %global __debug_package %{nil}
103 %global __debug_install_post %{nil}
104 %global _build_id_links none
105
106 # no bytecompiling wanted as it breaks build on selftests we dont even ship
107 # for older buildsystems
108 %global _python_bytecompile_build 0
109 # for systems with >= rpm-mageia-setup-2.29-1.mga7
110 %global __brp_python_bytecompile %nil
111
112 # Build defines
113 %define build_doc 1
114 %define build_uheaders 1
115 %define build_source 1
116 %define build_devel 1
117
118 %define build_debug 0
119
120 # Build desktop i586 / 4GB
121 %ifarch %{ix86}
122 %define build_desktop586 1
123 %endif
124
125 # Build desktop (i686 / 64GB) / x86_64 / arm / aarch64
126 %define build_desktop 1
127
128 # Build server (i686 / 64GB)/x86_64 / aarch64
129 %ifnarch %{arm}
130 %define build_server 1
131 %else
132 %define build_server 0
133 %endif
134
135 # build cpupower
136 %ifnarch %{arm} aarch64
137 %define build_cpupower 1
138 %else
139 %define build_cpupower 0
140 %endif
141
142 # build perf
143 %define build_perf 1
144
145 # bpf
146 %define build_bpftool 1
147 %define build_libbpf 1
148
149 # compress modules with xz
150 %ifnarch %{arm}
151 %define build_modxz 1
152 %else
153 %define build_modxz 0
154 %endif
155 # End of user definitions
156
157 # buildtime override flags
158 %{?_without_desktop586: %global build_desktop586 0}
159 %{?_without_desktop: %global build_desktop 0}
160 %{?_without_server: %global build_server 0}
161 %{?_without_doc: %global build_doc 0}
162 %{?_without_uheaders: %global build_uheaders 0}
163 %{?_without_source: %global build_source 0}
164 %{?_without_devel: %global build_devel 0}
165 %{?_without_debug: %global build_debug 0}
166 %{?_without_perf: %global build_perf 0}
167 %{?_without_cpupower: %global build_cpupower 0}
168 %{?_without_bpftool: %global build_bpftool 0}
169 %{?_without_libbpf: %global build_libbpf 0}
170 %{?_without_modxz: %global build_modxz 0}
171
172 %{?_with_desktop586: %global build_desktop586 1}
173 %{?_with_desktop: %global build_desktop 1}
174 %{?_with_server: %global build_server 1}
175 %{?_with_doc: %global build_doc 1}
176 %{?_with_uheaders: %global build_uheaders 1}
177 %{?_with_source: %global build_source 1}
178 %{?_with_devel: %global build_devel 1}
179 %{?_with_debug: %global build_debug 1}
180 %{?_with_perf: %global build_perf 1}
181 %{?_with_cpupower: %global build_cpupower 1}
182 %{?_with_bpftool: %global build_bpftool 1}
183 %{?_with_libbpf: %global build_libbpf 1}
184 %{?_with_modxz: %global build_modxz 1}
185
186 # For the .nosrc.rpm
187 %define build_nosrc 0
188 %{?_with_nosrc: %global build_nosrc 1}
189
190 %if %(if [ -z "$CC" ] ; then echo 0; else echo 1; fi)
191 %define kmake %make_build CC="$CC"
192 %else
193 %define kmake %make_build
194 %endif
195 # there are places where parallel make don't work
196 %define smake make
197
198 # Parallelize xargs invocations on smp machines
199 %define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\
200 && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
201 [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS")
202
203 # arm(64) arch matching
204 %define target_arch %(echo %{_arch} | sed -e 's/arm.*/arm/' -e 's/aarch64/arm64/')
205
206
207 #
208 # SRC RPM description
209 #
210 Summary: Linux kernel built for Mageia
211 Name: %{kname}
212 Version: %{kversion}
213 Release: %{rpmrel}
214 License: GPLv2
215 Group: System/Kernel and hardware
216 ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
217 ExclusiveOS: Linux
218 URL: https://www.kernel.org/
219
220 ####################################################################
221 #
222 # Sources
223 #
224 ### This is for full SRC RPM
225 Source0: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.xz
226 Source1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.sign
227 ### This is for stripped SRC RPM
228 %if %build_nosrc
229 NoSource: 0
230 %endif
231 # This is for disabling *config, mrproper, prepare, scripts on -devel rpms
232 Source2: disable-mrproper-in-devel-rpms.patch
233
234 Source4: README.kernel-sources
235
236 # for creating stable queue patchlist
237 Source5: generate-patchlist.sh
238
239 # copy to patched source tree along with the defconfigs and run it
240 Source10: defconfig-updater.sh
241 Source09: defconfig-updater-simple.sh
242 # x86_64 defconfigs
243 Source11: defconfig-x86_64-desktop
244 Source12: defconfig-x86_64-server
245 # i386 defconfigs
246 Source13: defconfig-i386-desktop586
247 Source14: defconfig-i386-desktop
248 Source15: defconfig-i386-server
249 # arm64 defconfigs
250 Source16: defconfig-arm64-desktop
251 Source17: defconfig-arm64-server
252 # arm defconfigs
253 Source18: defconfig-arm-desktop
254
255 # config and systemd service file from fedora
256 Source50: cpupower.service
257 Source51: cpupower.config
258
259 ####################################################################
260 #
261 # Patches
262
263 #
264 # Patch0 to Patch10 are for core kernel upgrades.
265 #
266
267 %if %sublevel
268 Patch1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kernelversion}.%{patchlevel}.%{sublevel}.xz
269 %endif
270 %if %{rcX}
271 # (tmb) Created with:
272 # wget https://git.kernel.org/torvalds/p/v5.10-rc7/v5.9 -O patch-5.10-rc7
273 # xz -6e patch-5.10-rc7
274 Patch2: patch-%{kernelversion}.%{patchlevel}-rc%{rcX}.xz
275 %endif
276
277 ###
278 ### Stable Queue can be big
279 ### Patches from 100-999
280 ###
281 ### add patches here by copying contents of kernel matching queue-x.y from:
282 ### https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/
283 ### to SOURCES, generate patchlist with generate-patchlist.sh and paste it here
284 ###
285
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 ###
308 ### ACPI
309 ###
310
311 # CLEVO M360S acpi irq workaround
312 Patch1100: acpi-CLEVO-M360S-disable_acpi_irq.patch
313
314 # Clevo M720SR freezes with C3
315 Patch1105: acpi-processor-M720SR-limit-to-C2.patch
316
317 # ACPI PM fixes (TTL: 5.18)
318 Patch1130: x86-ACPI-State-Optimize-C3-entry-on-AMD-CPUs.patch
319
320 ###
321 ### Block
322 ###
323
324 # FIXME: Don't know know why this is needed
325 Patch1200: scsi-megaraid-new-sysfs-name.patch
326
327 # adds aliases to support upgrade from old dm-raid45 patch
328 Patch1215: dm-raid-aliases.patch
329
330 # disable floppy autoloading (mga #4696)
331 Patch1220: block-floppy-disable-pnp-modalias.patch
332
333 ###
334 ### bpf
335 ###
336
337 ###
338 ### Crypto
339 ###
340
341 ###
342 ### dma
343 ###
344
345 ###
346 ### File-system
347 ###
348
349 ###
350 ### FireWire
351 ###
352
353 # adding module aliases to ease upgrade from ieee1394
354 Patch1400: firewire-ieee1394-module-aliases.patch
355
356 ###
357 ### Firmware
358 ###
359
360 ###
361 ### GPU/DRM
362 ###
363
364 # mga compat option
365 Patch1500: drm-gpu-drm-treat-nokmsboot-as-nomodeset.patch
366
367 # amdgpu
368 # switch SI and CIK from radeon to amdgpu
369 Patch1520: drm-amdgpu-SI-and-CIK-enabled-by-default.patch
370
371 # new Q57 Host Bridge id
372 Patch1530: char-agp-intel-new-Q57-id.patch
373
374 # i915
375 # TGL
376 Patch1546: drm-i915-psr-Disable-PSR2-selective-fetch-for-all-TGL-steps.patch
377 # DG2
378 Patch1547: drm-i915-dg2-Drop-force_probe-requirement.patch
379
380 # https://bugzilla.kernel.org/show_bug.cgi?id=206653#c19
381 Patch1552: i2c_nvidia_gpu-change-err-into-info.patch
382
383 ###
384 ### gpio
385 ###
386
387 ###
388 ### hwmon
389 ###
390
391 ###
392 ### i2c
393 ###
394
395 ###
396 ### io_uring
397 ###
398
399 ###
400 ### iommu
401 ###
402
403 ###
404 ### Input
405 ###
406
407 ###
408 ### HID
409 ###
410
411 # surface bits
412 # from: https://github.com/linux-surface
413 Patch1750: hid-Add-support-for-Intel-Precise-Touch-and-Stylus.patch
414 Patch1751: hid-Add-support-for-Intel-Touch-Host-Controller.patch
415 Patch1752: iommu-intel-Disable-source-id-verification-for-ITHC.patch
416
417 ###
418 ### kernel
419 ###
420
421 # zstd 1.5.2 (TTL: 6.2)
422 Patch1800: lib-zstd-clean-up-double-word-in-comment.patch
423 Patch1801: MAINTAINERS-git-github-https-github.com-for-terrelln.patch
424 Patch1802: lib-zstd-fix-repeated-words-in-comments.patch
425 Patch1803: lib-zstd-Fix-comment-typo.patch
426 Patch1804: zstd-Move-zstd-common-module-exports-to-zstd_common_.patch
427 Patch1805: zstd-import-usptream-v1.5.2.patch
428
429 ###
430 ### MFD
431 ###
432
433 ###
434 ### MM
435 ###
436
437 # MGLRU performance fixes
438 Patch1860: mm-add-vma_has_recency.patch
439 Patch1861: mm-support-posix_fadv_noreuse.patch
440
441 # 6.1 regression
442 Patch1870: Revert-mm-compaction-fix-set-skip-in-fast_find_migrateblock.patch
443
444 ###
445 ### Network
446 ###
447
448 # SiS 190 fixes
449 Patch1900: net-sis190-fix-list-usage.patch
450
451 # netfilter IFWLOG support
452 Patch1910: net-netfilter-IFWLOG.patch
453 Patch1911: net-netfilter-IFWLOG-mdv.patch
454 Patch1912: net-netfilter-IFWLOG-2.6.35-buildfix.patch
455 Patch1913: net-netfilter-IFWLOG-2.6.37-buildfix.patch
456 Patch1914: net-ipv4-netfilter-ipt_IFWLOG-3.6-buildfix.patch
457 Patch1915: net-netfilter-IFWLOG-3.7-buildfix.patch
458 Patch1916: net-netfilter-IFWLOG-remove-unused-label.patch
459 Patch1917: net-netfilter-ipt_IFWLOG-4.12-buildfix.patch
460 Patch1918: net-netfilter-IFWLOG-5.0-buildfix.patch
461
462 # netfilter psd support
463 Patch1920: net-netfilter-psd.patch
464 Patch1921: net-netfilter-psd-mdv.patch
465 Patch1922: net-netfilter-psd-2.6.35-buildfix.patch
466 Patch1923: net-netfilter-psd-fix-redefines.patch
467
468 # rtw88 wifi
469 # add alias for the replaced r8822be staging driver
470 Patch1930: net-wireless-rtw88-add-r8822be-alias.patch
471 # add alias for the replaced 8723de 3rdparty driver
472 Patch1931: net-wireless-rtw88-add-8723de-alias.patch
473 # add support for 8723DU, 8821CU, 8822BU, 8822CU (TTL 6.2)
474 Patch1932: net-wireless-rtw88-6.2-git.patch
475 # add support for 8852B, 8852BE (TTL 6.2)
476 Patch1933: net-wireless-rtw89-6.2-git.patch
477
478 # rtl8xxxu
479 Patch1960: wifi-rtl8xxxu-fixing-transmisison-failure-for-rtl8192eu.patch
480
481 # iwlfiwi
482 Patch1980: net-wireless-iwlwifi-add-new-pci-id-for-6235.patch
483 Patch1981: wifi-iwlwifi-pcie-add-support-for-AX101NGW.patch
484
485 ###
486 ### PCI
487 ###
488
489 ###
490 ### pinctrl
491 ###
492
493 ###
494 ### Platform
495 ###
496
497 # Allow access to Shuttle WMI interface controls
498 # (Mainly allow turning on/off webcam and wireless on Shuttle DA18IE and DA18IM)
499 Patch2050: platform-x86-add-shuttle-wmi-driver.patch
500 Patch2051: platform-x86-shuttle-wmi-drop-devinit-exit.patch
501 Patch2052: platform-x86-shuttle-wmi-4.2-buildfix.patch
502 Patch2053: platform-x86-shuttle-wmi-4.13-buildfix.patch
503 Patch2054: platform-x86-shuttle-wmi-kernel-5.5.patch
504
505 ###
506 ### PM
507 ###
508
509 ###
510 ### Sound
511 ###
512
513 ###
514 ### SPI
515 ###
516
517 ###
518 ### Staging
519 ###
520
521 # add rtl8812 support (mga#21043)
522 # from https://github.com/aircrack-ng/rtl8812au.git
523 Patch2200: staging-rtl8812au.patch
524 Patch2201: staging-rtl8812au-rename.patch
525 Patch2202: staging-rtl8812au-Kconfig-Makefile.patch
526
527 ###
528 ### Thermal
529 ###
530
531 ###
532 ### Thunderbolt
533 ###
534
535 ###
536 ### USB
537 ###
538
539 Patch2300: hid-usbhid-IBM-BladeCenterHS20-quirk.patch
540
541 Patch2310: usb-storage-unusual_devs-add-id.patch
542 Patch2311: usb-storage-unusual_devs-add-id-2.6.37-buildfix.patch
543
544 ###
545 ### V4L
546 ###
547
548 # pwc driver name in /proc/bus/devices, /sys fix and "advertisement" removal
549 Patch2400: media-usb-pwc-lie-in-proc-usb-devices.patch
550
551 ###
552 ### Video
553 ###
554
555 # Mageia framebuffer boot logo
556 Patch2500: video-mageia-logo.patch
557
558 ###
559 ### Virt
560 ###
561
562 # fix gcc-10 build
563 Patch2550: KVM-squelch-uninitialized-variable-warning.patch
564
565 ###
566 ### Tools
567 ###
568
569 # wipe powerpc refrence so we can nuke dangling symlinks (mga#17676)
570 Patch2600: tools-testing-selftest-Makefile-remove-powerpc-reference.patch
571
572 # fix perf build
573 Patch2605: tools-perf-ui-include-slang.patch
574
575 ###
576 ### UAPI
577 ###
578
579 Patch2700: uapi-avoid-namespace-conflict-in-linux-posix_types.h.patch
580
581 ###
582 ### Python fixes
583 ###
584 Patch4000: linux-6.1-python3.patch
585
586 ###
587 ### TTY
588 ###
589
590 # broken rtla cleaner
591 Patch6000: hack-broken-rtla-cleaner.patch
592
593
594 ### Fixes from FC kernel
595 # Inspur Advantech PCI ids
596 Patch7000: 0001-scsi-smartpqi-add-inspur-advantech-ids.patch
597 # Vulcan AHCI PCI bar (aarch64)
598 Patch7001: 0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch
599
600 #END
601 ####################################################################
602
603 # Defines for the things that are needed for all the kernels
604 #
605 %define common_desc_kernel The kernel package contains the Linux kernel (vmlinuz), the core of your \
606 Mageia operating system. The kernel handles the basic functions \
607 of the operating system: memory allocation, process allocation, device \
608 input and output, etc.
609
610 %define common_desc_kernel_smp This kernel relies on in-kernel smp alternatives to switch between up & smp \
611 mode depending on detected hardware. To force the kernel to boot in single \
612 processor mode, use the "nosmp" boot parameter.
613
614 ### Global Requires/Provides
615 %define requires1 bootloader-utils >= 1.16-1
616 %define requires2 dracut >= 046-2
617 %define requires3 kmod >= 12-2
618 %define requires4 sysfsutils >= 2.1.0-16
619 %define requires5 kernel-firmware >= 20190603-1
620 # ldetect-lst with SI/CIK swich from radeon to amdgpu
621 %define requires6 ldetect-lst >= 0.6.25-1
622
623 %define kprovides1 %{kname} = %{kverrel}
624 %define kprovides2 kernel = %{tar_ver}
625 %define kprovides3 alsa = 1.0.26
626 %define kprovides_server drbd-api = 88
627
628 # conflict dkms packages that dont support kernel-5.19
629 %define kconflicts1 dkms-broadcom-wl < 6.30.223.271-64
630 %define kconflicts2 dkms-nvidia-current < 470.141.03-1
631 %define kconflicts3 dkms-nvidia470 < 470.141.03-1
632 %define kconflicts4 dkms-nvidia390 < 390.154-1
633 %define kconflicts5 dkms-virtualbox < 6.1.36-1
634 %define kconflicts6 dkms-xtables-addons < 3.21-1
635 # (tmb) conflict older btrfs-progs to get the new in same transaction and in initrd
636 %define kconflicts8 btrfs-progs < 5.10-1
637 # (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd
638 %define kconflicts9 radeon-firmware < 20201218-1
639 # (tmb) conflict old firmware to get the firmwares in initrd
640 %define kconflicts10 kernel-firmware-nonfree < 20201230-1
641 # (tmb) conflict old microcode to get updated ones in initrd for early loading
642 %define kconflicts11 microcode < 0.20201118-2
643 # (tmb) conflict old theme to get mga8 theme in initrd
644 %define kconflicts12 mageia-gfxboot-theme < 4.5.14.11-2
645 # (tmb) conflict too old grub2(-efi)
646 %define kconflicts13 grub2 < 2.02.0-15
647 %define kconflicts14 grub2-efi < 2.02.0-15
648 # (tmb) conflict too old efibootmgr
649 %define kconflicts15 efibootmgr < 16-3
650 # (tmb) force new theme in initrd
651 %define kconflicts16 mageia-theme < 8.0-2
652
653 Autoreqprov: no
654
655 # require new gcc & binutils
656 BuildRequires: gcc >= 10.4.0-2
657 BuildRequires: binutils >= 1:2.36.1-1.4
658 #
659 BuildRequires: kmod >= 12-2
660 BuildRequires: bc
661 # for crypto stuff
662 BuildRequires: pkgconfig(openssl)
663 # since 4.16
664 BuildRequires: bison
665 BuildRequires: diffutils
666 BuildRequires: elfutils-devel
667 BuildRequires: flex
668 # for headers_install
669 BuildRequires: rsync
670 # for cpupower
671 %if %{build_cpupower}
672 BuildRequires: pkgconfig(libpci)
673 %endif
674 # for perf
675 %if %{build_perf}
676 BuildRequires: audit-devel
677 BuildRequires: binutils-devel
678 BuildRequires: gtk2-devel
679 BuildRequires: libunwind-devel
680 BuildRequires: newt-devel
681 BuildRequires: python3-devel
682 BuildRequires: zlib-devel
683 BuildRequires: asciidoc
684 BuildRequires: xmlto-notex
685 BuildRequires: perl-devel
686 %if 0%{?mageia} >= 8
687 BuildRequires: systemtap-sdt-devel
688 BuildRequires: babeltrace-devel
689 %else
690 BuildRequires: libbabeltrace-devel
691 %endif
692 %ifarch %{ix86} x86_64
693 BuildRequires: numa-devel
694 %endif
695 %endif
696 %if %{build_bpftool}
697 BuildRequires: python3-docutils
698 BuildRequires: cap-devel
699 %endif
700
701 %description
702 %common_desc_kernel
703 %ifnarch %{arm}
704 %common_desc_kernel_smp
705 %endif
706
707 # mkflavour() name flavour processor
708 # name: the flavour name in the package name
709 # flavour: first parameter of CreateKernel()
710 %define mkflavour() \
711 %package -n %{kname}-%{1}-%{buildrel} \
712 Version: %{fakever} \
713 Release: %{fakerel} \
714 Provides: %kprovides1 %kprovides2 %kprovides3 \
715 %{expand:%%{?kprovides_%{1}:Provides: %{kprovides_%{1}}}} \
716 Provides: %{kname}-%{1} \
717 Requires(pre): %requires1 %requires2 %requires3 %requires4 \
718 Requires: %requires2 %requires5 %requires6 \
719 Conflicts: %kconflicts1 %kconflicts2 %kconflicts3 \
720 Conflicts: %kconflicts4 %kconflicts5 %kconflicts6 \
721 Conflicts: %kconflicts8 %kconflicts9 \
722 Conflicts: %kconflicts10 %kconflicts11 %kconflicts12 \
723 Conflicts: %kconflicts13 %kconflicts14 %kconflicts15 \
724 Conflicts: %kconflicts16 \
725 %if 0%{?mageia} >= 8 \
726 Obsoletes: crda \
727 Obsoletes: crda-devel \
728 Obsoletes: fuse-exfat \
729 %endif \
730 Provides: should-restart = system \
731 Provides: installonlypkg(kernel) \
732 Recommends: iw cpupower microcode \
733 Recommends: %{kname}-%{1}-latest \
734 %ifarch %{ix86} \
735 Conflicts: arch(x86_64) \
736 %endif \
737 Summary: %{expand:%{summary_%(echo %{1} | sed -e "s/-/_/")}} \
738 Group: System/Kernel and hardware \
739 %description -n %{kname}-%{1}-%{buildrel} \
740 %common_desc_kernel %{expand:%{info_%(echo %{1} | sed -e "s/-/_/")}} \
741 %ifnarch %{arm} \
742 %common_desc_kernel_smp \
743 %endif \
744 \
745 %if %build_devel \
746 %package -n %{kname}-%{1}-devel-%{buildrel} \
747 Version: %{fakever} \
748 Release: %{fakerel} \
749 Requires: glibc-devel ncurses-devel make gcc perl \
750 Requires: gcc >= 5.5.0-1 \
751 %ifarch x86_64 \
752 Requires: pkgconfig(libelf) \
753 %endif \
754 Summary: The kernel-devel files for %{kname}-%{1}-%{buildrel} \
755 Group: Development/Kernel \
756 Provides: %{kname}-devel = %{kverrel} \
757 Provides: %{kname}-%{1}-devel \
758 Recommends: %{kname}-%{1}-devel-latest \
759 %ifarch %{ix86} \
760 Conflicts: arch(x86_64) \
761 %endif \
762 %description -n %{kname}-%{1}-devel-%{buildrel} \
763 This package contains the kernel files (headers and build tools) \
764 that should be enough to build additional drivers for \
765 use with %{kname}-%{1}-%{buildrel}. \
766 \
767 If you want to build your own kernel, you need to install the full \
768 %{kname}-source-%{buildrel} rpm. \
769 \
770 %endif \
771 \
772 %if %build_debug \
773 %package -n %{kname}-%{1}-%{buildrel}-debuginfo \
774 Version: %{fakever} \
775 Release: %{fakerel} \
776 Summary: Files with debuginfo for %{kname}-%{1}-%{buildrel} \
777 Group: Development/Debug \
778 Provides: kernel-debug = %{kverrel} \
779 %ifarch %{ix86} \
780 Conflicts: arch(x86_64) \
781 %endif \
782 %description -n %{kname}-%{1}-%{buildrel}-debuginfo \
783 This package contains the files with debuginfo to aid in debug tasks \
784 when using %{kname}-%{1}-%{buildrel}. \
785 \
786 If you need to look at debug information or use some application that \
787 needs debugging info from the kernel, this package may help. \
788 \
789 %endif \
790 \
791 %package -n %{kname}-%{1}-latest \
792 Version: %{kversion} \
793 Release: %{rpmrel} \
794 Summary: Virtual rpm for latest %{kname}-%{1} \
795 Group: System/Kernel and hardware \
796 Requires: %{kname}-%{1}-%{buildrel} \
797 %ifarch %{ix86} \
798 Conflicts: arch(x86_64) \
799 %endif \
800 Obsoletes: vboxadditions-kernel-%{1}-latest \
801 Obsoletes: kernel-tmb-%{1}-latest \
802 %description -n %{kname}-%{1}-latest \
803 This package is a virtual rpm that aims to make sure you always have the \
804 latest %{kname}-%{1} installed... \
805 \
806 %if %build_devel \
807 %package -n %{kname}-%{1}-devel-latest \
808 Version: %{kversion} \
809 Release: %{rpmrel} \
810 Summary: Virtual rpm for latest %{kname}-%{1}-devel \
811 Group: Development/Kernel \
812 Requires: %{kname}-%{1}-devel-%{buildrel} \
813 %ifarch %{ix86} \
814 Conflicts: arch(x86_64) \
815 %endif \
816 Provides: %{kname}-devel-latest \
817 Obsoletes: kernel-tmb-%{1}-devel-latest \
818 %description -n %{kname}-%{1}-devel-latest \
819 This package is a virtual rpm that aims to make sure you always have the \
820 latest %{kname}-%{1}-devel installed... \
821 \
822 %endif \
823 \
824 %posttrans -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-posttrans \
825 %postun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-postun \
826 \
827 %if %build_devel \
828 %post -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-post \
829 %preun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-preun \
830 %postun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-postun \
831 %endif \
832 \
833 %files -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1} \
834 %files -n %{kname}-%{1}-latest \
835 \
836 %if %build_devel \
837 %files -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1} \
838 %files -n %{kname}-%{1}-devel-latest \
839 %endif \
840 \
841 %if %build_debug \
842 %files -n %{kname}-%{1}-%{buildrel}-debuginfo -f kernel_debug_files.%{1} \
843 %endif
844
845 %ifarch %{ix86}
846 #
847 # kernel-desktop586: i586, smp-alternatives, 4GB
848 #
849 %if %build_desktop586
850 %define summary_desktop586 Linux kernel for desktop use with i586 and less than 4GB RAM
851 %define info_desktop586 This kernel is compiled for desktop use, single or \
852 multiple i586 processor(s)/core(s) and less than 4GB RAM (usually 3-3.5GB \
853 detected, if you need/want to use all 4GB or more, install kernel-server), \
854 using HZ_1000, voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
855 %mkflavour desktop586
856 %endif
857 %endif
858
859 #
860 # kernel-desktop: i686, smp-alternatives, 64 GB / x86_64 / arm / aarch64
861 #
862 %if %build_desktop
863 %ifarch %{ix86}
864 %define summary_desktop Linux Kernel for desktop use with i686 and up to 64GB RAM
865 %define info_desktop This kernel is compiled for desktop use, single or \
866 multiple i686 processor(s)/core(s) and up to 64GB RAM, using HZ_1000, \
867 voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
868 %else
869 %define summary_desktop Linux Kernel for desktop use with %{_arch}
870 %define info_desktop This kernel is compiled for desktop use, single or \
871 multiple %{_arch} processor(s)/core(s), using HZ_1000, voluntary preempt, \
872 CFS cpu scheduler and cfq i/o scheduler.
873 %endif
874 %mkflavour desktop
875 %endif
876
877 #
878 # kernel-server: i686, smp-alternatives, 64 GB / x86_64 / aarch64
879 #
880 %if %build_server
881 %ifarch %{ix86}
882 %define summary_server Linux Kernel for server use with i686 & 64GB RAM
883 %define info_server This kernel is compiled for server use, single or \
884 multiple i686 processor(s)/core(s) and up to 64GB RAM using PAE, using \
885 no preempt, HZ_100, CFS cpu scheduler and cfq i/o scheduler.
886 %else
887 %define summary_server Linux Kernel for server use with %{_arch}
888 %define info_server This kernel is compiled for server use, single or \
889 multiple %{_arch} processor(s)/core(s), using no preempt, HZ_100, \
890 CFS cpu scheduler and cfq i/o scheduler.
891 %endif
892 %mkflavour server
893 %endif
894
895 #
896 # kernel-source
897 #
898 %if %build_source
899 %package -n %{kname}-source-%{buildrel}
900 Version: %{fakever}
901 Release: %{fakerel}
902 Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
903 Summary: The Linux source code for %{kname}-%{buildrel}
904 Group: Development/Kernel
905 Autoreqprov: no
906 Provides: kernel-source = %{kverrel}
907 Buildarch: noarch
908
909 %description -n %{kname}-source-%{buildrel}
910 The %{kname}-source package contains the source code files for the Mageia
911 kernel. Theese source files are only needed if you want to build your
912 own custom kernel that is better tuned to your particular hardware.
913
914 If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
915 drivers against, install the *-devel-* rpm that is matching your kernel.
916
917 #
918 # kernel-source-latest: virtual rpm
919 #
920 %package -n %{kname}-source-latest
921 Version: %{kversion}
922 Release: %{rpmrel}
923 Summary: Virtual rpm for latest %{kname}-source
924 Group: Development/Kernel
925 Requires: %{kname}-source-%{buildrel}
926 Buildarch: noarch
927
928 %description -n %{kname}-source-latest
929 This package is a virtual rpm that aims to make sure you always have the
930 latest %{kname}-source installed...
931 %endif
932
933 #
934 # kernel-doc: documentation for the Linux kernel
935 #
936 %if %build_doc
937 %package -n %{kname}-doc
938 Version: %{kversion}
939 Release: %{rpmrel}
940 Summary: Various documentation bits found in the %{kname} source
941 Group: Documentation
942 Buildarch: noarch
943
944 %description -n %{kname}-doc
945 This package contains documentation files from the %{kname} source.
946 Various bits of information about the Linux kernel and the device drivers
947 shipped with it are documented in these files. You also might want install
948 this package if you need a reference to the options that can be passed to
949 Linux kernel modules at load time.
950 %endif
951
952 #
953 # kernel userspace-headers
954 #
955 %if %{build_uheaders}
956 %package -n %{kname}-userspace-headers
957 Version: %{kversion}
958 Release: %{rpmrel}
959 Summary: Linux kernel header files for userspace
960 Group: System/Kernel and hardware
961 %rename linux-userspace-headers
962 Provides: kernel-headers = 1:%{version}-%{release}
963
964 %description -n %{kname}-userspace-headers
965 C header files from the Linux kernel. The header files define structures
966 and constants that are needed for building most standard programs.
967
968 This package is not suitable for building kernel modules.
969 %endif
970
971 #
972 # kernel/tools
973 #
974 %if %{build_perf}
975 %package -n perf
976 Version: %{kversion}
977 Release: %{rpmrel}
978 Summary: perf tool and the supporting documentation
979 Group: System/Kernel and hardware
980
981 %description -n perf
982 the perf tool and the supporting documentation.
983 %endif
984
985 %if %{build_cpupower}
986 %package -n cpupower
987 Version: %{kversion}
988 Release: %{rpmrel}
989 Summary: the cpupower tools
990 Group: System/Kernel and hardware
991 Requires(post): rpm-helper >= 0.24.8-1
992 Requires(preun): rpm-helper >= 0.24.8-1
993 Obsoletes: cpufreq cpufrequtils
994
995 %description -n cpupower
996 the cpupower tools.
997
998 %post -n cpupower
999 %_post_service cpupower
1000
1001 %preun -n cpupower
1002 %_preun_service cpupower
1003
1004 %package -n cpupower-devel
1005 Version: %{kversion}
1006 Release: %{rpmrel}
1007 Summary: devel files for cpupower
1008 Group: Development/Kernel
1009 Requires: cpupower = %{kversion}-%{rpmrel}
1010 Conflicts: %{_lib}cpufreq-devel
1011
1012 %description -n cpupower-devel
1013 This package contains the development files for cpupower.
1014 %endif
1015
1016 %if %{build_bpftool}
1017 %package -n bpftool
1018 Summary: Inspection and simple manipulation of eBPF programs and maps
1019 Group: System/Kernel and hardware
1020
1021 %description -n bpftool
1022 This package contains the bpftool, which allows inspection and simple
1023 manipulation of eBPF programs and maps.
1024 %endif
1025
1026 %if %{build_libbpf}
1027 %package -n %{_lib}bpf%{bpfmajor}
1028 Summary: The bpf library from kernel source
1029 Group: System/Libraries
1030
1031 %description -n %{_lib}bpf%{bpfmajor}
1032 This package contains the kernel source bpf library.
1033
1034 %package -n %{_lib}bpf-devel
1035 Summary: Developement files for the bpf library from kernel source
1036 Group: Development/Kernel
1037 Requires: %{_lib}bpf%{bpfmajor}
1038
1039 %description -n %{_lib}bpf-devel
1040 This package includes libraries and header files needed for development
1041 of applications which use bpf library from kernel source.
1042 %endif
1043
1044 #
1045 # End packages - here begins build stage
1046 #
1047 %prep
1048 %setup -q -n %top_dir_name -c
1049
1050 cd %src_dir
1051
1052 %autopatch -p1
1053
1054 # PATCH END
1055
1056 #
1057 # Setup Begin
1058 #
1059
1060 # install x86 defconfigs
1061 install -m 644 %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} arch/x86/configs/
1062 # install arm64 defconfigs
1063 install -m 644 %{SOURCE16} %{SOURCE17} arch/arm64/configs/
1064 # install arm defconfigs
1065 install -m 644 %{SOURCE18} arch/arm/configs/
1066
1067 # make sure the kernel has the sublevel we know it has...
1068 LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
1069
1070 # get rid of unwanted files
1071 find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f
1072
1073 # fix missing exec flag on file introduced in 4.14.10-rc1
1074 chmod 755 tools/objtool/sync-check.sh
1075
1076 %build
1077 # Common target directories
1078 %define _kerneldir /usr/src/kernel-%{kversion}-%{buildrpmrel}
1079 %define _bootdir /boot
1080 %define _modulesdir /lib/modules
1081 %define _efidir %{_bootdir}/efi/mageia
1082
1083 # Directories definition needed for building
1084 %define temp_root %{build_dir}/temp-root
1085 %define temp_source %{temp_root}%{_kerneldir}
1086 %define temp_boot %{temp_root}%{_bootdir}
1087 %define temp_modules %{temp_root}%{_modulesdir}
1088
1089 PrepareKernel() {
1090 name=$1
1091 extension=$2
1092
1093 echo "Make config for kernel $extension"
1094
1095 %smake ARCH=%{target_arch} -s mrproper
1096
1097 if [ "%{target_arch}" == "i386" -o "%{target_arch}" == "x86_64" ]; then
1098 conf_dir=arch/x86/configs
1099 else
1100 conf_dir=arch/%{target_arch}/configs
1101 fi
1102 if [ -z "$name" ]; then
1103 cp $conf_dir/defconfig-%{target_arch}-desktop .config
1104 else
1105 cp $conf_dir/defconfig-%{target_arch}-$name .config
1106 fi
1107
1108 # make sure EXTRAVERSION says what we want it to say
1109 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -$extension/" Makefile
1110
1111 %smake ARCH=%{target_arch} oldconfig
1112 }
1113
1114 BuildKernel() {
1115 KernelVer=$1
1116
1117 echo "Building kernel $KernelVer"
1118
1119 %kmake ARCH=%{target_arch} -s all
1120
1121 # Start installing stuff
1122 install -d %{temp_boot}
1123 install -m 644 System.map %{temp_boot}/System.map-$KernelVer
1124 install -m 644 .config %{temp_boot}/config-$KernelVer
1125 xz -c Module.symvers > %{temp_boot}/symvers-$KernelVer.xz
1126
1127 %ifarch %{arm}
1128 IMAGE=zImage
1129 %else
1130 %ifarch aarch64
1131 IMAGE=Image.gz
1132 %else
1133 IMAGE=bzImage
1134 %endif
1135 %endif
1136 cp -f arch/%{target_arch}/boot/$IMAGE %{temp_boot}/vmlinuz-$KernelVer
1137
1138 %ifarch %{arm} aarch64
1139 install -d %{temp_root}%{_libdir}/linux-$KernelVer/
1140 find arch/%{target_arch}/boot/dts/ -name *.dtb -execdir install -D -m644 {} %{temp_root}%{_libdir}/linux-$KernelVer/{} \;
1141 %endif
1142
1143 # modules
1144 install -d %{temp_modules}/$KernelVer
1145 %smake ARCH=%{target_arch} INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=$KernelVer modules_install
1146 }
1147
1148 SaveDevel() {
1149 devel_flavour=$1
1150
1151 DevelRoot=/usr/src/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}
1152 TempDevelRoot=%{temp_root}$DevelRoot
1153
1154 mkdir -p $TempDevelRoot
1155 for i in $(find . -name 'Makefile*'); do cp -R --parents $i $TempDevelRoot;done
1156 for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*'); do cp -R --parents $i $TempDevelRoot;done
1157 cp -fR include $TempDevelRoot
1158 cp -fR scripts $TempDevelRoot
1159 cp -fR kernel/bounds.c $TempDevelRoot/kernel
1160 cp -fR tools/include $TempDevelRoot/tools/
1161 # needed for selinux
1162 cp -R --parents security/selinux/include/*.h $TempDevelRoot
1163 %ifarch %{arm}
1164 cp -fR arch/%{target_arch}/tools $TempDevelRoot/arch/%{target_arch}/
1165 cp -fR arch/%{target_arch}/kernel/signal.h $TempDevelRoot/arch/%{target_arch}/kernel/
1166 %endif
1167 %ifarch aarch64
1168 cp -fR arch/x86/entry/syscalls/syscall_32.tbl $TempDevelRoot/arch/x86/entry/syscalls/
1169 cp -fR arch/arm64/kernel/vdso/*.{S,sh} $TempDevelRoot/arch/arm64/kernel/vdso/
1170 cp -fR arch/arm64/kernel/vdso/vgettimeofday.c $TempDevelRoot/arch/arm64/kernel/vdso/
1171 cp -fR arch/arm64/tools/{cpucaps,gen-cpucaps.awk,gen-sysreg.awk,sysreg} $TempDevelRoot/arch/arm64/tools/
1172 # aarch64 build wants x86 syscall tables
1173 cp -fR arch/x86/entry/syscalls/syscall_{32,64}.tbl $TempDevelRoot/arch/x86/entry/syscalls/
1174 cp -fR lib/vdso/gettimeofday.c $TempDevelRoot/lib/vdso/
1175 %endif
1176 %ifarch %{ix86} x86_64
1177 cp -fR arch/x86/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/x86/kernel/
1178 cp -fR arch/x86/kernel/asm-offsets_{32,64}.c $TempDevelRoot/arch/x86/kernel/
1179 mkdir -p $TempDevelRoot/arch/x86/kvm/vmx
1180 cp -fR arch/x86/kvm/vmx/*.h $TempDevelRoot/arch/x86/kvm/vmx/
1181 cp -fR arch/x86/kvm/*.h $TempDevelRoot/arch/x86/kvm/
1182 cp -fR arch/x86/lib/insn.c $TempDevelRoot/arch/x86/lib/
1183 cp -fR arch/x86/purgatory/* $TempDevelRoot/arch/x86/purgatory/
1184 cp -fR arch/x86/entry/syscalls/syscall* $TempDevelRoot/arch/x86/entry/syscalls/
1185 cp -fR arch/x86/include $TempDevelRoot/arch/x86/
1186 cp -fR arch/x86/tools $TempDevelRoot/arch/x86/
1187 %else
1188 cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/%{target_arch}/kernel/
1189 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f $TempDevelRoot; done
1190 %endif
1191 cp -fR .config Module.symvers $TempDevelRoot
1192
1193 # Needed for truecrypt build (Danny)
1194 cp -fR drivers/md/dm.h $TempDevelRoot/drivers/md/
1195
1196 # needed by include/generated/timeconst.h
1197 cp -fR kernel/time/timeconst.bc $TempDevelRoot/kernel/time/
1198
1199 # Needed for lirc_gpio (#39004)
1200 cp -fR drivers/media/pci/bt8xx/bttv{,p}.h $TempDevelRoot/drivers/media/pci/bt8xx/
1201 cp -fR drivers/media/pci/bt8xx/bt848.h $TempDevelRoot/drivers/media/pci/bt8xx/
1202 cp -fR drivers/media/common/btcx-risc.h $TempDevelRoot/drivers/media/common/
1203
1204 # rtl8812au
1205 mkdir -p $TempDevelRoot/drivers/staging/rtl8812au/hal/phydm/
1206 cp -f drivers/staging/rtl8812au/hal/phydm/phydm.mk $TempDevelRoot/drivers/staging/rtl8812au/hal/phydm/
1207
1208 %ifarch x86_64
1209 # orc unwinder needs theese
1210 cp -fR tools/build/Build{,.include} $TempDevelRoot/tools/build
1211 cp -fR tools/build/fixdep.c $TempDevelRoot/tools/build
1212 cp -fR tools/lib/{rbtree.c,ctype.c,str_error_r.c,string.c} $TempDevelRoot/tools/lib
1213 cp -fR tools/lib/subcmd/* $TempDevelRoot/tools/lib/subcmd
1214 cp -fR tools/objtool/* $TempDevelRoot/tools/objtool
1215 cp -fR tools/scripts/utilities.mak $TempDevelRoot/tools/scripts
1216 mkdir -p $TempDevelRoot/tools/arch/x86/tools
1217 cp -fR tools/arch/x86/tools/gen-insn-attr-x86.awk $TempDevelRoot/tools/arch/x86/tools/
1218 mkdir -p $TempDevelRoot/tools/arch/x86/lib
1219 cp -fR tools/arch/x86/lib/{inat.c,insn.c,x86-opcode-map.txt} $TempDevelRoot/tools/arch/x86/lib/
1220 mkdir -p $TempDevelRoot/tools/arch/x86/include/asm
1221 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/
1222 %endif
1223
1224 for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 loongarch m32r m68k m68knommu metag microblaze \
1225 mips mn10300 nds32 nios2 openrisc parisc powerpc riscv s390 score sh sparc tile unicore32 xtensa; do
1226 rm -rf $TempDevelRoot/arch/$i
1227 rm -rf $TempDevelRoot/scripts/dtc/include-prefixes/$i
1228 rm -rf $TempDevelRoot/tools/arch/$i
1229 done
1230
1231 %ifnarch %{arm} aarch64
1232 rm -rf $TempDevelRoot/arch/arm*
1233 rm -rf $TempDevelRoot/include/kvm/arm*
1234 rm -rf $TempDevelRoot/include/soc
1235 rm -rf $TempDevelRoot/scripts/dtc/include-prefixes/arm*
1236 rm -rf $TempDevelRoot/tools/arch/arm*
1237 %endif
1238 %ifnarch %{ix86} x86_64
1239 rm -rf $TempDevelRoot/arch/x86
1240 rm -rf $TempDevelRoot/tools/arch/x86
1241 # arch/x86/ras/Kconfig is included by drivers/ras/Kconfig
1242 # and kconfig's source command seems to be evaluated even under a false conditional
1243 mkdir -p $TempDevelRoot/arch/x86/ras
1244 cp -fR arch/x86/ras/Kconfig $TempDevelRoot/arch/x86/ras
1245 %endif
1246
1247 # (6.1 breakage) keep crypto Kconfig deps happy
1248 cp --parents arch/arm/crypto/Kconfig $TempDevelRoot
1249 cp --parents arch/arm64/crypto/Kconfig $TempDevelRoot
1250 cp --parents arch/mips/crypto/Kconfig $TempDevelRoot
1251 cp --parents arch/powerpc/crypto/Kconfig $TempDevelRoot
1252 cp --parents arch/s390/crypto/Kconfig $TempDevelRoot
1253 cp --parents arch/sparc/crypto/Kconfig $TempDevelRoot
1254 cp --parents arch/x86/crypto/Kconfig $TempDevelRoot
1255
1256 # Clean the scripts tree, and make sure everything is ok (sanity check)
1257 # running prepare+scripts (tree was already "prepared" in build)
1258 pushd $TempDevelRoot >/dev/null
1259 %smake ARCH=%{target_arch} -s prepare scripts
1260 %smake ARCH=%{target_arch} -s clean
1261 popd >/dev/null
1262 rm -f $TempDevelRoot/.config.old
1263
1264 # fix permissions
1265 chmod -R a+rX $TempDevelRoot
1266
1267 # disable mrproper in -devel rpms
1268 patch -p1 --fuzz=0 -d $TempDevelRoot -i %{SOURCE2}
1269
1270 kernel_devel_files=../kernel_devel_files.$devel_flavour
1271
1272
1273 ### Create the kernel_devel_files.*
1274 cat > $kernel_devel_files <<EOF
1275 %dir $DevelRoot
1276 %dir $DevelRoot/arch
1277 %dir $DevelRoot/include
1278 $DevelRoot/Documentation
1279 $DevelRoot/arch/arm
1280 $DevelRoot/arch/arm64
1281 $DevelRoot/arch/mips
1282 $DevelRoot/arch/powerpc
1283 $DevelRoot/arch/s390
1284 $DevelRoot/arch/sparc
1285 $DevelRoot/arch/um
1286 $DevelRoot/arch/x86
1287 $DevelRoot/block
1288 $DevelRoot/certs
1289 $DevelRoot/crypto
1290 $DevelRoot/drivers
1291 $DevelRoot/fs
1292 $DevelRoot/include/acpi
1293 $DevelRoot/include/asm-generic
1294 $DevelRoot/include/clocksource
1295 $DevelRoot/include/config
1296 $DevelRoot/include/crypto
1297 $DevelRoot/include/drm
1298 $DevelRoot/include/dt-bindings
1299 $DevelRoot/include/generated
1300 $DevelRoot/include/keys
1301 $DevelRoot/include/kunit
1302 $DevelRoot/include/kvm
1303 $DevelRoot/include/linux
1304 $DevelRoot/include/math-emu
1305 $DevelRoot/include/media
1306 $DevelRoot/include/memory
1307 $DevelRoot/include/misc
1308 $DevelRoot/include/net
1309 $DevelRoot/include/pcmcia
1310 $DevelRoot/include/ras
1311 $DevelRoot/include/rdma
1312 $DevelRoot/include/rv
1313 $DevelRoot/include/scsi
1314 %ifarch %{arm} aarch64
1315 $DevelRoot/include/soc
1316 %endif
1317 $DevelRoot/include/sound
1318 $DevelRoot/include/target
1319 $DevelRoot/include/trace
1320 $DevelRoot/include/uapi
1321 $DevelRoot/include/ufs
1322 $DevelRoot/include/vdso/*.h
1323 $DevelRoot/include/video
1324 $DevelRoot/include/xen
1325 $DevelRoot/init
1326 $DevelRoot/io_uring
1327 $DevelRoot/ipc
1328 $DevelRoot/kernel
1329 $DevelRoot/lib
1330 $DevelRoot/mm
1331 $DevelRoot/net
1332 $DevelRoot/rust
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,.cocciconfig,.config.cmd,.config.old,.get_maintainer.ignore,.gitattributes,.gitignore,.tmp_gas_check,.mailmap,.missing-syscalls.d,arch/.gitignore,rust/.gitignore}
1612 rm -rf %{target_source}/.tmp_depmod/
1613
1614 # more cleaning
1615 pushd %{target_source}
1616 # lots of gitignore files
1617 find -iname ".gitignore" -delete
1618 # clean tools tree
1619 %smake -C tools clean
1620 %smake -C tools/build clean
1621 %smake -C tools/build/feature clean
1622 # dont ship generated vdso.so*
1623 %ifarch aarch64
1624 rm -f arch/arm64/kernel/vdso/vdso.so*
1625 %endif
1626 popd
1627
1628 # nuke last as it gets re-created
1629 rm -f %{target_source}/.cache.mk
1630
1631 #endif %build_source
1632 %endif
1633
1634 # compressing modules
1635 %if %{build_modxz}
1636 find %{target_modules} -name "*.ko" | %kxargs xz -6
1637 %else
1638 find %{target_modules} -name "*.ko" | %kxargs gzip -9
1639 %endif
1640
1641 # We used to have a copy of PrepareKernel here
1642 # Now, we make sure that the thing in the linux dir is what we want it to be
1643 for i in %{target_modules}/*; do
1644 rm -f $i/build $i/source
1645 done
1646
1647 # sniff, if we compressed all the modules, we change the stamp :(
1648 # we really need the depmod -ae here
1649 pushd %{target_modules}
1650 for i in *; do
1651 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
1652 echo $?
1653 done
1654
1655 for i in *; do
1656 pushd $i
1657 echo "Creating modules.description for $i"
1658 modules=`find . -name "*.ko.[g,x]z"`
1659 echo $modules | xargs /sbin/modinfo \
1660 | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
1661 popd
1662 done
1663 popd
1664
1665 # need to set extraversion to match srpm again to avoid rebuild
1666 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1667
1668 # install userspace-headers
1669 %if %{build_uheaders}
1670 %smake ARCH=%{target_arch} headers_install INSTALL_HDR_PATH=%{target_headers}
1671 # for drakx
1672 cp include/linux/pci_ids.h %{target_headers}/include/linux/
1673 %endif
1674
1675 %if %{build_perf}
1676 # perf tool binary and supporting scripts/binaries
1677 %smake -s -C tools/perf V=1 DESTDIR=%{buildroot} NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1678 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} install
1679
1680 # perf man pages (note: implicit rpm magic compresses them later)
1681 make -C tools/perf V=1 DESTDIR=%{buildroot} prefix=%{_prefix} install-man
1682
1683 # remove perf files we dont ship
1684 rm -rf %{buildroot}/usr/lib/perf/examples
1685 rm -rf %{buildroot}/usr/lib/perf/include/bpf
1686 rm -rf %{buildroot}/usr/include/perf/perf_dlfilter.h
1687 %endif
1688
1689 %if %{build_cpupower}
1690 make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
1691 rm -f %{buildroot}%{_libdir}/*.{a,la}
1692 %find_lang cpupower
1693 mv cpupower.lang ../
1694 chmod 0755 %{buildroot}%{_libdir}/libcpupower.so*
1695 mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig
1696 install -m644 %{SOURCE50} %{buildroot}%{_unitdir}/cpupower.service
1697 install -m644 %{SOURCE51} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
1698 %endif
1699
1700 # install bpftool
1701 %if %{build_bpftool}
1702 pushd tools/bpf/bpftool
1703 make DESTDIR=%{buildroot} prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} install doc-install
1704 popd
1705 %endif
1706
1707 # install libbpf
1708 %if %{build_libbpf}
1709 pushd tools/lib/bpf
1710 make DESTDIR=%{buildroot} prefix=%{_prefix} libdir=%{_libdir} V=1 install install_headers
1711 popd
1712 %endif
1713
1714 ###
1715 ### clean
1716 ###
1717 %clean
1718 rm -rf %{buildroot}
1719
1720
1721 # We don't want to remove this, the whole reason of its existence is to be
1722 # able to do several rpm --short-circuit -bi for testing install
1723 # phase without repeating compilation phase
1724 #rm -rf %{temp_root}
1725
1726 ###
1727 ### source and doc file lists
1728 ###
1729
1730 %if %build_source
1731 %files -n %{kname}-source-%{buildrel}
1732 %doc %{_kerneldir}/LICENSES
1733 %dir %{_kerneldir}
1734 %dir %{_kerneldir}/arch
1735 %dir %{_kerneldir}/include
1736 %{_kerneldir}/.rustfmt.toml
1737 %{_kerneldir}/Documentation
1738 %{_kerneldir}/arch/Kconfig
1739 %{_kerneldir}/arch/arm
1740 %{_kerneldir}/arch/arm64
1741 %{_kerneldir}/arch/um
1742 %{_kerneldir}/arch/x86
1743 %{_kerneldir}/block
1744 %{_kerneldir}/certs
1745 %{_kerneldir}/crypto
1746 %{_kerneldir}/drivers
1747 %{_kerneldir}/fs
1748 %{_kerneldir}/include/acpi
1749 %{_kerneldir}/include/asm-generic
1750 %{_kerneldir}/include/clocksource
1751 %{_kerneldir}/include/crypto
1752 %{_kerneldir}/include/drm
1753 %{_kerneldir}/include/dt-bindings
1754 %{_kerneldir}/include/keys
1755 %{_kerneldir}/include/kunit
1756 %{_kerneldir}/include/kvm
1757 %{_kerneldir}/include/linux
1758 %{_kerneldir}/include/math-emu
1759 %{_kerneldir}/include/media
1760 %{_kerneldir}/include/memory
1761 %{_kerneldir}/include/misc
1762 %{_kerneldir}/include/net
1763 %{_kerneldir}/include/pcmcia
1764 %{_kerneldir}/include/ras
1765 %{_kerneldir}/include/rdma
1766 %{_kerneldir}/include/rv
1767 %{_kerneldir}/include/scsi
1768 %{_kerneldir}/include/soc
1769 %{_kerneldir}/include/sound
1770 %{_kerneldir}/include/target
1771 %{_kerneldir}/include/trace
1772 %{_kerneldir}/include/uapi
1773 %{_kerneldir}/include/ufs
1774 %{_kerneldir}/include/vdso/*.h
1775 %{_kerneldir}/include/video
1776 %{_kerneldir}/include/xen
1777 %{_kerneldir}/init
1778 %{_kerneldir}/io_uring
1779 %{_kerneldir}/ipc
1780 %{_kerneldir}/kernel
1781 %{_kerneldir}/lib
1782 %{_kerneldir}/mm
1783 %{_kerneldir}/net
1784 %{_kerneldir}/rust
1785 %{_kerneldir}/samples
1786 %{_kerneldir}/scripts
1787 %{_kerneldir}/security
1788 %{_kerneldir}/sound
1789 %{_kerneldir}/tools
1790 %{_kerneldir}/usr
1791 %{_kerneldir}/virt
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