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

  ViewVC Help
Powered by ViewVC 1.1.30