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

  ViewVC Help
Powered by ViewVC 1.1.28