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

  ViewVC Help
Powered by ViewVC 1.1.30