/[packages]/cauldron/kernel/current/SPECS/kernel.spec
ViewVC logotype

Annotation of /cauldron/kernel/current/SPECS/kernel.spec

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.30