/[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 1763548 - (show annotations) (download)
Fri Dec 24 13:54:44 2021 UTC (2 years, 3 months ago) by tmb
File size: 60000 byte(s)
- ALSA: hda/hdmi: Disable silent stream on GLK
- HID: intel-ish-hid: ipc: Specify no cache snooping on TGL and ADL
- iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
- netfs: fix parameter of cleanup()
- revert: "rtw88: 8821c: disable the ASPM of RTL8821CE"
- rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC
- rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE
- rtw88: don't check CRC of VHT-SIG-B in 802.11ac signal
- rtw88: 8822c: update rx settings to prevent potential hw deadlock
- rtw89: 8852a: correct bit definition of dfs_en


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

  ViewVC Help
Powered by ViewVC 1.1.30