#!/bin/sh if [ "x$1" = "xhelp" -o "x$2" = "x" ]; then echo "Usage: ./httpd_roll_release tag log_name [user]" echo "tag the tag to use when checking out the repository" echo "log_name the name of a file to log the results to." echo "user An optional user name to use when siging the release" exit else TAG=$1 fi LOG_NAME=`pwd`/$2 USER=$3 REPO="httpd-2.0" WORKING_DIR=`echo "$REPO" | sed -e 's/[\-\.]/_/g'` WORKING_TAG=`echo "$TAG" | sed -e 's/APACHE_2_0_/_/'` WORKING_DIR="$WORKING_DIR$WORKING_TAG" START_DIR=`echo "$PWD"` # Check out the correct repositories. echo "Checking out repository $REPO into $WORKING_DIR using tag $TAG" umask 022 echo Checking out httpd-2.0 > $LOG_NAME cvs checkout -r $TAG -d $WORKING_DIR $REPO >> $LOG_NAME cd $WORKING_DIR/srclib echo "Checking out apr and apr-util" >> $LOG_NAME cvs checkout -r $TAG apr apr-util >> $LOG_NAME cd $START_DIR/$WORKING_DIR # Make sure the master site's FAQ is up-to-date. It doesn't hurt to do this # all the time. :-) echo "Updating the site's FAQ" (cd /www/httpd.apache.org/docs-2.0/faq/; cvs update) # Now update the FAQ in the tarball via a download from the master site. # The FAQ contains SSI tags too complex for the expand.pl script to handle. rm -f docs/manual/faq/*.html links -source http://httpd.apache.org/docs-2.0/faq/index.html?ONEPAGE \ > docs/manual/faq/index.html # Create the configure scripts echo "Creating the configure script" cd $START_DIR/$WORKING_DIR echo >> $LOG_NAME echo "Running ./buildconf" >> $LOG_NAME ./buildconf >> $LOG_NAME # Remove any files we don't distribute with our code rm -f STATUS echo >> $LOG_NAME echo "Removing files that we don't distribute" >> $LOG_NAME find . -name ".cvsignore" -exec rm {} \; >> $LOG_NAME find . -type d -name "CVS" | xargs rm -rf >> $LOG_NAME # expand SSI directives in the manual echo "Making sure people can read the manual (expanding SSI's)" echo >> $LOG_NAME echo "Making sure people can read the manual (expanding SSI's)" >> $LOG_NAME ( cd docs/manual ; chmod +x expand.pl ; ./expand.pl ; rm ./expand.pl ) >> $LOG_NAME # Time to roll the tarball echo "Rolling the tarballs" cd $START_DIR echo >> $LOG_NAME echo "Rolling the tarball" >> $LOG_NAME tar cvf $WORKING_DIR-alpha.tar $WORKING_DIR >> $LOG_NAME cp -p $WORKING_DIR-alpha.tar x$WORKING_DIR-alpha.tar gzip -9 $WORKING_DIR-alpha.tar mv x$WORKING_DIR-alpha.tar $WORKING_DIR-alpha.tar compress $WORKING_DIR-alpha.tar # Test the tarballs echo "Testing the tarball" echo >> $LOG_NAME echo "Testing the tarball $WORKING_DIR-alpha.tar.gz" >> $LOG_NAME gunzip -c $WORKING_DIR-alpha.tar.gz | tar tvf - >> $LOG_NAME zcat $WORKING_DIR-alpha.tar.Z | tar tvf - >> $LOG_NAME # remember the CHANGES file echo "Copying the CHANGES file to this directory" cp $WORKING_DIR/CHANGES . # cleanup echo "Cleaning up my workspace" rm -fr $WORKING_DIR if [ "x$USER" != "x" ]; then USER="-u $USER" fi echo Signing the tarballs echo "Signing the tarballs" >> $LOG_NAME pgp -sba $WORKING_DIR-alpha.tar.gz $USER pgp -sba $WORKING_DIR-alpha.tar.Z $USER pgp $WORKING_DIR-alpha.tar.gz.asc $WORKING_DIR-alpha.tar.gz >> $LOG_NAME pgp $WORKING_DIR-alpha.tar.Z.asc $WORKING_DIR-alpha.tar.Z >> $LOG_NAME echo "Don't forget to make the tarballs available by copying them to the" echo "/www/dev.apache.org/dist directory."