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

  ViewVC Help
Powered by ViewVC 1.1.30