/[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 136304 - (show annotations) (download)
Mon Aug 29 22:42:40 2011 UTC (12 years, 7 months ago) by tmb
File size: 24986 byte(s)
- update to 3.0.4
- rediff vserver patch


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

  ViewVC Help
Powered by ViewVC 1.1.30