/[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 1735083 - (show annotations) (download)
Wed Jul 7 14:25:22 2021 UTC (2 years, 9 months ago) by tmb
File size: 60671 byte(s)
- ahci: Add support for Dell S140 and later controllers
- ALSA: hda/realtek: fix mute/micmute LEDs for HP EliteBook 830 G8
- ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 445/450/630 G8
- drm/amdgpu: fix bad address translation for sienna_cichlid
- drm/sched: Avoid data corruptions
- net: ip: avoid OOM kills with large UDP sends over loopback
- iwlwifi: Add support for ax201 in Samsung Galaxy Book Flex2 Alpha
- virtio_net: Remove BUG() to avoid machine dead


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

  ViewVC Help
Powered by ViewVC 1.1.30