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