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

  ViewVC Help
Powered by ViewVC 1.1.30