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

  ViewVC Help
Powered by ViewVC 1.1.30