|
Packit |
fd8b60 |
#!/bin/sh
|
|
Packit |
fd8b60 |
set -e
|
|
Packit |
fd8b60 |
repository=git.mit.edu:/git/krb5.git
|
|
Packit |
fd8b60 |
dodoc=t
|
|
Packit |
fd8b60 |
dosrc=t
|
|
Packit |
fd8b60 |
checkout=t
|
|
Packit |
fd8b60 |
multitar=nil
|
|
Packit |
fd8b60 |
: ${TAR=tar}
|
|
Packit |
fd8b60 |
while test $# -gt 2; do
|
|
Packit |
fd8b60 |
case $1 in
|
|
Packit |
fd8b60 |
--srconly)
|
|
Packit |
fd8b60 |
dodoc=nil;;
|
|
Packit |
fd8b60 |
--doconly)
|
|
Packit |
fd8b60 |
dosrc=nil;;
|
|
Packit |
fd8b60 |
--multi*)
|
|
Packit |
fd8b60 |
multitar=t;;
|
|
Packit |
fd8b60 |
--repository)
|
|
Packit |
fd8b60 |
shift; repository=$1;;
|
|
Packit |
fd8b60 |
--nocheckout)
|
|
Packit |
fd8b60 |
checkout=nil;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
shift
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
if test $# -lt 2; then
|
|
Packit |
fd8b60 |
echo "usage: $0 [opts] release-tag release-dir"
|
|
Packit |
fd8b60 |
echo " release-tag is relative to $repository/"
|
|
Packit |
fd8b60 |
exit 1
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
reltag=$1
|
|
Packit |
fd8b60 |
reldir=$2
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
relmajor=0
|
|
Packit |
fd8b60 |
relminor=0
|
|
Packit |
fd8b60 |
relpatch=0
|
|
Packit |
fd8b60 |
relhead=
|
|
Packit |
fd8b60 |
# reltail=
|
|
Packit |
fd8b60 |
reldate=`date +%Y%m%d`
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
case "$reldir" in
|
|
Packit |
fd8b60 |
*/*)
|
|
Packit |
fd8b60 |
echo "release-dir may not contain slashes."
|
|
Packit |
fd8b60 |
exit 1
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
*" "*|*" "*)
|
|
Packit |
fd8b60 |
echo "release-dir may not contain whitespace."
|
|
Packit |
fd8b60 |
exit 1
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
krb5-*.*.*-*)
|
|
Packit |
fd8b60 |
release=`echo $reldir|sed -e 's/krb5-//'`
|
|
Packit |
fd8b60 |
relhead=`echo $release|sed -e 's/-.*//'`
|
|
Packit |
fd8b60 |
reltail=`echo $release|sed -e 's/.*-//'`
|
|
Packit |
fd8b60 |
relmajor=`echo $relhead|awk -F. '{print $1}'`
|
|
Packit |
fd8b60 |
relminor=`echo $relhead|awk -F. '{print $2}'`
|
|
Packit |
fd8b60 |
relpatch=`echo $relhead|awk -F. '{print $3}'`
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
krb5-*.*.*)
|
|
Packit |
fd8b60 |
release=`echo $reldir|sed -e 's/krb5-//'`
|
|
Packit |
fd8b60 |
relmajor=`echo $release|awk -F. '{print $1}'`
|
|
Packit |
fd8b60 |
relminor=`echo $release|awk -F. '{print $2}'`
|
|
Packit |
fd8b60 |
relpatch=`echo $release|awk -F. '{print $3}'`
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
krb5-*.*-current)
|
|
Packit |
fd8b60 |
release=`echo $reldir|sed -e 's/krb5-//'`
|
|
Packit |
fd8b60 |
relhead=`echo $release|sed -e 's/-.*//'`
|
|
Packit |
fd8b60 |
relmajor=`echo $relhead|awk -F. '{print $1}'`
|
|
Packit |
fd8b60 |
relminor=`echo $relhead|awk -F. '{print $2}'`
|
|
Packit |
fd8b60 |
release=${relhead}-$reldate
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
krb5-*.*-*)
|
|
Packit |
fd8b60 |
release=`echo $reldir|sed -e 's/krb5-//'`
|
|
Packit |
fd8b60 |
relhead=`echo $release|sed -e 's/-.*//'`
|
|
Packit |
fd8b60 |
reltail=`echo $release|sed -e 's/.*-//'`
|
|
Packit |
fd8b60 |
relmajor=`echo $relhead|awk -F. '{print $1}'`
|
|
Packit |
fd8b60 |
relminor=`echo $relhead|awk -F. '{print $2}'`
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
krb5-*.*)
|
|
Packit |
fd8b60 |
release=`echo $reldir|sed -e 's/krb5-//'`
|
|
Packit |
fd8b60 |
relmajor=`echo $release|awk -F. '{print $1}'`
|
|
Packit |
fd8b60 |
relminor=`echo $release|awk -F. '{print $2}'`
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
krb5-current)
|
|
Packit |
fd8b60 |
release=current-$reldate
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
*)
|
|
Packit |
fd8b60 |
release="$reldir"
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
echo "release=$release"
|
|
Packit |
fd8b60 |
echo "major=$relmajor minor=$relminor patch=$relpatch"
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
# $release is used for send-pr
|
|
Packit |
fd8b60 |
# $reltag, $release, $reldate are used for brand.c currently
|
|
Packit |
fd8b60 |
# $relmajor, $relminor, $relpatch are used for patchlevel.h currently
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test $checkout = t; then
|
|
Packit |
fd8b60 |
echo "Checking out krb5 with tag $reltag into directory $reldir..."
|
|
Packit |
fd8b60 |
git clone -q -n $repository $reldir
|
|
Packit |
fd8b60 |
(cd $reldir && git checkout -q $reltag)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# $newstyle = t if patchlevel.h is the master version stamp file. If
|
|
Packit |
fd8b60 |
# so, we don't edit it here.
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
if grep KRB5_RELDATE $reldir/src/patchlevel.h > /dev/null 2>&1; then
|
|
Packit |
fd8b60 |
newstyle=t;
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
newstyle=nil;
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test $newstyle = t; then
|
|
Packit |
fd8b60 |
echo "parsing new style patchlevel.h..."
|
|
Packit |
fd8b60 |
eval `sed -n 's/#define \([A-Z0-9_]*\)[ \t]*\(.*\)/\1=\2/p' < $reldir/src/patchlevel.h`
|
|
Packit |
fd8b60 |
if test "$KRB5_RELTAG" != $reltag && \
|
|
Packit |
fd8b60 |
test "$KRB5_RELTAG" != `echo $reltag|sed 's%[^/]*/%%'` ; then
|
|
Packit |
fd8b60 |
echo "WARNING: patchlevel.h '$KRB5_RELTAG' != $reltag"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test "$KRB5_MAJOR_RELEASE" != "$relmajor" || \
|
|
Packit |
fd8b60 |
test "$KRB5_MINOR_RELEASE" != "$relminor" || \
|
|
Packit |
fd8b60 |
test "$KRB5_PATCHLEVEL" != "$relpatch" || \
|
|
Packit |
fd8b60 |
( test -n "$reltail" && \
|
|
Packit |
fd8b60 |
test "$KRB5_RELTAIL" != "$reltail" ); then
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
echo "WARNING: patchlevel.h $KRB5_MAJOR_RELEASE.$KRB5_MINOR_RELEASE.$KRB5_PATCHLEVEL${KRB5_RELTAIL+-$KRB5_RELTAIL} != $relmajor.$relminor.$relpatch${reltail+-$reltail}"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
echo "old style patchlevel.h"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
echo "Editing release-specific files..."
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test $newstyle = t; then
|
|
Packit |
fd8b60 |
(cd $reldir/src && \
|
|
Packit |
fd8b60 |
sed -e '/#[a-z ]*KRB5_RELDATE/c\
|
|
Packit |
fd8b60 |
#define KRB5_RELDATE "'"$reldate"'"' patchlevel.h > patchlevel.h.new && \
|
|
Packit |
fd8b60 |
mv patchlevel.h.new patchlevel.h)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
(cd $reldir/src/lib/krb5/krb && \
|
|
Packit |
fd8b60 |
sed -e '/static/s%KRB5_BRAND:[^"]*"%'"KRB5_BRAND: $reltag $release $reldate"'"%' \
|
|
Packit |
fd8b60 |
brand.c > brand.c.new && mv brand.c.new brand.c; \
|
|
Packit |
fd8b60 |
rm -f brand.c.new)
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
(cd $reldir/src/util/send-pr && \
|
|
Packit |
fd8b60 |
sed -e 's%RELEASE=.*%RELEASE='"krb5-$release"'%' Makefile.in \
|
|
Packit |
fd8b60 |
> Makefile.in.new && mv Makefile.in.new Makefile.in)
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
(cd $reldir/src && \
|
|
Packit |
fd8b60 |
cat > patchlevel.h <
|
|
Packit |
fd8b60 |
#define KRB5_MAJOR_RELEASE $relmajor
|
|
Packit |
fd8b60 |
#define KRB5_MINOR_RELEASE $relminor
|
|
Packit |
fd8b60 |
#define KRB5_PATCHLEVEL $relpatch
|
|
Packit |
fd8b60 |
EOF
|
|
Packit |
fd8b60 |
)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test $dosrc = t; then
|
|
Packit |
fd8b60 |
if test -d $reldir/src/util/autoconf; then
|
|
Packit |
fd8b60 |
echo "Building autoconf..."
|
|
Packit |
fd8b60 |
(cd $reldir/src/util/autoconf
|
|
Packit |
fd8b60 |
M4=gm4 ./configure
|
|
Packit |
fd8b60 |
make)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
echo "Creating configure scripts..."
|
|
Packit |
fd8b60 |
(cd $reldir/src; autoreconf -v)
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test -d $reldir/src/util/autoconf; then
|
|
Packit |
fd8b60 |
echo "Cleaning src/util/autoconf..."
|
|
Packit |
fd8b60 |
(cd $reldir/src/util/autoconf; make distclean)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
echo "Nuking unneeded files..."
|
|
Packit |
fd8b60 |
find $reldir \( -name TODO -o -name todo -o -name .cvsignore \
|
|
Packit |
fd8b60 |
-o -name .gitignore -o -name BADSYMS -o -name .Sanitize \
|
|
Packit |
fd8b60 |
-o -name .rconf \) -print | xargs rm -f || true
|
|
Packit |
fd8b60 |
find $reldir -depth -type d \( -name autom4te.cache \
|
|
Packit |
fd8b60 |
-o -name \$ac_config_fragdir \) -exec rm -rf {} \; || true
|
|
Packit |
fd8b60 |
rm -rf $reldir/.git || true
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test $dodoc = t; then
|
|
Packit |
fd8b60 |
echo "Building doc..."
|
|
Packit |
fd8b60 |
(cd $reldir/src/doc && make -f Makefile.in \
|
|
Packit |
fd8b60 |
top_srcdir=.. srcdir=. SPHINX_ARGS=-W PYTHON=python3 html pdf)
|
|
Packit |
fd8b60 |
(cd $reldir/src/doc && make -f Makefile.in \
|
|
Packit |
fd8b60 |
top_srcdir=.. srcdir=. SPHINX_ARGS=-W PYTHON=python3 clean)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
echo "Generating tarfiles..."
|
|
Packit |
fd8b60 |
GZIP=-9; export GZIP
|
|
Packit |
fd8b60 |
if test $multitar = t; then
|
|
Packit |
fd8b60 |
if test -d $reldir/src/lib/des425; then
|
|
Packit |
fd8b60 |
des425=$reldir/src/lib/des425
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test -f $reldir/NOTICE;
|
|
Packit |
fd8b60 |
then notice=$reldir/NOTICE
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test $dosrc = t; then
|
|
Packit |
fd8b60 |
$TAR --exclude $reldir/src/lib/crypto \
|
|
Packit |
fd8b60 |
--exclude $reldir/src/lib/des425 \
|
|
Packit |
fd8b60 |
--exclude $reldir/doc \
|
|
Packit |
fd8b60 |
-zcf ${reldir}.src.tar.gz $reldir
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
$TAR zcf ${reldir}.crypto.tar.gz \
|
|
Packit |
fd8b60 |
$reldir/src/lib/crypto \
|
|
Packit |
fd8b60 |
$des425
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test $dodoc = t; then
|
|
Packit |
fd8b60 |
$TAR zcf ${reldir}.doc.tar.gz $reldir/doc $reldir/README $notice
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
ls -l ${reldir}.*.tar.gz
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
$TAR zcf ${reldir}.tar.gz $reldir
|
|
Packit |
fd8b60 |
ls -l ${reldir}.tar.gz
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
echo "Done."
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
exit 0
|