/[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 1734378 - (show annotations) (download)
Wed Jun 30 17:27:44 2021 UTC (2 years, 8 months ago) by tmb
File size: 59904 byte(s)
- update to 5.10.47
  * drop obsolete reverts


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

  ViewVC Help
Powered by ViewVC 1.1.30