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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.30