1 Summary: The Linux kernel (the core of the Linux operating system)
3 # Versions of various parts
6 # Polite request for people who spin their own kernel rpms:
7 # please modify the "release" field in a way that identifies
8 # that the kernel isn't the stock RHL kernel, for example by
9 # adding some text to the end of the version number.
11 %define kversion @KERNEL_VERSION@
12 %define kextraver @KERNEL_EXTRA_VERSION@
13 %define release @KERNEL_RELEASE@
14 # /usr/src/%{kslnk} -> /usr/src/linux-%{KVERREL}
15 %define kslnk linux-2.4
17 # groups of related archs
18 %define all_x86 i386 i686 i586 athlon
19 #define all_x86 i686 i386 i586 athlon
21 %define nptlarchs %{all_x86}
22 #define nptlarchs noarch
23 %define rhbuild @RHBUILD@
24 %define susebuild @SUSEBUILD@
25 %define linux26 @LINUX26@
27 # disable build root strip policy
28 %define __spec_install_post /usr/lib/rpm/brp-compress || :
31 %define _missing_doc_files_terminate_build 0
32 %define _unpackaged_files_terminate_build 0
33 %define debug_package %{nil}
35 # Enable this to build a board-specific kernel configuration
36 # some architectures have LOTS of different setups and this
37 # is a way to deal with that cleanly.
39 #define targetboard assabet
40 %define dashtargetboard %{?targetboard:-%{targetboard}}
41 %define withtargetboard 0
42 %{?targetboard: %{expand: %%define withtargetboard 1}}
44 # Override generic defaults with per-arch defaults (which can
45 # themselves be overridden with --with/--without). These must
46 # ONLY be "0", never "1"
61 %ifarch @BIGMEM_ARCHS@
69 %ifarch @JENSEN_ARCHS@
77 %ifarch @BIGSMP_ARCHS@
85 # For board-specific kernels, build only the normal kernel (which may actually be smp, not up).
86 %if %{withtargetboard}
95 Second, per-architecture exclusions (ifarch)
104 # we can't test values inline, only whether a macro exists
105 %{expand: %%define buildup_%{buildup} yadda}
106 %{expand: %%define buildsmp_%{buildsmp} yadda}
107 %{expand: %%define buildbigsmp_%{buildbigsmp} yadda}
108 %{expand: %%define buildBOOT_%{buildBOOT} yadda}
109 %{expand: %%define buildbigmem_%{buildbigmem} yadda}
110 %{expand: %%define buildjensen_%{buildjensen} yadda}
111 %{expand: %%define ikd_%{ikd} yadda}
112 %{expand: %%define ibcs_%{ibcs} yadda}
113 %{expand: %%define debuglevel_%{debugging} yadda}
115 %{expand: %%define kernel_conflicts ppp <= 2.3.15, pcmcia-cs <= 3.1.20, isdn4k-utils <= 3.0, mount < 2.10r-5, nfs-utils < 0.3.1, cipe < 1.4.5, tux < 2.1.0, kudzu <= 0.92, e2fsprogs < 1.22, initscripts < 5.84, dev < 3.2-7, iptables < 1.2.5-3, bcm5820 < 1.81, nvidia-rh72 <= 1.0, oprofile < 0.4}
118 %define BOOT_kernel_prereq fileutils, modutils >= 2.4.18
119 %define kernel_prereq %{BOOT_kernel_prereq}, initscripts >= 5.83, mkinitrd >= 3.2.6
123 %define initrd_dir /boot/efi/redhat
125 %define initrd_dir /boot
128 %ifarch %{all_x86} x86_64
129 %define kernel_glob vmlinu?-%{KVERREL}
132 # <sigh>, no GLOB_BRACE for filelists, efi needs to be done separately
133 %define kernel_glob vmlinuz-%{KVERREL}
136 %define kernel_glob vmlinu?-%{KVERREL}
141 Release: %{release}%{?targetboard:%{targetboard}}%{?debuglevel_1:.dbg}
142 %define KVERREL %{PACKAGE_VERSION}-%{kextraver}%{?targetboard:%{targetboard}}%{?debuglevel_1:.dbg}
144 Group: System Environment/Kernel
145 ExclusiveArch: %{all_x86} x86_64 ia64 ppc
147 Obsoletes: kernel-modules, kernel-sparc
148 Provides: kernel = %{version}
149 BuildConflicts: rhbuildsys(DiscFree) < 500Mb
150 %ifarch %{all_x86} ia64 x86_64
151 Provides: kernel-drm = 4.1.0, kernel-drm = 4.2.0, kernel-drm = 4.3.0, kernel-drm = 4.2.99.3
155 Prereq: %{kernel_prereq}
156 Conflicts: %{kernel_conflicts}
158 BuildPreReq: patch >= 2.5.4, bash >= 2.03, sh-utils, gnupg, tar
159 BuildPreReq: bzip2, findutils, dev, gzip, m4
162 Vendor: Cluster File Systems, Inc.
163 URL: http://www.kernel.org/
164 Buildroot: /var/tmp/%{name}-%{PACKAGE_VERSION}-root
166 Source0: @LUSTRE_SOURCE@
167 Source1: @KERNEL_SOURCE@
168 Source2: external-patches.tar.gz
170 Source15: linux-rhconfig.h
171 Source16: linux-merge-config.awk
172 Source17: linux-merge-modules.awk
174 Source25: suse-functions.sh
175 Source26: suse-post.sh
176 Source27: suse-postun.sh
177 Source28: suse-trigger-script.sh.in
180 Summary: The source code for the Linux kernel.
181 Group: Development/System
184 Requires: gcc >= 2.96-98
188 Summary: Various documentation bits found in the kernel source.
192 The kernel package contains the Linux kernel (vmlinuz), the core of a
193 Linux operating system. The kernel handles the basic functions of the
194 operating system: memory allocation, process allocation, device input
198 The kernel-source package contains the source code files for the Linux
199 kernel. These source files are needed to build custom/third party device
200 drivers. The source files can also be used to build a custom kernel that is
201 better tuned to your particular hardware, if you are so inclined (and you
202 know what you're doing).
205 This package contains documentation files form the kernel
206 source. Various bits of information about the Linux kernel and the
207 device drivers shipped with it are documented in these files.
209 You'll want to install this package if you need a reference to the
210 options that can be passed to Linux kernel modules at load time.
213 Summary: The Linux kernel compiled for SMP machines.
214 Group: System Environment/Kernel
215 Provides: module-info, kernel = %{version}
216 %ifarch %{all_x86} ia64 x86_64
217 Provides: kernel-drm = 4.1.0, kernel-drm = 4.2.0, kernel-drm = 4.3.0, kernel-drm = 4.2.99.3
220 Prereq: %{kernel_prereq}
221 Conflicts: %{kernel_conflicts}
225 This package includes a SMP version of the Linux kernel. It is
226 required only on machines with two or more CPUs, although it should
227 work fine on single-CPU boxes.
229 Install the kernel-smp package if your machine uses two or more CPUs.
232 Summary: The Linux kernel compiled for SMP machines.
234 Provides: module-info, kernel = %{version}, k_smp4G
236 %ifarch %{all_x86} ia64 x86_64
237 Provides: kernel-drm = 4.1.0, kernel-drm = 4.2.0, kernel-drm = 4.3.0, kernel-drm = 4.2.99.3
240 Prereq: %{kernel_prereq}
241 Conflicts: %{kernel_conflicts}
245 This package includes a SMP version of the Linux kernel. It is
246 required only on machines with two or more CPUs, although it should
247 work fine on single-CPU boxes.
249 Install the kernel-bigsmp package if your machine uses two or more CPUs.
252 Summary: The Linux Kernel for machines with more than 4 Gigabyte of memory.
253 Group: System Environment/Kernel
254 Provides: module-info, kernel = %{version}
255 %ifarch %{all_x86} ia64 x86_64
256 Provides: kernel-drm = 4.1.0, kernel-drm = 4.2.0, kernel-drm = 4.3.0, kernel-drm = 4.2.99.3
259 Prereq: %{kernel_prereq}
260 Conflicts: %{kernel_conflicts}
261 Obsoletes: kernel-enterprise <= 2.4.10
265 This package includes a kernel that has appropriate configuration options
266 enabled for Pentium III machines with 4 Gigabyte of memory or more.
269 Summary: The version of the Linux kernel used on installation boot disks.
270 Group: System Environment/Kernel
271 Provides: kernel = %{version}
273 Prereq: %{BOOT_kernel_prereq}
274 Conflicts: %{kernel_conflicts}
278 This package includes a trimmed down version of the Linux kernel.
279 This kernel is used on the installation boot disks only and should not
280 be used for an installed system, as many features in this kernel are
281 turned off because of the size constraints.
284 Summary: The Linux kernel used on installation boot disks for SMP machines.
285 Group: System Environment/Kernel
286 Provides: kernel = %{version}
288 Prereq: %{BOOT_kernel_prereq}
289 Conflicts: %{kernel_conflicts}
293 This package includes a trimmed down version of the Linux kernel. This
294 kernel is used on the installation boot disks only and should not be used
295 for an installed system, as many features in this kernel are turned off
296 because of the size constraints. This kernel is used when booting SMP
297 machines that have trouble coming up to life with the uniprocessor kernel.
300 Summary: The Linux Kernel compiled for the Alpha Jensen platform.
301 Group: System Environment/Kernel
302 Provides: kernel = %{version}
304 Prereq: %{kernel_prereq}
305 Conflicts: %{kernel_conflicts}
309 This package includes a kernel that has appropriate configuration
310 options enabled for use on the Alpha Jensen platform. The Jensen
311 platform is not supported in the normal generic alpha kernel support.
313 %package -n lustre-lite-utils
314 Summary: Lustre utils for Linux
315 Group: Applications/System
317 %description -n lustre-lite-utils
318 The Lustre Lite file system utilities. This includes the tools needed
319 to configure, mount, and administer a Lustre filesystem. This package
320 is necessary if you want to access a Lustre filesystem.
322 # the lustre-doc files are just included as %doc wiht
325 #%package -n lustre-doc
326 #Summary: Sample Lustre configurations and documentation
327 #Group: Documentation
329 #%description -n lustre-doc
330 #The Lustre book, sample configurations, and other documentation for
333 %package -n lustre-ldap
334 Summary: LDAP schema files for Lustre
335 Group: System Environment/Daemons
337 %description -n lustre-ldap
338 LDAP schema files for Lustre. These are needed if you plan to store
339 your Lustre configuration in LDAP, rather than on disk.
342 %setup -n lustre-kernel-%{version} -q -c
343 if [ ! -d lustre ] ; then
344 ln -sf lustre* lustre
346 pushd lustre >/dev/null
347 if [ -s "%{SOURCE2}" ] ; then
348 tar zxf "%{SOURCE2}" -C lustre/kernel_patches
350 sh -x ./build/lmake \
352 --target @LUSTRE_TARGET@ \
353 --target-arch %{_target_cpu} \
354 --kerneldir $RPM_SOURCE_DIR
357 # handle both SuSE and Red Hat's new-kernel-pkg bits
358 for flavor in "" smp bigmem bigsmp BOOT jensen ; do
359 for when in pre preun post postun ; do
360 script="${when}${flavor}.sh"
361 echo "if [ -f /etc/SuSE-release ] ; then" > ${script}
362 sed -e "s/@when@/$when/g" -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE28} >> ${script}
363 cat %{SOURCE25} >> ${script}
366 sed -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE26} >> ${script}
369 sed -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE27} >> ${script}
372 echo "exit 0; fi" >> ${script}
375 if [ -z "${flavor}" ] ; then
376 cat >> ${script} <<EOF
379 ln -sf vmlinuz-%{KVERREL} vmlinuz
381 ln -sf System.map-%{KVERREL} System.map
382 ln -sf module-info-%{KVERREL} module-info
385 cat >> ${script} <<EOF
386 [ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade
387 [ -x /sbin/mkkerneldoth ] && /sbin/mkkerneldoth
388 if [ -x /sbin/new-kernel-pkg ] ; then
389 /sbin/new-kernel-pkg --mkinitrd --depmod --install %{KVERREL}${flavor}
396 cat >> ${script} <<EOF
397 /sbin/modprobe loop 2>/dev/null >/dev/null || :
402 cat >> ${script} <<EOF
403 /sbin/modprobe loop 2> /dev/null > /dev/null || :
404 rm -f /lib/modules/%{KVERREL}${flavor}/modules.*
405 if [ -x /sbin/new-kernel-pkg ] ; then
406 /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}${flavor}
413 cat > "kernel$flavor.files" <<EOF
414 %%defattr(-, root, root)
415 /boot/%{kernel_glob}${flavor}
416 /boot/System.map-%{KVERREL}${flavor}
417 /boot/config-%{KVERREL}${flavor}
420 /lib/modules/%{KVERREL}${flavor}
422 /boot/efi/redhat/%{kernel_glob}${flavor}
425 /boot/Kerntypes-%{KVERREL}${flavor}
426 /boot/symvers-%{KVERREL}-%{_target_cpu}${flavor}.gz
432 cat > kernel-source.files <<EOF
433 %%defattr(-,root,root)
434 %%dir /usr/src/linux-%{KVERREL}
435 /usr/src/linux-%{KVERREL}/*
437 %%dir /usr/src/linux-%{KVERREL}-obj
438 /usr/src/linux-%{KVERREL}-obj/*
443 # if RPM_BUILD_NCPUS unset, set it
444 if [ -z "$RPM_BUILD_NCPUS" ] ; then
445 RPM_BUILD_NCPUS=$(egrep -c "^cpu[0-9]+" /proc/stat || :)
446 if [ $RPM_BUILD_NCPUS -eq 0 ] ; then
449 if [ $RPM_BUILD_NCPUS -gt 8 ] ; then
454 rm -rf $RPM_BUILD_ROOT
455 mkdir -p $RPM_BUILD_ROOT
459 target_config=${1:+--target-config $1}
460 sh -x ./build/lmake \
462 --target @LUSTRE_TARGET@ \
463 --target-arch %{_target_cpu} \
465 --extraversion %{kextraver} \
471 target_config=${1:+--target-config $1}
472 sh -x ./build/lmake \
473 --build-kernel --build-lustre \
475 --target @LUSTRE_TARGET@ \
476 --target-arch %{_target_cpu} \
478 --extraversion %{kextraver} \
479 --kerneldir $RPM_SOURCE_DIR \
480 -j $RPM_BUILD_NCPUS \
481 --destdir $RPM_BUILD_ROOT \
482 -- --enable-modules \
483 --disable-doc --disable-tests \
484 --disable-utils --disable-liblustre \
485 --sysconfdir=%{_sysconfdir} \
486 --mandir=%{_mandir} \
492 target_config=${1:+--target-config $1}
493 sh -x ./build/lmake \
496 --target @LUSTRE_TARGET@ \
497 --target-arch %{_target_cpu} \
499 --extraversion %{kextraver} \
500 --kerneldir $RPM_SOURCE_DIR \
501 -j $RPM_BUILD_NCPUS \
502 --destdir $RPM_BUILD_ROOT \
504 --disable-doc --disable-tests \
505 --disable-modules --disable-liblustre \
506 --sysconfdir=%{_sysconfdir} \
507 --mandir=%{_mandir} \
513 sh -x ./build/lmake \
515 --target @LUSTRE_TARGET@ \
516 --target-arch %{_target_cpu} \
517 --extraversion %{kextraver} \
518 --destdir $RPM_BUILD_ROOT
521 pushd lustre >/dev/null
555 pushd lustre >/dev/null
556 # it's already installed, so just clean up some things that are rpm
558 for i in $RPM_BUILD_ROOT/lib/modules/* ; do
561 ln -sf ../../../usr/src/linux-%{KVERREL} $i/build
563 # remove legacy pcmcia symlink that's no longer useful
568 # mark the vmlinux* non-executable to fool strip-to-file
569 chmod a-x $RPM_BUILD_ROOT/boot/vmlinux*
574 if [ $flavor = "up" ] ; then
581 perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{kextraver}${flavtgt}/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
582 c="$RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}"
583 o="${c}-obj/%{_target_cpu}/$flavor"
585 cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@-%{_target_cpu}%{dashtargetboard}${flavext}.config \
587 for oc in oldconfig_nonint silentoldconfig oldconfig ; do
588 if grep -q "$oc" Makefile ; then
593 MAKE="make -s O=$o -C ${c}"
597 rm -rf $o/.config.old $o/include/config
598 # Replace the Makefile in the object directory with a version
599 # that has relative path names.
600 read VERSION PATCHLEVEL SUBLEVEL <<-EOF
601 $(set -- 2.6.5 ; echo ${*//./ })
603 source scripts/mkmakefile \
604 ../../../linux-%{KVERREL} \
605 ../linux-%{KVERREL}-obj/%{_target_cpu}/$flavor \
609 zcat "$RPM_BUILD_ROOT/boot/symvers-%{KVERREL}-%{_target_cpu}${flavor}.gz" \
614 ## do -source package cleanup/install
616 if [ "%{buildbase}" -ne 0 ] ; then
617 pushd linux >/dev/null
618 mkdir -p $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
619 rm -f drivers/net/hamradio/soundmodem/gentbl scripts/mkdep
620 tar cf - . | tar xf - -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
621 ln -sf linux-%{KVERREL} $RPM_BUILD_ROOT/usr/src/linux
622 # install -m 644 %{SOURCE10} $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
624 #clean up the destination
625 make -s mrproper -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
626 rm -rf $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs
627 mkdir -p $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs
628 cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@*.config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs
629 if [ "%{linux26}" -ne 0 ] ; then
630 # this only works because CFS only builds one kernel per target/arch per kernel-source rpm
631 objdir=$RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}-obj
633 if [ "%{buildbigmem}" -ne 0 ] ; then
636 if [ "%{buildBOOT}" -ne 0 ] ; then
639 if [ "%{buildjensen}" -ne 0 ] ; then
642 if [ "%{buildsmp}" -ne 0 ] ; then
645 if [ "%{buildbigsmp}" -ne 0 ] ; then
648 if [ "%{buildup}" -ne 0 ] ; then
651 perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
652 # Remove $RPM_BUILD_ROOT prefix from symlinks.
653 for link in $(find $objdir -type l); do
654 target=$(readlink $link)
656 ln -s ${target/$RPM_BUILD_ROOT/} $link
659 perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
660 cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@-%{_target_cpu}%{dashtargetboard}.config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/.config
661 for oc in oldconfig_nonint silentoldconfig oldconfig ; do
662 if grep -q "$oc" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile ; then
667 make -s $OLDCONFIG -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
668 make -s symlinks -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
669 make -s include/linux/version.h -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
671 #this generates modversions info which we want to include and we may as
672 #well include the depends stuff as well, after we fix the paths
673 make -s depend -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
674 find $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL} -name ".*depend" | \
677 sed -e "s|[^ ]*\(/usr/src/linux\)|\1|g" < $file.old > $file
681 # Try to put some smarter autoconf.h and version.h files in place
682 pushd $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/include/linux ; {
683 rm -rf modules modversions.h autoconf.h version.h
684 cat > modversions.h <<EOF
685 #ifndef _LINUX_MODVERSIONS_H
686 #define _LINUX_MODVERSIONS_H
687 #include <linux/rhconfig.h>
688 #include <linux/modsetver.h>
690 echo '#include <linux/rhconfig.h>' > autoconf.h
691 list=`find ../../savedheaders/* -name '*.ver' -exec basename '{}' \; | sort`
694 sed 's,$,modules/'$l, ../../savedheaders/list | awk -f %{SOURCE17} > modules/$l
695 touch -r modules/$l modules/`basename $l .ver`.stamp
696 echo '#include <linux/modules/'$l'>' >> modversions.h
698 echo '#endif' >> modversions.h
699 sed 's,$,autoconf.h,' ../../savedheaders/list | awk -f %{SOURCE16} >> autoconf.h
700 install -m 644 %{SOURCE15} rhconfig.h
701 echo "#include <linux/rhconfig.h>" >> version.h
703 for i in smp BOOT BOOTsmp bigmem bigsmp up ; do
704 # When we build in an i386, we don't have an bigmem header directory
705 # in savedheaders/i386/bigmem. We also don't have a BOOT directory
706 # anywhere except in savedheaders/i386. So, we need to use this method
707 # of determining if a kernel version string needs to be included in the
709 verh=`echo ../../savedheaders/*/$i/version.h | awk ' { print $1 } '`
710 if [ -n "$verh" -a -f "$verh" ]; then
711 if [ "$i" = up ]; then
712 if [ "$keyword" = if ]; then
713 echo "#if 0" >> version.h
715 echo "#else" >> version.h
717 echo "#$keyword defined(__module__$i)" >> version.h
720 grep UTS_RELEASE $verh >> version.h
723 echo "#endif" >> version.h
724 if [ -f ../../savedheaders/%{_target_cpu}/up/version.h ] ; then
725 # keep to a standard normally
726 HEADER_FILE=../../savedheaders/%{_target_cpu}/up/version.h
728 # test build not including uniprocessor, must get info from somewhere
729 HEADER_FILE=$(ls ../../savedheaders/*/*/version.h | head -n 1)
731 grep -v UTS_RELEASE $HEADER_FILE >> version.h
732 rm -rf ../../savedheaders
734 touch $RPM_BUILD_ROOT/boot/kernel.h-%{kversion}
736 # rm -f $RPM_BUILD_ROOT/usr/include/linux
738 rm -rf $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/savedheaders
740 if [ "%{rhbuild}" -ne 0 ] ; then
741 # fix up the tmp_include_depends file wrt the buildroot
742 perl -p -i -e "s|$RPM_BUILD_ROOT||g" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/tmp_include_depends
751 rm -rf $RPM_BUILD_ROOT
757 # do this for upgrades...in case the old modules get removed we have
758 # loopback in the kernel so that mkinitrd will work.
761 %pre smp -f presmp.sh
763 %pre bigsmp -f prebigsmp.sh
765 %pre bigmem -f prebigmem.sh
769 %post smp -f postsmp.sh
771 %post bigsmp -f postbigsmp.sh
773 %post bigmem -f postbigmem.sh
775 %post jensen -f postjensen.sh
778 %post BOOT -f postBOOT.sh
782 %post -n lustre-lite-utils
783 if [ ! -e /dev/obd ]; then
784 mknod /dev/obd c 10 241
786 if [ ! -e /dev/portals ]; then
787 mknod /dev/portals c 10 240
789 if [ -f /etc/init.d/lustre ] ; then
790 /sbin/chkconfig --add lustre
791 /sbin/chkconfig --add lustrefs
794 # Allow clean removal of modules directory
797 %preun smp -f preunsmp.sh
799 %preun bigsmp -f preunbigsmp.sh
801 %preun bigmem -f preunbigmem.sh
803 %preun BOOT -f preunBOOT.sh
805 %preun jensen -f preunjensen.sh
807 # suse needs these i guess
810 %postun smp -f postunsmp.sh
812 %postun bigsmp -f postunbigsmp.sh
814 %postun bigmem -f postunbigmem.sh
816 %postun BOOT -f postunBOOT.sh
818 %postun jensen -f postunjensen.sh
820 # We need this here because we don't prereq kudzu; it could be
821 # installed after the kernel
823 [ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :
825 %triggerin smp -- kudzu
826 [ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :
828 %triggerin bigsmp -- kudzu
829 [ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :
831 %triggerin bigmem -- kudzu
832 [ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :
834 %triggerin BOOT -- kudzu
835 [ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :
837 %triggerin jensen -- kudzu
838 [ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :
841 # Old kernel-headers packages owned include symlinks; new
842 # ones just make them so that we can have multiple kernel-headers
843 # packages installed.
845 %triggerpostun source -- kernel-headers < 2.2.16
848 ln -snf linux-%{KVERREL} %{kslnk}
854 ln -snf linux-%{KVERREL} %{kslnk}
857 if [ -L /usr/src/%{kslnk} ]; then
858 if [ -L /usr/src/%{kslnk} -a `ls -ld /usr/src/%{kslnk} 2>/dev/null| awk '{ print $11 }'` = "linux-%{KVERREL}" ]; then
859 [ $1 = 0 ] && rm -f /usr/src/%{kslnk}
864 %preun -n lustre-lite-utils
865 if [ $1 = 0 -a -f /etc/init.d/lustre ]; then
866 /sbin/chkconfig --del lustre
867 /sbin/chkconfig --del lustrefs
875 %files -f kernel.files
879 %files smp -f kernel.files
883 %files bigsmp -f kernelbigsmp.files
887 %files bigmem -f kernelbigmem.files
891 %files BOOT -f kernelBOOT.files
896 %files source -f kernel-source.files
899 %defattr(-,root,root)
900 %doc lustre/linux/Documentation/*
902 %files -n lustre-lite-utils
903 %defattr(-, root, root)
904 %doc lustre/COPYING lustre/BUGS lustre/ChangeLog lustre/README lustre/doc/lustre.pdf
908 /usr/lib/lustre/python
909 @ENABLE_INIT_SCRIPTS@/etc/init.d/lustre
910 @ENABLE_INIT_SCRIPTS@/etc/init.d/lustrefs
911 /usr/include/lustre/*
912 /usr/include/portals/*
915 /usr/share/man/man?/*
917 #%files -n lustre-doc
918 #%defattr(-, root, root)
919 #/usr/share/doc/lustre/COPYING
920 #/usr/share/doc/lustre/lustre.pdf
921 #/usr/share/doc/lustre/COPYING
923 /usr/share/lustre/examples
925 %files -n lustre-ldap
926 %defattr(-, root, root)
927 /etc/openldap/slapd-lustre.conf
928 /etc/openldap/schema/lustre.schema
929 /usr/share/lustre/lustre2ldif.xsl
930 /usr/share/lustre/top.ldif
932 %endif # %{buildbase}