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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 100097 - (show annotations) (download)
Sun May 22 10:10:41 2011 UTC (12 years, 11 months ago) by tmb
File size: 24574 byte(s)
update to 2.6.38.7 (CVE-2011-1770, CVE-2011-1776, CVE-2011-1927)
1
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 7
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 %define ktag vserver
21 %define kname kernel-%{ktag}
22
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 kvserver_notice NOTE: This kernel is only patched with vserver patch.
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 # 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 Epoch: 1
117 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 Summary: Linux Kernel for vserver use with i586 & 4GB RAM
200 %else
201 Summary: Linux Kernel for vserver use with %{_arch}
202 %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 This kernel is compiled for vserver use, single or multiple i586
219 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 This kernel is compiled for vserver use, single or multiple %{_arch}
226 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 Summary: The source code for %{kname}
248 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 LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
417
418
419 %build
420 # Common target directories
421 %define _bootdir /boot
422 %define _modulesdir /lib/modules
423 %define _kerneldir /usr/src/linux-%{kversion}-%{ktag}-%{buildrpmrel}
424 %define _develdir /usr/src/linux-%{kversion}-%{ktag}-devel-%{buildrpmrel}
425
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 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{kstable}-%{ktag}-%{buildrpmrel}/" Makefile
446 %else
447 LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{ktag}-%{buildrpmrel}/" Makefile
448 %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 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
470 # Install modules
471 install -d %{temp_modules}/%{kversion}-%{ktag}-%{buildrpmrel}
472 %smake INSTALL_MOD_PATH=%{temp_root} \
473 KERNELRELEASE=%{kversion}-%{ktag}-%{buildrpmrel} \
474 modules_install
475
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 /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 fi
640 if [ -L /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source ]; then
641 rm -f /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source
642 fi
643 pushd /boot > /dev/null
644 if [ -L vmlinuz-%{ktag} ]; then
645 if [ "$(readlink vmlinuz-%{ktag})" = "vmlinuz-%{kversion}-%{ktag}-%{buildrpmrel}" ]; then
646 rm -f vmlinuz-%{ktag}
647 fi
648 fi
649 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 fi
653 fi
654 popd > /dev/null
655 exit 0
656
657 %post -n %{kname}-%{buildrel}
658 /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 fi
665 pushd /boot > /dev/null
666 if [ -L vmlinuz-%{ktag} ]; then
667 rm -f vmlinuz-%{ktag}
668 fi
669 ln -sf vmlinuz-%{kversion}-%{ktag}-%{buildrpmrel} vmlinuz-%{ktag}
670 if [ -L initrd-%{ktag}.img ]; then
671 rm -f initrd-%{ktag}.img
672 fi
673 ln -sf initrd-%{kversion}-%{ktag}-%{buildrpmrel}.img initrd-%{ktag}.img
674 popd > /dev/null
675
676 %postun -n %{kname}-%{buildrel}
677 /sbin/kernel_remove_initrd %{buildrel}
678 rm -rf /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel} >/dev/null
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 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 fi
692
693 %preun -n %{kname}-devel-%{buildrel}
694 # we need to delete <modules>/{build,source} at uninstall
695 if [ -L /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/build ]; then
696 rm -f /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/build
697 fi
698 if [ -L /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source ]; then
699 rm -f /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source
700 fi
701 exit 0
702 %endif #build_devel
703
704
705 ### kernel-source
706 %if %build_source
707 %post -n %{kname}-source-%{buildrel}
708 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 fi
716 fi
717
718 %preun -n %{kname}-source-%{buildrel}
719 for i in /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/{build,source}; do
720 if [ -L $i ]; then
721 if [ "$(readlink $i)" = "/usr/src/linux-%{kversion}-%{ktag}-%{buildrpmrel}" ]; then
722 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 %{_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 %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