/[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 1858142 - (show annotations) (download)
Sat May 14 13:37:52 2022 UTC (22 months, 2 weeks ago) by tmb
File size: 56534 byte(s)
- drm/vmwgfx: Initialize drm_mode_fb_cmd2
- drm/vmwgfx: Disable command buffers on svga3 without gbobjects
- net: atlantic: always deep reset on pm op, fixing up my null deref regression


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

  ViewVC Help
Powered by ViewVC 1.1.30