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

  ViewVC Help
Powered by ViewVC 1.1.30