/[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 1758299 - (show annotations) (download)
Sun Nov 21 14:00:07 2021 UTC (2 years, 4 months ago) by tmb
File size: 57371 byte(s)
- update to 5.15.4
  * drop merged patches
- exit/syscall_user_dispatch: Send ordinary signals on failure
- signal/powerpc: On swapcontext failure force SIGSEGV
- signal/s390: Use force_sigsegv in default_trap_handler
- signal/sparc32: Exit with a fatal signal when try_to_clear_window_buffer fails
- signal/sparc32: In setup_rt_frame and setup_fram use force_fatal_sig
- signal/vm86_32: Properly send SIGSEGV when the vm86 state cannot be saved
- signal/x86: In emulate_vsyscall force a signal instead of calling do_exit
- signal: Implement force_fatal_sig
- signal: Replace force_sigsegv(SIGSEGV) with force_fatal_sig(SIGSEGV)
- signal: Don't always set SA_IMMUTABLE for forced signals
- signal: Replace force_fatal_sig with force_exit_sig when in doubt
- update rtw89 patchset from 5.16-rc1+
- ata: libata: add missing ata_identify_page_supported() calls
- drm/amd/display: Fix OLED brightness control on eDP
- drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works
  on vga and dvi connectors
- md: fix update super 1.0 on rdev size change
- tipc: check for null after calling kmemdup


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

  ViewVC Help
Powered by ViewVC 1.1.30