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

  ViewVC Help
Powered by ViewVC 1.1.30