/[packages]/backports/8/kernel/current/SPECS/kernel.spec
ViewVC logotype

Contents of /backports/8/kernel/current/SPECS/kernel.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1755949 - (show annotations) (download)
Fri Nov 12 17:56:39 2021 UTC (2 years, 5 months ago) by tmb
File size: 57004 byte(s)
- update to 5.15.2
  * drop merged patches
- rebase mrproper, python3, shuttle-wmi patches
- add kernel 5.15 buildfixes for rtl8812au, rtl8821ce
- update aufs to 5.15
- update defconfigs
- ALSA: hda: fix general protection fault in azx_runtime_idle
- ALSA: hda: Free card instance properly at probe errors
- ALSA: PCM: Fix NULL dereference at mmap checks
- bcache: Revert 'bcache: use bvec_virt'
- fbdev: Prevent probing generic drivers if a FB is already registered
- hwmon: (k10temp) Remove unused definitions
- hwmon: (k10temp) Add support for AMD Family 19h Models 10h-1Fh and A0h-AFh
- iomap: Fix inline extent handling in iomap_readpage
- rtw89: update partition size of firmware header on skb->data
- x86/amd_nb: Add AMD Family 19h Models (10h-1Fh) and (A0h-AFh) PCI IDs


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

  ViewVC Help
Powered by ViewVC 1.1.30