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

  ViewVC Help
Powered by ViewVC 1.1.30