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

  ViewVC Help
Powered by ViewVC 1.1.30