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

  ViewVC Help
Powered by ViewVC 1.1.30