1 |
tmb |
1214 |
# -*- 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 |
|
|
# Mageia kernels use kernel.org versioning |
9 |
|
|
# |
10 |
|
|
%define kernelversion 2 |
11 |
|
|
%define patchlevel 6 |
12 |
tmb |
74958 |
%define sublevel 38 |
13 |
tmb |
1214 |
|
14 |
|
|
# Package release |
15 |
tmb |
79845 |
%define mgarel 2 |
16 |
tmb |
1214 |
|
17 |
|
|
# kernel Makefile extraversion is substituted by |
18 |
|
|
# kpatch/kgit/kstable wich are either 0 (empty), rc (kpatch), git (kgit) |
19 |
|
|
# or stable release (kstable) |
20 |
|
|
%define kpatch 0 |
21 |
tmb |
78345 |
%define kstable 2 |
22 |
tmb |
1214 |
# kernel.org -gitX patch (only the number after "git") |
23 |
|
|
%define kgit 0 |
24 |
|
|
|
25 |
|
|
# Used when building update candidates |
26 |
|
|
#define uclevel uc1 |
27 |
|
|
%define devel_notice %{?uclevel:NOTE: This is work-in-progress (WIP) development kernel.} |
28 |
|
|
|
29 |
|
|
# kernel base name (also name of srpm) |
30 |
|
|
%define kname kernel |
31 |
|
|
|
32 |
|
|
# Patch tarball tag |
33 |
tmb |
79847 |
%define ktag mga |
34 |
tmb |
1214 |
|
35 |
|
|
%define rpmtag %distsuffix |
36 |
|
|
%if %kpatch |
37 |
|
|
%if %kgit |
38 |
|
|
%define rpmrel %mkrel 0.%{kpatch}.%{kgit}.%{mgarel}%{?uclevel:.%{uclevel}} |
39 |
|
|
%else |
40 |
|
|
%define rpmrel %mkrel 0.%{kpatch}.%{mgarel}%{?uclevel:.%{uclevel}} |
41 |
|
|
%endif |
42 |
|
|
%else |
43 |
|
|
%define rpmrel %mkrel %{mgarel}%{?uclevel:.%{uclevel}} |
44 |
|
|
%endif |
45 |
|
|
%define fakerel %mkrel 1 |
46 |
|
|
|
47 |
|
|
# fakerel above and fakever below never change, they are used to fool |
48 |
|
|
# rpm/urpmi/smart |
49 |
|
|
%define fakever 1 |
50 |
|
|
|
51 |
|
|
# When we are using a pre/rc patch, the tarball is a sublevel -1 |
52 |
|
|
%if %kpatch |
53 |
|
|
%if %kstable |
54 |
|
|
%define tar_ver %{kernelversion}.%{patchlevel}.%{sublevel} |
55 |
|
|
%else |
56 |
|
|
%define tar_ver %{kernelversion}.%{patchlevel}.%(expr %{sublevel} - 1) |
57 |
|
|
%endif |
58 |
|
|
%define patch_ver %{kversion}-%{kpatch}-%{ktag}%{mgarel} |
59 |
|
|
%else |
60 |
|
|
%define tar_ver %{kernelversion}.%{patchlevel}.%{sublevel} |
61 |
|
|
%define patch_ver %{kversion}-%{ktag}%{mgarel} |
62 |
|
|
%endif |
63 |
|
|
%if %kstable |
64 |
|
|
%define kversion %{kernelversion}.%{patchlevel}.%{sublevel}.%{kstable} |
65 |
|
|
%else |
66 |
|
|
%define kversion %{kernelversion}.%{patchlevel}.%{sublevel} |
67 |
|
|
%endif |
68 |
|
|
%define kverrel %{kversion}-%{rpmrel} |
69 |
|
|
|
70 |
|
|
# Used for not making too long names for rpms or search paths |
71 |
|
|
%if %kpatch |
72 |
|
|
%if %kgit |
73 |
|
|
%define buildrpmrel 0.%{kpatch}.%{kgit}.%{mgarel}%{?uclevel:.%{uclevel}}%{rpmtag} |
74 |
|
|
%else |
75 |
|
|
%define buildrpmrel 0.%{kpatch}.%{mgarel}%{?uclevel:.%{uclevel}}%{rpmtag} |
76 |
|
|
%endif |
77 |
|
|
%else |
78 |
|
|
%define buildrpmrel %{mgarel}%{?uclevel:.%{uclevel}}%{rpmtag} |
79 |
|
|
%endif |
80 |
|
|
%define buildrel %{kversion}-%{buildrpmrel} |
81 |
|
|
|
82 |
|
|
# Having different top level names for packges means that you have to remove |
83 |
|
|
# them by hard :( |
84 |
|
|
%define top_dir_name %{kname}-%{_arch} |
85 |
|
|
|
86 |
|
|
%define build_dir ${RPM_BUILD_DIR}/%{top_dir_name} |
87 |
|
|
%define src_dir %{build_dir}/linux-%{tar_ver} |
88 |
|
|
|
89 |
|
|
# Disable useless debug rpms... |
90 |
|
|
%define _enable_debug_packages %{nil} |
91 |
|
|
%define debug_package %{nil} |
92 |
|
|
|
93 |
|
|
# Build defines |
94 |
|
|
%define build_doc 1 |
95 |
|
|
%define build_source 1 |
96 |
|
|
%define build_devel 1 |
97 |
|
|
|
98 |
|
|
%define build_debug 1 |
99 |
|
|
|
100 |
|
|
# Build desktop i586 / 4GB |
101 |
|
|
%ifarch %{ix86} |
102 |
|
|
%define build_desktop586 1 |
103 |
|
|
%endif |
104 |
|
|
|
105 |
|
|
# Build desktop (i686 / 4GB) / x86_64 / sparc64 sets |
106 |
|
|
%define build_desktop 1 |
107 |
|
|
|
108 |
tmb |
77904 |
# Build netbook (i586 / 4GB) / x86_64 |
109 |
|
|
%define build_netbook 1 |
110 |
|
|
|
111 |
tmb |
1214 |
# Build server (i686 / 64GB)/x86_64 / sparc64 sets |
112 |
|
|
%define build_server 1 |
113 |
|
|
|
114 |
|
|
# End of user definitions |
115 |
|
|
%{?_without_desktop586: %global build_desktop586 0} |
116 |
|
|
%{?_without_desktop: %global build_desktop 0} |
117 |
tmb |
77904 |
%{?_without_netbook: %global build_netbook 0} |
118 |
tmb |
1214 |
%{?_without_server: %global build_server 0} |
119 |
|
|
%{?_without_doc: %global build_doc 0} |
120 |
|
|
%{?_without_source: %global build_source 0} |
121 |
|
|
%{?_without_devel: %global build_devel 0} |
122 |
|
|
%{?_without_debug: %global build_debug 0} |
123 |
|
|
|
124 |
|
|
%{?_with_desktop586: %global build_desktop586 1} |
125 |
|
|
%{?_with_desktop: %global build_desktop 1} |
126 |
tmb |
77904 |
%{?_with_netbook: %global build_netbook 1} |
127 |
tmb |
1214 |
%{?_with_server: %global build_server 1} |
128 |
|
|
%{?_with_doc: %global build_doc 1} |
129 |
|
|
%{?_with_source: %global build_source 1} |
130 |
|
|
%{?_with_devel: %global build_devel 1} |
131 |
|
|
%{?_with_debug: %global build_debug 1} |
132 |
|
|
|
133 |
|
|
# For the .nosrc.rpm |
134 |
|
|
%define build_nosrc 0 |
135 |
|
|
%{?_with_nosrc: %global build_nosrc 1} |
136 |
|
|
|
137 |
|
|
%if %(if [ -z "$CC" ] ; then echo 0; else echo 1; fi) |
138 |
|
|
%define kmake %make CC="$CC" |
139 |
|
|
%else |
140 |
|
|
%define kmake %make |
141 |
|
|
%endif |
142 |
|
|
# there are places where parallel make don't work |
143 |
|
|
%define smake make |
144 |
|
|
|
145 |
|
|
# Parallelize xargs invocations on smp machines |
146 |
|
|
%define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\ |
147 |
|
|
&& RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\ |
148 |
|
|
[ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS") |
149 |
|
|
|
150 |
|
|
# Sparc arch wants sparc64 kernels |
151 |
|
|
%define target_arch %(echo %{_arch} | sed -e "s/sparc/sparc64/") |
152 |
|
|
|
153 |
|
|
|
154 |
|
|
# |
155 |
|
|
# SRC RPM description |
156 |
|
|
# |
157 |
|
|
Summary: Linux kernel built for Mageia |
158 |
|
|
Name: %{kname} |
159 |
|
|
Version: %{kversion} |
160 |
|
|
Release: %{rpmrel} |
161 |
|
|
License: GPLv2 |
162 |
|
|
Group: System/Kernel and hardware |
163 |
tmb |
7510 |
ExclusiveArch: %{ix86} x86_64 |
164 |
tmb |
1214 |
ExclusiveOS: Linux |
165 |
|
|
URL: http://www.kernel.org |
166 |
|
|
|
167 |
|
|
#################################################################### |
168 |
|
|
# |
169 |
|
|
# Sources |
170 |
|
|
# |
171 |
|
|
### This is for full SRC RPM |
172 |
|
|
Source0: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.bz2 |
173 |
|
|
Source1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.bz2.sign |
174 |
|
|
### This is for stripped SRC RPM |
175 |
|
|
%if %build_nosrc |
176 |
|
|
NoSource: 0 |
177 |
|
|
%endif |
178 |
|
|
# This is for disabling *config, mrproper, prepare, scripts on -devel rpms |
179 |
|
|
Source2: disable-mrproper-prepare-scripts-configs-in-devel-rpms.patch |
180 |
|
|
|
181 |
|
|
Source4: README.kernel-sources |
182 |
|
|
|
183 |
|
|
Source100: linux-%{patch_ver}.tar.bz2 |
184 |
|
|
|
185 |
|
|
#################################################################### |
186 |
|
|
# |
187 |
|
|
# Patches |
188 |
|
|
|
189 |
|
|
# |
190 |
|
|
# Patch0 to Patch100 are for core kernel upgrades. |
191 |
|
|
# |
192 |
|
|
|
193 |
|
|
# Pre linus patch: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing |
194 |
|
|
|
195 |
|
|
%if %kpatch |
196 |
|
|
%if %kstable |
197 |
|
|
Patch2: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/stable-review/patch-%{kversion}-%{kpatch}.bz2 |
198 |
|
|
Source11: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/stable-review/patch-%{kversion}-%{kpatch}.bz2.sign |
199 |
|
|
%else |
200 |
|
|
Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing/patch-%{kversion}-%{kpatch}.bz2 |
201 |
|
|
Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing/patch-%{kversion}-%{kpatch}.bz2.sign |
202 |
|
|
%endif |
203 |
|
|
%endif |
204 |
|
|
%if %kgit |
205 |
|
|
Patch2: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/snapshots/patch-%{kernelversion}.%{patchlevel}.%{sublevel}-%{kpatch}-git%{kgit}.bz2 |
206 |
|
|
Source11: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/snapshots/patch-%{kernelversion}.%{patchlevel}.%{sublevel}-%{kpatch}-git%{kgit}.bz2.sign |
207 |
|
|
%endif |
208 |
|
|
%if %kstable |
209 |
|
|
%if %kpatch |
210 |
|
|
%define prev_stable %(expr %{kstable} - 1) |
211 |
|
|
%if %prev_stable |
212 |
|
|
Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kernelversion}.%{patchlevel}.%{sublevel}.%{prev_stable}.bz2 |
213 |
|
|
Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kernelversion}.%{patchlevel}.%{sublevel}.%{prev_stable}.bz2.sign |
214 |
|
|
%endif |
215 |
|
|
%else |
216 |
|
|
Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kversion}.bz2 |
217 |
|
|
Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kversion}.bz2.sign |
218 |
|
|
%endif |
219 |
|
|
%endif |
220 |
|
|
|
221 |
|
|
#END |
222 |
|
|
#################################################################### |
223 |
|
|
|
224 |
|
|
# Defines for the things that are needed for all the kernels |
225 |
|
|
# |
226 |
|
|
%define common_description_kernel The kernel package contains the Linux kernel (vmlinuz), the core of your \ |
227 |
|
|
Mageia operating system. The kernel handles the basic functions \ |
228 |
|
|
of the operating system: memory allocation, process allocation, device \ |
229 |
|
|
input and output, etc. |
230 |
|
|
|
231 |
|
|
%{devel_notice} |
232 |
|
|
|
233 |
|
|
### Global Requires/Provides |
234 |
|
|
%define requires1 bootloader-utils >= 1.13-1 |
235 |
|
|
%define requires2 mkinitrd >= 4.2.17-31 |
236 |
|
|
%define requires3 module-init-tools >= 3.0-7 |
237 |
|
|
%define requires4 sysfsutils >= 1.3.0-1 |
238 |
tmb |
38796 |
%define requires5 kernel-firmware >= 20101024-2 |
239 |
tmb |
1214 |
|
240 |
|
|
%define kprovides %{kname} = %{kverrel}, kernel = %{tar_ver}, alsa = 1.0.23, drbd-api = 88 |
241 |
|
|
|
242 |
|
|
%define kconflicts drakxtools-backend < 10.4.190-2 |
243 |
|
|
|
244 |
|
|
%define kobsoletes dkms-iwlwifi < 1.2.26 |
245 |
|
|
|
246 |
|
|
BuildRoot: %{_tmppath}/%{kname}-%{kversion}-%{_arch}-build |
247 |
|
|
Autoreqprov: no |
248 |
|
|
BuildRequires: gcc module-init-tools |
249 |
|
|
|
250 |
|
|
%description |
251 |
|
|
%common_description_kernel |
252 |
|
|
|
253 |
|
|
%common_description_info |
254 |
|
|
|
255 |
|
|
# mkflavour() name flavour processor |
256 |
|
|
# name: the flavour name in the package name |
257 |
|
|
# flavour: first parameter of CreateKernel() |
258 |
|
|
%define mkflavour() \ |
259 |
|
|
%package -n %{kname}-%{1}-%{buildrel} \ |
260 |
|
|
Version: %{fakever} \ |
261 |
|
|
Release: %{fakerel} \ |
262 |
|
|
Provides: %kprovides \ |
263 |
|
|
Requires(pre): %requires1 %requires2 %requires3 %requires4 \ |
264 |
|
|
Requires: %requires5 \ |
265 |
|
|
Provides: should-restart = system \ |
266 |
|
|
Suggests: crda \ |
267 |
|
|
Obsoletes: %kobsoletes \ |
268 |
|
|
Conflicts: %kconflicts \ |
269 |
|
|
%ifarch %{ix86} \ |
270 |
|
|
Conflicts: arch(x86_64) \ |
271 |
|
|
%endif \ |
272 |
|
|
Summary: %{expand:%{summary_%(echo %{1})}} \ |
273 |
|
|
Group: System/Kernel and hardware \ |
274 |
|
|
%description -n %{kname}-%{1}-%{buildrel} \ |
275 |
|
|
%common_description_kernel %{expand:%{info_%(echo %{1})}} \ |
276 |
|
|
\ |
277 |
|
|
%common_description_info \ |
278 |
|
|
\ |
279 |
|
|
%if %build_devel \ |
280 |
|
|
%package -n %{kname}-%{1}-devel-%{buildrel} \ |
281 |
|
|
Version: %{fakever} \ |
282 |
|
|
Release: %{fakerel} \ |
283 |
|
|
Requires: glibc-devel ncurses-devel make gcc perl \ |
284 |
|
|
Summary: The kernel-devel files for %{kname}-%{1}-%{buildrel} \ |
285 |
|
|
Group: Development/Kernel \ |
286 |
|
|
Provides: kernel-devel = %{kverrel} \ |
287 |
|
|
%ifarch %{ix86} \ |
288 |
|
|
Conflicts: arch(x86_64) \ |
289 |
|
|
%endif \ |
290 |
|
|
%description -n %{kname}-%{1}-devel-%{buildrel} \ |
291 |
|
|
This package contains the kernel files (headers and build tools) \ |
292 |
|
|
that should be enough to build additional drivers for \ |
293 |
|
|
use with %{kname}-%{1}-%{buildrel}. \ |
294 |
|
|
\ |
295 |
|
|
If you want to build your own kernel, you need to install the full \ |
296 |
|
|
%{kname}-source-%{buildrel} rpm. \ |
297 |
|
|
\ |
298 |
|
|
%common_description_info \ |
299 |
|
|
%endif \ |
300 |
|
|
\ |
301 |
|
|
%if %build_debug \ |
302 |
|
|
%package -n %{kname}-%{1}-debug-%{buildrel} \ |
303 |
|
|
Version: %{fakever} \ |
304 |
|
|
Release: %{fakerel} \ |
305 |
|
|
Summary: Files with debug info for %{kname}-%{1}-%{buildrel} \ |
306 |
|
|
Group: Development/Debug \ |
307 |
|
|
Provides: kernel-debug = %{kverrel} \ |
308 |
|
|
%ifarch %{ix86} \ |
309 |
|
|
Conflicts: arch(x86_64) \ |
310 |
|
|
%endif \ |
311 |
|
|
%description -n %{kname}-%{1}-debug-%{buildrel} \ |
312 |
|
|
This package contains the files with debug info to aid in debug tasks \ |
313 |
|
|
when using %{kname}-%{1}-%{buildrel}. \ |
314 |
|
|
\ |
315 |
|
|
If you need to look at debug information or use some application that \ |
316 |
|
|
needs debugging info from the kernel, this package may help. \ |
317 |
|
|
\ |
318 |
|
|
%common_description_info \ |
319 |
|
|
%endif \ |
320 |
|
|
\ |
321 |
|
|
%package -n %{kname}-%{1}-latest \ |
322 |
|
|
Version: %{kversion} \ |
323 |
|
|
Release: %{rpmrel} \ |
324 |
|
|
Summary: Virtual rpm for latest %{kname}-%{1} \ |
325 |
|
|
Group: System/Kernel and hardware \ |
326 |
|
|
Requires: %{kname}-%{1}-%{buildrel} \ |
327 |
|
|
%ifarch %{ix86} \ |
328 |
|
|
Conflicts: arch(x86_64) \ |
329 |
|
|
%endif \ |
330 |
|
|
%description -n %{kname}-%{1}-latest \ |
331 |
|
|
This package is a virtual rpm that aims to make sure you always have the \ |
332 |
|
|
latest %{kname}-%{1} installed... \ |
333 |
|
|
\ |
334 |
|
|
%common_description_info \ |
335 |
|
|
\ |
336 |
|
|
%if %build_devel \ |
337 |
|
|
%package -n %{kname}-%{1}-devel-latest \ |
338 |
|
|
Version: %{kversion} \ |
339 |
|
|
Release: %{rpmrel} \ |
340 |
|
|
Summary: Virtual rpm for latest %{kname}-%{1}-devel \ |
341 |
|
|
Group: Development/Kernel \ |
342 |
|
|
Requires: %{kname}-%{1}-devel-%{buildrel} \ |
343 |
|
|
%ifarch %{ix86} \ |
344 |
|
|
Conflicts: arch(x86_64) \ |
345 |
|
|
%endif \ |
346 |
|
|
Provides: %{kname}-devel-latest \ |
347 |
|
|
%description -n %{kname}-%{1}-devel-latest \ |
348 |
|
|
This package is a virtual rpm that aims to make sure you always have the \ |
349 |
|
|
latest %{kname}-%{1}-devel installed... \ |
350 |
|
|
\ |
351 |
|
|
%common_description_info \ |
352 |
|
|
%endif \ |
353 |
|
|
\ |
354 |
|
|
%if %build_debug \ |
355 |
|
|
%package -n %{kname}-%{1}-debug-latest \ |
356 |
|
|
Version: %{kversion} \ |
357 |
|
|
Release: %{rpmrel} \ |
358 |
|
|
Summary: Virtual rpm for latest %{kname}-%{1}-debug \ |
359 |
|
|
Group: Development/Debug \ |
360 |
|
|
Requires: %{kname}-%{1}-debug-%{buildrel} \ |
361 |
|
|
%ifarch %{ix86} \ |
362 |
|
|
Conflicts: arch(x86_64) \ |
363 |
|
|
%endif \ |
364 |
|
|
Provides: %{kname}-debug-latest \ |
365 |
|
|
%description -n %{kname}-%{1}-debug-latest \ |
366 |
|
|
This package is a virtual rpm that aims to make sure you always have the \ |
367 |
|
|
latest %{kname}-%{1}-debug installed... \ |
368 |
|
|
\ |
369 |
|
|
%common_description_info \ |
370 |
|
|
%endif \ |
371 |
|
|
\ |
372 |
|
|
%post -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-post \ |
373 |
|
|
%preun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-preun \ |
374 |
|
|
%postun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-postun \ |
375 |
|
|
\ |
376 |
|
|
%if %build_devel \ |
377 |
|
|
%post -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-post \ |
378 |
|
|
%preun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-preun \ |
379 |
|
|
%endif \ |
380 |
|
|
\ |
381 |
|
|
%files -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1} \ |
382 |
|
|
%files -n %{kname}-%{1}-latest \ |
383 |
|
|
%defattr(-,root,root) \ |
384 |
|
|
\ |
385 |
|
|
%if %build_devel \ |
386 |
|
|
%files -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1} \ |
387 |
|
|
%files -n %{kname}-%{1}-devel-latest \ |
388 |
|
|
%defattr(-,root,root) \ |
389 |
|
|
%endif \ |
390 |
|
|
\ |
391 |
|
|
%if %build_debug \ |
392 |
|
|
%files -n %{kname}-%{1}-debug-%{buildrel} -f kernel_debug_files.%{1} \ |
393 |
|
|
%files -n %{kname}-%{1}-debug-latest \ |
394 |
|
|
%defattr(-,root,root) \ |
395 |
|
|
%endif |
396 |
|
|
|
397 |
|
|
%ifarch %{ix86} |
398 |
|
|
# |
399 |
|
|
# kernel-desktop586: i586, smp-alternatives, 4GB |
400 |
|
|
# |
401 |
|
|
%if %build_desktop586 |
402 |
|
|
%define summary_desktop586 Linux kernel for desktop use with i586 & 4GB RAM |
403 |
|
|
%define info_desktop586 This kernel is compiled for desktop use, single or \ |
404 |
|
|
multiple i586 processor(s)/core(s) and less than 4GB RAM, using voluntary \ |
405 |
|
|
preempt, CFS cpu scheduler and cfq i/o scheduler. \ |
406 |
|
|
This kernel relies on in-kernel smp alternatives to switch between up & smp \ |
407 |
|
|
mode depending on detected hardware. To force the kernel to boot in single \ |
408 |
|
|
processor mode, use the "nosmp" boot parameter. |
409 |
|
|
%mkflavour desktop586 |
410 |
|
|
%endif |
411 |
|
|
%endif |
412 |
|
|
|
413 |
|
|
# |
414 |
|
|
# kernel-desktop: i686, smp-alternatives, 4 GB / x86_64 |
415 |
|
|
# |
416 |
|
|
|
417 |
|
|
%if %build_desktop |
418 |
|
|
%ifarch %{ix86} |
419 |
|
|
%define summary_desktop Linux Kernel for desktop use with i686 & 4GB RAM |
420 |
|
|
%define info_desktop This kernel is compiled for desktop use, single or \ |
421 |
|
|
multiple i686 processor(s)/core(s) and less than 4GB RAM, using HZ_1000, \ |
422 |
|
|
voluntary preempt, CFS cpu scheduler and cfq i/o scheduler. \ |
423 |
|
|
This kernel relies on in-kernel smp alternatives to switch between up & smp \ |
424 |
|
|
mode depending on detected hardware. To force the kernel to boot in single \ |
425 |
|
|
processor mode, use the "nosmp" boot parameter. |
426 |
|
|
%else |
427 |
|
|
%define summary_desktop Linux Kernel for desktop use with %{_arch} |
428 |
|
|
%define info_desktop This kernel is compiled for desktop use, single or \ |
429 |
|
|
multiple %{_arch} processor(s)/core(s), using HZ_1000, voluntary preempt, \ |
430 |
|
|
CFS cpu scheduler and cfq i/o scheduler. \ |
431 |
|
|
This kernel relies on in-kernel smp alternatives to switch between up & smp \ |
432 |
|
|
mode depending on detected hardware. To force the kernel to boot in single \ |
433 |
|
|
processor mode, use the "nosmp" boot parameter. |
434 |
|
|
%endif |
435 |
|
|
%mkflavour desktop |
436 |
|
|
%endif |
437 |
|
|
|
438 |
|
|
# |
439 |
tmb |
77904 |
# kernel-desktop: i686, smp-alternatives, 4 GB / x86_64 |
440 |
|
|
# |
441 |
|
|
|
442 |
|
|
%if %build_netbook |
443 |
|
|
%ifarch %{ix86} |
444 |
|
|
%define summary_netbook Linux Kernel for desktop use with i686 & 4GB RAM |
445 |
|
|
%define info_netbook This kernel is compiled for netbook use, single or \ |
446 |
|
|
multiple i686 processor(s)/core(s) and less than 4GB RAM, using HZ_1000, \ |
447 |
|
|
voluntary preempt, CFS cpu scheduler and cfq i/o scheduler. \ |
448 |
|
|
This kernel relies on in-kernel smp alternatives to switch between up & smp \ |
449 |
|
|
mode depending on detected hardware. To force the kernel to boot in single \ |
450 |
|
|
processor mode, use the "nosmp" boot parameter. |
451 |
|
|
%else |
452 |
|
|
%define summary_netbook Linux Kernel for desktop use with %{_arch} |
453 |
|
|
%define info_netbook This kernel is compiled for netbook use, single or \ |
454 |
|
|
multiple %{_arch} processor(s)/core(s), using HZ_1000, voluntary preempt, \ |
455 |
|
|
CFS cpu scheduler and cfq i/o scheduler. \ |
456 |
|
|
This kernel relies on in-kernel smp alternatives to switch between up & smp \ |
457 |
|
|
mode depending on detected hardware. To force the kernel to boot in single \ |
458 |
|
|
processor mode, use the "nosmp" boot parameter. |
459 |
|
|
%endif |
460 |
|
|
%mkflavour netbook |
461 |
|
|
%endif |
462 |
|
|
|
463 |
|
|
# |
464 |
tmb |
1214 |
# kernel-server: i686, smp-alternatives, 64 GB / x86_64 |
465 |
|
|
# |
466 |
|
|
|
467 |
|
|
%if %build_server |
468 |
|
|
%ifarch %{ix86} |
469 |
|
|
%define summary_server Linux Kernel for server use with i686 & 64GB RAM |
470 |
|
|
%define info_server This kernel is compiled for server use, single or \ |
471 |
|
|
multiple i686 processor(s)/core(s) and up to 64GB RAM using PAE, using \ |
472 |
|
|
no preempt, HZ_100, CFS cpu scheduler and cfq i/o scheduler. \ |
473 |
|
|
This kernel relies on in-kernel smp alternatives to switch between up & smp \ |
474 |
|
|
mode depending on detected hardware. To force the kernel to boot in single \ |
475 |
|
|
processor mode, use the "nosmp" boot parameter. |
476 |
|
|
%else |
477 |
|
|
%define summary_server Linux Kernel for server use with %{_arch} |
478 |
|
|
%define info_server This kernel is compiled for server use, single or \ |
479 |
|
|
multiple %{_arch} processor(s)/core(s), using no preempt, HZ_100, \ |
480 |
|
|
CFS cpu scheduler and cfq i/o scheduler. \ |
481 |
|
|
This kernel relies on in-kernel smp alternatives to switch between up & smp \ |
482 |
|
|
mode depending on detected hardware. To force the kernel to boot in single \ |
483 |
|
|
processor mode, use the "nosmp" boot parameter. |
484 |
|
|
%endif |
485 |
|
|
%mkflavour server |
486 |
|
|
%endif |
487 |
|
|
|
488 |
|
|
# |
489 |
|
|
# kernel-source |
490 |
|
|
# |
491 |
|
|
%if %build_source |
492 |
|
|
%package -n %{kname}-source-%{buildrel} |
493 |
|
|
Version: %{fakever} |
494 |
|
|
Release: %{fakerel} |
495 |
|
|
Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils |
496 |
|
|
Summary: The Linux source code for %{kname}-%{buildrel} |
497 |
|
|
Group: Development/Kernel |
498 |
|
|
Autoreqprov: no |
499 |
tmb |
79821 |
Provides: kernel-source = %{kverrel} |
500 |
tmb |
1214 |
%ifarch %{ix86} |
501 |
|
|
Conflicts: arch(x86_64) |
502 |
|
|
%endif |
503 |
|
|
|
504 |
|
|
%description -n %{kname}-source-%{buildrel} |
505 |
|
|
The %{kname}-source package contains the source code files for the Mageia |
506 |
|
|
kernel. Theese source files are only needed if you want to build your |
507 |
|
|
own custom kernel that is better tuned to your particular hardware. |
508 |
|
|
|
509 |
|
|
If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...) |
510 |
|
|
drivers against, install the *-devel-* rpm that is matching your kernel. |
511 |
|
|
|
512 |
|
|
%common_description_info |
513 |
|
|
|
514 |
|
|
%post -n %{kname}-source-%{buildrel} |
515 |
|
|
for i in /lib/modules/%{kversion}-{desktop586,desktop,server}-%{buildrpmrel}; do |
516 |
|
|
if [ -d $i ]; then |
517 |
|
|
if [ ! -L $i/build -a ! -L $i/source ]; then |
518 |
|
|
ln -sf /usr/src/linux-%{kversion}-%{buildrpmrel} $i/build |
519 |
|
|
ln -sf /usr/src/linux-%{kversion}-%{buildrpmrel} $i/source |
520 |
|
|
fi |
521 |
|
|
fi |
522 |
|
|
done |
523 |
|
|
cd /usr/src |
524 |
|
|
rm -f linux |
525 |
|
|
ln -snf linux-%{kversion}-%{buildrpmrel} linux |
526 |
|
|
|
527 |
|
|
%preun -n %{kname}-source-%{buildrel} |
528 |
|
|
for i in /lib/modules/%{kversion}-{desktop586,desktop,server}-%{buildrpmrel}/{build,source}; do |
529 |
|
|
if [ -L $i ]; then |
530 |
|
|
if [ "$(readlink $i)" = "/usr/src/linux-%{kversion}-%{buildrpmrel}" ]; then |
531 |
|
|
rm -f $i |
532 |
|
|
fi |
533 |
|
|
fi |
534 |
|
|
done |
535 |
|
|
if [ -L /usr/src/linux ]; then |
536 |
|
|
if [ "$(readlink /usr/src/linux)" = "linux-%{kversion}-%{buildrpmrel}" ]; then |
537 |
|
|
rm -f /usr/src/linux |
538 |
|
|
fi |
539 |
|
|
fi |
540 |
|
|
exit 0 |
541 |
|
|
|
542 |
|
|
# |
543 |
|
|
# kernel-source-latest: virtual rpm |
544 |
|
|
# |
545 |
|
|
%package -n %{kname}-source-latest |
546 |
|
|
Version: %{kversion} |
547 |
|
|
Release: %{rpmrel} |
548 |
|
|
Summary: Virtual rpm for latest %{kname}-source |
549 |
|
|
Group: Development/Kernel |
550 |
|
|
Requires: %{kname}-source-%{buildrel} |
551 |
|
|
%ifarch %{ix86} |
552 |
|
|
Conflicts: arch(x86_64) |
553 |
|
|
%endif |
554 |
|
|
|
555 |
|
|
%description -n %{kname}-source-latest |
556 |
|
|
This package is a virtual rpm that aims to make sure you always have the |
557 |
|
|
latest %{kname}-source installed... |
558 |
|
|
|
559 |
|
|
%common_description_info |
560 |
|
|
%endif |
561 |
|
|
|
562 |
|
|
# |
563 |
|
|
# kernel-doc: documentation for the Linux kernel |
564 |
|
|
# |
565 |
|
|
%if %build_doc |
566 |
|
|
%package -n %{kname}-doc |
567 |
|
|
Version: %{kversion} |
568 |
|
|
Release: %{rpmrel} |
569 |
|
|
Summary: Various documentation bits found in the %{kname} source |
570 |
|
|
Group: Books/Computer books |
571 |
|
|
Buildarch: noarch |
572 |
|
|
|
573 |
|
|
%description -n %{kname}-doc |
574 |
|
|
This package contains documentation files from the %{kname} source. |
575 |
|
|
Various bits of information about the Linux kernel and the device drivers |
576 |
|
|
shipped with it are documented in these files. You also might want install |
577 |
|
|
this package if you need a reference to the options that can be passed to |
578 |
|
|
Linux kernel modules at load time. |
579 |
|
|
|
580 |
|
|
%common_description_info |
581 |
|
|
%endif |
582 |
|
|
|
583 |
|
|
# |
584 |
|
|
# End packages - here begins build stage |
585 |
|
|
# |
586 |
|
|
%prep |
587 |
|
|
%setup -q -n %top_dir_name -c |
588 |
|
|
%setup -q -n %top_dir_name -D -T -a100 |
589 |
|
|
|
590 |
|
|
%define patches_dir ../%{patch_ver}/ |
591 |
|
|
|
592 |
|
|
cd %src_dir |
593 |
|
|
|
594 |
|
|
%if %kstable |
595 |
|
|
%if %kpatch |
596 |
|
|
%if %prev_stable |
597 |
|
|
%patch1 -p1 |
598 |
|
|
%endif |
599 |
|
|
%patch2 -p1 |
600 |
|
|
%else |
601 |
|
|
%patch1 -p1 |
602 |
|
|
%endif |
603 |
|
|
%else |
604 |
|
|
%if %kpatch |
605 |
|
|
%patch1 -p1 |
606 |
|
|
%endif |
607 |
|
|
%endif |
608 |
|
|
%if %kgit |
609 |
|
|
%patch2 -p1 |
610 |
|
|
%endif |
611 |
|
|
|
612 |
|
|
%{patches_dir}/scripts/apply_patches |
613 |
|
|
|
614 |
|
|
# PATCH END |
615 |
|
|
|
616 |
|
|
|
617 |
|
|
# |
618 |
|
|
# Setup Begin |
619 |
|
|
# |
620 |
|
|
|
621 |
|
|
# Prepare all the variables for calling create_configs |
622 |
|
|
|
623 |
|
|
%if %build_debug |
624 |
|
|
%define debug --debug |
625 |
|
|
%else |
626 |
|
|
%define debug --no-debug |
627 |
|
|
%endif |
628 |
|
|
|
629 |
|
|
|
630 |
|
|
%{patches_dir}/scripts/create_configs %debug --user_cpu="%{target_arch}" |
631 |
|
|
|
632 |
|
|
# make sure the kernel has the sublevel we know it has... |
633 |
|
|
LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile |
634 |
|
|
|
635 |
|
|
# get rid of unwanted files |
636 |
|
|
find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f |
637 |
|
|
|
638 |
|
|
|
639 |
|
|
%build |
640 |
|
|
# Common target directories |
641 |
|
|
%define _kerneldir /usr/src/linux-%{kversion}-%{buildrpmrel} |
642 |
|
|
%define _bootdir /boot |
643 |
|
|
%define _modulesdir /lib/modules |
644 |
|
|
%define _efidir %{_bootdir}/efi/mageia |
645 |
|
|
|
646 |
|
|
# Directories definition needed for building |
647 |
|
|
%define temp_root %{build_dir}/temp-root |
648 |
|
|
%define temp_source %{temp_root}%{_kerneldir} |
649 |
|
|
%define temp_boot %{temp_root}%{_bootdir} |
650 |
|
|
%define temp_modules %{temp_root}%{_modulesdir} |
651 |
|
|
|
652 |
|
|
PrepareKernel() { |
653 |
|
|
name=$1 |
654 |
|
|
extension=$2 |
655 |
|
|
x86_dir=arch/x86/configs |
656 |
|
|
|
657 |
|
|
echo "Make config for kernel $extension" |
658 |
|
|
|
659 |
|
|
%smake -s mrproper |
660 |
|
|
|
661 |
|
|
if [ "%{target_arch}" == "i386" -o "%{target_arch}" == "x86_64" ]; then |
662 |
|
|
if [ -z "$name" ]; then |
663 |
|
|
cp ${x86_dir}/%{target_arch}_defconfig-desktop .config |
664 |
|
|
else |
665 |
|
|
cp ${x86_dir}/%{target_arch}_defconfig-$name .config |
666 |
|
|
fi |
667 |
|
|
else |
668 |
|
|
if [ -z "$name" ]; then |
669 |
|
|
cp arch/%{target_arch}/defconfig-desktop .config |
670 |
|
|
else |
671 |
|
|
cp arch/%{target_arch}/defconfig-$name .config |
672 |
|
|
fi |
673 |
|
|
fi |
674 |
|
|
|
675 |
|
|
# make sure EXTRAVERSION says what we want it to say |
676 |
|
|
%if %kstable |
677 |
|
|
LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{kstable}-$extension/" Makefile |
678 |
|
|
%else |
679 |
|
|
LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -$extension/" Makefile |
680 |
|
|
%endif |
681 |
|
|
|
682 |
|
|
%smake oldconfig |
683 |
|
|
} |
684 |
|
|
|
685 |
|
|
BuildKernel() { |
686 |
|
|
KernelVer=$1 |
687 |
|
|
|
688 |
|
|
echo "Building kernel $KernelVer" |
689 |
|
|
|
690 |
|
|
%kmake all |
691 |
|
|
|
692 |
|
|
# Start installing stuff |
693 |
|
|
install -d %{temp_boot} |
694 |
|
|
install -m 644 System.map %{temp_boot}/System.map-$KernelVer |
695 |
|
|
install -m 644 .config %{temp_boot}/config-$KernelVer |
696 |
|
|
gzip -c Module.symvers > %{temp_boot}/symvers-$KernelVer.gz |
697 |
|
|
|
698 |
|
|
%ifarch ppc powerpc |
699 |
|
|
cp -f vmlinux %{temp_boot}/vmlinuz-$KernelVer |
700 |
|
|
%ifarch ppc |
701 |
|
|
cp -f arch/ppc/boot/images/zImage.chrp-rs6k %{temp_boot}/vmlinuz-rs6k-$KernelVer |
702 |
|
|
%endif |
703 |
|
|
%else |
704 |
|
|
%ifarch sparc sparc64 |
705 |
|
|
gzip -9c vmlinux > %{temp_boot}/vmlinuz-$KernelVer |
706 |
|
|
%else |
707 |
|
|
cp -f arch/%{target_arch}/boot/bzImage %{temp_boot}/vmlinuz-$KernelVer |
708 |
|
|
%endif |
709 |
|
|
%endif |
710 |
|
|
|
711 |
|
|
# modules |
712 |
|
|
install -d %{temp_modules}/$KernelVer |
713 |
|
|
%smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=$KernelVer modules_install |
714 |
|
|
|
715 |
|
|
# remove /lib/firmware, we use a separate kernel-firmware |
716 |
|
|
rm -rf %{temp_root}/lib/firmware |
717 |
|
|
} |
718 |
|
|
|
719 |
|
|
SaveDevel() { |
720 |
|
|
devel_flavour=$1 |
721 |
|
|
|
722 |
|
|
DevelRoot=/usr/src/linux-%{kversion}-$devel_flavour-%{buildrpmrel} |
723 |
|
|
TempDevelRoot=%{temp_root}$DevelRoot |
724 |
|
|
|
725 |
|
|
mkdir -p $TempDevelRoot |
726 |
|
|
for i in $(find . -name 'Makefile*'); do cp -R --parents $i $TempDevelRoot;done |
727 |
|
|
for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*'); do cp -R --parents $i $TempDevelRoot;done |
728 |
|
|
cp -fR include $TempDevelRoot |
729 |
|
|
cp -fR scripts $TempDevelRoot |
730 |
|
|
cp -fR kernel/bounds.c $TempDevelRoot/kernel |
731 |
|
|
%ifarch %{ix86} x86_64 |
732 |
|
|
cp -fR arch/x86/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/x86/kernel/ |
733 |
|
|
cp -fR arch/x86/kernel/asm-offsets_{32,64}.c $TempDevelRoot/arch/x86/kernel/ |
734 |
|
|
cp -fR arch/x86/include $TempDevelRoot/arch/x86/ |
735 |
|
|
%else |
736 |
|
|
cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/%{target_arch}/kernel/ |
737 |
|
|
cp -fR arch/%{target_arch}/include $TempDevelRoot/arch/%{target_arch}/ |
738 |
|
|
%endif |
739 |
|
|
cp -fR .config Module.symvers $TempDevelRoot |
740 |
|
|
cp -fR 3rdparty/mkbuild.pl $TempDevelRoot/3rdparty |
741 |
|
|
|
742 |
|
|
# Needed for truecrypt build (Danny) |
743 |
|
|
cp -fR drivers/md/dm.h $TempDevelRoot/drivers/md/ |
744 |
|
|
|
745 |
|
|
# Needed for lguest |
746 |
|
|
cp -fR drivers/lguest/lg.h $TempDevelRoot/drivers/lguest/ |
747 |
|
|
|
748 |
|
|
# Needed for lirc_gpio (#39004) |
749 |
|
|
cp -fR drivers/media/video/bt8xx/bttv{,p}.h $TempDevelRoot/drivers/media/video/bt8xx/ |
750 |
|
|
cp -fR drivers/media/video/bt8xx/bt848.h $TempDevelRoot/drivers/media/video/bt8xx/ |
751 |
|
|
cp -fR drivers/media/video/btcx-risc.h $TempDevelRoot/drivers/media/video/ |
752 |
|
|
|
753 |
|
|
# Needed for external dvb tree (#41418) |
754 |
|
|
cp -fR drivers/media/dvb/dvb-core/*.h $TempDevelRoot/drivers/media/dvb/dvb-core/ |
755 |
|
|
cp -fR drivers/media/dvb/frontends/lgdt330x.h $TempDevelRoot/drivers/media/dvb/frontends/ |
756 |
|
|
|
757 |
|
|
# add acpica header files, needed for fglrx build |
758 |
|
|
cp -fR drivers/acpi/acpica/*.h $TempDevelRoot/drivers/acpi/acpica/ |
759 |
|
|
|
760 |
tmb |
60143 |
# aufs2 has a special file needed |
761 |
|
|
cp -fR fs/aufs/magic.mk $TempDevelRoot/fs/aufs |
762 |
|
|
|
763 |
tmb |
1214 |
for i in alpha arm avr32 blackfin cris frv h8300 ia64 m32r m68knommu \ |
764 |
|
|
microblaze mips mn10300 parisc s390 score sh tile xtensa; do |
765 |
|
|
rm -rf $TempDevelRoot/arch/$i |
766 |
|
|
done |
767 |
|
|
|
768 |
|
|
# ppc needs only m68k headers |
769 |
|
|
rm -rf $TempDevelRoot/arch/m68k |
770 |
|
|
|
771 |
|
|
%ifnarch ppc powerpc |
772 |
|
|
rm -rf $TempDevelRoot/arch/powerpc |
773 |
|
|
%endif |
774 |
|
|
%ifnarch sparc sparc64 |
775 |
|
|
rm -rf $TempDevelRoot/arch/sparc |
776 |
|
|
rm -rf $TempDevelRoot/arch/sparc64 |
777 |
|
|
%endif |
778 |
|
|
%ifnarch %{ix86} x86_64 |
779 |
|
|
rm -rf $TempDevelRoot/arch/x86 |
780 |
|
|
%endif |
781 |
|
|
|
782 |
|
|
# Clean the scripts tree, and make sure everything is ok (sanity check) |
783 |
|
|
# running prepare+scripts (tree was already "prepared" in build) |
784 |
|
|
pushd $TempDevelRoot >/dev/null |
785 |
|
|
%smake -s prepare scripts |
786 |
|
|
%smake -s clean |
787 |
|
|
popd >/dev/null |
788 |
|
|
rm -f $TempDevelRoot/.config.old |
789 |
|
|
|
790 |
|
|
# fix permissions |
791 |
|
|
chmod -R a+rX $TempDevelRoot |
792 |
|
|
|
793 |
|
|
# disable mrproper in -devel rpms |
794 |
|
|
patch -p1 --fuzz=0 -d $TempDevelRoot -i %{SOURCE2} |
795 |
|
|
|
796 |
|
|
kernel_devel_files=../kernel_devel_files.$devel_flavour |
797 |
|
|
|
798 |
|
|
|
799 |
|
|
### Create the kernel_devel_files.* |
800 |
|
|
cat > $kernel_devel_files <<EOF |
801 |
|
|
%defattr(-,root,root) |
802 |
|
|
%dir $DevelRoot |
803 |
|
|
%dir $DevelRoot/arch |
804 |
|
|
%dir $DevelRoot/include |
805 |
|
|
$DevelRoot/3rdparty |
806 |
|
|
$DevelRoot/Documentation |
807 |
|
|
%ifarch ppc powerpc |
808 |
|
|
$DevelRoot/arch/powerpc |
809 |
|
|
$DevelRoot/arch/ppc |
810 |
|
|
%endif |
811 |
|
|
%ifarch sparc sparc64 |
812 |
|
|
$DevelRoot/arch/sparc |
813 |
|
|
$DevelRoot/arch/sparc64 |
814 |
|
|
%endif |
815 |
|
|
$DevelRoot/arch/um |
816 |
|
|
%ifarch %{ix86} x86_64 |
817 |
|
|
$DevelRoot/arch/x86 |
818 |
|
|
%endif |
819 |
|
|
$DevelRoot/block |
820 |
|
|
$DevelRoot/crypto |
821 |
|
|
$DevelRoot/drivers |
822 |
|
|
$DevelRoot/firmware |
823 |
|
|
$DevelRoot/fs |
824 |
|
|
$DevelRoot/include/Kbuild |
825 |
|
|
$DevelRoot/include/acpi |
826 |
|
|
$DevelRoot/include/asm-generic |
827 |
|
|
$DevelRoot/include/config |
828 |
|
|
$DevelRoot/include/crypto |
829 |
|
|
$DevelRoot/include/drm |
830 |
|
|
$DevelRoot/include/generated |
831 |
|
|
$DevelRoot/include/keys |
832 |
|
|
$DevelRoot/include/linux |
833 |
|
|
$DevelRoot/include/math-emu |
834 |
|
|
$DevelRoot/include/media |
835 |
|
|
$DevelRoot/include/mtd |
836 |
|
|
$DevelRoot/include/net |
837 |
|
|
$DevelRoot/include/pcmcia |
838 |
|
|
$DevelRoot/include/rdma |
839 |
|
|
$DevelRoot/include/rxrpc |
840 |
|
|
$DevelRoot/include/scsi |
841 |
|
|
$DevelRoot/include/sound |
842 |
tmb |
74925 |
$DevelRoot/include/target |
843 |
tmb |
1214 |
$DevelRoot/include/trace |
844 |
|
|
$DevelRoot/include/video |
845 |
|
|
$DevelRoot/include/xen |
846 |
|
|
$DevelRoot/init |
847 |
|
|
$DevelRoot/ipc |
848 |
|
|
$DevelRoot/kernel |
849 |
|
|
$DevelRoot/lib |
850 |
|
|
$DevelRoot/mm |
851 |
|
|
$DevelRoot/net |
852 |
|
|
$DevelRoot/samples |
853 |
|
|
$DevelRoot/scripts |
854 |
|
|
$DevelRoot/security |
855 |
|
|
$DevelRoot/sound |
856 |
|
|
$DevelRoot/tools |
857 |
|
|
$DevelRoot/usr |
858 |
|
|
$DevelRoot/virt |
859 |
|
|
$DevelRoot/.config |
860 |
|
|
$DevelRoot/Kbuild |
861 |
|
|
$DevelRoot/Kconfig |
862 |
|
|
$DevelRoot/Makefile |
863 |
|
|
$DevelRoot/Module.symvers |
864 |
|
|
$DevelRoot/arch/Kconfig |
865 |
|
|
%doc README.kernel-sources |
866 |
|
|
EOF |
867 |
|
|
|
868 |
|
|
|
869 |
|
|
### Create -devel Post script on the fly |
870 |
|
|
cat > $kernel_devel_files-post <<EOF |
871 |
|
|
if [ -d /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel} ]; then |
872 |
|
|
rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/{build,source} |
873 |
|
|
ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build |
874 |
|
|
ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source |
875 |
|
|
fi |
876 |
|
|
EOF |
877 |
|
|
|
878 |
|
|
|
879 |
|
|
### Create -devel Preun script on the fly |
880 |
|
|
cat > $kernel_devel_files-preun <<EOF |
881 |
|
|
if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build ]; then |
882 |
|
|
rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build |
883 |
|
|
fi |
884 |
|
|
if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source ]; then |
885 |
|
|
rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source |
886 |
|
|
fi |
887 |
|
|
exit 0 |
888 |
|
|
EOF |
889 |
|
|
} |
890 |
|
|
|
891 |
|
|
SaveDebug() { |
892 |
|
|
debug_flavour=$1 |
893 |
|
|
|
894 |
|
|
install -m 644 vmlinux \ |
895 |
|
|
%{temp_boot}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel} |
896 |
|
|
kernel_debug_files=../kernel_debug_files.$debug_flavour |
897 |
|
|
echo "%defattr(-,root,root)" > $kernel_debug_files |
898 |
|
|
echo "%{_bootdir}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}" \ |
899 |
|
|
>> $kernel_debug_files |
900 |
|
|
|
901 |
|
|
find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \ |
902 |
|
|
-name "*.ko" | \ |
903 |
|
|
%kxargs -I '{}' objcopy --only-keep-debug '{}' '{}'.debug |
904 |
|
|
find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \ |
905 |
|
|
-name "*.ko" | %kxargs -I '{}' \ |
906 |
|
|
sh -c 'cd `dirname {}`; \ |
907 |
|
|
objcopy --add-gnu-debuglink=`basename {}`.debug \ |
908 |
|
|
--strip-debug `basename {}`' |
909 |
|
|
|
910 |
|
|
pushd %{temp_modules} |
911 |
|
|
find %{kversion}-$debug_flavour-%{buildrpmrel}/kernel \ |
912 |
|
|
-name "*.ko.debug" > debug_module_list |
913 |
|
|
popd |
914 |
|
|
cat %{temp_modules}/debug_module_list | \ |
915 |
|
|
sed 's|\(.*\)|%{_modulesdir}/\1|' >> $kernel_debug_files |
916 |
|
|
cat %{temp_modules}/debug_module_list | \ |
917 |
|
|
sed 's|\(.*\)|%exclude %{_modulesdir}/\1|' \ |
918 |
|
|
>> ../kernel_exclude_debug_files.$debug_flavour |
919 |
|
|
rm -f %{temp_modules}/debug_module_list |
920 |
|
|
} |
921 |
|
|
|
922 |
|
|
CreateFiles() { |
923 |
|
|
kernel_flavour=$1 |
924 |
|
|
|
925 |
|
|
kernel_files=../kernel_files.$kernel_flavour |
926 |
|
|
|
927 |
|
|
### Create the kernel_files.* |
928 |
|
|
cat > $kernel_files <<EOF |
929 |
|
|
%defattr(-,root,root) |
930 |
|
|
%{_bootdir}/System.map-%{kversion}-$kernel_flavour-%{buildrpmrel} |
931 |
|
|
%{_bootdir}/symvers-%{kversion}-$kernel_flavour-%{buildrpmrel}.gz |
932 |
|
|
%{_bootdir}/config-%{kversion}-$kernel_flavour-%{buildrpmrel} |
933 |
|
|
%{_bootdir}/vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} |
934 |
|
|
%dir %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/ |
935 |
|
|
%{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/kernel |
936 |
|
|
%{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/modules.* |
937 |
|
|
%doc README.kernel-sources |
938 |
|
|
EOF |
939 |
|
|
|
940 |
|
|
%if %build_debug |
941 |
|
|
cat ../kernel_exclude_debug_files.$kernel_flavour >> $kernel_files |
942 |
|
|
%endif |
943 |
|
|
|
944 |
|
|
### Create kernel Post script |
945 |
|
|
cat > $kernel_files-post <<EOF |
946 |
|
|
/sbin/installkernel %{kversion}-$kernel_flavour-%{buildrpmrel} |
947 |
|
|
pushd /boot > /dev/null |
948 |
|
|
if [ -L vmlinuz-$kernel_flavour ]; then |
949 |
|
|
rm -f vmlinuz-$kernel_flavour |
950 |
|
|
fi |
951 |
|
|
ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz-$kernel_flavour |
952 |
|
|
if [ -L initrd-$kernel_flavour.img ]; then |
953 |
|
|
rm -f initrd-$kernel_flavour.img |
954 |
|
|
fi |
955 |
|
|
ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd-$kernel_flavour.img |
956 |
|
|
popd > /dev/null |
957 |
|
|
%if %build_devel |
958 |
|
|
# create kernel-devel symlinks if matching -devel- rpm is installed |
959 |
|
|
if [ -d /usr/src/linux-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then |
960 |
|
|
rm -f /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/{build,source} |
961 |
|
|
ln -sf /usr/src/linux-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build |
962 |
|
|
ln -sf /usr/src/linux-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source |
963 |
|
|
fi |
964 |
|
|
%endif |
965 |
|
|
%if %build_source |
966 |
|
|
# create kernel-source symlinks only if matching -devel- rpm is not installed |
967 |
|
|
if [ -d /usr/src/linux-%{kversion}-%{buildrpmrel} -a ! -d /usr/src/linux-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then |
968 |
|
|
rm -f /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/{build,source} |
969 |
|
|
ln -sf /usr/src/linux-%{kversion}-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build |
970 |
|
|
ln -sf /usr/src/linux-%{kversion}-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source |
971 |
|
|
fi |
972 |
|
|
%endif |
973 |
|
|
EOF |
974 |
|
|
|
975 |
|
|
|
976 |
|
|
### Create kernel Preun script on the fly |
977 |
|
|
cat > $kernel_files-preun <<EOF |
978 |
|
|
/sbin/installkernel -R %{kversion}-$kernel_flavour-%{buildrpmrel} |
979 |
|
|
pushd /boot > /dev/null |
980 |
|
|
if [ -L vmlinuz-$kernel_flavour ]; then |
981 |
|
|
if [ "$(readlink vmlinuz-$kernel_flavour)" = "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then |
982 |
|
|
rm -f vmlinuz-$kernel_flavour |
983 |
|
|
fi |
984 |
|
|
fi |
985 |
|
|
if [ -L initrd-$kernel_flavour.img ]; then |
986 |
|
|
if [ "$(readlink initrd-$kernel_flavour.img)" = "initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img" ]; then |
987 |
|
|
rm -f initrd-$kernel_flavour.img |
988 |
|
|
fi |
989 |
|
|
fi |
990 |
|
|
popd > /dev/null |
991 |
|
|
%if %build_devel |
992 |
|
|
if [ -L /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build ]; then |
993 |
|
|
rm -f /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build |
994 |
|
|
fi |
995 |
|
|
if [ -L /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source ]; then |
996 |
|
|
rm -f /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source |
997 |
|
|
fi |
998 |
|
|
%endif |
999 |
|
|
exit 0 |
1000 |
|
|
EOF |
1001 |
|
|
|
1002 |
|
|
|
1003 |
|
|
### Create kernel Postun script on the fly |
1004 |
|
|
cat > $kernel_files-postun <<EOF |
1005 |
|
|
/sbin/kernel_remove_initrd %{kversion}-$kernel_flavour-%{buildrpmrel} |
1006 |
|
|
EOF |
1007 |
|
|
} |
1008 |
|
|
|
1009 |
|
|
|
1010 |
|
|
CreateKernel() { |
1011 |
|
|
flavour=$1 |
1012 |
|
|
|
1013 |
|
|
PrepareKernel $flavour $flavour-%{buildrpmrel} |
1014 |
|
|
|
1015 |
|
|
BuildKernel %{kversion}-$flavour-%{buildrpmrel} |
1016 |
|
|
%if %build_devel |
1017 |
|
|
SaveDevel $flavour |
1018 |
|
|
%endif |
1019 |
|
|
%if %build_debug |
1020 |
|
|
SaveDebug $flavour |
1021 |
|
|
%endif |
1022 |
|
|
CreateFiles $flavour |
1023 |
|
|
} |
1024 |
|
|
|
1025 |
|
|
|
1026 |
|
|
### |
1027 |
|
|
# DO it... |
1028 |
|
|
### |
1029 |
|
|
|
1030 |
|
|
|
1031 |
|
|
# Create a simulacro of buildroot |
1032 |
|
|
rm -rf %{temp_root} |
1033 |
|
|
install -d %{temp_root} |
1034 |
|
|
|
1035 |
|
|
|
1036 |
|
|
#make sure we are in the directory |
1037 |
|
|
cd %src_dir |
1038 |
|
|
|
1039 |
|
|
%ifarch %{ix86} |
1040 |
|
|
%if %build_desktop586 |
1041 |
|
|
CreateKernel desktop586 |
1042 |
|
|
%endif |
1043 |
|
|
%endif |
1044 |
|
|
|
1045 |
|
|
%if %build_desktop |
1046 |
|
|
CreateKernel desktop |
1047 |
|
|
%endif |
1048 |
|
|
|
1049 |
tmb |
77904 |
%if %build_netbook |
1050 |
|
|
CreateKernel netbook |
1051 |
|
|
%endif |
1052 |
|
|
|
1053 |
tmb |
1214 |
%if %build_server |
1054 |
|
|
CreateKernel server |
1055 |
|
|
%endif |
1056 |
|
|
|
1057 |
|
|
|
1058 |
|
|
# We don't make to repeat the depend code at the install phase |
1059 |
|
|
%if %build_source |
1060 |
|
|
PrepareKernel "" %{buildrpmrel}custom |
1061 |
|
|
%smake -s mrproper |
1062 |
|
|
%endif |
1063 |
|
|
|
1064 |
|
|
|
1065 |
|
|
### |
1066 |
|
|
### install |
1067 |
|
|
### |
1068 |
|
|
%install |
1069 |
|
|
install -m 644 %{SOURCE4} . |
1070 |
|
|
|
1071 |
|
|
cd %src_dir |
1072 |
|
|
|
1073 |
|
|
# Directories definition needed for installing |
1074 |
|
|
%define target_source %{buildroot}%{_kerneldir} |
1075 |
|
|
%define target_boot %{buildroot}%{_bootdir} |
1076 |
|
|
%define target_modules %{buildroot}%{_modulesdir} |
1077 |
|
|
|
1078 |
|
|
# We want to be able to test several times the install part |
1079 |
|
|
rm -rf %{buildroot} |
1080 |
|
|
cp -a %{temp_root} %{buildroot} |
1081 |
|
|
|
1082 |
|
|
# Create directories infastructure |
1083 |
|
|
%if %build_source |
1084 |
|
|
install -d %{target_source} |
1085 |
|
|
|
1086 |
|
|
tar cf - . | tar xf - -C %{target_source} |
1087 |
|
|
chmod -R a+rX %{target_source} |
1088 |
|
|
|
1089 |
|
|
# we remove all the source files that we don't ship |
1090 |
|
|
# first architecture files |
1091 |
|
|
for i in alpha arm arm26 avr32 blackfin cris frv h8300 ia64 m32r m68knommu \ |
1092 |
|
|
microblaze mips parisc s390 score sh sh64 tile v850 xtensa mn10300; do |
1093 |
|
|
rm -rf %{target_source}/arch/$i |
1094 |
|
|
done |
1095 |
|
|
|
1096 |
|
|
# ppc needs only m68k headers |
1097 |
|
|
rm -rf %{target_source}/arch/m68k |
1098 |
|
|
|
1099 |
|
|
%ifnarch ppc powerpc |
1100 |
|
|
rm -rf %{target_source}/arch/ppc |
1101 |
|
|
rm -rf %{target_source}/arch/powerpc |
1102 |
|
|
%endif |
1103 |
|
|
%ifnarch sparc sparc64 |
1104 |
|
|
rm -rf %{target_source}/arch/sparc |
1105 |
|
|
rm -rf %{target_source}/arch/sparc64 |
1106 |
|
|
%endif |
1107 |
|
|
%ifnarch %{ix86} x86_64 |
1108 |
|
|
rm -rf %{target_source}/arch/x86 |
1109 |
|
|
%endif |
1110 |
|
|
|
1111 |
|
|
# other misc files |
1112 |
|
|
rm -f %{target_source}/{.config.old,.config.cmd,.gitignore,.lst,.mailmap} |
1113 |
|
|
rm -f %{target_source}/{.missing-syscalls.d,arch/.gitignore,firmware/.gitignore} |
1114 |
|
|
|
1115 |
|
|
#endif %build_source |
1116 |
|
|
%endif |
1117 |
|
|
|
1118 |
|
|
# gzipping modules |
1119 |
|
|
find %{target_modules} -name "*.ko" | %kxargs gzip -9 |
1120 |
|
|
|
1121 |
|
|
# We used to have a copy of PrepareKernel here |
1122 |
|
|
# Now, we make sure that the thing in the linux dir is what we want it to be |
1123 |
|
|
for i in %{target_modules}/*; do |
1124 |
|
|
rm -f $i/build $i/source |
1125 |
|
|
done |
1126 |
|
|
|
1127 |
|
|
# sniff, if we gzipped all the modules, we change the stamp :( |
1128 |
|
|
# we really need the depmod -ae here |
1129 |
|
|
pushd %{target_modules} |
1130 |
|
|
for i in *; do |
1131 |
|
|
/sbin/depmod -u -ae -b %{buildroot} -r -F %{target_boot}/System.map-$i $i |
1132 |
|
|
echo $? |
1133 |
|
|
done |
1134 |
|
|
|
1135 |
|
|
for i in *; do |
1136 |
|
|
pushd $i |
1137 |
|
|
echo "Creating modules.description for $i" |
1138 |
|
|
modules=`find . -name "*.ko.gz"` |
1139 |
|
|
echo $modules | %kxargs /sbin/modinfo \ |
1140 |
|
|
| perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description |
1141 |
|
|
popd |
1142 |
|
|
done |
1143 |
|
|
popd |
1144 |
|
|
|
1145 |
|
|
|
1146 |
|
|
### |
1147 |
|
|
### clean |
1148 |
|
|
### |
1149 |
|
|
%clean |
1150 |
|
|
rm -rf %{buildroot} |
1151 |
|
|
|
1152 |
|
|
|
1153 |
|
|
# We don't want to remove this, the whole reason of its existence is to be |
1154 |
|
|
# able to do several rpm --short-circuit -bi for testing install |
1155 |
|
|
# phase without repeating compilation phase |
1156 |
|
|
#rm -rf %{temp_root} |
1157 |
|
|
|
1158 |
|
|
### |
1159 |
|
|
### source and doc file lists |
1160 |
|
|
### |
1161 |
|
|
|
1162 |
|
|
%if %build_source |
1163 |
|
|
%files -n %{kname}-source-%{buildrel} |
1164 |
|
|
%defattr(-,root,root) |
1165 |
|
|
%dir %{_kerneldir} |
1166 |
|
|
%dir %{_kerneldir}/arch |
1167 |
|
|
%dir %{_kerneldir}/include |
1168 |
|
|
%{_kerneldir}/3rdparty |
1169 |
|
|
%{_kerneldir}/Documentation |
1170 |
|
|
%{_kerneldir}/arch/Kconfig |
1171 |
|
|
%ifarch powerpc ppc |
1172 |
|
|
%{_kerneldir}/arch/powerpc |
1173 |
|
|
%{_kerneldir}/arch/ppc |
1174 |
|
|
%endif |
1175 |
|
|
%ifarch sparc sparc64 |
1176 |
|
|
%{_kerneldir}/arch/sparc |
1177 |
|
|
%{_kerneldir}/arch/sparc64 |
1178 |
|
|
%endif |
1179 |
|
|
%{_kerneldir}/arch/um |
1180 |
|
|
%ifarch %{ix86} x86_64 |
1181 |
|
|
%{_kerneldir}/arch/x86 |
1182 |
|
|
%endif |
1183 |
|
|
%{_kerneldir}/block |
1184 |
|
|
%{_kerneldir}/crypto |
1185 |
|
|
%{_kerneldir}/drivers |
1186 |
|
|
%{_kerneldir}/firmware |
1187 |
|
|
%{_kerneldir}/fs |
1188 |
|
|
%{_kerneldir}/include/Kbuild |
1189 |
|
|
%{_kerneldir}/include/acpi |
1190 |
|
|
%{_kerneldir}/include/asm-generic |
1191 |
|
|
%ifarch powerpc ppc |
1192 |
|
|
%{_kerneldir}/include/m68k |
1193 |
|
|
%{_kerneldir}/include/powerpc |
1194 |
|
|
%{_kerneldir}/include/ppc |
1195 |
|
|
%endif |
1196 |
|
|
%{_kerneldir}/include/crypto |
1197 |
|
|
%{_kerneldir}/include/drm |
1198 |
|
|
%{_kerneldir}/include/keys |
1199 |
|
|
%{_kerneldir}/include/linux |
1200 |
|
|
%{_kerneldir}/include/math-emu |
1201 |
|
|
%{_kerneldir}/include/media |
1202 |
|
|
%{_kerneldir}/include/mtd |
1203 |
|
|
%{_kerneldir}/include/net |
1204 |
|
|
%{_kerneldir}/include/pcmcia |
1205 |
|
|
%{_kerneldir}/include/rdma |
1206 |
|
|
%{_kerneldir}/include/rxrpc |
1207 |
|
|
%{_kerneldir}/include/scsi |
1208 |
|
|
%{_kerneldir}/include/sound |
1209 |
tmb |
74925 |
%{_kerneldir}/include/target |
1210 |
tmb |
1214 |
%{_kerneldir}/include/trace |
1211 |
|
|
%{_kerneldir}/include/video |
1212 |
|
|
%{_kerneldir}/include/xen |
1213 |
|
|
%{_kerneldir}/init |
1214 |
|
|
%{_kerneldir}/ipc |
1215 |
|
|
%{_kerneldir}/kernel |
1216 |
|
|
%{_kerneldir}/lib |
1217 |
|
|
%{_kerneldir}/mm |
1218 |
|
|
%{_kerneldir}/net |
1219 |
|
|
%{_kerneldir}/virt |
1220 |
|
|
%{_kerneldir}/samples |
1221 |
|
|
%{_kerneldir}/scripts |
1222 |
|
|
%{_kerneldir}/security |
1223 |
|
|
%{_kerneldir}/sound |
1224 |
|
|
%{_kerneldir}/tools |
1225 |
|
|
%{_kerneldir}/usr |
1226 |
|
|
%{_kerneldir}/COPYING |
1227 |
|
|
%{_kerneldir}/CREDITS |
1228 |
|
|
%{_kerneldir}/Kbuild |
1229 |
|
|
%{_kerneldir}/Kconfig |
1230 |
|
|
%{_kerneldir}/MAINTAINERS |
1231 |
|
|
%{_kerneldir}/Makefile |
1232 |
|
|
%{_kerneldir}/README |
1233 |
|
|
%{_kerneldir}/REPORTING-BUGS |
1234 |
|
|
%doc README.kernel-sources |
1235 |
|
|
|
1236 |
|
|
%files -n %{kname}-source-latest |
1237 |
|
|
%defattr(-,root,root) |
1238 |
|
|
%endif |
1239 |
|
|
|
1240 |
|
|
%if %build_doc |
1241 |
|
|
%files -n %{kname}-doc |
1242 |
|
|
%defattr(-,root,root) |
1243 |
|
|
%doc linux-%{tar_ver}/Documentation/* |
1244 |
|
|
%endif |
1245 |
|
|
|