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

  ViewVC Help
Powered by ViewVC 1.1.30