Index: head/share/tools/webupdate =================================================================== --- head/share/tools/webupdate (revision 54730) +++ head/share/tools/webupdate (revision 54731) @@ -1,197 +1,196 @@ #!/bin/sh # Copyright (c) 2001-2017 Wolfram Schneider # Copyright (c) 2001 Dima Dorfman # # Update the FreeBSD web site from the SVN repository. # # # NOTE: Changes to this file is NOT automatically used for the web # site build on www.FreeBSD.org. If an update to the main build # script is required, please contact webmaster@FreeBSD.org or a member # of the wwwadm team. # # # Major variables: # # PATH - The search path as interpreted by the shell. # SVNROOT - Path to the FreeBSD SVN repository. # GITROOT - Path to the FreeBSD Git repository. # BUILDDIR - Where the checked out copies of the files are stored. # DESTDIR - Where the rendered copies should wind up. # PUBDIR - Where the rendered files are published. # LOGFILE - Name of the log file to use (in $BUILDDIR). # BUILDARGS - Arguments to pass to make(1) when {build,install}ing. # INSTARGS - Arguments to pass to make(1) when installing. # WEBMAILTO - Address to send mail to if the build fails. # # subtrees - List of directores in $BUILDDIR which are from SVN. # # Variables which are in uppercase are derived from the environment # unless they don't exist, in which case a value suitable for # www.FreeBSD.org is used. Variables in lowercase can't be safely # changed without editing other parts of the script; thus, their value # in the environment is ignored. # # Exit codes: # # 0 - success # 1 - unknown failure # 2 - failure in VCS operations # 3 - failure in make operations # # $FreeBSD$ # # # Default configuration. # DEFAULT_PATH=/bin:/usr/bin:/usr/local/bin; DEFAULT_SVNROOT=svn://svn.FreeBSD.org DEFAULT_GITROOT=https://cgit-beta.FreeBSD.org DEFAULT_BUILDDIR=/usr/local/www/build; #DEFAULT_LOGDIR=/usr/local/www/build/log; DEFAULT_LOGDIR=/usr/local/www/logs/build; DEFAULT_DESTDIR=/usr/local/www; DEFAULT_LOGFILE=webbuild.log DEFAULT_BUILDARGS=''; DEFAULT_INSTARGS=''; -DEFAULT_WEBMAILTO=freebsd-doc; -#DEFAULT_WEBMAILTO=simon; -#DEFAULT_WEBMAILTO=hrs; +#DEFAULT_WEBMAILTO=freebsd-doc; +DEFAULT_WEBMAILTO=gjb; # # Variable setup. # PATH=${PATH:-${DEFAULT_PATH}}; export PATH; SVNROOT=${SVNROOT:-${DEFAULT_SVNROOT}}; export SVNROOT; GITROOT=${GITROOT:-${DEFAULT_GITROOT}}; export GITROOT; BUILDDIR=${BUILDDIR:-${DEFAULT_BUILDDIR}}; LOGDIR=${LOGDIR:-${DEFAULT_LOGDIR}}; DESTDIR=${DESTDIR:-${DEFAULT_DESTDIR}}; export DESTDIR LOGFILE=${LOGFILE:-${LOGDIR}/${DEFAULT_LOGFILE}}; BUILDARGS=${BUILDARGS:-${DEFAULT_BUILDARGS}}; INSTARGS="${BUILDARGS} ${INSTARGS:-${DEFAULT_INSTARGS}}"; WEBMAILTO=${WEBMAILTO:-${DEFAULT_WEBMAILTO}}; # too fragile, see PR: 222488 export NO_OBJ=YES # Notes on the names of the release notes directories: # # - They weren't named the same way they will be on the web site # (CURRENT, 11-STABLE) becuase that wouldn't make it obvious that they # were release notes. # # - They weren't named after their path names in the repository # (src/release/doc) because that doesn't play well with branches. # # - The '/doc' part is necessary because of the way doc.subdir.mk finds # ${LANGCODE}. It strips off the last component of ${.CURDIR} one by # one and compares the last component to 'doc'. When it finds it, it # assumes that the directory right below that is the language code. # This works fine if all the languages are in a directory called # 'doc', and not at all if they aren't. subtrees='head src/share/man/man4 relnotes11/doc relnotes11/man4 ports'; #subtrees="${subtrees} main" # # Update the checked out copies. Check out new copies every Sunday or # if they don't exist. # # Only create $BUILDDIR if the directory right above it exists. cd `dirname $BUILDDIR` || exit 1; if [ ! -d $BUILDDIR ]; then mkdir $BUILDDIR; fi umask 002 cd $BUILDDIR || exit 1; # We use newsyslog now... mkdir -p $LOGDIR buildstart=`date +%s` echo Build started `date` >> ${LOGFILE} # XXX If one of the directories in $subtrees doesn't exist, *all* of # them will be wiped and checked out again. This should only happen # if something went terribly wrong, or if there's a new entry in # $subtrees, so I (dd) don't plan on fixing it; there's no sense in # optimizing something that should only happen twice a year (if that). #cond="X`date '+%u'` = X7 `echo $subtrees | sed -E 's/([^ ]*)/-o ! -d \1/g'`"; cond="-e $BUILDDIR/fullbuild-clean.flag `echo $subtrees | sed -E 's/([^ ]*)/-o ! -d \1/g'`"; if [ $cond ]; then # Remove the old copies. rm -Rf $subtrees 2>/dev/null; chflags -R noschg $subtrees 2>/dev/null; rm -Rf $subtrees 2>/dev/null; # Check out the new copies. This creates all the $subtrees. #svn co $SVNROOT/doc/head head >> $LOGFILE 2>&1 || exit 2; git clone -b main $GITROOT/doc.git main >> $LOGFILE 2>&1 || exit 2; test -d relnotes || mkdir relnotes; mkdir -p src/share/man/man4 svn co $SVNROOT/base/head/share/man/man4 src/share/man/man4 >> $LOGFILE 2>&1 || exit 2; svn co $SVNROOT/base/stable/11/release/doc relnotes11/doc >> $LOGFILE 2>&1 || exit 2; svn co $SVNROOT/base/stable/11/share/man/man4 relnotes11/man4 >> $LOGFILE 2>&1 || exit 2; svn co --depth immediates $SVNROOT/ports/head ports >> $LOGFILE 2>&1 || exit 2 svn up --set-depth infinity ports/Mk >> $LOGFILE 2>&1 || exit 2 rm -f $BUILDDIR/fullbuild-clean.flag else for dir in ${subtrees}; do #svn cleanup $dir >> $LOGFILE 2>&1 || exit 2; #svn update --accept theirs-full $dir >> $LOGFILE 2>&1 || exit 2; git -C main clean -f >> $LOGFILE 2>&1 || exit 2; git -C main pull >> $LOGFILE 2>&1 || exit 2; done fi if [ ! -e "${PINDEX_OVERRIDE}" ]; then [ -e ${PORTSDIR}/INDEX-${INDEXNUM} ] && rm -f ${PORTSDIR}/INDEX-${INDEXNUM} make -C ${PORTSDIR} fetchindex >> $LOGFILE 2>&1 || exit 2 fi # # Build the web site. # #cd $BUILDDIR/head || exit 1; cd $BUILDDIR/main || exit 1; # get latest revision LATESTREVISION=$LOGDIR/LATESTREVISION make -C en_US.ISO8859-1/articles/pam/ SRCS="$(pwd)" -V LATESTREVISION | \ sed -E 's/--stringparam[ ]+/!/g' | tr '!' '\n' > $LATESTREVISION time make ${BUILDARGS} p-all >> $LOGFILE 2>&1 || (cat $LATESTREVISION >> $LOGFILE body="$(tail -50 $LOGFILE)" subject="FreeBSD web build failed on $(hostname)" printf "From: www-data@freebsd.org\nTo: ${WEBMAILTO}\nSubject: ${subject}\n\n${body}\n\n" \ | /usr/sbin/sendmail -oi -f www-data@freebsd.org ${WEBMAILTO}; exit 3) || exit 3; #cd $BUILDDIR/head/en_US.ISO8859-1/htdocs || exit 1; cd $BUILDDIR/main/en_US.ISO8859-1/htdocs || exit 1; ( time make ${INSTARGS} -j8 all && time make ${INSTARGS} install ) >> $LOGFILE 2>&1 || (cat $LATESTREVISION >> $LOGFILE body="$(tail -50 $LOGFILE)" subject="FreeBSD web build failed on $(hostname)" printf "From: www-data@freebsd.org\nTo: ${WEBMAILTO}\nSubject: ${subject}\n\n${body}\n\n" \ | /usr/sbin/sendmail -oi -f www-data@freebsd.org ${WEBMAILTO}; exit 3) || exit 3; if [ "X${PUBDIR}" != "X" ]; then /usr/local/bin/rsync ${RSYNC_FLAGS} ${DESTDIR}/ ${PUBDIR} \ >> ${LOGFILE} 2>&1 fi cat $LATESTREVISION >> ${LOGFILE} buildstop=`date +%s` buildd=$(($buildstop - $buildstart)) echo "Build ended `date` (${buildd}s)" >> ${LOGFILE} exit 0; Index: head/share/tools/webupdate.wrapper =================================================================== --- head/share/tools/webupdate.wrapper (revision 54730) +++ head/share/tools/webupdate.wrapper (revision 54731) @@ -1,56 +1,57 @@ #!/bin/sh # # NOTE: Changes to this file is NOT automatically used for the web # site build on www.FreeBSD.org. If an update to the main build # script is required, please contact webmaster@FreeBSD.org or a member # of the wwwadm team. # # $FreeBSD$ PATH=/bin:/usr/bin:/usr/local/bin SVNROOT=svn://svn.FreeBSD.org GITROOT=https://cgit-beta.FreeBSD.org PUBDIR=/usr/local/www/www.freebsd.org DESTDIR="${PUBDIR}-clean" RSYNC_FLAGS="-avH" GEN_INDEX=yes -WEBMAILTO=freebsd-doc@FreeBSD.org +#WEBMAILTO=freebsd-doc@FreeBSD.org +WEBMAILTO=gjb@FreeBSD.org FLAGDIR=/usr/local/www/build : ${PORTSDIR:=/usr/local/www/build/ports}; export PORTSDIR : ${INDEXNUM:=$(make -C ${PORTSDIR} -V OSREL)} : ${PINDEX_OVERRIDE:=${PORTSDIR}/INDEX-${INDEXNUM%%.*}} export USER=www-data export PATH DESTDIR PINDEX_OVERRIDE GEN_INDEX PUBDIR PORTSDIR export WEBMAILTO export WITH_PORTS_GROWTH=YES export WITH_PRSTATS=YES # Flags are ordered by more extensive to less if [ -e $FLAGDIR/fullbuild-clean.flag ]; then export BUILD_RELNOTES=YES # TODO - tell webupdate to do clean via env variable # webupdate will remove flag file RSYNC_FLAGS="${RSYNC_FLAGS} --delete" elif [ -e $FLAGDIR/fullbuild-all-lang.flag ]; then export BUILD_RELNOTES=YES elif [ -e $FLAGDIR/fullbuild-en.flag ]; then export BUILD_RELNOTES=YES export ENGLISH_ONLY=YES else export WEB_ONLY=YES fi rm -rf ${DESTDIR}/* rm -f $FLAGDIR/fullbuild-all-lang.flag $FLAGDIR/fullbuild-en.flag # 30m LOCKF_WAIT=1800 if [ "$1" = "-f" ]; then LOCKF_WAIT=0 fi export RSYNC_FLAGS nice -5 lockf -s -t $LOCKF_WAIT /usr/local/www/build/lock.webupdate \ sh -c "/usr/local/www/bin/webupdate ; \ /usr/sbin/newsyslog -f /home/www/etc/webupdate_newsyslog.conf -Fr -t ''"