sa-compile - compile SpamAssassin ruleset into native code
sa-compile [options]
Options:
--list Output base string list to STDOUT --sudo Use 'sudo' for privilege escalation --keep-tmps Keep temporary files instead of deleting -C path, --configpath=path, --config-file=path Path to standard configuration dir -p prefs, --prefspath=file, --prefs-file=file Set user preferences file --siteconfigpath=path Path for site configs (default: /etc/spamassassin) --updatedir=path Directory to place updates (default: /var/lib/spamassassin/compiled/<perlversion>/<version>) --cf='config line' Additional line of configuration -D, --debug [area=n,...] Print debugging messages -V, --version Print version -h, --help Print usage message
sa-compile uses re2c
to compile the site-wide parts of the SpamAssassin
ruleset. No part of user_prefs or any files included from user_prefs can be
built into the compiled set.
This compiled set is then used by the
Mail::SpamAssassin::Plugin::Rule2XSBody
plugin to speed up
SpamAssassin's operation, where possible, and when that plugin is loaded.
re2c
can match strings much faster than perl code, by constructing a DFA to
match many simple strings in parallel, and compiling that to native object
code. Not all SpamAssassin rules are amenable to this conversion, however.
This requires re2c
(see http://re2c.org/
), and the C
compiler used to build Perl XS modules, be installed.
Note that running this, and creating a compiled ruleset, will have no
effect on SpamAssassin scanning speeds unless you also edit your v320.pre
file and ensure this line is uncommented:
loadplugin Mail::SpamAssassin::Plugin::Rule2XSBody
sudo(8)
to run code as 'root' when writing files to the compiled-rules
storage area (which is /var/lib/spamassassin/compiled/5.010/3.002005
by default).
/usr/share/spamassassin
or similar).
/etc/spamassassin
or similar).
By default, sa-compile
will use the system-wide rules update directory:
/var/lib/spamassassin/spamassassin/compiled/5.010/3.002005
If the updates should be stored in another location, specify it here.
Note that use of this option is not recommended; if sa-compile is placing the
compiled rules the wrong directory, you probably need to rebuild SpamAssassin
with different Makefile.PL
arguments, instead of overriding sa-compile's
runtime behaviour.
$HOME/.spamassassin/user_prefs
) .
Produce debugging output. If no areas are listed, all debugging information is printed. Diagnostic output can also be enabled for each area individually; area is the area of the code to instrument.
For more information about which areas (also known as channels) are available, please see the documentation at http://wiki.apache.org/spamassassin/DebugChannels.
Mail::SpamAssassin(3) spamassassin(1) spamd(1)
Mail::SpamAssassin
re2c
Mail::SpamAssassin::Plugin::Rule2XSBody
See <http://issues.apache.org/SpamAssassin/>
The Apache SpamAssassin(tm) Project <http://spamassassin.apache.org/>
SpamAssassin is distributed under the Apache License, Version 2.0, as
described in the file LICENSE
included with the distribution.