LEGACY LEGACY LEGACY... see AutoRuleUpdates instead.

The Normal way

The short version is to run this on spamassassin.zones.apache.org:

cd /export/home/jm/ftp/trunk/build/mkupdates
sudo -u updatesd ./update-rules VERSION

where VERSION is 3.1 or 3.2, right now. The script will do everything necessary to generate an update and make it available.

Note that both 3.1 and 3.2 build updates from a different SVN branch than the code! See SvnBranches for details.

Legacy

Obsolete doc, but here for history

tar cf #.tar *

and not

tar cf #.tar .
tar tvvf #.tar
/local/gnupg-1.4.2/bin/gpg --batch --homedir /home/updatesd/key -bas #.tar.gz
/local/perl586/bin/perl /home/updatesd/svn/spamassassin/build/sha1sum.pl #.tar.gz > #.tar.gz.sha1
chmod 0444 #.tar.gz.*

As Commands

tvd – here's the script I run as updatesd on the zones machine that does all of this stuff for you. (smile) Note: I lint check before running this script, ...

Run a lint:

cd ~/b31
perl Makefile.PL; make
./spamassassin -C ./rules-3.1 -p /nonexistent --siteconfigpath=/nonexistent --lint

Quit here if that lint check fails.

#!/bin/bash

if [ "$USER" != "updatesd" ]; then
  echo "Need to be updatesd!" >&2
  exit 2
fi

DIR=/tmp/upd-$$
rm -rf $DIR || exit 1

svn -q co http://svn.apache.org/repos/asf/spamassassin/rules/branches/3.1 $DIR || exit 1

V=`svnversion $DIR`
cd $DIR
tar cf /tmp/$V.tar *
cd /tmp
rm -rf $DIR
gzip -9 $V.tar
cd /var/www/buildbot.spamassassin.org/updatestage
rm -f $V.tar.gz*
mv /tmp/$V.tar.gz .
/local/gnupg-1.4.2/bin/gpg --batch --homedir /home/updatesd/key -bas $V.tar.gz
/local/perl586/bin/perl /home/updatesd/svn/spamassassin/build/sha1sum.pl $V.tar.gz > $V.tar.gz.sha1
chmod 0444 $V.tar.*

echo '0.1.3 A 127.0.0.1' > /var/named/updates.spamassassin.org.d/3.1.0
echo '*.1.3 TXT "'$V'"' >> /var/named/updates.spamassassin.org.d/3.1.0

/home/updatesd/svn/spamassassin/build/mkupdates/tick_zone_serial

Notes: