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

  ViewVC Help
Powered by ViewVC 1.1.30