cron-script.sh revision 12761
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura#!/bin/bash
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# Sample usage in crontab:
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# Run, Mon-Fri at 1:30am. Add to build user's crontab.
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# 30 1 * * 1-5 . /jds/cbe/bin/env.sh; cd /jds/spec-files; I_KNOW_WHAT_IM_DOING=yes ./cron-script.sh
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura#
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# The same with a jail. Add to root's crontab. Example assumes 'gbuild' is the
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# build user
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# 30 1 * * 1-5 /usr/sbin/chroot /path/to/jail/root /usr/bin/su - gbuild -c ". /jds/cbe/bin/env.sh; cd /jds/spec-files; I_KNOW_WHAT_IM_DOING=yes ./cron-script.sh"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura#
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# $Id$
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraOSrel=`uname -r | cut -f2 -d.`
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraOSarch_full=`uname -p`
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuraif [ "x$OSarch_full" = "xsparc" ]; then
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura OSarch=s
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuraelse
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura OSarch_full=x86
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura OSarch=x
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurafi
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraPRODNAME="G2.22"
77b43461cfaf22d486ed25368ff6ce59f79da8cfKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# directory to copy rpms/srpms to on the remote host
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraRPMSDIR=/sgnome/pkgs/gnome2.22/S${OSrel}${OSarch}/nightly
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraLOCKFILE=/sgnome/pkgs/gnome2.22/S${OSrel}${OSarch}/.build.lock
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# reply-to/to address to send the build log as/to
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraREPLY_TO=laszlo.peter@sun.com
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraEMAIL_ADDR=gnome-re@sun.com
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# date format appended to the Release tag in the spec files
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# (passed to the date command on the cmd line)
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraRELEASE_DATE_FMT="%y%m%d"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# date format used for naming the directories
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraDIR_DATE_FMT="%Y-%m-%d"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraRELEASE_DATE=`date +$RELEASE_DATE_FMT`
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraDIR_DATE=`date +$DIR_DATE_FMT`
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# document root of the web server
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraWEBROOT=/net/jdsserv.ireland/webroots/jds.ireland/htdocs
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# subdir to keep logs and reports on the webserver
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraWEBDIR=build_reports/gnome2.22/nightly/S${OSrel}${OSarch}
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraLOGDIR=$WEBDIR/$DIR_DATE
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# ------------ nothing to configure below this line --------------
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuraif [ "x$I_KNOW_WHAT_IM_DOING" != xyes ]; then
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo " ,---------------------------------------------------------------."
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo "| This script is intended to be run from cron for producing |"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo "| official nightly builds. It will mail responsible engineers |"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo "| if any build failure occurs, sends build reports to v"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo "| RE and update web pages."
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo "|"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo "| Don't run it unless you know what you are doing. Thanks."
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo "|"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo "| Mail gnome-re@sun.com if you need more info."
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo "\`------> +"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura exit 1
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurafi
77b43461cfaf22d486ed25368ff6ce59f79da8cfKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraMYNAME="$0"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraMYDIR=$(cd `dirname $0`; pwd)
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuraif [ "x$1" != x ]; then
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura SPECDIR="$1"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuraelse
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura SPECDIR="$MYDIR"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurafi
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# remove temporary files on exit
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuraclean_up () {
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura case "$MYNAME" in
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura /tmp/cron-script.copy.* )
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura rm -f $MYNAME
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura ;;
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura esac
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura exit
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura}
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuratrap clean_up HUP INT TERM QUIT EXIT
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# make a copy of the cron script in /tmp and execute that in order to
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# avoid disasters caused by cvs update.
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuracase "$MYNAME" in
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura /tmp/cron-script.copy.* )
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura ;;
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura *)
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura cp $MYNAME /tmp/cron-script.copy.$$
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura chmod 755 /tmp/cron-script.copy.$$
77b43461cfaf22d486ed25368ff6ce59f79da8cfKohei Tamura cd /tmp
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura exec /tmp/cron-script.copy.$$ "$MYDIR"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura ;;
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuraesac
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurafatal_error () {
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura echo "ERROR: $*"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura exit 1
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura}
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuracd $SPECDIR || fatal_error "$SPECDIR not found"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura#revert any local changes
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurasvn revert -R .
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# checkout-out SVN copy *MUST* be read-only, or "update" needs passwd
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurasvn -q up > /dev/null 2>&1 || fatal_error "SVN update failed"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuracd $SPECDIR
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# if the script changed during cvs update, restart with the updated script
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuraif ! /usr/bin/cmp -s ./cron-script.sh $MYNAME; then exec ./cron-script.sh; fi
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# uninstall all pkgs left behind by a previous build
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurapkgtool uninstall-pkgs --with-l10n --with-tjds --with-moz-nss-nspr --with-sun-branding closed/*.spec *.spec >/dev/null
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# remove-gnome will now remove anything left from uninstall-pkgs in case
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# or a packaging change for example
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura$SPECDIR/scripts/remove-gnome --version jds -q -f --no_extras > /dev/null 2>&1
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# Update spec-files-other files and uninstall packages.
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuracd $SPECDIR/../spec-files-other
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# Revert any local changes
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurasvn revert -R .
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# checkout-out SVN copy *MUST* be read-only, or "update" needs passwd
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurasvn -q up > /dev/null 2>&1 || fatal_error "SVN update of spec-files-other failed"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# Uninstall the spec-files-other packages.
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurapkgtool uninstall-pkgs --with-l10n --with-tjds --with-moz-nss-nspr --with-sun-branding core/*.spec experimental/*.spec l10n/*.spec >/tmp/sfo-$$
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# Email to Damien to try track down why SUNWccsm is not getting uninstalled.
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuracat /tmp/sfo-$$ ) | mailx -s "${PRODNAME} S${OSrel} ${OSarch_full}: SFO uninstall-pkgs" "damien.carbery@sun.com"
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurarm -rf /jds/packages/PKGS/*
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurarm -rf /jds/packages/SPKGS/*
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurarm -rf /jds/packages/BUILD/*
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurarm -rf /var/tmp/pkgbuild-*/*
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# if the log directory exists, open a new one with numbered suffix
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraNEW_LOGDIR=$LOGDIR
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraN=1
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurawhile [ -d $WEBROOT/$NEW_LOGDIR ]; do
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura NEW_LOGDIR=$LOGDIR.$N
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura N=`expr $N + 1`
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuradone
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei TamuraLOGDIR=$NEW_LOGDIR
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuramkdir -p $WEBROOT/$LOGDIR || exit 5
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuramkdir -p $RPMSDIR
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuratouch $LOCKFILE
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# Rebuild the manpage tarballs
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuracd $SPECDIR
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurarm -r po-sun/po-sun-tarballs manpages/sun-manpage-tarballs
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuramake
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamuracd $SPECDIR
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura# start the build
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamurapkgtool -v --nightly --date "$RELEASE_DATE" build closed/SUNWevolution-bdb-devel.spec closed/*.spec *.spec \
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura --logdir=$WEBROOT/$LOGDIR \
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura --logdir-url=http://jds.ireland/$LOGDIR \
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura --mail-errors-to=gnome-2-10-build-reports@sun.com \
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura --prodname="${PRODNAME}/s${OSrel}${OSarch}" \
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura --live --with-l10n --with-tjds --with-moz-nss-nspr \
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura --define "nightly 1" --with-sun-branding \
03a28e3a8b9fe7b64fde5fe58268df298bca7e9dKohei Tamura --summary-log=$WEBROOT/$LOGDIR.html \
--summary-title="${PRODNAME} S${OSrel}/${OSarch_full} Nightly Build Report `date +'%d %B %Y'`" \
--rpm-url=file:///net/jdsserv.ireland/$RPMSDIR/all_pkgs \
> /tmp/build.log.$$ 2>&1
# the number of failed pkgs is returned
FAILED=$?
# Build spec-files-other
cd $SPECDIR/../spec-files-other
pkgtool -v --nightly --date "$RELEASE_DATE" build core/*.spec experimental/*.spec l10n/*.spec \
--logdir=$WEBROOT/$LOGDIR \
--logdir-url=http://jds.ireland/$LOGDIR \
--mail-errors-to=gnome-2-10-build-reports@sun.com \
--prodname="${PRODNAME}/s${OSrel}${OSarch}" \
--live --with-l10n --with-tjds --with-moz-nss-nspr \
--define "nightly 1" --with-sun-branding \
--summary-log=$WEBROOT/$LOGDIR-other.html \
--summary-title="${PRODNAME} S${OSrel}/${OSarch_full} SFO Nightly Build Report `date +'%d %B %Y'`" \
--rpm-url=file:///net/jdsserv.ireland/$RPMSDIR/all_pkgs \
>> /tmp/build.log.$$ 2>&1
# The number of failed pkgs is returned
FAILED_OTHER=$?
# End spec-files-other build.
# rotate rpms dir
rm -rf $RPMSDIR.prev
mv $RPMSDIR $RPMSDIR.prev; mkdir -p $RPMSDIR
# make dist
/sgnome/tools/re-scripts/jds-build/make-jds-dist.pl -l /sgnome/tools/re-scripts/jds-build/vermillion-devel.lst /jds/packages/PKGS /jds/dist nightly- > /dev/null 2>&1
cp -r /jds/dist/nightly-/${OSarch_full}/* /jds/dist/nightly-/${OSarch_full}/.??* $RPMSDIR
chmod a+x $RPMSDIR/install-jds
mkdir -p $RPMSDIR/all_pkgs
cd $RPMSDIR/all_pkgs
ln -s ../*/*.tar.gz .
# Disable deletion of nightly- dir as network area often full - this is backup.
#rm -rf /jds/dist/nightly-
# Send output of make-jds-dist.pl to Damien for review.
/sgnome/tools/re-scripts/jds-build/make-jds-dist.pl -l /sgnome/tools/re-scripts/jds-build/vermillion-devel.lst /jds/packages/PKGS /jds/dist nightly- -dryrun 2>&1 | \
mailx -s "${PRODNAME} S${OSrel} ${OSarch_full} nightly build: make-jds-dist.pl output" "damien.carbery@sun.com"
ALL_REPORTS=$WEBROOT/$WEBDIR/all_reports.html
touch $ALL_REPORTS
cp $ALL_REPORTS $ALL_REPORTS.old
export FAILED FAILED_OTHER ALL_REPORTS
# update web page
( echo "<tr><td><a href=/$LOGDIR.html>$DIR_DATE</a></td>"; \
echo " <td>$FAILED package(s) failed</td></tr>"; \
echo "<tr><td><a href=/$LOGDIR-other.html>$DIR_DATE</a></td>"; \
echo " <td>$FAILED_OTHER SFO package(s) failed</td></tr>"; \
cat $ALL_REPORTS.old ) > $ALL_REPORTS
# Report absolute symlinks. These are blockers for Solaris integration.
grep 'is an absolute symlink' $WEBROOT/$LOGDIR/*.log >>/tmp/build.log.$$
# Count the number of local patches.
patch_count=`ls $SPECDIR/patches/*.diff | wc -l`
echo "PATCH COUNT: $patch_count local patches used in this build.">>/tmp/build.log.$$
# send warnings, errors and summary in email
grep -v '^INFO:' /tmp/build.log.$$ | \
mailx -s "${PRODNAME} S${OSrel} ${OSarch_full} nightly build: $FAILED pkgs failed" $EMAIL_ADDR
rm -f /tmp/build.log.$$
# Email Beijing team to begin downloading packages.
/usr/bin/echo "*Date: `date '+%Y-%m-%d'`*\n${PRODNAME} S${OSrel} ${OSarch_full} Development nightly build finished: jdsserv.ireland:${RPMSDIR}/download" |
mailx -s "${PRODNAME} S${OSrel} ${OSarch_full} Development nightly build: $FAILED pkgs failed" "sunop@triathlon.prc.sun.com,sunop@mhw.prc.sun.com"
rm $LOCKFILE
# find any differences from the prototype files saved after the
# last milestone build
cd /jds/spec-files/prototypes/${OSarch_full}
for f in *.proto; do
test -f /jds/packages/PKGMAPS/proto/$f || continue
cmp -s $f /jds/packages/PKGMAPS/proto/$f && continue
echo $f:
diff $f /jds/packages/PKGMAPS/proto/$f
echo
done > /tmp/proto-changes.$$
# if any diffs found mail the result to RE
test -s /tmp/proto-changes.$$ && {
( echo "Prototype changes found since the last milestone build:"
echo
cat /tmp/proto-changes.$$ ) | \
mailx -s "${PRODNAME} S${OSrel} ${OSarch_full} prototype changes" \
$EMAIL_ADDR
}
rm -f /tmp/proto-changes.$$
exit 0