/[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 152033 - (hide annotations) (download)
Wed Oct 5 17:10:28 2011 UTC (12 years, 5 months ago) by tmb
File size: 36289 byte(s)
update to 3.1-rc9
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 tmb 152033 %define patchlevel 1
12 tmb 127726 # sublevel is now used for -stable patches
13 tmb 152033 %define sublevel 0
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 tmb 152033 # kpatch wich are either 0 (empty), rc (kpatch)
20     %define kpatch rc9
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 tmb 131713 %package -n %{kname}-%{1}-%{buildrel}-debug \
323 tmb 1214 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 tmb 131713 %description -n %{kname}-%{1}-%{buildrel}-debug \
332 tmb 1214 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     %post -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-post \
371     %preun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-preun \
372     %postun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-postun \
373     \
374     %if %build_devel \
375     %post -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-post \
376     %preun -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1}-preun \
377     %endif \
378     \
379     %files -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1} \
380     %files -n %{kname}-%{1}-latest \
381     %defattr(-,root,root) \
382     \
383     %if %build_devel \
384     %files -n %{kname}-%{1}-devel-%{buildrel} -f kernel_devel_files.%{1} \
385     %files -n %{kname}-%{1}-devel-latest \
386     %defattr(-,root,root) \
387     %endif \
388     \
389     %if %build_debug \
390 tmb 131713 %files -n %{kname}-%{1}-%{buildrel}-debug -f kernel_debug_files.%{1} \
391 tmb 1214 %defattr(-,root,root) \
392     %endif
393    
394     %ifarch %{ix86}
395     #
396     # kernel-desktop586: i586, smp-alternatives, 4GB
397     #
398     %if %build_desktop586
399     %define summary_desktop586 Linux kernel for desktop use with i586 & 4GB RAM
400     %define info_desktop586 This kernel is compiled for desktop use, single or \
401     multiple i586 processor(s)/core(s) and less than 4GB RAM, using voluntary \
402 tmb 82800 preempt, CFS cpu scheduler and cfq i/o scheduler.
403 tmb 1214 %mkflavour desktop586
404     %endif
405     %endif
406    
407     #
408     # kernel-desktop: i686, smp-alternatives, 4 GB / x86_64
409     #
410     %if %build_desktop
411     %ifarch %{ix86}
412     %define summary_desktop Linux Kernel for desktop use with i686 & 4GB RAM
413     %define info_desktop This kernel is compiled for desktop use, single or \
414     multiple i686 processor(s)/core(s) and less than 4GB RAM, using HZ_1000, \
415 tmb 82800 voluntary preempt, CFS cpu scheduler and cfq i/o scheduler.
416 tmb 1214 %else
417     %define summary_desktop Linux Kernel for desktop use with %{_arch}
418     %define info_desktop This kernel is compiled for desktop use, single or \
419     multiple %{_arch} processor(s)/core(s), using HZ_1000, voluntary preempt, \
420 tmb 82800 CFS cpu scheduler and cfq i/o scheduler.
421 tmb 1214 %endif
422     %mkflavour desktop
423     %endif
424    
425     #
426 tmb 82800 # kernel-netbook: i686, smp-alternatives, 4 GB / x86_64
427 tmb 77904 #
428     %if %build_netbook
429     %ifarch %{ix86}
430 tmb 82800 %define summary_netbook Linux Kernel for netbook use with i686 & 4GB RAM
431 tmb 77904 %define info_netbook This kernel is compiled for netbook 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 77904 %else
435 tmb 82800 %define summary_netbook Linux Kernel for netbook use with %{_arch}
436 tmb 77904 %define info_netbook This kernel is compiled for netbook 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 77904 %endif
440     %mkflavour netbook
441     %endif
442    
443     #
444 tmb 1214 # kernel-server: i686, smp-alternatives, 64 GB / x86_64
445     #
446     %if %build_server
447     %ifarch %{ix86}
448     %define summary_server Linux Kernel for server use with i686 & 64GB RAM
449     %define info_server This kernel is compiled for server use, single or \
450     multiple i686 processor(s)/core(s) and up to 64GB RAM using PAE, using \
451 tmb 82800 no preempt, HZ_100, CFS cpu scheduler and cfq i/o scheduler.
452 tmb 1214 %else
453     %define summary_server Linux Kernel for server use with %{_arch}
454     %define info_server This kernel is compiled for server use, single or \
455     multiple %{_arch} processor(s)/core(s), using no preempt, HZ_100, \
456 tmb 82800 CFS cpu scheduler and cfq i/o scheduler.
457 tmb 1214 %endif
458     %mkflavour server
459     %endif
460    
461 tmb 82800 #
462 tmb 83006 # kernel-xen-pvops: i686, smp-alternatives, 64 GB / x86_64
463     #
464     %if %build_xen_pvops
465     %ifarch %{ix86}
466 tmb 119919 %define summary_xen_pvops Linux Kernel for xen-pvops use with i686 & 64GB RAM
467     %define info_xen_pvops This kernel is compiled for xen-pvops use, single or \
468 tmb 83006 multiple i686 processor(s)/core(s) and up to 64GB RAM using PAE, using \
469     no preempt, HZ_100, CFS cpu scheduler and cfq i/o scheduler.
470     %else
471 tmb 119919 %define summary_xen_pvops Linux Kernel for xen-pvops use with %{_arch}
472     %define info_xen_pvops This kernel is compiled for xen-pvops use, single or \
473 tmb 83006 multiple %{_arch} processor(s)/core(s), using no preempt, HZ_100, \
474     CFS cpu scheduler and cfq i/o scheduler.
475     %endif
476     %mkflavour xen-pvops
477     %endif
478    
479     #
480 tmb 82800 # ARM kernels
481     #
482     %ifarch %{arm}
483 rtp 81319 %if %build_iop32x
484     %define summary_iop32x Linux Kernel for Arm machines based on Xscale IOP32X
485     %define info_iop32x This kernel is compiled for iop32x boxes. It will run on n2100 \
486     or ss4000e or sanmina boards.
487     %mkflavour iop32x
488     %endif
489     %if %build_kirkwood
490     %define summary_kirkwood Linux Kernel for Arm machines based on Kirkwood
491     %define info_kirkwood This kernel is compiled for kirkwood boxes. It will run on openrd boards.
492     %mkflavour kirkwood
493     %endif
494     %if %build_versatile
495     %define summary_versatile Linux Kernel for Versatile arm machines
496     %define info_versatile This kernel is compiled for Versatile boxes. It will run on Qemu for instance.
497     %mkflavour versatile
498     %endif
499     %endif
500    
501 tmb 1214 #
502     # kernel-source
503     #
504     %if %build_source
505     %package -n %{kname}-source-%{buildrel}
506     Version: %{fakever}
507     Release: %{fakerel}
508     Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
509     Summary: The Linux source code for %{kname}-%{buildrel}
510     Group: Development/Kernel
511     Autoreqprov: no
512 tmb 79821 Provides: kernel-source = %{kverrel}
513 tmb 128105 Buildarch: noarch
514 tmb 1214
515     %description -n %{kname}-source-%{buildrel}
516     The %{kname}-source package contains the source code files for the Mageia
517     kernel. Theese source files are only needed if you want to build your
518     own custom kernel that is better tuned to your particular hardware.
519    
520     If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
521     drivers against, install the *-devel-* rpm that is matching your kernel.
522    
523     %post -n %{kname}-source-%{buildrel}
524     for i in /lib/modules/%{kversion}-{desktop586,desktop,server}-%{buildrpmrel}; do
525     if [ -d $i ]; then
526     if [ ! -L $i/build -a ! -L $i/source ]; then
527     ln -sf /usr/src/linux-%{kversion}-%{buildrpmrel} $i/build
528     ln -sf /usr/src/linux-%{kversion}-%{buildrpmrel} $i/source
529     fi
530     fi
531     done
532     cd /usr/src
533     rm -f linux
534     ln -snf linux-%{kversion}-%{buildrpmrel} linux
535    
536     %preun -n %{kname}-source-%{buildrel}
537     for i in /lib/modules/%{kversion}-{desktop586,desktop,server}-%{buildrpmrel}/{build,source}; do
538     if [ -L $i ]; then
539     if [ "$(readlink $i)" = "/usr/src/linux-%{kversion}-%{buildrpmrel}" ]; then
540     rm -f $i
541     fi
542     fi
543     done
544     if [ -L /usr/src/linux ]; then
545     if [ "$(readlink /usr/src/linux)" = "linux-%{kversion}-%{buildrpmrel}" ]; then
546     rm -f /usr/src/linux
547     fi
548     fi
549     exit 0
550    
551     #
552     # kernel-source-latest: virtual rpm
553     #
554     %package -n %{kname}-source-latest
555     Version: %{kversion}
556     Release: %{rpmrel}
557     Summary: Virtual rpm for latest %{kname}-source
558     Group: Development/Kernel
559     Requires: %{kname}-source-%{buildrel}
560 tmb 128105 Buildarch: noarch
561 tmb 1214
562     %description -n %{kname}-source-latest
563     This package is a virtual rpm that aims to make sure you always have the
564     latest %{kname}-source installed...
565     %endif
566    
567     #
568     # kernel-doc: documentation for the Linux kernel
569     #
570     %if %build_doc
571     %package -n %{kname}-doc
572     Version: %{kversion}
573     Release: %{rpmrel}
574     Summary: Various documentation bits found in the %{kname} source
575     Group: Books/Computer books
576     Buildarch: noarch
577    
578     %description -n %{kname}-doc
579     This package contains documentation files from the %{kname} source.
580     Various bits of information about the Linux kernel and the device drivers
581     shipped with it are documented in these files. You also might want install
582     this package if you need a reference to the options that can be passed to
583     Linux kernel modules at load time.
584     %endif
585    
586     #
587     # End packages - here begins build stage
588     #
589     %prep
590     %setup -q -n %top_dir_name -c
591     %setup -q -n %top_dir_name -D -T -a100
592    
593     %define patches_dir ../%{patch_ver}/
594    
595     cd %src_dir
596    
597 tmb 127726 %if %sublevel
598 tmb 1214 %if %kpatch
599 tmb 127726 %if %prev_sublevel
600 tmb 1214 %patch1 -p1
601     %endif
602     %patch2 -p1
603     %else
604     %patch1 -p1
605     %endif
606     %else
607     %if %kpatch
608     %patch1 -p1
609     %endif
610     %endif
611     %if %kgit
612     %patch2 -p1
613     %endif
614    
615     %{patches_dir}/scripts/apply_patches
616    
617     # PATCH END
618    
619    
620     #
621     # Setup Begin
622     #
623    
624     # Prepare all the variables for calling create_configs
625    
626     %if %build_debug
627     %define debug --debug
628     %else
629     %define debug --no-debug
630     %endif
631    
632    
633     %{patches_dir}/scripts/create_configs %debug --user_cpu="%{target_arch}"
634    
635     # make sure the kernel has the sublevel we know it has...
636     LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
637    
638     # get rid of unwanted files
639     find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f
640    
641    
642     %build
643     # Common target directories
644     %define _kerneldir /usr/src/linux-%{kversion}-%{buildrpmrel}
645     %define _bootdir /boot
646     %define _modulesdir /lib/modules
647     %define _efidir %{_bootdir}/efi/mageia
648    
649     # Directories definition needed for building
650     %define temp_root %{build_dir}/temp-root
651     %define temp_source %{temp_root}%{_kerneldir}
652     %define temp_boot %{temp_root}%{_bootdir}
653     %define temp_modules %{temp_root}%{_modulesdir}
654    
655     PrepareKernel() {
656     name=$1
657     extension=$2
658     x86_dir=arch/x86/configs
659    
660     echo "Make config for kernel $extension"
661    
662     %smake -s mrproper
663    
664     if [ "%{target_arch}" == "i386" -o "%{target_arch}" == "x86_64" ]; then
665     if [ -z "$name" ]; then
666     cp ${x86_dir}/%{target_arch}_defconfig-desktop .config
667     else
668     cp ${x86_dir}/%{target_arch}_defconfig-$name .config
669     fi
670     else
671     if [ -z "$name" ]; then
672     cp arch/%{target_arch}/defconfig-desktop .config
673     else
674     cp arch/%{target_arch}/defconfig-$name .config
675     fi
676     fi
677    
678     # make sure EXTRAVERSION says what we want it to say
679 tmb 127726 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -$extension/" Makefile
680 tmb 1214
681     %smake oldconfig
682     }
683    
684     BuildKernel() {
685     KernelVer=$1
686    
687     echo "Building kernel $KernelVer"
688    
689 tmb 131661 %kmake -s all
690 tmb 1214
691 rtp 81319 # kirkwood boxes have u-boot
692     if [ "$KernelVer" = "%{kversion}-kirkwood-%{buildrpmrel}" ]; then
693     %kmake uImage
694     fi
695    
696 tmb 1214 # Start installing stuff
697     install -d %{temp_boot}
698     install -m 644 System.map %{temp_boot}/System.map-$KernelVer
699     install -m 644 .config %{temp_boot}/config-$KernelVer
700     gzip -c Module.symvers > %{temp_boot}/symvers-$KernelVer.gz
701    
702 tmb 128122 %ifarch %{arm}
703     if [ -f arch/arm/boot/uImage ]; then
704     cp -f arch/arm/boot/uImage %{temp_boot}/uImage-$KernelVer
705     else
706     cp -f arch/arm/boot/zImage %{temp_boot}/vmlinuz-$KernelVer
707     fi
708 tmb 1214 %else
709 tmb 128122 cp -f arch/%{target_arch}/boot/bzImage %{temp_boot}/vmlinuz-$KernelVer
710 tmb 1214 %endif
711    
712     # modules
713     install -d %{temp_modules}/$KernelVer
714     %smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=$KernelVer modules_install
715    
716     # remove /lib/firmware, we use a separate kernel-firmware
717     rm -rf %{temp_root}/lib/firmware
718     }
719    
720     SaveDevel() {
721     devel_flavour=$1
722    
723     DevelRoot=/usr/src/linux-%{kversion}-$devel_flavour-%{buildrpmrel}
724     TempDevelRoot=%{temp_root}$DevelRoot
725    
726     mkdir -p $TempDevelRoot
727     for i in $(find . -name 'Makefile*'); do cp -R --parents $i $TempDevelRoot;done
728     for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*'); do cp -R --parents $i $TempDevelRoot;done
729     cp -fR include $TempDevelRoot
730     cp -fR scripts $TempDevelRoot
731     cp -fR kernel/bounds.c $TempDevelRoot/kernel
732 tmb 82800 %ifarch %{arm}
733     cp -fR arch/%{target_arch}/tools $TempDevelRoot/arch/%{target_arch}/
734     %endif
735 tmb 1214 %ifarch %{ix86} x86_64
736     cp -fR arch/x86/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/x86/kernel/
737     cp -fR arch/x86/kernel/asm-offsets_{32,64}.c $TempDevelRoot/arch/x86/kernel/
738     cp -fR arch/x86/include $TempDevelRoot/arch/x86/
739     %else
740     cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/%{target_arch}/kernel/
741 rtp 81319 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f $TempDevelRoot; done
742 tmb 1214 %endif
743     cp -fR .config Module.symvers $TempDevelRoot
744     cp -fR 3rdparty/mkbuild.pl $TempDevelRoot/3rdparty
745    
746     # Needed for truecrypt build (Danny)
747     cp -fR drivers/md/dm.h $TempDevelRoot/drivers/md/
748    
749     # Needed for lguest
750     cp -fR drivers/lguest/lg.h $TempDevelRoot/drivers/lguest/
751    
752     # Needed for lirc_gpio (#39004)
753     cp -fR drivers/media/video/bt8xx/bttv{,p}.h $TempDevelRoot/drivers/media/video/bt8xx/
754     cp -fR drivers/media/video/bt8xx/bt848.h $TempDevelRoot/drivers/media/video/bt8xx/
755     cp -fR drivers/media/video/btcx-risc.h $TempDevelRoot/drivers/media/video/
756    
757     # Needed for external dvb tree (#41418)
758     cp -fR drivers/media/dvb/dvb-core/*.h $TempDevelRoot/drivers/media/dvb/dvb-core/
759     cp -fR drivers/media/dvb/frontends/lgdt330x.h $TempDevelRoot/drivers/media/dvb/frontends/
760    
761     # add acpica header files, needed for fglrx build
762     cp -fR drivers/acpi/acpica/*.h $TempDevelRoot/drivers/acpi/acpica/
763    
764 tmb 60143 # aufs2 has a special file needed
765 tmb 124479 #cp -fR fs/aufs/magic.mk $TempDevelRoot/fs/aufs
766 tmb 60143
767 tmb 128122 for i in alpha avr32 blackfin cris frv h8300 ia64 m32r m68k m68knommu microblaze \
768     mips mn10300 parisc powerpc s390 score sh sparc tile unicore32 xtensa; do
769 tmb 1214 rm -rf $TempDevelRoot/arch/$i
770     done
771    
772 tmb 82800 %ifnarch %{arm}
773     rm -rf $TempDevelRoot/arch/arm
774     %endif
775 tmb 1214 %ifnarch %{ix86} x86_64
776     rm -rf $TempDevelRoot/arch/x86
777     %endif
778    
779     # Clean the scripts tree, and make sure everything is ok (sanity check)
780     # running prepare+scripts (tree was already "prepared" in build)
781     pushd $TempDevelRoot >/dev/null
782     %smake -s prepare scripts
783     %smake -s clean
784     popd >/dev/null
785     rm -f $TempDevelRoot/.config.old
786    
787     # fix permissions
788     chmod -R a+rX $TempDevelRoot
789    
790     # disable mrproper in -devel rpms
791     patch -p1 --fuzz=0 -d $TempDevelRoot -i %{SOURCE2}
792    
793     kernel_devel_files=../kernel_devel_files.$devel_flavour
794    
795    
796     ### Create the kernel_devel_files.*
797     cat > $kernel_devel_files <<EOF
798     %defattr(-,root,root)
799     %dir $DevelRoot
800     %dir $DevelRoot/arch
801     %dir $DevelRoot/include
802     $DevelRoot/3rdparty
803     $DevelRoot/Documentation
804 tmb 82800 %ifarch %{arm}
805     $DevelRoot/arch/arm
806     %endif
807 tmb 1214 $DevelRoot/arch/um
808     %ifarch %{ix86} x86_64
809     $DevelRoot/arch/x86
810     %endif
811     $DevelRoot/block
812     $DevelRoot/crypto
813     $DevelRoot/drivers
814     $DevelRoot/firmware
815     $DevelRoot/fs
816     $DevelRoot/include/Kbuild
817     $DevelRoot/include/acpi
818     $DevelRoot/include/asm-generic
819     $DevelRoot/include/config
820     $DevelRoot/include/crypto
821     $DevelRoot/include/drm
822     $DevelRoot/include/generated
823     $DevelRoot/include/keys
824     $DevelRoot/include/linux
825     $DevelRoot/include/math-emu
826     $DevelRoot/include/media
827     $DevelRoot/include/mtd
828     $DevelRoot/include/net
829     $DevelRoot/include/pcmcia
830     $DevelRoot/include/rdma
831     $DevelRoot/include/rxrpc
832     $DevelRoot/include/scsi
833     $DevelRoot/include/sound
834 tmb 74925 $DevelRoot/include/target
835 tmb 1214 $DevelRoot/include/trace
836     $DevelRoot/include/video
837     $DevelRoot/include/xen
838     $DevelRoot/init
839     $DevelRoot/ipc
840     $DevelRoot/kernel
841     $DevelRoot/lib
842     $DevelRoot/mm
843     $DevelRoot/net
844     $DevelRoot/samples
845     $DevelRoot/scripts
846     $DevelRoot/security
847     $DevelRoot/sound
848     $DevelRoot/tools
849     $DevelRoot/usr
850     $DevelRoot/virt
851     $DevelRoot/.config
852     $DevelRoot/Kbuild
853     $DevelRoot/Kconfig
854     $DevelRoot/Makefile
855     $DevelRoot/Module.symvers
856     $DevelRoot/arch/Kconfig
857     %doc README.kernel-sources
858     EOF
859    
860    
861     ### Create -devel Post script on the fly
862     cat > $kernel_devel_files-post <<EOF
863     if [ -d /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel} ]; then
864     rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/{build,source}
865     ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
866     ln -sf $DevelRoot /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
867     fi
868     EOF
869    
870    
871     ### Create -devel Preun script on the fly
872     cat > $kernel_devel_files-preun <<EOF
873     if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build ]; then
874     rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/build
875     fi
876     if [ -L /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source ]; then
877     rm -f /lib/modules/%{kversion}-$devel_flavour-%{buildrpmrel}/source
878     fi
879     exit 0
880     EOF
881     }
882    
883     SaveDebug() {
884     debug_flavour=$1
885    
886     install -m 644 vmlinux \
887     %{temp_boot}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}
888     kernel_debug_files=../kernel_debug_files.$debug_flavour
889     echo "%defattr(-,root,root)" > $kernel_debug_files
890     echo "%{_bootdir}/vmlinux-%{kversion}-$debug_flavour-%{buildrpmrel}" \
891     >> $kernel_debug_files
892    
893     find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
894     -name "*.ko" | \
895     %kxargs -I '{}' objcopy --only-keep-debug '{}' '{}'.debug
896     find %{temp_modules}/%{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
897     -name "*.ko" | %kxargs -I '{}' \
898     sh -c 'cd `dirname {}`; \
899     objcopy --add-gnu-debuglink=`basename {}`.debug \
900     --strip-debug `basename {}`'
901    
902     pushd %{temp_modules}
903     find %{kversion}-$debug_flavour-%{buildrpmrel}/kernel \
904     -name "*.ko.debug" > debug_module_list
905     popd
906     cat %{temp_modules}/debug_module_list | \
907     sed 's|\(.*\)|%{_modulesdir}/\1|' >> $kernel_debug_files
908     cat %{temp_modules}/debug_module_list | \
909     sed 's|\(.*\)|%exclude %{_modulesdir}/\1|' \
910     >> ../kernel_exclude_debug_files.$debug_flavour
911     rm -f %{temp_modules}/debug_module_list
912     }
913    
914     CreateFiles() {
915     kernel_flavour=$1
916    
917     kernel_files=../kernel_files.$kernel_flavour
918    
919 rtp 81319 ker="vmlinuz"
920     if [ "$kernel_flavour" = "kirkwood" ]; then
921     ker="uImage"
922     fi
923 tmb 1214 ### Create the kernel_files.*
924     cat > $kernel_files <<EOF
925     %defattr(-,root,root)
926     %{_bootdir}/System.map-%{kversion}-$kernel_flavour-%{buildrpmrel}
927     %{_bootdir}/symvers-%{kversion}-$kernel_flavour-%{buildrpmrel}.gz
928     %{_bootdir}/config-%{kversion}-$kernel_flavour-%{buildrpmrel}
929 rtp 81319 %{_bootdir}/$ker-%{kversion}-$kernel_flavour-%{buildrpmrel}
930 tmb 1214 %dir %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/
931     %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/kernel
932     %{_modulesdir}/%{kversion}-$kernel_flavour-%{buildrpmrel}/modules.*
933     %doc README.kernel-sources
934     EOF
935    
936 tmb 128122 %if %build_debug
937     cat ../kernel_exclude_debug_files.$kernel_flavour >> $kernel_files
938     %endif
939 tmb 1214
940     ### Create kernel Post script
941     cat > $kernel_files-post <<EOF
942 tmb 82800 %ifarch %{arm}
943 rtp 81319 /sbin/installkernel -i -N %{kversion}-$kernel_flavour-%{buildrpmrel}
944     %else
945 tmb 1214 /sbin/installkernel %{kversion}-$kernel_flavour-%{buildrpmrel}
946     pushd /boot > /dev/null
947     if [ -L vmlinuz-$kernel_flavour ]; then
948     rm -f vmlinuz-$kernel_flavour
949     fi
950     ln -sf vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel} vmlinuz-$kernel_flavour
951     if [ -L initrd-$kernel_flavour.img ]; then
952     rm -f initrd-$kernel_flavour.img
953     fi
954     ln -sf initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img initrd-$kernel_flavour.img
955     popd > /dev/null
956 rtp 81319 %endif
957 tmb 1214 %if %build_devel
958     # create kernel-devel symlinks if matching -devel- rpm is installed
959     if [ -d /usr/src/linux-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
960     rm -f /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/{build,source}
961     ln -sf /usr/src/linux-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build
962     ln -sf /usr/src/linux-%{kversion}-$kernel_flavour-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source
963     fi
964     %endif
965     %if %build_source
966     # create kernel-source symlinks only if matching -devel- rpm is not installed
967     if [ -d /usr/src/linux-%{kversion}-%{buildrpmrel} -a ! -d /usr/src/linux-%{kversion}-$kernel_flavour-%{buildrpmrel} ]; then
968     rm -f /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/{build,source}
969     ln -sf /usr/src/linux-%{kversion}-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build
970     ln -sf /usr/src/linux-%{kversion}-%{buildrpmrel} /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source
971     fi
972     %endif
973     EOF
974    
975    
976     ### Create kernel Preun script on the fly
977     cat > $kernel_files-preun <<EOF
978     /sbin/installkernel -R %{kversion}-$kernel_flavour-%{buildrpmrel}
979     pushd /boot > /dev/null
980     if [ -L vmlinuz-$kernel_flavour ]; then
981     if [ "$(readlink vmlinuz-$kernel_flavour)" = "vmlinuz-%{kversion}-$kernel_flavour-%{buildrpmrel}" ]; then
982     rm -f vmlinuz-$kernel_flavour
983     fi
984     fi
985     if [ -L initrd-$kernel_flavour.img ]; then
986     if [ "$(readlink initrd-$kernel_flavour.img)" = "initrd-%{kversion}-$kernel_flavour-%{buildrpmrel}.img" ]; then
987     rm -f initrd-$kernel_flavour.img
988     fi
989     fi
990     popd > /dev/null
991     %if %build_devel
992     if [ -L /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build ]; then
993     rm -f /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/build
994     fi
995     if [ -L /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source ]; then
996     rm -f /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel}/source
997     fi
998     %endif
999     exit 0
1000     EOF
1001    
1002    
1003     ### Create kernel Postun script on the fly
1004     cat > $kernel_files-postun <<EOF
1005     /sbin/kernel_remove_initrd %{kversion}-$kernel_flavour-%{buildrpmrel}
1006 tmb 96569 rm -rf /lib/modules/%{kversion}-$kernel_flavour-%{buildrpmrel} >/dev/null
1007 tmb 1214 EOF
1008     }
1009    
1010    
1011     CreateKernel() {
1012     flavour=$1
1013    
1014     PrepareKernel $flavour $flavour-%{buildrpmrel}
1015    
1016     BuildKernel %{kversion}-$flavour-%{buildrpmrel}
1017     %if %build_devel
1018     SaveDevel $flavour
1019     %endif
1020     %if %build_debug
1021     SaveDebug $flavour
1022     %endif
1023     CreateFiles $flavour
1024     }
1025    
1026    
1027     ###
1028     # DO it...
1029     ###
1030    
1031    
1032     # Create a simulacro of buildroot
1033     rm -rf %{temp_root}
1034     install -d %{temp_root}
1035    
1036    
1037     #make sure we are in the directory
1038     cd %src_dir
1039    
1040     %ifarch %{ix86}
1041     %if %build_desktop586
1042     CreateKernel desktop586
1043     %endif
1044     %endif
1045    
1046     %if %build_desktop
1047     CreateKernel desktop
1048     %endif
1049    
1050 tmb 77904 %if %build_netbook
1051     CreateKernel netbook
1052     %endif
1053    
1054 tmb 1214 %if %build_server
1055     CreateKernel server
1056     %endif
1057    
1058 tmb 83006 %if %build_xen_pvops
1059     CreateKernel xen-pvops
1060     %endif
1061    
1062 tmb 82800 %ifarch %{arm}
1063 rtp 81319 %if %build_iop32x
1064     CreateKernel iop32x
1065     %endif
1066     %if %build_kirkwood
1067     CreateKernel kirkwood
1068     %endif
1069     %if %build_versatile
1070     CreateKernel versatile
1071     %endif
1072     %endif
1073 tmb 1214
1074 rtp 81319
1075 tmb 1214 # We don't make to repeat the depend code at the install phase
1076     %if %build_source
1077 tmb 82800 %ifarch %{arm}
1078 rtp 81319 PrepareKernel "kirkwood" %{buildrpmrel}custom
1079     %else
1080 tmb 1214 PrepareKernel "" %{buildrpmrel}custom
1081 rtp 81319 %endif
1082 tmb 1214 %smake -s mrproper
1083     %endif
1084    
1085    
1086     ###
1087     ### install
1088     ###
1089     %install
1090     install -m 644 %{SOURCE4} .
1091    
1092     cd %src_dir
1093    
1094     # Directories definition needed for installing
1095     %define target_source %{buildroot}%{_kerneldir}
1096     %define target_boot %{buildroot}%{_bootdir}
1097     %define target_modules %{buildroot}%{_modulesdir}
1098    
1099     # We want to be able to test several times the install part
1100     rm -rf %{buildroot}
1101     cp -a %{temp_root} %{buildroot}
1102    
1103     # Create directories infastructure
1104     %if %build_source
1105     install -d %{target_source}
1106    
1107     tar cf - . | tar xf - -C %{target_source}
1108     chmod -R a+rX %{target_source}
1109    
1110     # we remove all the source files that we don't ship
1111     # first architecture files
1112 tmb 128122 for i in alpha avr32 blackfin cris frv h8300 ia64 m32r m68k m68knommu microblaze \
1113     mips parisc powerpc s390 score sh sh64 sparc tile unicore32 v850 xtensa mn10300; do
1114 tmb 1214 rm -rf %{target_source}/arch/$i
1115     done
1116    
1117     # other misc files
1118     rm -f %{target_source}/{.config.old,.config.cmd,.gitignore,.lst,.mailmap}
1119     rm -f %{target_source}/{.missing-syscalls.d,arch/.gitignore,firmware/.gitignore}
1120 tmb 124479 rm -rf %{target_source}/.tmp_depmod/
1121 tmb 1214
1122     #endif %build_source
1123     %endif
1124    
1125     # gzipping modules
1126     find %{target_modules} -name "*.ko" | %kxargs gzip -9
1127    
1128     # We used to have a copy of PrepareKernel here
1129     # Now, we make sure that the thing in the linux dir is what we want it to be
1130     for i in %{target_modules}/*; do
1131     rm -f $i/build $i/source
1132     done
1133    
1134     # sniff, if we gzipped all the modules, we change the stamp :(
1135     # we really need the depmod -ae here
1136     pushd %{target_modules}
1137     for i in *; do
1138     /sbin/depmod -u -ae -b %{buildroot} -r -F %{target_boot}/System.map-$i $i
1139     echo $?
1140     done
1141    
1142     for i in *; do
1143     pushd $i
1144     echo "Creating modules.description for $i"
1145     modules=`find . -name "*.ko.gz"`
1146     echo $modules | %kxargs /sbin/modinfo \
1147     | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
1148     popd
1149     done
1150     popd
1151    
1152    
1153     ###
1154     ### clean
1155     ###
1156     %clean
1157     rm -rf %{buildroot}
1158    
1159    
1160     # We don't want to remove this, the whole reason of its existence is to be
1161     # able to do several rpm --short-circuit -bi for testing install
1162     # phase without repeating compilation phase
1163     #rm -rf %{temp_root}
1164    
1165     ###
1166     ### source and doc file lists
1167     ###
1168    
1169     %if %build_source
1170     %files -n %{kname}-source-%{buildrel}
1171     %defattr(-,root,root)
1172     %dir %{_kerneldir}
1173     %dir %{_kerneldir}/arch
1174     %dir %{_kerneldir}/include
1175     %{_kerneldir}/3rdparty
1176     %{_kerneldir}/Documentation
1177     %{_kerneldir}/arch/Kconfig
1178 tmb 82800 %{_kerneldir}/arch/arm
1179 tmb 1214 %{_kerneldir}/arch/um
1180     %{_kerneldir}/arch/x86
1181     %{_kerneldir}/block
1182     %{_kerneldir}/crypto
1183     %{_kerneldir}/drivers
1184     %{_kerneldir}/firmware
1185     %{_kerneldir}/fs
1186     %{_kerneldir}/include/Kbuild
1187     %{_kerneldir}/include/acpi
1188     %{_kerneldir}/include/asm-generic
1189     %{_kerneldir}/include/crypto
1190     %{_kerneldir}/include/drm
1191     %{_kerneldir}/include/keys
1192     %{_kerneldir}/include/linux
1193     %{_kerneldir}/include/math-emu
1194     %{_kerneldir}/include/media
1195     %{_kerneldir}/include/mtd
1196     %{_kerneldir}/include/net
1197     %{_kerneldir}/include/pcmcia
1198     %{_kerneldir}/include/rdma
1199     %{_kerneldir}/include/rxrpc
1200     %{_kerneldir}/include/scsi
1201     %{_kerneldir}/include/sound
1202 tmb 74925 %{_kerneldir}/include/target
1203 tmb 1214 %{_kerneldir}/include/trace
1204     %{_kerneldir}/include/video
1205     %{_kerneldir}/include/xen
1206     %{_kerneldir}/init
1207     %{_kerneldir}/ipc
1208     %{_kerneldir}/kernel
1209     %{_kerneldir}/lib
1210     %{_kerneldir}/mm
1211     %{_kerneldir}/net
1212     %{_kerneldir}/virt
1213     %{_kerneldir}/samples
1214     %{_kerneldir}/scripts
1215     %{_kerneldir}/security
1216     %{_kerneldir}/sound
1217     %{_kerneldir}/tools
1218     %{_kerneldir}/usr
1219     %{_kerneldir}/COPYING
1220     %{_kerneldir}/CREDITS
1221     %{_kerneldir}/Kbuild
1222     %{_kerneldir}/Kconfig
1223     %{_kerneldir}/MAINTAINERS
1224     %{_kerneldir}/Makefile
1225     %{_kerneldir}/README
1226     %{_kerneldir}/REPORTING-BUGS
1227     %doc README.kernel-sources
1228    
1229     %files -n %{kname}-source-latest
1230     %defattr(-,root,root)
1231     %endif
1232    
1233     %if %build_doc
1234     %files -n %{kname}-doc
1235     %defattr(-,root,root)
1236     %doc linux-%{tar_ver}/Documentation/*
1237     %endif

  ViewVC Help
Powered by ViewVC 1.1.30