blob: 9930ec0a6d6ba900fd08496ef7d1d8320ac7acf7 [file] [log] [blame]
#!/bin/sh
if [ "x$1" = "xhelp" ]; 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/www.apache.org/docs-2.0/misc ; cvs update)
# Now update the FAQ in the tarball
rm -f docs/manual/misc/FAQ*.html
links -source http://www.apache.org/docs-2.0/misc/FAQ.html > docs/manual/misc/FAQ.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
rm -f ltconfig ltmain.sh config.sub config.guess
cp /usr/local/share/libtool/ltconfig .
cp /usr/local/share/libtool/ltmain.sh .
cp /usr/local/share/libtool/config.sub .
cp /usr/local/share/libtool/config.guess .
# 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 "test" | xargs rm -rf >> $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 Tagging the tarballs
echo "Taggig 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."