/[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 1789617 - (show annotations) (download)
Mon Mar 7 22:56:21 2022 UTC (2 years, 1 month ago) by tmb
File size: 56402 byte(s)
- update to 5.16.12
  * drop merged patches


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

  ViewVC Help
Powered by ViewVC 1.1.30