/[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 1761645 - (show annotations) (download)
Sun Dec 12 10:16:16 2021 UTC (2 years, 4 months ago) by tmb
File size: 62517 byte(s)
- update to 5.15.7
  * drop merged patches
- add current -stable queue
- Add AHCI support for ASM1062+JBM575 cards
- ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897 platform
- drm/i915: update Raptor Lake S patches
- drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()
- drm/nouveau: wait for the exclusive fence after the shared ones
- drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence
- io_uring: ensure task_work gets run as part of cancelations
- iwlwifi: add new killer devices to the driver
- iwlwifi: add new device id 7F70
- iwlwifi: pcie: fix killer name matching for AX200
- iwlwifi: pcie: remove two duplicate PNJ device entries
- iwlwifi: add missing entries for Gf4 with So and SoF
- iwlwifi: swap 1650i and 1650s killer struct names
- iwlwifi: add new Qu-Hr device
- iwlwifi: add new ax1650 killer device
- libata: add horkage for ASMedia 1092
- rtw88: 8821c: support RFE type4 wifi NIC
- rtw88: 8821c: correct 2.4G tx power for type 2/4 NIC
- rtw88: 8821c: disable the ASPM of RTL8821CE as it causes systems to hang
- thermal: int340x: Fix VCoRefLow MMIO bit offset for TGL
- enable CIFS_SMB_DIRECT


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 15
37 # sublevel is now used for -stable patches
38 %define sublevel 7
39
40 # Package release
41 %define mgarel 3
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: usb-gadget-uvc-fix-multiple-opens.patch
282 Patch0101: hid-quirks-add-quirk-for-the-microsoft-surface-3-type-cover.patch
283 Patch0102: hid-google-add-eel-usb-id.patch
284 Patch0103: hid-intel-ish-hid-ipc-only-enable-irq-wakeup-when-requested.patch
285 Patch0104: hid-add-hid_is_usb-function-to-make-it-simpler-for-usb-detection.patch
286 Patch0105: hid-add-usb_hid-dependancy-to-hid-prodikeys.patch
287 Patch0106: hid-add-usb_hid-dependancy-to-hid-chicony.patch
288 Patch0107: hid-add-usb_hid-dependancy-on-some-usb-hid-drivers.patch
289 Patch0108: hid-bigbenff-prevent-null-pointer-dereference.patch
290 Patch0109: hid-wacom-fix-problems-when-device-is-not-a-valid-usb-device.patch
291 Patch0110: hid-check-for-valid-usb-device-for-many-hid-drivers.patch
292 Patch0111: mtd-dataflash-add-device-tree-spi-ids.patch
293 Patch0112: mmc-spi-add-device-tree-spi-ids.patch
294 Patch0113: hid-sony-fix-error-path-in-probe.patch
295 Patch0114: hid-ignore-battery-for-elan-touchscreen-on-asus-ux550ve.patch
296 Patch0115: platform-x86-intel-hid-add-quirk-to-support-surface-go-3.patch
297 Patch0116: nft_set_pipapo-fix-bucket-load-in-avx2-lookup-routine-for-six-8-bit-groups.patch
298 Patch0117: ib-hfi1-insure-use-of-smp_processor_id-is-preempt-disabled.patch
299 Patch0118: ib-hfi1-fix-early-init-panic.patch
300 Patch0119: ib-hfi1-fix-leak-of-rcvhdrtail_dummy_kvaddr.patch
301 Patch0120: can-kvaser_usb-get-can-clock-frequency-from-device.patch
302 Patch0121: can-kvaser_pciefd-kvaser_pciefd_rx_error_frame-increase-correct-stats-rx-tx-_errors-counter.patch
303 Patch0122: can-sja1000-fix-use-after-free-in-ems_pcmcia_add_card.patch
304 Patch0123: can-pch_can-pch_can_rx_normal-fix-use-after-free.patch
305 Patch0124: can-m_can-m_can_read_fifo-fix-memory-leak-in-error-branch.patch
306 Patch0125: can-m_can-pci-fix-incorrect-reference-clock-rate.patch
307 Patch0126: can-m_can-pci-fix-iomap_read_fifo-and-iomap_write_fifo.patch
308 Patch0127: can-m_can-disable-and-ignore-elo-interrupt.patch
309 Patch0128: net-dsa-mv88e6xxx-fix-don-t-use-phy_detect-on-internal-phy-s.patch
310 Patch0129: net-dsa-mv88e6xxx-allow-use-of-phys-on-cpu-and-dsa-ports.patch
311 Patch0130: x86-sme-explicitly-map-new-efi-memmap-table-as-encrypted.patch
312 Patch0131: platform-x86-amd-pmc-fix-s2idle-failures-on-certain-amd-laptops.patch
313 Patch0132: nfc-fix-potential-null-pointer-deref-in-nfc_genl_dump_ses_done.patch
314 Patch0133: selftests-netfilter-add-a-vrf-conntrack-testcase.patch
315 Patch0134: vrf-don-t-run-conntrack-on-vrf-with-dflt-qdisc.patch
316 Patch0135: bpf-x86-fix-no-previous-prototype-warning.patch
317 Patch0136: bpf-sockmap-attach-map-progs-to-psock-early-for-feature-probes.patch
318 Patch0137: bpf-make-sure-bpf_disable_instrumentation-is-safe-vs-preemption.patch
319 Patch0138: bpf-fix-the-off-by-two-error-in-range-markings.patch
320 Patch0139: ice-ignore-dropped-packets-during-init.patch
321 Patch0140: ethtool-do-not-perform-operations-on-net-devices-being-unregistered.patch
322 Patch0141: bonding-make-tx_rebalance_counter-an-atomic.patch
323 Patch0142: nfp-fix-memory-leak-in-nfp_cpp_area_cache_add.patch
324 Patch0143: seg6-fix-the-iif-in-the-ipv6-socket-control-block.patch
325 Patch0144: udp-using-datalen-to-cap-max-gso-segments.patch
326 Patch0145: netfilter-nft_exthdr-break-evaluation-if-setting-tcp-option-fails.patch
327 Patch0146: netfilter-conntrack-annotate-data-races-around-ct-timeout.patch
328 Patch0147: iavf-restore-msi-state-on-reset.patch
329 Patch0148: iavf-fix-reporting-when-setting-descriptor-count.patch
330 Patch0149: ib-hfi1-correct-guard-on-eager-buffer-deallocation.patch
331 Patch0150: devlink-fix-netns-refcount-leak-in-devlink_nl_cmd_reload.patch
332 Patch0151: net-bcm4908-handle-dma_set_coherent_mask-error-codes.patch
333 Patch0152: net-dsa-mv88e6xxx-error-handling-for-serdes_power-functions.patch
334 Patch0153: net-dsa-felix-fix-memory-leak-in-felix_setup_mmio_filtering.patch
335 Patch0154: net-sched-fq_pie-prevent-dismantle-issue.patch
336 Patch0155: net-mvpp2-fix-xdp-rx-queues-registering.patch
337
338 ###
339 ### Arch
340 ### Patches from 1000
341 ###
342
343 # laptop needing pci=assign-busses (#18989, needs to be submitted upstream)
344 Patch1000: x86-pci-toshiba-equium-a60-assign-busses.patch
345
346 # If users choose a bad video mode, allow to jump to
347 # a working one (TTL: forever)
348 Patch1001: x86-boot-video-80x25-if-break.patch
349
350 # Allow poweroff on UP machines running SMP kernels
351 Patch1005: x86-default_poweroff_up_machines.patch
352
353 # raise vmalloc to fix https://bugs.mageia.org/show_bug.cgi?id=904
354 Patch1010: x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch
355
356 # slows down boot
357 Patch1015: Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch
358
359 # fixes new hw not being properly detected
360 Patch1020: x86-pci-ignore-e820-reservations-for-bridge-windows-on-newer-systems.patch
361
362 # intel_pstate
363 Patch1025: cpufreq-intel_pstate-ITMT-support-for-overclocked-sy.patch
364
365 ###
366 ### ACPI
367 ###
368
369 # CLEVO M360S acpi irq workaround
370 Patch1100: acpi-CLEVO-M360S-disable_acpi_irq.patch
371
372 # Clevo M720SR freezes with C3
373 Patch1105: acpi-processor-M720SR-limit-to-C2.patch
374
375 # backlight fixes
376 Patch1110: ACPI-video-Add-a-quirk-to-force-acpi-video-backlight.patch
377
378 # ACPI PM fixes (TTL: 5.16)
379 Patch1130: x86-ACPI-State-Optimize-C3-entry-on-AMD-CPUs.patch
380
381 ###
382 ### Block
383 ###
384
385 # FIXME: Don't know know why this is needed
386 Patch1200: scsi-megaraid-new-sysfs-name.patch
387
388 # adds aliases to support upgrade from old dm-raid45 patch
389 Patch1215: dm-raid-aliases.patch
390
391 # disable floppy autoloading (mga #4696)
392 Patch1220: block-floppy-disable-pnp-modalias.patch
393
394 # md
395 Patch1235: md-fix-update-super-1.0-on-rdev-size-change.patch
396
397 # ahci
398 Patch1240: Add-AHCI-support-for-ASM1062-JBM575-cards.patch
399
400 # mmc
401 Patch1250: mmc-sdhci-pci-Add-PCI-ID-for-Intel-ADL.patch
402
403 # io_uring
404 Patch1255: io_uring-ensure-task_work-gets-run-as-part-of-cancel.patch
405 # libata
406 Patch1260: libata-add-horkage-for-ASMedia-1092.patch
407
408 ###
409 ### Crypto
410 ###
411
412 ###
413 ### dma
414 ###
415
416 ###
417 ### File-system
418 ###
419
420 # aufs diffed from: https://github.com/sfjro/aufs5-linux/tree/aufs5.15 (mga#8314)
421 Patch1310: fs-aufs5.15.patch
422 # symbol exports needed for modular aufs
423 Patch1311: fs-aufs5.15-symbol-exports.patch
424 # set aufs tristate
425 Patch1312: fs-aufs5.15-tristate.patch
426
427 # procfs
428 Patch1360: fs-procfs-do-not-list-TID-0-in-proc-pid-task.patch
429
430 ###
431 ### FireWire
432 ###
433
434 # adding module aliases to ease upgrade from ieee1394
435 Patch1400: firewire-ieee1394-module-aliases.patch
436
437 ###
438 ### Firmware
439 ###
440
441 ###
442 ### GPU/DRM
443 ###
444
445 # amdgpu
446 # switch SI and CIK from radeon to amdgpu
447 Patch1520: drm-amdgpu-SI-and-CIK-enabled-by-default.patch
448
449 # new Q57 Host Bridge id
450 Patch1530: char-agp-intel-new-Q57-id.patch
451
452 # i915
453 # DG1
454 Patch1540: drm-i915-Add-pci-ids-and-uapi-for-DG1.patch
455 # Alder Lake S
456 Patch1541: drm-i915-adl_s-Remove-require_force_probe-protection.patch
457 # Raptor Lake S
458 Patch1542: drm-i915-rpl-s-Add-PCI-IDS-for-Raptor-Lake-S.patch
459 Patch1543: drm-i915-rpl-s-Add-PCH-Support-for-Raptor-Lake-S.patch
460 Patch1544: drm-i915-rpl-s-Enable-guc-submission-by-default.patch
461 # Alder Lake N
462 Patch1545: drm-i915-adl-n-Enable-ADL-N-platform.patch
463 #
464 Patch1546: drm-i915-gen11-Moving-WAs-to-icl_gt_workarounds_init.patch
465
466 # https://bugzilla.kernel.org/show_bug.cgi?id=206653#c19
467 Patch1552: i2c_nvidia_gpu-change-err-into-info.patch
468
469 # 5.15 regression, mga#29704, alternative fix to reverting:
470 # 3e1ad79bf66165bdb2baca3989f9227939241f11 "drm/nouveau: always wait for the exclusive fence""
471 Patch1560: drm-nouveau-wait-for-the-exclusive-fence-after-the-shared-ones-v2.patch
472
473 #
474 Patch1565: drm-syncobj-Deal-with-signalled-fences-in-drm_syncob.patch
475
476 ###
477 ### hwmon
478 ###
479
480 # k10temp
481 Patch1600: x86-amd_nb-Add-AMD-Family-19h-Models-10h-1Fh-and-A0h-AFh-PCI-IDs.patch
482 Patch1601: hwmon-k10temp-Remove-unused-definitions.patch
483 Patch1602: hwmon-k10temp-Add-support-for-AMD-Family-19h-Models-10h-1Fh-and-A0h-AFh.patch
484 Patch1603: hwmon-k10temp-Support-up-to-12-CCDs-on-AMD-Family-of-processors.patch
485
486 # asus
487 Patch1610: hwmon-nct6775-Use-superio_-function-pointers-in-sio_.patch
488 Patch1611: hwmon-nct6775-Use-nct6775_-function-pointers-in-nct6.patch
489 Patch1612: hwmon-nct6775-Support-access-via-Asus-WMI.patch
490 Patch1613: hwmon-nct6775-Add-additional-ASUS-motherboards.patch
491 Patch1614: hwmon-nct6775-add-Pro-WS-X570-ACE.patch
492 Patch1615: hwmon-nct6775-add-ProArt-X570-CREATOR-WIFI.patch
493 Patch1616: hwmon-asus_wmi_ec_sensors-Support-B550-Asus-WMI.patch
494 Patch1617: hwmon-asus_wmi_sensors-Support-X370-Asus-WMI.patch
495
496 ###
497 ### i2c
498 ###
499
500 ###
501 ### Input
502 ###
503
504 Patch1700: input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch
505
506 ###
507 ### HID
508 ###
509
510 ###
511 ### MFD
512 ###
513
514 ###
515 ### MM
516 ###
517
518 ###
519 ### Network
520 ###
521
522 # SiS 190 fixes
523 Patch1900: net-sis190-fix-list-usage.patch
524
525 # netfilter IFWLOG support
526 Patch1910: net-netfilter-IFWLOG.patch
527 Patch1911: net-netfilter-IFWLOG-mdv.patch
528 Patch1912: net-netfilter-IFWLOG-2.6.35-buildfix.patch
529 Patch1913: net-netfilter-IFWLOG-2.6.37-buildfix.patch
530 Patch1914: net-ipv4-netfilter-ipt_IFWLOG-3.6-buildfix.patch
531 Patch1915: net-netfilter-IFWLOG-3.7-buildfix.patch
532 Patch1916: net-netfilter-IFWLOG-remove-unused-label.patch
533 Patch1917: net-netfilter-ipt_IFWLOG-4.12-buildfix.patch
534 Patch1918: net-netfilter-IFWLOG-5.0-buildfix.patch
535
536 # netfilter psd support
537 Patch1920: net-netfilter-psd.patch
538 Patch1921: net-netfilter-psd-mdv.patch
539 Patch1922: net-netfilter-psd-2.6.35-buildfix.patch
540 Patch1923: net-netfilter-psd-fix-redefines.patch
541
542 # rtw88 wifi
543 # add alias for the replaced r8822be staging driver
544 Patch1930: net-wireless-rtw88-add-r8822be-alias.patch
545 # add alias for the replaced 8723de 3rdparty driver
546 Patch1931: net-wireless-rtw88-add-8723de-alias.patch
547 # TTL: 5.16
548 Patch1932: net-wireless-rtw88-8821c-support-RFE-type4-wifi-NIC.patch
549 Patch1933: net-wireless-rtw88-8821c-correct-2.4G-tx-power-for-type-2-4-NIC.patch
550 # fixes broken aspn hangs system
551 Patch1934: net-wireless-rtw88-8821c-disable-the-ASPM-of-RTL8821CE.patch
552
553 # rtw89 patchset v7 for 802.11ax hw (TTL: 5.16)
554 Patch1960: net-wireless-rtw89-add-Realtek-802.11ax-driver.patch
555 Patch1961: net-wireless-rtw89-Fix-two-spelling-mistakes-in-debug-messages.patch
556 Patch1962: net-wireless-rtw89-Remove-redundant-check-of-ret-after-call-to-rt.patch
557 Patch1963: net-wireless-rtw89-fix-return-value-check-in-rtw89_cam_send_sec_k.patch
558 Patch1964: net-wireless-rtw89-remove-unneeded-semicolon.patch
559 Patch1965: net-wireless-rtw89-fix-error-function-parameter.patch
560 Patch1966: net-wireless-rtw89-remove-duplicate-register-definitions.patch
561 Patch1967: net-wireless-rtw89-fix-return-value-in-hfc_pub_cfg_chk.patch
562 Patch1968: net-wireless-rtw89-Fix-variable-dereferenced-before-check-sta.patch
563 Patch1969: net-wireless-rtw89-update-partition-size-of-firmware-header-on-skb-data.patch
564
565 # iwlfiwi
566 Patch1980: net-wireless-iwlwifi-add-new-pci-id-for-6235.patch
567 Patch1981: net-wireless-iwlwifi-add-new-killer-devices-to-the-driver.patch
568 Patch1982: net-wireless-iwlwifi-add-new-device-id-7F70.patch
569 Patch1983: net-wireless-iwlwifi-pcie-fix-killer-name-matching-for-AX200.patch
570 Patch1984: net-wireless-iwlwifi-pcie-remove-two-duplicate-PNJ-device-entries.patch
571 Patch1985: net-wireless-iwlwifi-add-missing-entries-for-Gf4-with-So-and-SoF.patch
572 Patch1986: net-wireless-iwlwifi-swap-1650i-and-1650s-killer-struct-names.patch
573 Patch1987: net-wireless-iwlwifi-add-new-Qu-Hr-device.patch
574 Patch1988: net-wireless-iwlwifi-add-new-ax1650-killer-device.patch
575
576 ###
577 ### PCI
578 ###
579
580 ###
581 ### pinctrl
582 ###
583
584 # amd
585 Patch2030: pinctrl-amd-Fix-wakeups-when-IRQ-is-shared-with-SCI.patch
586
587 ###
588 ### Platform
589 ###
590
591 # Allow access to Shuttle WMI interface controls
592 # (Mainly allow turning on/off webcam and wireless on Shuttle DA18IE and DA18IM)
593 Patch2050: platform-x86-add-shuttle-wmi-driver.patch
594 Patch2051: platform-x86-shuttle-wmi-drop-devinit-exit.patch
595 Patch2052: platform-x86-shuttle-wmi-4.2-buildfix.patch
596 Patch2053: platform-x86-shuttle-wmi-4.13-buildfix.patch
597 Patch2054: platform-x86-shuttle-wmi-kernel-5.5.patch
598
599 ###
600 ### PM
601 ###
602
603 ###
604 ### Sound
605 ###
606
607 Patch2150: sound-alsa-hda-fix-general-protection-fault-in-azx_runtime_idle.patch
608
609 Patch2155: ALSA-hda-realtek-Add-headset-Mic-support-for-Lenovo-.patch
610
611 ###
612 ### SPI
613 ###
614
615 ###
616 ### Staging
617 ###
618
619 ###
620 ### Thermal
621 ###
622
623 Patch2250: thermal-int340x-Fix-VCoRefLow-MMIO-bit-offset-for-TG.patch
624
625 ###
626 ### Thunderbolt
627 ###
628
629 ###
630 ### USB
631 ###
632
633 Patch2300: hid-usbhid-IBM-BladeCenterHS20-quirk.patch
634
635 Patch2310: usb-storage-unusual_devs-add-id.patch
636 Patch2311: usb-storage-unusual_devs-add-id-2.6.37-buildfix.patch
637
638 ###
639 ### V4L
640 ###
641
642 # pwc driver name in /proc/bus/devices, /sys fix and "advertisement" removal
643 Patch2400: media-usb-pwc-lie-in-proc-usb-devices.patch
644
645 ###
646 ### Video
647 ###
648
649 # Mageia framebuffer boot logo
650 Patch2500: video-mageia-logo.patch
651
652 # mga compat option
653 Patch2501: video-console-vgacon-treat-nokmsboot-as-nomodeset.patch
654
655 ###
656 ### Virt
657 ###
658
659 # fix gcc-10 build
660 Patch2550: KVM-squelch-uninitialized-variable-warning.patch
661
662 ###
663 ### Tools
664 ###
665
666 # wipe powerpc refrence so we can nuke dangling symlinks (mga#17676)
667 Patch2600: tools-testing-selftest-Makefile-remove-powerpc-reference.patch
668
669 # fix perf build
670 Patch2605: tools-perf-ui-include-slang.patch
671
672 ###
673 ### UAPI
674 ###
675
676 Patch2700: uapi-avoid-namespace-conflict-in-linux-posix_types.h.patch
677
678 ###
679 ### 3rdparty
680 ###
681
682 Patch3000: 3rd-3rdparty-tree.patch
683 Patch3001: 3rd-3rdparty-merge.patch
684
685 # ndiswrapper
686 Patch3100: 3rd-ndiswrapper-1.63.patch
687 Patch3101: 3rd-ndiswrapper-Kconfig.patch
688 Patch3102: 3rd-ndiswrapper-Makefile-build-fix.patch
689 Patch3103: 3rd-niswrapper-Kconfig-Makefile.patch
690
691 # add rtl8812 support (mga#21043)
692 # from https://github.com/aircrack-ng/rtl8812au.git
693 Patch3200: 3rd-rtl8812au.patch
694 Patch3201: 3rd-rtl8812au-Kconfig-Makefile.patch
695 Patch3202: 3rd-rtl8812au-rename.patch
696 Patch3203: 3rd-rtl8812au-kernel-5.12.patch
697 Patch3204: 3rd-rtl8812au-kernel-5.15.patch
698
699 # add rtl8723de support (mga#22559)
700 Patch3300: 3rd-rtl8723de.patch
701 Patch3301: 3rd-rtl8723de-Kconfig-Makefile.patch
702 Patch3302: 3rd-rtl8723de-fix-redefine.patch
703 Patch3303: 3rd-rtl8723de-nodebug.patch
704 Patch3304: 3rd-rtl8223de-kernel-5.6.patch
705 Patch3305: 3rd-rtl8723de-add-kernel-5.8-support.patch
706
707 # viahss
708 Patch3400: 3rd-viahss-0.92.patch
709 Patch3401: 3rd-viahss-config.patch
710 Patch3402: 3rd-viahss-module-license.patch
711 Patch3403: 3rd-viahss-2.6.35-buildfix.patch
712 Patch3404: 3rd-viahss-3.0-buildfix.patch
713 Patch3405: 3rd-viahss-Kconfig-Makefile.patch
714
715 # rtl8821ce (mga#24605) -- https://github.com/tomaspinho/rtl8821ce
716 Patch3500: 3rd-rtl8821ce.patch
717 Patch3501: 3rd-rtl8821ce-Kconfig-Makefile.patch
718 Patch3502: 3rd-rtl8821ce-5.8-fix.patch
719 Patch3503: 3rd-rtl8821ce-kernel-5.10.patch
720 Patch3504: 3rd-rtl8821ce-kernel-5.12.patch
721 Patch3505: 3rd-rtl8821ce-kernel-5.15.patch
722
723 # fix Kconfig files for 3rdparty:
724 Patch3900: 3rd-fix-kconfig.patch
725
726 ###
727 ### Python fixes
728 ###
729 Patch4000: linux-5.15-python3.patch
730
731 ###
732 ### TTY
733 ###
734
735 ###
736 ### Security fixes
737 ###
738 Patch5002: CVE-2019-12379.patch
739 #
740 # CVE-2020-16119
741 # https://bugzilla.redhat.com/show_bug.cgi?id=1886374
742 # https://bugzilla.redhat.com/show_bug.cgi?id=1888083
743 Patch5003: CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch
744
745 ###
746 ### Cosmetic fixes (e.g. typos, spelling, etc.)
747 ###
748
749 ### Fixes from FC kernel
750 # Inspur Advantech PCI ids
751 Patch7000: 0001-scsi-smartpqi-add-inspur-advantech-ids.patch
752 # Vulcan AHCI PCI bar (aarch64)
753 Patch7001: 0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch
754
755 #END
756 ####################################################################
757
758 # Defines for the things that are needed for all the kernels
759 #
760 %define common_desc_kernel The kernel package contains the Linux kernel (vmlinuz), the core of your \
761 Mageia operating system. The kernel handles the basic functions \
762 of the operating system: memory allocation, process allocation, device \
763 input and output, etc.
764
765 %define common_desc_kernel_smp This kernel relies on in-kernel smp alternatives to switch between up & smp \
766 mode depending on detected hardware. To force the kernel to boot in single \
767 processor mode, use the "nosmp" boot parameter.
768
769 ### Global Requires/Provides
770 %define requires1 bootloader-utils >= 1.16-1
771 %define requires2 dracut >= 046-2
772 %define requires3 kmod >= 12-2
773 %define requires4 sysfsutils >= 2.1.0-16
774 %define requires5 kernel-firmware >= 20190603-1
775 # ldetect-lst with SI/CIK swich from radeon to amdgpu
776 %define requires6 ldetect-lst >= 0.6.25-1
777
778 %define kprovides1 %{kname} = %{kverrel}
779 %define kprovides2 kernel = %{tar_ver}
780 %define kprovides3 alsa = 1.0.26
781 %define kprovides_server drbd-api = 88
782
783 # conflict dkms packages that dont support kernel-5.10
784 %define kconflicts1 dkms-broadcom-wl < 6.30.223.271-58
785 %define kconflicts2 dkms-nvidia-current < 460.32.03-1
786 %define kconflicts3 dkms-nvidia390 < 390.141-1
787 %define kconflicts4 dkms-nvidia340 < 340.108-15
788 %define kconflicts5 dkms-nvidia304 < 304.137-3
789 %define kconflicts6 dkms-virtualbox < 6.1.18-1
790 %define kconflicts7 dkms-xtables-addons < 3.13-2
791 # (tmb) conflict older btrfs-progs to get the new in same transaction and in initrd
792 %define kconflicts8 btrfs-progs < 5.10-1
793 # (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd
794 %define kconflicts9 radeon-firmware < 20201218-1
795 # (tmb) conflict old firmware to get the firmwares in initrd
796 %define kconflicts10 kernel-firmware-nonfree < 20201230-1
797 # (tmb) conflict old microcode to get updated ones in initrd for early loading
798 %define kconflicts11 microcode < 0.20201118-2
799 # (tmb) conflict old theme to get mga8 theme in initrd
800 %define kconflicts12 mageia-gfxboot-theme < 4.5.14.11-2
801 # (tmb) conflict too old grub2(-efi)
802 %define kconflicts13 grub2 < 2.02.0-15
803 %define kconflicts14 grub2-efi < 2.02.0-15
804 # (tmb) conflict too old efibootmgr
805 %define kconflicts15 efibootmgr < 16-3
806 # (tmb) force new theme in initrd
807 %define kconflicts16 mageia-theme < 8.0-2
808
809 Autoreqprov: no
810
811 %if 0%{?mageia} >= 8
812 BuildRequires: gcc >= 10.3.0-1
813 BuildRequires: binutils >= 1:2.35.2-1
814 %else
815 BuildRequires: gcc >= 8.4.0-1
816 BuildRequires: binutils >= 1:2.33.1-1
817 %endif
818 BuildRequires: kmod >= 12-2
819 BuildRequires: bc
820 # for crypto stuff
821 BuildRequires: pkgconfig(openssl)
822 # since 4.16
823 BuildRequires: bison
824 BuildRequires: diffutils
825 BuildRequires: elfutils-devel
826 BuildRequires: flex
827 # for headers_install
828 BuildRequires: rsync
829 # for cpupower
830 %if %{build_cpupower}
831 BuildRequires: pkgconfig(libpci)
832 %endif
833 # for perf
834 %if %{build_perf}
835 BuildRequires: audit-devel
836 BuildRequires: binutils-devel
837 BuildRequires: gtk2-devel
838 BuildRequires: libunwind-devel
839 BuildRequires: newt-devel
840 BuildRequires: python3-devel
841 BuildRequires: zlib-devel
842 BuildRequires: asciidoc
843 BuildRequires: xmlto-notex
844 BuildRequires: perl-devel
845 %if 0%{?mageia} >= 8
846 BuildRequires: systemtap-sdt-devel
847 BuildRequires: babeltrace-devel
848 %else
849 BuildRequires: libbabeltrace-devel
850 %endif
851 %ifarch %{ix86} x86_64
852 BuildRequires: numa-devel
853 %endif
854 %endif
855 %if %{build_bpftool}
856 BuildRequires: python3-docutils
857 BuildRequires: cap-devel
858 %endif
859
860 %description
861 %common_desc_kernel
862 %ifnarch %{arm}
863 %common_desc_kernel_smp
864 %endif
865
866 # mkflavour() name flavour processor
867 # name: the flavour name in the package name
868 # flavour: first parameter of CreateKernel()
869 %define mkflavour() \
870 %package -n %{kname}-%{1}-%{buildrel} \
871 Version: %{fakever} \
872 Release: %{fakerel} \
873 Provides: %kprovides1 %kprovides2 %kprovides3 \
874 %{expand:%%{?kprovides_%{1}:Provides: %{kprovides_%{1}}}} \
875 Provides: %{kname}-%{1} \
876 Requires(pre): %requires1 %requires2 %requires3 %requires4 \
877 Requires: %requires2 %requires5 %requires6 \
878 Conflicts: %kconflicts1 %kconflicts2 %kconflicts3 \
879 Conflicts: %kconflicts4 %kconflicts5 %kconflicts6 \
880 Conflicts: %kconflicts7 %kconflicts8 %kconflicts9 \
881 Conflicts: %kconflicts10 %kconflicts11 %kconflicts12 \
882 Conflicts: %kconflicts13 %kconflicts14 %kconflicts15 \
883 Conflicts: %kconflicts16 \
884 %if 0%{?mageia} >= 8 \
885 Obsoletes: crda \
886 Obsoletes: crda-devel \
887 Obsoletes: fuse-exfat \
888 %endif \
889 Provides: should-restart = system \
890 Provides: installonlypkg(kernel) \
891 Recommends: iw cpupower microcode \
892 Recommends: %{kname}-%{1}-latest \
893 %ifarch %{ix86} \
894 Conflicts: arch(x86_64) \
895 %endif \
896 Summary: %{expand:%{summary_%(echo %{1} | sed -e "s/-/_/")}} \
897 Group: System/Kernel and hardware \
898 %description -n %{kname}-%{1}-%{buildrel} \
899 %common_desc_kernel %{expand:%{info_%(echo %{1} | sed -e "s/-/_/")}} \
900 %ifnarch %{arm} \
901 %common_desc_kernel_smp \
902 %endif \
903 \
904 %if %build_devel \
905 %package -n %{kname}-%{1}-devel-%{buildrel} \
906 Version: %{fakever} \
907 Release: %{fakerel} \
908 Requires: glibc-devel ncurses-devel make gcc perl \
909 Requires: gcc >= 5.5.0-1 \
910 %ifarch x86_64 \
911 Requires: pkgconfig(libelf) \
912 %endif \
913 Summary: The kernel-devel files for %{kname}-%{1}-%{buildrel} \
914 Group: Development/Kernel \
915 Provides: %{kname}-devel = %{kverrel} \
916 Provides: %{kname}-%{1}-devel \
917 Recommends: %{kname}-%{1}-devel-latest \
918 %ifarch %{ix86} \
919 Conflicts: arch(x86_64) \
920 %endif \
921 %description -n %{kname}-%{1}-devel-%{buildrel} \
922 This package contains the kernel files (headers and build tools) \
923 that should be enough to build additional drivers for \
924 use with %{kname}-%{1}-%{buildrel}. \
925 \
926 If you want to build your own kernel, you need to install the full \
927 %{kname}-source-%{buildrel} rpm. \
928 \
929 %endif \
930 \
931 %if %build_debug \
932 %package -n %{kname}-%{1}-%{buildrel}-debuginfo \
933 Version: %{fakever} \
934 Release: %{fakerel} \
935 Summary: Files with debuginfo for %{kname}-%{1}-%{buildrel} \
936 Group: Development/Debug \
937 Provides: kernel-debug = %{kverrel} \
938 %ifarch %{ix86} \
939 Conflicts: arch(x86_64) \
940 %endif \
941 %description -n %{kname}-%{1}-%{buildrel}-debuginfo \
942 This package contains the files with debuginfo to aid in debug tasks \
943 when using %{kname}-%{1}-%{buildrel}. \
944 \
945 If you need to look at debug information or use some application that \
946 needs debugging info from the kernel, this package may help. \
947 \
948 %endif \
949 \
950 %package -n %{kname}-%{1}-latest \
951 Version: %{kversion} \
952 Release: %{rpmrel} \
953 Summary: Virtual rpm for latest %{kname}-%{1} \
954 Group: System/Kernel and hardware \
955 Requires: %{kname}-%{1}-%{buildrel} \
956 %ifarch %{ix86} \
957 Conflicts: arch(x86_64) \
958 %endif \
959 Obsoletes: vboxadditions-kernel-%{1}-latest \
960 Obsoletes: kernel-tmb-%{1}-latest \
961 %description -n %{kname}-%{1}-latest \
962 This package is a virtual rpm that aims to make sure you always have the \
963 latest %{kname}-%{1} installed... \
964 \
965 %if %build_devel \
966 %package -n %{kname}-%{1}-devel-latest \
967 Version: %{kversion} \
968 Release: %{rpmrel} \
969 Summary: Virtual rpm for latest %{kname}-%{1}-devel \
970 Group: Development/Kernel \
971 Requires: %{kname}-%{1}-devel-%{buildrel} \
972 %ifarch %{ix86} \
973 Conflicts: arch(x86_64) \
974 %endif \
975 Provides: %{kname}-devel-latest \
976 Obsoletes: kernel-tmb-%{1}-devel-latest \
977 %description -n %{kname}-%{1}-devel-latest \
978 This package is a virtual rpm that aims to make sure you always have the \
979 latest %{kname}-%{1}-devel installed... \
980 \
981 %endif \
982 \
983 %posttrans -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-posttrans \
984 %postun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-postun \
985 \
986 %if %build_devel \
987 %post -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-post \
988 %preun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-preun \
989 %postun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-postun \
990 %endif \
991 \
992 %files -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1} \
993 %files -n %{kname}-%{1}-latest \
994 \
995 %if %build_devel \
996 %files -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1} \
997 %files -n %{kname}-%{1}-devel-latest \
998 %endif \
999 \
1000 %if %build_debug \
1001 %files -n %{kname}-%{1}-%{buildrel}-debuginfo -f kernel_debug_files.%{1} \
1002 %endif
1003
1004 %ifarch %{ix86}
1005 #
1006 # kernel-desktop586: i586, smp-alternatives, 4GB
1007 #
1008 %if %build_desktop586
1009 %define summary_desktop586 Linux kernel for desktop use with i586 and less than 4GB RAM
1010 %define info_desktop586 This kernel is compiled for desktop use, single or \
1011 multiple i586 processor(s)/core(s) and less than 4GB RAM (usually 3-3.5GB \
1012 detected, if you need/want to use all 4GB or more, install kernel-server), \
1013 using HZ_1000, voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
1014 %mkflavour desktop586
1015 %endif
1016 %endif
1017
1018 #
1019 # kernel-desktop: i686, smp-alternatives, 4 GB / x86_64
1020 #
1021 %if %build_desktop
1022 %ifarch %{ix86}
1023 %define summary_desktop Linux Kernel for desktop use with i686 and less than 4GB RAM
1024 %define info_desktop This kernel is compiled for desktop use, single or \
1025 multiple i686 processor(s)/core(s) and less than 4GB RAM (usually 3-3.5GB \
1026 detected, if you need/want to use all 4GB or more, install kernel-server), \
1027 using HZ_1000, voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
1028 %else
1029 %define summary_desktop Linux Kernel for desktop use with %{_arch}
1030 %define info_desktop This kernel is compiled for desktop use, single or \
1031 multiple %{_arch} processor(s)/core(s), using HZ_1000, voluntary preempt, \
1032 CFS cpu scheduler and cfq i/o scheduler.
1033 %endif
1034 %mkflavour desktop
1035 %endif
1036
1037 #
1038 # kernel-server: i686, smp-alternatives, 64 GB / x86_64
1039 #
1040 %if %build_server
1041 %ifarch %{ix86}
1042 %define summary_server Linux Kernel for server use with i686 & 64GB RAM
1043 %define info_server This kernel is compiled for server use, single or \
1044 multiple i686 processor(s)/core(s) and up to 64GB RAM using PAE, using \
1045 no preempt, HZ_100, CFS cpu scheduler and cfq i/o scheduler.
1046 %else
1047 %define summary_server Linux Kernel for server use with %{_arch}
1048 %define info_server This kernel is compiled for server use, single or \
1049 multiple %{_arch} processor(s)/core(s), using no preempt, HZ_100, \
1050 CFS cpu scheduler and cfq i/o scheduler.
1051 %endif
1052 %mkflavour server
1053 %endif
1054
1055 #
1056 # kernel-source
1057 #
1058 %if %build_source
1059 %package -n %{kname}-source-%{buildrel}
1060 Version: %{fakever}
1061 Release: %{fakerel}
1062 Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
1063 Summary: The Linux source code for %{kname}-%{buildrel}
1064 Group: Development/Kernel
1065 Autoreqprov: no
1066 Provides: kernel-source = %{kverrel}
1067 Buildarch: noarch
1068
1069 %description -n %{kname}-source-%{buildrel}
1070 The %{kname}-source package contains the source code files for the Mageia
1071 kernel. Theese source files are only needed if you want to build your
1072 own custom kernel that is better tuned to your particular hardware.
1073
1074 If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
1075 drivers against, install the *-devel-* rpm that is matching your kernel.
1076
1077 #
1078 # kernel-source-latest: virtual rpm
1079 #
1080 %package -n %{kname}-source-latest
1081 Version: %{kversion}
1082 Release: %{rpmrel}
1083 Summary: Virtual rpm for latest %{kname}-source
1084 Group: Development/Kernel
1085 Requires: %{kname}-source-%{buildrel}
1086 Buildarch: noarch
1087
1088 %description -n %{kname}-source-latest
1089 This package is a virtual rpm that aims to make sure you always have the
1090 latest %{kname}-source installed...
1091 %endif
1092
1093 #
1094 # kernel-doc: documentation for the Linux kernel
1095 #
1096 %if %build_doc
1097 %package -n %{kname}-doc
1098 Version: %{kversion}
1099 Release: %{rpmrel}
1100 Summary: Various documentation bits found in the %{kname} source
1101 Group: Documentation
1102 Buildarch: noarch
1103
1104 %description -n %{kname}-doc
1105 This package contains documentation files from the %{kname} source.
1106 Various bits of information about the Linux kernel and the device drivers
1107 shipped with it are documented in these files. You also might want install
1108 this package if you need a reference to the options that can be passed to
1109 Linux kernel modules at load time.
1110 %endif
1111
1112 #
1113 # kernel userspace-headers
1114 #
1115 %if %{build_uheaders}
1116 %package -n %{kname}-userspace-headers
1117 Version: %{kversion}
1118 Release: %{rpmrel}
1119 Summary: Linux kernel header files for userspace
1120 Group: System/Kernel and hardware
1121 %rename linux-userspace-headers
1122 Provides: kernel-headers = 1:%{version}-%{release}
1123
1124 %description -n %{kname}-userspace-headers
1125 C header files from the Linux kernel. The header files define structures
1126 and constants that are needed for building most standard programs.
1127
1128 This package is not suitable for building kernel modules.
1129 %endif
1130
1131 #
1132 # kernel/tools
1133 #
1134 %if %{build_perf}
1135 %package -n perf
1136 Version: %{kversion}
1137 Release: %{rpmrel}
1138 Summary: perf tool and the supporting documentation
1139 Group: System/Kernel and hardware
1140
1141 %description -n perf
1142 the perf tool and the supporting documentation.
1143 %endif
1144
1145 %if %{build_cpupower}
1146 %package -n cpupower
1147 Version: %{kversion}
1148 Release: %{rpmrel}
1149 Summary: the cpupower tools
1150 Group: System/Kernel and hardware
1151 Requires(post): rpm-helper >= 0.24.8-1
1152 Requires(preun): rpm-helper >= 0.24.8-1
1153 Obsoletes: cpufreq cpufrequtils
1154
1155 %description -n cpupower
1156 the cpupower tools.
1157
1158 %post -n cpupower
1159 %_post_service cpupower
1160
1161 %preun -n cpupower
1162 %_preun_service cpupower
1163
1164 %package -n cpupower-devel
1165 Version: %{kversion}
1166 Release: %{rpmrel}
1167 Summary: devel files for cpupower
1168 Group: Development/Kernel
1169 Requires: cpupower = %{kversion}-%{rpmrel}
1170 Conflicts: %{_lib}cpufreq-devel
1171
1172 %description -n cpupower-devel
1173 This package contains the development files for cpupower.
1174 %endif
1175
1176 %if %{build_bpftool}
1177 %package -n bpftool
1178 Summary: Inspection and simple manipulation of eBPF programs and maps
1179 Group: System/Kernel and hardware
1180
1181 %description -n bpftool
1182 This package contains the bpftool, which allows inspection and simple
1183 manipulation of eBPF programs and maps.
1184 %endif
1185
1186 %if %{build_libbpf}
1187 %package -n %{_lib}bpf0
1188 Summary: The bpf library from kernel source
1189 Group: System/Libraries
1190
1191 %description -n %{_lib}bpf0
1192 This package contains the kernel source bpf library.
1193
1194 %package -n %{_lib}bpf-devel
1195 Summary: Developement files for the bpf library from kernel source
1196 Group: Development/Kernel
1197 Requires: %{_lib}bpf0
1198
1199 %description -n %{_lib}bpf-devel
1200 This package includes libraries and header files needed for development
1201 of applications which use bpf library from kernel source.
1202 %endif
1203
1204 #
1205 # End packages - here begins build stage
1206 #
1207 %prep
1208 %setup -q -n %top_dir_name -c
1209
1210 cd %src_dir
1211
1212 %autopatch -p1
1213
1214 # PATCH END
1215
1216 #
1217 # Setup Begin
1218 #
1219
1220 # install x86 defconfigs
1221 install -m 644 %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} arch/x86/configs/
1222 # install arm64 defconfigs
1223 install -m 644 %{SOURCE16} %{SOURCE17} arch/arm64/configs/
1224 # install arm defconfigs
1225 install -m 644 %{SOURCE18} arch/arm/configs/
1226
1227 # make sure the kernel has the sublevel we know it has...
1228 LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
1229
1230 # get rid of unwanted files
1231 find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f
1232
1233 # fix missing exec flag on file introduced in 4.14.10-rc1
1234 chmod 755 tools/objtool/sync-check.sh
1235
1236 %build
1237 # Common target directories
1238 %define _kerneldir /usr/src/kernel-%{kversion}-%{buildrpmrel}
1239 %define _bootdir /boot
1240 %define _modulesdir /lib/modules
1241 %define _efidir %{_bootdir}/efi/mageia
1242
1243 # Directories definition needed for building
1244 %define temp_root %{build_dir}/temp-root
1245 %define temp_source %{temp_root}%{_kerneldir}
1246 %define temp_boot %{temp_root}%{_bootdir}
1247 %define temp_modules %{temp_root}%{_modulesdir}
1248
1249 PrepareKernel() {
1250 name=$1
1251 extension=$2
1252
1253 echo "Make config for kernel $extension"
1254
1255 %smake ARCH=%{target_arch} -s mrproper
1256
1257 if [ "%{target_arch}" == "i386" -o "%{target_arch}" == "x86_64" ]; then
1258 conf_dir=arch/x86/configs
1259 else
1260 conf_dir=arch/%{target_arch}/configs
1261 fi
1262 if [ -z "$name" ]; then
1263 cp $conf_dir/defconfig-%{target_arch}-desktop .config
1264 else
1265 cp $conf_dir/defconfig-%{target_arch}-$name .config
1266 fi
1267
1268 # make sure EXTRAVERSION says what we want it to say
1269 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -$extension/" Makefile
1270
1271 %smake ARCH=%{target_arch} oldconfig
1272 }
1273
1274 BuildKernel() {
1275 KernelVer=$1
1276
1277 echo "Building kernel $KernelVer"
1278
1279 %kmake ARCH=%{target_arch} -s all
1280
1281 # Start installing stuff
1282 install -d %{temp_boot}
1283 install -m 644 System.map %{temp_boot}/System.map-$KernelVer
1284 install -m 644 .config %{temp_boot}/config-$KernelVer
1285 xz -c Module.symvers > %{temp_boot}/symvers-$KernelVer.xz
1286
1287 %ifarch %{arm}
1288 IMAGE=zImage
1289 %else
1290 %ifarch aarch64
1291 IMAGE=Image.gz
1292 %else
1293 IMAGE=bzImage
1294 %endif
1295 %endif
1296 cp -f arch/%{target_arch}/boot/$IMAGE %{temp_boot}/vmlinuz-$KernelVer
1297
1298 %ifarch %{arm} aarch64
1299 install -d %{temp_root}%{_libdir}/linux-$KernelVer/
1300 find arch/%{target_arch}/boot/dts/ -name *.dtb -execdir install -D -m644 {} %{temp_root}%{_libdir}/linux-$KernelVer/{} \;
1301 %endif
1302
1303 # modules
1304 install -d %{temp_modules}/$KernelVer
1305 %smake ARCH=%{target_arch} INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=$KernelVer modules_install
1306 }
1307
1308 SaveDevel() {
1309 devel_flavour=$1
1310
1311 DevelRoot=/usr/src/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}
1312 TempDevelRoot=%{temp_root}$DevelRoot
1313
1314 mkdir -p $TempDevelRoot
1315 for i in $(find . -name 'Makefile*'); do cp -R --parents $i $TempDevelRoot;done
1316 for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*'); do cp -R --parents $i $TempDevelRoot;done
1317 cp -fR include $TempDevelRoot
1318 cp -fR scripts $TempDevelRoot
1319 cp -fR kernel/bounds.c $TempDevelRoot/kernel
1320 cp -fR tools/include $TempDevelRoot/tools/
1321 # needed for selinux
1322 cp -R --parents security/selinux/include/*.h $TempDevelRoot
1323 %ifarch %{arm}
1324 cp -fR arch/%{target_arch}/tools $TempDevelRoot/arch/%{target_arch}/
1325 cp -fR arch/%{target_arch}/kernel/signal.h $TempDevelRoot/arch/%{target_arch}/kernel/
1326 %endif
1327 %ifarch aarch64
1328 cp -fR arch/x86/entry/syscalls/syscall_32.tbl $TempDevelRoot/arch/x86/entry/syscalls/
1329 cp -fR arch/arm64/kernel/vdso/*.{S,sh} $TempDevelRoot/arch/arm64/kernel/vdso/
1330 cp -fR arch/arm64/kernel/vdso/vgettimeofday.c $TempDevelRoot/arch/arm64/kernel/vdso/
1331 cp -fR arch/arm64/tools/{cpucaps,gen-cpucaps.awk} $TempDevelRoot/arch/arm64/tools/
1332 # aarch64 build wants x86 syscall tables
1333 cp -fR arch/x86/entry/syscalls/syscall_{32,64}.tbl $TempDevelRoot/arch/x86/entry/syscalls/
1334 cp -fR lib/vdso/gettimeofday.c $TempDevelRoot/lib/vdso/
1335 %endif
1336 %ifarch %{ix86} x86_64
1337 cp -fR arch/x86/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/x86/kernel/
1338 cp -fR arch/x86/kernel/asm-offsets_{32,64}.c $TempDevelRoot/arch/x86/kernel/
1339 cp -fR arch/x86/lib/insn.c $TempDevelRoot/arch/x86/lib/
1340 cp -fR arch/x86/purgatory/* $TempDevelRoot/arch/x86/purgatory/
1341 cp -fR arch/x86/entry/syscalls/syscall* $TempDevelRoot/arch/x86/entry/syscalls/
1342 cp -fR arch/x86/include $TempDevelRoot/arch/x86/
1343 cp -fR arch/x86/tools $TempDevelRoot/arch/x86/
1344 %else
1345 cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/%{target_arch}/kernel/
1346 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f $TempDevelRoot; done
1347 %endif
1348 cp -fR .config Module.symvers $TempDevelRoot
1349
1350 # Needed for truecrypt build (Danny)
1351 cp -fR drivers/md/dm.h $TempDevelRoot/drivers/md/
1352
1353 # needed by include/generated/timeconst.h
1354 cp -fR kernel/time/timeconst.bc $TempDevelRoot/kernel/time/
1355
1356 # Needed for lirc_gpio (#39004)
1357 cp -fR drivers/media/pci/bt8xx/bttv{,p}.h $TempDevelRoot/drivers/media/pci/bt8xx/
1358 cp -fR drivers/media/pci/bt8xx/bt848.h $TempDevelRoot/drivers/media/pci/bt8xx/
1359 cp -fR drivers/media/common/btcx-risc.h $TempDevelRoot/drivers/media/common/
1360
1361 # aufs has a special file needed
1362 cp -fR fs/aufs/magic.mk $TempDevelRoot/fs/aufs/
1363
1364 # rtl8821ce has special files needed
1365 cp -fR 3rdparty/rtl8821ce/halmac.mk $TempDevelRoot/3rdparty/rtl8821ce/
1366 cp -fR 3rdparty/rtl8821ce/rtl8821c.mk $TempDevelRoot/3rdparty/rtl8821ce/
1367 mkdir -p $TempDevelRoot/3rdparty/rtl8821ce/hal/phydm/
1368 cp -fR 3rdparty/rtl8821ce/hal/phydm/phydm.mk $TempDevelRoot/3rdparty/rtl8821ce/hal/phydm/
1369 mkdir -p $TempDevelRoot/3rdparty/rtl8812au/hal/phydm/
1370 cp -fR 3rdparty/rtl8812au/hal/phydm/phydm.mk $TempDevelRoot/3rdparty/rtl8812au/hal/phydm/
1371
1372 %ifarch x86_64
1373 # orc unwinder needs theese
1374 cp -fR tools/build/Build{,.include} $TempDevelRoot/tools/build
1375 cp -fR tools/build/fixdep.c $TempDevelRoot/tools/build
1376 cp -fR tools/lib/{rbtree.c,ctype.c,str_error_r.c,string.c} $TempDevelRoot/tools/lib
1377 cp -fR tools/lib/subcmd/* $TempDevelRoot/tools/lib/subcmd
1378 cp -fR tools/objtool/* $TempDevelRoot/tools/objtool
1379 cp -fR tools/scripts/utilities.mak $TempDevelRoot/tools/scripts
1380 mkdir -p $TempDevelRoot/tools/arch/x86/tools
1381 cp -fR tools/arch/x86/tools/gen-insn-attr-x86.awk $TempDevelRoot/tools/arch/x86/tools/
1382 mkdir -p $TempDevelRoot/tools/arch/x86/lib
1383 cp -fR tools/arch/x86/lib/{inat.c,insn.c,x86-opcode-map.txt} $TempDevelRoot/tools/arch/x86/lib/
1384 mkdir -p $TempDevelRoot/tools/arch/x86/include/asm
1385 cp -fR tools/arch/x86/include/asm/{asm.h,emulate_prefix.h,inat.h,inat_types.h,insn.h,nops.h,orc_types.h} $TempDevelRoot/tools/arch/x86/include/asm/
1386 %endif
1387
1388 for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 m32r m68k m68knommu metag microblaze \
1389 mips mn10300 nds32 nios2 openrisc parisc powerpc riscv s390 score sh sparc tile unicore32 xtensa; do
1390 rm -rf $TempDevelRoot/arch/$i
1391 rm -rf $TempDevelRoot/scripts/dtc/include-prefixes/$i
1392 rm -rf $TempDevelRoot/tools/arch/$i
1393 done
1394
1395 %ifnarch %{arm} aarch64
1396 rm -rf $TempDevelRoot/arch/arm*
1397 rm -rf $TempDevelRoot/include/kvm/arm*
1398 rm -rf $TempDevelRoot/include/soc
1399 rm -rf $TempDevelRoot/scripts/dtc/include-prefixes/arm*
1400 rm -rf $TempDevelRoot/tools/arch/arm*
1401 %endif
1402 %ifnarch %{ix86} x86_64
1403 rm -rf $TempDevelRoot/arch/x86
1404 rm -rf $TempDevelRoot/tools/arch/x86
1405 # arch/x86/ras/Kconfig is included by drivers/ras/Kconfig
1406 # and kconfig's source command seems to be evaluated even under a false conditional
1407 mkdir -p $TempDevelRoot/arch/x86/ras
1408 cp -fR arch/x86/ras/Kconfig $TempDevelRoot/arch/x86/ras
1409 %endif
1410
1411 # Clean the scripts tree, and make sure everything is ok (sanity check)
1412 # running prepare+scripts (tree was already "prepared" in build)
1413 pushd $TempDevelRoot >/dev/null
1414 %smake ARCH=%{target_arch} -s prepare scripts
1415 %smake ARCH=%{target_arch} -s clean
1416 popd >/dev/null
1417 rm -f $TempDevelRoot/.config.old
1418
1419 # fix permissions
1420 chmod -R a+rX $TempDevelRoot
1421
1422 # disable mrproper in -devel rpms
1423 patch -p1 --fuzz=0 -d $TempDevelRoot -i %{SOURCE2}
1424
1425 kernel_devel_files=../kernel_devel_files.$devel_flavour
1426
1427
1428 ### Create the kernel_devel_files.*
1429 cat > $kernel_devel_files <<EOF
1430 %dir $DevelRoot
1431 %dir $DevelRoot/arch
1432 %dir $DevelRoot/include
1433 $DevelRoot/3rdparty
1434 $DevelRoot/Documentation
1435 %ifarch %{arm} aarch64
1436 $DevelRoot/arch/arm
1437 $DevelRoot/arch/arm64
1438 %endif
1439 $DevelRoot/arch/um
1440 %ifarch %{ix86} x86_64
1441 $DevelRoot/arch/x86
1442 %else
1443 $DevelRoot/arch/x86/ras
1444 %endif
1445 $DevelRoot/block
1446 $DevelRoot/certs
1447 $DevelRoot/crypto
1448 $DevelRoot/drivers
1449 $DevelRoot/fs
1450 $DevelRoot/include/acpi
1451 $DevelRoot/include/asm-generic
1452 $DevelRoot/include/clocksource
1453 $DevelRoot/include/config
1454 $DevelRoot/include/crypto
1455 $DevelRoot/include/drm
1456 $DevelRoot/include/dt-bindings
1457 $DevelRoot/include/generated
1458 $DevelRoot/include/keys
1459 $DevelRoot/include/kunit
1460 $DevelRoot/include/kvm
1461 $DevelRoot/include/linux
1462 $DevelRoot/include/math-emu
1463 $DevelRoot/include/media
1464 $DevelRoot/include/memory
1465 $DevelRoot/include/misc
1466 $DevelRoot/include/net
1467 $DevelRoot/include/pcmcia
1468 $DevelRoot/include/ras
1469 $DevelRoot/include/rdma
1470 $DevelRoot/include/scsi
1471 %ifarch %{arm} aarch64
1472 $DevelRoot/include/soc
1473 %endif
1474 $DevelRoot/include/sound
1475 $DevelRoot/include/target
1476 $DevelRoot/include/trace
1477 $DevelRoot/include/uapi
1478 $DevelRoot/include/vdso/*.h
1479 $DevelRoot/include/video
1480 $DevelRoot/include/xen
1481 $DevelRoot/init
1482 $DevelRoot/ipc
1483 $DevelRoot/kernel
1484 $DevelRoot/lib
1485 $DevelRoot/mm
1486 $DevelRoot/net
1487 $DevelRoot/samples
1488 $DevelRoot/scripts
1489 $DevelRoot/security
1490 $DevelRoot/sound
1491 $DevelRoot/tools
1492 $DevelRoot/usr
1493 $DevelRoot/virt
1494 $DevelRoot/.config
1495 $DevelRoot/Kbuild
1496 $DevelRoot/Kconfig
1497 $DevelRoot/Makefile
1498 $DevelRoot/Module.symvers
1499 $DevelRoot/arch/Kconfig
1500 %doc README.kernel-sources
1501 EOF
1502
1503
1504 ### Create -devel Post script on the fly
1505 cat > $kernel_devel_files-post <<EOF
1506 if [ -d /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel} ]; then
1507 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/{build,source}
1508 ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
1509 ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
1510 fi
1511 EOF
1512
1513
1514 ### Create -devel Preun script on the fly
1515 cat > $kernel_devel_files-preun <<EOF
1516 if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build ]; then
1517 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
1518 fi
1519 if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source ]; then
1520 rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
1521 fi
1522 exit 0
1523 EOF
1524
1525 ### Create -devel Postun script on the fly
1526 cat > $kernel_devel_files-postun <<EOF
1527 rm -rf /usr/src/kernel-%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1528 EOF
1529 }
1530
1531 SaveDebug() {
1532 debug_flavour=$1
1533
1534 install -m 644 vmlinux \
1535 %{temp_boot}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}
1536 kernel_debug_files=../kernel_debug_files.$debug_flavour
1537 echo "%{_bootdir}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}" \
1538 >> $kernel_debug_files
1539
1540 find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1541 -name "*.ko" | \
1542 %kxargs -I '{}' objcopy --only-keep-debug '{}' '{}'.debug
1543 find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1544 -name "*.ko" | %kxargs -I '{}' \
1545 sh -c 'cd `dirname {}`; \
1546 objcopy --add-gnu-debuglink=`basename {}`.debug \
1547 --strip-debug `basename {}`'
1548
1549 pushd %{temp_modules}
1550 find %{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
1551 -name "*.ko.debug" > debug_module_list
1552 popd
1553 cat %{temp_modules}/debug_module_list | \
1554 sed 's|\(.*\)|%{_modulesdir}/\1|' >> $kernel_debug_files
1555 cat %{temp_modules}/debug_module_list | \
1556 sed 's|\(.*\)|%exclude %{_modulesdir}/\1|' \
1557 >> ../kernel_exclude_debug_files.$debug_flavour
1558 rm -f %{temp_modules}/debug_module_list
1559 }
1560
1561 CreateFiles() {
1562 kernel_flavour=$1
1563
1564 kernel_files=../kernel_files.$kernel_flavour
1565
1566 ker="vmlinuz"
1567 ### Create the kernel_files.*
1568 cat > $kernel_files <<EOF
1569 %{_bootdir}/System.map-%{kversion}-$kernel_flavour-%{buildrpmrel}
1570 %{_bootdir}/symvers-%{kversion}-$kernel_flavour-%{buildrpmrel}.xz
1571 %{_bootdir}/config-%{kversion}-$kernel_flavour-%{buildrpmrel}
1572 %{_bootdir}/$ker-%{kversion}-$kernel_flavour-%{buildrpmrel}
1573 %dir %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/
1574 %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/kernel
1575 %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/modules.*
1576 %doc README.kernel-sources
1577 %ifarch %arm aarch64
1578 %dir %{_libdir}/linux-%{kversion}-$kernel_flavour-%{buildrpmrel}
1579 %{_libdir}/linux-%{kversion}-$kernel_flavour-%{buildrpmrel}/*.dtb
1580 %endif
1581 EOF
1582
1583 %if %build_debug
1584 cat ../kernel_exclude_debug_files.$kernel_flavour >> $kernel_files
1585 %endif
1586
1587 ### Create kernel Posttrans script
1588 cat > $kernel_files-posttrans <<EOF
1589 %if %build_devel
1590 # create kernel-devel symlinks if matching -devel- rpm is installed
1591 if [ -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
1592 ln -sf /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build
1593 ln -sf /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source
1594 fi
1595 %endif
1596 if [ -z "$DURING_INSTALL" ] ; then
1597 if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/kernel-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
1598 /usr/sbin/dkms_autoinstaller start %{kversion}-$kernel_flavour-%{buildrpmrel}
1599 fi
1600 fi
1601 /sbin/installkernel %{kversion}-$kernel_flavour-%{buildrpmrel}
1602 pushd /boot > /dev/null
1603 if [ -e initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img ]; then
1604 ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz-$kernel_flavour
1605 ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz
1606 ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd-$kernel_flavour.img
1607 ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd.img
1608 fi
1609 popd > /dev/null
1610 EOF
1611
1612 ### Create kernel Postun script on the fly
1613 cat > $kernel_files-postun <<EOF
1614 pushd /boot > /dev/null
1615 if [ -f "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
1616 echo "The kernel is still installed in postun, probably a reinstall, skipping cleanup." >&2
1617 exit
1618 fi
1619 if [ -L vmlinuz-$kernel_flavour ]; then
1620 if [ "$(readlink vmlinuz-$kernel_flavour)" = "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
1621 rm -f vmlinuz-$kernel_flavour
1622 fi
1623 fi
1624 if [ -L initrd-$kernel_flavour.img ]; then
1625 if [ "$(readlink initrd-$kernel_flavour.img)" = "initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img" ]; then
1626 rm -f initrd-$kernel_flavour.img
1627 fi
1628 fi
1629 popd > /dev/null
1630 rm -rf /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel} >/dev/null
1631 /sbin/kernel_remove_initrd %{kversion}-$kernel_flavour-%{buildrpmrel}
1632 /sbin/installkernel -R %{kversion}-$kernel_flavour-%{buildrpmrel}
1633 if [ -d /var/lib/dkms ]; then
1634 rm -f /var/lib/dkms/*/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null
1635 rm -rf /var/lib/dkms/*/*/%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1636 rm -f /var/lib/dkms-binary/*/kernel-%{kversion}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null
1637 rm -rf /var/lib/dkms-binary/*/*/%{kversion}-$devel_flavour-%{buildrpmrel} >/dev/null
1638 fi
1639 EOF
1640 }
1641
1642
1643 CreateKernel() {
1644 flavour=$1
1645
1646 PrepareKernel $flavour $flavour-%{buildrpmrel}
1647
1648 BuildKernel %{kversion}-$flavour-%{buildrpmrel}
1649 %if %build_devel
1650 SaveDevel $flavour
1651 %endif
1652 %if %build_debug
1653 SaveDebug $flavour
1654 %endif
1655 CreateFiles $flavour
1656 }
1657
1658
1659 ###
1660 # DO it...
1661 ###
1662
1663
1664 # Create a simulacro of buildroot
1665 rm -rf %{temp_root}
1666 install -d %{temp_root}
1667
1668
1669 # make sure we are in the directory
1670 cd %src_dir
1671
1672 %ifarch %{ix86}
1673 %if %build_desktop586
1674 CreateKernel desktop586
1675 %endif
1676 %endif
1677
1678 %if %build_desktop
1679 CreateKernel desktop
1680 %endif
1681
1682 %if %build_server
1683 CreateKernel server
1684 %endif
1685
1686 # set extraversion to match srpm to get nice version reported by the tools
1687 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1688
1689 # build perf
1690 %if %{build_perf}
1691 # perf
1692 %smake -s -C tools/perf NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1693 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} all
1694 %smake -C tools/perf -s prefix=%{_prefix} man
1695 %endif
1696
1697 %if %{build_cpupower}
1698 # cpupower
1699 # make sure version-gen.sh is executable.
1700 chmod +x tools/power/cpupower/utils/version-gen.sh
1701 %make_build -C tools/power/cpupower CPUFREQ_BENCH=false
1702 %endif
1703
1704 # build bpftool
1705 %if %{build_bpftool}
1706 pushd tools/bpf/bpftool
1707 make
1708 popd
1709 %endif
1710
1711 # build libbpf
1712 %if %{build_libbpf}
1713 pushd tools/lib/bpf
1714 make V=1
1715 popd
1716 %endif
1717
1718 # We don't make to repeat the depend code at the install phase
1719 %if %build_source
1720 PrepareKernel "" %{buildrpmrel}custom
1721 %smake ARCH=%{target_arch} -s mrproper
1722 %endif
1723
1724
1725 ###
1726 ### install
1727 ###
1728 %install
1729 install -m 644 %{SOURCE4} .
1730
1731 cd %src_dir
1732
1733 # Directories definition needed for installing
1734 %define target_source %{buildroot}%{_kerneldir}
1735 %define target_boot %{buildroot}%{_bootdir}
1736 %define target_modules %{buildroot}%{_modulesdir}
1737 %define target_headers %{buildroot}%{_prefix}
1738
1739 # We want to be able to test several times the install part
1740 rm -rf %{buildroot}
1741 cp -a %{temp_root} %{buildroot}
1742
1743 # Create directories infastructure
1744 %if %build_source
1745 install -d %{target_source}
1746
1747 tar cf - . | tar xf - -C %{target_source}
1748 chmod -R a+rX %{target_source}
1749
1750 # we remove all the source files that we don't ship
1751 # first architecture files
1752 for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 m32r m68k m68knommu metag microblaze \
1753 mips nds32 nios2 openrisc parisc powerpc riscv s390 score sh sh64 sparc tile unicore32 v850 xtensa mn10300; do
1754 rm -rf %{target_source}/arch/$i
1755 rm -rf %{target_source}/scripts/dtc/include-prefixes/$i
1756 rm -rf %{target_source}/tools/arch/$i
1757 rm -rf %{target_source}/tools/testing/selftests/$i
1758 done
1759 %ifnarch %{arm} aarch64
1760 rm -rf %{target_source}/include/kvm/arm*
1761 rm -rf %{target_source}/scripts/dtc/include-prefixes/arm*
1762 rm -rf %{target_source}/tools/arch/arm*
1763 %endif
1764
1765 # other misc files
1766 rm -f %{target_source}/{.clang-format,.config.old,.config.cmd,.lst,.mailmap,.get_maintainer.ignore}
1767 rm -f %{target_source}/{.missing-syscalls.d,.cocciconfig,.gitattributes}
1768 rm -rf %{target_source}/.tmp_depmod/
1769
1770 # more cleaning
1771 pushd %{target_source}
1772 # lots of gitignore files
1773 find -iname ".gitignore" -delete
1774 # clean tools tree
1775 %smake -C tools clean
1776 %smake -C tools/build clean
1777 %smake -C tools/build/feature clean
1778 # dont ship generated vdso.so*
1779 %ifarch aarch64
1780 rm -f arch/arm64/kernel/vdso/vdso.so*
1781 %endif
1782 popd
1783
1784 # nuke last as it gets re-created
1785 rm -f %{target_source}/.cache.mk
1786
1787 #endif %build_source
1788 %endif
1789
1790 # compressing modules
1791 %if %{build_modxz}
1792 find %{target_modules} -name "*.ko" | %kxargs xz -6
1793 %else
1794 find %{target_modules} -name "*.ko" | %kxargs gzip -9
1795 %endif
1796
1797 # We used to have a copy of PrepareKernel here
1798 # Now, we make sure that the thing in the linux dir is what we want it to be
1799 for i in %{target_modules}/*; do
1800 rm -f $i/build $i/source
1801 done
1802
1803 # sniff, if we compressed all the modules, we change the stamp :(
1804 # we really need the depmod -ae here
1805 pushd %{target_modules}
1806 for i in *; do
1807 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
1808 echo $?
1809 done
1810
1811 for i in *; do
1812 pushd $i
1813 echo "Creating modules.description for $i"
1814 modules=`find . -name "*.ko.[g,x]z"`
1815 echo $modules | xargs /sbin/modinfo \
1816 | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
1817 popd
1818 done
1819 popd
1820
1821 # need to set extraversion to match srpm again to avoid rebuild
1822 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile
1823
1824 # install userspace-headers
1825 %if %{build_uheaders}
1826 %smake ARCH=%{target_arch} headers_install INSTALL_HDR_PATH=%{target_headers}
1827 # for drakx
1828 cp include/linux/pci_ids.h %{target_headers}/include/linux/
1829 %endif
1830
1831 %if %{build_perf}
1832 # perf tool binary and supporting scripts/binaries
1833 %smake -s -C tools/perf V=1 DESTDIR=%{buildroot} NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 \
1834 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 NO_JVMTI=1 prefix=%{_prefix} lib=%{_lib} install
1835
1836 # perf man pages (note: implicit rpm magic compresses them later)
1837 make -C tools/perf V=1 DESTDIR=%{buildroot} prefix=%{_prefix} install-man
1838
1839 # remove perf files we dont ship
1840 rm -rf %{buildroot}/usr/lib/perf/examples
1841 rm -rf %{buildroot}/usr/lib/perf/include/bpf
1842 rm -rf %{buildroot}/usr/include/perf/perf_dlfilter.h
1843 %endif
1844
1845 %if %{build_cpupower}
1846 make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
1847 rm -f %{buildroot}%{_libdir}/*.{a,la}
1848 %find_lang cpupower
1849 mv cpupower.lang ../
1850 chmod 0755 %{buildroot}%{_libdir}/libcpupower.so*
1851 mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig
1852 install -m644 %{SOURCE50} %{buildroot}%{_unitdir}/cpupower.service
1853 install -m644 %{SOURCE51} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
1854 %endif
1855
1856 # install bpftool
1857 %if %{build_bpftool}
1858 pushd tools/bpf/bpftool
1859 make DESTDIR=%{buildroot} prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} install doc-install
1860 popd
1861 %endif
1862
1863 # install libbpf
1864 %if %{build_libbpf}
1865 pushd tools/lib/bpf
1866 make DESTDIR=%{buildroot} prefix=%{_prefix} libdir=%{_libdir} V=1 install install_headers
1867 popd
1868 %endif
1869
1870 ###
1871 ### clean
1872 ###
1873 %clean
1874 rm -rf %{buildroot}
1875
1876
1877 # We don't want to remove this, the whole reason of its existence is to be
1878 # able to do several rpm --short-circuit -bi for testing install
1879 # phase without repeating compilation phase
1880 #rm -rf %{temp_root}
1881
1882 ###
1883 ### source and doc file lists
1884 ###
1885
1886 %if %build_source
1887 %files -n %{kname}-source-%{buildrel}
1888 %doc %{_kerneldir}/LICENSES
1889 %dir %{_kerneldir}
1890 %dir %{_kerneldir}/arch
1891 %dir %{_kerneldir}/include
1892 %{_kerneldir}/3rdparty
1893 %{_kerneldir}/Documentation
1894 %{_kerneldir}/arch/Kconfig
1895 %{_kerneldir}/arch/arm
1896 %{_kerneldir}/arch/arm64
1897 %{_kerneldir}/arch/um
1898 %{_kerneldir}/arch/x86
1899 %{_kerneldir}/block
1900 %{_kerneldir}/certs
1901 %{_kerneldir}/crypto
1902 %{_kerneldir}/drivers
1903 %{_kerneldir}/fs
1904 %{_kerneldir}/include/acpi
1905 %{_kerneldir}/include/asm-generic
1906 %{_kerneldir}/include/clocksource
1907 %{_kerneldir}/include/crypto
1908 %{_kerneldir}/include/drm
1909 %{_kerneldir}/include/dt-bindings
1910 %{_kerneldir}/include/keys
1911 %{_kerneldir}/include/kunit
1912 %{_kerneldir}/include/kvm
1913 %{_kerneldir}/include/linux
1914 %{_kerneldir}/include/math-emu
1915 %{_kerneldir}/include/media
1916 %{_kerneldir}/include/memory
1917 %{_kerneldir}/include/misc
1918 %{_kerneldir}/include/net
1919 %{_kerneldir}/include/pcmcia
1920 %{_kerneldir}/include/ras
1921 %{_kerneldir}/include/rdma
1922 %{_kerneldir}/include/scsi
1923 %{_kerneldir}/include/soc
1924 %{_kerneldir}/include/sound
1925 %{_kerneldir}/include/target
1926 %{_kerneldir}/include/trace
1927 %{_kerneldir}/include/uapi
1928 %{_kerneldir}/include/vdso/*.h
1929 %{_kerneldir}/include/video
1930 %{_kerneldir}/include/xen
1931 %{_kerneldir}/init
1932 %{_kerneldir}/ipc
1933 %{_kerneldir}/kernel
1934 %{_kerneldir}/lib
1935 %{_kerneldir}/mm
1936 %{_kerneldir}/net
1937 %{_kerneldir}/virt
1938 %{_kerneldir}/samples
1939 %{_kerneldir}/scripts
1940 %{_kerneldir}/security
1941 %{_kerneldir}/sound
1942 %{_kerneldir}/tools
1943 %{_kerneldir}/usr
1944 %{_kerneldir}/COPYING
1945 %{_kerneldir}/CREDITS
1946 %{_kerneldir}/Kbuild
1947 %{_kerneldir}/Kconfig
1948 %{_kerneldir}/MAINTAINERS
1949 %{_kerneldir}/Makefile
1950 %{_kerneldir}/README
1951 %doc README.kernel-sources
1952
1953 %files -n %{kname}-source-latest
1954 %endif
1955
1956 %if %build_doc
1957 %files -n %{kname}-doc
1958 %doc linux-%{tar_ver}/Documentation/*
1959 %endif
1960
1961 %if %build_uheaders
1962 %files -n %{kname}-userspace-headers
1963 %defattr(0644,root,root,0755)
1964 %{_includedir}/asm/
1965 %{_includedir}/asm-generic/
1966 %{_includedir}/drm/
1967 %{_includedir}/linux/
1968 %{_includedir}/misc/
1969 %{_includedir}/mtd/
1970 %{_includedir}/rdma/
1971 %{_includedir}/scsi/
1972 %{_includedir}/sound/
1973 %{_includedir}/video/
1974 %{_includedir}/xen/
1975 %endif
1976
1977 %if %{build_perf}
1978 %files -n perf
1979 %{_bindir}/perf
1980 %{_bindir}/trace
1981 %{_datadir}/perf-core/strace/groups/file
1982 %{_datadir}/perf-core/strace/groups/string
1983 %{_datadir}/doc/perf-tip/tips.txt
1984 %dir %{_libdir}/traceevent
1985 %dir %{_libdir}/traceevent/plugins
1986 %{_libdir}/traceevent/plugins/plugin_*
1987 %dir %{_prefix}/libexec/perf-core
1988 %{_prefix}/libexec/perf-core/*
1989 %{_mandir}/man[1-8]/perf*
1990 %{_sysconfdir}/bash_completion.d/perf
1991 %endif
1992
1993 %if %{build_cpupower}
1994 %files -n cpupower -f cpupower.lang
1995 %config(noreplace) %{_sysconfdir}/sysconfig/cpupower
1996 %{_bindir}/cpupower
1997 %{_datadir}/bash-completion/completions/cpupower
1998 %{_libdir}/libcpupower.so.0
1999 %{_libdir}/libcpupower.so.0.0.1
2000 %{_unitdir}/cpupower.service
2001 %{_mandir}/man[1-8]/cpupower*
2002
2003 %files -n cpupower-devel
2004 %{_libdir}/libcpupower.so
2005 %{_includedir}/cpuidle.h
2006 %{_includedir}/cpufreq.h
2007 %endif
2008
2009 %if %{build_bpftool}
2010 %files -n bpftool
2011 %{_sbindir}/bpftool
2012 %{_sysconfdir}/bash_completion.d/bpftool
2013 %{_mandir}/man8/bpftool-*.8*
2014 %{_mandir}/man8/bpftool.8*
2015 %endif
2016
2017 %if %{build_libbpf}
2018 %files -n %{_lib}bpf0
2019 %{_libdir}/libbpf.so.0
2020 %{_libdir}/libbpf.so.0.5.0
2021
2022 %files -n %{_lib}bpf-devel
2023 %{_libdir}/libbpf.a
2024 %{_libdir}/libbpf.so
2025 %{_libdir}/pkgconfig/libbpf.pc
2026 %{_includedir}/bpf/bpf.h
2027 %{_includedir}/bpf/bpf_core_read.h
2028 %{_includedir}/bpf/bpf_endian.h
2029 %{_includedir}/bpf/bpf_helper_defs.h
2030 %{_includedir}/bpf/bpf_helpers.h
2031 %{_includedir}/bpf/bpf_tracing.h
2032 %{_includedir}/bpf/btf.h
2033 %{_includedir}/bpf/libbpf.h
2034 %{_includedir}/bpf/libbpf_common.h
2035 %{_includedir}/bpf/libbpf_legacy.h
2036 %{_includedir}/bpf/skel_internal.h
2037 %{_includedir}/bpf/xsk.h
2038 %endif

  ViewVC Help
Powered by ViewVC 1.1.30