- bump release number to denote addition of vlan module
[linux-2.6.git] / scripts / kernel-2.6-planetlab.spec
1 Summary: The Linux kernel (the core of the Linux operating system)
2
3 # What parts do we want to build?  We must build at least one kernel.
4 # These are the kernels that are built IF the architecture allows it.
5
6 %define buildup 1
7 %define buildsmp 1
8 %define builduml 1
9 %define buildxen 0
10 %define builddoc 1
11
12 # Versions of various parts
13
14 #
15 # Polite request for people who spin their own kernel rpms:
16 # please modify the "release" field in a way that identifies
17 # that the kernel isn't the stock distribution kernel, for example by
18 # adding some text to the end of the version number.
19 #
20 %define sublevel 17
21 %define kversion 2.6.%{sublevel}
22 %define rpmversion 2.6.%{sublevel}
23 %define release 1.2142_FC4.3%{?pldistro:.%{pldistro}}%{?date:.%{date}}
24 %define signmodules 0
25 %define make_target bzImage
26 %define kernel_arch i386
27
28 %define KVERREL %{PACKAGE_VERSION}-%{PACKAGE_RELEASE}
29
30 # Override generic defaults with per-arch defaults
31
32 %define image_install_path boot
33
34 #
35 # Three sets of minimum package version requirements in the form of Conflicts:
36 # to versions below the minimum
37 #
38
39 #
40 # First the general kernel 2.6 required versions as per
41 # Documentation/Changes
42 #
43 %define kernel_dot_org_conflicts  ppp <= 2.3.15, pcmcia-cs <= 3.1.20, isdn4k-utils <= 3.0, mount < 2.10r-5, nfs-utils < 1.0.3, e2fsprogs < 1.29, util-linux < 2.10, jfsutils < 1.0.14, reiserfsprogs < 3.6.3, xfsprogs < 2.1.0, procps < 2.0.9, oprofile < 0.5.3
44
45
46 # Then a series of requirements that are distribution specific, either 
47 # because we add patches for something, or the older versions have 
48 # problems with the newer kernel or lack certain things that make 
49 # integration in the distro harder than needed.
50 #
51 %define package_conflicts  cipe < 1.4.5, kudzu <= 0.92, initscripts < 7.23, dev < 3.2-7, iptables < 1.2.5-3, bcm5820 < 1.81, nvidia-rh72 <= 1.0 selinux-policy-targeted < 1.23.16-1
52
53 #
54 # Several packages had bugs in them that became obvious when the NPTL
55 # threading code got integrated.
56 #
57 %define nptl_conflicts SysVinit < 2.84-13, pam < 0.75-48, vixie-cron < 3.0.1-73, privoxy < 3.0.0-8, spamassassin < 2.44-4.8.x,  cups < 1.1.17-13
58
59 #
60 # The ld.so.conf.d file we install uses syntax older ldconfig's don't grok.
61 #
62
63 # MEF commented out
64 # %define xen_conflicts glibc < 2.3.5-1
65
66 #
67 # Packages that need to be installed before the kernel is, because the %post
68 # scripts use them.
69 #
70 %define kernel_prereq  fileutils, module-init-tools, initscripts >= 5.83, mkinitrd >= 3.5.5
71
72 Vendor: PlanetLab
73 Packager: PlanetLab Central <support@planet-lab.org>
74 Distribution: PlanetLab 3.0
75 URL: http://cvs.planet-lab.org/cvs/linux-2.6
76
77 Name: kernel
78 Group: System Environment/Kernel
79 License: GPLv2
80 Version: %{rpmversion}
81 Release: %{release}
82 ExclusiveOS: Linux
83 Provides: kernel = %{version}
84 Provides: kernel-drm = 4.3.0
85 Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}
86 Prereq: %{kernel_prereq}
87 Conflicts: %{kernel_dot_org_conflicts}
88 Conflicts: %{package_conflicts}
89 Conflicts: %{nptl_conflicts}
90 # We can't let RPM do the dependencies automatic because it'll then pick up
91 # a correct but undesirable perl dependency from the module headers which
92 # isn't required for the kernel proper to function
93 AutoReqProv: no
94
95 #
96 # List the packages used during the kernel build
97 #
98 BuildPreReq: module-init-tools, patch >= 2.5.4, bash >= 2.03, sh-utils, tar
99 BuildPreReq: bzip2, findutils, gzip, m4, perl, make >= 3.78, gnupg, diffutils
100 BuildRequires: gcc >= 3.3.3, binutils >= 2.12, redhat-rpm-config
101 BuildConflicts: rhbuildsys(DiskFree) < 500Mb
102 BuildArchitectures: i686
103
104
105 Source0: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-%{kversion}.tar.bz2
106
107 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
108
109 %description
110 The kernel package contains the Linux kernel (vmlinuz), the core of any
111 Linux operating system.  The kernel handles the basic functions
112 of the operating system:  memory allocation, process allocation, device
113 input and output, etc.
114
115 %package devel
116 Summary: Development package for building kernel modules to match the kernel.
117 Group: System Environment/Kernel
118 AutoReqProv: no
119 Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}
120 Prereq: /usr/bin/find
121
122 %description devel
123 This package provides kernel headers and makefiles sufficient to build modules
124 against the kernel package.
125
126
127 %package doc
128 Summary: Various documentation bits found in the kernel source.
129 Group: Documentation
130
131 %description doc
132 This package contains documentation files from the kernel
133 source. Various bits of information about the Linux kernel and the
134 device drivers shipped with it are documented in these files.
135
136 You'll want to install this package if you need a reference to the
137 options that can be passed to Linux kernel modules at load time.
138
139 %package smp
140 Summary: The Linux kernel compiled for SMP machines.
141
142 Group: System Environment/Kernel
143 Provides: kernel = %{version}
144 Provides: kernel-drm = 4.3.0
145 Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}smp
146 Prereq: %{kernel_prereq}
147 Conflicts: %{kernel_dot_org_conflicts}
148 Conflicts: %{package_conflicts}
149 Conflicts: %{nptl_conflicts}
150 # upto and including kernel 2.4.9 rpms, the 4Gb+ kernel was called kernel-enterprise
151 # now that the smp kernel offers this capability, obsolete the old kernel
152 Obsoletes: kernel-enterprise < 2.4.10
153 # We can't let RPM do the dependencies automatic because it'll then pick up
154 # a correct but undesirable perl dependency from the module headers which
155 # isn't required for the kernel proper to function
156 AutoReqProv: no
157
158 %description smp
159 This package includes a SMP version of the Linux kernel. It is
160 required only on machines with two or more CPUs as well as machines with
161 hyperthreading technology.
162
163 Install the kernel-smp package if your machine uses two or more CPUs.
164
165 %package smp-devel
166 Summary: Development package for building kernel modules to match the SMP kernel.
167 Group: System Environment/Kernel
168 Provides: kernel-smp-devel-%{_target_cpu} = %{rpmversion}-%{release}
169 Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}smp
170 Provides: kernel-devel = %{rpmversion}-%{release}smp
171 AutoReqProv: no
172 Prereq: /usr/bin/find
173
174 %description smp-devel
175 This package provides kernel headers and makefiles sufficient to build modules
176 against the SMP kernel package.
177
178 %package xenU
179 Summary: The Linux kernel compiled for unprivileged Xen guest VMs
180
181 Group: System Environment/Kernel
182 Provides: kernel = %{version}
183 Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}xenU
184 Prereq: %{kernel_prereq}
185 Conflicts: %{kernel_dot_org_conflicts}
186 Conflicts: %{package_conflicts}
187 Conflicts: %{nptl_conflicts}
188
189 # MEF commented out 
190 # Conflicts: %{xen_conflicts}
191
192 # We can't let RPM do the dependencies automatic because it'll then pick up
193 # a correct but undesirable perl dependency from the module headers which
194 # isn't required for the kernel proper to function
195 AutoReqProv: no
196
197 %description xenU
198 This package includes a version of the Linux kernel which
199 runs in Xen unprivileged guest VMs.  This should be installed
200 both inside the unprivileged guest (for the modules) and in
201 the guest0 domain.
202
203 %package xenU-devel
204 Summary: Development package for building kernel modules to match the kernel.
205 Group: System Environment/Kernel
206 AutoReqProv: no
207 Provides: kernel-xenU-devel-%{_target_cpu} = %{rpmversion}-%{release}
208 Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}xenU
209 Provides: kernel-devel = %{rpmversion}-%{release}xenU
210 Prereq: /usr/sbin/hardlink, /usr/bin/find
211
212 %description xenU-devel
213 This package provides kernel headers and makefiles sufficient to build modules
214 against the kernel package.
215
216 %package uml
217 Summary: The Linux kernel compiled for use in user mode (User Mode Linux).
218
219 Group: System Environment/Kernel
220
221 %description uml
222 This package includes a user mode version of the Linux kernel.
223
224 %package uml-devel
225 Summary: Development package for building kernel modules to match the UML kernel.
226 Group: System Environment/Kernel
227 Provides: kernel-uml-devel-%{_target_cpu} = %{rpmversion}-%{release}
228 Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}smp
229 Provides: kernel-devel = %{rpmversion}-%{release}smp
230 AutoReqProv: no
231 Prereq: /usr/sbin/hardlink, /usr/bin/find
232
233 %description uml-devel
234 This package provides kernel headers and makefiles sufficient to build modules
235 against the User Mode Linux kernel package.
236
237 %package uml-modules
238 Summary: The Linux kernel modules compiled for use in user mode (User Mode Linux).
239
240 Group: System Environment/Kernel
241
242 %description uml-modules
243 This package includes a user mode version of the Linux kernel modules.
244
245 %package vserver
246 Summary: A placeholder RPM that provides kernel and kernel-drm
247
248 Group: System Environment/Kernel
249 Provides: kernel = %{version}
250 Provides: kernel-drm = 4.3.0
251 Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}
252
253 %description vserver
254 VServers do not require and cannot use kernels, but some RPMs have
255 implicit or explicit dependencies on the "kernel" package
256 (e.g. tcpdump). This package installs no files but provides the
257 necessary dependencies to make rpm and yum happy.
258
259
260 %prep
261 # First we unpack the kernel tarball.
262 # If this isn't the first make prep, we use links to the existing clean tarball
263 # which speeds things up quite a bit.
264 if [ ! -d kernel-%{kversion}/vanilla ]; then
265   # Ok, first time we do a make prep.
266   rm -f pax_global_header
267 %setup -q -n %{name}-%{version} -c
268   mv linux-%{kversion} vanilla
269 else
270   # We already have a vanilla dir.
271   cd kernel-%{kversion}
272 fi
273
274 cd vanilla
275
276 # make sure the kernel has the sublevel we know it has. This looks weird
277 # but for -pre and -rc versions we need it since we only want to use
278 # the higher version when the final kernel is released.
279 perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
280 perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -prep/" Makefile
281
282 # get rid of unwanted files resulting from patch fuzz
283 find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null
284
285
286 ###
287 ### build
288 ###
289 %build
290
291 BuildKernel() {
292     MakeTarget=$1
293     Arch=$2
294     Flavour=$3
295
296     # create a clean copy in BUILD/ (for backward compatibility with
297     # other RPMs that bootstrap off of the kernel build)
298     cd $RPM_BUILD_DIR
299     rm -rf linux-%{kversion}$Flavour
300     cp -rl kernel-%{kversion}/vanilla linux-%{kversion}$Flavour
301     cd linux-%{kversion}$Flavour
302
303     # Pick the right config file for the kernel we're building
304     if [ -n "$Flavour" ] ; then
305       Config=kernel-%{kversion}-%{_target_cpu}-$Flavour-planetlab.config
306       DevelDir=/usr/src/kernels/%{KVERREL}-$Flavour-%{_target_cpu}
307       DevelLink=/usr/src/kernels/%{KVERREL}$Flavour-%{_target_cpu}
308     else
309       Config=kernel-%{kversion}-%{_target_cpu}-planetlab.config
310       DevelDir=/usr/src/kernels/%{KVERREL}-%{_target_cpu}
311       DevelLink=
312     fi
313
314     KernelVer=%{version}-%{release}$Flavour
315     echo BUILDING A KERNEL FOR $Flavour %{_target_cpu}...
316
317     # make sure EXTRAVERSION says what we want it to say
318     perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}$Flavour/" Makefile
319
320     # and now to start the build process
321
322     make -s mrproper
323     cp configs/$Config .config
324
325     #Arch=`head -1 .config | cut -b 3-`
326     echo USING ARCH=$Arch
327
328     make -s ARCH=$Arch nonint_oldconfig > /dev/null
329     make -s ARCH=$Arch %{?_smp_mflags} $MakeTarget
330     make -s ARCH=$Arch %{?_smp_mflags} modules || exit 1
331
332     # Start installing the results
333
334 %if "%{_enable_debug_packages}" == "1"
335     mkdir -p $RPM_BUILD_ROOT/usr/lib/debug/boot
336 %endif
337     mkdir -p $RPM_BUILD_ROOT/%{image_install_path}
338     install -m 644 .config $RPM_BUILD_ROOT/boot/config-$KernelVer
339     install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-$KernelVer
340     if [ -f arch/$Arch/boot/bzImage ]; then
341       cp arch/$Arch/boot/bzImage $RPM_BUILD_ROOT/%{image_install_path}/vmlinuz-$KernelVer
342     fi
343     if [ -f arch/$Arch/boot/zImage.stub ]; then
344       cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/%{image_install_path}/zImage.stub-$KernelVer || :
345     fi
346     if [ "$Flavour" = "uml" ] ; then
347         install -D -m 755 linux $RPM_BUILD_ROOT/%{_bindir}/linux
348     fi
349
350     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
351     make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer
352
353     # And save the headers/makefiles etc for building modules against
354     #
355     # This all looks scary, but the end result is supposed to be:
356     # * all arch relevant include/ files
357     # * all Makefile/Kconfig files
358     # * all script/ files
359
360     rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
361     rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/source
362     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
363     (cd $RPM_BUILD_ROOT/lib/modules/$KernelVer ; ln -s build source)
364     # dirs for additional modules per module-init-tools, kbuild/modules.txt
365     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/extra
366     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates
367     # first copy everything
368     cp --parents `find  -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build 
369         cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
370     if [ "$Flavour" = "uml" ] ; then
371       cp --parents -a `find arch/um -name include` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
372     fi
373     # then drop all but the needed Makefiles/Kconfig files
374     rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Documentation
375     rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts
376     rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
377     cp arch/%{_arch}/kernel/asm-offsets.s $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/kernel || :
378     cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
379     cp .kernelrelease $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
380     cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
381     if [ -d arch/%{_arch}/scripts ]; then
382       cp -a arch/%{_arch}/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || :
383     fi
384     if [ -f arch/%{_arch}/*lds ]; then
385       cp -a arch/%{_arch}/*lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/ || :
386     fi
387     rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o
388     rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o
389     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
390     cd include
391     cp -a acpi config keys linux math-emu media mtd net pcmcia rdma rxrpc scsi sound video asm asm-generic $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
392     cp -a `readlink asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
393     if [ "$Arch" = "x86_64" ]; then
394       cp -a asm-i386 $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
395     fi
396 %if %{buildxen}
397     if [ "$Flavour" = "xen" ]; then
398       cp -a asm-xen $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
399     fi
400 %endif
401 %if %{builduml}
402     if [ "$Flavour" = "uml" ] ; then
403       cp -a `readlink -f asm/arch` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
404     fi
405 %endif
406     # While arch/powerpc/include/asm is still a symlink to the old
407     # include/asm-ppc{64,} directory, include that in kernel-devel too.
408     if [ "$Arch" = "powerpc" -a -r ../arch/powerpc/include/asm ]; then
409       cp -a `readlink ../arch/powerpc/include/asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
410       mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/$Arch/include
411       pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/$Arch/include
412       ln -sf ../../../include/asm-ppc* asm
413       popd
414     fi
415
416     # Make sure the Makefile and version.h have a matching timestamp so that
417     # external modules can be built
418     touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/version.h
419     touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/autoconf.h
420     cd ..
421
422     #
423     # save the vmlinux file for kernel debugging into the kernel-debuginfo rpm
424     #
425 %if "%{_enable_debug_packages}" == "1"
426     mkdir -p $RPM_BUILD_ROOT/usr/lib/debug/lib/modules/$KernelVer
427     cp vmlinux $RPM_BUILD_ROOT/usr/lib/debug/lib/modules/$KernelVer
428 %endif
429
430     find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f >modnames
431
432     # mark modules executable so that strip-to-file can strip them
433     cat modnames | xargs chmod u+x
434
435     # remove files that will be auto generated by depmod at rpm -i time
436     rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.*
437
438     # Move the devel headers out of the root file system
439     mkdir -p $RPM_BUILD_ROOT/usr/src/kernels
440     mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir
441     ln -sf ../../..$DevelDir $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
442     [ -z "$DevelLink" ] || ln -sf `basename $DevelDir` $RPM_BUILD_ROOT/$DevelLink
443 }
444
445 ###
446 # DO it...
447 ###
448
449 # prepare directories
450 rm -rf $RPM_BUILD_ROOT
451 mkdir -p $RPM_BUILD_ROOT/boot
452
453 %if %{buildup}
454 BuildKernel %make_target %kernel_arch
455 %endif
456
457 %if %{buildsmp}
458 BuildKernel %make_target %kernel_arch smp
459 %endif
460
461 %if %{builduml}
462 BuildKernel linux um uml
463 %endif
464
465 %if %{buildxen}
466 BuildKernel %make_target xen xenU
467 %endif
468
469 ###
470 ### install
471 ###
472
473 %install
474
475 cd vanilla
476
477 %if %{buildxen}
478 mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d
479 rm -f $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf
480 cat > $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf <<\EOF
481 # This directive teaches ldconfig to search in nosegneg subdirectories
482 # and cache the DSOs there with extra bit 0 set in their hwcap match
483 # fields.  In Xen guest kernels, the vDSO tells the dynamic linker to
484 # search in nosegneg subdirectories and to match this extra hwcap bit
485 # in the ld.so.cache file.
486 hwcap 0 nosegneg
487 EOF
488 chmod 444 $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf
489 %endif
490
491 %if %{builddoc}
492 mkdir -p $RPM_BUILD_ROOT/usr/share/doc/kernel-doc-%{kversion}/Documentation
493
494 # sometimes non-world-readable files sneak into the kernel source tree
495 chmod -R a+r *
496 # copy the source over
497 tar cf - Documentation | tar xf - -C $RPM_BUILD_ROOT/usr/share/doc/kernel-doc-%{kversion}
498 %endif
499
500 ###
501 ### clean
502 ###
503
504 %clean
505 rm -rf $RPM_BUILD_ROOT
506
507 ###
508 ### scripts
509 ###
510
511 # load the loop module for upgrades...in case the old modules get removed we have
512 # loopback in the kernel so that mkinitrd will work.
513 %pre
514 /sbin/modprobe loop 2> /dev/null > /dev/null  || :
515 exit 0
516
517 %pre smp
518 /sbin/modprobe loop 2> /dev/null > /dev/null  || :
519 exit 0
520
521 %post
522 if [ `uname -i` == "x86_64" ]; then
523   if [ -f /etc/sysconfig/kernel ]; then
524     /bin/sed -i -e 's/^DEFAULTKERNEL=kernel-smp$/DEFAULTKERNEL=kernel/' /etc/sysconfig/kernel
525   fi
526 fi
527
528 # trick mkinitrd in case the current environment does not have device mapper
529 rootdev=$(awk '/^[ \t]*[^#]/ { if ($2 == "/") { print $1; }}' /etc/fstab)
530 if echo $rootdev |grep -q /dev/mapper 2>/dev/null ; then
531     if [ ! -f $rootdev ]; then
532         fake_root_lvm=1
533         mkdir -p $(dirname $rootdev)
534         touch $rootdev
535     fi
536 fi
537
538 [ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade %{rpmversion}-%{release}
539 #/sbin/new-kernel-pkg --package kernel --mkinitrd --depmod --install %{KVERREL}
540 # Older modutils do not support --package option
541 /sbin/new-kernel-pkg --mkinitrd --depmod --install %{KVERREL}
542
543 # remove fake handle
544 if [ -n "$fake_root_lvm" ]; then
545     rm -f $rootdev
546 fi
547
548 # make some useful links
549 pushd /boot > /dev/null ; {
550         ln -sf config-%{KVERREL} config
551         ln -sf initrd-%{KVERREL}.img initrd-boot
552         ln -sf vmlinuz-%{KVERREL} kernel-boot
553 }
554 popd > /dev/null
555
556 # ask for a reboot
557 mkdir -p /etc/planetlab
558 touch /etc/planetlab/update-reboot
559
560 %post devel
561 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
562 if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
563   pushd /usr/src/kernels/%{KVERREL}-%{_target_cpu} > /dev/null
564   /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
565   popd > /dev/null
566 fi
567
568 %post smp
569 # trick mkinitrd in case the current environment does not have device mapper
570 rootdev=$(awk '/^[ \t]*[^#]/ { if ($2 == "/") { print $1; }}' /etc/fstab)
571 if echo $rootdev |grep -q /dev/mapper 2>/dev/null ; then
572     if [ ! -f $rootdev ]; then
573         fake_root_lvm=1
574         mkdir -p $(dirname $rootdev)
575         touch $rootdev
576     fi
577 fi
578
579 [ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade %{rpmversion}-%{release}smp
580 #/sbin/new-kernel-pkg --package kernel-smp --mkinitrd --depmod --install %{KVERREL}smp
581 # Older modutils do not support --package option
582 /sbin/new-kernel-pkg --mkinitrd --depmod --install %{KVERREL}smp
583
584 # remove fake handle
585 if [ -n "$fake_root_lvm" ]; then
586     rm -f $rootdev
587 fi
588
589 # make some useful links
590 pushd /boot > /dev/null ; {
591         ln -sf config-%{KVERREL}smp configsmp
592         ln -sf initrd-%{KVERREL}smp.img initrd-bootsmp
593         ln -sf vmlinuz-%{KVERREL}smp kernel-bootsmp
594 }
595 popd > /dev/null
596
597 # ask for a reboot
598 mkdir -p /etc/planetlab
599 touch /etc/planetlab/update-reboot
600
601 %post smp-devel
602 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
603 if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
604   pushd /usr/src/kernels/%{KVERREL}-smp-%{_target_cpu} > /dev/null
605   /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
606   popd > /dev/null
607 fi
608
609 %post xenU
610 [ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade
611 [ ! -x /sbin/ldconfig ] || /sbin/ldconfig -X
612
613 %post xenU-devel
614 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
615 if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
616   pushd /usr/src/kernels/%{KVERREL}-xenU-%{_target_cpu} > /dev/null
617   /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
618   popd > /dev/null
619 fi
620
621 %post uml-modules
622 depmod -ae %{KVERREL}uml
623
624 %preun
625 /sbin/modprobe loop 2> /dev/null > /dev/null  || :
626 /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}
627
628 %preun smp
629 /sbin/modprobe loop 2> /dev/null > /dev/null  || :
630 /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}smp
631
632 %preun xenU
633 /sbin/modprobe loop 2> /dev/null > /dev/null  || :
634 /sbin/new-kernel-pkg --rmmoddep --remove %{KVERREL}xenU
635
636 %preun uml-modules
637 rm -f /lib/modules/%{KVERREL}uml/modules.*
638
639
640 ###
641 ### file lists
642 ###
643
644 %if %{buildup}
645 %files 
646 %defattr(-,root,root)
647 /%{image_install_path}/vmlinuz-%{KVERREL}
648 /boot/System.map-%{KVERREL}
649 /boot/config-%{KVERREL}
650 %dir /lib/modules/%{KVERREL}
651 /lib/modules/%{KVERREL}/kernel
652 /lib/modules/%{KVERREL}/build
653 /lib/modules/%{KVERREL}/source
654 /lib/modules/%{KVERREL}/extra
655 /lib/modules/%{KVERREL}/updates
656
657 %files devel
658 %defattr(-,root,root)
659 %verify(not mtime) /usr/src/kernels/%{KVERREL}-%{_target_cpu}
660 %endif
661
662 %if %{buildsmp}
663 %files smp
664 %defattr(-,root,root)
665 /%{image_install_path}/vmlinuz-%{KVERREL}smp
666 /boot/System.map-%{KVERREL}smp
667 /boot/config-%{KVERREL}smp
668 %dir /lib/modules/%{KVERREL}smp
669 /lib/modules/%{KVERREL}smp/kernel
670 /lib/modules/%{KVERREL}smp/build
671 /lib/modules/%{KVERREL}smp/source
672 /lib/modules/%{KVERREL}smp/extra
673 /lib/modules/%{KVERREL}smp/updates
674
675 %files smp-devel
676 %defattr(-,root,root)
677 %verify(not mtime) /usr/src/kernels/%{KVERREL}-smp-%{_target_cpu}
678 /usr/src/kernels/%{KVERREL}smp-%{_target_cpu}
679 %endif
680
681 %if %{builduml}
682 %files uml
683 %defattr(-,root,root)
684 %{_bindir}/linux
685
686 %files uml-devel
687 %defattr(-,root,root)
688 %verify(not mtime) /usr/src/kernels/%{KVERREL}-uml-%{_target_cpu}
689 /usr/src/kernels/%{KVERREL}uml-%{_target_cpu}
690
691 %files uml-modules
692 %defattr(-,root,root)
693 /boot/System.map-%{KVERREL}uml
694 /boot/config-%{KVERREL}uml
695 %dir /lib/modules/%{KVERREL}uml
696 /lib/modules/%{KVERREL}uml/kernel
697 /lib/modules/%{KVERREL}uml/build
698 /lib/modules/%{KVERREL}uml/source
699 /lib/modules/%{KVERREL}uml/extra
700 /lib/modules/%{KVERREL}uml/updates
701 %endif
702
703 %if %{buildxen}
704 %files xenU
705 %defattr(-,root,root)
706 /%{image_install_path}/vmlinuz-%{KVERREL}xenU
707 /boot/System.map-%{KVERREL}xenU
708 /boot/config-%{KVERREL}xenU
709 %dir /lib/modules/%{KVERREL}xenU
710 /lib/modules/%{KVERREL}xenU/kernel
711 /lib/modules/%{KVERREL}xenU/build
712 /lib/modules/%{KVERREL}xenU/source
713 /lib/modules/%{KVERREL}xenU/extra
714 /lib/modules/%{KVERREL}xenU/updates
715 /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf
716
717 %files xenU-devel
718 %defattr(-,root,root)
719 %verify(not mtime) /usr/src/kernels/%{KVERREL}-xenU-%{_target_cpu}
720 /usr/src/kernels/%{KVERREL}xenU-%{_target_cpu}
721 %endif
722
723 %files vserver
724 %defattr(-,root,root)
725 # no files
726
727 # only some architecture builds need kernel-doc
728
729 %if %{builddoc}
730 %files doc
731 %defattr(-,root,root)
732 %{_datadir}/doc/kernel-doc-%{kversion}/Documentation/*
733 %dir %{_datadir}/doc/kernel-doc-%{kversion}/Documentation
734 %dir %{_datadir}/doc/kernel-doc-%{kversion}
735 %endif
736
737 %changelog
738 * Tue Jul 11 2006 Dave Jones <davej@redhat.com> [2.6.17-1.2142_FC4]
739 - 2.6.17.4
740 - Disable split pagetable lock.
741
742 * Wed Jul  5 2006 Dave Jones <davej@redhat.com>
743 - Get rid of stack backtrace on panic, which in most
744   cases actually caused a loss of info instead of a gain.
745
746 * Fri Jun 30 2006 Dave Jones <davej@redhat.com> [2.6.17-1.2141_FC4]
747 - 2.6.17.3
748
749 * Fri Jun 30 2006 Dave Jones <davej@redhat.com> [2.6.17-1.2140_FC4]
750 - 2.6.17.2
751 - Fix up the alsa list_add bug.
752
753 * Mon Jun 26 2006 Dave Jones <davej@redhat.com>
754 - Fix up various stupidities incurred by the last big rebase.
755   - Reenable SMP x86-64 builds.
756   - Reenable SMBFS.
757 - Enable PCI fake hotplug driver.
758 - Enable gameport/joystick on i586 builds. (#196581)
759
760 * Sat Jun 24 2006 Dave Jones <davej@redhat.com>
761 - Enable profiling for 586 kernels.
762
763 * Fri Jun 23 2006 Dave Jones <davej@redhat.com> [2.6.17-1.2139_FC4]
764 - Rebuild with slab debug off.
765
766 * Tue Jun 20 2006 Dave Jones <davej@redhat.com> [2.6.17-1.2138_FC4]
767 - 2.6.17.1
768
769 * Mon Jun  5 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2115_FC4]
770 - 2.6.16.20
771
772 * Tue May 30 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2114_FC4]
773 - 2.6.16.19
774
775 * Mon May 29 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2113_FC4]
776 - Improved list_head debugging.
777
778 * Tue May 23 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2112_FC4]
779 - 2.6.16.18
780
781 * Sat May 20 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2111_FC4]
782 - 2.6.16.17
783
784 * Wed May 10 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2110_FC4]
785 - 2.6.16.16
786
787 * Tue May  9 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2109_FC4]
788 - 2.6.16.15
789 - make 16C950 UARTs work (again). (#126403)
790 - Fix exec-shield default, which should fix a few programs that
791   stopped running.
792
793 * Thu May  4 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2108_FC4]
794 - 2.6.16.14
795
796 * Tue May  2 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2107_FC4]
797 - 2.6.16.13
798
799 * Mon May  1 2006 Dave Jones <davej@redhat.com>
800 - 2.6.16.12
801
802 * Tue Apr 25 2006 Dave Jones <davej@redhat.com>
803 - Fix up SCSI errors with mymusix usb mp3 player (#186187)
804
805 * Mon Apr 24 2006 Dave Jones <davej@redhat.com>
806 - 2.6.16.11
807
808 * Wed Apr 19 2006 Dave Jones <davej@redhat.com>
809 - Enable PCI MSI support.
810
811 * Tue Apr 18 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2096_FC4]
812 - 2.6.16.9
813
814 * Tue Apr 18 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2093_FC4]
815 - 2.6.16.7
816
817 * Mon Apr 17 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2092_FC4]
818 - 2.6.16.6
819
820 * Sun Apr 16 2006 Dave Jones <davej@redhat.com>
821 - 2.6.16.5
822
823 * Fri Apr  7 2006 Dave Jones <davej@redhat.com>
824 - 2.6.16.2
825
826 * Tue Apr  4 2006 Dave Jones <davej@redhat.com>
827 - Reenable non-standard serial ports. (#187466)
828 - Reenable snd-es18xx for x86-32 (#187733)
829
830 * Thu Mar 30 2006 Dave Jones <davej@redhat.com>
831 - ship the .kernelrelease file in -devel too.
832 - Disable EDAC debug.
833
834 * Tue Mar 26 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2069_FC4]
835 - 2.6.16.1
836
837 * Mon Mar 25 2006 Dave Jones <davej@redhat.com>
838 - Include patches posted for review for inclusion in 2.6.16.1
839 - Updated new audit msg types.
840 - Reenable HDLC driver (#186257)
841 - Make acpi-cpufreq 'sticky'
842 - Fix broken x86-64 32bit vDSO (#186924)
843
844 * Tue Mar 21 2006 Dave Jones <davej@redhat.com>
845 - Improve spinlock scalability on big machines.
846
847 * Mon Mar 20 2006 Dave Jones <davej@redhat.com>
848 - Sync with FC5's 2.6.16 kernel.
849 - Update Tux & Exec-shield to latest.
850