/[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 93948 - (hide annotations) (download)
Sat Apr 30 21:01:17 2011 UTC (12 years, 11 months ago) by tmb
File size: 24627 byte(s)
fix versioning used in builds/paths so it can coexist with kernel-linus
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     %define kstable 4
11    
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     %define kvsersver_notice NOTE: This kernel has currently no Mageia patches and no third-party drivers.
67    
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     %define distro_branch %(perl -pe '/(\\d+)\\.(\\d)\\.?(\\d)?/; $_="$1.$2"' /etc/mageia-release)
86    
87     # End of user definitions
88     %{?_without_kernel: %global build_kernel 0}
89     %{?_without_doc: %global build_doc 0}
90     %{?_without_source: %global build_source 0}
91     %{?_without_devel: %global build_devel 0}
92    
93     %{?_with_kernel: %global build_kernel 1}
94     %{?_with_doc: %global build_doc 1}
95     %{?_with_source: %global build_source 1}
96     %{?_with_devel: %global build_devel 1}
97    
98     %if %(if [ -z "$CC" ] ; then echo 0; else echo 1; fi)
99     %define kmake %make CC="$CC"
100     %else
101     %define kmake %make
102     %endif
103     # there are places where parallel make don't work
104     %define smake make
105    
106     # Parallelize xargs invocations on smp machines
107     %define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\
108     && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
109     [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS")
110    
111     # Aliases for amd64 builds (better make source links?)
112     %define target_cpu %(echo %{_target_cpu} | sed -e "s/amd64/x86_64/")
113     %define target_arch %(echo %{_arch} | sed -e "s/amd64/x86_64/")
114    
115     # src.rpm description
116     Summary: The Linux kernel (the core of the Linux operating system)
117     Name: %{kname}
118     Version: %{kversion}
119     Release: %{rpmrel}
120     License: GPLv2
121     Group: System/Kernel and hardware
122     ExclusiveArch: %{ix86} x86_64
123     ExclusiveOS: Linux
124     URL: http://www.kernel.org/
125    
126     ####################################################################
127     #
128     # Sources
129     #
130     ### This is for full SRC RPM
131     Source0: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.bz2
132     Source1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.bz2.sign
133    
134     # This is for disabling mrproper and other targets on -devel rpms
135     Source2: disable-mrproper-in-devel-rpms.patch
136    
137     Source4: README.kernel-sources
138    
139     # Kernel defconfigs
140     Source20: i386_defconfig
141     Source21: x86_64_defconfig
142    
143    
144     ####################################################################
145     #
146     # Patches
147    
148     #
149     # Patch0 to Patch100 are for core kernel upgrades.
150     #
151    
152     # Pre linus patch: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing
153    
154     %if %kpatch
155     Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing/patch-%{kernelversion}.%{patchlevel}.%{sublevel}-%{kpatch}.bz2
156     Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing/patch-%{kernelversion}.%{patchlevel}.%{sublevel}-%{kpatch}.bz2.sign
157     %endif
158     %if %kstable
159     Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kversion}.bz2
160     Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kversion}.bz2.sign
161     %endif
162     # kernel.org -git
163     %if %kgit
164     Patch2: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/snapshots/patch-%{kernelversion}.%{patchlevel}.%{sublevel}-%{kpatch}-git%{kgit}.bz2
165     Source11: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/snapshots/patch-%{kernelversion}.%{patchlevel}.%{sublevel}-%{kpatch}-git%{kgit}.bz2.sign
166     %endif
167    
168     Patch3: http://vserver.13thfloor.at/Experimental/patch-2.6.38.4-vs2.3.0.37-rc15.diff
169    
170     #END
171     ####################################################################
172    
173     # Defines for the things that are needed for all the kernels
174     %define requires1 module-init-tools >= 3.6-10
175     %define requires2 mkinitrd >= 3.4.43-10
176     %define requires3 bootloader-utils >= 1.9
177     %define requires4 sysfsutils
178     %define requires5 kernel-firmware >= 20101024
179    
180     %define kprovides kernel = %{tar_ver}, alsa
181    
182     BuildRoot: %{_tmppath}/%{name}-%{kversion}-build-%{_arch}
183     Autoreqprov: no
184     BuildRequires: gcc module-init-tools >= 0.9.15
185    
186     %description
187     Source package to build the Linux-VServer kernel.
188    
189     %{kvserver_notice}
190    
191    
192     #
193     # kernel: Symmetric MultiProcessing kernel
194     #
195     %if %build_kernel
196     %package -n %{kname}-%{buildrel}
197     Version: %{fakever}
198     Release: %{fakerel}
199     %ifarch %{ix86}
200     Summary: Linux Kernel for desktop use with i586 & 4GB RAM
201     %else
202     Summary: Linux Kernel for desktop use with %{_arch}
203     %endif
204     Group: System/Kernel and hardware
205     Provides: %kprovides
206     Provides: should-restart = system
207     Requires: %requires1
208     Requires: %requires2
209     Requires: %requires3
210     Requires: %requires4
211     Requires: %requires5
212    
213     %ifarch %{ix86}
214     Conflicts: arch(x86_64)
215     %endif
216    
217     %description -n %{kname}-%{buildrel}
218     %ifarch %{ix86}
219     This kernel is compiled for server use, single or multiple i586
220     processor(s)/core(s) and a maximum of 3GB RAM, using HZ_1000, no
221     preempt, CFS cpu scheduler and cfq i/o scheduler.
222     This kernel relies on in-kernel smp alternatives to switch between
223     up & smp mode depending on detected hardware. To force the kernel
224     to boot in single processor mode, use the "nosmp" boot parameter.
225     %else
226     This kernel is compiled for server use, single or multiple %{_arch}
227     processor(s)/core(s), using HZ_1000, no preempt, CFS cpu
228     scheduler and cfq i/o scheduler.
229     This kernel relies on in-kernel smp alternatives to switch between
230     up & smp mode depending on detected hardware. To force the kernel
231     to boot in single processor mode, use the "nosmp" boot parameter.
232     %endif
233    
234     %{kvserver_notice}
235     %endif # build_kernel
236    
237    
238     #
239     # kernel-source: kernel sources
240     #
241     %if %build_source
242     %package -n %{kname}-source-%{buildrel}
243     Version: %{fakever}
244     Release: %{fakerel}
245     Provides: %{kname}-source, kernel-source = %{kverrel}, kernel-devel = %{kverrel}
246     Provides: %{kname}-source-%{kernelversion}.%{patchlevel}
247     Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
248     Summary: The source code for the Linux kernel
249     Group: Development/Kernel
250     Autoreqprov: no
251     %ifarch %{ix86}
252     Conflicts: arch(x86_64)
253     %endif
254    
255     %description -n %{kname}-source-%{buildrel}
256     The %{kname}-source package contains the source code files for the
257     Linux-VServer kernel. Theese source files are only needed if you want to
258     build your own custom kernel that is better tuned to your particular hardware.
259    
260     If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
261     drivers against, install the *-devel-* rpm that is matching your kernel.
262    
263     %{kvserver_notice}
264     %endif #build_source
265    
266    
267     #
268     # kernel-devel: stripped kernel sources
269     #
270     %if %build_devel
271     %package -n %{kname}-devel-%{buildrel}
272     Version: %{fakever}
273     Release: %{fakerel}
274     Provides: kernel-devel = %{kverrel}
275     Summary: The %{kname} devel files for 3rdparty modules build
276     Group: Development/Kernel
277     Autoreqprov: no
278     Requires: glibc-devel, ncurses-devel, make, gcc, perl
279     %ifarch %{ix86}
280     Conflicts: arch(x86_64)
281     %endif
282    
283     %description -n %{kname}-devel-%{buildrel}
284     This package contains the kernel-devel files that should be enough to build
285     3rdparty drivers against for use with the %{kname}-%{buildrel}.
286    
287     If you want to build your own kernel, you need to install the full
288     %{kname}-source-%{buildrel} rpm.
289    
290     %{kvserver_notice}
291     %endif #build_devel
292    
293    
294     #
295     # kernel-doc: documentation for the Linux kernel
296     #
297     %if %build_doc
298     %package -n %{kname}-doc
299     Version: %{kversion}
300     Release: %{rpmrel}
301     Summary: Various documentation bits found in the kernel source
302     Group: Books/Computer books
303     Buildarch: noarch
304    
305     %description -n %{kname}-doc
306     This package contains documentation files form the kernel source. Various
307     bits of information about the Linux-VServer kernel and the device drivers
308     shipped with it are documented in these files. You also might want install
309     this package if you need a reference to the options that can be passed to
310     Linux kernel modules at load time.
311    
312     %{kvserver_notice}
313     %endif #build_doc
314    
315    
316     #
317     # kernel-latest: virtual rpm
318     #
319     %if %build_kernel
320     %package -n %{kname}-latest
321     Version: %{kversion}
322     Release: %{rpmrel}
323     Summary: Virtual rpm for latest %{kname}
324     Group: System/Kernel and hardware
325     Requires: %{kname}-%{buildrel}
326     Obsoletes: %{kname}-smp-latest
327     %ifarch %{ix86}
328     Conflicts: arch(x86_64)
329     %endif
330    
331     %description -n %{kname}-latest
332     This package is a virtual rpm that aims to make sure you always have the
333     latest %{kname} installed...
334    
335     %{kvserver_notice}
336     %endif #build_kernel
337    
338    
339     #
340     # kernel-source-latest: virtual rpm
341     #
342     %if %build_source
343     %package -n %{kname}-source-latest
344     Version: %{kversion}
345     Release: %{rpmrel}
346     Summary: Virtual rpm for latest %{kname}-source
347     Group: System/Kernel and hardware
348     Requires: %{kname}-source-%{buildrel}
349     %ifarch %{ix86}
350     Conflicts: arch(x86_64)
351     %endif
352    
353     %description -n %{kname}-source-latest
354     This package is a virtual rpm that aims to make sure you always have the
355     latest %{kname}-source installed...
356    
357     %{kvserver_notice}
358     %endif #build_source
359    
360    
361     #
362     # kernel-devel-latest: virtual rpm
363     #
364     %if %build_devel
365     %package -n %{kname}-devel-latest
366     Version: %{kversion}
367     Release: %{rpmrel}
368     Summary: Virtual rpm for latest %{kname}-devel
369     Group: System/Kernel and hardware
370     Requires: %{kname}-devel-%{buildrel}
371     Obsoletes: %{kname}-smp-devel-latest
372     Obsoletes: %{kname}-smp-headers-latest
373     %ifarch %{ix86}
374     Conflicts: arch(x86_64)
375     %endif
376    
377     %description -n %{kname}-devel-latest
378     This package is a virtual rpm that aims to make sure you always have the
379     latest %{kname}-devel installed...
380    
381     %{kvserver_notice}
382     %endif #build_devel
383    
384    
385     #
386     # End packages - here begins build stage
387     #
388     %prep
389     %setup -q -n %top_dir_name -c
390    
391     pushd %src_dir
392     %if %kpatch
393     %patch1 -p1
394     %endif
395     %if %kstable
396     %patch1 -p1
397     %endif
398     %if %kgit
399     %patch2 -p1
400     %endif
401     %patch3 -p1
402     popd
403    
404     # PATCH END
405    
406    
407     #
408     # Setup Begin
409     #
410    
411    
412     # Install defconfigs...
413     install %{SOURCE20} %{build_dir}/linux-%{tar_ver}/arch/x86/configs/
414     install %{SOURCE21} %{build_dir}/linux-%{tar_ver}/arch/x86/configs/
415    
416     # make sure the kernel has the sublevel we know it has...
417 tmb 93948 LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
418 tmb 93798
419    
420     %build
421     # Common target directories
422     %define _bootdir /boot
423     %define _modulesdir /lib/modules
424 tmb 93948 %define _kerneldir /usr/src/linux-%{kversion}-%{ktag}-%{buildrpmrel}
425     %define _develdir /usr/src/linux-%{kversion}-%{ktag}-devel-%{buildrpmrel}
426 tmb 93798
427    
428     # Directories definition needed for building
429     %define temp_root %{build_dir}/temp-root
430     %define temp_boot %{temp_root}%{_bootdir}
431     %define temp_modules %{temp_root}%{_modulesdir}
432     %define temp_source %{temp_root}%{_kerneldir}
433     %define temp_devel %{temp_root}%{_develdir}
434    
435    
436     # Create a simulacro of buildroot
437     rm -rf %{temp_root}
438     install -d %{temp_root}
439    
440    
441     # make sure we are in the directory
442     cd %{src_dir}
443    
444     # make sure EXTRAVERSION says what we want it to say
445     %if %kstable
446 tmb 93948 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{kstable}-%{ktag}-%{buildrpmrel}/" Makefile
447 tmb 93798 %else
448 tmb 93948 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{ktag}-%{buildrpmrel}/" Makefile
449 tmb 93798 %endif
450    
451     # Prepare the kernel
452     %smake -s mrproper
453     %ifarch %{ix86} x86_64
454     cp arch/x86/configs/%{target_arch}_defconfig .config
455     %else
456     cp arch/%{target_arch}/defconfig .config
457     %endif
458     %smake oldconfig
459    
460     # Build the kernel
461     %kmake all
462    
463     # Install kernel
464     install -d %{temp_boot}
465 tmb 93948 install -m 644 System.map \
466     %{temp_boot}/System.map-%{kversion}-%{ktag}-%{buildrpmrel}
467     install -m 644 .config %{temp_boot}/config-%{kversion}-%{ktag}-%{buildrpmrel}
468     cp -f arch/%{target_arch}/boot/bzImage \
469     %{temp_boot}/vmlinuz-%{kversion}-%{ktag}-%{buildrpmrel}
470 tmb 93798
471     # Install modules
472 tmb 93948 install -d %{temp_modules}/%{kversion}-%{ktag}-%{buildrpmrel}
473     %smake INSTALL_MOD_PATH=%{temp_root} \
474     KERNELRELEASE=%{kversion}-%{ktag}-%{buildrpmrel} \
475     modules_install
476 tmb 93798
477     # remove /lib/firmware, we use a separate kernel-firmware
478     rm -rf %{temp_root}/lib/firmware
479    
480     # Save devel tree
481     %if %build_devel
482     mkdir -p %{temp_devel}
483     for i in $(find . -name 'Makefile*'); do cp -R --parents $i %{temp_devel};done
484     for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*' -o -name config.mk); do cp -R --parents $i %{temp_devel};done
485     cp -fR include %{temp_devel}
486     cp -fR scripts %{temp_devel}
487     %ifarch %{ix86} x86_64
488     cp -fR arch/x86/kernel/asm-offsets.{c,s} %{temp_devel}/arch/x86/kernel/
489     cp -fR arch/x86/kernel/asm-offsets_{32,64}.c %{temp_devel}/arch/x86/kernel/
490     cp -fR arch/x86/include %{temp_devel}/arch/x86/
491     %else
492     cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} %{temp_devel}/arch/%{target_arch}/kernel/
493     cp -fR arch/%{target_arch}/include %{temp_devel}/arch/%{target_arch}/
494     %endif
495    
496     # Needed for generation of kernel/bounds.s
497     cp -fR kernel/bounds.c %{temp_devel}/kernel/
498    
499     # Needed for lguest
500     cp -fR drivers/lguest/lg.h %{temp_devel}/drivers/lguest/
501    
502     cp -fR .config Module.symvers %{temp_devel}
503    
504     # Needed for truecrypt build (Danny)
505     cp -fR drivers/md/dm.h %{temp_devel}/drivers/md/
506    
507     # Needed for external dvb tree (#41418)
508     cp -fR drivers/media/dvb/dvb-core/*.h %{temp_devel}/drivers/media/dvb/dvb-core/
509     cp -fR drivers/media/dvb/frontends/lgdt330x.h %{temp_devel}/drivers/media/dvb/frontends/
510    
511     # add acpica header files, needed for fglrx build
512     cp -fR drivers/acpi/acpica/*.h %{temp_devel}/drivers/acpi/acpica/
513    
514     # Check and clean the -devel tree
515     pushd %{temp_devel} >/dev/null
516     %smake -s prepare scripts clean
517     rm -f .config.old
518     popd >/dev/null
519    
520     # Disable mrproper and other targets
521     patch -p1 -d %{temp_devel} -i %{SOURCE2}
522    
523     # Fix permissions
524     chmod -R a+rX %{temp_devel}
525     %endif # build_devel
526    
527     #make sure we are in the directory
528     cd %src_dir
529    
530     # kernel-source is shipped as an unprepared tree
531     %smake -s mrproper
532    
533    
534     ###
535     ### Install
536     ###
537     %install
538     install -m 644 %{SOURCE4} .
539    
540     cd %src_dir
541     # Directories definition needed for installing
542     %define target_source %{buildroot}/%{_kerneldir}
543     %define target_boot %{buildroot}%{_bootdir}
544     %define target_modules %{buildroot}%{_modulesdir}
545     %define target_devel %{buildroot}%{_develdir}
546    
547     # We want to be able to test several times the install part
548     rm -rf %{buildroot}
549     cp -a %{temp_root} %{buildroot}
550    
551     # Create directories infastructure
552     %if %build_source
553     install -d %{target_source}
554    
555     tar cf - . | tar xf - -C %{target_source}
556     chmod -R a+rX %{target_source}
557    
558     # we remove all the source files that we don't ship
559    
560     # first architecture files
561     for i in alpha arm avr32 blackfin cris frv h8300 ia64 m32r mips microblaze \
562     m68k m68knommu mn10300 parisc powerpc ppc s390 score sh sh64 sparc \
563     tile v850 xtensa; do
564     rm -rf %{target_source}/arch/$i
565    
566     %if %build_devel
567     rm -rf %{target_devel}/arch/$i
568     %endif
569     done
570    
571     # remove arch files based on target arch
572     %ifnarch %{ix86} x86_64
573     rm -rf %{target_source}/arch/x86
574     %if %build_devel
575     rm -rf %{target_devel}/arch/x86
576     %endif
577     %endif
578    
579    
580     # other misc files
581     rm -f %{target_source}/{.config.old,.config.cmd,.tmp_gas_check,.mailmap,.missing-syscalls.d,arch/.gitignore}
582    
583     #endif %build_source
584     %endif
585    
586    
587     # gzipping modules
588     find %{target_modules} -name "*.ko" | %kxargs gzip -9
589    
590    
591     # We used to have a copy of PrepareKernel here
592     # Now, we make sure that the thing in the linux dir is what we want it to be
593    
594     for i in %{target_modules}/*; do
595     rm -f $i/build $i/source
596     done
597    
598    
599     # sniff, if we gzipped all the modules, we change the stamp :(
600     # we really need the depmod -ae here
601     pushd %{target_modules}
602     for i in *; do
603     /sbin/depmod -u -ae -b %{buildroot} -r -F %{target_boot}/System.map-$i $i
604     echo $?
605     done
606    
607     for i in *; do
608     pushd $i
609     echo "Creating module.description for $i"
610     modules=`find . -name "*.ko.gz"`
611     echo $modules | %kxargs /sbin/modinfo \
612     | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
613     popd
614     done
615     popd
616    
617    
618     ###
619     ### Clean
620     ###
621    
622     %clean
623     rm -rf %{buildroot}
624     # We don't want to remove this, the whole reason of its existence is to be
625     # able to do several rpm --short-circuit -bi for testing install
626     # phase without repeating compilation phase
627     #rm -rf %{temp_root}
628    
629    
630     ###
631     ### Scripts
632     ###
633    
634     ### kernel
635     %if %build_kernel
636     %preun -n %{kname}-%{buildrel}
637 tmb 93948 /sbin/installkernel -R %{kversion}-%{ktag}-%{buildrpmrel}
638     if [ -L /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/build ]; then
639     rm -f /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/build
640 tmb 93798 fi
641 tmb 93948 if [ -L /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source ]; then
642     rm -f /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source
643 tmb 93798 fi
644     pushd /boot > /dev/null
645 tmb 93948 if [ -L vmlinuz-%{ktag} ]; then
646     if [ "$(readlink vmlinuz-%{ktag})" = "vmlinuz-%{kversion}-%{ktag}-%{buildrpmrel}" ]; then
647     rm -f vmlinuz-%{ktag}
648 tmb 93798 fi
649     fi
650 tmb 93948 if [ -L initrd-%{ktag}.img ]; then
651     if [ "$(readlink initrd-%{ktag}.img)" = "initrd-%{kversion}-%{ktag}-%{buildrpmrel}.img" ]; then
652     rm -f initrd-%{ktag}.img
653 tmb 93798 fi
654     fi
655     popd > /dev/null
656     exit 0
657    
658     %post -n %{kname}-%{buildrel}
659 tmb 93948 /sbin/installkernel -L %{kversion}-%{ktag}-%{buildrpmrel}
660     if [ -d /usr/src/linux-%{kversion}-%{ktag}-devel-%{buildrpmrel} ]; then
661     ln -sf /usr/src/linux-%{kversion}-%{ktag}-devel-%{buildrpmrel} \
662     /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/build
663     ln -sf /usr/src/linux-%{kversion}-%{ktag}-devel-%{buildrpmrel} \
664     /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source
665 tmb 93798 fi
666     pushd /boot > /dev/null
667 tmb 93948 if [ -L vmlinuz-%{ktag} ]; then
668     rm -f vmlinuz-%{ktag}
669 tmb 93798 fi
670 tmb 93948 ln -sf vmlinuz-%{kversion}-%{ktag}-%{buildrpmrel} vmlinuz-%{ktag}
671     if [ -L initrd-%{ktag}.img ]; then
672     rm -f initrd-%{ktag}.img
673 tmb 93798 fi
674 tmb 93948 ln -sf initrd-%{kversion}-%{ktag}-%{buildrpmrel}.img initrd-%{ktag}.img
675 tmb 93798 popd > /dev/null
676    
677     %postun -n %{kname}-%{buildrel}
678     /sbin/kernel_remove_initrd %{buildrel}
679     %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
892    
893    

  ViewVC Help
Powered by ViewVC 1.1.30