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

  ViewVC Help
Powered by ViewVC 1.1.30