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 |
# Note! remember to push kernel-userspace-headers and |
9 |
# the prebuilt kernel drivers (kmod-<driver>) |
10 |
# |
11 |
# Mageia kernels use kernel.org versioning |
12 |
# |
13 |
|
14 |
# --- Start of gcc optimizing block --- |
15 |
# Set to '1' the optimization flag according to the cpu you |
16 |
# want to achieve special compiler optimization for. Please note |
17 |
# that these options are not mutually exclusive, so pay attention |
18 |
# at how you modify the flags. |
19 |
# |
20 |
# Set to 1 if you want to optimize for a Generic CPU |
21 |
%define use_gcc_generic 1 |
22 |
%{?_with_gcc_generic: %global use_gcc_generic 1} |
23 |
%{?_without_gcc_generic: %global use_gcc_generic 0} |
24 |
|
25 |
# Set to 1 if you want to optimized for the Native (auto-detecting) CPU |
26 |
%define use_gcc_native 0 |
27 |
%{?_with_gcc_native: %global use_gcc_native 1} |
28 |
%{?_without_gcc_native: %global use_gcc_native 0} |
29 |
|
30 |
# Set to 1 if want to optimize for a Broadwell CPU |
31 |
%define use_gcc_broadwell 0 |
32 |
%{?_with_gcc_broadwell: %global use_gcc_broadwell 1} |
33 |
%{?_without_gcc_broadwell: %global use_gcc_broadwell 0} |
34 |
|
35 |
# Atom have in-order pipelining (most of the other CPUs support |
36 |
# out-of-order pipelining) and thus can benefict from |
37 |
# specific optimization. |
38 |
# Set to 1 here if you want to optimize for the Atom CPU |
39 |
%define use_gcc_atom 0 |
40 |
%{?_with_gcc_atom: %global use_gcc_atom 1} |
41 |
%{?_without_gcc_atom: %global use_gcc_atom 0} |
42 |
|
43 |
# Set to 1 if you want to further optimize with -O3 |
44 |
%define use_gcc_harder_opt 0 |
45 |
%{?_with_gcc_harder_opt: %global use_gcc_harder_opt 1} |
46 |
%{?_without_gcc_harder_opt: %global use_gcc_harder_opt 0} |
47 |
# --- End of gcc optimizing block --- |
48 |
|
49 |
%define kernelversion 4 |
50 |
%define patchlevel 9 |
51 |
# sublevel is now used for -stable patches |
52 |
%define sublevel 38 |
53 |
# extstable is for extended stable patches |
54 |
%define extstable 0 |
55 |
|
56 |
# Package release |
57 |
%define mgarel 1 |
58 |
|
59 |
# kernel Makefile extraversion is substituted by |
60 |
# kpatch/kgit which are either 0 (empty), rc (kpatch), git (kgit) |
61 |
%define kpatch 0 |
62 |
# kernel.org -gitX patch (only the number after "git") |
63 |
%define kgit 0 |
64 |
|
65 |
# Patch tarball tag |
66 |
%define ktag joeghi |
67 |
# kernel base name (also name of srpm) |
68 |
%define kname kernel-%{ktag} |
69 |
|
70 |
%define rpmtag %{distsuffix}%{mgaver} |
71 |
%if %kpatch |
72 |
%if %kgit |
73 |
%define rpmrel %mkrel 0.%{kpatch}.%{kgit}.%{mgarel} |
74 |
%else |
75 |
%define rpmrel %mkrel 0.%{kpatch}.%{mgarel} |
76 |
%endif |
77 |
%else |
78 |
%define rpmrel %mkrel %{mgarel} |
79 |
%endif |
80 |
|
81 |
# fakerel and fakever never change, they are used to fool |
82 |
# rpm/urpmi/smart and ensure the kernels are installed, |
83 |
# not upgraded so old kernel is not overwritten or removed |
84 |
%define fakever 1 |
85 |
%define fakerel %mkrel 1 |
86 |
|
87 |
# version defines |
88 |
%if %extstable |
89 |
%define kversion %{kernelversion}.%{patchlevel}.%{sublevel}.%{extstable} |
90 |
%else |
91 |
%define kversion %{kernelversion}.%{patchlevel}.%{sublevel} |
92 |
%endif |
93 |
%define kverrel %{kversion}-%{rpmrel} |
94 |
|
95 |
# When we are using a pre/rc patch, the tarball is a sublevel -1 |
96 |
%if %kpatch |
97 |
%if %sublevel |
98 |
%define tar_ver %{kernelversion}.%{patchlevel} |
99 |
%else |
100 |
%define tar_ver %{kernelversion}.%(expr %{patchlevel} - 1) |
101 |
%endif |
102 |
%define patch_ver %{kversion}-%{kpatch}-%{ktag}%{mgarel} |
103 |
%else |
104 |
%define tar_ver %{kernelversion}.%{patchlevel} |
105 |
%define patch_ver %{kversion}-%{ktag}%{mgarel} |
106 |
%endif |
107 |
|
108 |
# Used for not making too long names for rpms or search paths |
109 |
%if %kpatch |
110 |
%if %kgit |
111 |
%define buildrpmrel 0.%{kpatch}.%{kgit}.%{mgarel}%{rpmtag} |
112 |
%else |
113 |
%define buildrpmrel 0.%{kpatch}.%{mgarel}%{rpmtag} |
114 |
%endif |
115 |
%else |
116 |
%define buildrpmrel %{mgarel}%{rpmtag} |
117 |
%endif |
118 |
%define buildrel %{kversion}-%{buildrpmrel} |
119 |
|
120 |
# Having different top level names for packges means that you have to remove |
121 |
# them by hard :( |
122 |
%define top_dir_name %{kname}-%{_arch} |
123 |
|
124 |
%define build_dir ${RPM_BUILD_DIR}/%{top_dir_name} |
125 |
%define src_dir %{build_dir}/linux-%{tar_ver} |
126 |
|
127 |
# Disable useless debug rpms... |
128 |
%define _enable_debug_packages %{nil} |
129 |
%define debug_package %{nil} |
130 |
|
131 |
# Build defines |
132 |
%define build_doc 1 |
133 |
%define build_source 1 |
134 |
%define build_devel 1 |
135 |
|
136 |
%define build_debug 0 |
137 |
|
138 |
# Build desktop i586 / 4GB |
139 |
%ifarch %{ix86} |
140 |
%define build_desktop586 0 |
141 |
%endif |
142 |
|
143 |
# Build desktop (i686 / 4GB) / x86_64 |
144 |
%define build_desktop 1 |
145 |
|
146 |
# Build server (i686 / 64GB)/x86_64 / sparc64 sets |
147 |
%define build_server 0 |
148 |
|
149 |
# build perf and cpupower tools |
150 |
%define build_perf 0 |
151 |
%define build_cpupower 0 |
152 |
|
153 |
# compress modules with xz |
154 |
%define build_modxz 0 |
155 |
|
156 |
# ARM builds |
157 |
%ifarch %{arm} |
158 |
%define build_desktop 1 |
159 |
%ifarch armv5tl |
160 |
%define build_desktop_armv6v7 1 |
161 |
%endif |
162 |
%define build_server 0 |
163 |
%define build_iop32x 0 |
164 |
%define build_versatile 0 |
165 |
# no cpupower tools on arm yet |
166 |
%define build_cpupower 0 |
167 |
# arm is currently not using xz |
168 |
%define build_modxz 0 |
169 |
%endif |
170 |
# End of user definitions |
171 |
|
172 |
# buildtime flags |
173 |
%{?_without_desktop586: %global build_desktop586 0} |
174 |
%{?_without_desktop: %global build_desktop 0} |
175 |
%{?_without_server: %global build_server 0} |
176 |
%{?_without_doc: %global build_doc 0} |
177 |
%{?_without_source: %global build_source 0} |
178 |
%{?_without_devel: %global build_devel 0} |
179 |
%{?_without_debug: %global build_debug 0} |
180 |
%{?_without_perf: %global build_perf 0} |
181 |
%{?_without_cpupower: %global build_cpupower 0} |
182 |
%{?_without_modxz: %global build_modxz 0} |
183 |
|
184 |
%{?_with_desktop586: %global build_desktop586 1} |
185 |
%{?_with_desktop: %global build_desktop 1} |
186 |
%{?_with_server: %global build_server 1} |
187 |
%{?_with_doc: %global build_doc 1} |
188 |
%{?_with_source: %global build_source 1} |
189 |
%{?_with_devel: %global build_devel 1} |
190 |
%{?_with_debug: %global build_debug 1} |
191 |
%{?_with_perf: %global build_perf 1} |
192 |
%{?_with_cpupower: %global build_cpupower 1} |
193 |
%{?_with_modxz: %global build_modxz 1} |
194 |
|
195 |
# ARM builds |
196 |
%{?_with_iop32x: %global build_iop32x 1} |
197 |
%{?_with_versatile: %global build_versatile 1} |
198 |
%{?_without_iop32x: %global build_iop32x 0} |
199 |
%{?_without_versatile: %global build_versatile 0} |
200 |
|
201 |
# For the .nosrc.rpm |
202 |
%define build_nosrc 0 |
203 |
%{?_with_nosrc: %global build_nosrc 1} |
204 |
|
205 |
%if %(if [ -z "$CC" ] ; then echo 0; else echo 1; fi) |
206 |
%define kmake %make_build CC="$CC" |
207 |
%else |
208 |
%define kmake %make_build |
209 |
%endif |
210 |
# there are places where parallel make don't work |
211 |
%define smake make |
212 |
|
213 |
# Parallelize xargs invocations on smp machines |
214 |
%define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\ |
215 |
&& RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\ |
216 |
[ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS") |
217 |
|
218 |
# Sparc arch wants sparc64 kernels |
219 |
%define target_arch %(echo %{_arch} | sed -e 's/mips.*/mips/' -e 's/arm.*/arm/') |
220 |
|
221 |
|
222 |
# |
223 |
# SRC RPM description |
224 |
# |
225 |
Summary: Linux kernel built for %vendor with extra modification by %{ktag} |
226 |
Name: %{kname} |
227 |
Version: %{kversion} |
228 |
Release: %{rpmrel} |
229 |
License: GPLv2 |
230 |
Group: System/Kernel and hardware |
231 |
ExclusiveArch: x86_64 |
232 |
ExclusiveOS: Linux |
233 |
URL: http://www.kernel.org |
234 |
|
235 |
#################################################################### |
236 |
# |
237 |
# Sources |
238 |
# |
239 |
### This is for full SRC RPM |
240 |
Source0: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.xz |
241 |
Source1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.sign |
242 |
### This is for stripped SRC RPM |
243 |
%if %build_nosrc |
244 |
NoSource: 0 |
245 |
%endif |
246 |
# This is for disabling *config, mrproper, prepare, scripts on -devel rpms |
247 |
Source2: disable-mrproper-prepare-scripts-configs-in-devel-rpms.patch |
248 |
|
249 |
Source4: README.kernel-%{ktag}-sources |
250 |
Source5: README.kernel-%{ktag}.md |
251 |
|
252 |
# config and systemd service file from fedora |
253 |
Source50: cpupower.service |
254 |
Source51: cpupower.config |
255 |
|
256 |
# our patch tarball |
257 |
Source100: linux-%{patch_ver}.tar.xz |
258 |
|
259 |
#################################################################### |
260 |
# |
261 |
# Patches |
262 |
|
263 |
# |
264 |
# Patch0 to Patch100 are for core kernel upgrades. |
265 |
# |
266 |
|
267 |
# Pre linus patch: https://cdn.kernel.org/pub/linux/kernel/v3.0/testing |
268 |
|
269 |
%if %kpatch |
270 |
%if %sublevel |
271 |
Patch2: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/stable-review/patch-%{kversion}-%{kpatch}.xz |
272 |
Source11: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/stable-review/patch-%{kversion}-%{kpatch}.sign |
273 |
%else |
274 |
Patch1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.xz |
275 |
Source10: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.sign |
276 |
%endif |
277 |
%endif |
278 |
%if %kgit |
279 |
Patch2: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/snapshots/patch-%{kernelversion}.%{patchlevel}-%{kpatch}-git%{kgit}.xz |
280 |
Source11: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/snapshots/patch-%{kernelversion}.%{patchlevel}-%{kpatch}-git%{kgit}.sign |
281 |
%endif |
282 |
%if %sublevel |
283 |
%if %kpatch |
284 |
%define prev_sublevel %(expr %{sublevel} - 1) |
285 |
%if %prev_sublevel |
286 |
Patch1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kernelversion}.%{patchlevel}.%{prev_sublevel}.xz |
287 |
Source10: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kernelversion}.%{patchlevel}.%{prev_sublevel}.sign |
288 |
%endif |
289 |
%else |
290 |
Patch1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kernelversion}.%{patchlevel}.%{sublevel}.xz |
291 |
Source10: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kernelversion}.%{patchlevel}.%{sublevel}.sign |
292 |
%endif |
293 |
%endif |
294 |
%if %extstable |
295 |
Patch3: patch-%{kernelversion}.%{patchlevel}.%{sublevel}.%{extstable}.patch |
296 |
%endif |
297 |
|
298 |
#END |
299 |
#################################################################### |
300 |
|
301 |
# Defines for the things that are needed for all the kernels |
302 |
# |
303 |
%define common_desc_kernel The kernel package contains the Linux kernel (vmlinuz), the core of your \ |
304 |
Mageia operating system. The kernel handles the basic functions \ |
305 |
of the operating system: memory allocation, process allocation, device \ |
306 |
input and output, etc.; this kernel experimental and has an alternative CPU scheduler (called \ |
307 |
MuQSS) for low latency. |
308 |
|
309 |
%define common_desc_kernel_smp This kernel relies on in-kernel smp alternatives to switch between up & smp \ |
310 |
mode depending on detected hardware. To force the kernel to boot in single \ |
311 |
processor mode, use the "maxcpus=1" boot parameter. |
312 |
|
313 |
### Global Requires/Provides |
314 |
%define requires1 bootloader-utils >= 1.16-1 |
315 |
%define requires2 dracut >= 038-21 |
316 |
%define requires3 kmod >= 12-2 |
317 |
%define requires4 sysfsutils >= 2.1.0-16 |
318 |
%define requires5 kernel-firmware >= 20170101-1 |
319 |
|
320 |
%define kprovides1 %{kname} = %{kverrel} |
321 |
%define kprovides2 kernel = %{tar_ver} |
322 |
%define kprovides3 alsa = 1.0.26 |
323 |
%define kprovides_server drbd-api = 88 |
324 |
|
325 |
%define kobsoletes1 dkms-r8192se <= 0019.1207.2010-2 |
326 |
%define kobsoletes2 dkms-lzma <= 4.43-32 |
327 |
%define kobsoletes3 dkms-psb <= 4.41.1-7 |
328 |
# conflict dkms packages that dont support kernel-4.9 |
329 |
%define kconflicts1 dkms-broadcom-wl < 6.30.223.271-45 |
330 |
%define kconflicts2 dkms-fglrx <= 15.302 |
331 |
%define kconflicts3 dkms-nvidia-current < 375.39-1 |
332 |
%define kconflicts4 dkms-nvidia340 < 340.102-1 |
333 |
%define kconflicts5 dkms-nvidia304 < 304.135-1 |
334 |
%define kconflicts6 dkms-virtualbox < 5.1.10-3 |
335 |
%define kconflicts7 dkms-xtables-addons < 2.12-1 |
336 |
# not supported by x11-server-1.16 |
337 |
%define kconflicts8 dkms-nvidia173 <= 173.14.39 |
338 |
# (tmb) nvidia96xx does not support this kernel or x11-server-1.13 |
339 |
%define kconflicts9 dkms-nvidia96xx <= 96.43.23 |
340 |
# (tmb) conflict too old lvm2 rules to make upgrades work (tv, mga #9536) |
341 |
%define kconflicts10 lvm2 < 2.02.98-3 |
342 |
# (tmb) conflict too old drakxtools-backend to avoid bogus root=/dev/ (#9536) |
343 |
%define kconflicts11 drakxtools-backend < 15.37-1 |
344 |
# (tmb) conflict older btrfs-progs to get the new in same transaction and in initrd |
345 |
%define kconflicts12 btrfs-progs < 4.9-2 |
346 |
# (tmb) conflict too old plymouth (mga#15486) |
347 |
%define kconflicts13 plymouth < 0.8.6.1-13 |
348 |
# (tmb) conflict too old radeon-firmware to get the uvd firmwares in initrd |
349 |
%define kconflicts14 radeon-firmware < 20170101-1 |
350 |
# (tmb) conflict old firmware to get the firmwares in initrd |
351 |
%define kconflicts15 kernel-firmware-nonfree < 20170101-1 |
352 |
# (tmb) conflict old microcode to get updated ones in initrd for early loading |
353 |
%define kconflicts16 microcode < 0.20170707-1 |
354 |
# (tmb) conflict old theme to get mga5 theme in initrd |
355 |
%define kconflicts17 mageia-gfxboot-theme < 4.5.6.6-1 |
356 |
# (tmb) conflict too old grub2(-efi) |
357 |
%define kconflicts18 grub2 < 2.02-0.git9752.18 |
358 |
%define kconflicts19 grub2-efi < 2.02-0.git9752.18 |
359 |
# (tmb) conflict too old efibootmgr |
360 |
%define kconflicts20 efibootmgr < 0.11.0-7 |
361 |
# (tmb) conflict for vmmouse breakage (mga#16954) |
362 |
%define kconflicts21 x11-driver-input-vmmouse < 13.1.0-1 |
363 |
|
364 |
Autoreqprov: no |
365 |
|
366 |
BuildRequires: gcc >= 5.4.0-2 |
367 |
BuildRequires: binutils >= 1:2.24-0.20131016.1 |
368 |
BuildRequires: kmod >= 12-2 |
369 |
BuildRequires: bc |
370 |
# for cpupower |
371 |
%if %{build_cpupower} |
372 |
BuildRequires: pciutils-devel |
373 |
%endif |
374 |
# for perf |
375 |
%if %{build_perf} |
376 |
BuildRequires: audit-devel |
377 |
BuildRequires: binutils-devel |
378 |
BuildRequires: elfutils-devel |
379 |
BuildRequires: gtk2-devel |
380 |
BuildRequires: libunwind-devel |
381 |
BuildRequires: newt-devel |
382 |
BuildRequires: python-devel |
383 |
BuildRequires: zlib-devel |
384 |
BuildRequires: asciidoc |
385 |
BuildRequires: bison |
386 |
BuildRequires: flex |
387 |
BuildRequires: xmlto |
388 |
BuildRequires: perl-devel |
389 |
%ifarch %{ix86} x86_64 |
390 |
BuildRequires: numa-devel |
391 |
%endif |
392 |
%endif |
393 |
|
394 |
|
395 |
%description |
396 |
%common_desc_kernel |
397 |
%ifnarch %{arm} |
398 |
%common_desc_kernel_smp |
399 |
%endif |
400 |
|
401 |
# Define obsolete/provides to help automatic upgrades of old kernel-xen-pvops |
402 |
#define latest_obsoletes_server kernel-xen-pvops-latest < 3.2.1-1 |
403 |
#define latest_provides_server kernel-xen-pvops-latest = %{kverrel} |
404 |
#define latest_obsoletes_devel_server kernel-xen-pvops-devel-latest < 3.2.1-1 |
405 |
#define latest_provides_devel_server kernel-xen-pvops-devel-latest = %{kverrel} |
406 |
# Define obsolete/provides to help automatic upgrades of old kernel-netbook |
407 |
#define latest_obsoletes_desktop kernel-netbook-latest < 3.7.0-0.rc8.1 |
408 |
#define latest_provides_desktop kernel-netbook-latest = %{kverrel} |
409 |
#define latest_obsoletes_devel_desktop kernel-netbook-devel-latest < 3.7.0-0.rc8.1 |
410 |
#define latest_provides_devel_desktop kernel-netbook-devel-latest = %{kverrel} |
411 |
|
412 |
# mkflavour() name flavour processor |
413 |
# name: the flavour name in the package name |
414 |
# flavour: first parameter of CreateKernel() |
415 |
%define mkflavour() \ |
416 |
%package -n %{kname}-%{1}-%{buildrel} \ |
417 |
Version: %{fakever} \ |
418 |
Release: %{fakerel} \ |
419 |
Provides: %kprovides1 %kprovides2 %kprovides3 \ |
420 |
%{expand:%%{?kprovides_%{1}:Provides: %{kprovides_%{1}}}} \ |
421 |
Provides: %{kname}-%{1} \ |
422 |
Requires(pre): %requires1 %requires2 %requires3 %requires4 \ |
423 |
Requires: %requires2 %requires5 \ |
424 |
Obsoletes: %kobsoletes1 %kobsoletes2 %kobsoletes3 \ |
425 |
Conflicts: %kconflicts1 %kconflicts2 %kconflicts3 \ |
426 |
Conflicts: %kconflicts4 %kconflicts5 %kconflicts6 \ |
427 |
Conflicts: %kconflicts7 %kconflicts8 %kconflicts9 \ |
428 |
Conflicts: %kconflicts10 %kconflicts11 %kconflicts12 \ |
429 |
Conflicts: %kconflicts13 %kconflicts14 %kconflicts15 \ |
430 |
Conflicts: %kconflicts16 %kconflicts17 %kconflicts18 \ |
431 |
Conflicts: %kconflicts19 %kconflicts20 %kconflicts21 \ |
432 |
Provides: should-restart = system \ |
433 |
Recommends: crda iw cpupower \ |
434 |
Recommends: %{kname}-%{1}-latest \ |
435 |
%ifarch %{ix86} \ |
436 |
Conflicts: arch(x86_64) \ |
437 |
%endif \ |
438 |
Summary: %{expand:%{summary_%(echo %{1} | sed -e "s/-/_/")}} \ |
439 |
Group: System/Kernel and hardware \ |
440 |
%description -n %{kname}-%{1}-%{buildrel} \ |
441 |
%common_desc_kernel %{expand:%{info_%(echo %{1} | sed -e "s/-/_/")}} \ |
442 |
%ifnarch %{arm} \ |
443 |
%common_desc_kernel_smp \ |
444 |
%endif \ |
445 |
\ |
446 |
%if %build_devel \ |
447 |
%package -n %{kname}-%{1}-devel-%{buildrel} \ |
448 |
Version: %{fakever} \ |
449 |
Release: %{fakerel} \ |
450 |
Requires: glibc-devel ncurses-devel make gcc perl \ |
451 |
Summary: The kernel-devel files for %{kname}-%{1}-%{buildrel} \ |
452 |
Group: Development/Kernel \ |
453 |
Provides: %{kname}-devel = %{kverrel} \ |
454 |
Provides: %{kname}-%{1}-devel \ |
455 |
Recommends: %{kname}-%{1}-devel-latest \ |
456 |
%ifarch %{ix86} \ |
457 |
Conflicts: arch(x86_64) \ |
458 |
%endif \ |
459 |
%description -n %{kname}-%{1}-devel-%{buildrel} \ |
460 |
This package contains the kernel files (headers and build tools) \ |
461 |
that should be enough to build additional drivers for \ |
462 |
use with %{kname}-%{1}-%{buildrel}. \ |
463 |
\ |
464 |
If you want to build your own kernel, you need to install the full \ |
465 |
%{kname}-source-%{buildrel} rpm. \ |
466 |
\ |
467 |
%endif \ |
468 |
\ |
469 |
%if %build_debug \ |
470 |
%package -n %{kname}-%{1}-%{buildrel}-debuginfo \ |
471 |
Version: %{fakever} \ |
472 |
Release: %{fakerel} \ |
473 |
Summary: Files with debuginfo for %{kname}-%{1}-%{buildrel} \ |
474 |
Group: Development/Debug \ |
475 |
Provides: kernel-debug = %{kverrel} \ |
476 |
%ifarch %{ix86} \ |
477 |
Conflicts: arch(x86_64) \ |
478 |
%endif \ |
479 |
%description -n %{kname}-%{1}-%{buildrel}-debuginfo \ |
480 |
This package contains the files with debuginfo to aid in debug tasks \ |
481 |
when using %{kname}-%{1}-%{buildrel}. \ |
482 |
\ |
483 |
If you need to look at debug information or use some application that \ |
484 |
needs debugging info from the kernel, this package may help. \ |
485 |
\ |
486 |
%endif \ |
487 |
\ |
488 |
%package -n %{kname}-%{1}-latest \ |
489 |
Version: %{kversion} \ |
490 |
Release: %{rpmrel} \ |
491 |
Summary: Virtual rpm for latest %{kname}-%{1} \ |
492 |
Group: System/Kernel and hardware \ |
493 |
Requires: %{kname}-%{1}-%{buildrel} \ |
494 |
%ifarch %{ix86} \ |
495 |
Conflicts: arch(x86_64) \ |
496 |
%endif \ |
497 |
%{expand:%%{?latest_obsoletes_%{1}:Obsoletes: %{latest_obsoletes_%{1}}}} \ |
498 |
%{expand:%%{?latest_provides_%{1}:Provides: %{latest_provides_%{1}}}} \ |
499 |
%description -n %{kname}-%{1}-latest \ |
500 |
This package is a virtual rpm that aims to make sure you always have the \ |
501 |
latest %{kname}-%{1} installed... \ |
502 |
\ |
503 |
%if %build_devel \ |
504 |
%package -n %{kname}-%{1}-devel-latest \ |
505 |
Version: %{kversion} \ |
506 |
Release: %{rpmrel} \ |
507 |
Summary: Virtual rpm for latest %{kname}-%{1}-devel \ |
508 |
Group: Development/Kernel \ |
509 |
Requires: %{kname}-%{1}-devel-%{buildrel} \ |
510 |
%ifarch %{ix86} \ |
511 |
Conflicts: arch(x86_64) \ |
512 |
%endif \ |
513 |
Provides: %{kname}-devel-latest \ |
514 |
%{expand:%%{?latest_obsoletes_devel_%{1}:Obsoletes: %{latest_obsoletes_devel_%{1}}}} \ |
515 |
%{expand:%%{?latest_provides_devel_%{1}:Provides: %{latest_provides_devel_%{1}}}} \ |
516 |
%description -n %{kname}-%{1}-devel-latest \ |
517 |
This package is a virtual rpm that aims to make sure you always have the \ |
518 |
latest %{kname}-%{1}-devel installed... \ |
519 |
\ |
520 |
%endif \ |
521 |
\ |
522 |
%posttrans -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-posttrans \ |
523 |
%preun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-preun \ |
524 |
%postun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-postun \ |
525 |
\ |
526 |
%if %build_devel \ |
527 |
%post -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-post \ |
528 |
%preun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-preun \ |
529 |
%postun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-postun \ |
530 |
%endif \ |
531 |
\ |
532 |
%files -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1} \ |
533 |
%files -n %{kname}-%{1}-latest \ |
534 |
\ |
535 |
%if %build_devel \ |
536 |
%files -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1} \ |
537 |
%files -n %{kname}-%{1}-devel-latest \ |
538 |
%endif \ |
539 |
\ |
540 |
%if %build_debug \ |
541 |
%files -n %{kname}-%{1}-%{buildrel}-debuginfo -f kernel_debug_files.%{1} \ |
542 |
%endif |
543 |
|
544 |
%ifarch %{ix86} |
545 |
# |
546 |
# kernel-desktop586: i586, smp-alternatives, 4GB |
547 |
# |
548 |
%if %build_desktop586 |
549 |
%define summary_desktop586 Linux kernel for desktop use with i586 and less than 4GB RAM |
550 |
%define info_desktop586 This kernel is compiled for desktop use, single or \ |
551 |
multiple i586 processor(s)/core(s) and less than 4GB RAM (usually 3-3.5GB \ |
552 |
detected, if you need/want to use all 4GB or more, install kernel-server), \ |
553 |
using HZ_100, voluntary preempt, MuQSS cpu scheduler and BFQ I/O scheduler. |
554 |
%mkflavour desktop586 |
555 |
%endif |
556 |
%endif |
557 |
|
558 |
# |
559 |
# kernel-desktop: i686, smp-alternatives, 4 GB / x86_64 |
560 |
# |
561 |
%if %build_desktop |
562 |
%ifarch %{ix86} |
563 |
%define summary_desktop Linux Kernel for desktop use with i686 and less than 4GB RAM |
564 |
%define info_desktop This kernel is compiled for desktop use, single or \ |
565 |
multiple i686 processor(s)/core(s) and less than 4GB RAM (usually 3-3.5GB \ |
566 |
detected, if you need/want to use all 4GB or more, install kernel-server), \ |
567 |
using HZ_100, voluntary preempt, MuQSS cpu scheduler and BFQ I/O scheduler. |
568 |
%else |
569 |
%define summary_desktop Linux Kernel for desktop use with %{_arch} |
570 |
%define info_desktop This kernel is compiled for desktop use, single or \ |
571 |
multiple %{_arch} processor(s)/core(s), using HZ_100, voluntary preempt, \ |
572 |
MuQSS cpu scheduler and BFQ I/O scheduler. |
573 |
%endif |
574 |
%mkflavour desktop |
575 |
%endif |
576 |
|
577 |
# |
578 |
# kernel-server: i686, smp-alternatives, 64 GB / x86_64 |
579 |
# |
580 |
%if %build_server |
581 |
%ifarch %{ix86} |
582 |
%define summary_server Linux Kernel for server use with i686 & 64GB RAM |
583 |
%define info_server This kernel is compiled for server use, single or \ |
584 |
multiple i686 processor(s)/core(s) and up to 64GB RAM using PAE, using \ |
585 |
no preempt, HZ_100, MuQSS cpu scheduler and BFQ I/O scheduler. |
586 |
%else |
587 |
%define summary_server Linux Kernel for server use with %{_arch} |
588 |
%define info_server This kernel is compiled for server use, single or \ |
589 |
multiple %{_arch} processor(s)/core(s), using no preempt, HZ_100, \ |
590 |
MuQSS cpu scheduler and BFQ I/O scheduler. |
591 |
%endif |
592 |
%mkflavour server |
593 |
%endif |
594 |
|
595 |
# |
596 |
# ARM kernels |
597 |
# |
598 |
%ifarch armv5tl |
599 |
# |
600 |
# kernel-desktop-armv6v7 |
601 |
# |
602 |
%if %build_desktop_armv6v7 |
603 |
%define summary_desktop_armv6v7 Linux kernel for desktop use with ARMv6 or ARMv7 |
604 |
%define info_desktop_armv6v7 This kernel is compiled for desktop use, single or \ |
605 |
multiple ARMv6 or ARMv7 processor(s)/core(s), using HZ_100, voluntary preempt, \ |
606 |
MuQSS cpu scheduler and BFQ I/O scheduler. |
607 |
%mkflavour desktop-armv6v7 |
608 |
%endif |
609 |
%endif |
610 |
%ifarch %{arm} |
611 |
%if %build_iop32x |
612 |
%define summary_iop32x Linux Kernel for Arm machines based on Xscale IOP32X |
613 |
%define info_iop32x This kernel is compiled for iop32x boxes. It will run on n2100 \ |
614 |
or ss4000e or sanmina boards. |
615 |
%mkflavour iop32x |
616 |
%endif |
617 |
%if %build_versatile |
618 |
%define summary_versatile Linux Kernel for Versatile arm machines |
619 |
%define info_versatile This kernel is compiled for Versatile boxes. It will run on Qemu for instance. |
620 |
%mkflavour versatile |
621 |
%endif |
622 |
%endif |
623 |
|
624 |
# |
625 |
# kernel-source |
626 |
# |
627 |
%if %build_source |
628 |
%package -n %{kname}-source-%{buildrel} |
629 |
Version: %{fakever} |
630 |
Release: %{fakerel} |
631 |
Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils |
632 |
Summary: The Linux source code for %{kname}-%{buildrel} |
633 |
Group: Development/Kernel |
634 |
Autoreqprov: no |
635 |
Provides: kernel-source = %{kverrel} |
636 |
Buildarch: noarch |
637 |
|
638 |
%description -n %{kname}-source-%{buildrel} |
639 |
The %{kname}-source package contains the source code files for the Mageia |
640 |
kernel. Theese source files are only needed if you want to build your |
641 |
own custom kernel that is better tuned to your particular hardware. |
642 |
|
643 |
If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...) |
644 |
drivers against, install the *-devel-* rpm that is matching your kernel. |
645 |
|
646 |
# |
647 |
# kernel-source-latest: virtual rpm |
648 |
# |
649 |
%package -n %{kname}-source-latest |
650 |
Version: %{kversion} |
651 |
Release: %{rpmrel} |
652 |
Summary: Virtual rpm for latest %{kname}-source |
653 |
Group: Development/Kernel |
654 |
Requires: %{kname}-source-%{buildrel} |
655 |
Buildarch: noarch |
656 |
|
657 |
%description -n %{kname}-source-latest |
658 |
This package is a virtual rpm that aims to make sure you always have the |
659 |
latest %{kname}-source installed... |
660 |
%endif |
661 |
|
662 |
# |
663 |
# kernel-doc: documentation for the Linux kernel |
664 |
# |
665 |
%if %build_doc |
666 |
%package -n %{kname}-doc |
667 |
Version: %{kversion} |
668 |
Release: %{rpmrel} |
669 |
Summary: Various documentation bits found in the %{kname} source |
670 |
Group: Documentation |
671 |
Buildarch: noarch |
672 |
|
673 |
%description -n %{kname}-doc |
674 |
This package contains documentation files from the %{kname} source. |
675 |
Various bits of information about the Linux kernel and the device drivers |
676 |
shipped with it are documented in these files. You also might want install |
677 |
this package if you need a reference to the options that can be passed to |
678 |
Linux kernel modules at load time. |
679 |
%endif |
680 |
|
681 |
# |
682 |
# kernel/tools |
683 |
# |
684 |
%if %{build_perf} |
685 |
%package -n perf |
686 |
Version: %{kversion} |
687 |
Release: %{rpmrel} |
688 |
Summary: perf tool and the supporting documentation |
689 |
Group: System/Kernel and hardware |
690 |
|
691 |
%description -n perf |
692 |
the perf tool and the supporting documentation. |
693 |
%endif |
694 |
|
695 |
%if %{build_cpupower} |
696 |
%package -n cpupower |
697 |
Version: %{kversion} |
698 |
Release: %{rpmrel} |
699 |
Summary: the cpupower tools |
700 |
Group: System/Kernel and hardware |
701 |
Requires(post): rpm-helper >= 0.24.8-1 |
702 |
Requires(preun): rpm-helper >= 0.24.8-1 |
703 |
Obsoletes: cpufreq cpufrequtils |
704 |
|
705 |
%description -n cpupower |
706 |
the cpupower tools. |
707 |
|
708 |
%post -n cpupower |
709 |
%_post_service cpupower |
710 |
|
711 |
%preun -n cpupower |
712 |
%_preun_service cpupower |
713 |
|
714 |
%package -n cpupower-devel |
715 |
Version: %{kversion} |
716 |
Release: %{rpmrel} |
717 |
Summary: devel files for cpupower |
718 |
Group: Development/Kernel |
719 |
Requires: cpupower = %{kversion}-%{rpmrel} |
720 |
Conflicts: %{_lib}cpufreq-devel |
721 |
|
722 |
%description -n cpupower-devel |
723 |
This package contains the development files for cpupower. |
724 |
%endif |
725 |
|
726 |
|
727 |
# |
728 |
# End packages - here begins build stage |
729 |
# |
730 |
%prep |
731 |
%setup -q -n %top_dir_name -c |
732 |
%setup -q -n %top_dir_name -D -T -a100 |
733 |
|
734 |
%define patches_dir ../%{patch_ver}/ |
735 |
|
736 |
cd %src_dir |
737 |
|
738 |
%if %sublevel |
739 |
%if %kpatch |
740 |
%if %prev_sublevel |
741 |
%patch1 -p1 |
742 |
%endif |
743 |
%patch2 -p1 |
744 |
%else |
745 |
%patch1 -p1 |
746 |
%endif |
747 |
%else |
748 |
%if %kpatch |
749 |
# (tmb) hack around rpm patch hiccup |
750 |
xzcat %{PATCH1}| patch -p1 ||: |
751 |
%endif |
752 |
%endif |
753 |
%if %kgit |
754 |
%patch2 -p1 |
755 |
%endif |
756 |
%if %extstable |
757 |
%patch3 -p1 |
758 |
%endif |
759 |
|
760 |
%{patches_dir}/scripts/apply_patches |
761 |
|
762 |
# PATCH END |
763 |
|
764 |
|
765 |
# |
766 |
# Setup Begin |
767 |
# |
768 |
|
769 |
# Prepare all the variables for calling create_configs |
770 |
|
771 |
%if %build_debug |
772 |
%define debug --debug |
773 |
%else |
774 |
%define debug --no-debug |
775 |
%endif |
776 |
|
777 |
%{patches_dir}/scripts/create_configs %debug --user_cpu="%{target_arch}" |
778 |
|
779 |
# tiny configs "on the fly" |
780 |
source %{patches_dir}/scripts/kernel_macros_rpm |
781 |
KERNEL_CONFIG_FILES=arch/x86/configs/%{target_arch}_defconfig-* |
782 |
%if %{use_gcc_generic} |
783 |
config_disable MNATIVE |
784 |
config_disable MBROADWELL |
785 |
config_enable GENERIC_CPU |
786 |
%endif |
787 |
%if %{use_gcc_native} |
788 |
config_enable MNATIVE |
789 |
config_disable MBROADWELL |
790 |
config_disable GENERIC_CPU |
791 |
config_add X86_P6_NOP |
792 |
%endif |
793 |
%if %{use_gcc_broadwell} |
794 |
config_disable MNATIVE |
795 |
config_enable MBROADWELL |
796 |
config_disable GENERIC_CPU |
797 |
%endif |
798 |
%if %{use_gcc_atom} |
799 |
config_disable MNATIVE |
800 |
config_disable MBROADWELL |
801 |
config_disable GENERIC_CPU |
802 |
config_enable MATOM |
803 |
%endif |
804 |
%if %{use_gcc_harder_opt} |
805 |
config_enable CC_OPTIMIZE_HARDER |
806 |
%endif |
807 |
|
808 |
# make sure the kernel has the sublevel we know it has... |
809 |
LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile |
810 |
|
811 |
# get rid of unwanted files |
812 |
find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f |
813 |
|
814 |
|
815 |
%build |
816 |
# Common target directories |
817 |
%define _kerneldir /usr/src/kernel-%{kversion}-%{ktag}-%{buildrpmrel} |
818 |
%define _bootdir /boot |
819 |
%define _modulesdir /lib/modules |
820 |
%define _efidir %{_bootdir}/efi/mageia |
821 |
|
822 |
# Directories definition needed for building |
823 |
%define temp_root %{build_dir}/temp-root |
824 |
%define temp_source %{temp_root}%{_kerneldir} |
825 |
%define temp_boot %{temp_root}%{_bootdir} |
826 |
%define temp_modules %{temp_root}%{_modulesdir} |
827 |
|
828 |
PrepareKernel() { |
829 |
name=$1 |
830 |
extension=$2 |
831 |
x86_dir=arch/x86/configs |
832 |
|
833 |
echo "Make config for kernel $extension" |
834 |
|
835 |
%smake -s mrproper |
836 |
|
837 |
if [ "%{target_arch}" == "i386" -o "%{target_arch}" == "x86_64" ]; then |
838 |
if [ -z "$name" ]; then |
839 |
cp ${x86_dir}/%{target_arch}_defconfig-desktop .config |
840 |
else |
841 |
cp ${x86_dir}/%{target_arch}_defconfig-$name .config |
842 |
fi |
843 |
else |
844 |
if [ -z "$name" ]; then |
845 |
cp arch/%{target_arch}/defconfig-desktop .config |
846 |
else |
847 |
cp arch/%{target_arch}/defconfig-$name .config |
848 |
fi |
849 |
fi |
850 |
|
851 |
# make sure EXTRAVERSION says what we want it to say |
852 |
%if %extstable |
853 |
LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{extstable}-$extension/" Makefile |
854 |
%else |
855 |
LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -$extension/" Makefile |
856 |
%endif |
857 |
|
858 |
%smake oldconfig |
859 |
} |
860 |
|
861 |
BuildKernel() { |
862 |
KernelVer=$1 |
863 |
|
864 |
echo "Building kernel $KernelVer" |
865 |
|
866 |
%kmake -s all |
867 |
|
868 |
# Start installing stuff |
869 |
install -d %{temp_boot} |
870 |
install -m 644 System.map %{temp_boot}/System.map-$KernelVer |
871 |
install -m 644 .config %{temp_boot}/config-$KernelVer |
872 |
%if %{build_modxz} |
873 |
xz -c Module.symvers > %{temp_boot}/symvers-$KernelVer.xz |
874 |
%else |
875 |
cp Module.symvers %{temp_boot}/symvers-$KernelVer |
876 |
%endif |
877 |
|
878 |
|
879 |
%ifarch %{arm} |
880 |
cp -f arch/arm/boot/zImage %{temp_boot}/vmlinuz-$KernelVer |
881 |
install -d %{temp_root}/usr/lib/linux-$KernelVer/ |
882 |
for d in arch/arm/boot/dts/*.dtb; do \ |
883 |
install -D -m644 $d %{temp_root}/usr/lib/linux-$KernelVer/$(basename $d); \ |
884 |
done |
885 |
%else |
886 |
cp -f arch/%{target_arch}/boot/bzImage %{temp_boot}/vmlinuz-$KernelVer |
887 |
%endif |
888 |
|
889 |
# modules |
890 |
install -d %{temp_modules}/$KernelVer |
891 |
%smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=$KernelVer modules_install |
892 |
|
893 |
# remove /lib/firmware, we use a separate kernel-firmware |
894 |
rm -rf %{temp_root}/lib/firmware |
895 |
} |
896 |
|
897 |
SaveDevel() { |
898 |
devel_flavour=$1 |
899 |
|
900 |
DevelRoot=/usr/src/kernel-%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel} |
901 |
TempDevelRoot=%{temp_root}$DevelRoot |
902 |
|
903 |
mkdir -p $TempDevelRoot |
904 |
for i in $(find . -name 'Makefile*'); do cp -R --parents $i $TempDevelRoot;done |
905 |
for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*'); do cp -R --parents $i $TempDevelRoot;done |
906 |
cp -fR include $TempDevelRoot |
907 |
cp -fR scripts $TempDevelRoot |
908 |
cp -fR kernel/bounds.c $TempDevelRoot/kernel |
909 |
cp -fR tools/include $TempDevelRoot/tools/ |
910 |
%ifarch %{arm} |
911 |
cp -fR arch/%{target_arch}/tools $TempDevelRoot/arch/%{target_arch}/ |
912 |
%endif |
913 |
%ifarch %{ix86} x86_64 |
914 |
cp -fR arch/x86/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/x86/kernel/ |
915 |
cp -fR arch/x86/kernel/asm-offsets_{32,64}.c $TempDevelRoot/arch/x86/kernel/ |
916 |
cp -fR arch/x86/purgatory/* $TempDevelRoot/arch/x86/purgatory/ |
917 |
cp -fR arch/x86/entry/syscalls/syscall* $TempDevelRoot/arch/x86/entry/syscalls/ |
918 |
cp -fR arch/x86/include $TempDevelRoot/arch/x86/ |
919 |
cp -fR arch/x86/tools $TempDevelRoot/arch/x86/ |
920 |
%else |
921 |
cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/%{target_arch}/kernel/ |
922 |
for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f $TempDevelRoot; done |
923 |
%endif |
924 |
cp -fR .config Module.symvers $TempDevelRoot |
925 |
cp -fR 3rdparty/mkbuild.pl $TempDevelRoot/3rdparty |
926 |
|
927 |
# Needed for truecrypt build (Danny) |
928 |
cp -fR drivers/md/dm.h $TempDevelRoot/drivers/md/ |
929 |
|
930 |
# needed by include/generated/timeconst.h |
931 |
cp -fR kernel/time/timeconst.bc $TempDevelRoot/kernel/time/ |
932 |
|
933 |
# Needed for lguest |
934 |
cp -fR drivers/lguest/lg.h $TempDevelRoot/drivers/lguest/ |
935 |
|
936 |
# Needed for lirc_gpio (#39004) |
937 |
cp -fR drivers/media/pci/bt8xx/bttv{,p}.h $TempDevelRoot/drivers/media/pci/bt8xx/ |
938 |
cp -fR drivers/media/pci/bt8xx/bt848.h $TempDevelRoot/drivers/media/pci/bt8xx/ |
939 |
cp -fR drivers/media/common/btcx-risc.h $TempDevelRoot/drivers/media/common/ |
940 |
|
941 |
# Needed for external dvb tree (#41418) |
942 |
cp -fR drivers/media/dvb-core/*.h $TempDevelRoot/drivers/media/dvb-core/ |
943 |
cp -fR drivers/media/dvb-frontends/lgdt330x.h $TempDevelRoot/drivers/media/dvb-frontends/ |
944 |
|
945 |
# add acpica header files, needed for fglrx build |
946 |
cp -fR drivers/acpi/acpica/*.h $TempDevelRoot/drivers/acpi/acpica/ |
947 |
|
948 |
# aufs2 has a special file needed |
949 |
cp -fR fs/aufs/magic.mk $TempDevelRoot/fs/aufs |
950 |
|
951 |
for i in alpha arc avr32 blackfin c6x cris frv h8300 hexagon ia64 m32r m68k m68knommu metag microblaze \ |
952 |
mips mn10300 nios2 openrisc parisc powerpc s390 score sh sparc tile unicore32 xtensa; do |
953 |
rm -rf $TempDevelRoot/arch/$i |
954 |
rm -rf $TempDevelRoot/tools/arch/$i |
955 |
done |
956 |
|
957 |
%ifnarch %{arm} |
958 |
rm -rf $TempDevelRoot/arch/arm* |
959 |
rm -rf $TempDevelRoot/include/kvm/arm* |
960 |
rm -rf $TempDevelRoot/include/soc |
961 |
rm -rf $TempDevelRoot/tools/arch/arm* |
962 |
%endif |
963 |
%ifnarch %{ix86} x86_64 |
964 |
rm -rf $TempDevelRoot/arch/x86 |
965 |
rm -rf $TempDevelRoot/tools/arch/x86 |
966 |
# arch/x86/ras/Kconfig is included by drivers/ras/Kconfig |
967 |
# and kconfig's source command seems to be evaluated even under a false conditional |
968 |
mkdir -p $TempDevelRoot/arch/x86/ras |
969 |
cp -fR arch/x86/ras/{Kconfig,Makefile} $TempDevelRoot/arch/x86/ras |
970 |
%endif |
971 |
|
972 |
# Clean the scripts tree, and make sure everything is ok (sanity check) |
973 |
# running prepare+scripts (tree was already "prepared" in build) |
974 |
pushd $TempDevelRoot >/dev/null |
975 |
%smake -s prepare scripts |
976 |
%smake -s clean |
977 |
popd >/dev/null |
978 |
rm -f $TempDevelRoot/.config.old |
979 |
|
980 |
# fix permissions |
981 |
chmod -R a+rX $TempDevelRoot |
982 |
|
983 |
# disable mrproper in -devel rpms |
984 |
patch -p1 --fuzz=0 -d $TempDevelRoot -i %{SOURCE2} |
985 |
|
986 |
kernel_devel_files=../kernel_devel_files.$devel_flavour |
987 |
|
988 |
|
989 |
### Create the kernel_devel_files.* |
990 |
cat > $kernel_devel_files <<EOF |
991 |
%dir $DevelRoot |
992 |
%dir $DevelRoot/arch |
993 |
%dir $DevelRoot/include |
994 |
$DevelRoot/3rdparty |
995 |
$DevelRoot/Documentation |
996 |
%ifarch %{arm} |
997 |
$DevelRoot/arch/arm |
998 |
$DevelRoot/arch/arm64 |
999 |
%endif |
1000 |
$DevelRoot/arch/um |
1001 |
%ifarch %{ix86} x86_64 |
1002 |
$DevelRoot/arch/x86 |
1003 |
%else |
1004 |
$DevelRoot/arch/x86/ras |
1005 |
%endif |
1006 |
$DevelRoot/block |
1007 |
$DevelRoot/certs |
1008 |
$DevelRoot/crypto |
1009 |
$DevelRoot/drivers |
1010 |
$DevelRoot/firmware |
1011 |
$DevelRoot/fs |
1012 |
$DevelRoot/include/Kbuild |
1013 |
$DevelRoot/include/acpi |
1014 |
$DevelRoot/include/asm-generic |
1015 |
$DevelRoot/include/clocksource |
1016 |
$DevelRoot/include/config |
1017 |
$DevelRoot/include/crypto |
1018 |
$DevelRoot/include/drm |
1019 |
$DevelRoot/include/dt-bindings |
1020 |
$DevelRoot/include/generated |
1021 |
$DevelRoot/include/keys |
1022 |
$DevelRoot/include/kvm |
1023 |
$DevelRoot/include/linux |
1024 |
$DevelRoot/include/math-emu |
1025 |
$DevelRoot/include/media |
1026 |
$DevelRoot/include/memory |
1027 |
$DevelRoot/include/misc |
1028 |
$DevelRoot/include/net |
1029 |
$DevelRoot/include/pcmcia |
1030 |
$DevelRoot/include/ras |
1031 |
$DevelRoot/include/rdma |
1032 |
$DevelRoot/include/rxrpc |
1033 |
$DevelRoot/include/scsi |
1034 |
%ifarch %{arm} |
1035 |
$DevelRoot/include/soc |
1036 |
%endif |
1037 |
$DevelRoot/include/sound |
1038 |
$DevelRoot/include/target |
1039 |
$DevelRoot/include/trace |
1040 |
$DevelRoot/include/uapi |
1041 |
$DevelRoot/include/video |
1042 |
$DevelRoot/include/xen |
1043 |
$DevelRoot/init |
1044 |
$DevelRoot/ipc |
1045 |
$DevelRoot/kernel |
1046 |
$DevelRoot/lib |
1047 |
$DevelRoot/mm |
1048 |
$DevelRoot/net |
1049 |
$DevelRoot/samples |
1050 |
$DevelRoot/scripts |
1051 |
$DevelRoot/security |
1052 |
$DevelRoot/sound |
1053 |
$DevelRoot/tools |
1054 |
$DevelRoot/usr |
1055 |
$DevelRoot/virt |
1056 |
$DevelRoot/.config |
1057 |
$DevelRoot/Kbuild |
1058 |
$DevelRoot/Kconfig |
1059 |
$DevelRoot/Makefile |
1060 |
$DevelRoot/Module.symvers |
1061 |
$DevelRoot/arch/Kconfig |
1062 |
%doc README.kernel-%{ktag}-sources |
1063 |
EOF |
1064 |
|
1065 |
|
1066 |
### Create -devel Post script on the fly |
1067 |
cat > $kernel_devel_files-post <<EOF |
1068 |
if [ -d /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel} ]; then |
1069 |
rm -f /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}/{build,source} |
1070 |
ln -sf $DevelRoot /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}/build |
1071 |
ln -sf $DevelRoot /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}/source |
1072 |
fi |
1073 |
EOF |
1074 |
|
1075 |
|
1076 |
### Create -devel Preun script on the fly |
1077 |
cat > $kernel_devel_files-preun <<EOF |
1078 |
if [ -L /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}/build ]; then |
1079 |
rm -f /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}/build |
1080 |
fi |
1081 |
if [ -L /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}/source ]; then |
1082 |
rm -f /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}/source |
1083 |
fi |
1084 |
exit 0 |
1085 |
EOF |
1086 |
|
1087 |
### Create -devel Postun script on the fly |
1088 |
cat > $kernel_devel_files-postun <<EOF |
1089 |
rm -rf /usr/src/kernel-%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel} >/dev/null |
1090 |
EOF |
1091 |
} |
1092 |
|
1093 |
SaveDebug() { |
1094 |
debug_flavour=$1 |
1095 |
|
1096 |
install -m 644 vmlinux \ |
1097 |
%{temp_boot}/vmlinux-%{kversion}-%{ktag}-$debug_flavour-%{buildrpmrel} |
1098 |
kernel_debug_files=../kernel_debug_files.$debug_flavour |
1099 |
echo "%{_bootdir}/vmlinux-%{kversion}-%{ktag}-$debug_flavour-%{buildrpmrel}" \ |
1100 |
>> $kernel_debug_files |
1101 |
|
1102 |
find %{temp_modules}/%{kversion}-%{ktag}-$debug_flavour-%{buildrpmrel}/kernel \ |
1103 |
-name "*.ko" | \ |
1104 |
%kxargs -I '{}' objcopy --only-keep-debug '{}' '{}'.debug |
1105 |
find %{temp_modules}/%{kversion}-%{ktag}-$debug_flavour-%{buildrpmrel}/kernel \ |
1106 |
-name "*.ko" | %kxargs -I '{}' \ |
1107 |
sh -c 'cd `dirname {}`; \ |
1108 |
objcopy --add-gnu-debuglink=`basename {}`.debug \ |
1109 |
--strip-debug `basename {}`' |
1110 |
|
1111 |
pushd %{temp_modules} |
1112 |
find %{kversion}-%{ktag}-$debug_flavour-%{buildrpmrel}/kernel \ |
1113 |
-name "*.ko.debug" > debug_module_list |
1114 |
popd |
1115 |
cat %{temp_modules}/debug_module_list | \ |
1116 |
sed 's|\(.*\)|%{_modulesdir}/\1|' >> $kernel_debug_files |
1117 |
cat %{temp_modules}/debug_module_list | \ |
1118 |
sed 's|\(.*\)|%exclude %{_modulesdir}/\1|' \ |
1119 |
>> ../kernel_exclude_debug_files.$debug_flavour |
1120 |
rm -f %{temp_modules}/debug_module_list |
1121 |
} |
1122 |
|
1123 |
CreateFiles() { |
1124 |
kernel_flavour=$1 |
1125 |
|
1126 |
kernel_files=../kernel_files.$kernel_flavour |
1127 |
|
1128 |
ker="vmlinuz" |
1129 |
### Create the kernel_files.* |
1130 |
cat > $kernel_files <<EOF |
1131 |
%{_bootdir}/System.map-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} |
1132 |
%if %{build_modxz} |
1133 |
%{_bootdir}/symvers-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}.xz |
1134 |
%else |
1135 |
%{_bootdir}/symvers-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}* |
1136 |
%endif |
1137 |
%{_bootdir}/config-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} |
1138 |
%{_bootdir}/$ker-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} |
1139 |
%dir %{_modulesdir}/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/ |
1140 |
%{_modulesdir}/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/kernel |
1141 |
%{_modulesdir}/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/modules.* |
1142 |
%doc README.kernel-%{ktag}-sources |
1143 |
%ifarch %arm |
1144 |
%dir /usr/lib/linux-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} |
1145 |
/usr/lib/linux-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/*.dtb |
1146 |
%endif |
1147 |
EOF |
1148 |
|
1149 |
%if %build_debug |
1150 |
cat ../kernel_exclude_debug_files.$kernel_flavour >> $kernel_files |
1151 |
%endif |
1152 |
|
1153 |
### Create kernel Posttrans script |
1154 |
cat > $kernel_files-posttrans <<EOF |
1155 |
%if %build_devel |
1156 |
# create kernel-devel symlinks if matching -devel- rpm is installed |
1157 |
if [ -d /usr/src/kernel-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} ]; then |
1158 |
rm -f /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/{build,source} |
1159 |
ln -sf /usr/src/kernel-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/build |
1160 |
ln -sf /usr/src/kernel-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/source |
1161 |
fi |
1162 |
%endif |
1163 |
if [ -z "$DURING_INSTALL" ] ; then |
1164 |
if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/kernel-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} ]; then |
1165 |
/usr/sbin/dkms_autoinstaller start %{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} |
1166 |
fi |
1167 |
fi |
1168 |
%ifarch %{arm} |
1169 |
/sbin/installkernel -i -N %{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} |
1170 |
%else |
1171 |
/sbin/installkernel %{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} |
1172 |
pushd /boot > /dev/null |
1173 |
if [ -L vmlinuz-%{ktag}-$kernel_flavour ]; then |
1174 |
rm -f vmlinuz-%{ktag}-$kernel_flavour |
1175 |
fi |
1176 |
ln -sf vmlinuz-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} vmlinuz-%{ktag}-$kernel_flavour |
1177 |
if [ -L initrd-%{ktag}-$kernel_flavour.img ]; then |
1178 |
rm -f initrd-%{ktag}-$kernel_flavour.img |
1179 |
fi |
1180 |
ln -sf initrd-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}.img initrd-%{ktag}-$kernel_flavour.img |
1181 |
if [ -e initrd-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}.img ]; then |
1182 |
ln -sf vmlinuz-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} vmlinuz |
1183 |
ln -sf initrd-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}.img initrd.img |
1184 |
fi |
1185 |
popd > /dev/null |
1186 |
%endif |
1187 |
EOF |
1188 |
|
1189 |
### Create kernel Preun script on the fly |
1190 |
cat > $kernel_files-preun <<EOF |
1191 |
/sbin/installkernel -R %{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} |
1192 |
pushd /boot > /dev/null |
1193 |
if [ -L vmlinuz-%{ktag}-$kernel_flavour ]; then |
1194 |
if [ "$(readlink vmlinuz-%{ktag}-$kernel_flavour)" = "vmlinuz-%{kversion}-${ktag}-$kernel_flavour-%{buildrpmrel}" ]; then |
1195 |
rm -f vmlinuz-%{ktag}-$kernel_flavour |
1196 |
fi |
1197 |
fi |
1198 |
if [ -L initrd-%{ktag}-$kernel_flavour.img ]; then |
1199 |
if [ "$(readlink initrd-%{ktag}-$kernel_flavour.img)" = "initrd-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}.img" ]; then |
1200 |
rm -f initrd-%{ktag}-$kernel_flavour.img |
1201 |
fi |
1202 |
fi |
1203 |
popd > /dev/null |
1204 |
%if %build_devel |
1205 |
if [ -L /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/build ]; then |
1206 |
rm -f /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/build |
1207 |
fi |
1208 |
if [ -L /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/source ]; then |
1209 |
rm -f /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}/source |
1210 |
fi |
1211 |
%endif |
1212 |
exit 0 |
1213 |
EOF |
1214 |
|
1215 |
|
1216 |
### Create kernel Postun script on the fly |
1217 |
cat > $kernel_files-postun <<EOF |
1218 |
/sbin/kernel_remove_initrd %{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} |
1219 |
rm -rf /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel} >/dev/null |
1220 |
if [ -d /var/lib/dkms ]; then |
1221 |
rm -f /var/lib/dkms/*/kernel-%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null |
1222 |
rm -rf /var/lib/dkms/*/*/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel} >/dev/null |
1223 |
rm -f /var/lib/dkms-binary/*/kernel-%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}-%{_target_cpu} >/dev/null |
1224 |
rm -rf /var/lib/dkms-binary/*/*/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel} >/dev/null |
1225 |
fi |
1226 |
EOF |
1227 |
} |
1228 |
|
1229 |
|
1230 |
CreateKernel() { |
1231 |
flavour=$1 |
1232 |
|
1233 |
PrepareKernel $flavour %{ktag}-$flavour-%{buildrpmrel} |
1234 |
|
1235 |
BuildKernel %{kversion}-%{ktag}-$flavour-%{buildrpmrel} |
1236 |
%if %build_devel |
1237 |
SaveDevel $flavour |
1238 |
%endif |
1239 |
%if %build_debug |
1240 |
SaveDebug $flavour |
1241 |
%endif |
1242 |
CreateFiles $flavour |
1243 |
} |
1244 |
|
1245 |
|
1246 |
### |
1247 |
# DO it... |
1248 |
### |
1249 |
|
1250 |
|
1251 |
# Create a simulacro of buildroot |
1252 |
rm -rf %{temp_root} |
1253 |
install -d %{temp_root} |
1254 |
|
1255 |
|
1256 |
# make sure we are in the directory |
1257 |
cd %src_dir |
1258 |
|
1259 |
%ifarch %{ix86} |
1260 |
%if %build_desktop586 |
1261 |
CreateKernel desktop586 |
1262 |
%endif |
1263 |
%endif |
1264 |
|
1265 |
%if %build_desktop |
1266 |
CreateKernel desktop |
1267 |
%endif |
1268 |
|
1269 |
%if %build_server |
1270 |
CreateKernel server |
1271 |
%endif |
1272 |
|
1273 |
%ifarch armv5tl |
1274 |
%if %build_desktop_armv6v7 |
1275 |
CreateKernel desktop-armv6v7 |
1276 |
%endif |
1277 |
%endif |
1278 |
|
1279 |
%ifarch %{arm} |
1280 |
%if %build_iop32x |
1281 |
CreateKernel iop32x |
1282 |
%endif |
1283 |
%if %build_versatile |
1284 |
CreateKernel versatile |
1285 |
%endif |
1286 |
%endif |
1287 |
|
1288 |
# set extraversion to match srpm to get nice version reported by the tools |
1289 |
%if %extstable |
1290 |
LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{extstable}-%{rpmrel}/" Makefile |
1291 |
%else |
1292 |
LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile |
1293 |
%endif |
1294 |
# build perf |
1295 |
%if %{build_perf} |
1296 |
# perf |
1297 |
%smake -C tools/perf -s HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix} all |
1298 |
%smake -C tools/perf -s prefix=%{_prefix} man |
1299 |
%endif |
1300 |
|
1301 |
%if %{build_cpupower} |
1302 |
# cpupower |
1303 |
# make sure version-gen.sh is executable. |
1304 |
chmod +x tools/power/cpupower/utils/version-gen.sh |
1305 |
%make_build -C tools/power/cpupower CPUFREQ_BENCH=false |
1306 |
%endif |
1307 |
|
1308 |
# We don't make to repeat the depend code at the install phase |
1309 |
%if %build_source |
1310 |
PrepareKernel "" %{buildrpmrel}%{ktag}custom |
1311 |
%smake -s mrproper |
1312 |
%endif |
1313 |
|
1314 |
|
1315 |
### |
1316 |
### install |
1317 |
### |
1318 |
%install |
1319 |
install -m 644 %{SOURCE4} . |
1320 |
|
1321 |
cd %src_dir |
1322 |
|
1323 |
# Directories definition needed for installing |
1324 |
%define target_source %{buildroot}%{_kerneldir} |
1325 |
%define target_boot %{buildroot}%{_bootdir} |
1326 |
%define target_modules %{buildroot}%{_modulesdir} |
1327 |
|
1328 |
# We want to be able to test several times the install part |
1329 |
rm -rf %{buildroot} |
1330 |
cp -a %{temp_root} %{buildroot} |
1331 |
|
1332 |
# Create directories infastructure |
1333 |
%if %build_source |
1334 |
install -d %{target_source} |
1335 |
|
1336 |
tar cf - . | tar xf - -C %{target_source} |
1337 |
chmod -R a+rX %{target_source} |
1338 |
|
1339 |
# we remove all the source files that we don't ship |
1340 |
# first architecture files |
1341 |
for i in alpha arc avr32 blackfin c6x cris frv h8300 hexagon ia64 m32r m68k m68knommu metag microblaze \ |
1342 |
mips nios2 openrisc parisc powerpc s390 score sh sh64 sparc tile unicore32 v850 xtensa mn10300; do |
1343 |
rm -rf %{target_source}/arch/$i |
1344 |
rm -rf %{target_source}/tools/arch/$i |
1345 |
rm -rf %{target_source}/tools/testing/selftests/$i |
1346 |
done |
1347 |
%ifnarch %{arm} |
1348 |
rm -rf %{target_source}/include/kvm/arm* |
1349 |
rm -rf %{target_source}/tools/arch/arm* |
1350 |
%endif |
1351 |
|
1352 |
# other misc files |
1353 |
rm -f %{target_source}/{.config.old,.config.cmd,.lst,.mailmap,.get_maintainer.ignore} |
1354 |
rm -f %{target_source}/{.missing-syscalls.d,.cocciconfig,.gitattributes} |
1355 |
rm -rf %{target_source}/.tmp_depmod/ |
1356 |
|
1357 |
# more cleaning |
1358 |
pushd %{target_source} |
1359 |
# lots of gitignore files |
1360 |
find -iname ".gitignore" -delete |
1361 |
# clean tools tree |
1362 |
%smake -C tools clean |
1363 |
%smake -C tools/build clean |
1364 |
%smake -C tools/build/feature clean |
1365 |
popd |
1366 |
|
1367 |
#endif %build_source |
1368 |
%endif |
1369 |
|
1370 |
# compressing modules |
1371 |
%if %{build_modxz} |
1372 |
find %{target_modules} -name "*.ko" | %kxargs xz -6e |
1373 |
%else |
1374 |
find %{target_modules} -name "*.ko" | %kxargs gzip -9 |
1375 |
%endif |
1376 |
|
1377 |
# We used to have a copy of PrepareKernel here |
1378 |
# Now, we make sure that the thing in the linux dir is what we want it to be |
1379 |
for i in %{target_modules}/*; do |
1380 |
rm -f $i/build $i/source |
1381 |
done |
1382 |
|
1383 |
# sniff, if we compressed all the modules, we change the stamp :( |
1384 |
# we really need the depmod -ae here |
1385 |
pushd %{target_modules} |
1386 |
for i in *; do |
1387 |
/sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i |
1388 |
echo $? |
1389 |
done |
1390 |
|
1391 |
for i in *; do |
1392 |
pushd $i |
1393 |
echo "Creating modules.description for $i" |
1394 |
modules=`find . -name "*.ko.[g,x]z"` |
1395 |
echo $modules | %kxargs /sbin/modinfo \ |
1396 |
| perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description |
1397 |
popd |
1398 |
done |
1399 |
popd |
1400 |
|
1401 |
# need to set extraversion to match srpm again to avoid rebuild |
1402 |
%if %extstable |
1403 |
LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{extstable}-%{rpmrel}/" Makefile |
1404 |
%else |
1405 |
LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{rpmrel}/" Makefile |
1406 |
%endif |
1407 |
%if %{build_perf} |
1408 |
# perf tool binary and supporting scripts/binaries |
1409 |
make -C tools/perf V=1 DESTDIR=%{buildroot} HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix} install |
1410 |
|
1411 |
# perf man pages (note: implicit rpm magic compresses them later) |
1412 |
make -C tools/perf V=1 DESTDIR=%{buildroot} HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix} install-man |
1413 |
%endif |
1414 |
|
1415 |
%if %{build_cpupower} |
1416 |
make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install |
1417 |
rm -f %{buildroot}%{_libdir}/*.{a,la} |
1418 |
%find_lang cpupower |
1419 |
mv cpupower.lang ../ |
1420 |
chmod 0755 %{buildroot}%{_libdir}/libcpupower.so* |
1421 |
mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig |
1422 |
install -m644 %{SOURCE50} %{buildroot}%{_unitdir}/cpupower.service |
1423 |
install -m644 %{SOURCE51} %{buildroot}%{_sysconfdir}/sysconfig/cpupower |
1424 |
%endif |
1425 |
|
1426 |
### |
1427 |
### clean |
1428 |
### |
1429 |
%clean |
1430 |
rm -rf %{buildroot} |
1431 |
|
1432 |
|
1433 |
# We don't want to remove this, the whole reason of its existence is to be |
1434 |
# able to do several rpm --short-circuit -bi for testing install |
1435 |
# phase without repeating compilation phase |
1436 |
#rm -rf %{temp_root} |
1437 |
|
1438 |
### |
1439 |
### source and doc file lists |
1440 |
### |
1441 |
|
1442 |
%if %build_source |
1443 |
%files -n %{kname}-source-%{buildrel} |
1444 |
%dir %{_kerneldir} |
1445 |
%dir %{_kerneldir}/arch |
1446 |
%dir %{_kerneldir}/include |
1447 |
%{_kerneldir}/3rdparty |
1448 |
%{_kerneldir}/Documentation |
1449 |
%{_kerneldir}/arch/Kconfig |
1450 |
%{_kerneldir}/arch/arm |
1451 |
%{_kerneldir}/arch/arm64 |
1452 |
%{_kerneldir}/arch/um |
1453 |
%{_kerneldir}/arch/x86 |
1454 |
%{_kerneldir}/block |
1455 |
%{_kerneldir}/certs |
1456 |
%{_kerneldir}/crypto |
1457 |
%{_kerneldir}/drivers |
1458 |
%{_kerneldir}/firmware |
1459 |
%{_kerneldir}/fs |
1460 |
%{_kerneldir}/include/Kbuild |
1461 |
%{_kerneldir}/include/acpi |
1462 |
%{_kerneldir}/include/asm-generic |
1463 |
%{_kerneldir}/include/clocksource |
1464 |
%{_kerneldir}/include/crypto |
1465 |
%{_kerneldir}/include/drm |
1466 |
%{_kerneldir}/include/dt-bindings |
1467 |
%{_kerneldir}/include/keys |
1468 |
%{_kerneldir}/include/kvm |
1469 |
%{_kerneldir}/include/linux |
1470 |
%{_kerneldir}/include/math-emu |
1471 |
%{_kerneldir}/include/media |
1472 |
%{_kerneldir}/include/memory |
1473 |
%{_kerneldir}/include/misc |
1474 |
%{_kerneldir}/include/net |
1475 |
%{_kerneldir}/include/pcmcia |
1476 |
%{_kerneldir}/include/ras |
1477 |
%{_kerneldir}/include/rdma |
1478 |
%{_kerneldir}/include/rxrpc |
1479 |
%{_kerneldir}/include/scsi |
1480 |
%{_kerneldir}/include/soc |
1481 |
%{_kerneldir}/include/sound |
1482 |
%{_kerneldir}/include/target |
1483 |
%{_kerneldir}/include/trace |
1484 |
%{_kerneldir}/include/uapi |
1485 |
%{_kerneldir}/include/video |
1486 |
%{_kerneldir}/include/xen |
1487 |
%{_kerneldir}/init |
1488 |
%{_kerneldir}/ipc |
1489 |
%{_kerneldir}/kernel |
1490 |
%{_kerneldir}/lib |
1491 |
%{_kerneldir}/mm |
1492 |
%{_kerneldir}/net |
1493 |
%{_kerneldir}/virt |
1494 |
%{_kerneldir}/samples |
1495 |
%{_kerneldir}/scripts |
1496 |
%{_kerneldir}/security |
1497 |
%{_kerneldir}/sound |
1498 |
%{_kerneldir}/tools |
1499 |
%{_kerneldir}/usr |
1500 |
%{_kerneldir}/COPYING |
1501 |
%{_kerneldir}/CREDITS |
1502 |
%{_kerneldir}/Kbuild |
1503 |
%{_kerneldir}/Kconfig |
1504 |
%{_kerneldir}/MAINTAINERS |
1505 |
%{_kerneldir}/Makefile |
1506 |
%{_kerneldir}/README |
1507 |
%{_kerneldir}/REPORTING-BUGS |
1508 |
%doc README.kernel-%{ktag}-sources |
1509 |
|
1510 |
%files -n %{kname}-source-latest |
1511 |
%endif |
1512 |
|
1513 |
%if %build_doc |
1514 |
%files -n %{kname}-doc |
1515 |
%doc linux-%{tar_ver}/Documentation/* |
1516 |
%endif |
1517 |
|
1518 |
%if %{build_perf} |
1519 |
%files -n perf |
1520 |
%{_bindir}/perf |
1521 |
%ifarch x86_64 |
1522 |
%{_bindir}/perf-read-vdso32 |
1523 |
%endif |
1524 |
%{_bindir}/trace |
1525 |
%{_libdir}/libperf-gtk.so |
1526 |
%{_datadir}/perf-core/strace/groups/file |
1527 |
%{_datadir}/doc/perf-tip/tips.txt |
1528 |
%dir %{_libdir}/traceevent |
1529 |
%dir %{_libdir}/traceevent/plugins |
1530 |
%{_libdir}/traceevent/plugins/plugin_* |
1531 |
%dir %{_prefix}/libexec/perf-core |
1532 |
%{_prefix}/libexec/perf-core/* |
1533 |
%{_mandir}/man[1-8]/perf* |
1534 |
%{_sysconfdir}/bash_completion.d/perf |
1535 |
%endif |
1536 |
|
1537 |
%if %{build_cpupower} |
1538 |
%files -n cpupower -f cpupower.lang |
1539 |
%{_bindir}/cpupower |
1540 |
%{_libdir}/libcpupower.so.0 |
1541 |
%{_libdir}/libcpupower.so.0.0.1 |
1542 |
%{_unitdir}/cpupower.service |
1543 |
%{_mandir}/man[1-8]/cpupower* |
1544 |
%config(noreplace) %{_sysconfdir}/sysconfig/cpupower |
1545 |
|
1546 |
%files -n cpupower-devel |
1547 |
%{_libdir}/libcpupower.so |
1548 |
%{_includedir}/cpuidle.h |
1549 |
%{_includedir}/cpufreq.h |
1550 |
%endif |
1551 |
|