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

  ViewVC Help
Powered by ViewVC 1.1.30