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

  ViewVC Help
Powered by ViewVC 1.1.30