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

  ViewVC Help
Powered by ViewVC 1.1.30