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

  ViewVC Help
Powered by ViewVC 1.1.30