/[packages]/updates/8/kernel/current/SPECS/kernel.spec
ViewVC logotype

Contents of /updates/8/kernel/current/SPECS/kernel.spec

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.30