/[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 1739217 - (show annotations) (download)
Wed Aug 4 11:22:20 2021 UTC (2 years, 7 months ago) by tmb
File size: 60577 byte(s)
- update to 5.10.56
  * drop merged patches


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

  ViewVC Help
Powered by ViewVC 1.1.30