/[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 96525 - (show 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
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 5
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 %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 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 fi
691
692 %preun -n %{kname}-devel-%{buildrel}
693 # we need to delete <modules>/{build,source} at uninstall
694 if [ -L /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/build ]; then
695 rm -f /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/build
696 fi
697 if [ -L /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source ]; then
698 rm -f /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/source
699 fi
700 exit 0
701 %endif #build_devel
702
703
704 ### kernel-source
705 %if %build_source
706 %post -n %{kname}-source-%{buildrel}
707 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 fi
715 fi
716
717 %preun -n %{kname}-source-%{buildrel}
718 for i in /lib/modules/%{kversion}-%{ktag}-%{buildrpmrel}/{build,source}; do
719 if [ -L $i ]; then
720 if [ "$(readlink $i)" = "/usr/src/linux-%{kversion}-%{ktag}-%{buildrpmrel}" ]; then
721 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 %{_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 %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