blob: d21549de80c84d243bbb8ff1684af24645b221a0 [file] [log] [blame]
#!/bin/sh
umask 002
srcdir=`pwd`
tmpdir=$srcdir/tmp/rulesdir.$$
rm -rf $tmpdir; mkdir -p $tmpdir || exit $?
PERL=${PERL:-perl}
RELDIR=$HOME/public_html/devel
mkdir -p $RELDIR
DISTNAME=Mail-SpamAssassin-rules
make || perl Makefile.PL < /dev/null || exit $?
make || exit $?
make version.env || exit $?
. ./version.env
# "3.1.0-pre2-r202405" should appear as "3.1.0-pre2" after this
VERSION=`echo $FULL_VERSION | perl -pe 's/-(r\d+)$//'`
SVNVER=`svn info | perl -ne '/Revision: (\d+)/ and print $1'`
DISTVNAME=$DISTNAME-$VERSION.r$SVNVER
DISTVBASE=$DISTNAME-$VERSION
# remove the rules files for rules we won't be shipping
rm -f rules/70_*.cf
# remove new features, unsupported in existing code in the field
# (TODO: need a better way to exclude files that require new features
# like this; judicious use of "ifplugin" helps)
# rm rules/60_somerandomfeature.cf
# and ensure the ruleset lints!
./spamassassin --lint || exit $?
rulesdir=rules
(
cd $rulesdir
# Use this to include plugin .pm files:
# tar cvf - *.cf *.pm || exit $?
# or this, to ban code from the rules:
tar cvf - [0-9]*.cf || exit $?
) | gzip -9 > $tmpdir/rules.tgz || exit $?
# ensure non-empty
[ -s $tmpdir/rules.tgz ] || exit 3
linttmp=$tmpdir/lintdir
rm -rf $linttmp
mkdir $linttmp
(
cd $linttmp
# check validity of tarball; also extract
gunzip -cd < $tmpdir/rules.tgz | tar xf - || exit $?
)
sitetmp=$tmpdir/sitetmp
rm -rf $sitetmp
mkdir $sitetmp
cp rules/*.pre $sitetmp
# now, ensure the ruleset (entirely as distributed) lints, also.
# use "-p /dev/null" so any user_prefs data is ignored.
./spamassassin -x --configpath=$linttmp --siteconfigpath=$sitetmp \
-p /dev/null --lint \
|| exit $?
# sign and get sums
rm -f $tmpdir/rules.*.asc
ssh updatesd@spamassassin.zones.apache.org \
. /etc/profile \; \
gpg --homedir /home/updatesd/key -bsa - \
< $tmpdir/rules.tgz > $tmpdir/rules.tgz.asc || exit $?
(
cd $tmpdir
ln rules.tgz $DISTVNAME.tgz
$PERL $srcdir/build/md5sum.pl $DISTVNAME.tgz > rules.tgz.md5 || exit $?
$PERL $srcdir/build/sha1sum.pl $DISTVNAME.tgz > rules.tgz.sha1 || exit $?
)
for ext in tgz tgz.md5 tgz.sha1 tgz.asc ; do
rm -f $RELDIR/$DISTVBASE.*.$ext
if [ -f $tmpdir/rules.$ext ] ; then
mv $tmpdir/rules.$ext $RELDIR/$DISTVNAME.$ext
ls -l $RELDIR/$DISTVNAME.$ext
fi
done
chgrp -R spamassassin $RELDIR
rm -rf $tmpdir