📄 lustre-kernel-2.4.spec.in
字号:
%%defattr(-,root,root)%%dir /usr/src/linux-%{KVERREL}/usr/src/linux-%{KVERREL}/*%if %{linux26}%%dir /usr/src/linux-%{KVERREL}-obj/usr/src/linux-%{KVERREL}-obj/*%endifEOF%build# if RPM_BUILD_NCPUS unset, set itif [ -z "$RPM_BUILD_NCPUS" ] ; then RPM_BUILD_NCPUS=$(egrep -c "^cpu[0-9]+" /proc/stat || :) if [ $RPM_BUILD_NCPUS -eq 0 ] ; then RPM_BUILD_NCPUS=1 fi if [ $RPM_BUILD_NCPUS -gt 8 ] ; then RPM_BUILD_NCPUS=8 fifirm -rf $RPM_BUILD_ROOTmkdir -p $RPM_BUILD_ROOTDependKernel(){ target_config=${1:+--target-config $1} sh -x ./build/lmake \ --depend-kernel \ --target @LUSTRE_TARGET@ \ --target-arch %{_target_cpu} \ ${target_config} \ --extraversion %{kextraver} \ -j $RPM_BUILD_NCPUS}BuildKernel(){ target_config=${1:+--target-config $1} sh -x ./build/lmake \ --build-kernel --build-lustre \ --install \ --save-headers \ --target @LUSTRE_TARGET@ \ --target-arch %{_target_cpu} \ ${target_config} \ --extraversion %{kextraver} \ --kerneldir $RPM_SOURCE_DIR \ -j $RPM_BUILD_NCPUS \ --destdir $RPM_BUILD_ROOT \ -- --enable-tests \ @CONFIGURE_FLAGS@}BuildLustre(){ target_config=${1:+--target-config $1} sh -x ./build/lmake \ --build-lustre \ --install-lustre \ --target @LUSTRE_TARGET@ \ --target-arch %{_target_cpu} \ ${target_config} \ --extraversion %{kextraver} \ --kerneldir $RPM_SOURCE_DIR \ -j $RPM_BUILD_NCPUS \ --destdir $RPM_BUILD_ROOT \ -- --enable-utils \ --disable-doc --disable-tests \ --disable-modules --disable-liblustre \ --sysconfdir=%{_sysconfdir} \ --mandir=%{_mandir} \ @CONFIGURE_FLAGS@}SaveHeaders(){ sh -x ./build/lmake \ --save-headers \ --target @LUSTRE_TARGET@ \ --target-arch %{_target_cpu} \ --extraversion %{kextraver} \ --destdir $RPM_BUILD_ROOT}pushd lustre >/dev/null%if %{buildbigmem}BuildKernel bigmem%endif%if %{buildBOOT}BuildKernel BOOT%endif%if %{buildjensen}BuildKernel jensen%endif%if %{buildsmp}BuildKernel smp%endif%if %{buildbigsmp}BuildKernel bigsmp%endif%if %{buildpseries64}BuildKernel pseries64%endif%if %{buildup}BuildKernel%endif%if %{buildbase}# BuildLustre%endifpopd >/dev/null%installpushd lustre >/dev/null# it's already installed, so just clean up some things that are rpm# specificfor i in $RPM_BUILD_ROOT/lib/modules/* ; do rm -f $i/modules.*%ifarch %{ntplarchs} # remove legacy pcmcia symlink that's no longer useful rm -rf $i/pcmcia%endifdone# mark the vmlinux* non-executable to fool strip-to-filechmod a-x $RPM_BUILD_ROOT/boot/vmlinux*BuildObj (){ flavor=$1 if [ $flavor = "up" ] ; then flavext="" flavtgt="" else flavext="%{flavordelim}$flavor" flavtgt="$flavor" fi perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{kextraverdelim}%{kextraver}${flavext}/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile c="$RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}" o="${c}-obj/%{_target_cpu}/$flavor" mkdir -p $o # use the one we just built #cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@-%{_target_cpu}%{dashtargetboard}${flavext}.config \ cp .config $o/.config for oc in oldconfig_nonint silentoldconfig oldconfig ; do if grep -q "$oc" Makefile ; then OLDCONFIG="$oc" break fi done MAKE="make -s O=$o -C ${c}" if [ "$CC" ] ; then MAKE_CC="CC=$CC" fi $MAKE "$MAKE_CC" $OLDCONFIG $MAKE clean rm -rf $o/.config.old $o/include/config # Replace the Makefile in the object directory with a version # that has relative path names. This is done by fixing the Makefile # after the fact to work with 2.6.17 and newer mkmakefile. read VERSION PATCHLEVEL SUBLEVEL <<-EOF$(set -- 2.6.5 ; echo ${*//./ })EOF rm -f $o/Makefile ARCH=%{_target_cpu} /bin/sh scripts/mkmakefile ../../../linux-%{KVERREL} $o \ $VERSION $PATCHLEVEL > $o/Makefile.in if [ -f $o/Makefile ] ; then # will exist only for 2.6.17 and newer because mkmakefile # now writes the makefile to $o instead of stdout mv -f $o/Makefile $o/Makefile.in fi sed -e "s^$o^../linux-%{KVERREL}-obj/%{_target_cpu}/$flavor^" \ $o/Makefile.in > $o/Makefile zcat "$RPM_BUILD_ROOT/boot/symvers-%{KVERREL}-%{_target_cpu}${flavext}.gz" \ > $o/Module.symvers}#### do -source package cleanup/install##if [ "%{buildbase}" -ne 0 ] ; then pushd linux >/dev/null mkdir -p $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL} rm -f drivers/net/hamradio/soundmodem/gentbl scripts/mkdep tar cf - . | tar xf - -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL} ln -sf linux-%{KVERREL} $RPM_BUILD_ROOT/usr/src/linux # install -m 644 %{SOURCE10} $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL} #clean up the destination make -s mrproper -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL} rm -rf $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs mkdir -p $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@*.config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs if [ "%{linux26}" -ne 0 ] ; then # this only works because CFS only builds one kernel per target/arch per kernel-source rpm objdir=$RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}-obj mkdir -p $objdir if [ "%{buildbigmem}" -ne 0 ] ; then BuildObj bigmem fi if [ "%{buildBOOT}" -ne 0 ] ; then BuildObj BOOT fi if [ "%{buildjensen}" -ne 0 ] ; then BuildObj jensen fi if [ "%{buildsmp}" -ne 0 ] ; then BuildObj smp fi if [ "%{buildbigsmp}" -ne 0 ] ; then BuildObj bigsmp fi if [ "%{buildpseries64}" -ne 0 ] ; then BuildObj pseries64 fi if [ "%{buildup}" -ne 0 ] ; then BuildObj up fi perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{kextraverdelim}%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile # Remove $RPM_BUILD_ROOT prefix from symlinks. for link in $(find $objdir -type l); do target=$(readlink $link) rm -f $link ln -s ${target/$RPM_BUILD_ROOT/} $link done else # 2.4 rh-style perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{kextraverdelim}%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile # get the one from the build we just completed as it might have picked # up new options #cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@-%{_target_cpu}%{dashtargetboard}.config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/.config cp .config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/.config for oc in oldconfig_nonint silentoldconfig oldconfig ; do if grep -q "$oc" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile ; then OLDCONFIG="$oc" break fi done if [ "$CC" ] ; then MAKE_CC="CC=$CC" fi make "$MAKE_CC" -s $OLDCONFIG -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL} make "$MAKE_CC" -s symlinks -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL} make "$MAKE_CC" -s include/linux/version.h -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL} #this generates modversions info which we want to include and we may as #well include the depends stuff as well, after we fix the paths make -s depend -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL} find $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL} -name ".*depend" | \ while read file ; do mv $file $file.old sed -e "s|[^ ]*\(/usr/src/linux\)|\1|g" < $file.old > $file rm -f $file.old done # Try to put some smarter autoconf.h and version.h files in place pushd $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/include/linux ; { rm -rf modules modversions.h autoconf.h version.h cat > modversions.h <<EOF#ifndef _LINUX_MODVERSIONS_H#define _LINUX_MODVERSIONS_H#include <linux/rhconfig.h>#include <linux/modsetver.h>EOF echo '#include <linux/rhconfig.h>' > autoconf.h list=`find ../../savedheaders/* -name '*.ver' -exec basename '{}' \; | sort` mkdir modules for l in $list; do sed 's,$,modules/'$l, ../../savedheaders/list | awk -f %{SOURCE17} > modules/$l touch -r modules/$l modules/`basename $l .ver`.stamp echo '#include <linux/modules/'$l'>' >> modversions.h done echo '#endif' >> modversions.h sed 's,$,autoconf.h,' ../../savedheaders/list | awk -f %{SOURCE16} >> autoconf.h install -m 644 %{SOURCE15} rhconfig.h echo "#include <linux/rhconfig.h>" >> version.h keyword=if for i in smp BOOT BOOTsmp bigmem bigsmp pseries64 up ; do # When we build in an i386, we don't have an bigmem header directory # in savedheaders/i386/bigmem. We also don't have a BOOT directory # anywhere except in savedheaders/i386. So, we need to use this method # of determining if a kernel version string needs to be included in the # version.h file verh=`echo ../../savedheaders/*/$i/version.h | awk ' { print $1 } '` if [ -n "$verh" -a -f "$verh" ]; then if [ "$i" = up ]; then if [ "$keyword" = if ]; then echo "#if 0" >> version.h fi echo "#else" >> version.h else echo "#$keyword defined(__module__$i)" >> version.h keyword=elif fi grep UTS_RELEASE $verh >> version.h fi done echo "#endif" >> version.h if [ -f ../../savedheaders/%{_target_cpu}/up/version.h ] ; then # keep to a standard normally HEADER_FILE=../../savedheaders/%{_target_cpu}/up/version.h else # test build not including uniprocessor, must get info from somewhere HEADER_FILE=$(ls ../../savedheaders/*/*/version.h | head -n 1) fi grep -v UTS_RELEASE $HEADER_FILE >> version.h rm -rf ../../savedheaders } ; popd touch $RPM_BUILD_ROOT/boot/kernel.h-%{kversion} # rm -f $RPM_BUILD_ROOT/usr/include/linux rm -rf $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/savedheaders if [ "%{rhbuild}" -ne 0 ] ; then # fix up the tmp_include_depends file wrt the buildroot perl -p -i -e "s|$RPM_BUILD_ROOT||g" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/tmp_include_depends fi fi # linux26 popd >/dev/nullfi # buildbasepopd >/dev/null%cleanrm -rf $RPM_BUILD_ROOT###### scripts#### do this for upgrades...in case the old modules get removed we have# loopback in the kernel so that mkinitrd will work.%pre -f pre.sh%pre smp -f presmp.sh%pre bigsmp -f prebigsmp.sh%pre pseries64 -f prepseries64.sh%pre bigmem -f prebigmem.sh%post -f post.sh%post pseries64 -f postpseries64.sh%post smp -f postsmp.sh%post bigsmp -f postbigsmp.sh%post bigmem -f postbigmem.sh%post jensen -f postjensen.sh%ifnarch ia64%post BOOT -f postBOOT.sh%endif%post -n lustre-lite-utilsif [ -f /etc/init.d/lustre ] ; then /sbin/chkconfig --add lustre /sbin/chkconfig --add lustrefsfi# Allow clean removal of modules directory%preun -f preun.sh%preun pseries64 -f preunpseries64.sh%preun smp -f preunsmp.sh%preun bigsmp -f preunbigsmp.sh%preun bigmem -f preunbigmem.sh%preun BOOT -f preunBOOT.sh%preun jensen -f preunjensen.sh# suse needs these i guess%postun -f postun.sh%postun pseries64 -f postunpseries64.sh%postun smp -f postunsmp.sh%postun bigsmp -f postunbigsmp.sh%postun bigmem -f postunbigmem.sh%postun BOOT -f postunBOOT.sh%postun jensen -f postunjensen.sh# We need this here because we don't prereq kudzu; it could be# installed after the kernel%triggerin -- kudzu[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :%triggerin smp -- kudzu[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :%triggerin bigsmp -- kudzu[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :%triggerin pseries64 -- kudzu[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :%triggerin bigmem -- kudzu[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :%triggerin BOOT -- kudzu[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :%triggerin jensen -- kudzu[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :# Old kernel-headers packages owned include symlinks; new# ones just make them so that we can have multiple kernel-headers# packages installed.%triggerpostun source -- kernel-headers < 2.2.16cd /usr/srcrm -f %{kslnk}ln -snf linux-%{KVERREL} %{kslnk}exit 0%post sourcecd /usr/srcrm -f %{kslnk}ln -snf linux-%{KVERREL} %{kslnk}%postun sourceif [ -L /usr/src/%{kslnk} ]; then if [ -L /usr/src/%{kslnk} -a `ls -ld /usr/src/%{kslnk} 2>/dev/null| awk '{ print $11 }'` = "linux-%{KVERREL}" ]; then [ $1 = 0 ] && rm -f /usr/src/%{kslnk} fifiexit 0%preun -n lustre-lite-utilsif [ $1 = 0 -a -f /etc/init.d/lustre ]; then /sbin/chkconfig --del lustre /sbin/chkconfig --del lustrefsfi###### file lists###%if %{buildup}%files -f kernel.files%endif%if %{buildsmp}%files smp -f kernelsmp.files%endif%if %{buildbigsmp}%files bigsmp -f kernelbigsmp.files%endif%if %{buildpseries64}%files pseries64 -f kernelpseries64.files%endif%if %{buildbigmem}%files bigmem -f kernelbigmem.files%endif%if %{buildBOOT}%files BOOT -f kernelBOOT.files%endif%if %{buildbase}%files source -f kernel-source.files%endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -