/[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 1861167 - (show annotations) (download)
Fri Jun 3 19:33:53 2022 UTC (21 months, 3 weeks ago) by tmb
File size: 55197 byte(s)
- x86/amd_nb: Add AMD Family 17h A0-AF IDs
- x86/amd_nb: Add Family 19h model 70h-7Fh IDs
- x86/amd_nb: Add Family 19h model 60h-6Fh IDs
- hwmon: (k10temp): Add support for family 17h models A0h-AFh
- hwmon: (k10temp): Add support for family 19h models 70h-7Fh
- hwmon: (k10temp): Add support for family 19h models 60h-6Fh


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

  ViewVC Help
Powered by ViewVC 1.1.30