/[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 1762336 - (show annotations) (download)
Fri Dec 17 12:19:42 2021 UTC (2 years, 4 months ago) by tmb
File size: 58745 byte(s)
HID: holtek: fix mouse probing
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 10
39
40 # Package release
41 %define mgarel 1
42
43 # kernel Makefile extraversion is substituted by
44 # rcX which are either 0 (empty), X (as in rcX)
45 %define rcX 0
46
47 # kernel base name (also name of srpm)
48 %define kname kernel
49
50 # Patch tarball tag
51 %define ktag mga
52
53 %define rpmtag %{distsuffix}%{mgaver}
54 %if %{rcX}
55 %define rpmrel %mkrel 0.rc%{rcX}.%{mgarel}
56 %else
57 %define rpmrel %mkrel %{mgarel}
58 %endif
59
60 # fakerel and fakever never change, they are used to fool
61 # rpm/urpmi/smart and ensure the kernels are installed,
62 # not upgraded so old kernel is not overwritten or removed
63 %define fakever 1
64 %define fakerel %mkrel 1
65
66 # version defines
67 %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
68 %define kverrel %{kversion}-%{rpmrel}
69
70 # When we are using a rcX patch, the tarball is a sublevel -1
71 %if %{rcX}
72 %if %sublevel
73 %define tar_ver %{kernelversion}.%{patchlevel}
74 %else
75 %define tar_ver %{kernelversion}.%(expr %{patchlevel} - 1)
76 %endif
77 %else
78 %define tar_ver %{kernelversion}.%{patchlevel}
79 %endif
80
81 # Used for not making too long names for rpms or search paths
82 %if %rcX
83 %define buildrpmrel 0.rc%{rcX}.%{mgarel}%{rpmtag}
84 %else
85 %define buildrpmrel %{mgarel}%{rpmtag}
86 %endif
87 %define buildrel %{kversion}-%{buildrpmrel}
88
89 # Having different top level names for packges means that you have to remove
90 # them by hard :(
91 %define top_dir_name %{kname}-%{_arch}
92
93 %define build_dir ${RPM_BUILD_DIR}/%{top_dir_name}
94 %define src_dir %{build_dir}/linux-%{tar_ver}
95
96 # Disable useless debug rpms...
97 %global _enable_debug_packages %{nil}
98 %global debug_package %{nil}
99 %global __debug_package %{nil}
100 %global __debug_install_post %{nil}
101 %global _build_id_links none
102
103 # no bytecompiling wanted as it breaks build on selftests we dont even ship
104 # for older buildsystems
105 %global _python_bytecompile_build 0
106 # for systems with >= rpm-mageia-setup-2.29-1.mga7
107 %global __brp_python_bytecompile %nil
108
109 # Build defines
110 %define build_doc 1
111 %define build_uheaders 1
112 %define build_source 1
113 %define build_devel 1
114
115 %define build_debug 0
116
117 # Build desktop i586 / 4GB
118 %ifarch %{ix86}
119 %define build_desktop586 1
120 %endif
121
122 # Build desktop (i686 / 4GB) / x86_64
123 %define build_desktop 1
124
125 # Build server (i686 / 64GB)/x86_64 / sparc64 sets
126 %define build_server 1
127
128 # build perf and cpupower tools
129 %define build_perf 1
130 %define build_cpupower 1
131
132 # bpf
133 %define build_bpftool 1
134 %define build_libbpf 1
135
136 # compress modules with xz
137 %define build_modxz 1
138
139 # ARM builds
140 %ifarch %{arm}
141 %define build_server 0
142 # no cpupower tools on arm yet
143 %define build_cpupower 0
144 # arm is currently not using xz
145 %define build_modxz 0
146 %endif
147 # Arm64 builds
148 %ifarch aarch64
149 %define build_cpupower 0
150 %endif
151 # End of user definitions
152
153 # buildtime flags
154 %{?_without_desktop586: %global build_desktop586 0}
155 %{?_without_desktop: %global build_desktop 0}
156 %{?_without_server: %global build_server 0}
157 %{?_without_doc: %global build_doc 0}
158 %{?_without_uheaders: %global build_uheaders 0}
159 %{?_without_source: %global build_source 0}
160 %{?_without_devel: %global build_devel 0}
161 %{?_without_debug: %global build_debug 0}
162 %{?_without_perf: %global build_perf 0}
163 %{?_without_cpupower: %global build_cpupower 0}
164 %{?_without_bpftool: %global build_bpftool 0}
165 %{?_without_libbpf: %global build_libbpf 0}
166 %{?_without_modxz: %global build_modxz 0}
167
168 %{?_with_desktop586: %global build_desktop586 1}
169 %{?_with_desktop: %global build_desktop 1}
170 %{?_with_server: %global build_server 1}
171 %{?_with_doc: %global build_doc 1}
172 %{?_with_uheaders: %global build_uheaders 1}
173 %{?_with_source: %global build_source 1}
174 %{?_with_devel: %global build_devel 1}
175 %{?_with_debug: %global build_debug 1}
176 %{?_with_perf: %global build_perf 1}
177 %{?_with_cpupower: %global build_cpupower 1}
178 %{?_with_bpftool: %global build_bpftool 1}
179 %{?_with_libbpf: %global build_libbpf 1}
180 %{?_with_modxz: %global build_modxz 1}
181
182 # For the .nosrc.rpm
183 %define build_nosrc 0
184 %{?_with_nosrc: %global build_nosrc 1}
185
186 %if %(if [ -z "$CC" ] ; then echo 0; else echo 1; fi)
187 %define kmake %make_build CC="$CC"
188 %else
189 %define kmake %make_build
190 %endif
191 # there are places where parallel make don't work
192 %define smake make
193
194 # Parallelize xargs invocations on smp machines
195 %define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\
196 && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
197 [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS")
198
199 # Sparc arch wants sparc64 kernels
200 %define target_arch %(echo %{_arch} | sed -e 's/arm.*/arm/' -e 's/aarch64/arm64/')
201
202
203 #
204 # SRC RPM description
205 #
206 Summary: Linux kernel built for Mageia
207 Name: %{kname}
208 Version: %{kversion}
209 Release: %{rpmrel}
210 License: GPLv2
211 Group: System/Kernel and hardware
212 ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
213 ExclusiveOS: Linux
214 URL: https://www.kernel.org/
215
216 ####################################################################
217 #
218 # Sources
219 #
220 ### This is for full SRC RPM
221 Source0: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.xz
222 Source1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.sign
223 ### This is for stripped SRC RPM
224 %if %build_nosrc
225 NoSource: 0
226 %endif
227 # This is for disabling *config, mrproper, prepare, scripts on -devel rpms
228 Source2: disable-mrproper-in-devel-rpms.patch
229
230 Source4: README.kernel-sources
231
232 # for creating stable queue patchlist
233 Source5: generate-patchlist.sh
234
235 # copy to patched source tree along with the defconfigs and run it
236 Source10: defconfig-updater.sh
237 Source09: defconfig-updater-simple.sh
238 # x86_64 defconfigs
239 Source11: defconfig-x86_64-desktop
240 Source12: defconfig-x86_64-server
241 # i386 defconfigs
242 Source13: defconfig-i386-desktop586
243 Source14: defconfig-i386-desktop
244 Source15: defconfig-i386-server
245 # arm64 defconfigs
246 Source16: defconfig-arm64-desktop
247 Source17: defconfig-arm64-server
248 # arm defconfigs
249 Source18: defconfig-arm-desktop
250
251 # config and systemd service file from fedora
252 Source50: cpupower.service
253 Source51: cpupower.config
254
255 # breaks bpftool build on mga8
256 Source100: tools-build-remove-needless-libpython-version-feature-check-that-breaks-test-all-fast-path.patch
257
258 ####################################################################
259 #
260 # Patches
261
262 #
263 # Patch0 to Patch10 are for core kernel upgrades.
264 #
265
266 %if %sublevel
267 Patch1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kernelversion}.%{patchlevel}.%{sublevel}.xz
268 %endif
269 %if %{rcX}
270 # (tmb) Created with:
271 # wget https://git.kernel.org/torvalds/p/v5.10-rc7/v5.9 -O patch-5.10-rc7
272 # xz -6e patch-5.10-rc7
273 Patch2: patch-%{kernelversion}.%{patchlevel}-rc%{rcX}.xz
274 %endif
275
276 ###
277 ### Stable Queue can be big
278 ### Patches from 100-999
279 ###
280 ### add patches here by copying contents of kernel matching queue-x.y from:
281 ### https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/
282 ### to SOURCES, generate patchlist with generate-patchlist.sh and paste it here
283 ###
284
285 ###
286 ### Arch
287 ### Patches from 1000
288 ###
289
290 # laptop needing pci=assign-busses (#18989, needs to be submitted upstream)
291 Patch1000: x86-pci-toshiba-equium-a60-assign-busses.patch
292
293 # If users choose a bad video mode, allow to jump to
294 # a working one (TTL: forever)
295 Patch1001: x86-boot-video-80x25-if-break.patch
296
297 # Allow poweroff on UP machines running SMP kernels
298 Patch1005: x86-default_poweroff_up_machines.patch
299
300 # raise vmalloc to fix https://bugs.mageia.org/show_bug.cgi?id=904
301 Patch1010: x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch
302
303 # slows down boot
304 Patch1015: Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch
305
306 # fixes new hw not being properly detected
307 Patch1020: x86-pci-ignore-e820-reservations-for-bridge-windows-on-newer-systems.patch
308
309 # intel_pstate
310 Patch1025: cpufreq-intel_pstate-ITMT-support-for-overclocked-sy.patch
311
312 ###
313 ### ACPI
314 ###
315
316 # CLEVO M360S acpi irq workaround
317 Patch1100: acpi-CLEVO-M360S-disable_acpi_irq.patch
318
319 # Clevo M720SR freezes with C3
320 Patch1105: acpi-processor-M720SR-limit-to-C2.patch
321
322 # backlight fixes
323 Patch1110: ACPI-video-Add-a-quirk-to-force-acpi-video-backlight.patch
324
325 # ACPI PM fixes (TTL: 5.16)
326 Patch1130: x86-ACPI-State-Optimize-C3-entry-on-AMD-CPUs.patch
327
328 ###
329 ### Block
330 ###
331
332 # FIXME: Don't know know why this is needed
333 Patch1200: scsi-megaraid-new-sysfs-name.patch
334
335 # adds aliases to support upgrade from old dm-raid45 patch
336 Patch1215: dm-raid-aliases.patch
337
338 # disable floppy autoloading (mga #4696)
339 Patch1220: block-floppy-disable-pnp-modalias.patch
340
341 # ahci
342 Patch1240: Add-AHCI-support-for-ASM1062-JBM575-cards.patch
343
344 # mmc
345 Patch1250: mmc-sdhci-pci-Add-PCI-ID-for-Intel-ADL.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 # 5.15.7 regression fix
367 Patch1320: fs-fget-clarify-and-improve-__fget_files-implementation.patch
368
369 # procfs
370 Patch1360: fs-procfs-do-not-list-TID-0-in-proc-pid-task.patch
371
372 ###
373 ### FireWire
374 ###
375
376 # adding module aliases to ease upgrade from ieee1394
377 Patch1400: firewire-ieee1394-module-aliases.patch
378
379 ###
380 ### Firmware
381 ###
382
383 ###
384 ### GPU/DRM
385 ###
386
387 # amdgpu
388 # switch SI and CIK from radeon to amdgpu
389 Patch1520: drm-amdgpu-SI-and-CIK-enabled-by-default.patch
390
391 # new Q57 Host Bridge id
392 Patch1530: char-agp-intel-new-Q57-id.patch
393
394 # i915
395 # DG1
396 Patch1540: drm-i915-Add-pci-ids-and-uapi-for-DG1.patch
397 # Alder Lake S
398 Patch1541: drm-i915-adl_s-Remove-require_force_probe-protection.patch
399 # Raptor Lake S
400 Patch1542: drm-i915-rpl-s-Add-PCI-IDS-for-Raptor-Lake-S.patch
401 Patch1543: drm-i915-rpl-s-Add-PCH-Support-for-Raptor-Lake-S.patch
402 Patch1544: drm-i915-rpl-s-Enable-guc-submission-by-default.patch
403 # Alder Lake N
404 Patch1545: drm-i915-adl-n-Enable-ADL-N-platform.patch
405 #
406 Patch1546: drm-i915-gen11-Moving-WAs-to-icl_gt_workarounds_init.patch
407
408 # https://bugzilla.kernel.org/show_bug.cgi?id=206653#c19
409 Patch1552: i2c_nvidia_gpu-change-err-into-info.patch
410
411 # 5.15 regression, mga#29704, alternative fix to reverting:
412 # 3e1ad79bf66165bdb2baca3989f9227939241f11 "drm/nouveau: always wait for the exclusive fence""
413 Patch1560: drm-nouveau-wait-for-the-exclusive-fence-after-the-shared-ones-v2.patch
414
415 ###
416 ### hwmon
417 ###
418
419 # k10temp
420 Patch1600: x86-amd_nb-Add-AMD-Family-19h-Models-10h-1Fh-and-A0h-AFh-PCI-IDs.patch
421 Patch1601: hwmon-k10temp-Remove-unused-definitions.patch
422 Patch1602: hwmon-k10temp-Add-support-for-AMD-Family-19h-Models-10h-1Fh-and-A0h-AFh.patch
423 Patch1603: hwmon-k10temp-Support-up-to-12-CCDs-on-AMD-Family-of-processors.patch
424
425 # asus
426 Patch1610: hwmon-nct6775-Use-superio_-function-pointers-in-sio_.patch
427 Patch1611: hwmon-nct6775-Use-nct6775_-function-pointers-in-nct6.patch
428 Patch1612: hwmon-nct6775-Support-access-via-Asus-WMI.patch
429 Patch1613: hwmon-nct6775-Add-additional-ASUS-motherboards.patch
430 Patch1614: hwmon-nct6775-add-Pro-WS-X570-ACE.patch
431 Patch1615: hwmon-nct6775-add-ProArt-X570-CREATOR-WIFI.patch
432 Patch1616: hwmon-asus_wmi_ec_sensors-Support-B550-Asus-WMI.patch
433 Patch1617: hwmon-asus_wmi_sensors-Support-X370-Asus-WMI.patch
434
435 ###
436 ### i2c
437 ###
438
439 ###
440 ### Input
441 ###
442
443 Patch1700: input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch
444
445 ###
446 ### HID
447 ###
448
449 ###
450 ### MFD
451 ###
452
453 ###
454 ### MM
455 ###
456
457 ###
458 ### Network
459 ###
460
461 # SiS 190 fixes
462 Patch1900: net-sis190-fix-list-usage.patch
463
464 # netfilter IFWLOG support
465 Patch1910: net-netfilter-IFWLOG.patch
466 Patch1911: net-netfilter-IFWLOG-mdv.patch
467 Patch1912: net-netfilter-IFWLOG-2.6.35-buildfix.patch
468 Patch1913: net-netfilter-IFWLOG-2.6.37-buildfix.patch
469 Patch1914: net-ipv4-netfilter-ipt_IFWLOG-3.6-buildfix.patch
470 Patch1915: net-netfilter-IFWLOG-3.7-buildfix.patch
471 Patch1916: net-netfilter-IFWLOG-remove-unused-label.patch
472 Patch1917: net-netfilter-ipt_IFWLOG-4.12-buildfix.patch
473 Patch1918: net-netfilter-IFWLOG-5.0-buildfix.patch
474
475 # netfilter psd support
476 Patch1920: net-netfilter-psd.patch
477 Patch1921: net-netfilter-psd-mdv.patch
478 Patch1922: net-netfilter-psd-2.6.35-buildfix.patch
479 Patch1923: net-netfilter-psd-fix-redefines.patch
480
481 # rtw88 wifi
482 # add alias for the replaced r8822be staging driver
483 Patch1930: net-wireless-rtw88-add-r8822be-alias.patch
484 # add alias for the replaced 8723de 3rdparty driver
485 Patch1931: net-wireless-rtw88-add-8723de-alias.patch
486 # TTL: 5.16
487 Patch1932: net-wireless-rtw88-8821c-support-RFE-type4-wifi-NIC.patch
488 Patch1933: net-wireless-rtw88-8821c-correct-2.4G-tx-power-for-type-2-4-NIC.patch
489 # fixes broken aspn hangs system
490 Patch1934: net-wireless-rtw88-8821c-disable-the-ASPM-of-RTL8821CE.patch
491
492 # bluetooth (5.15 regression, mga#29760)
493 Patch1940: bluetooth-apply-BTUSB_INTEL_BROKEN_INITIAL_NCMD-flag-for-broken-hw.patch
494
495 # rtw89 patchset v7 for 802.11ax hw (TTL: 5.16)
496 Patch1960: net-wireless-rtw89-add-Realtek-802.11ax-driver.patch
497 Patch1961: net-wireless-rtw89-Fix-two-spelling-mistakes-in-debug-messages.patch
498 Patch1962: net-wireless-rtw89-Remove-redundant-check-of-ret-after-call-to-rt.patch
499 Patch1963: net-wireless-rtw89-fix-return-value-check-in-rtw89_cam_send_sec_k.patch
500 Patch1964: net-wireless-rtw89-remove-unneeded-semicolon.patch
501 Patch1965: net-wireless-rtw89-fix-error-function-parameter.patch
502 Patch1966: net-wireless-rtw89-remove-duplicate-register-definitions.patch
503 Patch1967: net-wireless-rtw89-fix-return-value-in-hfc_pub_cfg_chk.patch
504 Patch1968: net-wireless-rtw89-Fix-variable-dereferenced-before-check-sta.patch
505 Patch1969: net-wireless-rtw89-update-partition-size-of-firmware-header-on-skb-data.patch
506
507 # iwlfiwi
508 Patch1980: net-wireless-iwlwifi-add-new-pci-id-for-6235.patch
509 Patch1981: net-wireless-iwlwifi-add-new-killer-devices-to-the-driver.patch
510 Patch1982: net-wireless-iwlwifi-add-new-device-id-7F70.patch
511 Patch1983: net-wireless-iwlwifi-pcie-fix-killer-name-matching-for-AX200.patch
512 Patch1984: net-wireless-iwlwifi-pcie-remove-two-duplicate-PNJ-device-entries.patch
513 Patch1985: net-wireless-iwlwifi-add-missing-entries-for-Gf4-with-So-and-SoF.patch
514 Patch1986: net-wireless-iwlwifi-swap-1650i-and-1650s-killer-struct-names.patch
515 Patch1987: net-wireless-iwlwifi-add-new-Qu-Hr-device.patch
516 Patch1988: net-wireless-iwlwifi-add-new-ax1650-killer-device.patch
517
518 ###
519 ### PCI
520 ###
521
522 ###
523 ### pinctrl
524 ###
525
526 # amd
527 Patch2030: pinctrl-amd-Fix-wakeups-when-IRQ-is-shared-with-SCI.patch
528
529 ###
530 ### Platform
531 ###
532
533 # Allow access to Shuttle WMI interface controls
534 # (Mainly allow turning on/off webcam and wireless on Shuttle DA18IE and DA18IM)
535 Patch2050: platform-x86-add-shuttle-wmi-driver.patch
536 Patch2051: platform-x86-shuttle-wmi-drop-devinit-exit.patch
537 Patch2052: platform-x86-shuttle-wmi-4.2-buildfix.patch
538 Patch2053: platform-x86-shuttle-wmi-4.13-buildfix.patch
539 Patch2054: platform-x86-shuttle-wmi-kernel-5.5.patch
540
541 ###
542 ### PM
543 ###
544
545 ###
546 ### Sound
547 ###
548
549 Patch2150: sound-alsa-hda-fix-general-protection-fault-in-azx_runtime_idle.patch
550
551 ###
552 ### SPI
553 ###
554
555 ###
556 ### Staging
557 ###
558
559 ###
560 ### Thermal
561 ###
562
563 ###
564 ### Thunderbolt
565 ###
566
567 ###
568 ### USB
569 ###
570
571 Patch2300: hid-usbhid-IBM-BladeCenterHS20-quirk.patch
572
573 Patch2310: usb-storage-unusual_devs-add-id.patch
574 Patch2311: usb-storage-unusual_devs-add-id-2.6.37-buildfix.patch
575
576 # 5.15.8 regression
577 Patch2320: hid-holtek-fix-mouse-probing.patch
578
579 ###
580 ### V4L
581 ###
582
583 # pwc driver name in /proc/bus/devices, /sys fix and "advertisement" removal
584 Patch2400: media-usb-pwc-lie-in-proc-usb-devices.patch
585
586 ###
587 ### Video
588 ###
589
590 # Mageia framebuffer boot logo
591 Patch2500: video-mageia-logo.patch
592
593 # mga compat option
594 Patch2501: video-console-vgacon-treat-nokmsboot-as-nomodeset.patch
595
596 ###
597 ### Virt
598 ###
599
600 # fix gcc-10 build
601 Patch2550: KVM-squelch-uninitialized-variable-warning.patch
602
603 ###
604 ### Tools
605 ###
606
607 # wipe powerpc refrence so we can nuke dangling symlinks (mga#17676)
608 Patch2600: tools-testing-selftest-Makefile-remove-powerpc-reference.patch
609
610 # fix perf build
611 Patch2605: tools-perf-ui-include-slang.patch
612
613 ###
614 ### UAPI
615 ###
616
617 Patch2700: uapi-avoid-namespace-conflict-in-linux-posix_types.h.patch
618
619 ###
620 ### 3rdparty
621 ###
622
623 Patch3000: 3rd-3rdparty-tree.patch
624 Patch3001: 3rd-3rdparty-merge.patch
625
626 # ndiswrapper
627 Patch3100: 3rd-ndiswrapper-1.63.patch
628 Patch3101: 3rd-ndiswrapper-Kconfig.patch
629 Patch3102: 3rd-ndiswrapper-Makefile-build-fix.patch
630 Patch3103: 3rd-niswrapper-Kconfig-Makefile.patch
631
632 # add rtl8812 support (mga#21043)
633 # from https://github.com/aircrack-ng/rtl8812au.git
634 Patch3200: 3rd-rtl8812au.patch
635 Patch3201: 3rd-rtl8812au-Kconfig-Makefile.patch
636 Patch3202: 3rd-rtl8812au-rename.patch
637 Patch3203: 3rd-rtl8812au-kernel-5.12.patch
638 Patch3204: 3rd-rtl8812au-kernel-5.15.patch
639
640 # add rtl8723de support (mga#22559)
641 Patch3300: 3rd-rtl8723de.patch
642 Patch3301: 3rd-rtl8723de-Kconfig-Makefile.patch
643 Patch3302: 3rd-rtl8723de-fix-redefine.patch
644 Patch3303: 3rd-rtl8723de-nodebug.patch
645 Patch3304: 3rd-rtl8223de-kernel-5.6.patch
646 Patch3305: 3rd-rtl8723de-add-kernel-5.8-support.patch
647
648 # viahss
649 Patch3400: 3rd-viahss-0.92.patch
650 Patch3401: 3rd-viahss-config.patch
651 Patch3402: 3rd-viahss-module-license.patch
652 Patch3403: 3rd-viahss-2.6.35-buildfix.patch
653 Patch3404: 3rd-viahss-3.0-buildfix.patch
654 Patch3405: 3rd-viahss-Kconfig-Makefile.patch
655
656 # rtl8821ce (mga#24605) -- https://github.com/tomaspinho/rtl8821ce
657 Patch3500: 3rd-rtl8821ce.patch
658 Patch3501: 3rd-rtl8821ce-Kconfig-Makefile.patch
659 Patch3502: 3rd-rtl8821ce-5.8-fix.patch
660 Patch3503: 3rd-rtl8821ce-kernel-5.10.patch
661 Patch3504: 3rd-rtl8821ce-kernel-5.12.patch
662 Patch3505: 3rd-rtl8821ce-kernel-5.15.patch
663
664 # fix Kconfig files for 3rdparty:
665 Patch3900: 3rd-fix-kconfig.patch
666
667 ###
668 ### Python fixes
669 ###
670 Patch4000: linux-5.15-python3.patch
671
672 ###
673 ### TTY
674 ###
675
676 ###
677 ### Security fixes
678 ###
679 Patch5002: CVE-2019-12379.patch
680 #
681 # CVE-2020-16119
682 # https://bugzilla.redhat.com/show_bug.cgi?id=1886374
683 # https://bugzilla.redhat.com/show_bug.cgi?id=1888083
684 Patch5003: CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch
685
686 ###
687 ### Cosmetic fixes (e.g. typos, spelling, etc.)
688 ###
689
690 ### Fixes from FC kernel
691 # Inspur Advantech PCI ids
692 Patch7000: 0001-scsi-smartpqi-add-inspur-advantech-ids.patch
693 # Vulcan AHCI PCI bar (aarch64)
694 Patch7001: 0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch
695
696 #END
697 ####################################################################
698
699 # Defines for the things that are needed for all the kernels
700 #
701 %define common_desc_kernel The kernel package contains the Linux kernel (vmlinuz), the core of your \
702 Mageia operating system. The kernel handles the basic functions \
703 of the operating system: memory allocation, process allocation, device \
704 input and output, etc.
705
706 %define common_desc_kernel_smp This kernel relies on in-kernel smp alternatives to switch between up & smp \
707 mode depending on detected hardware. To force the kernel to boot in single \
708 processor mode, use the "nosmp" boot parameter.
709
710 ### Global Requires/Provides
711 %define requires1 bootloader-utils >= 1.16-1
712 %define requires2 dracut >= 046-2
713 %define requires3 kmod >= 12-2
714 %define requires4 sysfsutils >= 2.1.0-16
715 %define requires5 kernel-firmware >= 20190603-1
716 # ldetect-lst with SI/CIK swich from radeon to amdgpu
717 %define requires6 ldetect-lst >= 0.6.25-1
718
719 %define kprovides1 %{kname} = %{kverrel}
720 %define kprovides2 kernel = %{tar_ver}
721 %define kprovides3 alsa = 1.0.26
722 %define kprovides_server drbd-api = 88
723
724 # conflict dkms packages that dont support kernel-5.10
725 %define kconflicts1 dkms-broadcom-wl < 6.30.223.271-58
726 %define kconflicts2 dkms-nvidia-current < 460.32.03-1
727 %define kconflicts3 dkms-nvidia390 < 390.141-1
728 %define kconflicts4 dkms-nvidia340 < 340.108-15
729 %define kconflicts5 dkms-nvidia304 < 304.137-3
730 %define kconflicts6 dkms-virtualbox < 6.1.18-1
731 %define kconflicts7 dkms-xtables-addons < 3.13-2
732 # (tmb) conflict older btrfs-progs to get the new in same transaction and in initrd
733 %define kconflicts8 btrfs-progs < 5.10-1
734 # (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd
735 %define kconflicts9 radeon-firmware < 20201218-1
736 # (tmb) conflict old firmware to get the firmwares in initrd
737 %define kconflicts10 kernel-firmware-nonfree < 20201230-1
738 # (tmb) conflict old microcode to get updated ones in initrd for early loading
739 %define kconflicts11 microcode < 0.20201118-2
740 # (tmb) conflict old theme to get mga8 theme in initrd
741 %define kconflicts12 mageia-gfxboot-theme < 4.5.14.11-2
742 # (tmb) conflict too old grub2(-efi)
743 %define kconflicts13 grub2 < 2.02.0-15
744 %define kconflicts14 grub2-efi < 2.02.0-15
745 # (tmb) conflict too old efibootmgr
746 %define kconflicts15 efibootmgr < 16-3
747 # (tmb) force new theme in initrd
748 %define kconflicts16 mageia-theme < 8.0-2
749
750 Autoreqprov: no
751
752 %if 0%{?mageia} >= 8
753 BuildRequires: gcc >= 10.3.0-1
754 BuildRequires: binutils >= 1:2.35.2-1
755 %else
756 BuildRequires: gcc >= 8.4.0-1
757 BuildRequires: binutils >= 1:2.33.1-1
758 %endif
759 BuildRequires: kmod >= 12-2
760 BuildRequires: bc
761 # for crypto stuff
762 BuildRequires: pkgconfig(openssl)
763 # since 4.16
764 BuildRequires: bison
765 BuildRequires: diffutils
766 BuildRequires: elfutils-devel
767 BuildRequires: flex
768 # for headers_install
769 BuildRequires: rsync
770 # for cpupower
771 %if %{build_cpupower}
772 BuildRequires: pkgconfig(libpci)
773 %endif
774 # for perf
775 %if %{build_perf}
776 BuildRequires: audit-devel
777 BuildRequires: binutils-devel
778 BuildRequires: gtk2-devel
779 BuildRequires: libunwind-devel
780 BuildRequires: newt-devel
781 BuildRequires: python3-devel
782 BuildRequires: zlib-devel
783 BuildRequires: asciidoc
784 BuildRequires: xmlto-notex
785 BuildRequires: perl-devel
786 %if 0%{?mageia} >= 8
787 BuildRequires: systemtap-sdt-devel
788 BuildRequires: babeltrace-devel
789 %else
790 BuildRequires: libbabeltrace-devel
791 %endif
792 %ifarch %{ix86} x86_64
793 BuildRequires: numa-devel
794 %endif
795 %endif
796 %if %{build_bpftool}
797 BuildRequires: python3-docutils
798 BuildRequires: cap-devel
799 %endif
800
801 %description
802 %common_desc_kernel
803 %ifnarch %{arm}
804 %common_desc_kernel_smp
805 %endif
806
807 # mkflavour() name flavour processor
808 # name: the flavour name in the package name
809 # flavour: first parameter of CreateKernel()
810 %define mkflavour() \
811 %package -n %{kname}-%{1}-%{buildrel} \
812 Version: %{fakever} \
813 Release: %{fakerel} \
814 Provides: %kprovides1 %kprovides2 %kprovides3 \
815 %{expand:%%{?kprovides_%{1}:Provides: %{kprovides_%{1}}}} \
816 Provides: %{kname}-%{1} \
817 Requires(pre): %requires1 %requires2 %requires3 %requires4 \
818 Requires: %requires2 %requires5 %requires6 \
819 Conflicts: %kconflicts1 %kconflicts2 %kconflicts3 \
820 Conflicts: %kconflicts4 %kconflicts5 %kconflicts6 \
821 Conflicts: %kconflicts7 %kconflicts8 %kconflicts9 \
822 Conflicts: %kconflicts10 %kconflicts11 %kconflicts12 \
823 Conflicts: %kconflicts13 %kconflicts14 %kconflicts15 \
824 Conflicts: %kconflicts16 \
825 %if 0%{?mageia} >= 8 \
826 Obsoletes: crda \
827 Obsoletes: crda-devel \
828 Obsoletes: fuse-exfat \
829 %endif \
830 Provides: should-restart = system \
831 Provides: installonlypkg(kernel) \
832 Recommends: iw cpupower microcode \
833 Recommends: %{kname}-%{1}-latest \
834 %ifarch %{ix86} \
835 Conflicts: arch(x86_64) \
836 %endif \
837 Summary: %{expand:%{summary_%(echo %{1} | sed -e "s/-/_/")}} \
838 Group: System/Kernel and hardware \
839 %description -n %{kname}-%{1}-%{buildrel} \
840 %common_desc_kernel %{expand:%{info_%(echo %{1} | sed -e "s/-/_/")}} \
841 %ifnarch %{arm} \
842 %common_desc_kernel_smp \
843 %endif \
844 \
845 %if %build_devel \
846 %package -n %{kname}-%{1}-devel-%{buildrel} \
847 Version: %{fakever} \
848 Release: %{fakerel} \
849 Requires: glibc-devel ncurses-devel make gcc perl \
850 Requires: gcc >= 5.5.0-1 \
851 %ifarch x86_64 \
852 Requires: pkgconfig(libelf) \
853 %endif \
854 Summary: The kernel-devel files for %{kname}-%{1}-%{buildrel} \
855 Group: Development/Kernel \
856 Provides: %{kname}-devel = %{kverrel} \
857 Provides: %{kname}-%{1}-devel \
858 Recommends: %{kname}-%{1}-devel-latest \
859 %ifarch %{ix86} \
860 Conflicts: arch(x86_64) \
861 %endif \
862 %description -n %{kname}-%{1}-devel-%{buildrel} \
863 This package contains the kernel files (headers and build tools) \
864 that should be enough to build additional drivers for \
865 use with %{kname}-%{1}-%{buildrel}. \
866 \
867 If you want to build your own kernel, you need to install the full \
868 %{kname}-source-%{buildrel} rpm. \
869 \
870 %endif \
871 \
872 %if %build_debug \
873 %package -n %{kname}-%{1}-%{buildrel}-debuginfo \
874 Version: %{fakever} \
875 Release: %{fakerel} \
876 Summary: Files with debuginfo for %{kname}-%{1}-%{buildrel} \
877 Group: Development/Debug \
878 Provides: kernel-debug = %{kverrel} \
879 %ifarch %{ix86} \
880 Conflicts: arch(x86_64) \
881 %endif \
882 %description -n %{kname}-%{1}-%{buildrel}-debuginfo \
883 This package contains the files with debuginfo to aid in debug tasks \
884 when using %{kname}-%{1}-%{buildrel}. \
885 \
886 If you need to look at debug information or use some application that \
887 needs debugging info from the kernel, this package may help. \
888 \
889 %endif \
890 \
891 %package -n %{kname}-%{1}-latest \
892 Version: %{kversion} \
893 Release: %{rpmrel} \
894 Summary: Virtual rpm for latest %{kname}-%{1} \
895 Group: System/Kernel and hardware \
896 Requires: %{kname}-%{1}-%{buildrel} \
897 %ifarch %{ix86} \
898 Conflicts: arch(x86_64) \
899 %endif \
900 Obsoletes: vboxadditions-kernel-%{1}-latest \
901 Obsoletes: kernel-tmb-%{1}-latest \
902 %description -n %{kname}-%{1}-latest \
903 This package is a virtual rpm that aims to make sure you always have the \
904 latest %{kname}-%{1} installed... \
905 \
906 %if %build_devel \
907 %package -n %{kname}-%{1}-devel-latest \
908 Version: %{kversion} \
909 Release: %{rpmrel} \
910 Summary: Virtual rpm for latest %{kname}-%{1}-devel \
911 Group: Development/Kernel \
912 Requires: %{kname}-%{1}-devel-%{buildrel} \
913 %ifarch %{ix86} \
914 Conflicts: arch(x86_64) \
915 %endif \
916 Provides: %{kname}-devel-latest \
917 Obsoletes: kernel-tmb-%{1}-devel-latest \
918 %description -n %{kname}-%{1}-devel-latest \
919 This package is a virtual rpm that aims to make sure you always have the \
920 latest %{kname}-%{1}-devel installed... \
921 \
922 %endif \
923 \
924 %posttrans -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-posttrans \
925 %postun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-postun \
926 \
927 %if %build_devel \
928 %post -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-post \
929 %preun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-preun \
930 %postun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-postun \
931 %endif \
932 \
933 %files -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1} \
934 %files -n %{kname}-%{1}-latest \
935 \
936 %if %build_devel \
937 %files -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1} \
938 %files -n %{kname}-%{1}-devel-latest \
939 %endif \
940 \
941 %if %build_debug \
942 %files -n %{kname}-%{1}-%{buildrel}-debuginfo -f kernel_debug_files.%{1} \
943 %endif
944
945 %ifarch %{ix86}
946 #
947 # kernel-desktop586: i586, smp-alternatives, 4GB
948 #
949 %if %build_desktop586
950 %define summary_desktop586 Linux kernel for desktop use with i586 and less than 4GB RAM
951 %define info_desktop586 This kernel is compiled for desktop use, single or \
952 multiple i586 processor(s)/core(s) and less than 4GB RAM (usually 3-3.5GB \
953 detected, if you need/want to use all 4GB or more, install kernel-server), \
954 using HZ_1000, voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
955 %mkflavour desktop586
956 %endif
957 %endif
958
959 #
960 # kernel-desktop: i686, smp-alternatives, 4 GB / x86_64
961 #
962 %if %build_desktop
963 %ifarch %{ix86}
964 %define summary_desktop Linux Kernel for desktop use with i686 and less than 4GB RAM
965 %define info_desktop This kernel is compiled for desktop use, single or \
966 multiple i686 processor(s)/core(s) and less than 4GB RAM (usually 3-3.5GB \
967 detected, if you need/want to use all 4GB or more, install kernel-server), \
968 using HZ_1000, voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
969 %else
970 %define summary_desktop Linux Kernel for desktop use with %{_arch}
971 %define info_desktop This kernel is compiled for desktop use, single or \
972 multiple %{_arch} processor(s)/core(s), using HZ_1000, voluntary preempt, \
973 CFS cpu scheduler and cfq i/o scheduler.
974 %endif
975 %mkflavour desktop
976 %endif
977
978 #
979 # kernel-server: i686, smp-alternatives, 64 GB / x86_64
980 #
981 %if %build_server
982 %ifarch %{ix86}
983 %define summary_server Linux Kernel for server use with i686 & 64GB RAM
984 %define info_server This kernel is compiled for server use, single or \
985 multiple i686 processor(s)/core(s) and up to 64GB RAM using PAE, using \
986 no preempt, HZ_100, CFS cpu scheduler and cfq i/o scheduler.
987 %else
988 %define summary_server Linux Kernel for server use with %{_arch}
989 %define info_server This kernel is compiled for server use, single or \
990 multiple %{_arch} processor(s)/core(s), using no preempt, HZ_100, \
991 CFS cpu scheduler and cfq i/o scheduler.
992 %endif
993 %mkflavour server
994 %endif
995
996 #
997 # kernel-source
998 #
999 %if %build_source
1000 %package -n %{kname}-source-%{buildrel}
1001 Version: %{fakever}
1002 Release: %{fakerel}
1003 Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
1004 Summary: The Linux source code for %{kname}-%{buildrel}
1005 Group: Development/Kernel
1006 Autoreqprov: no
1007 Provides: kernel-source = %{kverrel}
1008 Buildarch: noarch
1009
1010 %description -n %{kname}-source-%{buildrel}
1011 The %{kname}-source package contains the source code files for the Mageia
1012 kernel. Theese source files are only needed if you want to build your
1013 own custom kernel that is better tuned to your particular hardware.
1014
1015 If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
1016 drivers against, install the *-devel-* rpm that is matching your kernel.
1017
1018 #
1019 # kernel-source-latest: virtual rpm
1020 #
1021 %package -n %{kname}-source-latest
1022 Version: %{kversion}
1023 Release: %{rpmrel}
1024 Summary: Virtual rpm for latest %{kname}-source
1025 Group: Development/Kernel
1026 Requires: %{kname}-source-%{buildrel}
1027 Buildarch: noarch
1028
1029 %description -n %{kname}-source-latest
1030 This package is a virtual rpm that aims to make sure you always have the
1031 latest %{kname}-source installed...
1032 %endif
1033
1034 #
1035 # kernel-doc: documentation for the Linux kernel
1036 #
1037 %if %build_doc
1038 %package -n %{kname}-doc
1039 Version: %{kversion}
1040 Release: %{rpmrel}
1041 Summary: Various documentation bits found in the %{kname} source
1042 Group: Documentation
1043 Buildarch: noarch
1044
1045 %description -n %{kname}-doc
1046 This package contains documentation files from the %{kname} source.
1047 Various bits of information about the Linux kernel and the device drivers
1048 shipped with it are documented in these files. You also might want install
1049 this package if you need a reference to the options that can be passed to
1050 Linux kernel modules at load time.
1051 %endif
1052
1053 #
1054 # kernel userspace-headers
1055 #
1056 %if %{build_uheaders}
1057 %package -n %{kname}-userspace-headers
1058 Version: %{kversion}
1059 Release: %{rpmrel}
1060 Summary: Linux kernel header files for userspace
1061 Group: System/Kernel and hardware
1062 %rename linux-userspace-headers
1063 Provides: kernel-headers = 1:%{version}-%{release}
1064
1065 %description -n %{kname}-userspace-headers
1066 C header files from the Linux kernel. The header files define structures
1067 and constants that are needed for building most standard programs.
1068
1069 This package is not suitable for building kernel modules.
1070 %endif
1071
1072 #
1073 # kernel/tools
1074 #
1075 %if %{build_perf}
1076 %package -n perf
1077 Version: %{kversion}
1078 Release: %{rpmrel}
1079 Summary: perf tool and the supporting documentation
1080 Group: System/Kernel and hardware
1081
1082 %description -n perf
1083 the perf tool and the supporting documentation.
1084 %endif
1085
1086 %if %{build_cpupower}
1087 %package -n cpupower
1088 Version: %{kversion}
1089 Release: %{rpmrel}
1090 Summary: the cpupower tools
1091 Group: System/Kernel and hardware
1092 Requires(post): rpm-helper >= 0.24.8-1
1093 Requires(preun): rpm-helper >= 0.24.8-1
1094 Obsoletes: cpufreq cpufrequtils
1095
1096 %description -n cpupower
1097 the cpupower tools.
1098
1099 %post -n cpupower
1100 %_post_service cpupower
1101
1102 %preun -n cpupower
1103 %_preun_service cpupower
1104
1105 %package -n cpupower-devel
1106 Version: %{kversion}
1107 Release: %{rpmrel}
1108 Summary: devel files for cpupower
1109 Group: Development/Kernel
1110 Requires: cpupower = %{kversion}-%{rpmrel}
1111 Conflicts: %{_lib}cpufreq-devel
1112
1113 %description -n cpupower-devel
1114 This package contains the development files for cpupower.
1115 %endif
1116
1117 %if %{build_bpftool}
1118 %package -n bpftool
1119 Summary: Inspection and simple manipulation of eBPF programs and maps
1120 Group: System/Kernel and hardware
1121
1122 %description -n bpftool
1123 This package contains the bpftool, which allows inspection and simple
1124 manipulation of eBPF programs and maps.
1125 %endif
1126
1127 %if %{build_libbpf}
1128 %package -n %{_lib}bpf0
1129 Summary: The bpf library from kernel source
1130 Group: System/Libraries
1131
1132 %description -n %{_lib}bpf0
1133 This package contains the kernel source bpf library.
1134
1135 %package -n %{_lib}bpf-devel
1136 Summary: Developement files for the bpf library from kernel source
1137 Group: Development/Kernel
1138 Requires: %{_lib}bpf0
1139
1140 %description -n %{_lib}bpf-devel
1141 This package includes libraries and header files needed for development
1142 of applications which use bpf library from kernel source.
1143 %endif
1144
1145 #
1146 # End packages - here begins build stage
1147 #
1148 %prep
1149 %setup -q -n %top_dir_name -c
1150
1151 cd %src_dir
1152
1153 %autopatch -p1
1154
1155 # PATCH END
1156
1157 # breaks bpftool build on mga8
1158 patch -p1 -R <%{SOURCE100}
1159
1160 #
1161 # Setup Begin
1162 #
1163
1164 # install x86 defconfigs
1165 install -m 644 %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} arch/x86/configs/
1166 # install arm64 defconfigs
1167 install -m 644 %{SOURCE16} %{SOURCE17} arch/arm64/configs/
1168 # install arm defconfigs
1169 install -m 644 %{SOURCE18} arch/arm/configs/
1170
1171 # make sure the kernel has the sublevel we know it has...
1172 LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
1173
1174 # get rid of unwanted files
1175 find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f
1176
1177 # fix missing exec flag on file introduced in 4.14.10-rc1
1178 chmod 755 tools/objtool/sync-check.sh
1179
1180 %build
1181 # Common target directories
1182 %define _kerneldir /usr/src/kernel-%{kversion}-%{buildrpmrel}
1183 %define _bootdir /boot
1184 %define _modulesdir /lib/modules
1185 %define _efidir %{_bootdir}/efi/mageia
1186
1187 # Directories definition needed for building
1188 %define temp_root %{build_dir}/temp-root
1189 %define temp_source %{temp_root}%{_kerneldir}
1190 %define temp_boot %{temp_root}%{_bootdir}
1191 %define temp_modules %{temp_root}%{_modulesdir}
1192
1193 PrepareKernel() {
1194 name=$1
1195 extension=$2
1196
1197 echo "Make config for kernel $extension"
1198
1199 %smake ARCH=%{target_arch} -s mrproper
1200
1201 if [ "%{target_arch}" == "i386" -o "%{target_arch}" == "x86_64" ]; then
1202 conf_dir=arch/x86/configs
1203 else
1204 conf_dir=arch/%{target_arch}/configs
1205 fi
1206 if [ -z "$name" ]; then
1207 cp $conf_dir/defconfig-%{target_arch}-desktop .config
1208 else
1209 cp $conf_dir/defconfig-%{target_arch}-$name .config
1210 fi
1211
1212 # make sure EXTRAVERSION says what we want it to say
1213 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -$extension/" Makefile
1214
1215 %smake ARCH=%{target_arch} oldconfig
1216 }
1217
1218 BuildKernel() {
1219 KernelVer=$1
1220
1221 echo "Building kernel $KernelVer"
1222
1223 %kmake ARCH=%{target_arch} -s all
1224
1225 # Start installing stuff
1226 install -d %{temp_boot}
1227 install -m 644 System.map %{temp_boot}/System.map-$KernelVer
1228 install -m 644 .config %{temp_boot}/config-$KernelVer
1229 xz -c Module.symvers > %{temp_boot}/symvers-$KernelVer.xz
1230
1231 %ifarch %{arm}
1232 IMAGE=zImage
1233 %else
1234 %ifarch aarch64
1235 IMAGE=Image.gz
1236 %else
1237 IMAGE=bzImage
1238 %endif
1239 %endif
1240 cp -f arch/%{target_arch}/boot/$IMAGE %{temp_boot}/vmlinuz-$KernelVer
1241
1242 %ifarch %{arm} aarch64
1243 install -d %{temp_root}%{_libdir}/linux-$KernelVer/
1244 find arch/%{target_arch}/boot/dts/ -name *.dtb -execdir install -D -m644 {} %{temp_root}%{_libdir}/linux-$KernelVer/{} \;
1245 %endif
1246
1247 # modules
1248 install -d %{temp_modules}/$KernelVer
1249 %smake ARCH=%{target_arch} INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=$KernelVer modules_install
1250 }
1251
1252 SaveDevel() {
1253 devel_flavour=$1
1254
1255 DevelRoot=/usr/src/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}
1256 TempDevelRoot=%{temp_root}$DevelRoot
1257
1258 mkdir -p $TempDevelRoot
1259 for i in $(find . -name 'Makefile*'); do cp -R --parents $i $TempDevelRoot;done
1260 for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*'); do cp -R --parents $i $TempDevelRoot;done
1261 cp -fR include $TempDevelRoot
1262 cp -fR scripts $TempDevelRoot
1263 cp -fR kernel/bounds.c $TempDevelRoot/kernel
1264 cp -fR tools/include $TempDevelRoot/tools/
1265 # needed for selinux
1266 cp -R --parents security/selinux/include/*.h $TempDevelRoot
1267 %ifarch %{arm}
1268 cp -fR arch/%{target_arch}/tools $TempDevelRoot/arch/%{target_arch}/
1269 cp -fR arch/%{target_arch}/kernel/signal.h $TempDevelRoot/arch/%{target_arch}/kernel/
1270 %endif
1271 %ifarch aarch64
1272 cp -fR arch/x86/entry/syscalls/syscall_32.tbl $TempDevelRoot/arch/x86/entry/syscalls/
1273 cp -fR arch/arm64/kernel/vdso/*.{S,sh} $TempDevelRoot/arch/arm64/kernel/vdso/
1274 cp -fR arch/arm64/kernel/vdso/vgettimeofday.c $TempDevelRoot/arch/arm64/kernel/vdso/
1275 cp -fR arch/arm64/tools/{cpucaps,gen-cpucaps.awk} $TempDevelRoot/arch/arm64/tools/
1276 # aarch64 build wants x86 syscall tables
1277 cp -fR arch/x86/entry/syscalls/syscall_{32,64}.tbl $TempDevelRoot/arch/x86/entry/syscalls/
1278 cp -fR lib/vdso/gettimeofday.c $TempDevelRoot/lib/vdso/
1279 %endif
1280 %ifarch %{ix86} x86_64
1281 cp -fR arch/x86/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/x86/kernel/
1282 cp -fR arch/x86/kernel/asm-offsets_{32,64}.c $TempDevelRoot/arch/x86/kernel/
1283 cp -fR arch/x86/lib/insn.c $TempDevelRoot/arch/x86/lib/
1284 cp -fR arch/x86/purgatory/* $TempDevelRoot/arch/x86/purgatory/
1285 cp -fR arch/x86/entry/syscalls/syscall* $TempDevelRoot/arch/x86/entry/syscalls/
1286 cp -fR arch/x86/include $TempDevelRoot/arch/x86/
1287 cp -fR arch/x86/tools $TempDevelRoot/arch/x86/
1288 %else
1289 cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/%{target_arch}/kernel/
1290 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f $TempDevelRoot; done
1291 %endif
1292 cp -fR .config Module.symvers $TempDevelRoot
1293
1294 # Needed for truecrypt build (Danny)
1295 cp -fR drivers/md/dm.h $TempDevelRoot/drivers/md/
1296
1297 # needed by include/generated/timeconst.h
1298 cp -fR kernel/time/timeconst.bc $TempDevelRoot/kernel/time/
1299
1300 # Needed for lirc_gpio (#39004)
1301 cp -fR drivers/media/pci/bt8xx/bttv{,p}.h $TempDevelRoot/drivers/media/pci/bt8xx/
1302 cp -fR drivers/media/pci/bt8xx/bt848.h $TempDevelRoot/drivers/media/pci/bt8xx/
1303 cp -fR drivers/media/common/btcx-risc.h $TempDevelRoot/drivers/media/common/
1304
1305 # aufs has a special file needed
1306 cp -fR fs/aufs/magic.mk $TempDevelRoot/fs/aufs/
1307
1308 # rtl8821ce has special files needed
1309 cp -fR 3rdparty/rtl8821ce/halmac.mk $TempDevelRoot/3rdparty/rtl8821ce/
1310 cp -fR 3rdparty/rtl8821ce/rtl8821c.mk $TempDevelRoot/3rdparty/rtl8821ce/
1311 mkdir -p $TempDevelRoot/3rdparty/rtl8821ce/hal/phydm/
1312 cp -fR 3rdparty/rtl8821ce/hal/phydm/phydm.mk $TempDevelRoot/3rdparty/rtl8821ce/hal/phydm/
1313 mkdir -p $TempDevelRoot/3rdparty/rtl8812au/hal/phydm/
1314 cp -fR 3rdparty/rtl8812au/hal/phydm/phydm.mk $TempDevelRoot/3rdparty/rtl8812au/hal/phydm/
1315
1316 %ifarch x86_64
1317 # orc unwinder needs theese
1318 cp -fR tools/build/Build{,.include} $TempDevelRoot/tools/build
1319 cp -fR tools/build/fixdep.c $TempDevelRoot/tools/build
1320 cp -fR tools/lib/{rbtree.c,ctype.c,str_error_r.c,string.c} $TempDevelRoot/tools/lib
1321 cp -fR tools/lib/subcmd/* $TempDevelRoot/tools/lib/subcmd
1322 cp -fR tools/objtool/* $TempDevelRoot/tools/objtool
1323 cp -fR tools/scripts/utilities.mak $TempDevelRoot/tools/scripts
1324 mkdir -p $TempDevelRoot/tools/arch/x86/tools
1325 cp -fR tools/arch/x86/tools/gen-insn-attr-x86.awk $TempDevelRoot/tools/arch/x86/tools/
1326 mkdir -p $TempDevelRoot/tools/arch/x86/lib
1327 cp -fR tools/arch/x86/lib/{inat.c,insn.c,x86-opcode-map.txt} $TempDevelRoot/tools/arch/x86/lib/
1328 mkdir -p $TempDevelRoot/tools/arch/x86/include/asm
1329 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/
1330 %endif
1331
1332 for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 m32r m68k m68knommu metag microblaze \
1333 mips mn10300 nds32 nios2 openrisc parisc powerpc riscv s390 score sh sparc tile unicore32 xtensa; do
1334 rm -rf $TempDevelRoot/arch/$i
1335 rm -rf $TempDevelRoot/scripts/dtc/include-prefixes/$i
1336 rm -rf $TempDevelRoot/tools/arch/$i
1337 done
1338
1339 %ifnarch %{arm} aarch64
1340 rm -rf $TempDevelRoot/arch/arm*
1341 rm -rf $TempDevelRoot/include/kvm/arm*
1342 rm -rf $TempDevelRoot/include/soc
1343 rm -rf $TempDevelRoot/scripts/dtc/include-prefixes/arm*
1344 rm -rf $TempDevelRoot/tools/arch/arm*
1345 %endif
1346 %ifnarch %{ix86} x86_64
1347 rm -rf $TempDevelRoot/arch/x86
1348 rm -rf $TempDevelRoot/tools/arch/x86
1349 # arch/x86/ras/Kconfig is included by drivers/ras/Kconfig
1350 # and kconfig's source command seems to be evaluated even under a false conditional
1351 mkdir -p $TempDevelRoot/arch/x86/ras
1352 cp -fR arch/x86/ras/Kconfig $TempDevelRoot/arch/x86/ras
1353 %endif
1354
1355 # Clean the scripts tree, and make sure everything is ok (sanity check)
1356 # running prepare+scripts (tree was already "prepared" in build)
1357 pushd $TempDevelRoot >/dev/null
1358 %smake ARCH=%{target_arch} -s prepare scripts
1359 %smake ARCH=%{target_arch} -s clean
1360 popd >/dev/null
1361 rm -f $TempDevelRoot/.config.old
1362
1363 # fix permissions
1364 chmod -R a+rX $TempDevelRoot
1365
1366 # disable mrproper in -devel rpms
1367 patch -p1 --fuzz=0 -d $TempDevelRoot -i %{SOURCE2}
1368
1369 kernel_devel_files=../kernel_devel_files.$devel_flavour
1370
1371
1372 ### Create the kernel_devel_files.*
1373 cat > $kernel_devel_files <<EOF
1374 %dir $DevelRoot
1375 %dir $DevelRoot/arch
1376 %dir $DevelRoot/include
1377 $DevelRoot/3rdparty
1378 $DevelRoot/Documentation
1379 %ifarch %{arm} aarch64
1380 $DevelRoot/arch/arm
1381 $DevelRoot/arch/arm64
1382 %endif
1383 $DevelRoot/arch/um
1384 %ifarch %{ix86} x86_64
1385 $DevelRoot/arch/x86
1386 %else
1387 $DevelRoot/arch/x86/ras
1388 %endif
1389 $DevelRoot/block
1390 $DevelRoot/certs
1391 $DevelRoot/crypto
1392 $DevelRoot/drivers
1393 $DevelRoot/fs
1394 $DevelRoot/include/acpi
1395 $DevelRoot/include/asm-generic
1396 $DevelRoot/include/clocksource
1397 $DevelRoot/include/config
1398 $DevelRoot/include/crypto
1399 $DevelRoot/include/drm
1400 $DevelRoot/include/dt-bindings
1401 $DevelRoot/include/generated
1402 $DevelRoot/include/keys
1403 $DevelRoot/include/kunit
1404 $DevelRoot/include/kvm
1405 $DevelRoot/include/linux
1406 $DevelRoot/include/math-emu
1407 $DevelRoot/include/media
1408 $DevelRoot/include/memory
1409 $DevelRoot/include/misc
1410 $DevelRoot/include/net
1411 $DevelRoot/include/pcmcia
1412 $DevelRoot/include/ras
1413 $DevelRoot/include/rdma
1414 $DevelRoot/include/scsi
1415 %ifarch %{arm} aarch64
1416 $DevelRoot/include/soc
1417 %endif
1418 $DevelRoot/include/sound
1419 $DevelRoot/include/target
1420 $DevelRoot/include/trace
1421 $DevelRoot/include/uapi
1422 $DevelRoot/include/vdso/*.h
1423 $DevelRoot/include/video
1424 $DevelRoot/include/xen
1425 $DevelRoot/init
1426 $DevelRoot/ipc
1427 $DevelRoot/kernel
1428 $DevelRoot/lib
1429 $DevelRoot/mm
1430 $DevelRoot/net
1431 $DevelRoot/samples
1432 $DevelRoot/scripts
1433 $DevelRoot/security
1434 $DevelRoot/sound
1435 $DevelRoot/tools
1436 $DevelRoot/usr
1437 $DevelRoot/virt
1438 $DevelRoot/.config
1439 $DevelRoot/Kbuild
1440 $DevelRoot/Kconfig
1441 $DevelRoot/Makefile
1442 $DevelRoot/Module.symvers
1443 $DevelRoot/arch/Kconfig
1444 %doc README.kernel-sources
1445 EOF
1446
1447
1448 ### Create -devel Post script on the fly
1449 cat > $kernel_devel_files-post <<EOF
1450 if [ -d /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel} ]; then
1451 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/{build,source}
1452 ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
1453 ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
1454 fi
1455 EOF
1456
1457
1458 ### Create -devel Preun script on the fly
1459 cat > $kernel_devel_files-preun <<EOF
1460 if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build ]; then
1461 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
1462 fi
1463 if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source ]; then
1464 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
1465 fi
1466 exit 0
1467 EOF
1468
1469 ### Create -devel Postun script on the fly
1470 cat > $kernel_devel_files-postun <<EOF
1471 rm -rf /usr/src/kernel-%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1472 EOF
1473 }
1474
1475 SaveDebug() {
1476 debug_flavour=$1
1477
1478 install -m 644 vmlinux \
1479 %{temp_boot}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}
1480 kernel_debug_files=../kernel_debug_files.$debug_flavour
1481 echo "%{_bootdir}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}" \
1482 >> $kernel_debug_files
1483
1484 find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1485 -name "*.ko" | \
1486 %kxargs -I '{}' objcopy --only-keep-debug '{}' '{}'.debug
1487 find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1488 -name "*.ko" | %kxargs -I '{}' \
1489 sh -c 'cd `dirname {}`; \
1490 objcopy --add-gnu-debuglink=`basename {}`.debug \
1491 --strip-debug `basename {}`'
1492
1493 pushd %{temp_modules}
1494 find %{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1495 -name "*.ko.debug" > debug_module_list
1496 popd
1497 cat %{temp_modules}/debug_module_list | \
1498 sed 's|\(.*\)|%{_modulesdir}/\1|' >> $kernel_debug_files
1499 cat %{temp_modules}/debug_module_list | \
1500 sed 's|\(.*\)|%exclude %{_modulesdir}/\1|' \
1501 >> ../kernel_exclude_debug_files.$debug_flavour
1502 rm -f %{temp_modules}/debug_module_list
1503 }
1504
1505 CreateFiles() {
1506 kernel_flavour=$1
1507
1508 kernel_files=../kernel_files.$kernel_flavour
1509
1510 ker="vmlinuz"
1511 ### Create the kernel_files.*
1512 cat > $kernel_files <<EOF
1513 %{_bootdir}/System.map-%{kversion}-$kernel_flavour-%{buildrpmrel}
1514 %{_bootdir}/symvers-%{kversion}-$kernel_flavour-%{buildrpmrel}.xz
1515 %{_bootdir}/config-%{kversion}-$kernel_flavour-%{buildrpmrel}
1516 %{_bootdir}/$ker-%{kversion}-$kernel_flavour-%{buildrpmrel}
1517 %dir %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/
1518 %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/kernel
1519 %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/modules.*
1520 %doc README.kernel-sources
1521 %ifarch %arm aarch64
1522 %dir %{_libdir}/linux-%{kversion}-$kernel_flavour-%{buildrpmrel}
1523 %{_libdir}/linux-%{kversion}-$kernel_flavour-%{buildrpmrel}/*.dtb
1524 %endif
1525 EOF
1526
1527 %if %build_debug
1528 cat ../kernel_exclude_debug_files.$kernel_flavour >> $kernel_files
1529 %endif
1530
1531 ### Create kernel Posttrans script
1532 cat > $kernel_files-posttrans <<EOF
1533 %if %build_devel
1534 # create kernel-devel symlinks if matching -devel- rpm is installed
1535 if [ -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
1536 ln -sf /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build
1537 ln -sf /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source
1538 fi
1539 %endif
1540 if [ -z "$DURING_INSTALL" ] ; then
1541 if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
1542 /usr/sbin/dkms_autoinstaller start %{kversion}-$kernel_flavour-%{buildrpmrel}
1543 fi
1544 fi
1545 /sbin/installkernel %{kversion}-$kernel_flavour-%{buildrpmrel}
1546 pushd /boot > /dev/null
1547 if [ -e initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img ]; then
1548 ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz-$kernel_flavour
1549 ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz
1550 ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd-$kernel_flavour.img
1551 ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd.img
1552 fi
1553 popd > /dev/null
1554 EOF
1555
1556 ### Create kernel Postun script on the fly
1557 cat > $kernel_files-postun <<EOF
1558 pushd /boot > /dev/null
1559 if [ -f "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
1560 echo "The kernel is still installed in postun, probably a reinstall, skipping cleanup." >&2
1561 exit
1562 fi
1563 if [ -L vmlinuz-$kernel_flavour ]; then
1564 if [ "$(readlink vmlinuz-$kernel_flavour)" = "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
1565 rm -f vmlinuz-$kernel_flavour
1566 fi
1567 fi
1568 if [ -L initrd-$kernel_flavour.img ]; then
1569 if [ "$(readlink initrd-$kernel_flavour.img)" = "initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img" ]; then
1570 rm -f initrd-$kernel_flavour.img
1571 fi
1572 fi
1573 popd > /dev/null
1574 rm -rf /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel} >/dev/null
1575 /sbin/kernel_remove_initrd %{kversion}-$kernel_flavour-%{buildrpmrel}
1576 /sbin/installkernel -R %{kversion}-$kernel_flavour-%{buildrpmrel}
1577 if [ -d /var/lib/dkms ]; then
1578 rm -f /var/lib/dkms/*/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null
1579 rm -rf /var/lib/dkms/*/*/%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1580 rm -f /var/lib/dkms-binary/*/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null
1581 rm -rf /var/lib/dkms-binary/*/*/%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1582 fi
1583 EOF
1584 }
1585
1586
1587 CreateKernel() {
1588 flavour=$1
1589
1590 PrepareKernel $flavour $flavour-%{buildrpmrel}
1591
1592 BuildKernel %{kversion}-$flavour-%{buildrpmrel}
1593 %if %build_devel
1594 SaveDevel $flavour
1595 %endif
1596 %if %build_debug
1597 SaveDebug $flavour
1598 %endif
1599 CreateFiles $flavour
1600 }
1601
1602
1603 ###
1604 # DO it...
1605 ###
1606
1607
1608 # Create a simulacro of buildroot
1609 rm -rf %{temp_root}
1610 install -d %{temp_root}
1611
1612
1613 # make sure we are in the directory
1614 cd %src_dir
1615
1616 %ifarch %{ix86}
1617 %if %build_desktop586
1618 CreateKernel desktop586
1619 %endif
1620 %endif
1621
1622 %if %build_desktop
1623 CreateKernel desktop
1624 %endif
1625
1626 %if %build_server
1627 CreateKernel server
1628 %endif
1629
1630 # set extraversion to match srpm to get nice version reported by the tools
1631 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1632
1633 # build perf
1634 %if %{build_perf}
1635 # perf
1636 %smake -s -C tools/perf NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1637 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} all
1638 %smake -C tools/perf -s prefix=%{_prefix} man
1639 %endif
1640
1641 %if %{build_cpupower}
1642 # cpupower
1643 # make sure version-gen.sh is executable.
1644 chmod +x tools/power/cpupower/utils/version-gen.sh
1645 %make_build -C tools/power/cpupower CPUFREQ_BENCH=false
1646 %endif
1647
1648 # build bpftool
1649 %if %{build_bpftool}
1650 pushd tools/bpf/bpftool
1651 make
1652 popd
1653 %endif
1654
1655 # build libbpf
1656 %if %{build_libbpf}
1657 pushd tools/lib/bpf
1658 make V=1
1659 popd
1660 %endif
1661
1662 # We don't make to repeat the depend code at the install phase
1663 %if %build_source
1664 PrepareKernel "" %{buildrpmrel}custom
1665 %smake ARCH=%{target_arch} -s mrproper
1666 %endif
1667
1668
1669 ###
1670 ### install
1671 ###
1672 %install
1673 install -m 644 %{SOURCE4} .
1674
1675 cd %src_dir
1676
1677 # Directories definition needed for installing
1678 %define target_source %{buildroot}%{_kerneldir}
1679 %define target_boot %{buildroot}%{_bootdir}
1680 %define target_modules %{buildroot}%{_modulesdir}
1681 %define target_headers %{buildroot}%{_prefix}
1682
1683 # We want to be able to test several times the install part
1684 rm -rf %{buildroot}
1685 cp -a %{temp_root} %{buildroot}
1686
1687 # Create directories infastructure
1688 %if %build_source
1689 install -d %{target_source}
1690
1691 tar cf - . | tar xf - -C %{target_source}
1692 chmod -R a+rX %{target_source}
1693
1694 # we remove all the source files that we don't ship
1695 # first architecture files
1696 for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 m32r m68k m68knommu metag microblaze \
1697 mips nds32 nios2 openrisc parisc powerpc riscv s390 score sh sh64 sparc tile unicore32 v850 xtensa mn10300; do
1698 rm -rf %{target_source}/arch/$i
1699 rm -rf %{target_source}/scripts/dtc/include-prefixes/$i
1700 rm -rf %{target_source}/tools/arch/$i
1701 rm -rf %{target_source}/tools/testing/selftests/$i
1702 done
1703 %ifnarch %{arm} aarch64
1704 rm -rf %{target_source}/include/kvm/arm*
1705 rm -rf %{target_source}/scripts/dtc/include-prefixes/arm*
1706 rm -rf %{target_source}/tools/arch/arm*
1707 %endif
1708
1709 # other misc files
1710 rm -f %{target_source}/{.clang-format,.config.old,.config.cmd,.lst,.mailmap,.get_maintainer.ignore}
1711 rm -f %{target_source}/{.missing-syscalls.d,.cocciconfig,.gitattributes}
1712 rm -rf %{target_source}/.tmp_depmod/
1713
1714 # more cleaning
1715 pushd %{target_source}
1716 # lots of gitignore files
1717 find -iname ".gitignore" -delete
1718 # clean tools tree
1719 %smake -C tools clean
1720 %smake -C tools/build clean
1721 %smake -C tools/build/feature clean
1722 # dont ship generated vdso.so*
1723 %ifarch aarch64
1724 rm -f arch/arm64/kernel/vdso/vdso.so*
1725 %endif
1726 popd
1727
1728 # nuke last as it gets re-created
1729 rm -f %{target_source}/.cache.mk
1730
1731 #endif %build_source
1732 %endif
1733
1734 # compressing modules
1735 %if %{build_modxz}
1736 find %{target_modules} -name "*.ko" | %kxargs xz -6
1737 %else
1738 find %{target_modules} -name "*.ko" | %kxargs gzip -9
1739 %endif
1740
1741 # We used to have a copy of PrepareKernel here
1742 # Now, we make sure that the thing in the linux dir is what we want it to be
1743 for i in %{target_modules}/*; do
1744 rm -f $i/build $i/source
1745 done
1746
1747 # sniff, if we compressed all the modules, we change the stamp :(
1748 # we really need the depmod -ae here
1749 pushd %{target_modules}
1750 for i in *; do
1751 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
1752 echo $?
1753 done
1754
1755 for i in *; do
1756 pushd $i
1757 echo "Creating modules.description for $i"
1758 modules=`find . -name "*.ko.[g,x]z"`
1759 echo $modules | xargs /sbin/modinfo \
1760 | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
1761 popd
1762 done
1763 popd
1764
1765 # need to set extraversion to match srpm again to avoid rebuild
1766 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1767
1768 # install userspace-headers
1769 %if %{build_uheaders}
1770 %smake ARCH=%{target_arch} headers_install INSTALL_HDR_PATH=%{target_headers}
1771 # for drakx
1772 cp include/linux/pci_ids.h %{target_headers}/include/linux/
1773 %endif
1774
1775 %if %{build_perf}
1776 # perf tool binary and supporting scripts/binaries
1777 %smake -s -C tools/perf V=1 DESTDIR=%{buildroot} NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1778 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} install
1779
1780 # perf man pages (note: implicit rpm magic compresses them later)
1781 make -C tools/perf V=1 DESTDIR=%{buildroot} prefix=%{_prefix} install-man
1782
1783 # remove perf files we dont ship
1784 rm -rf %{buildroot}/usr/lib/perf/examples
1785 rm -rf %{buildroot}/usr/lib/perf/include/bpf
1786 rm -rf %{buildroot}/usr/include/perf/perf_dlfilter.h
1787 %endif
1788
1789 %if %{build_cpupower}
1790 make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
1791 rm -f %{buildroot}%{_libdir}/*.{a,la}
1792 %find_lang cpupower
1793 mv cpupower.lang ../
1794 chmod 0755 %{buildroot}%{_libdir}/libcpupower.so*
1795 mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig
1796 install -m644 %{SOURCE50} %{buildroot}%{_unitdir}/cpupower.service
1797 install -m644 %{SOURCE51} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
1798 %endif
1799
1800 # install bpftool
1801 %if %{build_bpftool}
1802 pushd tools/bpf/bpftool
1803 make DESTDIR=%{buildroot} prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} install doc-install
1804 popd
1805 %endif
1806
1807 # install libbpf
1808 %if %{build_libbpf}
1809 pushd tools/lib/bpf
1810 make DESTDIR=%{buildroot} prefix=%{_prefix} libdir=%{_libdir} V=1 install install_headers
1811 popd
1812 %endif
1813
1814 ###
1815 ### clean
1816 ###
1817 %clean
1818 rm -rf %{buildroot}
1819
1820
1821 # We don't want to remove this, the whole reason of its existence is to be
1822 # able to do several rpm --short-circuit -bi for testing install
1823 # phase without repeating compilation phase
1824 #rm -rf %{temp_root}
1825
1826 ###
1827 ### source and doc file lists
1828 ###
1829
1830 %if %build_source
1831 %files -n %{kname}-source-%{buildrel}
1832 %doc %{_kerneldir}/LICENSES
1833 %dir %{_kerneldir}
1834 %dir %{_kerneldir}/arch
1835 %dir %{_kerneldir}/include
1836 %{_kerneldir}/3rdparty
1837 %{_kerneldir}/Documentation
1838 %{_kerneldir}/arch/Kconfig
1839 %{_kerneldir}/arch/arm
1840 %{_kerneldir}/arch/arm64
1841 %{_kerneldir}/arch/um
1842 %{_kerneldir}/arch/x86
1843 %{_kerneldir}/block
1844 %{_kerneldir}/certs
1845 %{_kerneldir}/crypto
1846 %{_kerneldir}/drivers
1847 %{_kerneldir}/fs
1848 %{_kerneldir}/include/acpi
1849 %{_kerneldir}/include/asm-generic
1850 %{_kerneldir}/include/clocksource
1851 %{_kerneldir}/include/crypto
1852 %{_kerneldir}/include/drm
1853 %{_kerneldir}/include/dt-bindings
1854 %{_kerneldir}/include/keys
1855 %{_kerneldir}/include/kunit
1856 %{_kerneldir}/include/kvm
1857 %{_kerneldir}/include/linux
1858 %{_kerneldir}/include/math-emu
1859 %{_kerneldir}/include/media
1860 %{_kerneldir}/include/memory
1861 %{_kerneldir}/include/misc
1862 %{_kerneldir}/include/net
1863 %{_kerneldir}/include/pcmcia
1864 %{_kerneldir}/include/ras
1865 %{_kerneldir}/include/rdma
1866 %{_kerneldir}/include/scsi
1867 %{_kerneldir}/include/soc
1868 %{_kerneldir}/include/sound
1869 %{_kerneldir}/include/target
1870 %{_kerneldir}/include/trace
1871 %{_kerneldir}/include/uapi
1872 %{_kerneldir}/include/vdso/*.h
1873 %{_kerneldir}/include/video
1874 %{_kerneldir}/include/xen
1875 %{_kerneldir}/init
1876 %{_kerneldir}/ipc
1877 %{_kerneldir}/kernel
1878 %{_kerneldir}/lib
1879 %{_kerneldir}/mm
1880 %{_kerneldir}/net
1881 %{_kerneldir}/virt
1882 %{_kerneldir}/samples
1883 %{_kerneldir}/scripts
1884 %{_kerneldir}/security
1885 %{_kerneldir}/sound
1886 %{_kerneldir}/tools
1887 %{_kerneldir}/usr
1888 %{_kerneldir}/COPYING
1889 %{_kerneldir}/CREDITS
1890 %{_kerneldir}/Kbuild
1891 %{_kerneldir}/Kconfig
1892 %{_kerneldir}/MAINTAINERS
1893 %{_kerneldir}/Makefile
1894 %{_kerneldir}/README
1895 %doc README.kernel-sources
1896
1897 %files -n %{kname}-source-latest
1898 %endif
1899
1900 %if %build_doc
1901 %files -n %{kname}-doc
1902 %doc linux-%{tar_ver}/Documentation/*
1903 %endif
1904
1905 %if %build_uheaders
1906 %files -n %{kname}-userspace-headers
1907 %defattr(0644,root,root,0755)
1908 %{_includedir}/asm/
1909 %{_includedir}/asm-generic/
1910 %{_includedir}/drm/
1911 %{_includedir}/linux/
1912 %{_includedir}/misc/
1913 %{_includedir}/mtd/
1914 %{_includedir}/rdma/
1915 %{_includedir}/scsi/
1916 %{_includedir}/sound/
1917 %{_includedir}/video/
1918 %{_includedir}/xen/
1919 %endif
1920
1921 %if %{build_perf}
1922 %files -n perf
1923 %{_bindir}/perf
1924 %{_bindir}/trace
1925 %{_datadir}/perf-core/strace/groups/file
1926 %{_datadir}/perf-core/strace/groups/string
1927 %{_datadir}/doc/perf-tip/tips.txt
1928 %dir %{_libdir}/traceevent
1929 %dir %{_libdir}/traceevent/plugins
1930 %{_libdir}/traceevent/plugins/plugin_*
1931 %dir %{_prefix}/libexec/perf-core
1932 %{_prefix}/libexec/perf-core/*
1933 %{_mandir}/man[1-8]/perf*
1934 %{_sysconfdir}/bash_completion.d/perf
1935 %endif
1936
1937 %if %{build_cpupower}
1938 %files -n cpupower -f cpupower.lang
1939 %config(noreplace) %{_sysconfdir}/sysconfig/cpupower
1940 %{_bindir}/cpupower
1941 %{_datadir}/bash-completion/completions/cpupower
1942 %{_libdir}/libcpupower.so.0
1943 %{_libdir}/libcpupower.so.0.0.1
1944 %{_unitdir}/cpupower.service
1945 %{_mandir}/man[1-8]/cpupower*
1946
1947 %files -n cpupower-devel
1948 %{_libdir}/libcpupower.so
1949 %{_includedir}/cpuidle.h
1950 %{_includedir}/cpufreq.h
1951 %endif
1952
1953 %if %{build_bpftool}
1954 %files -n bpftool
1955 %{_sbindir}/bpftool
1956 %{_sysconfdir}/bash_completion.d/bpftool
1957 %{_mandir}/man8/bpftool-*.8*
1958 %{_mandir}/man8/bpftool.8*
1959 %endif
1960
1961 %if %{build_libbpf}
1962 %files -n %{_lib}bpf0
1963 %{_libdir}/libbpf.so.0
1964 %{_libdir}/libbpf.so.0.5.0
1965
1966 %files -n %{_lib}bpf-devel
1967 %{_libdir}/libbpf.a
1968 %{_libdir}/libbpf.so
1969 %{_libdir}/pkgconfig/libbpf.pc
1970 %{_includedir}/bpf/bpf.h
1971 %{_includedir}/bpf/bpf_core_read.h
1972 %{_includedir}/bpf/bpf_endian.h
1973 %{_includedir}/bpf/bpf_helper_defs.h
1974 %{_includedir}/bpf/bpf_helpers.h
1975 %{_includedir}/bpf/bpf_tracing.h
1976 %{_includedir}/bpf/btf.h
1977 %{_includedir}/bpf/libbpf.h
1978 %{_includedir}/bpf/libbpf_common.h
1979 %{_includedir}/bpf/libbpf_legacy.h
1980 %{_includedir}/bpf/skel_internal.h
1981 %{_includedir}/bpf/xsk.h
1982 %endif

  ViewVC Help
Powered by ViewVC 1.1.30