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

  ViewVC Help
Powered by ViewVC 1.1.30