/[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 100107 - (hide annotations) (download)
Sun May 22 11:58:36 2011 UTC (12 years, 10 months ago) by tmb
File size: 24574 byte(s)
rediff vserver patch to apply cleanly
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 100097 %define kstable 7
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 tmb 100107 Patch3: http://vserver.13thfloor.at/Experimental/patch-2.6.38.7-vs2.3.0.37-rc15.diff
168 tmb 93798
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 tmb 96570 rm -rf /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel} >/dev/null
679 tmb 93798 %endif # build_kernel
680    
681    
682     ### kernel-devel
683     %if %build_devel
684     %post -n %{kname}-devel-%{buildrel}
685     # place /build and /source symlinks in place.
686 tmb 93948 if [ -d /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel} ]; then
687     ln -sf /usr/src/linux-%{kversion}-%{ktag}-devel-%{buildrpmrel} \
688     /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/build
689     ln -sf /usr/src/linux-%{kversion}-%{ktag}-devel-%{buildrpmrel} \
690     /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source
691 tmb 93798 fi
692    
693     %preun -n %{kname}-devel-%{buildrel}
694     # we need to delete <modules>/{build,source} at uninstall
695 tmb 93948 if [ -L /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/build ]; then
696     rm -f /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/build
697 tmb 93798 fi
698 tmb 93948 if [ -L /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source ]; then
699     rm -f /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source
700 tmb 93798 fi
701     exit 0
702     %endif #build_devel
703    
704    
705     ### kernel-source
706     %if %build_source
707     %post -n %{kname}-source-%{buildrel}
708 tmb 93948 if [ -d "/lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}" ]; then
709     if [ ! -L $i/build -a ! -L $i/source ]; then
710     rm -f $i/{build,source}
711     ln -sf /usr/src/linux-%{kversion}-%{ktag}-%{buildrpmrel} \
712     $i/build
713     ln -sf /usr/src/linux-%{kversion}-%{ktag}-%{buildrpmrel} \
714     $i/source
715 tmb 93798 fi
716 tmb 93948 fi
717 tmb 93798
718     %preun -n %{kname}-source-%{buildrel}
719 tmb 93948 for i in /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/{build,source}; do
720 tmb 93798 if [ -L $i ]; then
721 tmb 93948 if [ "$(readlink $i)" = "/usr/src/linux-%{kversion}-%{ktag}-%{buildrpmrel}" ]; then
722 tmb 93798 rm -f $i
723     fi
724     fi
725     done
726     exit 0
727     %endif # build_source
728    
729    
730     ###
731     ### file lists
732     ###
733    
734     # kernel
735     %if %build_kernel
736     %files -n %{kname}-%{buildrel}
737     %defattr(-,root,root)
738 tmb 93948 %{_bootdir}/config-%{kversion}-%{ktag}-%{buildrpmrel}
739     %{_bootdir}/vmlinuz-%{kversion}-%{ktag}-%{buildrpmrel}
740     %{_bootdir}/System.map-%{kversion}-%{ktag}-%{buildrpmrel}
741     %dir %{_modulesdir}/%{kversion}-%{ktag}-%{buildrpmrel}/
742     %{_modulesdir}/%{kversion}-%{ktag}-%{buildrpmrel}/kernel
743     %{_modulesdir}/%{kversion}-%{ktag}-%{buildrpmrel}/modules.*
744 tmb 93798 %doc README.kernel-sources
745     %endif # build_kernel
746    
747     # kernel-source
748     %if %build_source
749     %files -n %{kname}-source-%{buildrel}
750     %defattr(-,root,root)
751     %dir %{_kerneldir}
752     %dir %{_kerneldir}/arch
753     %dir %{_kerneldir}/include
754     %{_kerneldir}/.gitignore
755     %{_kerneldir}/COPYING
756     %{_kerneldir}/CREDITS
757     %{_kerneldir}/Documentation
758     %{_kerneldir}/Kbuild
759     %{_kerneldir}/Kconfig
760     %{_kerneldir}/MAINTAINERS
761     %{_kerneldir}/Makefile
762     %{_kerneldir}/README
763     %{_kerneldir}/REPORTING-BUGS
764     %{_kerneldir}/arch/Kconfig
765     %ifarch %{ix86} x86_64
766     %{_kerneldir}/arch/x86
767     %endif
768     %{_kerneldir}/arch/um
769     %{_kerneldir}/block
770     %{_kerneldir}/crypto
771     %{_kerneldir}/drivers
772     %{_kerneldir}/firmware
773     %{_kerneldir}/fs
774     %{_kerneldir}/include/Kbuild
775     %{_kerneldir}/include/acpi
776     %{_kerneldir}/include/asm-generic
777     %{_kerneldir}/include/crypto
778     %{_kerneldir}/include/drm
779     %{_kerneldir}/include/linux
780     %{_kerneldir}/include/math-emu
781     %{_kerneldir}/include/net
782     %{_kerneldir}/include/pcmcia
783     %{_kerneldir}/include/scsi
784     %{_kerneldir}/include/sound
785     %{_kerneldir}/include/target
786     %{_kerneldir}/include/trace
787     %{_kerneldir}/include/video
788     %{_kerneldir}/include/media
789     %{_kerneldir}/include/mtd
790     %{_kerneldir}/include/rxrpc
791     %{_kerneldir}/include/keys
792     %{_kerneldir}/include/rdma
793     %{_kerneldir}/include/xen
794     %{_kerneldir}/init
795     %{_kerneldir}/ipc
796     %{_kerneldir}/kernel
797     %{_kerneldir}/lib
798     %{_kerneldir}/mm
799     %{_kerneldir}/net
800     %{_kerneldir}/samples
801     %{_kerneldir}/scripts
802     %{_kerneldir}/security
803     %{_kerneldir}/sound
804     %{_kerneldir}/tools
805     %{_kerneldir}/usr
806     %{_kerneldir}/virt
807     %doc README.kernel-sources
808     %endif # build_source
809    
810     # kernel-devel
811     %if %build_devel
812     %files -n %{kname}-devel-%{buildrel}
813     %defattr(-,root,root)
814     %dir %{_develdir}
815     %dir %{_develdir}/arch
816     %dir %{_develdir}/include
817     %{_develdir}/.config
818     %{_develdir}/Documentation
819     %{_develdir}/Kbuild
820     %{_develdir}/Kconfig
821     %{_develdir}/Makefile
822     %{_develdir}/Module.symvers
823     %{_develdir}/arch/Kconfig
824     %ifarch %{ix86} x86_64
825     %{_develdir}/arch/x86
826     %endif
827     %{_develdir}/arch/um
828     %{_develdir}/block
829     %{_develdir}/crypto
830     %{_develdir}/drivers
831     %{_develdir}/firmware
832     %{_develdir}/fs
833     %{_develdir}/include/Kbuild
834     %{_develdir}/include/acpi
835     %{_develdir}/include/asm-generic
836     %{_develdir}/include/config
837     %{_develdir}/include/crypto
838     %{_develdir}/include/drm
839     %{_develdir}/include/generated
840     %{_develdir}/include/keys
841     %{_develdir}/include/linux
842     %{_develdir}/include/math-emu
843     %{_develdir}/include/mtd
844     %{_develdir}/include/net
845     %{_develdir}/include/pcmcia
846     %{_develdir}/include/rdma
847     %{_develdir}/include/scsi
848     %{_develdir}/include/sound
849     %{_develdir}/include/target
850     %{_develdir}/include/trace
851     %{_develdir}/include/video
852     %{_develdir}/include/media
853     %{_develdir}/include/rxrpc
854     %{_develdir}/include/xen
855     %{_develdir}/init
856     %{_develdir}/ipc
857     %{_develdir}/kernel
858     %{_develdir}/lib
859     %{_develdir}/mm
860     %{_develdir}/net
861     %{_develdir}/samples
862     %{_develdir}/scripts
863     %{_develdir}/security
864     %{_develdir}/sound
865     %{_develdir}/tools
866     %{_develdir}/usr
867     %{_develdir}/virt
868     %doc README.kernel-sources
869     %endif # build_devel
870    
871    
872     %if %build_doc
873     %files -n %{kname}-doc
874     %defattr(-,root,root)
875     %doc linux-%{tar_ver}/Documentation/*
876     %endif # build_doc
877    
878     %if %build_kernel
879     %files -n %{kname}-latest
880     %defattr(-,root,root)
881     %endif # build_kernel
882    
883     %if %build_source
884     %files -n %{kname}-source-latest
885     %defattr(-,root,root)
886     %endif # build_source
887    
888     %if %build_devel
889     %files -n %{kname}-devel-latest
890     %defattr(-,root,root)
891     %endif # build_devel

  ViewVC Help
Powered by ViewVC 1.1.30