/[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 1860844 - (show annotations) (download)
Tue May 31 13:06:12 2022 UTC (21 months, 4 weeks ago) by tmb
File size: 54917 byte(s)
- update to 5.18.1
  * drop merged/obsolete patches
- update defconfigs
- update aufs to 5.18
- libbpf minor is now 8
- 3rdparty/rtl8812au: fix build with kernel 5.18 series
- drop 3rdparty rtl8821ce driver as it conflicts with upstream rtw88 driver
- drop legacy ndiswrapper support
- hugetlb: fix huge_pmd_unshare address update
- mm: lru_cache_disable: use synchronize_rcu_expedited
- mm/page_alloc: always attempt to allocate at least one page during bulk
  allocation
- nfsd: destroy percpu stats counters after reply cache shutdown
- video: fbdev: vesafb: Fix a use-after-free due early fb_info cleanup


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 5
35 # WARNING: when patchlevel is bumped, please update drakx/kernel/list_modules.pm for new modules!!!
36 %define patchlevel 18
37 # sublevel is now used for -stable patches
38 %define sublevel 1
39
40 # Package release
41 %define mgarel 2
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 # Having different top level names for packges means that you have to remove
90 # them by hard :(
91 %define top_dir_name %{kname}-%{_arch}
92
93 %define build_dir ${RPM_BUILD_DIR}/%{top_dir_name}
94 %define src_dir %{build_dir}/linux-%{tar_ver}
95
96 # Disable useless debug rpms...
97 %global _enable_debug_packages %{nil}
98 %global debug_package %{nil}
99 %global __debug_package %{nil}
100 %global __debug_install_post %{nil}
101 %global _build_id_links none
102
103 # no bytecompiling wanted as it breaks build on selftests we dont even ship
104 # for older buildsystems
105 %global _python_bytecompile_build 0
106 # for systems with >= rpm-mageia-setup-2.29-1.mga7
107 %global __brp_python_bytecompile %nil
108
109 # Build defines
110 %define build_doc 1
111 %define build_uheaders 1
112 %define build_source 1
113 %define build_devel 1
114
115 %define build_debug 0
116
117 # Build desktop i586 / 4GB
118 %ifarch %{ix86}
119 %define build_desktop586 1
120 %endif
121
122 # Build desktop (i686 / 64GB) / x86_64 / arm / aarch64
123 %define build_desktop 1
124
125 # Build server (i686 / 64GB)/x86_64 / aarch64
126 %ifnarch %{arm}
127 %define build_server 1
128 %else
129 %define build_server 0
130 %endif
131
132 # build cpupower
133 %ifnarch %{arm} aarch64
134 %define build_cpupower 1
135 %else
136 %define build_cpupower 0
137 %endif
138
139 # build perf
140 %define build_perf 1
141
142 # bpf
143 %define build_bpftool 1
144 %define build_libbpf 1
145
146 # compress modules with xz
147 %ifnarch %{arm}
148 %define build_modxz 1
149 %else
150 %define build_modxz 0
151 %endif
152 # End of user definitions
153
154 # buildtime override flags
155 %{?_without_desktop586: %global build_desktop586 0}
156 %{?_without_desktop: %global build_desktop 0}
157 %{?_without_server: %global build_server 0}
158 %{?_without_doc: %global build_doc 0}
159 %{?_without_uheaders: %global build_uheaders 0}
160 %{?_without_source: %global build_source 0}
161 %{?_without_devel: %global build_devel 0}
162 %{?_without_debug: %global build_debug 0}
163 %{?_without_perf: %global build_perf 0}
164 %{?_without_cpupower: %global build_cpupower 0}
165 %{?_without_bpftool: %global build_bpftool 0}
166 %{?_without_libbpf: %global build_libbpf 0}
167 %{?_without_modxz: %global build_modxz 0}
168
169 %{?_with_desktop586: %global build_desktop586 1}
170 %{?_with_desktop: %global build_desktop 1}
171 %{?_with_server: %global build_server 1}
172 %{?_with_doc: %global build_doc 1}
173 %{?_with_uheaders: %global build_uheaders 1}
174 %{?_with_source: %global build_source 1}
175 %{?_with_devel: %global build_devel 1}
176 %{?_with_debug: %global build_debug 1}
177 %{?_with_perf: %global build_perf 1}
178 %{?_with_cpupower: %global build_cpupower 1}
179 %{?_with_bpftool: %global build_bpftool 1}
180 %{?_with_libbpf: %global build_libbpf 1}
181 %{?_with_modxz: %global build_modxz 1}
182
183 # For the .nosrc.rpm
184 %define build_nosrc 0
185 %{?_with_nosrc: %global build_nosrc 1}
186
187 %if %(if [ -z "$CC" ] ; then echo 0; else echo 1; fi)
188 %define kmake %make_build CC="$CC"
189 %else
190 %define kmake %make_build
191 %endif
192 # there are places where parallel make don't work
193 %define smake make
194
195 # Parallelize xargs invocations on smp machines
196 %define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\
197 && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
198 [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS")
199
200 # arm(64) arch matching
201 %define target_arch %(echo %{_arch} | sed -e 's/arm.*/arm/' -e 's/aarch64/arm64/')
202
203
204 #
205 # SRC RPM description
206 #
207 Summary: Linux kernel built for Mageia
208 Name: %{kname}
209 Version: %{kversion}
210 Release: %{rpmrel}
211 License: GPLv2
212 Group: System/Kernel and hardware
213 ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
214 ExclusiveOS: Linux
215 URL: https://www.kernel.org/
216
217 ####################################################################
218 #
219 # Sources
220 #
221 ### This is for full SRC RPM
222 Source0: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.xz
223 Source1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.sign
224 ### This is for stripped SRC RPM
225 %if %build_nosrc
226 NoSource: 0
227 %endif
228 # This is for disabling *config, mrproper, prepare, scripts on -devel rpms
229 Source2: disable-mrproper-in-devel-rpms.patch
230
231 Source4: README.kernel-sources
232
233 # for creating stable queue patchlist
234 Source5: generate-patchlist.sh
235
236 # copy to patched source tree along with the defconfigs and run it
237 Source10: defconfig-updater.sh
238 Source09: defconfig-updater-simple.sh
239 # x86_64 defconfigs
240 Source11: defconfig-x86_64-desktop
241 Source12: defconfig-x86_64-server
242 # i386 defconfigs
243 Source13: defconfig-i386-desktop586
244 Source14: defconfig-i386-desktop
245 Source15: defconfig-i386-server
246 # arm64 defconfigs
247 Source16: defconfig-arm64-desktop
248 Source17: defconfig-arm64-server
249 # arm defconfigs
250 Source18: defconfig-arm-desktop
251
252 # config and systemd service file from fedora
253 Source50: cpupower.service
254 Source51: cpupower.config
255
256 ####################################################################
257 #
258 # Patches
259
260 #
261 # Patch0 to Patch10 are for core kernel upgrades.
262 #
263
264 %if %sublevel
265 Patch1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kernelversion}.%{patchlevel}.%{sublevel}.xz
266 %endif
267 %if %{rcX}
268 # (tmb) Created with:
269 # wget https://git.kernel.org/torvalds/p/v5.10-rc7/v5.9 -O patch-5.10-rc7
270 # xz -6e patch-5.10-rc7
271 Patch2: patch-%{kernelversion}.%{patchlevel}-rc%{rcX}.xz
272 %endif
273
274 ###
275 ### Stable Queue can be big
276 ### Patches from 100-999
277 ###
278 ### add patches here by copying contents of kernel matching queue-x.y from:
279 ### https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/
280 ### to SOURCES, generate patchlist with generate-patchlist.sh and paste it here
281 ###
282
283 ###
284 ### Arch
285 ### Patches from 1000
286 ###
287
288 # laptop needing pci=assign-busses (#18989, needs to be submitted upstream)
289 Patch1000: x86-pci-toshiba-equium-a60-assign-busses.patch
290
291 # If users choose a bad video mode, allow to jump to
292 # a working one (TTL: forever)
293 Patch1001: x86-boot-video-80x25-if-break.patch
294
295 # Allow poweroff on UP machines running SMP kernels
296 Patch1005: x86-default_poweroff_up_machines.patch
297
298 # raise vmalloc to fix https://bugs.mageia.org/show_bug.cgi?id=904
299 Patch1010: x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch
300
301 # slows down boot
302 Patch1015: Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch
303
304 # AMD Zen mwait optimization v3
305 Patch1020: x86-Use-HLT-in-default_idle-when-idle-nomwait-cmdlin.patch
306 Patch1021: x86-Remove-vendor-checks-from-prefer_mwait_c1_over_h.patch
307 Patch1022: x86-Fix-comment-for-X86_FEATURE_ZEN.patch
308
309 # init
310 Patch1050: init-add-hostname-kernel-parameter.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 ### Crypto
340 ###
341
342 ###
343 ### dma
344 ###
345
346 ###
347 ### File-system
348 ###
349
350 # aufs diffed from: https://github.com/sfjro/aufs5-linux/tree/aufs5.18 (mga#8314)
351 Patch1310: fs-aufs5.18.patch
352 # symbol exports needed for modular aufs
353 Patch1311: fs-aufs5.18-symbol-exports.patch
354 # set aufs tristate
355 Patch1312: fs-aufs5.18-tristate.patch
356
357 # nfsd
358 Patch1320: nfsd-destroy-percpu-stats-counters-after-reply-cache.patch
359
360 ###
361 ### FireWire
362 ###
363
364 # adding module aliases to ease upgrade from ieee1394
365 Patch1400: firewire-ieee1394-module-aliases.patch
366
367 ###
368 ### Firmware
369 ###
370
371 ###
372 ### GPU/DRM
373 ###
374
375 # mga compat option
376 Patch1500: drm-gpu-drm-treat-nokmsboot-as-nomodeset.patch
377
378 # amdgpu
379 # switch SI and CIK from radeon to amdgpu
380 Patch1520: drm-amdgpu-SI-and-CIK-enabled-by-default.patch
381
382 # new Q57 Host Bridge id
383 Patch1530: char-agp-intel-new-Q57-id.patch
384
385 # i915
386 # TGL
387 Patch1546: drm-i915-psr-Disable-PSR2-selective-fetch-for-all-TGL-steps.patch
388
389 # https://bugzilla.kernel.org/show_bug.cgi?id=206653#c19
390 Patch1552: i2c_nvidia_gpu-change-err-into-info.patch
391
392 # 5.16.3 regression
393 Patch1560: Revert-drm-nouveau-pmu-gm200-avoid-touching-PMU-outs.patch
394
395 ###
396 ### gpio
397 ###
398
399 ###
400 ### hwmon
401 ###
402
403 ###
404 ### i2c
405 ###
406
407 ###
408 ### iommu
409 ###
410
411 Patch1650: iommu-amd-increase-timeout-waiting-for-ga-log-enablement.patch
412
413 ###
414 ### Input
415 ###
416
417 Patch1700: input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch
418
419 ###
420 ### HID
421 ###
422
423 ###
424 ### kernel
425 ###
426
427 # CVE-2021-4204
428 Patch1800: bpf-prevent-helper-argument-PTR_TO_ALLOC_MEM-to-have-offset-other-than-0.patch
429
430 ###
431 ### MFD
432 ###
433
434 ###
435 ### MM
436 ###
437
438 # 5.18 regression
439 Patch1850: mm-lru_cache_disable-use-synchronize_rcu_expedited.patch
440 #
441 Patch1851: mm-page_alloc-always-attempt-to-allocate-at-least-on.patch
442 Patch1852: hugetlb-fix-huge_pmd_unshare-address-update.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
474 # iwlfiwi
475 Patch1980: net-wireless-iwlwifi-add-new-pci-id-for-6235.patch
476
477 ###
478 ### PCI
479 ###
480
481 ###
482 ### pinctrl
483 ###
484
485 ###
486 ### Platform
487 ###
488
489 # Allow access to Shuttle WMI interface controls
490 # (Mainly allow turning on/off webcam and wireless on Shuttle DA18IE and DA18IM)
491 Patch2050: platform-x86-add-shuttle-wmi-driver.patch
492 Patch2051: platform-x86-shuttle-wmi-drop-devinit-exit.patch
493 Patch2052: platform-x86-shuttle-wmi-4.2-buildfix.patch
494 Patch2053: platform-x86-shuttle-wmi-4.13-buildfix.patch
495 Patch2054: platform-x86-shuttle-wmi-kernel-5.5.patch
496
497 ###
498 ### PM
499 ###
500
501 ###
502 ### Sound
503 ###
504
505 ###
506 ### SPI
507 ###
508
509 ###
510 ### Staging
511 ###
512
513 ###
514 ### Thermal
515 ###
516
517 ###
518 ### Thunderbolt
519 ###
520
521 ###
522 ### USB
523 ###
524
525 Patch2300: hid-usbhid-IBM-BladeCenterHS20-quirk.patch
526
527 Patch2310: usb-storage-unusual_devs-add-id.patch
528 Patch2311: usb-storage-unusual_devs-add-id-2.6.37-buildfix.patch
529
530 ###
531 ### V4L
532 ###
533
534 # pwc driver name in /proc/bus/devices, /sys fix and "advertisement" removal
535 Patch2400: media-usb-pwc-lie-in-proc-usb-devices.patch
536
537 ###
538 ### Video
539 ###
540
541 # Mageia framebuffer boot logo
542 Patch2500: video-mageia-logo.patch
543
544 # fbdev
545 Patch2510: video-fbdev-vesafb-Fix-a-use-after-free-due-early-fb_info-cleanup.patch
546
547 ###
548 ### Virt
549 ###
550
551 # fix gcc-10 build
552 Patch2550: KVM-squelch-uninitialized-variable-warning.patch
553
554 ###
555 ### Tools
556 ###
557
558 # wipe powerpc refrence so we can nuke dangling symlinks (mga#17676)
559 Patch2600: tools-testing-selftest-Makefile-remove-powerpc-reference.patch
560
561 # fix perf build
562 Patch2605: tools-perf-ui-include-slang.patch
563
564 ###
565 ### UAPI
566 ###
567
568 Patch2700: uapi-avoid-namespace-conflict-in-linux-posix_types.h.patch
569
570 ###
571 ### 3rdparty
572 ###
573
574 Patch3000: 3rd-3rdparty-tree.patch
575 Patch3001: 3rd-3rdparty-merge.patch
576
577 # add rtl8812 support (mga#21043)
578 # from https://github.com/aircrack-ng/rtl8812au.git
579 Patch3200: 3rd-rtl8812au.patch
580 Patch3201: 3rd-rtl8812au-Kconfig-Makefile.patch
581 Patch3202: 3rd-rtl8812au-rename.patch
582 Patch3203: 3rd-rtl8812au-kernel-5.17.patch
583 Patch3204: 3rd-rtl8812au-kernel-5.18.patch
584
585 # add rtl8723de support (mga#22559)
586 Patch3300: 3rd-rtl8723de.patch
587 Patch3301: 3rd-rtl8723de-Kconfig-Makefile.patch
588 Patch3302: 3rd-rtl8723de-fix-redefine.patch
589 Patch3303: 3rd-rtl8723de-nodebug.patch
590 Patch3304: 3rd-rtl8223de-kernel-5.6.patch
591 Patch3305: 3rd-rtl8723de-add-kernel-5.8-support.patch
592
593 # viahss
594 Patch3400: 3rd-viahss-0.92.patch
595 Patch3401: 3rd-viahss-config.patch
596 Patch3402: 3rd-viahss-module-license.patch
597 Patch3403: 3rd-viahss-2.6.35-buildfix.patch
598 Patch3404: 3rd-viahss-3.0-buildfix.patch
599 Patch3405: 3rd-viahss-Kconfig-Makefile.patch
600
601 # fix Kconfig files for 3rdparty:
602 Patch3900: 3rd-fix-kconfig.patch
603
604 ###
605 ### Python fixes
606 ###
607 Patch4000: linux-5.18-python3.patch
608
609 ###
610 ### TTY
611 ###
612
613 ###
614 ### Security fixes
615 ###
616 Patch5002: CVE-2019-12379.patch
617 #
618 # CVE-2020-16119
619 # https://bugzilla.redhat.com/show_bug.cgi?id=1886374
620 # https://bugzilla.redhat.com/show_bug.cgi?id=1888083
621 Patch5003: CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch
622
623 ###
624 ### Cosmetic fixes (e.g. typos, spelling, etc.)
625 ###
626
627 # broken rtla cleaner
628 Patch6000: hack-broken-rtla-cleaner.patch
629
630
631 ### Fixes from FC kernel
632 # Inspur Advantech PCI ids
633 Patch7000: 0001-scsi-smartpqi-add-inspur-advantech-ids.patch
634 # Vulcan AHCI PCI bar (aarch64)
635 Patch7001: 0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch
636
637 #END
638 ####################################################################
639
640 # Defines for the things that are needed for all the kernels
641 #
642 %define common_desc_kernel The kernel package contains the Linux kernel (vmlinuz), the core of your \
643 Mageia operating system. The kernel handles the basic functions \
644 of the operating system: memory allocation, process allocation, device \
645 input and output, etc.
646
647 %define common_desc_kernel_smp This kernel relies on in-kernel smp alternatives to switch between up & smp \
648 mode depending on detected hardware. To force the kernel to boot in single \
649 processor mode, use the "nosmp" boot parameter.
650
651 ### Global Requires/Provides
652 %define requires1 bootloader-utils >= 1.16-1
653 %define requires2 dracut >= 046-2
654 %define requires3 kmod >= 12-2
655 %define requires4 sysfsutils >= 2.1.0-16
656 %define requires5 kernel-firmware >= 20190603-1
657 # ldetect-lst with SI/CIK swich from radeon to amdgpu
658 %define requires6 ldetect-lst >= 0.6.25-1
659
660 %define kprovides1 %{kname} = %{kverrel}
661 %define kprovides2 kernel = %{tar_ver}
662 %define kprovides3 alsa = 1.0.26
663 %define kprovides_server drbd-api = 88
664
665 # conflict dkms packages that dont support kernel-5.12
666 %define kconflicts1 dkms-broadcom-wl < 6.30.223.271-61
667 %define kconflicts2 dkms-nvidia-current < 470.74-1
668 %define kconflicts3 dkms-nvidia390 < 390.144-1
669 %define kconflicts4 dkms-nvidia340 < 340.108-15
670 %define kconflicts5 dkms-nvidia304 < 304.137-3
671 %define kconflicts6 dkms-virtualbox < 6.1.20-1
672 %define kconflicts7 dkms-xtables-addons < 3.17-1
673 # (tmb) conflict older btrfs-progs to get the new in same transaction and in initrd
674 %define kconflicts8 btrfs-progs < 5.10-1
675 # (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd
676 %define kconflicts9 radeon-firmware < 20201218-1
677 # (tmb) conflict old firmware to get the firmwares in initrd
678 %define kconflicts10 kernel-firmware-nonfree < 20201230-1
679 # (tmb) conflict old microcode to get updated ones in initrd for early loading
680 %define kconflicts11 microcode < 0.20201118-2
681 # (tmb) conflict old theme to get mga8 theme in initrd
682 %define kconflicts12 mageia-gfxboot-theme < 4.5.14.11-2
683 # (tmb) conflict too old grub2(-efi)
684 %define kconflicts13 grub2 < 2.02.0-15
685 %define kconflicts14 grub2-efi < 2.02.0-15
686 # (tmb) conflict too old efibootmgr
687 %define kconflicts15 efibootmgr < 16-3
688 # (tmb) force new theme in initrd
689 %define kconflicts16 mageia-theme < 8.0-2
690
691 Autoreqprov: no
692
693 %if 0%{?mageia} >= 9
694 BuildRequires: gcc >= 11.1.0-0.RC.6
695 BuildRequires: binutils >= 1:2.36.1-7
696 %else
697 BuildRequires: gcc >= 8.4.0-1
698 BuildRequires: binutils >= 1:2.33.1-1
699 %endif
700 BuildRequires: kmod >= 12-2
701 BuildRequires: bc
702 # for crypto stuff
703 BuildRequires: pkgconfig(openssl)
704 # since 4.16
705 BuildRequires: bison
706 BuildRequires: diffutils
707 BuildRequires: elfutils-devel
708 BuildRequires: flex
709 # for headers_install
710 BuildRequires: rsync
711 # for cpupower
712 %if %{build_cpupower}
713 BuildRequires: pkgconfig(libpci)
714 %endif
715 # for perf
716 %if %{build_perf}
717 BuildRequires: audit-devel
718 BuildRequires: binutils-devel
719 BuildRequires: gtk2-devel
720 BuildRequires: libunwind-devel
721 BuildRequires: newt-devel
722 BuildRequires: python3-devel
723 BuildRequires: zlib-devel
724 BuildRequires: asciidoc
725 BuildRequires: xmlto-notex
726 BuildRequires: perl-devel
727 %if 0%{?mageia} >= 8
728 BuildRequires: systemtap-sdt-devel
729 BuildRequires: babeltrace-devel
730 %else
731 BuildRequires: libbabeltrace-devel
732 %endif
733 %ifarch %{ix86} x86_64
734 BuildRequires: numa-devel
735 %endif
736 %endif
737 %if %{build_bpftool}
738 BuildRequires: python3-docutils
739 BuildRequires: cap-devel
740 %endif
741
742 %description
743 %common_desc_kernel
744 %ifnarch %{arm}
745 %common_desc_kernel_smp
746 %endif
747
748 # mkflavour() name flavour processor
749 # name: the flavour name in the package name
750 # flavour: first parameter of CreateKernel()
751 %define mkflavour() \
752 %package -n %{kname}-%{1}-%{buildrel} \
753 Version: %{fakever} \
754 Release: %{fakerel} \
755 Provides: %kprovides1 %kprovides2 %kprovides3 \
756 %{expand:%%{?kprovides_%{1}:Provides: %{kprovides_%{1}}}} \
757 Provides: %{kname}-%{1} \
758 Requires(pre): %requires1 %requires2 %requires3 %requires4 \
759 Requires: %requires2 %requires5 %requires6 \
760 Conflicts: %kconflicts1 %kconflicts2 %kconflicts3 \
761 Conflicts: %kconflicts4 %kconflicts5 %kconflicts6 \
762 Conflicts: %kconflicts7 %kconflicts8 %kconflicts9 \
763 Conflicts: %kconflicts10 %kconflicts11 %kconflicts12 \
764 Conflicts: %kconflicts13 %kconflicts14 %kconflicts15 \
765 Conflicts: %kconflicts16 \
766 %if 0%{?mageia} >= 8 \
767 Obsoletes: crda \
768 Obsoletes: crda-devel \
769 Obsoletes: fuse-exfat \
770 %endif \
771 Provides: should-restart = system \
772 Provides: installonlypkg(kernel) \
773 Recommends: iw cpupower microcode \
774 Recommends: %{kname}-%{1}-latest \
775 %ifarch %{ix86} \
776 Conflicts: arch(x86_64) \
777 %endif \
778 Summary: %{expand:%{summary_%(echo %{1} | sed -e "s/-/_/")}} \
779 Group: System/Kernel and hardware \
780 %description -n %{kname}-%{1}-%{buildrel} \
781 %common_desc_kernel %{expand:%{info_%(echo %{1} | sed -e "s/-/_/")}} \
782 %ifnarch %{arm} \
783 %common_desc_kernel_smp \
784 %endif \
785 \
786 %if %build_devel \
787 %package -n %{kname}-%{1}-devel-%{buildrel} \
788 Version: %{fakever} \
789 Release: %{fakerel} \
790 Requires: glibc-devel ncurses-devel make gcc perl \
791 Requires: gcc >= 5.5.0-1 \
792 %ifarch x86_64 \
793 Requires: pkgconfig(libelf) \
794 %endif \
795 Summary: The kernel-devel files for %{kname}-%{1}-%{buildrel} \
796 Group: Development/Kernel \
797 Provides: %{kname}-devel = %{kverrel} \
798 Provides: %{kname}-%{1}-devel \
799 Recommends: %{kname}-%{1}-devel-latest \
800 %ifarch %{ix86} \
801 Conflicts: arch(x86_64) \
802 %endif \
803 %description -n %{kname}-%{1}-devel-%{buildrel} \
804 This package contains the kernel files (headers and build tools) \
805 that should be enough to build additional drivers for \
806 use with %{kname}-%{1}-%{buildrel}. \
807 \
808 If you want to build your own kernel, you need to install the full \
809 %{kname}-source-%{buildrel} rpm. \
810 \
811 %endif \
812 \
813 %if %build_debug \
814 %package -n %{kname}-%{1}-%{buildrel}-debuginfo \
815 Version: %{fakever} \
816 Release: %{fakerel} \
817 Summary: Files with debuginfo for %{kname}-%{1}-%{buildrel} \
818 Group: Development/Debug \
819 Provides: kernel-debug = %{kverrel} \
820 %ifarch %{ix86} \
821 Conflicts: arch(x86_64) \
822 %endif \
823 %description -n %{kname}-%{1}-%{buildrel}-debuginfo \
824 This package contains the files with debuginfo to aid in debug tasks \
825 when using %{kname}-%{1}-%{buildrel}. \
826 \
827 If you need to look at debug information or use some application that \
828 needs debugging info from the kernel, this package may help. \
829 \
830 %endif \
831 \
832 %package -n %{kname}-%{1}-latest \
833 Version: %{kversion} \
834 Release: %{rpmrel} \
835 Summary: Virtual rpm for latest %{kname}-%{1} \
836 Group: System/Kernel and hardware \
837 Requires: %{kname}-%{1}-%{buildrel} \
838 %ifarch %{ix86} \
839 Conflicts: arch(x86_64) \
840 %endif \
841 Obsoletes: vboxadditions-kernel-%{1}-latest \
842 Obsoletes: kernel-tmb-%{1}-latest \
843 %description -n %{kname}-%{1}-latest \
844 This package is a virtual rpm that aims to make sure you always have the \
845 latest %{kname}-%{1} installed... \
846 \
847 %if %build_devel \
848 %package -n %{kname}-%{1}-devel-latest \
849 Version: %{kversion} \
850 Release: %{rpmrel} \
851 Summary: Virtual rpm for latest %{kname}-%{1}-devel \
852 Group: Development/Kernel \
853 Requires: %{kname}-%{1}-devel-%{buildrel} \
854 %ifarch %{ix86} \
855 Conflicts: arch(x86_64) \
856 %endif \
857 Provides: %{kname}-devel-latest \
858 Obsoletes: kernel-tmb-%{1}-devel-latest \
859 %description -n %{kname}-%{1}-devel-latest \
860 This package is a virtual rpm that aims to make sure you always have the \
861 latest %{kname}-%{1}-devel installed... \
862 \
863 %endif \
864 \
865 %posttrans -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-posttrans \
866 %postun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-postun \
867 \
868 %if %build_devel \
869 %post -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-post \
870 %preun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-preun \
871 %postun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-postun \
872 %endif \
873 \
874 %files -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1} \
875 %files -n %{kname}-%{1}-latest \
876 \
877 %if %build_devel \
878 %files -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1} \
879 %files -n %{kname}-%{1}-devel-latest \
880 %endif \
881 \
882 %if %build_debug \
883 %files -n %{kname}-%{1}-%{buildrel}-debuginfo -f kernel_debug_files.%{1} \
884 %endif
885
886 %ifarch %{ix86}
887 #
888 # kernel-desktop586: i586, smp-alternatives, 4GB
889 #
890 %if %build_desktop586
891 %define summary_desktop586 Linux kernel for desktop use with i586 and less than 4GB RAM
892 %define info_desktop586 This kernel is compiled for desktop use, single or \
893 multiple i586 processor(s)/core(s) and less than 4GB RAM (usually 3-3.5GB \
894 detected, if you need/want to use all 4GB or more, install kernel-server), \
895 using HZ_1000, voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
896 %mkflavour desktop586
897 %endif
898 %endif
899
900 #
901 # kernel-desktop: i686, smp-alternatives, 64 GB / x86_64 / arm / aarch64
902 #
903 %if %build_desktop
904 %ifarch %{ix86}
905 %define summary_desktop Linux Kernel for desktop use with i686 and up to 64GB RAM
906 %define info_desktop This kernel is compiled for desktop use, single or \
907 multiple i686 processor(s)/core(s) and up to 64GB RAM, using HZ_1000, \
908 voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
909 %else
910 %define summary_desktop Linux Kernel for desktop use with %{_arch}
911 %define info_desktop This kernel is compiled for desktop use, single or \
912 multiple %{_arch} processor(s)/core(s), using HZ_1000, voluntary preempt, \
913 CFS cpu scheduler and cfq i/o scheduler.
914 %endif
915 %mkflavour desktop
916 %endif
917
918 #
919 # kernel-server: i686, smp-alternatives, 64 GB / x86_64 / aarch64
920 #
921 %if %build_server
922 %ifarch %{ix86}
923 %define summary_server Linux Kernel for server use with i686 & 64GB RAM
924 %define info_server This kernel is compiled for server use, single or \
925 multiple i686 processor(s)/core(s) and up to 64GB RAM using PAE, using \
926 no preempt, HZ_100, CFS cpu scheduler and cfq i/o scheduler.
927 %else
928 %define summary_server Linux Kernel for server use with %{_arch}
929 %define info_server This kernel is compiled for server use, single or \
930 multiple %{_arch} processor(s)/core(s), using no preempt, HZ_100, \
931 CFS cpu scheduler and cfq i/o scheduler.
932 %endif
933 %mkflavour server
934 %endif
935
936 #
937 # kernel-source
938 #
939 %if %build_source
940 %package -n %{kname}-source-%{buildrel}
941 Version: %{fakever}
942 Release: %{fakerel}
943 Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
944 Summary: The Linux source code for %{kname}-%{buildrel}
945 Group: Development/Kernel
946 Autoreqprov: no
947 Provides: kernel-source = %{kverrel}
948 Buildarch: noarch
949
950 %description -n %{kname}-source-%{buildrel}
951 The %{kname}-source package contains the source code files for the Mageia
952 kernel. Theese source files are only needed if you want to build your
953 own custom kernel that is better tuned to your particular hardware.
954
955 If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
956 drivers against, install the *-devel-* rpm that is matching your kernel.
957
958 #
959 # kernel-source-latest: virtual rpm
960 #
961 %package -n %{kname}-source-latest
962 Version: %{kversion}
963 Release: %{rpmrel}
964 Summary: Virtual rpm for latest %{kname}-source
965 Group: Development/Kernel
966 Requires: %{kname}-source-%{buildrel}
967 Buildarch: noarch
968
969 %description -n %{kname}-source-latest
970 This package is a virtual rpm that aims to make sure you always have the
971 latest %{kname}-source installed...
972 %endif
973
974 #
975 # kernel-doc: documentation for the Linux kernel
976 #
977 %if %build_doc
978 %package -n %{kname}-doc
979 Version: %{kversion}
980 Release: %{rpmrel}
981 Summary: Various documentation bits found in the %{kname} source
982 Group: Documentation
983 Buildarch: noarch
984
985 %description -n %{kname}-doc
986 This package contains documentation files from the %{kname} source.
987 Various bits of information about the Linux kernel and the device drivers
988 shipped with it are documented in these files. You also might want install
989 this package if you need a reference to the options that can be passed to
990 Linux kernel modules at load time.
991 %endif
992
993 #
994 # kernel userspace-headers
995 #
996 %if %{build_uheaders}
997 %package -n %{kname}-userspace-headers
998 Version: %{kversion}
999 Release: %{rpmrel}
1000 Summary: Linux kernel header files for userspace
1001 Group: System/Kernel and hardware
1002 %rename linux-userspace-headers
1003 Provides: kernel-headers = 1:%{version}-%{release}
1004
1005 %description -n %{kname}-userspace-headers
1006 C header files from the Linux kernel. The header files define structures
1007 and constants that are needed for building most standard programs.
1008
1009 This package is not suitable for building kernel modules.
1010 %endif
1011
1012 #
1013 # kernel/tools
1014 #
1015 %if %{build_perf}
1016 %package -n perf
1017 Version: %{kversion}
1018 Release: %{rpmrel}
1019 Summary: perf tool and the supporting documentation
1020 Group: System/Kernel and hardware
1021
1022 %description -n perf
1023 the perf tool and the supporting documentation.
1024 %endif
1025
1026 %if %{build_cpupower}
1027 %package -n cpupower
1028 Version: %{kversion}
1029 Release: %{rpmrel}
1030 Summary: the cpupower tools
1031 Group: System/Kernel and hardware
1032 Requires(post): rpm-helper >= 0.24.8-1
1033 Requires(preun): rpm-helper >= 0.24.8-1
1034 Obsoletes: cpufreq cpufrequtils
1035
1036 %description -n cpupower
1037 the cpupower tools.
1038
1039 %post -n cpupower
1040 %_post_service cpupower
1041
1042 %preun -n cpupower
1043 %_preun_service cpupower
1044
1045 %package -n cpupower-devel
1046 Version: %{kversion}
1047 Release: %{rpmrel}
1048 Summary: devel files for cpupower
1049 Group: Development/Kernel
1050 Requires: cpupower = %{kversion}-%{rpmrel}
1051 Conflicts: %{_lib}cpufreq-devel
1052
1053 %description -n cpupower-devel
1054 This package contains the development files for cpupower.
1055 %endif
1056
1057 %if %{build_bpftool}
1058 %package -n bpftool
1059 Summary: Inspection and simple manipulation of eBPF programs and maps
1060 Group: System/Kernel and hardware
1061
1062 %description -n bpftool
1063 This package contains the bpftool, which allows inspection and simple
1064 manipulation of eBPF programs and maps.
1065 %endif
1066
1067 %if %{build_libbpf}
1068 %package -n %{_lib}bpf0
1069 Summary: The bpf library from kernel source
1070 Group: System/Libraries
1071
1072 %description -n %{_lib}bpf0
1073 This package contains the kernel source bpf library.
1074
1075 %package -n %{_lib}bpf-devel
1076 Summary: Developement files for the bpf library from kernel source
1077 Group: Development/Kernel
1078 Requires: %{_lib}bpf0
1079
1080 %description -n %{_lib}bpf-devel
1081 This package includes libraries and header files needed for development
1082 of applications which use bpf library from kernel source.
1083 %endif
1084
1085 #
1086 # End packages - here begins build stage
1087 #
1088 %prep
1089 %setup -q -n %top_dir_name -c
1090
1091 cd %src_dir
1092
1093 %autopatch -p1
1094
1095 # PATCH END
1096
1097 #
1098 # Setup Begin
1099 #
1100
1101 # install x86 defconfigs
1102 install -m 644 %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} arch/x86/configs/
1103 # install arm64 defconfigs
1104 install -m 644 %{SOURCE16} %{SOURCE17} arch/arm64/configs/
1105 # install arm defconfigs
1106 install -m 644 %{SOURCE18} arch/arm/configs/
1107
1108 # make sure the kernel has the sublevel we know it has...
1109 LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
1110
1111 # get rid of unwanted files
1112 find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f
1113
1114 # fix missing exec flag on file introduced in 4.14.10-rc1
1115 chmod 755 tools/objtool/sync-check.sh
1116
1117 %build
1118 # Common target directories
1119 %define _kerneldir /usr/src/kernel-%{kversion}-%{buildrpmrel}
1120 %define _bootdir /boot
1121 %define _modulesdir /lib/modules
1122 %define _efidir %{_bootdir}/efi/mageia
1123
1124 # Directories definition needed for building
1125 %define temp_root %{build_dir}/temp-root
1126 %define temp_source %{temp_root}%{_kerneldir}
1127 %define temp_boot %{temp_root}%{_bootdir}
1128 %define temp_modules %{temp_root}%{_modulesdir}
1129
1130 PrepareKernel() {
1131 name=$1
1132 extension=$2
1133
1134 echo "Make config for kernel $extension"
1135
1136 %smake ARCH=%{target_arch} -s mrproper
1137
1138 if [ "%{target_arch}" == "i386" -o "%{target_arch}" == "x86_64" ]; then
1139 conf_dir=arch/x86/configs
1140 else
1141 conf_dir=arch/%{target_arch}/configs
1142 fi
1143 if [ -z "$name" ]; then
1144 cp $conf_dir/defconfig-%{target_arch}-desktop .config
1145 else
1146 cp $conf_dir/defconfig-%{target_arch}-$name .config
1147 fi
1148
1149 # make sure EXTRAVERSION says what we want it to say
1150 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -$extension/" Makefile
1151
1152 %smake ARCH=%{target_arch} oldconfig
1153 }
1154
1155 BuildKernel() {
1156 KernelVer=$1
1157
1158 echo "Building kernel $KernelVer"
1159
1160 %kmake ARCH=%{target_arch} -s all
1161
1162 # Start installing stuff
1163 install -d %{temp_boot}
1164 install -m 644 System.map %{temp_boot}/System.map-$KernelVer
1165 install -m 644 .config %{temp_boot}/config-$KernelVer
1166 xz -c Module.symvers > %{temp_boot}/symvers-$KernelVer.xz
1167
1168 %ifarch %{arm}
1169 IMAGE=zImage
1170 %else
1171 %ifarch aarch64
1172 IMAGE=Image.gz
1173 %else
1174 IMAGE=bzImage
1175 %endif
1176 %endif
1177 cp -f arch/%{target_arch}/boot/$IMAGE %{temp_boot}/vmlinuz-$KernelVer
1178
1179 %ifarch %{arm} aarch64
1180 install -d %{temp_root}%{_libdir}/linux-$KernelVer/
1181 find arch/%{target_arch}/boot/dts/ -name *.dtb -execdir install -D -m644 {} %{temp_root}%{_libdir}/linux-$KernelVer/{} \;
1182 %endif
1183
1184 # modules
1185 install -d %{temp_modules}/$KernelVer
1186 %smake ARCH=%{target_arch} INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=$KernelVer modules_install
1187 }
1188
1189 SaveDevel() {
1190 devel_flavour=$1
1191
1192 DevelRoot=/usr/src/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}
1193 TempDevelRoot=%{temp_root}$DevelRoot
1194
1195 mkdir -p $TempDevelRoot
1196 for i in $(find . -name 'Makefile*'); do cp -R --parents $i $TempDevelRoot;done
1197 for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*'); do cp -R --parents $i $TempDevelRoot;done
1198 cp -fR include $TempDevelRoot
1199 cp -fR scripts $TempDevelRoot
1200 cp -fR kernel/bounds.c $TempDevelRoot/kernel
1201 cp -fR tools/include $TempDevelRoot/tools/
1202 # needed for selinux
1203 cp -R --parents security/selinux/include/*.h $TempDevelRoot
1204 %ifarch %{arm}
1205 cp -fR arch/%{target_arch}/tools $TempDevelRoot/arch/%{target_arch}/
1206 cp -fR arch/%{target_arch}/kernel/signal.h $TempDevelRoot/arch/%{target_arch}/kernel/
1207 %endif
1208 %ifarch aarch64
1209 cp -fR arch/x86/entry/syscalls/syscall_32.tbl $TempDevelRoot/arch/x86/entry/syscalls/
1210 cp -fR arch/arm64/kernel/vdso/*.{S,sh} $TempDevelRoot/arch/arm64/kernel/vdso/
1211 cp -fR arch/arm64/kernel/vdso/vgettimeofday.c $TempDevelRoot/arch/arm64/kernel/vdso/
1212 cp -fR arch/arm64/tools/{cpucaps,gen-cpucaps.awk} $TempDevelRoot/arch/arm64/tools/
1213 # aarch64 build wants x86 syscall tables
1214 cp -fR arch/x86/entry/syscalls/syscall_{32,64}.tbl $TempDevelRoot/arch/x86/entry/syscalls/
1215 cp -fR lib/vdso/gettimeofday.c $TempDevelRoot/lib/vdso/
1216 %endif
1217 %ifarch %{ix86} x86_64
1218 cp -fR arch/x86/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/x86/kernel/
1219 cp -fR arch/x86/kernel/asm-offsets_{32,64}.c $TempDevelRoot/arch/x86/kernel/
1220 cp -fR arch/x86/lib/insn.c $TempDevelRoot/arch/x86/lib/
1221 cp -fR arch/x86/purgatory/* $TempDevelRoot/arch/x86/purgatory/
1222 cp -fR arch/x86/entry/syscalls/syscall* $TempDevelRoot/arch/x86/entry/syscalls/
1223 cp -fR arch/x86/include $TempDevelRoot/arch/x86/
1224 cp -fR arch/x86/tools $TempDevelRoot/arch/x86/
1225 %else
1226 cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/%{target_arch}/kernel/
1227 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f $TempDevelRoot; done
1228 %endif
1229 cp -fR .config Module.symvers $TempDevelRoot
1230
1231 # Needed for truecrypt build (Danny)
1232 cp -fR drivers/md/dm.h $TempDevelRoot/drivers/md/
1233
1234 # needed by include/generated/timeconst.h
1235 cp -fR kernel/time/timeconst.bc $TempDevelRoot/kernel/time/
1236
1237 # Needed for lirc_gpio (#39004)
1238 cp -fR drivers/media/pci/bt8xx/bttv{,p}.h $TempDevelRoot/drivers/media/pci/bt8xx/
1239 cp -fR drivers/media/pci/bt8xx/bt848.h $TempDevelRoot/drivers/media/pci/bt8xx/
1240 cp -fR drivers/media/common/btcx-risc.h $TempDevelRoot/drivers/media/common/
1241
1242 # aufs has a special file needed
1243 cp -fR fs/aufs/magic.mk $TempDevelRoot/fs/aufs/
1244
1245 # rtl8821ce has special files needed
1246 cp -fR 3rdparty/rtl8821ce/halmac.mk $TempDevelRoot/3rdparty/rtl8821ce/
1247 cp -fR 3rdparty/rtl8821ce/rtl8821c.mk $TempDevelRoot/3rdparty/rtl8821ce/
1248 mkdir -p $TempDevelRoot/3rdparty/rtl8821ce/hal/phydm/
1249 cp -fR 3rdparty/rtl8821ce/hal/phydm/phydm.mk $TempDevelRoot/3rdparty/rtl8821ce/hal/phydm/
1250 mkdir -p $TempDevelRoot/3rdparty/rtl8812au/hal/phydm/
1251 cp -fR 3rdparty/rtl8812au/hal/phydm/phydm.mk $TempDevelRoot/3rdparty/rtl8812au/hal/phydm/
1252
1253 %ifarch x86_64
1254 # orc unwinder needs theese
1255 cp -fR tools/build/Build{,.include} $TempDevelRoot/tools/build
1256 cp -fR tools/build/fixdep.c $TempDevelRoot/tools/build
1257 cp -fR tools/lib/{rbtree.c,ctype.c,str_error_r.c,string.c} $TempDevelRoot/tools/lib
1258 cp -fR tools/lib/subcmd/* $TempDevelRoot/tools/lib/subcmd
1259 cp -fR tools/objtool/* $TempDevelRoot/tools/objtool
1260 cp -fR tools/scripts/utilities.mak $TempDevelRoot/tools/scripts
1261 mkdir -p $TempDevelRoot/tools/arch/x86/tools
1262 cp -fR tools/arch/x86/tools/gen-insn-attr-x86.awk $TempDevelRoot/tools/arch/x86/tools/
1263 mkdir -p $TempDevelRoot/tools/arch/x86/lib
1264 cp -fR tools/arch/x86/lib/{inat.c,insn.c,x86-opcode-map.txt} $TempDevelRoot/tools/arch/x86/lib/
1265 mkdir -p $TempDevelRoot/tools/arch/x86/include/asm
1266 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/
1267 %endif
1268
1269 for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 m32r m68k m68knommu metag microblaze \
1270 mips mn10300 nds32 nios2 openrisc parisc powerpc riscv s390 score sh sparc tile unicore32 xtensa; do
1271 rm -rf $TempDevelRoot/arch/$i
1272 rm -rf $TempDevelRoot/scripts/dtc/include-prefixes/$i
1273 rm -rf $TempDevelRoot/tools/arch/$i
1274 done
1275
1276 %ifnarch %{arm} aarch64
1277 rm -rf $TempDevelRoot/arch/arm*
1278 rm -rf $TempDevelRoot/include/kvm/arm*
1279 rm -rf $TempDevelRoot/include/soc
1280 rm -rf $TempDevelRoot/scripts/dtc/include-prefixes/arm*
1281 rm -rf $TempDevelRoot/tools/arch/arm*
1282 %endif
1283 %ifnarch %{ix86} x86_64
1284 rm -rf $TempDevelRoot/arch/x86
1285 rm -rf $TempDevelRoot/tools/arch/x86
1286 # arch/x86/ras/Kconfig is included by drivers/ras/Kconfig
1287 # and kconfig's source command seems to be evaluated even under a false conditional
1288 mkdir -p $TempDevelRoot/arch/x86/ras
1289 cp -fR arch/x86/ras/Kconfig $TempDevelRoot/arch/x86/ras
1290 %endif
1291
1292 # Clean the scripts tree, and make sure everything is ok (sanity check)
1293 # running prepare+scripts (tree was already "prepared" in build)
1294 pushd $TempDevelRoot >/dev/null
1295 %smake ARCH=%{target_arch} -s prepare scripts
1296 %smake ARCH=%{target_arch} -s clean
1297 popd >/dev/null
1298 rm -f $TempDevelRoot/.config.old
1299
1300 # fix permissions
1301 chmod -R a+rX $TempDevelRoot
1302
1303 # disable mrproper in -devel rpms
1304 patch -p1 --fuzz=0 -d $TempDevelRoot -i %{SOURCE2}
1305
1306 kernel_devel_files=../kernel_devel_files.$devel_flavour
1307
1308
1309 ### Create the kernel_devel_files.*
1310 cat > $kernel_devel_files <<EOF
1311 %dir $DevelRoot
1312 %dir $DevelRoot/arch
1313 %dir $DevelRoot/include
1314 $DevelRoot/3rdparty
1315 $DevelRoot/Documentation
1316 %ifarch %{arm} aarch64
1317 $DevelRoot/arch/arm
1318 $DevelRoot/arch/arm64
1319 %endif
1320 $DevelRoot/arch/um
1321 %ifarch %{ix86} x86_64
1322 $DevelRoot/arch/x86
1323 %else
1324 $DevelRoot/arch/x86/ras
1325 %endif
1326 $DevelRoot/block
1327 $DevelRoot/certs
1328 $DevelRoot/crypto
1329 $DevelRoot/drivers
1330 $DevelRoot/fs
1331 $DevelRoot/include/acpi
1332 $DevelRoot/include/asm-generic
1333 $DevelRoot/include/clocksource
1334 $DevelRoot/include/config
1335 $DevelRoot/include/crypto
1336 $DevelRoot/include/drm
1337 $DevelRoot/include/dt-bindings
1338 $DevelRoot/include/generated
1339 $DevelRoot/include/keys
1340 $DevelRoot/include/kunit
1341 $DevelRoot/include/kvm
1342 $DevelRoot/include/linux
1343 $DevelRoot/include/math-emu
1344 $DevelRoot/include/media
1345 $DevelRoot/include/memory
1346 $DevelRoot/include/misc
1347 $DevelRoot/include/net
1348 $DevelRoot/include/pcmcia
1349 $DevelRoot/include/ras
1350 $DevelRoot/include/rdma
1351 $DevelRoot/include/scsi
1352 %ifarch %{arm} aarch64
1353 $DevelRoot/include/soc
1354 %endif
1355 $DevelRoot/include/sound
1356 $DevelRoot/include/target
1357 $DevelRoot/include/trace
1358 $DevelRoot/include/uapi
1359 $DevelRoot/include/vdso/*.h
1360 $DevelRoot/include/video
1361 $DevelRoot/include/xen
1362 $DevelRoot/init
1363 $DevelRoot/ipc
1364 $DevelRoot/kernel
1365 $DevelRoot/lib
1366 $DevelRoot/mm
1367 $DevelRoot/net
1368 $DevelRoot/samples
1369 $DevelRoot/scripts
1370 $DevelRoot/security
1371 $DevelRoot/sound
1372 $DevelRoot/tools
1373 $DevelRoot/usr
1374 $DevelRoot/virt
1375 $DevelRoot/.config
1376 $DevelRoot/Kbuild
1377 $DevelRoot/Kconfig
1378 $DevelRoot/Makefile
1379 $DevelRoot/Module.symvers
1380 $DevelRoot/arch/Kconfig
1381 %doc README.kernel-sources
1382 EOF
1383
1384
1385 ### Create -devel Post script on the fly
1386 cat > $kernel_devel_files-post <<EOF
1387 if [ -d /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel} ]; then
1388 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/{build,source}
1389 ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
1390 ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
1391 fi
1392 EOF
1393
1394
1395 ### Create -devel Preun script on the fly
1396 cat > $kernel_devel_files-preun <<EOF
1397 if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build ]; then
1398 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
1399 fi
1400 if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source ]; then
1401 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
1402 fi
1403 exit 0
1404 EOF
1405
1406 ### Create -devel Postun script on the fly
1407 cat > $kernel_devel_files-postun <<EOF
1408 rm -rf /usr/src/kernel-%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1409 EOF
1410 }
1411
1412 SaveDebug() {
1413 debug_flavour=$1
1414
1415 install -m 644 vmlinux \
1416 %{temp_boot}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}
1417 kernel_debug_files=../kernel_debug_files.$debug_flavour
1418 echo "%{_bootdir}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}" \
1419 >> $kernel_debug_files
1420
1421 find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1422 -name "*.ko" | \
1423 %kxargs -I '{}' objcopy --only-keep-debug '{}' '{}'.debug
1424 find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1425 -name "*.ko" | %kxargs -I '{}' \
1426 sh -c 'cd `dirname {}`; \
1427 objcopy --add-gnu-debuglink=`basename {}`.debug \
1428 --strip-debug `basename {}`'
1429
1430 pushd %{temp_modules}
1431 find %{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1432 -name "*.ko.debug" > debug_module_list
1433 popd
1434 cat %{temp_modules}/debug_module_list | \
1435 sed 's|\(.*\)|%{_modulesdir}/\1|' >> $kernel_debug_files
1436 cat %{temp_modules}/debug_module_list | \
1437 sed 's|\(.*\)|%exclude %{_modulesdir}/\1|' \
1438 >> ../kernel_exclude_debug_files.$debug_flavour
1439 rm -f %{temp_modules}/debug_module_list
1440 }
1441
1442 CreateFiles() {
1443 kernel_flavour=$1
1444
1445 kernel_files=../kernel_files.$kernel_flavour
1446
1447 ker="vmlinuz"
1448 ### Create the kernel_files.*
1449 cat > $kernel_files <<EOF
1450 %{_bootdir}/System.map-%{kversion}-$kernel_flavour-%{buildrpmrel}
1451 %{_bootdir}/symvers-%{kversion}-$kernel_flavour-%{buildrpmrel}.xz
1452 %{_bootdir}/config-%{kversion}-$kernel_flavour-%{buildrpmrel}
1453 %{_bootdir}/$ker-%{kversion}-$kernel_flavour-%{buildrpmrel}
1454 %dir %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/
1455 %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/kernel
1456 %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/modules.*
1457 %doc README.kernel-sources
1458 %ifarch %arm aarch64
1459 %dir %{_libdir}/linux-%{kversion}-$kernel_flavour-%{buildrpmrel}
1460 %{_libdir}/linux-%{kversion}-$kernel_flavour-%{buildrpmrel}/*.dtb
1461 %endif
1462 EOF
1463
1464 %if %build_debug
1465 cat ../kernel_exclude_debug_files.$kernel_flavour >> $kernel_files
1466 %endif
1467
1468 ### Create kernel Posttrans script
1469 cat > $kernel_files-posttrans <<EOF
1470 %if %build_devel
1471 # create kernel-devel symlinks if matching -devel- rpm is installed
1472 if [ -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
1473 ln -sf /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build
1474 ln -sf /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source
1475 fi
1476 %endif
1477 if [ -z "$DURING_INSTALL" ] ; then
1478 if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
1479 /usr/sbin/dkms_autoinstaller start %{kversion}-$kernel_flavour-%{buildrpmrel}
1480 fi
1481 fi
1482 /sbin/installkernel %{kversion}-$kernel_flavour-%{buildrpmrel}
1483 pushd /boot > /dev/null
1484 if [ -e initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img ]; then
1485 ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz-$kernel_flavour
1486 ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz
1487 ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd-$kernel_flavour.img
1488 ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd.img
1489 fi
1490 popd > /dev/null
1491 EOF
1492
1493 ### Create kernel Postun script on the fly
1494 cat > $kernel_files-postun <<EOF
1495 pushd /boot > /dev/null
1496 if [ -f "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
1497 echo "The kernel is still installed in postun, probably a reinstall, skipping cleanup." >&2
1498 exit
1499 fi
1500 if [ -L vmlinuz-$kernel_flavour ]; then
1501 if [ "$(readlink vmlinuz-$kernel_flavour)" = "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
1502 rm -f vmlinuz-$kernel_flavour
1503 fi
1504 fi
1505 if [ -L initrd-$kernel_flavour.img ]; then
1506 if [ "$(readlink initrd-$kernel_flavour.img)" = "initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img" ]; then
1507 rm -f initrd-$kernel_flavour.img
1508 fi
1509 fi
1510 popd > /dev/null
1511 rm -rf /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel} >/dev/null
1512 /sbin/kernel_remove_initrd %{kversion}-$kernel_flavour-%{buildrpmrel}
1513 /sbin/installkernel -R %{kversion}-$kernel_flavour-%{buildrpmrel}
1514 if [ -d /var/lib/dkms ]; then
1515 rm -f /var/lib/dkms/*/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null
1516 rm -rf /var/lib/dkms/*/*/%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1517 rm -f /var/lib/dkms-binary/*/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null
1518 rm -rf /var/lib/dkms-binary/*/*/%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1519 fi
1520 EOF
1521 }
1522
1523
1524 CreateKernel() {
1525 flavour=$1
1526
1527 PrepareKernel $flavour $flavour-%{buildrpmrel}
1528
1529 BuildKernel %{kversion}-$flavour-%{buildrpmrel}
1530 %if %build_devel
1531 SaveDevel $flavour
1532 %endif
1533 %if %build_debug
1534 SaveDebug $flavour
1535 %endif
1536 CreateFiles $flavour
1537 }
1538
1539
1540 ###
1541 # DO it...
1542 ###
1543
1544
1545 # Create a simulacro of buildroot
1546 rm -rf %{temp_root}
1547 install -d %{temp_root}
1548
1549
1550 # make sure we are in the directory
1551 cd %src_dir
1552
1553 %ifarch %{ix86}
1554 %if %build_desktop586
1555 CreateKernel desktop586
1556 %endif
1557 %endif
1558
1559 %if %build_desktop
1560 CreateKernel desktop
1561 %endif
1562
1563 %if %build_server
1564 CreateKernel server
1565 %endif
1566
1567 # set extraversion to match srpm to get nice version reported by the tools
1568 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1569
1570 # build perf
1571 %if %{build_perf}
1572 # perf
1573 %smake -s -C tools/perf NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1574 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} all
1575 %smake -C tools/perf -s prefix=%{_prefix} man
1576 %endif
1577
1578 %if %{build_cpupower}
1579 # cpupower
1580 # make sure version-gen.sh is executable.
1581 chmod +x tools/power/cpupower/utils/version-gen.sh
1582 %make_build -C tools/power/cpupower CPUFREQ_BENCH=false
1583 %endif
1584
1585 # build bpftool
1586 %if %{build_bpftool}
1587 pushd tools/bpf/bpftool
1588 make
1589 popd
1590 %endif
1591
1592 # build libbpf
1593 %if %{build_libbpf}
1594 pushd tools/lib/bpf
1595 make V=1
1596 popd
1597 %endif
1598
1599 # We don't make to repeat the depend code at the install phase
1600 %if %build_source
1601 PrepareKernel "" %{buildrpmrel}custom
1602 %smake ARCH=%{target_arch} -s mrproper
1603 %endif
1604
1605
1606 ###
1607 ### install
1608 ###
1609 %install
1610 install -m 644 %{SOURCE4} .
1611
1612 cd %src_dir
1613
1614 # Directories definition needed for installing
1615 %define target_source %{buildroot}%{_kerneldir}
1616 %define target_boot %{buildroot}%{_bootdir}
1617 %define target_modules %{buildroot}%{_modulesdir}
1618 %define target_headers %{buildroot}%{_prefix}
1619
1620 # We want to be able to test several times the install part
1621 rm -rf %{buildroot}
1622 cp -a %{temp_root} %{buildroot}
1623
1624 # Create directories infastructure
1625 %if %build_source
1626 install -d %{target_source}
1627
1628 tar cf - . | tar xf - -C %{target_source}
1629 chmod -R a+rX %{target_source}
1630
1631 # we remove all the source files that we don't ship
1632 # first architecture files
1633 for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 m32r m68k m68knommu metag microblaze \
1634 mips nds32 nios2 openrisc parisc powerpc riscv s390 score sh sh64 sparc tile unicore32 v850 xtensa mn10300; do
1635 rm -rf %{target_source}/arch/$i
1636 rm -rf %{target_source}/scripts/dtc/include-prefixes/$i
1637 rm -rf %{target_source}/tools/arch/$i
1638 rm -rf %{target_source}/tools/testing/selftests/$i
1639 done
1640 %ifnarch %{arm} aarch64
1641 rm -rf %{target_source}/include/kvm/arm*
1642 rm -rf %{target_source}/scripts/dtc/include-prefixes/arm*
1643 rm -rf %{target_source}/tools/arch/arm*
1644 %endif
1645
1646 # other misc files
1647 rm -f %{target_source}/{.clang-format,.config.old,.config.cmd,.lst,.mailmap,.get_maintainer.ignore}
1648 rm -f %{target_source}/{.missing-syscalls.d,.cocciconfig,.gitattributes}
1649 rm -rf %{target_source}/.tmp_depmod/
1650
1651 # more cleaning
1652 pushd %{target_source}
1653 # lots of gitignore files
1654 find -iname ".gitignore" -delete
1655 # clean tools tree
1656 %smake -C tools clean
1657 %smake -C tools/build clean
1658 %smake -C tools/build/feature clean
1659 # dont ship generated vdso.so*
1660 %ifarch aarch64
1661 rm -f arch/arm64/kernel/vdso/vdso.so*
1662 %endif
1663 popd
1664
1665 # nuke last as it gets re-created
1666 rm -f %{target_source}/.cache.mk
1667
1668 #endif %build_source
1669 %endif
1670
1671 # compressing modules
1672 %if %{build_modxz}
1673 find %{target_modules} -name "*.ko" | %kxargs xz -6
1674 %else
1675 find %{target_modules} -name "*.ko" | %kxargs gzip -9
1676 %endif
1677
1678 # We used to have a copy of PrepareKernel here
1679 # Now, we make sure that the thing in the linux dir is what we want it to be
1680 for i in %{target_modules}/*; do
1681 rm -f $i/build $i/source
1682 done
1683
1684 # sniff, if we compressed all the modules, we change the stamp :(
1685 # we really need the depmod -ae here
1686 pushd %{target_modules}
1687 for i in *; do
1688 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
1689 echo $?
1690 done
1691
1692 for i in *; do
1693 pushd $i
1694 echo "Creating modules.description for $i"
1695 modules=`find . -name "*.ko.[g,x]z"`
1696 echo $modules | xargs /sbin/modinfo \
1697 | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
1698 popd
1699 done
1700 popd
1701
1702 # need to set extraversion to match srpm again to avoid rebuild
1703 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1704
1705 # install userspace-headers
1706 %if %{build_uheaders}
1707 %smake ARCH=%{target_arch} headers_install INSTALL_HDR_PATH=%{target_headers}
1708 # for drakx
1709 cp include/linux/pci_ids.h %{target_headers}/include/linux/
1710 %endif
1711
1712 %if %{build_perf}
1713 # perf tool binary and supporting scripts/binaries
1714 %smake -s -C tools/perf V=1 DESTDIR=%{buildroot} NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1715 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} install
1716
1717 # perf man pages (note: implicit rpm magic compresses them later)
1718 make -C tools/perf V=1 DESTDIR=%{buildroot} prefix=%{_prefix} install-man
1719
1720 # remove perf files we dont ship
1721 rm -rf %{buildroot}/usr/lib/perf/examples
1722 rm -rf %{buildroot}/usr/lib/perf/include/bpf
1723 rm -rf %{buildroot}/usr/include/perf/perf_dlfilter.h
1724 %endif
1725
1726 %if %{build_cpupower}
1727 make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
1728 rm -f %{buildroot}%{_libdir}/*.{a,la}
1729 %find_lang cpupower
1730 mv cpupower.lang ../
1731 chmod 0755 %{buildroot}%{_libdir}/libcpupower.so*
1732 mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig
1733 install -m644 %{SOURCE50} %{buildroot}%{_unitdir}/cpupower.service
1734 install -m644 %{SOURCE51} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
1735 %endif
1736
1737 # install bpftool
1738 %if %{build_bpftool}
1739 pushd tools/bpf/bpftool
1740 make DESTDIR=%{buildroot} prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} install doc-install
1741 popd
1742 %endif
1743
1744 # install libbpf
1745 %if %{build_libbpf}
1746 pushd tools/lib/bpf
1747 make DESTDIR=%{buildroot} prefix=%{_prefix} libdir=%{_libdir} V=1 install install_headers
1748 popd
1749 %endif
1750
1751 ###
1752 ### clean
1753 ###
1754 %clean
1755 rm -rf %{buildroot}
1756
1757
1758 # We don't want to remove this, the whole reason of its existence is to be
1759 # able to do several rpm --short-circuit -bi for testing install
1760 # phase without repeating compilation phase
1761 #rm -rf %{temp_root}
1762
1763 ###
1764 ### source and doc file lists
1765 ###
1766
1767 %if %build_source
1768 %files -n %{kname}-source-%{buildrel}
1769 %doc %{_kerneldir}/LICENSES
1770 %dir %{_kerneldir}
1771 %dir %{_kerneldir}/arch
1772 %dir %{_kerneldir}/include
1773 %{_kerneldir}/3rdparty
1774 %{_kerneldir}/Documentation
1775 %{_kerneldir}/arch/Kconfig
1776 %{_kerneldir}/arch/arm
1777 %{_kerneldir}/arch/arm64
1778 %{_kerneldir}/arch/um
1779 %{_kerneldir}/arch/x86
1780 %{_kerneldir}/block
1781 %{_kerneldir}/certs
1782 %{_kerneldir}/crypto
1783 %{_kerneldir}/drivers
1784 %{_kerneldir}/fs
1785 %{_kerneldir}/include/acpi
1786 %{_kerneldir}/include/asm-generic
1787 %{_kerneldir}/include/clocksource
1788 %{_kerneldir}/include/crypto
1789 %{_kerneldir}/include/drm
1790 %{_kerneldir}/include/dt-bindings
1791 %{_kerneldir}/include/keys
1792 %{_kerneldir}/include/kunit
1793 %{_kerneldir}/include/kvm
1794 %{_kerneldir}/include/linux
1795 %{_kerneldir}/include/math-emu
1796 %{_kerneldir}/include/media
1797 %{_kerneldir}/include/memory
1798 %{_kerneldir}/include/misc
1799 %{_kerneldir}/include/net
1800 %{_kerneldir}/include/pcmcia
1801 %{_kerneldir}/include/ras
1802 %{_kerneldir}/include/rdma
1803 %{_kerneldir}/include/scsi
1804 %{_kerneldir}/include/soc
1805 %{_kerneldir}/include/sound
1806 %{_kerneldir}/include/target
1807 %{_kerneldir}/include/trace
1808 %{_kerneldir}/include/uapi
1809 %{_kerneldir}/include/vdso/*.h
1810 %{_kerneldir}/include/video
1811 %{_kerneldir}/include/xen
1812 %{_kerneldir}/init
1813 %{_kerneldir}/ipc
1814 %{_kerneldir}/kernel
1815 %{_kerneldir}/lib
1816 %{_kerneldir}/mm
1817 %{_kerneldir}/net
1818 %{_kerneldir}/virt
1819 %{_kerneldir}/samples
1820 %{_kerneldir}/scripts
1821 %{_kerneldir}/security
1822 %{_kerneldir}/sound
1823 %{_kerneldir}/tools
1824 %{_kerneldir}/usr
1825 %{_kerneldir}/COPYING
1826 %{_kerneldir}/CREDITS
1827 %{_kerneldir}/Kbuild
1828 %{_kerneldir}/Kconfig
1829 %{_kerneldir}/MAINTAINERS
1830 %{_kerneldir}/Makefile
1831 %{_kerneldir}/README
1832 %doc README.kernel-sources
1833
1834 %files -n %{kname}-source-latest
1835 %endif
1836
1837 %if %build_doc
1838 %files -n %{kname}-doc
1839 %doc linux-%{tar_ver}/Documentation/*
1840 %endif
1841
1842 %if %build_uheaders
1843 %files -n %{kname}-userspace-headers
1844 %defattr(0644,root,root,0755)
1845 %{_includedir}/asm/
1846 %{_includedir}/asm-generic/
1847 %{_includedir}/drm/
1848 %{_includedir}/linux/
1849 %{_includedir}/misc/
1850 %{_includedir}/mtd/
1851 %{_includedir}/rdma/
1852 %{_includedir}/scsi/
1853 %{_includedir}/sound/
1854 %{_includedir}/video/
1855 %{_includedir}/xen/
1856 %endif
1857
1858 %if %{build_perf}
1859 %files -n perf
1860 %{_bindir}/perf
1861 %{_bindir}/trace
1862 %{_datadir}/perf-core/strace/groups/file
1863 %{_datadir}/perf-core/strace/groups/string
1864 %{_datadir}/doc/perf-tip/tips.txt
1865 %dir %{_libdir}/traceevent
1866 %dir %{_libdir}/traceevent/plugins
1867 %{_libdir}/traceevent/plugins/plugin_*
1868 %dir %{_prefix}/libexec/perf-core
1869 %{_prefix}/libexec/perf-core/*
1870 %{_mandir}/man[1-8]/perf*
1871 %{_sysconfdir}/bash_completion.d/perf
1872 %endif
1873
1874 %if %{build_cpupower}
1875 %files -n cpupower -f cpupower.lang
1876 %config(noreplace) %{_sysconfdir}/sysconfig/cpupower
1877 %{_bindir}/cpupower
1878 %{_datadir}/bash-completion/completions/cpupower
1879 %{_libdir}/libcpupower.so.0
1880 %{_libdir}/libcpupower.so.0.0.1
1881 %{_unitdir}/cpupower.service
1882 %{_mandir}/man[1-8]/cpupower*
1883
1884 %files -n cpupower-devel
1885 %{_libdir}/libcpupower.so
1886 %{_includedir}/cpuidle.h
1887 %{_includedir}/cpufreq.h
1888 %endif
1889
1890 %if %{build_bpftool}
1891 %files -n bpftool
1892 %{_sbindir}/bpftool
1893 %{_sysconfdir}/bash_completion.d/bpftool
1894 %{_mandir}/man8/bpftool-*.8*
1895 %{_mandir}/man8/bpftool.8*
1896 %endif
1897
1898 %if %{build_libbpf}
1899 %files -n %{_lib}bpf0
1900 %{_libdir}/libbpf.so.0
1901 %{_libdir}/libbpf.so.0.8.0
1902
1903 %files -n %{_lib}bpf-devel
1904 %{_libdir}/libbpf.a
1905 %{_libdir}/libbpf.so
1906 %{_libdir}/pkgconfig/libbpf.pc
1907 %{_includedir}/bpf/bpf.h
1908 %{_includedir}/bpf/bpf_core_read.h
1909 %{_includedir}/bpf/bpf_endian.h
1910 %{_includedir}/bpf/bpf_helper_defs.h
1911 %{_includedir}/bpf/bpf_helpers.h
1912 %{_includedir}/bpf/bpf_tracing.h
1913 %{_includedir}/bpf/btf.h
1914 %{_includedir}/bpf/libbpf.h
1915 %{_includedir}/bpf/libbpf_common.h
1916 %{_includedir}/bpf/libbpf_legacy.h
1917 %{_includedir}/bpf/libbpf_version.h
1918 %{_includedir}/bpf/skel_internal.h
1919 %{_includedir}/bpf/xsk.h
1920 %endif

  ViewVC Help
Powered by ViewVC 1.1.30