TARGET_CONFIG=
JOBS=1
CONFIGURE_FLAGS=
+TMPDIR=${TMPDIR:-"/var/tmp"}
# commands to run
BUILD_LUSTRE=0
wait $child_pid
# status will be set to 143 if the process had to be killed due to timeout
- status=$?
+ status=${PIPESTATUS[0]}
kill -KILL -$dog_pid
return $status
}
$MAKE "$MAKE_CC" mrproper || fatal 1 "Error running make mrproper"
rm -f rpm-release
cp "$CONFIG_FILE" .config
- # use the expect script to "make oldconfig" and answer the questions for
- # new items conservatively. QA will get notified on anything newly added
- # for them to review and adjust accordingly.
- timed_run 300 $TOPDIR/build/update_oldconfig
- if [ $? -eq 143 ]; then
- fatal 1 "update_oldconfig timed out"
- fi
- # now notify if resulting .config is different than $CONFIG_FILE
- local tmpfile=$(mktemp /tmp/XXXXXX)
- diff -I '^#.*' -u "$CONFIG_FILE" .config >$tmpfile
- if [ -s $tmpfile ]; then
- { cat <<EOF
+ local UPDATE_OLDCONFIG=
+ for oc in oldconfig_nonint silentoldconfig oldconfig ; do
+ if grep -q "$oc" Makefile ; then
+ timed_run 300 $MAKE "$MAKE_CC" $oc || UPDATE_OLDCONFIG=1
+ break
+ fi
+ done
+
+ if [ "$UPDATE_OLDCONFIG" ] ; then
+ # use the expect script to "make oldconfig" and answer the questions for
+ # new items conservatively. QA will get notified on anything newly added
+ # for them to review and adjust accordingly.
+ local logfile=$(mktemp /tmp/XXXXXX)
+ #timed_run 300 $TOPDIR/build/update_oldconfig $logfile
+ #local RC=${PIPESTATUS[0]}
+ #local RC=$(strace -f -o update_oldconfig.strace bash -c "$TOPDIR/build/update_oldconfig $logfile; echo \$?")
+ $TOPDIR/build/update_oldconfig $logfile
+ local RC=${PIPESTATUS[0]}
+ #$TOPDIR/build/update_oldconfig $logfile
+ #local RC=${PIPESTATUS[0]}
+ if [ $RC -eq 143 ]; then
+ fatal 1 "update_oldconfig timed out"
+ elif [ $RC -ne 0 ]; then
+ # dump the log
+ cat $logfile
+ rm -f $logfile
+ if [ -f update_oldconfig.strace ]; then
+ cat update_oldconfig.strace
+ rm -f update_oldconfig.strace
+ fi
+ fatal 1 "update_oldconfig failed: $RC. See log above."
+ fi
+ rm -f $logfile
+ # now notify if resulting .config is different than $CONFIG_FILE
+ local tmpfile=$(mktemp /tmp/XXXXXX)
+ diff -I '^#.*' -u "$CONFIG_FILE" .config >$tmpfile
+ if [ -s $tmpfile ]; then
+ { cat <<EOF
+To: qa@lists.clusterfs.com
+Subject: kernel_config change
+
The result of a make oldconfig on file $CONFIG_FILE resulted in a
difference when compared to .config in the following way:
EOF
- cat $tmpfile
- echo -e "\n\nPlease consider updating $CONFIG_FILE."
- # not sure these are entirely useful. the above and "patch" are good
- #echo -e "\nThe entire new .config file:\n"
- #cat .config
- } | mail -s "kernel_config change" qa@lists.clusterfs.com
+ cat $tmpfile
+ echo -e "\n\nPlease consider updating $CONFIG_FILE."
+ # not sure these are entirely useful. the above and "patch" are good
+ #echo -e "\nThe entire new .config file:\n"
+ #cat .config
+ } | sendmail -fqa@clusterfs.com -t
+ fi
+ rm -f $tmpfile
fi
- rm -f $tmpfile
+
case "$VERSION" in
2.6*)
$MAKE "$MAKE_CC" include/asm
< build/lustre.spec.in \
> build/lustre.spec
$RPMBUILD --target ${TARGET_ARCH} -bb build/lustre.spec \
+ --define "_tmpdir $TMPDIR" \
--define "_topdir $(lbuild_topdir)" || \
fatal 1 "Error building Lustre rpms."
# $MAKE_J "$MAKE_CC" || fatal 1 "Error building Lustre."