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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 264267 - (hide annotations) (download)
Tue Jun 26 23:38:02 2012 UTC (11 years, 10 months ago) by tmb
File size: 24687 byte(s)
update to 3.4.4-rt13
1 tmb 131493 # kernel version
2 tmb 128177 %define kernelversion 3
3 tmb 258741 %define patchlevel 4
4 tmb 128177 # sublevel is now used for -stable patches
5 tmb 264267 %define sublevel 4
6 tmb 128177
7     # kernel Makefile extraversion is substituted by
8     # kpatch/kgit wich are either 0 (empty), rc (kpatch), git (kgit)
9     %define kpatch 0
10    
11     # kernel.org -gitX patch (only the number after "git")
12     %define kgit 0
13    
14     # this is the releaseversion
15 tmb 131727 %define mgarelease 1
16 tmb 128177
17     # this is the -rt release
18 tmb 264267 %define rt_ver 3.4.4
19     %define rt_rel rt13
20 tmb 128177
21     # This is only to make life easier for people that creates derivated kernels
22     # a.k.a name it kernel-tmb :)
23     %define kname kernel-rt
24    
25     %define rpmtag %{distsuffix}%{mgaver}
26     %if %kpatch
27     %if %kgit
28     %define rpmrel %mkrel 0.%{kpatch}.%{kgit}.%{rt_rel}.%{mgarelease}
29     %else
30     %define rpmrel %mkrel 0.%{kpatch}.%{rt_rel}.%{mgarelease}
31     %endif
32     %else
33     %define rpmrel %mkrel 0.%{rt_rel}.%{mgarelease}
34     %endif
35    
36     # theese two never change, they are used to fool rpm/urpmi/smart
37     %define fakever 1
38     %define fakerel %mkrel 1
39    
40     # When we are using a pre/rc patch, the tarball is a sublevel -1
41     %if %kpatch
42     %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
43     %define tar_ver %{kernelversion}.%(expr %{patchlevel} - 1)
44     %else
45     %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
46     %define tar_ver %{kernelversion}.%{patchlevel}
47     %endif
48     %define kverrel %{kversion}-%{rpmrel}
49    
50     # used for not making too long names for rpms or search paths
51     %if %kpatch
52     %if %kgit
53     %define buildrpmrel 0.%{kpatch}.%{kgit}.%{rt_rel}.%{mgarelease}%{rpmtag}
54     %else
55     %define buildrpmrel 0.%{kpatch}.%{rt_rel}.%{mgarelease}%{rpmtag}
56     %endif
57     %else
58     %define buildrpmrel 0.%{rt_rel}.%{mgarelease}%{rpmtag}
59     %endif
60    
61     %define buildrel %{kversion}-%{buildrpmrel}
62    
63     %define rt_notice NOTE: This kernel has no Mageia patches besides the -rt patch and no third-party drivers.
64    
65     # having different top level names for packges means that you have to remove them by hard :(
66     %define top_dir_name %{kname}-%{_arch}
67    
68     %define build_dir ${RPM_BUILD_DIR}/%{top_dir_name}
69     %define src_dir %{build_dir}/linux-%{tar_ver}
70    
71     # disable useless debug rpms...
72     %define _enable_debug_packages %{nil}
73     %define debug_package %{nil}
74    
75     # build defines
76     %define build_doc 1
77     %define build_source 1
78     %define build_devel 1
79    
80     %define build_kernel 1
81    
82     %define distro_branch %(perl -pe '/(\\d+)\\.(\\d)\\.?(\\d)?/; $_="$1.$2"' /etc/mageia-release)
83    
84     # End of user definitions
85     %{?_without_kernel: %global build_kernel 0}
86     %{?_without_doc: %global build_doc 0}
87     %{?_without_source: %global build_source 0}
88     %{?_without_devel: %global build_devel 0}
89    
90     %{?_with_kernel: %global build_kernel 1}
91     %{?_with_doc: %global build_doc 1}
92     %{?_with_source: %global build_source 1}
93     %{?_with_devel: %global build_devel 1}
94    
95     %if %(if [ -z "$CC" ] ; then echo 0; else echo 1; fi)
96     %define kmake %make CC="$CC"
97     %else
98     %define kmake %make
99     %endif
100     # there are places where parallel make don't work
101     %define smake make
102    
103     # Parallelize xargs invocations on smp machines
104     %define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\
105     && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
106     [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS")
107    
108     # Aliases for amd64 builds (better make source links?)
109     %define target_cpu %(echo %{_target_cpu} | sed -e "s/amd64/x86_64/")
110     %define target_arch %(echo %{_arch} | sed -e "s/amd64/x86_64/" -e 's/arm.*/arm/')
111    
112     # src.rpm description
113     Summary: The Linux kernel (the core of the Linux operating system)
114     Name: %{kname}
115     Version: %{kversion}
116     Release: %{rpmrel}
117     License: GPLv2
118     Group: System/Kernel and hardware
119     ExclusiveArch: %{ix86} x86_64 %{arm}
120     ExclusiveOS: Linux
121 tmb 128234 URL: https://rt.wiki.kernel.org/
122 tmb 128177
123     ####################################################################
124     #
125     # Sources
126     #
127     ### This is for full SRC RPM
128 tmb 201865 Source0: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.xz
129     Source1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.sign
130 tmb 128177
131     # This is for disabling mrproper and other targets on -devel rpms
132     Source2: disable-mrproper-in-devel-rpms.patch
133    
134     Source4: README.kernel-sources
135    
136     # Kernel defconfigs
137     Source20: i386_defconfig
138     Source21: x86_64_defconfig
139     Source22: arm_defconfig
140    
141     ####################################################################
142     #
143     # Patches
144    
145     #
146     # Patch0 to Patch100 are for core kernel upgrades.
147     #
148    
149     # Pre linus patch: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing
150    
151     %if %kpatch
152 tmb 173093 Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.xz
153     Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.sign
154 tmb 128177 %endif
155     %if %sublevel
156 tmb 158007 Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kversion}.xz
157     Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kversion}.sign
158 tmb 128177 %endif
159     # kernel.org -git
160     %if %kgit
161 tmb 173093 Patch2: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/snapshots/patch-%{kernelversion}.%{patchlevel}-%{kpatch}-git%{kgit}.xz
162     Source11: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/snapshots/patch-%{kernelversion}.%{patchlevel}-%{kpatch}-git%{kgit}.sign
163 tmb 128177 %endif
164    
165     # -rt patches
166 tmb 173093 Patch101: ftp://ftp.kernel.org/pub/linux/kernel/projects/rt/patch-%{rt_ver}-%{rt_rel}.patch.xz
167     Source101: ftp://ftp.kernel.org/pub/linux/kernel/projects/rt/patch-%{rt_ver}-%{rt_rel}.patch.sign
168 tmb 128177
169     #END
170     ####################################################################
171    
172     # Defines for the things that are needed for all the kernels
173 tmb 255650 %define requires1 kmod >= 7-6
174 tmb 233320 %define requires2 dracut >= 017-9
175 tmb 128177 %define requires3 bootloader-utils >= 1.9
176     %define requires4 sysfsutils
177     %define requires5 kernel-firmware >= 20101024
178    
179     %define kprovides kernel = %{tar_ver}, alsa
180    
181     Autoreqprov: no
182 tmb 258747 BuildRequires: gcc kmod >= 7-6
183 tmb 128177 %ifarch %{arm}
184 tmb 201856 BuildRequires: uboot-mkimage
185 tmb 128177 %endif
186    
187     %description
188     Source package to build the Linux kernel.
189    
190     %{rt_notice}
191    
192    
193     #
194     # kernel: Symmetric MultiProcessing kernel
195     #
196     %if %build_kernel
197     %package -n %{kname}-%{buildrel}
198     Version: %{fakever}
199     Release: %{fakerel}
200     %ifarch %{ix86}
201 tmb 128234 Summary: Linux realtime kernel for desktop use with i686 & 4GB RAM
202 tmb 128177 %else
203     %ifarch %{arm}
204 tmb 128234 Linux realtime kernel for Arm machines based on Kirkwood
205 tmb 128177 %else
206 tmb 128234 Summary: Linux realtime kernel for desktop use with %{_arch}
207 tmb 128177 %endif
208     %endif
209     Group: System/Kernel and hardware
210     Provides: %kprovides
211     Provides: should-restart = system
212     Requires: %requires1
213     Requires: %requires2
214     Requires: %requires3
215     Requires: %requires4
216     Requires: %requires5
217    
218     %ifarch %{ix86}
219     Conflicts: arch(x86_64)
220     %endif
221    
222     %description -n %{kname}-%{buildrel}
223     %ifarch %{ix86}
224 tmb 128234 This kernel is compiled for desktop use, single or multiple i686
225     processor(s)/core(s) and less than 4GB RAM, using HZ_1000, realtime
226 tmb 128177 preempt, CFS cpu scheduler and cfq i/o scheduler.
227     This kernel relies on in-kernel smp alternatives to switch between
228     up & smp mode depending on detected hardware. To force the kernel
229     to boot in single processor mode, use the "nosmp" boot parameter.
230     %else
231     %ifarch %{arm}
232     This kernel is compiled for Arm Kirkwood boxes. It will run on openrd
233 tmb 128234 boards. It's configured using HZ_100, realtime preempt, CFS cpu scheduler
234     and cfq i/o scheduler.
235 tmb 128177 This kernel relies on in-kernel smp alternatives to switch between
236     up & smp mode depending on detected hardware. To force the kernel
237     to boot in single processor mode, use the "nosmp" boot parameter.
238     %else
239     This kernel is compiled for desktop use, single or multiple %{_arch}
240 tmb 128234 processor(s)/core(s), using HZ_1000, realtime preempt, CFS cpu
241 tmb 128177 scheduler and cfq i/o scheduler.
242     This kernel relies on in-kernel smp alternatives to switch between
243     up & smp mode depending on detected hardware. To force the kernel
244     to boot in single processor mode, use the "nosmp" boot parameter.
245     %endif
246     %endif
247    
248     %{rt_notice}
249     %endif # build_kernel
250    
251    
252     #
253     # kernel-source: kernel sources
254     #
255     %if %build_source
256     %package -n %{kname}-source-%{buildrel}
257     Version: %{fakever}
258     Release: %{fakerel}
259     Provides: %{kname}-source, kernel-source = %{kverrel}
260     Provides: %{kname}-source-%{kernelversion}.%{patchlevel}
261     Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
262     Summary: The source code for the Linux kernel
263     Group: Development/Kernel
264     Autoreqprov: no
265     Buildarch: noarch
266    
267     %description -n %{kname}-source-%{buildrel}
268     The %{kname}-source package contains the source code files for the
269     Linux kernel. Theese source files are only needed if you want to build
270     your own custom kernel that is better tuned to your particular hardware.
271    
272     If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
273     drivers against, install the *-devel-* rpm that is matching your kernel.
274    
275     %{rt_notice}
276     %endif #build_source
277    
278    
279     #
280     # kernel-devel: stripped kernel sources
281     #
282     %if %build_devel
283     %package -n %{kname}-devel-%{buildrel}
284     Version: %{fakever}
285     Release: %{fakerel}
286     Provides: kernel-devel = %{kverrel}
287     Summary: The %{kname} devel files for 3rdparty modules build
288     Group: Development/Kernel
289     Autoreqprov: no
290     Requires: glibc-devel, ncurses-devel, make, gcc, perl
291     %ifarch %{ix86}
292     Conflicts: arch(x86_64)
293     %endif
294    
295     %description -n %{kname}-devel-%{buildrel}
296     This package contains the kernel-devel files that should be enough to build
297     3rdparty drivers against for use with the %{kname}-%{buildrel}.
298    
299     If you want to build your own kernel, you need to install the full
300     %{kname}-source-%{buildrel} rpm.
301    
302     %{rt_notice}
303     %endif #build_devel
304    
305    
306     #
307     # kernel-doc: documentation for the Linux kernel
308     #
309     %if %build_doc
310     %package -n %{kname}-doc
311     Version: %{kversion}
312     Release: %{rpmrel}
313     Summary: Various documentation bits found in the kernel source
314     Group: Books/Computer books
315     Buildarch: noarch
316    
317     %description -n %{kname}-doc
318     This package contains documentation files form the kernel source. Various
319     bits of information about the Linux kernel and the device drivers shipped
320     with it are documented in these files. You also might want install this
321     package if you need a reference to the options that can be passed to Linux
322     kernel modules at load time.
323    
324     %{rt_notice}
325     %endif #build_doc
326    
327    
328     #
329     # kernel-latest: virtual rpm
330     #
331     %if %build_kernel
332     %package -n %{kname}-latest
333     Version: %{kversion}
334     Release: %{rpmrel}
335     Summary: Virtual rpm for latest %{kname}
336     Group: System/Kernel and hardware
337     Requires: %{kname}-%{buildrel}
338     %ifarch %{ix86}
339     Conflicts: arch(x86_64)
340     %endif
341    
342     %description -n %{kname}-latest
343     This package is a virtual rpm that aims to make sure you always have the
344     latest %{kname} installed...
345    
346     %{rt_notice}
347     %endif #build_kernel
348    
349    
350     #
351     # kernel-source-latest: virtual rpm
352     #
353     %if %build_source
354     %package -n %{kname}-source-latest
355     Version: %{kversion}
356     Release: %{rpmrel}
357     Summary: Virtual rpm for latest %{kname}-source
358     Group: System/Kernel and hardware
359     Requires: %{kname}-source-%{buildrel}
360     Buildarch: noarch
361    
362     %description -n %{kname}-source-latest
363     This package is a virtual rpm that aims to make sure you always have the
364     latest %{kname}-source installed...
365    
366     %{rt_notice}
367     %endif #build_source
368    
369    
370     #
371     # kernel-devel-latest: virtual rpm
372     #
373     %if %build_devel
374     %package -n %{kname}-devel-latest
375     Version: %{kversion}
376     Release: %{rpmrel}
377     Summary: Virtual rpm for latest %{kname}-devel
378     Group: System/Kernel and hardware
379     Requires: %{kname}-devel-%{buildrel}
380     %ifarch %{ix86}
381     Conflicts: arch(x86_64)
382     %endif
383    
384     %description -n %{kname}-devel-latest
385     This package is a virtual rpm that aims to make sure you always have the
386     latest %{kname}-devel installed...
387    
388     %{rt_notice}
389     %endif #build_devel
390    
391    
392     #
393     # End packages - here begins build stage
394     #
395     %prep
396     %setup -q -n %top_dir_name -c
397    
398     pushd %src_dir
399     %if %kpatch
400     %patch1 -p1
401     %endif
402     %if %sublevel
403     %patch1 -p1
404     %endif
405     %if %kgit
406     %patch2 -p1
407     %endif
408    
409     # rt patches
410     %patch101 -p1
411    
412     popd
413    
414     # PATCH END
415    
416    
417     #
418     # Setup Begin
419     #
420    
421    
422     # Install defconfigs...
423     install %{SOURCE20} %{build_dir}/linux-%{tar_ver}/arch/x86/configs/
424     install %{SOURCE21} %{build_dir}/linux-%{tar_ver}/arch/x86/configs/
425     install %{SOURCE22} %{build_dir}/linux-%{tar_ver}/arch/arm/configs/
426    
427     # make sure the kernel has the sublevel we know it has...
428     LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" linux-%{tar_ver}/Makefile
429    
430 tmb 131493 # drop localversion before build or it will mess up uname -r (we have it in kernel name/version)
431     rm -f %{build_dir}/linux-%{tar_ver}/localversion-rt
432 tmb 128177
433     %build
434     # Common target directories
435     %define _bootdir /boot
436     %define _modulesdir /lib/modules
437     %define _kerneldir /usr/src/%{kname}-%{buildrel}
438     %define _develdir /usr/src/%{kname}-devel-%{buildrel}
439    
440    
441     # Directories definition needed for building
442     %define temp_root %{build_dir}/temp-root
443     %define temp_boot %{temp_root}%{_bootdir}
444     %define temp_modules %{temp_root}%{_modulesdir}
445     %define temp_source %{temp_root}%{_kerneldir}
446     %define temp_devel %{temp_root}%{_develdir}
447    
448    
449     # Create a simulacro of buildroot
450     rm -rf %{temp_root}
451     install -d %{temp_root}
452    
453    
454     # make sure we are in the directory
455     cd %{src_dir}
456    
457     # make sure EXTRAVERSION says what we want it to say
458 tmb 131493 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{buildrpmrel}/" Makefile
459 tmb 128177
460     # Prepare the kernel
461     %smake -s mrproper
462     %ifarch %{ix86} x86_64 %{arm}
463     cp arch/x86/configs/%{target_arch}_defconfig .config
464     %else
465     cp arch/%{target_arch}/defconfig .config
466     %endif
467     %smake oldconfig
468    
469     # Build the kernel
470 tmb 131994 %kmake -s all
471 tmb 128177 %ifarch %{arm}
472     %kmake uImage
473     %endif
474     # Install kernel
475     install -d %{temp_boot}
476     install -m 644 System.map %{temp_boot}/System.map-%{buildrel}
477     install -m 644 .config %{temp_boot}/config-%{buildrel}
478     %ifarch %{arm}
479     cp -f arch/%{target_arch}/boot/uImage %{temp_boot}/uImage-$KernelVer
480     %else
481     cp -f arch/%{target_arch}/boot/bzImage %{temp_boot}/vmlinuz-%{buildrel}
482     %endif
483    
484     # Install modules
485     install -d %{temp_modules}/%{buildrel}
486     %smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=%{buildrel} modules_install
487    
488     # remove /lib/firmware, we use a separate kernel-firmware
489     rm -rf %{temp_root}/lib/firmware
490    
491     # Save devel tree
492     %if %build_devel
493     mkdir -p %{temp_devel}
494     for i in $(find . -name 'Makefile*'); do cp -R --parents $i %{temp_devel};done
495     for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*' -o -name config.mk); do cp -R --parents $i %{temp_devel};done
496     cp -fR include %{temp_devel}
497     cp -fR scripts %{temp_devel}
498 tmb 258746 cp -fR tools/include %{temp_devel}/tools/
499 tmb 128177 %ifarch %{arm}
500     cp -fR arch/%{target_arch}/tools $TempDevelRoot/arch/%{target_arch}/
501     %endif
502     %ifarch %{ix86} x86_64
503     cp -fR arch/x86/kernel/asm-offsets.{c,s} %{temp_devel}/arch/x86/kernel/
504     cp -fR arch/x86/kernel/asm-offsets_{32,64}.c %{temp_devel}/arch/x86/kernel/
505 tmb 258776 cp -fR arch/x86/syscalls/syscall* %{temp_devel}/arch/x86/syscalls/
506 tmb 128177 cp -fR arch/x86/include %{temp_devel}/arch/x86/
507 tmb 258746 cp -fR arch/x86/tools/relocs.c %{temp_devel}/arch/x86/tools/
508 tmb 128177 %else
509     cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} %{temp_devel}/arch/%{target_arch}/kernel/
510     for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f $TempDevelRoot; done
511     %endif
512    
513     # Needed for generation of kernel/bounds.s
514     cp -fR kernel/bounds.c %{temp_devel}/kernel/
515    
516     # Needed for lguest
517     cp -fR drivers/lguest/lg.h %{temp_devel}/drivers/lguest/
518    
519     cp -fR .config Module.symvers %{temp_devel}
520    
521     # Needed for truecrypt build (Danny)
522     cp -fR drivers/md/dm.h %{temp_devel}/drivers/md/
523    
524     # Needed for external dvb tree (#41418)
525     cp -fR drivers/media/dvb/dvb-core/*.h %{temp_devel}/drivers/media/dvb/dvb-core/
526     cp -fR drivers/media/dvb/frontends/lgdt330x.h %{temp_devel}/drivers/media/dvb/frontends/
527    
528     # add acpica header files, needed for fglrx build
529     cp -fR drivers/acpi/acpica/*.h %{temp_devel}/drivers/acpi/acpica/
530    
531     # Check and clean the -devel tree
532     pushd %{temp_devel} >/dev/null
533     %smake -s prepare scripts clean
534     rm -f .config.old
535     popd >/dev/null
536    
537     # Disable mrproper and other targets
538     patch -p1 -d %{temp_devel} -i %{SOURCE2}
539    
540     # Fix permissions
541     chmod -R a+rX %{temp_devel}
542     %endif # build_devel
543    
544     #make sure we are in the directory
545     cd %src_dir
546    
547     # kernel-source is shipped as an unprepared tree
548     %smake -s mrproper
549    
550    
551     ###
552     ### Install
553     ###
554     %install
555     install -m 644 %{SOURCE4} .
556    
557     cd %src_dir
558     # Directories definition needed for installing
559     %define target_source %{buildroot}/%{_kerneldir}
560     %define target_boot %{buildroot}%{_bootdir}
561     %define target_modules %{buildroot}%{_modulesdir}
562     %define target_devel %{buildroot}%{_develdir}
563    
564     # We want to be able to test several times the install part
565     rm -rf %{buildroot}
566     cp -a %{temp_root} %{buildroot}
567    
568     # Create directories infastructure
569     %if %build_source
570     install -d %{target_source}
571    
572     tar cf - . | tar xf - -C %{target_source}
573     chmod -R a+rX %{target_source}
574    
575     # we remove all the source files that we don't ship
576    
577     # first architecture files
578 tmb 258776 for i in alpha avr32 blackfin c6x cris frv hexagon h8300 ia64 m32r mips \
579     microblaze m68k m68knommu mn10300 openrisc parisc powerpc ppc \
580     s390 score sh sh64 sparc tile unicore32 v850 xtensa; do
581 tmb 128177 rm -rf %{target_source}/arch/$i
582    
583     %if %build_devel
584     rm -rf %{target_devel}/arch/$i
585     %endif
586     done
587    
588     # remove arch files based on target arch in -devel rpms
589     %if %build_devel
590     %ifnarch %{ix86} x86_64
591     rm -rf %{target_devel}/arch/x86
592     %endif
593     %ifnarch %{arm}
594     rm -rf %{target_devel}/arch/arm
595     %endif
596     %endif
597    
598    
599     # other misc files
600 tmb 131493 rm -f %{target_source}/{.config.old,.config.cmd,.tmp_gas_check,.mailmap,.missing-syscalls.d,arch/.gitignore}
601 tmb 128177 rm -rf %{target_source}/.tmp_depmod/
602    
603     #endif %build_source
604     %endif
605    
606    
607 tmb 210001 # compressing modules
608     find %{target_modules} -name "*.ko" | %kxargs xz -6e
609 tmb 128177
610    
611     # We used to have a copy of PrepareKernel here
612     # Now, we make sure that the thing in the linux dir is what we want it to be
613    
614     for i in %{target_modules}/*; do
615     rm -f $i/build $i/source
616     done
617    
618    
619 tmb 210001 # sniff, if we compressed all the modules, we change the stamp :(
620 tmb 128177 # we really need the depmod -ae here
621     pushd %{target_modules}
622     for i in *; do
623 tmb 258746 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
624 tmb 128177 echo $?
625     done
626    
627     for i in *; do
628     pushd $i
629     echo "Creating module.description for $i"
630 tmb 210001 modules=`find . -name "*.ko.[g,x]z"`
631 tmb 128177 echo $modules | %kxargs /sbin/modinfo \
632     | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
633     popd
634     done
635     popd
636    
637    
638     ###
639     ### Clean
640     ###
641    
642     %clean
643     rm -rf %{buildroot}
644     # We don't want to remove this, the whole reason of its existence is to be
645     # able to do several rpm --short-circuit -bi for testing install
646     # phase without repeating compilation phase
647     #rm -rf %{temp_root}
648    
649    
650     ###
651     ### Scripts
652     ###
653    
654     ### kernel
655     %if %build_kernel
656     %preun -n %{kname}-%{buildrel}
657     /sbin/installkernel -R %{buildrel}
658     if [ -L /lib/modules/%{buildrel}/build ]; then
659     rm -f /lib/modules/%{buildrel}/build
660     fi
661     if [ -L /lib/modules/%{buildrel}/source ]; then
662     rm -f /lib/modules/%{buildrel}/source
663     fi
664     pushd /boot > /dev/null
665     if [ -L vmlinuz-linus ]; then
666     if [ "$(readlink vmlinuz-linus)" = "vmlinuz-%{buildrel}" ]; then
667     rm -f vmlinuz-linus
668     fi
669     fi
670     if [ -L initrd-linus.img ]; then
671     if [ "$(readlink initrd-linus.img)" = "initrd-%{buildrel}.img" ]; then
672     rm -f initrd-linus.img
673     fi
674     fi
675     popd > /dev/null
676     exit 0
677    
678     %post -n %{kname}-%{buildrel}
679     /sbin/installkernel -L %{buildrel}
680     if [ -d /usr/src/%{kname}-devel-%{buildrel} ]; then
681     ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/build
682     ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/source
683     fi
684     pushd /boot > /dev/null
685     if [ -L vmlinuz-linus ]; then
686     rm -f vmlinuz-linus
687     fi
688     ln -sf vmlinuz-%{buildrel} vmlinuz-linus
689     if [ -L initrd-linus.img ]; then
690     rm -f initrd-linus.img
691     fi
692     ln -sf initrd-%{buildrel}.img initrd-linus.img
693     popd > /dev/null
694    
695 tmb 187275 %posttrans -n %{kname}-%{buildrel}
696     if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/%{kname}-devel-%{buildrel} ]; then
697     /usr/sbin/dkms_autoinstaller start %{buildrel}
698     fi
699    
700 tmb 128177 %postun -n %{kname}-%{buildrel}
701     /sbin/kernel_remove_initrd %{buildrel}
702     rm -rf /lib/modules/%{buildrel} > /dev/null
703     %endif # build_kernel
704    
705    
706     ### kernel-devel
707     %if %build_devel
708     %post -n %{kname}-devel-%{buildrel}
709     # place /build and /source symlinks in place.
710     if [ -d /lib/modules/%{buildrel} ]; then
711     ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/build
712     ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/source
713     fi
714    
715     %preun -n %{kname}-devel-%{buildrel}
716     # we need to delete <modules>/{build,source} at uninstall
717     if [ -L /lib/modules/%{buildrel}/build ]; then
718     rm -f /lib/modules/%{buildrel}/build
719     fi
720     if [ -L /lib/modules/%{buildrel}/source ]; then
721     rm -f /lib/modules/%{buildrel}/source
722     fi
723     exit 0
724     %endif #build_devel
725    
726    
727     ### kernel-source
728     %if %build_source
729     %post -n %{kname}-source-%{buildrel}
730     for i in /lib/modules/%{buildrel}*; do
731     if [ -d $i ]; then
732     if [ ! -L $i/build -a ! -L $i/source ]; then
733     rm -f $i/{build,source}
734     ln -sf /usr/src/%{kname}-%{buildrel} $i/build
735     ln -sf /usr/src/%{kname}-%{buildrel} $i/source
736     fi
737     fi
738     done
739    
740     %preun -n %{kname}-source-%{buildrel}
741     for i in /lib/modules/%{buildrel}/{build,source}; do
742     if [ -L $i ]; then
743     if [ "$(readlink $i)" = "/usr/src/%{kname}-%{buildrel}" ]; then
744     rm -f $i
745     fi
746     fi
747     done
748     exit 0
749     %endif # build_source
750    
751    
752     ###
753     ### file lists
754     ###
755    
756     # kernel
757     %if %build_kernel
758     %files -n %{kname}-%{buildrel}
759     %{_bootdir}/config-%{buildrel}
760     %ifarch %{arm}
761     %{_bootdir}/uImage-%{buildrel}
762     %else
763     %{_bootdir}/vmlinuz-%{buildrel}
764     %endif
765     %{_bootdir}/System.map-%{buildrel}
766     %dir %{_modulesdir}/%{buildrel}/
767     %{_modulesdir}/%{buildrel}/kernel
768     %{_modulesdir}/%{buildrel}/modules.*
769     %doc README.kernel-sources
770     %endif # build_kernel
771    
772     # kernel-source
773     %if %build_source
774     %files -n %{kname}-source-%{buildrel}
775     %dir %{_kerneldir}
776     %dir %{_kerneldir}/arch
777     %dir %{_kerneldir}/include
778     %{_kerneldir}/.gitignore
779     %{_kerneldir}/COPYING
780     %{_kerneldir}/CREDITS
781     %{_kerneldir}/Documentation
782     %{_kerneldir}/Kbuild
783     %{_kerneldir}/Kconfig
784     %{_kerneldir}/MAINTAINERS
785     %{_kerneldir}/Makefile
786     %{_kerneldir}/README
787     %{_kerneldir}/REPORTING-BUGS
788     %{_kerneldir}/arch/Kconfig
789     %{_kerneldir}/arch/arm
790     %{_kerneldir}/arch/x86
791     %{_kerneldir}/arch/um
792     %{_kerneldir}/block
793     %{_kerneldir}/crypto
794     %{_kerneldir}/drivers
795     %{_kerneldir}/firmware
796     %{_kerneldir}/fs
797     %{_kerneldir}/include/Kbuild
798     %{_kerneldir}/include/acpi
799     %{_kerneldir}/include/asm-generic
800     %{_kerneldir}/include/crypto
801     %{_kerneldir}/include/drm
802     %{_kerneldir}/include/linux
803     %{_kerneldir}/include/math-emu
804     %{_kerneldir}/include/net
805     %{_kerneldir}/include/pcmcia
806     %{_kerneldir}/include/scsi
807     %{_kerneldir}/include/sound
808     %{_kerneldir}/include/target
809     %{_kerneldir}/include/trace
810     %{_kerneldir}/include/video
811     %{_kerneldir}/include/media
812 tmb 201857 %{_kerneldir}/include/misc
813 tmb 128177 %{_kerneldir}/include/mtd
814     %{_kerneldir}/include/rxrpc
815     %{_kerneldir}/include/keys
816     %{_kerneldir}/include/rdma
817     %{_kerneldir}/include/xen
818     %{_kerneldir}/init
819     %{_kerneldir}/ipc
820     %{_kerneldir}/kernel
821     %{_kerneldir}/lib
822     %{_kerneldir}/mm
823     %{_kerneldir}/net
824     %{_kerneldir}/samples
825     %{_kerneldir}/scripts
826     %{_kerneldir}/security
827     %{_kerneldir}/sound
828     %{_kerneldir}/tools
829     %{_kerneldir}/usr
830     %{_kerneldir}/virt
831     %doc README.kernel-sources
832     %endif # build_source
833    
834     # kernel-devel
835     %if %build_devel
836     %files -n %{kname}-devel-%{buildrel}
837     %dir %{_develdir}
838     %dir %{_develdir}/arch
839     %dir %{_develdir}/include
840     %{_develdir}/.config
841     %{_develdir}/Documentation
842     %{_develdir}/Kbuild
843     %{_develdir}/Kconfig
844     %{_develdir}/Makefile
845     %{_develdir}/Module.symvers
846     %{_develdir}/arch/Kconfig
847     %ifarch %{arm}
848     %{_develdir}/arch/arm
849     %endif
850     %ifarch %{ix86} x86_64
851     %{_develdir}/arch/x86
852     %endif
853     %{_develdir}/arch/um
854     %{_develdir}/block
855     %{_develdir}/crypto
856     %{_develdir}/drivers
857     %{_develdir}/firmware
858     %{_develdir}/fs
859     %{_develdir}/include/Kbuild
860     %{_develdir}/include/acpi
861     %{_develdir}/include/asm-generic
862     %{_develdir}/include/config
863     %{_develdir}/include/crypto
864     %{_develdir}/include/drm
865     %{_develdir}/include/generated
866     %{_develdir}/include/keys
867     %{_develdir}/include/linux
868     %{_develdir}/include/math-emu
869 tmb 201857 %{_develdir}/include/misc
870 tmb 128177 %{_develdir}/include/mtd
871     %{_develdir}/include/net
872     %{_develdir}/include/pcmcia
873     %{_develdir}/include/rdma
874     %{_develdir}/include/scsi
875     %{_develdir}/include/sound
876     %{_develdir}/include/target
877     %{_develdir}/include/trace
878     %{_develdir}/include/video
879     %{_develdir}/include/media
880     %{_develdir}/include/rxrpc
881     %{_develdir}/include/xen
882     %{_develdir}/init
883     %{_develdir}/ipc
884     %{_develdir}/kernel
885     %{_develdir}/lib
886     %{_develdir}/mm
887     %{_develdir}/net
888     %{_develdir}/samples
889     %{_develdir}/scripts
890     %{_develdir}/security
891     %{_develdir}/sound
892     %{_develdir}/tools
893     %{_develdir}/usr
894     %{_develdir}/virt
895     %doc README.kernel-sources
896     %endif # build_devel
897    
898    
899     %if %build_doc
900     %files -n %{kname}-doc
901     %doc linux-%{tar_ver}/Documentation/*
902     %endif # build_doc
903    
904     %if %build_kernel
905     %files -n %{kname}-latest
906     %endif # build_kernel
907    
908     %if %build_source
909     %files -n %{kname}-source-latest
910     %endif # build_source
911    
912     %if %build_devel
913     %files -n %{kname}-devel-latest
914     %endif # build_devel

  ViewVC Help
Powered by ViewVC 1.1.30