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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 262374 - (show annotations) (download)
Wed Jun 20 21:21:02 2012 UTC (11 years, 10 months ago) by tmb
File size: 24687 byte(s)
update to 3.4.3-rt11
1 # kernel version
2 %define kernelversion 3
3 %define patchlevel 4
4 # sublevel is now used for -stable patches
5 %define sublevel 3
6
7 # kernel Makefile extraversion is substituted by
8 # kpatch/kgit wich are either 0 (empty), rc (kpatch), git (kgit)
9 %define kpatch 0
10
11 # kernel.org -gitX patch (only the number after "git")
12 %define kgit 0
13
14 # this is the releaseversion
15 %define mgarelease 1
16
17 # this is the -rt release
18 %define rt_ver 3.4.3
19 %define rt_rel rt11
20
21 # This is only to make life easier for people that creates derivated kernels
22 # a.k.a name it kernel-tmb :)
23 %define kname kernel-rt
24
25 %define rpmtag %{distsuffix}%{mgaver}
26 %if %kpatch
27 %if %kgit
28 %define rpmrel %mkrel 0.%{kpatch}.%{kgit}.%{rt_rel}.%{mgarelease}
29 %else
30 %define rpmrel %mkrel 0.%{kpatch}.%{rt_rel}.%{mgarelease}
31 %endif
32 %else
33 %define rpmrel %mkrel 0.%{rt_rel}.%{mgarelease}
34 %endif
35
36 # theese two never change, they are used to fool rpm/urpmi/smart
37 %define fakever 1
38 %define fakerel %mkrel 1
39
40 # When we are using a pre/rc patch, the tarball is a sublevel -1
41 %if %kpatch
42 %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
43 %define tar_ver %{kernelversion}.%(expr %{patchlevel} - 1)
44 %else
45 %define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
46 %define tar_ver %{kernelversion}.%{patchlevel}
47 %endif
48 %define kverrel %{kversion}-%{rpmrel}
49
50 # used for not making too long names for rpms or search paths
51 %if %kpatch
52 %if %kgit
53 %define buildrpmrel 0.%{kpatch}.%{kgit}.%{rt_rel}.%{mgarelease}%{rpmtag}
54 %else
55 %define buildrpmrel 0.%{kpatch}.%{rt_rel}.%{mgarelease}%{rpmtag}
56 %endif
57 %else
58 %define buildrpmrel 0.%{rt_rel}.%{mgarelease}%{rpmtag}
59 %endif
60
61 %define buildrel %{kversion}-%{buildrpmrel}
62
63 %define rt_notice NOTE: This kernel has no Mageia patches besides the -rt patch and no third-party drivers.
64
65 # having different top level names for packges means that you have to remove them by hard :(
66 %define top_dir_name %{kname}-%{_arch}
67
68 %define build_dir ${RPM_BUILD_DIR}/%{top_dir_name}
69 %define src_dir %{build_dir}/linux-%{tar_ver}
70
71 # disable useless debug rpms...
72 %define _enable_debug_packages %{nil}
73 %define debug_package %{nil}
74
75 # build defines
76 %define build_doc 1
77 %define build_source 1
78 %define build_devel 1
79
80 %define build_kernel 1
81
82 %define distro_branch %(perl -pe '/(\\d+)\\.(\\d)\\.?(\\d)?/; $_="$1.$2"' /etc/mageia-release)
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/" -e 's/arm.*/arm/')
111
112 # src.rpm description
113 Summary: The Linux kernel (the core of the Linux operating system)
114 Name: %{kname}
115 Version: %{kversion}
116 Release: %{rpmrel}
117 License: GPLv2
118 Group: System/Kernel and hardware
119 ExclusiveArch: %{ix86} x86_64 %{arm}
120 ExclusiveOS: Linux
121 URL: https://rt.wiki.kernel.org/
122
123 ####################################################################
124 #
125 # Sources
126 #
127 ### This is for full SRC RPM
128 Source0: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.xz
129 Source1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.sign
130
131 # This is for disabling mrproper and other targets on -devel rpms
132 Source2: disable-mrproper-in-devel-rpms.patch
133
134 Source4: README.kernel-sources
135
136 # Kernel defconfigs
137 Source20: i386_defconfig
138 Source21: x86_64_defconfig
139 Source22: arm_defconfig
140
141 ####################################################################
142 #
143 # Patches
144
145 #
146 # Patch0 to Patch100 are for core kernel upgrades.
147 #
148
149 # Pre linus patch: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing
150
151 %if %kpatch
152 Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.xz
153 Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.sign
154 %endif
155 %if %sublevel
156 Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kversion}.xz
157 Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kversion}.sign
158 %endif
159 # kernel.org -git
160 %if %kgit
161 Patch2: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/snapshots/patch-%{kernelversion}.%{patchlevel}-%{kpatch}-git%{kgit}.xz
162 Source11: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/snapshots/patch-%{kernelversion}.%{patchlevel}-%{kpatch}-git%{kgit}.sign
163 %endif
164
165 # -rt patches
166 Patch101: ftp://ftp.kernel.org/pub/linux/kernel/projects/rt/patch-%{rt_ver}-%{rt_rel}.patch.xz
167 Source101: ftp://ftp.kernel.org/pub/linux/kernel/projects/rt/patch-%{rt_ver}-%{rt_rel}.patch.sign
168
169 #END
170 ####################################################################
171
172 # Defines for the things that are needed for all the kernels
173 %define requires1 kmod >= 7-6
174 %define requires2 dracut >= 017-9
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 Autoreqprov: no
182 BuildRequires: gcc kmod >= 7-6
183 %ifarch %{arm}
184 BuildRequires: uboot-mkimage
185 %endif
186
187 %description
188 Source package to build the Linux kernel.
189
190 %{rt_notice}
191
192
193 #
194 # kernel: Symmetric MultiProcessing kernel
195 #
196 %if %build_kernel
197 %package -n %{kname}-%{buildrel}
198 Version: %{fakever}
199 Release: %{fakerel}
200 %ifarch %{ix86}
201 Summary: Linux realtime kernel for desktop use with i686 & 4GB RAM
202 %else
203 %ifarch %{arm}
204 Linux realtime kernel for Arm machines based on Kirkwood
205 %else
206 Summary: Linux realtime kernel for desktop use with %{_arch}
207 %endif
208 %endif
209 Group: System/Kernel and hardware
210 Provides: %kprovides
211 Provides: should-restart = system
212 Requires: %requires1
213 Requires: %requires2
214 Requires: %requires3
215 Requires: %requires4
216 Requires: %requires5
217
218 %ifarch %{ix86}
219 Conflicts: arch(x86_64)
220 %endif
221
222 %description -n %{kname}-%{buildrel}
223 %ifarch %{ix86}
224 This kernel is compiled for desktop use, single or multiple i686
225 processor(s)/core(s) and less than 4GB RAM, using HZ_1000, realtime
226 preempt, CFS cpu 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 %else
231 %ifarch %{arm}
232 This kernel is compiled for Arm Kirkwood boxes. It will run on openrd
233 boards. It's configured using HZ_100, realtime preempt, CFS cpu scheduler
234 and cfq i/o scheduler.
235 This kernel relies on in-kernel smp alternatives to switch between
236 up & smp mode depending on detected hardware. To force the kernel
237 to boot in single processor mode, use the "nosmp" boot parameter.
238 %else
239 This kernel is compiled for desktop use, single or multiple %{_arch}
240 processor(s)/core(s), using HZ_1000, realtime preempt, CFS cpu
241 scheduler and cfq i/o scheduler.
242 This kernel relies on in-kernel smp alternatives to switch between
243 up & smp mode depending on detected hardware. To force the kernel
244 to boot in single processor mode, use the "nosmp" boot parameter.
245 %endif
246 %endif
247
248 %{rt_notice}
249 %endif # build_kernel
250
251
252 #
253 # kernel-source: kernel sources
254 #
255 %if %build_source
256 %package -n %{kname}-source-%{buildrel}
257 Version: %{fakever}
258 Release: %{fakerel}
259 Provides: %{kname}-source, kernel-source = %{kverrel}
260 Provides: %{kname}-source-%{kernelversion}.%{patchlevel}
261 Requires: glibc-devel, ncurses-devel, make, gcc, perl, diffutils
262 Summary: The source code for the Linux kernel
263 Group: Development/Kernel
264 Autoreqprov: no
265 Buildarch: noarch
266
267 %description -n %{kname}-source-%{buildrel}
268 The %{kname}-source package contains the source code files for the
269 Linux kernel. Theese source files are only needed if you want to build
270 your own custom kernel that is better tuned to your particular hardware.
271
272 If you only want the files needed to build 3rdparty (nVidia, Ati, dkms-*,...)
273 drivers against, install the *-devel-* rpm that is matching your kernel.
274
275 %{rt_notice}
276 %endif #build_source
277
278
279 #
280 # kernel-devel: stripped kernel sources
281 #
282 %if %build_devel
283 %package -n %{kname}-devel-%{buildrel}
284 Version: %{fakever}
285 Release: %{fakerel}
286 Provides: kernel-devel = %{kverrel}
287 Summary: The %{kname} devel files for 3rdparty modules build
288 Group: Development/Kernel
289 Autoreqprov: no
290 Requires: glibc-devel, ncurses-devel, make, gcc, perl
291 %ifarch %{ix86}
292 Conflicts: arch(x86_64)
293 %endif
294
295 %description -n %{kname}-devel-%{buildrel}
296 This package contains the kernel-devel files that should be enough to build
297 3rdparty drivers against for use with the %{kname}-%{buildrel}.
298
299 If you want to build your own kernel, you need to install the full
300 %{kname}-source-%{buildrel} rpm.
301
302 %{rt_notice}
303 %endif #build_devel
304
305
306 #
307 # kernel-doc: documentation for the Linux kernel
308 #
309 %if %build_doc
310 %package -n %{kname}-doc
311 Version: %{kversion}
312 Release: %{rpmrel}
313 Summary: Various documentation bits found in the kernel source
314 Group: Books/Computer books
315 Buildarch: noarch
316
317 %description -n %{kname}-doc
318 This package contains documentation files form the kernel source. Various
319 bits of information about the Linux kernel and the device drivers shipped
320 with it are documented in these files. You also might want install this
321 package if you need a reference to the options that can be passed to Linux
322 kernel modules at load time.
323
324 %{rt_notice}
325 %endif #build_doc
326
327
328 #
329 # kernel-latest: virtual rpm
330 #
331 %if %build_kernel
332 %package -n %{kname}-latest
333 Version: %{kversion}
334 Release: %{rpmrel}
335 Summary: Virtual rpm for latest %{kname}
336 Group: System/Kernel and hardware
337 Requires: %{kname}-%{buildrel}
338 %ifarch %{ix86}
339 Conflicts: arch(x86_64)
340 %endif
341
342 %description -n %{kname}-latest
343 This package is a virtual rpm that aims to make sure you always have the
344 latest %{kname} installed...
345
346 %{rt_notice}
347 %endif #build_kernel
348
349
350 #
351 # kernel-source-latest: virtual rpm
352 #
353 %if %build_source
354 %package -n %{kname}-source-latest
355 Version: %{kversion}
356 Release: %{rpmrel}
357 Summary: Virtual rpm for latest %{kname}-source
358 Group: System/Kernel and hardware
359 Requires: %{kname}-source-%{buildrel}
360 Buildarch: noarch
361
362 %description -n %{kname}-source-latest
363 This package is a virtual rpm that aims to make sure you always have the
364 latest %{kname}-source installed...
365
366 %{rt_notice}
367 %endif #build_source
368
369
370 #
371 # kernel-devel-latest: virtual rpm
372 #
373 %if %build_devel
374 %package -n %{kname}-devel-latest
375 Version: %{kversion}
376 Release: %{rpmrel}
377 Summary: Virtual rpm for latest %{kname}-devel
378 Group: System/Kernel and hardware
379 Requires: %{kname}-devel-%{buildrel}
380 %ifarch %{ix86}
381 Conflicts: arch(x86_64)
382 %endif
383
384 %description -n %{kname}-devel-latest
385 This package is a virtual rpm that aims to make sure you always have the
386 latest %{kname}-devel installed...
387
388 %{rt_notice}
389 %endif #build_devel
390
391
392 #
393 # End packages - here begins build stage
394 #
395 %prep
396 %setup -q -n %top_dir_name -c
397
398 pushd %src_dir
399 %if %kpatch
400 %patch1 -p1
401 %endif
402 %if %sublevel
403 %patch1 -p1
404 %endif
405 %if %kgit
406 %patch2 -p1
407 %endif
408
409 # rt patches
410 %patch101 -p1
411
412 popd
413
414 # PATCH END
415
416
417 #
418 # Setup Begin
419 #
420
421
422 # Install defconfigs...
423 install %{SOURCE20} %{build_dir}/linux-%{tar_ver}/arch/x86/configs/
424 install %{SOURCE21} %{build_dir}/linux-%{tar_ver}/arch/x86/configs/
425 install %{SOURCE22} %{build_dir}/linux-%{tar_ver}/arch/arm/configs/
426
427 # make sure the kernel has the sublevel we know it has...
428 LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" linux-%{tar_ver}/Makefile
429
430 # drop localversion before build or it will mess up uname -r (we have it in kernel name/version)
431 rm -f %{build_dir}/linux-%{tar_ver}/localversion-rt
432
433 %build
434 # Common target directories
435 %define _bootdir /boot
436 %define _modulesdir /lib/modules
437 %define _kerneldir /usr/src/%{kname}-%{buildrel}
438 %define _develdir /usr/src/%{kname}-devel-%{buildrel}
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 = -%{buildrpmrel}/" Makefile
459
460 # Prepare the kernel
461 %smake -s mrproper
462 %ifarch %{ix86} x86_64 %{arm}
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 %ifarch %{arm}
472 %kmake uImage
473 %endif
474 # Install kernel
475 install -d %{temp_boot}
476 install -m 644 System.map %{temp_boot}/System.map-%{buildrel}
477 install -m 644 .config %{temp_boot}/config-%{buildrel}
478 %ifarch %{arm}
479 cp -f arch/%{target_arch}/boot/uImage %{temp_boot}/uImage-$KernelVer
480 %else
481 cp -f arch/%{target_arch}/boot/bzImage %{temp_boot}/vmlinuz-%{buildrel}
482 %endif
483
484 # Install modules
485 install -d %{temp_modules}/%{buildrel}
486 %smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=%{buildrel} modules_install
487
488 # remove /lib/firmware, we use a separate kernel-firmware
489 rm -rf %{temp_root}/lib/firmware
490
491 # Save devel tree
492 %if %build_devel
493 mkdir -p %{temp_devel}
494 for i in $(find . -name 'Makefile*'); do cp -R --parents $i %{temp_devel};done
495 for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*' -o -name config.mk); do cp -R --parents $i %{temp_devel};done
496 cp -fR include %{temp_devel}
497 cp -fR scripts %{temp_devel}
498 cp -fR tools/include %{temp_devel}/tools/
499 %ifarch %{arm}
500 cp -fR arch/%{target_arch}/tools $TempDevelRoot/arch/%{target_arch}/
501 %endif
502 %ifarch %{ix86} x86_64
503 cp -fR arch/x86/kernel/asm-offsets.{c,s} %{temp_devel}/arch/x86/kernel/
504 cp -fR arch/x86/kernel/asm-offsets_{32,64}.c %{temp_devel}/arch/x86/kernel/
505 cp -fR arch/x86/syscalls/syscall* %{temp_devel}/arch/x86/syscalls/
506 cp -fR arch/x86/include %{temp_devel}/arch/x86/
507 cp -fR arch/x86/tools/relocs.c %{temp_devel}/arch/x86/tools/
508 %else
509 cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} %{temp_devel}/arch/%{target_arch}/kernel/
510 for f in $(find arch/%{target_arch} -name include); do cp -fR --parents $f $TempDevelRoot; done
511 %endif
512
513 # Needed for generation of kernel/bounds.s
514 cp -fR kernel/bounds.c %{temp_devel}/kernel/
515
516 # Needed for lguest
517 cp -fR drivers/lguest/lg.h %{temp_devel}/drivers/lguest/
518
519 cp -fR .config Module.symvers %{temp_devel}
520
521 # Needed for truecrypt build (Danny)
522 cp -fR drivers/md/dm.h %{temp_devel}/drivers/md/
523
524 # Needed for external dvb tree (#41418)
525 cp -fR drivers/media/dvb/dvb-core/*.h %{temp_devel}/drivers/media/dvb/dvb-core/
526 cp -fR drivers/media/dvb/frontends/lgdt330x.h %{temp_devel}/drivers/media/dvb/frontends/
527
528 # add acpica header files, needed for fglrx build
529 cp -fR drivers/acpi/acpica/*.h %{temp_devel}/drivers/acpi/acpica/
530
531 # Check and clean the -devel tree
532 pushd %{temp_devel} >/dev/null
533 %smake -s prepare scripts clean
534 rm -f .config.old
535 popd >/dev/null
536
537 # Disable mrproper and other targets
538 patch -p1 -d %{temp_devel} -i %{SOURCE2}
539
540 # Fix permissions
541 chmod -R a+rX %{temp_devel}
542 %endif # build_devel
543
544 #make sure we are in the directory
545 cd %src_dir
546
547 # kernel-source is shipped as an unprepared tree
548 %smake -s mrproper
549
550
551 ###
552 ### Install
553 ###
554 %install
555 install -m 644 %{SOURCE4} .
556
557 cd %src_dir
558 # Directories definition needed for installing
559 %define target_source %{buildroot}/%{_kerneldir}
560 %define target_boot %{buildroot}%{_bootdir}
561 %define target_modules %{buildroot}%{_modulesdir}
562 %define target_devel %{buildroot}%{_develdir}
563
564 # We want to be able to test several times the install part
565 rm -rf %{buildroot}
566 cp -a %{temp_root} %{buildroot}
567
568 # Create directories infastructure
569 %if %build_source
570 install -d %{target_source}
571
572 tar cf - . | tar xf - -C %{target_source}
573 chmod -R a+rX %{target_source}
574
575 # we remove all the source files that we don't ship
576
577 # first architecture files
578 for i in alpha avr32 blackfin c6x cris frv hexagon h8300 ia64 m32r mips \
579 microblaze m68k m68knommu mn10300 openrisc parisc powerpc ppc \
580 s390 score sh sh64 sparc tile unicore32 v850 xtensa; do
581 rm -rf %{target_source}/arch/$i
582
583 %if %build_devel
584 rm -rf %{target_devel}/arch/$i
585 %endif
586 done
587
588 # remove arch files based on target arch in -devel rpms
589 %if %build_devel
590 %ifnarch %{ix86} x86_64
591 rm -rf %{target_devel}/arch/x86
592 %endif
593 %ifnarch %{arm}
594 rm -rf %{target_devel}/arch/arm
595 %endif
596 %endif
597
598
599 # other misc files
600 rm -f %{target_source}/{.config.old,.config.cmd,.tmp_gas_check,.mailmap,.missing-syscalls.d,arch/.gitignore}
601 rm -rf %{target_source}/.tmp_depmod/
602
603 #endif %build_source
604 %endif
605
606
607 # compressing modules
608 find %{target_modules} -name "*.ko" | %kxargs xz -6e
609
610
611 # We used to have a copy of PrepareKernel here
612 # Now, we make sure that the thing in the linux dir is what we want it to be
613
614 for i in %{target_modules}/*; do
615 rm -f $i/build $i/source
616 done
617
618
619 # sniff, if we compressed all the modules, we change the stamp :(
620 # we really need the depmod -ae here
621 pushd %{target_modules}
622 for i in *; do
623 /sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
624 echo $?
625 done
626
627 for i in *; do
628 pushd $i
629 echo "Creating module.description for $i"
630 modules=`find . -name "*.ko.[g,x]z"`
631 echo $modules | %kxargs /sbin/modinfo \
632 | perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
633 popd
634 done
635 popd
636
637
638 ###
639 ### Clean
640 ###
641
642 %clean
643 rm -rf %{buildroot}
644 # We don't want to remove this, the whole reason of its existence is to be
645 # able to do several rpm --short-circuit -bi for testing install
646 # phase without repeating compilation phase
647 #rm -rf %{temp_root}
648
649
650 ###
651 ### Scripts
652 ###
653
654 ### kernel
655 %if %build_kernel
656 %preun -n %{kname}-%{buildrel}
657 /sbin/installkernel -R %{buildrel}
658 if [ -L /lib/modules/%{buildrel}/build ]; then
659 rm -f /lib/modules/%{buildrel}/build
660 fi
661 if [ -L /lib/modules/%{buildrel}/source ]; then
662 rm -f /lib/modules/%{buildrel}/source
663 fi
664 pushd /boot > /dev/null
665 if [ -L vmlinuz-linus ]; then
666 if [ "$(readlink vmlinuz-linus)" = "vmlinuz-%{buildrel}" ]; then
667 rm -f vmlinuz-linus
668 fi
669 fi
670 if [ -L initrd-linus.img ]; then
671 if [ "$(readlink initrd-linus.img)" = "initrd-%{buildrel}.img" ]; then
672 rm -f initrd-linus.img
673 fi
674 fi
675 popd > /dev/null
676 exit 0
677
678 %post -n %{kname}-%{buildrel}
679 /sbin/installkernel -L %{buildrel}
680 if [ -d /usr/src/%{kname}-devel-%{buildrel} ]; then
681 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/build
682 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/source
683 fi
684 pushd /boot > /dev/null
685 if [ -L vmlinuz-linus ]; then
686 rm -f vmlinuz-linus
687 fi
688 ln -sf vmlinuz-%{buildrel} vmlinuz-linus
689 if [ -L initrd-linus.img ]; then
690 rm -f initrd-linus.img
691 fi
692 ln -sf initrd-%{buildrel}.img initrd-linus.img
693 popd > /dev/null
694
695 %posttrans -n %{kname}-%{buildrel}
696 if [ -x /usr/sbin/dkms_autoinstaller -a -d /usr/src/%{kname}-devel-%{buildrel} ]; then
697 /usr/sbin/dkms_autoinstaller start %{buildrel}
698 fi
699
700 %postun -n %{kname}-%{buildrel}
701 /sbin/kernel_remove_initrd %{buildrel}
702 rm -rf /lib/modules/%{buildrel} > /dev/null
703 %endif # build_kernel
704
705
706 ### kernel-devel
707 %if %build_devel
708 %post -n %{kname}-devel-%{buildrel}
709 # place /build and /source symlinks in place.
710 if [ -d /lib/modules/%{buildrel} ]; then
711 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/build
712 ln -sf /usr/src/%{kname}-devel-%{buildrel} /lib/modules/%{buildrel}/source
713 fi
714
715 %preun -n %{kname}-devel-%{buildrel}
716 # we need to delete <modules>/{build,source} at uninstall
717 if [ -L /lib/modules/%{buildrel}/build ]; then
718 rm -f /lib/modules/%{buildrel}/build
719 fi
720 if [ -L /lib/modules/%{buildrel}/source ]; then
721 rm -f /lib/modules/%{buildrel}/source
722 fi
723 exit 0
724 %endif #build_devel
725
726
727 ### kernel-source
728 %if %build_source
729 %post -n %{kname}-source-%{buildrel}
730 for i in /lib/modules/%{buildrel}*; do
731 if [ -d $i ]; then
732 if [ ! -L $i/build -a ! -L $i/source ]; then
733 rm -f $i/{build,source}
734 ln -sf /usr/src/%{kname}-%{buildrel} $i/build
735 ln -sf /usr/src/%{kname}-%{buildrel} $i/source
736 fi
737 fi
738 done
739
740 %preun -n %{kname}-source-%{buildrel}
741 for i in /lib/modules/%{buildrel}/{build,source}; do
742 if [ -L $i ]; then
743 if [ "$(readlink $i)" = "/usr/src/%{kname}-%{buildrel}" ]; then
744 rm -f $i
745 fi
746 fi
747 done
748 exit 0
749 %endif # build_source
750
751
752 ###
753 ### file lists
754 ###
755
756 # kernel
757 %if %build_kernel
758 %files -n %{kname}-%{buildrel}
759 %{_bootdir}/config-%{buildrel}
760 %ifarch %{arm}
761 %{_bootdir}/uImage-%{buildrel}
762 %else
763 %{_bootdir}/vmlinuz-%{buildrel}
764 %endif
765 %{_bootdir}/System.map-%{buildrel}
766 %dir %{_modulesdir}/%{buildrel}/
767 %{_modulesdir}/%{buildrel}/kernel
768 %{_modulesdir}/%{buildrel}/modules.*
769 %doc README.kernel-sources
770 %endif # build_kernel
771
772 # kernel-source
773 %if %build_source
774 %files -n %{kname}-source-%{buildrel}
775 %dir %{_kerneldir}
776 %dir %{_kerneldir}/arch
777 %dir %{_kerneldir}/include
778 %{_kerneldir}/.gitignore
779 %{_kerneldir}/COPYING
780 %{_kerneldir}/CREDITS
781 %{_kerneldir}/Documentation
782 %{_kerneldir}/Kbuild
783 %{_kerneldir}/Kconfig
784 %{_kerneldir}/MAINTAINERS
785 %{_kerneldir}/Makefile
786 %{_kerneldir}/README
787 %{_kerneldir}/REPORTING-BUGS
788 %{_kerneldir}/arch/Kconfig
789 %{_kerneldir}/arch/arm
790 %{_kerneldir}/arch/x86
791 %{_kerneldir}/arch/um
792 %{_kerneldir}/block
793 %{_kerneldir}/crypto
794 %{_kerneldir}/drivers
795 %{_kerneldir}/firmware
796 %{_kerneldir}/fs
797 %{_kerneldir}/include/Kbuild
798 %{_kerneldir}/include/acpi
799 %{_kerneldir}/include/asm-generic
800 %{_kerneldir}/include/crypto
801 %{_kerneldir}/include/drm
802 %{_kerneldir}/include/linux
803 %{_kerneldir}/include/math-emu
804 %{_kerneldir}/include/net
805 %{_kerneldir}/include/pcmcia
806 %{_kerneldir}/include/scsi
807 %{_kerneldir}/include/sound
808 %{_kerneldir}/include/target
809 %{_kerneldir}/include/trace
810 %{_kerneldir}/include/video
811 %{_kerneldir}/include/media
812 %{_kerneldir}/include/misc
813 %{_kerneldir}/include/mtd
814 %{_kerneldir}/include/rxrpc
815 %{_kerneldir}/include/keys
816 %{_kerneldir}/include/rdma
817 %{_kerneldir}/include/xen
818 %{_kerneldir}/init
819 %{_kerneldir}/ipc
820 %{_kerneldir}/kernel
821 %{_kerneldir}/lib
822 %{_kerneldir}/mm
823 %{_kerneldir}/net
824 %{_kerneldir}/samples
825 %{_kerneldir}/scripts
826 %{_kerneldir}/security
827 %{_kerneldir}/sound
828 %{_kerneldir}/tools
829 %{_kerneldir}/usr
830 %{_kerneldir}/virt
831 %doc README.kernel-sources
832 %endif # build_source
833
834 # kernel-devel
835 %if %build_devel
836 %files -n %{kname}-devel-%{buildrel}
837 %dir %{_develdir}
838 %dir %{_develdir}/arch
839 %dir %{_develdir}/include
840 %{_develdir}/.config
841 %{_develdir}/Documentation
842 %{_develdir}/Kbuild
843 %{_develdir}/Kconfig
844 %{_develdir}/Makefile
845 %{_develdir}/Module.symvers
846 %{_develdir}/arch/Kconfig
847 %ifarch %{arm}
848 %{_develdir}/arch/arm
849 %endif
850 %ifarch %{ix86} x86_64
851 %{_develdir}/arch/x86
852 %endif
853 %{_develdir}/arch/um
854 %{_develdir}/block
855 %{_develdir}/crypto
856 %{_develdir}/drivers
857 %{_develdir}/firmware
858 %{_develdir}/fs
859 %{_develdir}/include/Kbuild
860 %{_develdir}/include/acpi
861 %{_develdir}/include/asm-generic
862 %{_develdir}/include/config
863 %{_develdir}/include/crypto
864 %{_develdir}/include/drm
865 %{_develdir}/include/generated
866 %{_develdir}/include/keys
867 %{_develdir}/include/linux
868 %{_develdir}/include/math-emu
869 %{_develdir}/include/misc
870 %{_develdir}/include/mtd
871 %{_develdir}/include/net
872 %{_develdir}/include/pcmcia
873 %{_develdir}/include/rdma
874 %{_develdir}/include/scsi
875 %{_develdir}/include/sound
876 %{_develdir}/include/target
877 %{_develdir}/include/trace
878 %{_develdir}/include/video
879 %{_develdir}/include/media
880 %{_develdir}/include/rxrpc
881 %{_develdir}/include/xen
882 %{_develdir}/init
883 %{_develdir}/ipc
884 %{_develdir}/kernel
885 %{_develdir}/lib
886 %{_develdir}/mm
887 %{_develdir}/net
888 %{_develdir}/samples
889 %{_develdir}/scripts
890 %{_develdir}/security
891 %{_develdir}/sound
892 %{_develdir}/tools
893 %{_develdir}/usr
894 %{_develdir}/virt
895 %doc README.kernel-sources
896 %endif # build_devel
897
898
899 %if %build_doc
900 %files -n %{kname}-doc
901 %doc linux-%{tar_ver}/Documentation/*
902 %endif # build_doc
903
904 %if %build_kernel
905 %files -n %{kname}-latest
906 %endif # build_kernel
907
908 %if %build_source
909 %files -n %{kname}-source-latest
910 %endif # build_source
911
912 %if %build_devel
913 %files -n %{kname}-devel-latest
914 %endif # build_devel

  ViewVC Help
Powered by ViewVC 1.1.30