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

  ViewVC Help
Powered by ViewVC 1.1.30