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

  ViewVC Help
Powered by ViewVC 1.1.30