aboutsummaryrefslogtreecommitdiff
path: root/src/util/mkrel
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/mkrel')
-rw-r--r--src/util/mkrel131
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