X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=build%2Flustre-kernel-2.4.spec.in;h=41efbb3520370886a7d98518e0981108df306394;hb=d395ecdcebeb9417d93d233dad7f547d8826f96a;hp=bca44a47dd4b77ec0cbeda1479092ec3bc6d2258;hpb=6ff8ec9216fb40d51c79c18dd65bd2b7c480a30c;p=fs%2Flustre-release.git diff --git a/build/lustre-kernel-2.4.spec.in b/build/lustre-kernel-2.4.spec.in index bca44a4..41efbb3 100644 --- a/build/lustre-kernel-2.4.spec.in +++ b/build/lustre-kernel-2.4.spec.in @@ -10,6 +10,8 @@ Summary: The Linux kernel (the core of the Linux operating system) # %define kversion @KERNEL_VERSION@ %define kextraver @KERNEL_EXTRA_VERSION@ +%define kextraverdelim @KERNEL_EXTRA_VERSION_DELIMITER@ +%define flavordelim "@KERNEL_TARGET_DELIMITER@" %define release @KERNEL_RELEASE@ # /usr/src/%{kslnk} -> /usr/src/linux-%{KVERREL} %define kslnk linux-2.4 @@ -146,10 +148,10 @@ Second, per-architecture exclusions (ifarch) %define kernel_glob vmlinu?-%{KVERREL} %endif -Name: kernel +Name: kernel-lustre Version: %{kversion} Release: %{release}%{?targetboard:%{targetboard}}%{?debuglevel_1:.dbg} -%define KVERREL %{PACKAGE_VERSION}-%{kextraver}%{?targetboard:%{targetboard}}%{?debuglevel_1:.dbg} +%define KVERREL %{PACKAGE_VERSION}%{kextraverdelim}%{kextraver}%{?targetboard:%{targetboard}}%{?debuglevel_1:.dbg} License: GPL Group: System Environment/Kernel ExclusiveArch: %{all_x86} x86_64 ia64 ppc @@ -171,7 +173,7 @@ BuildPreReq: bzip2, findutils, dev, gzip, m4 Vendor: Cluster File Systems, Inc. URL: http://www.kernel.org/ -Buildroot: /var/tmp/%{name}-%{PACKAGE_VERSION}-root +Buildroot: %{_tmppath}/%{name}-%{version}-root Source0: @LUSTRE_SOURCE@ Source1: @KERNEL_SOURCE@ @@ -185,6 +187,11 @@ Source25: suse-functions.sh Source26: suse-post.sh Source27: suse-postun.sh Source28: suse-trigger-script.sh.in +Source29: sles8-post.sh +Source30: sles8-postun.sh +Source31: sles8-pre.sh +Source32: sles8-update_INITRD_MODULES.sh +Source33: sles8-update_rcfile_setting.sh %package source Summary: The source code for the Linux kernel. @@ -348,7 +355,7 @@ The Lustre Lite file system utilities. This includes the tools needed to configure, mount, and administer a Lustre filesystem. This package is necessary if you want to access a Lustre filesystem. -# the lustre-doc files are just included as %doc wiht +# the lustre-doc files are just included as %doc with # lustre-lite-utils #%package -n lustre-doc @@ -359,13 +366,10 @@ is necessary if you want to access a Lustre filesystem. #The Lustre book, sample configurations, and other documentation for #Lustre. -%package -n lustre-ldap -Summary: LDAP schema files for Lustre -Group: System Environment/Daemons - -%description -n lustre-ldap -LDAP schema files for Lustre. These are needed if you plan to store -your Lustre configuration in LDAP, rather than on disk. +# This is required in rpm >= 4.4.? and _should_ be set by the %setup macro +# but isn't, at least for 4.4.2. Yay RPM. +%define buildsubdir lustre-kernel-%{version} +%define _buildsubdir lustre-kernel-%{version} %prep %setup -n lustre-kernel-%{version} -q -c @@ -385,17 +389,36 @@ popd >/dev/null # handle both SuSE and Red Hat's new-kernel-pkg bits for flavor in "" smp bigmem bigsmp pseries64 BOOT jensen ; do + [ -n "$flavor" ] && delim_flavor="%{flavordelim}$flavor" for when in pre preun post postun ; do script="${when}${flavor}.sh" - echo "if [ -f /etc/SuSE-release ] ; then" > ${script} - sed -e "s/@when@/$when/g" -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE28} >> ${script} - cat %{SOURCE25} >> ${script} + cat %{SOURCE25} %{SOURCE32} %{SOURCE33} > ${script} + echo "if [ -d /etc/susehelp.d ] ; then" >> ${script} + sed -e "s/@when@/$when/g" -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE28} >> ${script} case $when in + pre) + echo "if [ ! -f /etc/modprobe.conf ] ; then" >> ${script} + cat %{SOURCE31} >> ${script} + echo "fi" >> ${script} + ;; post) - sed -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE26} >> ${script} + # /sbin/update-modules.dep compares when the modules were built, rather + # than installed, so force modules.dep to be recreated + echo "rm -f /lib/modules/%{KVERREL}${delim_flavor}/modules.dep" >> ${script} + echo "if [ -f /etc/modprobe.conf ] ; then" >> ${script} + sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE26} >> ${script} + + echo "else" >> ${script} + sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" -e "s^%%{cfg_name}^${delim_flavor}^g" %{SOURCE29} >> ${script} + echo "fi" >> ${script} ;; postun) - sed -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE27} >> ${script} + echo "if [ -f /etc/modprobe.conf ] ; then" >> ${script} + sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE27} >> ${script} + + echo "else" >> ${script} + sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE30} >> ${script} + echo "fi" >> ${script} ;; esac echo "exit 0; fi" >> ${script} @@ -415,7 +438,11 @@ EOF [ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade [ -x /sbin/mkkerneldoth ] && /sbin/mkkerneldoth if [ -x /sbin/new-kernel-pkg ] ; then - /sbin/new-kernel-pkg --mkinitrd --depmod --install %{KVERREL}${flavor} + if /sbin/new-kernel-pkg 2>&1 | grep package >/dev/null ; then + PACKAGE_ARG="--package kernel-${flavor}" + fi + /sbin/new-kernel-pkg $PACKAGE_ARG --mkinitrd --depmod \ + --install %{KVERREL}${delim_flavor} fi EOF ;; @@ -430,9 +457,9 @@ EOF preun) cat >> ${script} < /dev/null > /dev/null || : -rm -f /lib/modules/%{KVERREL}${flavor}/modules.* +rm -f /lib/modules/%{KVERREL}${delim_flavor}/modules.* if [ -x /sbin/new-kernel-pkg ] ; then - /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}${flavor} + /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}${delim_flavor} fi EOF ;; @@ -441,18 +468,20 @@ EOF cat > "kernel$flavor.files" </dev/null @@ -590,8 +615,6 @@ pushd lustre >/dev/null # specific for i in $RPM_BUILD_ROOT/lib/modules/* ; do rm -f $i/modules.* - rm -f $i/build - ln -sf ../../../usr/src/linux-%{KVERREL} $i/build %ifarch %{ntplarchs} # remove legacy pcmcia symlink that's no longer useful rm -rf $i/pcmcia @@ -608,15 +631,16 @@ BuildObj () flavext="" flavtgt="" else - flavext="-$flavor" + flavext="%{flavordelim}$flavor" flavtgt="$flavor" fi - perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{kextraver}${flavtgt}/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile + 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 - cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@-%{_target_cpu}%{dashtargetboard}${flavext}.config \ - $o/.config + # 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" @@ -628,21 +652,25 @@ BuildObj () MAKE_CC="CC=$CC" fi $MAKE "$MAKE_CC" $OLDCONFIG - $MAKE "$MAKE_CC" prepare-all $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. + # 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 - source scripts/mkmakefile \ - ../../../linux-%{KVERREL} \ - ../linux-%{KVERREL}-obj/%{_target_cpu}/$flavor \ - $VERSION \ - $PATCHLEVEL \ - > $o/Makefile - zcat "$RPM_BUILD_ROOT/boot/symvers-%{KVERREL}-%{_target_cpu}${flavor}.gz" \ + 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 } @@ -687,7 +715,7 @@ if [ "%{buildbase}" -ne 0 ] ; then if [ "%{buildup}" -ne 0 ] ; then BuildObj up fi - perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile + perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{kextraverdelim}%{kextraver}%{flavordelim}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) @@ -695,8 +723,11 @@ if [ "%{buildbase}" -ne 0 ] ; then ln -s ${target/$RPM_BUILD_ROOT/} $link done else # 2.4 rh-style - perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile - cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@-%{_target_cpu}%{dashtargetboard}.config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/.config + perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{kextraverdelim}%{kextraver}%{flavordelim}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" @@ -826,12 +857,6 @@ rm -rf $RPM_BUILD_ROOT %endif %post -n lustre-lite-utils -if [ ! -e /dev/obd ]; then - mknod /dev/obd c 10 241 -fi -if [ ! -e /dev/portals ]; then - mknod /dev/portals c 10 240 -fi if [ -f /etc/init.d/lustre ] ; then /sbin/chkconfig --add lustre /sbin/chkconfig --add lustrefs @@ -949,41 +974,5 @@ fi %endif %if %{buildbase} - %files source -f kernel-source.files - -%files doc -%defattr(-,root,root) -%doc lustre/linux/Documentation/* - -%files -n lustre-lite-utils -%defattr(-, root, root) -%doc lustre/COPYING lustre/lustre/BUGS lustre/ChangeLog lustre/README lustre/lustre/doc/lustre.pdf -/sbin/* -/usr/sbin/* -/usr/bin/* -/usr/lib/lustre/python -@ENABLE_INIT_SCRIPTS@/etc/init.d/lustre -@ENABLE_INIT_SCRIPTS@/etc/init.d/lustrefs -/usr/include/lustre/* -/usr/include/portals/* -/usr/include/linux/* -/usr/lib/lib*.a -/usr/share/man/man?/* - -#%files -n lustre-doc -#%defattr(-, root, root) -#/usr/share/doc/lustre/COPYING -#/usr/share/doc/lustre/lustre.pdf -#/usr/share/doc/lustre/COPYING - -/usr/share/lustre/examples - -%files -n lustre-ldap -%defattr(-, root, root) -/etc/openldap/slapd-lustre.conf -/etc/openldap/schema/lustre.schema -/usr/share/lustre/lustre2ldif.xsl -/usr/share/lustre/top.ldif - -%endif # %{buildbase} +%endif