/[packages]/updates/8/kernel/current/SPECS/kernel.spec
ViewVC logotype

Contents of /updates/8/kernel/current/SPECS/kernel.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1759226 - (show annotations) (download)
Thu Nov 25 20:50:03 2021 UTC (2 years, 4 months ago) by tmb
File size: 56501 byte(s)
- update to 5.15.5
  * drop merged patches
  * adjust aufs for 5.15.5
- hwmon: (asus_wmi_sensors) Support X370 Asus WMI
- hwmon: (asus_wmi_ec_sensors) Support B550 Asus WMI
- hwmon: (k10temp) Support up to 12 CCDs on AMD Family of processors


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

  ViewVC Help
Powered by ViewVC 1.1.30