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

  ViewVC Help
Powered by ViewVC 1.1.30