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

  ViewVC Help
Powered by ViewVC 1.1.30