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

  ViewVC Help
Powered by ViewVC 1.1.30