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

  ViewVC Help
Powered by ViewVC 1.1.30