You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2010/03/16 15:29:05 UTC

svn commit: r923753 - /spamassassin/trunk/build/repackage_latest_update_rules

Author: jm
Date: Tue Mar 16 14:29:05 2010
New Revision: 923753

URL: http://svn.apache.org/viewvc?rev=923753&view=rev
Log:
attempt at a repackaging script which automates taking the latest update and republishing it as the release rules tgz

Added:
    spamassassin/trunk/build/repackage_latest_update_rules   (with props)

Added: spamassassin/trunk/build/repackage_latest_update_rules
URL: http://svn.apache.org/viewvc/spamassassin/trunk/build/repackage_latest_update_rules?rev=923753&view=auto
==============================================================================
--- spamassassin/trunk/build/repackage_latest_update_rules (added)
+++ spamassassin/trunk/build/repackage_latest_update_rules Tue Mar 16 14:29:05 2010
@@ -0,0 +1,88 @@
+#!/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
+
+set -e
+
+./sa-update.raw --updatedir $tmpdir --debug > $tmpdir/o 2>&1 || true
+tgzbase=`perl -ne '/parsed as (\d{5,})$/ and print $1' < $tmpdir/o`
+
+if [ "$tgzbase" = "" ] ; then
+    echo "cannot find 'parsed as' line in $tmpdir/o"
+    exit 1
+fi
+
+MIRROR=http://buildbot.spamassassin.org/updatestage/
+
+wget -O $tmpdir/rules.tgz      $MIRROR/$tgzbase.tar.gz
+wget -O $tmpdir/rules.tgz.sha1 $MIRROR/$tgzbase.tar.gz.sha1
+wget -O $tmpdir/rules.tgz.asc  $MIRROR/$tgzbase.tar.gz.asc
+
+# 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 $?
+
+mv $tmpdir/rules.tgz.sha1 $tmpdir/rules.tgz.sha1.orig
+
+(
+  cd $tmpdir
+  ln rules.tgz $DISTVNAME.tgz
+  $PERL $srcdir/build/md5sum.pl $DISTVNAME.tgz > rules.tgz.md5    || exit $?
+  # rebuild the SHA1 sum
+  $PERL $srcdir/build/sha1sum.pl $DISTVNAME.tgz > rules.tgz.sha1  || exit $?
+)
+
+cmp $tmpdir/rules.tgz.sha1 $tmpdir/rules.tgz.sha1.orig            || 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
+

Propchange: spamassassin/trunk/build/repackage_latest_update_rules
------------------------------------------------------------------------------
    svn:executable = *