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

  ViewVC Help
Powered by ViewVC 1.1.30