/[packages]/backports/8/kernel/current/SPECS/kernel.spec
ViewVC logotype

Contents of /backports/8/kernel/current/SPECS/kernel.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1751299 - (show annotations) (download)
Wed Oct 13 18:02:55 2021 UTC (2 years, 6 months ago) by tmb
File size: 60550 byte(s)
- update to 5.14.12
  * drop merged/obsolete patches
- add current -stable queue
- fs/ntfs3: Fix integer overflow in ni_fiemap with fiemap_prep()
- fs/ntfs3: Remove unnecessary condition checking from ntfs_file_read_iter
- fs/ntfs3: Remove GPL boilerplates from decompress lib files
- fs/ntfs3: Change how module init/info messages are displayed
- kvm: fix null pointer dereference in page_is_secretmem()
- staging: replace old rtl8188eu with new r8188eu wifi driver from upcoming 5.15
- update rtw89 patchset to v7


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

  ViewVC Help
Powered by ViewVC 1.1.30