Provided by: spamassassin_3.3.2-2ubuntu1_all bug


       sa-compile - compile SpamAssassin ruleset into native code


       sa-compile [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>/3.003002)
         --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 ""), 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


           Output the extracted base strings to STDOUT, instead of generating the C extension

           Use sudo(8) to run code as 'root' when writing files to the compiled-rules storage
           area (which is "/var/lib/spamassassin/compiled/5.014/3.003002" by default).

           Produce less diagnostic output.  Errors will still be displayed.

           Keep temporary files after the script completes, instead of deleting them.

       -C path, --configpath=path, --config-file=path
           Use the specified path for locating the distributed configuration files.  Ignore the
           default directories (usually "/usr/share/spamassassin" or similar).

           Use the specified path for locating site-specific configuration files.  Ignore the
           default directories (usually "/etc/spamassassin" or similar).

           By default, "sa-compile" will use the system-wide rules update directory:


           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.

       --cf='config line'
           Add additional lines of configuration directly from the command-line, parsed after the
           configuration files are read.   Multiple --cf arguments can be used, and each will be
           considered a separate line of configuration.

       -p prefs, --prefspath=prefs, --prefs-file=prefs
           Read user score preferences from prefs (usually "$HOME/.spamassassin/user_prefs") .

       -D [area,...], --debug [area,...]
           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 <>.

       -h, --help
           Print help message and exit.

       -V, --version
           Print sa-compile version and exit.


       Mail::SpamAssassin(3) spamassassin(1) spamd(1)


       "Mail::SpamAssassin" "re2c" "Mail::SpamAssassin::Plugin::Rule2XSBody"


       See <>


       The Apache SpamAssassin(tm) Project <>


       SpamAssassin is distributed under the Apache License, Version 2.0, as described in the
       file "LICENSE" included with the distribution.