diff options
Diffstat (limited to 'src/util/mkrel')
-rw-r--r-- | src/util/mkrel | 131 |
1 files changed, 102 insertions, 29 deletions
diff --git a/src/util/mkrel b/src/util/mkrel index 20b61a3..ae7a1ed 100644 --- a/src/util/mkrel +++ b/src/util/mkrel @@ -1,60 +1,133 @@ #!/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..." -(cd $reldir; cvs -q -d $repository export -r$reltag 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 |