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

  ViewVC Help
Powered by ViewVC 1.1.30