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

  ViewVC Help
Powered by ViewVC 1.1.30