Whamcloud - gitweb
Fix the rpm package build problem. A new module llite_lloop.ko is added to support...
[fs/lustre-release.git] / build / lustre-kernel-2.4.spec.in
index 5066ea6..d77a0b8 100644 (file)
@@ -146,7 +146,7 @@ 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}
@@ -171,7 +171,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@
@@ -353,7 +353,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
@@ -364,13 +364,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
@@ -402,6 +399,9 @@ for flavor in "" smp bigmem bigsmp pseries64 BOOT jensen ; do
                                echo "fi" >> ${script}
                                ;;
                        post)
+                               # /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}${flavor}/modules.dep" >> ${script}
                                echo "if [ -f /etc/modprobe.conf ] ; then" >> ${script}                 
                                sed -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE26} >> ${script}
 
@@ -535,7 +535,7 @@ BuildKernel()
        --kerneldir $RPM_SOURCE_DIR \
        -j $RPM_BUILD_NCPUS \
        --destdir $RPM_BUILD_ROOT \
-       -- --disable-tests \
+       -- --enable-tests \
        @CONFIGURE_FLAGS@
 }
 
@@ -635,8 +635,9 @@ BuildObj ()
        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"
@@ -652,17 +653,26 @@ BuildObj ()
        $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
+       rm -f $o/Makefile
         source scripts/mkmakefile \
            ../../../linux-%{KVERREL} \
-            ../linux-%{KVERREL}-obj/%{_target_cpu}/$flavor \
+            $o \
            $VERSION \
            $PATCHLEVEL \
-           > $o/Makefile
-       zcat "$RPM_BUILD_ROOT/boot/symvers-%{KVERREL}-%{_target_cpu}${flavor}.gz" \
+           > $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}${flavtgt}.gz" \
            > $o/Module.symvers
 }
 
@@ -716,7 +726,10 @@ if [ "%{buildbase}" -ne 0 ] ; then
        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
+        # 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"
@@ -846,12 +859,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