This commit was manufactured by cvs2svn to create tag 'V1_0_6_BETA2'
[krb5.git] / src / util / mkrel
index 6dafa99d6695c735d0e16e6d8f42b94d9014e59a..ae7a1ed37a8e6df3793e6fbc941eb95979224b1e 100644 (file)
 #!/bin/sh
-: ${repository=/afs/athena.mit.edu/astaff/project/krbdev/.cvsroot}
-case $# in
-2);;
-*)
-       echo "usage: $0 release-tag release-dir"
+repository=:kserver:cvs.mit.edu:/cvs/krbdev
+dodoc=t
+dosrc=t
+checkout=t
+while test $# -gt 2; do
+       case $1 in
+       --srconly)
+               dodoc=nil;;
+       --doconly)
+               dosrc=nil;;
+       --repository)
+               shift; repository=$1;;
+       --nocheckout)
+               checkout=nil;;
+       esac
+       shift
+done
+if test $# -lt 2; then
+       echo "usage: $0 [opts] release-tag release-dir"
        exit 1
-       ;;
-esac
+fi
 
 reltag=$1
 reldir=$2
 
-case reldir in
+relmajor=0
+relminor=0
+relpatch=0
+relhead=
+reltail=
+reldate=`date +%Y%m%d`
+
+case "$reldir" in
 */*)
        echo "release-dir may not contain slashes."
        exit 1
        ;;
+*" "*|*"       "*)
+       echo "release-dir may  not contain whitespace."
+       exit 1
+       ;;
+krb5-*.*.*-*)
+       release=`echo $reldir|sed -e 's/krb5-//'`
+       relhead=`echo $release|sed -e 's/-.*//'`
+       reltail=`echo $release|sed -e 's/.*-//'`
+       relmajor=`echo $relhead|awk -F. '{print $1}'`
+       relminor=`echo $relhead|awk -F. '{print $2}'`
+       relpatch=`echo $relhead|awk -F. '{print $3}'`
+       ;;
+krb5-*.*.*)
+       release=`echo $reldir|sed -e 's/krb5-//'`
+       relmajor=`echo $release|awk -F. '{print $1}'`
+       relminor=`echo $release|awk -F. '{print $2}'`
+       relpatch=`echo $release|awk -F. '{print $3}'`
+       ;;
+krb5-*.*)
+       release=`echo $reldir|sed -e 's/krb5-//'`
+       relmajor=`echo $release|awk -F. '{print $1}'`
+       relminor=`echo $release|awk -F. '{print $2}'`
+       ;;
+krb5-current)
+       release=current-$reldate
+       ;;
 *);;
 esac
 
-if test ! -d $reldir; then
-       mkdir $reldir
+if test $checkout = t; then
+       echo "Checking out krb5 with tag $reltag into directory $reldir..."
+       cvs -q -d $repository export -r$reltag -d $reldir krb5
+fi
+
+if test $dosrc = t; then
+       echo "Building autoconf..."
+       (cd $reldir/src/util/autoconf
+               M4=gm4 ./configure
+               make)
+
+       echo "Creating configure scripts..."
+       (cd $reldir/src; util/reconf)
+
+       echo "Cleaning src/util/autoconf..."
+       (cd $reldir/src/util/autoconf; make distclean)
 fi
 
-echo "Checking out krb5 with tag $reltag into directory $reldir..."
-cvs -q -d $repository export -r$reltag -d$reldir krb5
+echo "Editing release-specific files..."
 
-echo "Building autoconf..."
-(cd $reldir/src/util/autoconf
-       M4=gm4 ./configure
-       make)
+(cd $reldir/src/lib/krb5/krb && \
+       sed -e '/static/s%KRB5_BRAND:[^"]*"%'"KRB5_BRAND: $reltag $release $reldate"'"%' \
+               brand.c > brand.c.new && mv brand.c.new brand.c; \
+       rm -f brand.c.new)
 
-echo "Creating configure scripts..."
-(cd $reldir/src;util/reconf)
+(cd $reldir/src/util/send-pr && \
+       sed -e 's%RELEASE=.*%RELEASE='"krb5-$release"'%' Makefile.in \
+               > Makefile.in.new && mv Makefile.in.new Makefile.in)
 
-echo "Cleaning src/util/autoconf..."
-(cd $reldir/src/util/autoconf;make distclean)
+(cd $reldir/src && \
+       cat > patchlevel.h <<EOF
+#define KRB5_MAJOR_RELEASE $relmajor
+#define KRB5_MINOR_RELEASE $relminor
+#define KRB5_PATCHLEVEL    $relpatch
+EOF
+)
 
 echo "Nuking unneeded files..."
 find $reldir \( -name TODO -o -name todo -o -name .cvsignore \
        -o -name BADSYMS -o -name .Sanitize \) -print \
        | xargs rm -f
 
-echo "Building doc..."
-(cd $reldir/doc;make)
+if test $dodoc = t; then
+       echo "Building doc..."
+       (cd $reldir/doc; make)
+fi
 
 echo "Generating tarfiles..."
-gtar --exclude $reldir/src/lib/crypto \
-       --exclude $reldir/src/lib/des425 \
-       -zcf ${reldir}.src.tar.gz $reldir
+GZIP=-9; export GZIP
+if test $dosrc = t; then
+       gtar --exclude $reldir/src/lib/crypto \
+               --exclude $reldir/src/lib/des425 \
+               --exclude $reldir/doc \
+               -zcf ${reldir}.src.tar.gz $reldir
 
-gtar zcf ${reldir}.crypto.tar.gz \
-       $reldir/src/lib/crypto \
-       $reldir/src/lib/des425
+       gtar zcf ${reldir}.crypto.tar.gz \
+               $reldir/src/lib/crypto \
+               $reldir/src/lib/des425
+fi
 
-gtar zcf ${reldir}.doc.tar.gz $reldir/doc $reldir/README
+if test $dodoc = t; then
+       gtar zcf ${reldir}.doc.tar.gz $reldir/doc $reldir/README
+fi
 
 ls -l ${reldir}.*.tar.gz