/[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 1744173 - (show annotations) (download)
Fri Sep 3 12:07:26 2021 UTC (2 years, 6 months ago) by tmb
File size: 60166 byte(s)
- update to 5.10.62
  * drop merged patches


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

  ViewVC Help
Powered by ViewVC 1.1.30