1 Summary: The Linux kernel (the core of the Linux operating system)
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.
11 # Versions of various parts
16 # Polite request for people who spin their own kernel rpms:
17 # please modify the "release" field in a way that identifies
18 # that the kernel isn't the stock distribution kernel, for example by
19 # adding some text to the end of the version number.
23 %define kversion 2.6.%{sublevel}
24 %define rpmversion 2.6.%{sublevel}%{?patchlevel:.%{patchlevel}}
26 %define vsversion 2.3.0.32
28 # Will go away when VServer supports NetNS in mainline. Currently, it must be
29 # updated every time the PL kernel is updated.
30 %define vini_pl_patch 561
34 %define release vs%{vsversion}.%{specrelease}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
36 %{!?pldistro:%global pldistro planetlab}
39 %define make_target bzImage
40 %define KVERREL %{PACKAGE_VERSION}-%{PACKAGE_RELEASE}
42 # Override generic defaults with per-arch defaults
44 %define image_install_path boot
47 # Three sets of minimum package version requirements in the form of Conflicts:
48 # to versions below the minimum
52 # First the general kernel 2.6 required versions as per
53 # Documentation/Changes
55 %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
58 # Then a series of requirements that are distribution specific, either
59 # because we add patches for something, or the older versions have
60 # problems with the newer kernel or lack certain things that make
61 # integration in the distro harder than needed.
63 %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
66 # Several packages had bugs in them that became obvious when the NPTL
67 # threading code got integrated.
69 %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
72 # The ld.so.conf.d file we install uses syntax older ldconfig's don't grok.
76 # %define xen_conflicts glibc < 2.3.5-1
79 # Packages that need to be installed before the kernel is, because the %post
82 %define kernel_prereq fileutils, module-init-tools, initscripts >= 5.83, mkinitrd >= 3.5.5
84 URL: http://svn.planet-lab.org/wiki/linux-2.6
87 Group: System Environment/Kernel
89 Version: %{rpmversion}
92 Provides: kernel = %{version}
93 Provides: kernel-drm = 4.3.0
94 Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}
95 Provides: kernel-smp = %{rpmversion}-%{release}
96 Provides: kernel-smp-%{_target_cpu} = %{rpmversion}-%{release}
97 Prereq: %{kernel_prereq}
98 Conflicts: %{kernel_dot_org_conflicts}
99 Conflicts: %{package_conflicts}
100 Conflicts: %{nptl_conflicts}
101 # We can't let RPM do the dependencies automatic because it'll then pick up
102 # a correct but undesirable perl dependency from the module headers which
103 # isn't required for the kernel proper to function
107 # List the packages used during the kernel build
109 BuildPreReq: module-init-tools, patch >= 2.5.4, bash >= 2.03, sh-utils, tar
110 BuildPreReq: bzip2, findutils, gzip, m4, perl, make >= 3.78, gnupg, diffutils
111 BuildRequires: gcc >= 3.3.3, binutils >= 2.12, redhat-rpm-config
112 BuildConflicts: rhbuildsys(DiskFree) < 500Mb
115 Source0: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-%{kversion}.tar.bz2
117 Source10: kernel-%{kversion}-i586-%{pldistro}.config
118 Source11: kernel-%{kversion}-i686-%{pldistro}.config
119 Source12: kernel-%{kversion}-x86_64-%{pldistro}.config
121 Source20: kernel-%{kversion}-i686-uml-%{pldidstro}.config
124 Source30: kernel-%{kversion}-i686-xenU-%{pldistro}.config
129 Patch000: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-%{rpmversion}.bz2
132 Patch010: linux-2.6-010-e1000e.patch
133 Patch020: linux-2.6-020-build-id.patch
134 Patch030: linux-2.6-030-netns.patch
136 # These are patches picked up from Fedora/RHEL
137 Patch100: linux-2.6-100-build-nonintconfig.patch
140 Patch200: patch-%{rpmversion}-vs%{vsversion}.diff
141 Patch210: linux-2.6-210-vserver-cpu-sched.patch
142 Patch220: linux-2.6-220-lback-feat02.diff
145 Patch250: linux-2.6-250-ipsets.patch
148 Patch500: linux-2.6-500-vserver-filesharing.patch
149 Patch510: linux-2.6-510-ipod.patch
150 Patch520: linux-2.6-520-vnet+.patch
151 Patch530: linux-2.6-530-built-by-support.patch
152 Patch540: linux-2.6-540-oom-kill.patch
153 Patch550: linux-2.6-550-raise-default-nfile-ulimit.patch
154 Patch560: linux-2.6-560-mmconf.patch
155 Patch570: linux-2.6-570-tagxid.patch
156 Patch580: linux-2.6-580-show-proc-virt.patch
157 Patch590: linux-2.6-590-chopstix-intern.patch
160 Patch700: linux-2.6-700-trellis-mm1-netns.patch
161 Patch710: linux-2.6-710-unshare-netns.patch
162 Patch720: linux-2.6-720-ztun-sb.patch
163 Patch730: linux-2.6-730-egre.patch
164 Patch740: linux-2.6-740-new_ns_pid.patch
165 Patch750: linux-2.6-750-vserver-setspace.patch
167 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
170 The kernel package contains the Linux kernel (vmlinuz), the core of any
171 Linux operating system. The kernel handles the basic functions
172 of the operating system: memory allocation, process allocation, device
173 input and output, etc.
176 Summary: Development package for building kernel modules to match the kernel.
177 Group: System Environment/Kernel
179 Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}
180 Provides: kernel-smp-devel = %{rpmversion}-%{release}
181 Provides: kernel-smp-devel-%{_target_cpu} = %{rpmversion}-%{release}
182 Prereq: /usr/bin/find
185 This package provides kernel headers and makefiles sufficient to build modules
186 against the kernel package.
190 Summary: Various documentation bits found in the kernel source.
194 This package contains documentation files from the kernel
195 source. Various bits of information about the Linux kernel and the
196 device drivers shipped with it are documented in these files.
198 You'll want to install this package if you need a reference to the
199 options that can be passed to Linux kernel modules at load time.
202 Summary: The Linux kernel compiled for unprivileged Xen guest VMs
204 Group: System Environment/Kernel
205 Provides: kernel = %{version}
206 Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}xenU
207 Prereq: %{kernel_prereq}
208 Conflicts: %{kernel_dot_org_conflicts}
209 Conflicts: %{package_conflicts}
210 Conflicts: %{nptl_conflicts}
213 # Conflicts: %{xen_conflicts}
215 # We can't let RPM do the dependencies automatic because it'll then pick up
216 # a correct but undesirable perl dependency from the module headers which
217 # isn't required for the kernel proper to function
221 This package includes a version of the Linux kernel which
222 runs in Xen unprivileged guest VMs. This should be installed
223 both inside the unprivileged guest (for the modules) and in
227 Summary: Development package for building kernel modules to match the kernel.
228 Group: System Environment/Kernel
230 Provides: kernel-xenU-devel-%{_target_cpu} = %{rpmversion}-%{release}
231 Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}xenU
232 Provides: kernel-devel = %{rpmversion}-%{release}xenU
233 Prereq: /usr/sbin/hardlink, /usr/bin/find
235 %description xenU-devel
236 This package provides kernel headers and makefiles sufficient to build modules
237 against the kernel package.
240 Summary: The Linux kernel compiled for use in user mode (User Mode Linux).
242 Group: System Environment/Kernel
245 This package includes a user mode version of the Linux kernel.
248 Summary: Development package for building kernel modules to match the UML kernel.
249 Group: System Environment/Kernel
250 Provides: kernel-uml-devel-%{_target_cpu} = %{rpmversion}-%{release}
251 Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}smp
252 Provides: kernel-devel = %{rpmversion}-%{release}smp
254 Prereq: /usr/sbin/hardlink, /usr/bin/find
256 %description uml-devel
257 This package provides kernel headers and makefiles sufficient to build modules
258 against the User Mode Linux kernel package.
261 Summary: The Linux kernel modules compiled for use in user mode (User Mode Linux).
263 Group: System Environment/Kernel
265 %description uml-modules
266 This package includes a user mode version of the Linux kernel modules.
269 Summary: A placeholder RPM that provides kernel and kernel-drm
271 Group: System Environment/Kernel
272 Provides: kernel = %{version}
273 Provides: kernel-drm = 4.3.0
274 Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}
277 VServers do not require and cannot use kernels, but some RPMs have
278 implicit or explicit dependencies on the "kernel" package
279 (e.g. tcpdump). This package installs no files but provides the
280 necessary dependencies to make rpm and yum happy.
284 # First we unpack the kernel tarball.
285 # If this isn't the first make prep, we use links to the existing clean tarball
286 # which speeds things up quite a bit.
287 if [ ! -d kernel-%{kversion}/vanilla ]; then
288 # Ok, first time we do a make prep.
289 rm -f pax_global_header
290 %setup -q -n %{name}-%{kversion} -c
291 mv linux-%{kversion} vanilla
293 # We already have a vanilla dir.
294 cd kernel-%{kversion}
297 KERNEL_PREVIOUS=vanilla
298 # Dark RPM-magic to apply each patch to a hardlinked copy of the tree.
299 %define ApplyPatch() \
300 rm -fr linux-%{kversion}-%1 \
301 cp -al $KERNEL_PREVIOUS linux-%{kversion}-%1 \
303 test "%2" != "%%2" && patchflag="%2" \
304 PATCH="%{expand:%{PATCH%1}}" \
305 if test ! -e "$PATCH"; then \
306 echo "Patch %1 does not exist!" \
310 *.bz2) bzcat "$PATCH";; \
311 *.gz) zcat "$PATCH";; \
313 esac | patch -s -d linux-%{kversion}-%1 $patchflag \
314 KERNEL_PREVIOUS=linux-%{kversion}-%1
316 # This is where the patches get applied
353 # NetNS conflict-resolving patch for VINI. Will work with patch vini_pl_patch-1 but may
354 # break with later patches.
356 rm -fr linux-%{kversion}
357 ln -sf $KERNEL_PREVIOUS linux-%{kversion}
361 # make sure the kernel has the sublevel we know it has. This looks weird
362 # but for -pre and -rc versions we need it since we only want to use
363 # the higher version when the final kernel is released.
364 perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
365 perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -prep/" Makefile
367 # get rid of unwanted files resulting from patch fuzz
368 find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null
381 rm -rf linux-%{_target_cpu}-%{kversion}$Flavour
382 cp -rl linux-%{kversion}/ linux-%{_target_cpu}-%{kversion}$Flavour
383 cd linux-%{_target_cpu}-%{kversion}$Flavour
385 # Pick the right config file for the kernel we're building
386 if [ -n "$Flavour" ] ; then
387 Config=kernel-%{kversion}-%{_target_cpu}-$Flavour-%{pldistro}.config
388 DevelDir=/usr/src/kernels/%{KVERREL}-$Flavour-%{_target_cpu}
389 DevelLink=/usr/src/kernels/%{KVERREL}$Flavour-%{_target_cpu}
391 Config=kernel-%{kversion}-%{_target_cpu}-%{pldistro}.config
392 DevelDir=/usr/src/kernels/%{KVERREL}-%{_target_cpu}
396 KernelVer=%{version}-%{release}$Flavour
397 echo BUILDING A KERNEL FOR $Flavour %{_target_cpu}...
399 # make sure EXTRAVERSION says what we want it to say
400 perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{?patchlevel:.%{patchlevel}}-%{release}$Flavour/" Makefile
402 # and now to start the build process
405 cp %{_sourcedir}/$Config .config
407 #Arch=`head -1 .config | cut -b 3-`
408 echo USING ARCH=$Arch
410 make -s ARCH=$Arch nonint_oldconfig > /dev/null
411 make -s ARCH=$Arch %{?_smp_mflags} $MakeTarget
412 make -s ARCH=$Arch %{?_smp_mflags} modules || exit 1
414 # Start installing the results
416 %if "%{_enable_debug_packages}" == "1"
417 mkdir -p $RPM_BUILD_ROOT/usr/lib/debug/boot
419 mkdir -p $RPM_BUILD_ROOT/%{image_install_path}
420 install -m 644 .config $RPM_BUILD_ROOT/boot/config-$KernelVer
421 install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-$KernelVer
422 if [ -f arch/$Arch/boot/bzImage ]; then
423 cp arch/$Arch/boot/bzImage $RPM_BUILD_ROOT/%{image_install_path}/vmlinuz-$KernelVer
425 if [ -f arch/$Arch/boot/zImage.stub ]; then
426 cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/%{image_install_path}/zImage.stub-$KernelVer || :
428 if [ "$Flavour" = "uml" ] ; then
429 install -D -m 755 linux $RPM_BUILD_ROOT/%{_bindir}/linux
432 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
433 make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer
435 # And save the headers/makefiles etc for building modules against
437 # This all looks scary, but the end result is supposed to be:
438 # * all arch relevant include/ files
439 # * all Makefile/Kconfig files
440 # * all script/ files
442 rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
443 rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/source
444 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
445 (cd $RPM_BUILD_ROOT/lib/modules/$KernelVer ; ln -s build source)
446 # dirs for additional modules per module-init-tools, kbuild/modules.txt
447 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/extra
448 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates
449 # first copy everything
450 cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
451 cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
452 if [ "$Flavour" = "uml" ] ; then
453 cp --parents -a `find arch/um -name include` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
455 # then drop all but the needed Makefiles/Kconfig files
456 rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Documentation
457 rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts
458 rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
459 cp arch/%{_arch}/kernel/asm-offsets.s $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/kernel || :
460 cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
461 cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
462 if [ -d arch/%{_arch}/scripts ]; then
463 cp -a arch/%{_arch}/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || :
465 if [ -f arch/%{_arch}/*lds ]; then
466 cp -a arch/%{_arch}/*lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/ || :
468 rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o
469 rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o
470 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
472 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
473 cp -a `readlink asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
474 if [ "$Arch" = "x86_64" ]; then
475 cp -a asm-i386 $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
478 if [ "$Flavour" = "xenU" ]; then
479 cp -a xen $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
480 cp -a asm-i386 $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
484 if [ "$Flavour" = "uml" ] ; then
485 cp -a `readlink -f asm/arch` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
488 # While arch/powerpc/include/asm is still a symlink to the old
489 # include/asm-ppc{64,} directory, include that in kernel-devel too.
490 if [ "$Arch" = "powerpc" -a -r ../arch/powerpc/include/asm ]; then
491 cp -a `readlink ../arch/powerpc/include/asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
492 mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/$Arch/include
493 pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/$Arch/include
494 ln -sf ../../../include/asm-ppc* asm
498 # Make sure the Makefile and version.h have a matching timestamp so that
499 # external modules can be built
500 touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/version.h
501 touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/autoconf.h
505 # save the vmlinux file for kernel debugging into the kernel-debuginfo rpm
507 %if "%{_enable_debug_packages}" == "1"
508 mkdir -p $RPM_BUILD_ROOT/usr/lib/debug/lib/modules/$KernelVer
509 cp vmlinux $RPM_BUILD_ROOT/usr/lib/debug/lib/modules/$KernelVer
512 if [ -f vmlinuz ]; then
513 cp vmlinuz $RPM_BUILD_ROOT/%{image_install_path}/vmlinuz-$KernelVer
517 find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f >modnames
519 # mark modules executable so that strip-to-file can strip them
520 cat modnames | xargs chmod u+x
522 # remove files that will be auto generated by depmod at rpm -i time
523 rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.*
525 # Move the devel headers out of the root file system
526 mkdir -p $RPM_BUILD_ROOT/usr/src/kernels
527 mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir
528 ln -sf ../../..$DevelDir $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
529 [ -z "$DevelLink" ] || ln -sf `basename $DevelDir` $RPM_BUILD_ROOT/$DevelLink
536 # prepare directories
537 rm -rf $RPM_BUILD_ROOT
538 mkdir -p $RPM_BUILD_ROOT/boot
540 %if "%{_target_cpu}" == "x86_64"
541 %define kernel_arch %{_target_cpu}
543 %if "%{_target_cpu}" == "i586"
544 %define kernel_arch i386
546 %if "%{_target_cpu}" == "i686"
547 %define kernel_arch i386
551 BuildKernel %make_target %kernel_arch
556 BuildKernel linux um uml
560 BuildKernel vmlinuz %kernel_arch xenU
572 %if %{buildxen} && "%{_target_cpu}" == "i686"
573 mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d
574 rm -f $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf
575 cat > $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf <<\EOF
576 # This directive teaches ldconfig to search in nosegneg subdirectories
577 # and cache the DSOs there with extra bit 0 set in their hwcap match
578 # fields. In Xen guest kernels, the vDSO tells the dynamic linker to
579 # search in nosegneg subdirectories and to match this extra hwcap bit
580 # in the ld.so.cache file.
583 chmod 444 $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf
587 mkdir -p $RPM_BUILD_ROOT/usr/share/doc/kernel-doc-%{kversion}/Documentation
589 # sometimes non-world-readable files sneak into the kernel source tree
591 # copy the source over
592 tar cf - Documentation | tar xf - -C $RPM_BUILD_ROOT/usr/share/doc/kernel-doc-%{kversion}
600 rm -rf $RPM_BUILD_ROOT
606 # load the loop module for upgrades...in case the old modules get removed we have
607 # loopback in the kernel so that mkinitrd will work.
609 /sbin/modprobe loop 2> /dev/null > /dev/null || :
613 if [ -f /etc/sysconfig/kernel ]; then
614 /bin/sed -i -e 's/^DEFAULTKERNEL=kernel-smp$/DEFAULTKERNEL=kernel/' /etc/sysconfig/kernel
617 # trick mkinitrd in case the current environment does not have device mapper
618 rootdev=$(awk '/^[ \t]*[^#]/ { if ($2 == "/") { print $1; }}' /etc/fstab)
619 if echo $rootdev |grep -q /dev/mapper 2>/dev/null ; then
620 if [ ! -f $rootdev ]; then
622 mkdir -p $(dirname $rootdev)
627 [ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade %{rpmversion}-%{release}
628 #/sbin/new-kernel-pkg --package kernel --mkinitrd --depmod --install %{KVERREL}
629 # Older modutils do not support --package option
630 /sbin/new-kernel-pkg --mkinitrd --depmod --install %{KVERREL}
633 if [ -n "$fake_root_lvm" ]; then
637 # make some useful links
638 pushd /boot > /dev/null ; {
639 ln -sf config-%{KVERREL} config
640 ln -sf config-%{KVERREL} configsmp
641 ln -sf initrd-%{KVERREL}.img initrd-boot
642 ln -sf initrd-%{KVERREL}.img initrd-bootsmp
643 ln -sf vmlinuz-%{KVERREL} kernel-boot
644 ln -sf vmlinuz-%{KVERREL} kernel-bootsmp
649 mkdir -p /etc/planetlab
650 touch /etc/planetlab/update-reboot
653 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
654 if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
655 pushd /usr/src/kernels/%{KVERREL}-%{_target_cpu} > /dev/null
656 /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
661 [ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade
662 [ ! -x /sbin/ldconfig ] || /sbin/ldconfig -X
665 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
666 if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
667 pushd /usr/src/kernels/%{KVERREL}-xenU-%{_target_cpu} > /dev/null
668 /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
673 depmod -ae %{KVERREL}uml
676 /sbin/modprobe loop 2> /dev/null > /dev/null || :
677 /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}
680 /sbin/modprobe loop 2> /dev/null > /dev/null || :
681 /sbin/new-kernel-pkg --rmmoddep --remove %{KVERREL}xenU
684 rm -f /lib/modules/%{KVERREL}uml/modules.*
693 %defattr(-,root,root)
694 /%{image_install_path}/vmlinuz-%{KVERREL}
695 /boot/System.map-%{KVERREL}
696 /boot/config-%{KVERREL}
697 %dir /lib/modules/%{KVERREL}
698 /lib/modules/%{KVERREL}/kernel
699 /lib/modules/%{KVERREL}/build
700 /lib/modules/%{KVERREL}/source
701 /lib/modules/%{KVERREL}/extra
702 /lib/modules/%{KVERREL}/updates
705 %defattr(-,root,root)
706 %verify(not mtime) /usr/src/kernels/%{KVERREL}-%{_target_cpu}
709 %if %{builduml} && "%{_target_cpu}" == "i686"
711 %defattr(-,root,root)
715 %defattr(-,root,root)
716 %verify(not mtime) /usr/src/kernels/%{KVERREL}-uml-%{_target_cpu}
717 /usr/src/kernels/%{KVERREL}uml-%{_target_cpu}
720 %defattr(-,root,root)
721 /boot/System.map-%{KVERREL}uml
722 /boot/config-%{KVERREL}uml
723 %dir /lib/modules/%{KVERREL}uml
724 /lib/modules/%{KVERREL}uml/kernel
725 /lib/modules/%{KVERREL}uml/build
726 /lib/modules/%{KVERREL}uml/source
727 /lib/modules/%{KVERREL}uml/extra
728 /lib/modules/%{KVERREL}uml/updates
731 %if %{buildxen} && "%{_target_cpu}" == "i686"
733 %defattr(-,root,root)
734 /%{image_install_path}/vmlinuz-%{KVERREL}xenU
735 /boot/System.map-%{KVERREL}xenU
736 /boot/config-%{KVERREL}xenU
737 %dir /lib/modules/%{KVERREL}xenU
738 /lib/modules/%{KVERREL}xenU/kernel
739 /lib/modules/%{KVERREL}xenU/build
740 /lib/modules/%{KVERREL}xenU/source
741 /lib/modules/%{KVERREL}xenU/extra
742 /lib/modules/%{KVERREL}xenU/updates
743 /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf
746 %defattr(-,root,root)
747 %verify(not mtime) /usr/src/kernels/%{KVERREL}-xenU-%{_target_cpu}
748 /usr/src/kernels/%{KVERREL}xenU-%{_target_cpu}
752 %defattr(-,root,root)
755 # only some architecture builds need kernel-doc
759 %defattr(-,root,root)
760 %{_datadir}/doc/kernel-doc-%{kversion}/Documentation/*
761 %dir %{_datadir}/doc/kernel-doc-%{kversion}/Documentation
762 %dir %{_datadir}/doc/kernel-doc-%{kversion}
766 * Tue Jul 11 2006 Dave Jones <davej@redhat.com> [2.6.17-1.2142_FC4]
768 - Disable split pagetable lock.
770 * Wed Jul 5 2006 Dave Jones <davej@redhat.com>
771 - Get rid of stack backtrace on panic, which in most
772 cases actually caused a loss of info instead of a gain.
774 * Fri Jun 30 2006 Dave Jones <davej@redhat.com> [2.6.17-1.2141_FC4]
777 * Fri Jun 30 2006 Dave Jones <davej@redhat.com> [2.6.17-1.2140_FC4]
779 - Fix up the alsa list_add bug.
781 * Mon Jun 26 2006 Dave Jones <davej@redhat.com>
782 - Fix up various stupidities incurred by the last big rebase.
783 - Reenable SMP x86-64 builds.
785 - Enable PCI fake hotplug driver.
786 - Enable gameport/joystick on i586 builds. (#196581)
788 * Sat Jun 24 2006 Dave Jones <davej@redhat.com>
789 - Enable profiling for 586 kernels.
791 * Fri Jun 23 2006 Dave Jones <davej@redhat.com> [2.6.17-1.2139_FC4]
792 - Rebuild with slab debug off.
794 * Tue Jun 20 2006 Dave Jones <davej@redhat.com> [2.6.17-1.2138_FC4]
797 * Mon Jun 5 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2115_FC4]
800 * Tue May 30 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2114_FC4]
803 * Mon May 29 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2113_FC4]
804 - Improved list_head debugging.
806 * Tue May 23 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2112_FC4]
809 * Sat May 20 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2111_FC4]
812 * Wed May 10 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2110_FC4]
815 * Tue May 9 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2109_FC4]
817 - make 16C950 UARTs work (again). (#126403)
818 - Fix exec-shield default, which should fix a few programs that
821 * Thu May 4 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2108_FC4]
824 * Tue May 2 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2107_FC4]
827 * Mon May 1 2006 Dave Jones <davej@redhat.com>
830 * Tue Apr 25 2006 Dave Jones <davej@redhat.com>
831 - Fix up SCSI errors with mymusix usb mp3 player (#186187)
833 * Mon Apr 24 2006 Dave Jones <davej@redhat.com>
836 * Wed Apr 19 2006 Dave Jones <davej@redhat.com>
837 - Enable PCI MSI support.
839 * Tue Apr 18 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2096_FC4]
842 * Tue Apr 18 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2093_FC4]
845 * Mon Apr 17 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2092_FC4]
848 * Sun Apr 16 2006 Dave Jones <davej@redhat.com>
851 * Fri Apr 7 2006 Dave Jones <davej@redhat.com>
854 * Tue Apr 4 2006 Dave Jones <davej@redhat.com>
855 - Reenable non-standard serial ports. (#187466)
856 - Reenable snd-es18xx for x86-32 (#187733)
858 * Thu Mar 30 2006 Dave Jones <davej@redhat.com>
859 - ship the .kernelrelease file in -devel too.
860 - Disable EDAC debug.
862 * Tue Mar 26 2006 Dave Jones <davej@redhat.com> [2.6.16-1.2069_FC4]
865 * Mon Mar 25 2006 Dave Jones <davej@redhat.com>
866 - Include patches posted for review for inclusion in 2.6.16.1
867 - Updated new audit msg types.
868 - Reenable HDLC driver (#186257)
869 - Make acpi-cpufreq 'sticky'
870 - Fix broken x86-64 32bit vDSO (#186924)
872 * Tue Mar 21 2006 Dave Jones <davej@redhat.com>
873 - Improve spinlock scalability on big machines.
875 * Mon Mar 20 2006 Dave Jones <davej@redhat.com>
876 - Sync with FC5's 2.6.16 kernel.
877 - Update Tux & Exec-shield to latest.