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 2008/04/17 00:40:46 UTC
svn commit: r648888 - in /spamassassin/trunk: lib/Mail/SpamAssassin.pm
lib/Mail/SpamAssassin/Conf.pm lib/Mail/SpamAssassin/Conf/Parser.pm
spamassassin.raw spamd/spamd.raw
Author: jm
Date: Wed Apr 16 15:40:36 2008
New Revision: 648888
URL: http://svn.apache.org/viewvc?rev=648888&view=rev
Log:
bug 5752: add a warning telling the user to run 'sa-update' in Mail::SpamAssassin, if no rules are found in the system config dir, which will be possible since we plan to no longer distribute rules in the basic tarball
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
spamassassin/trunk/spamassassin.raw
spamassassin/trunk/spamd/spamd.raw
Modified: spamassassin/trunk/lib/Mail/SpamAssassin.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin.pm?rev=648888&r1=648887&r2=648888&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin.pm Wed Apr 16 15:40:36 2008
@@ -229,6 +229,11 @@
If set to 1, DNS tests will not attempt to use IPv6. Use if the existing tests
for IPv6 availablity produce incorrect results or crashes.
+=item require_rules
+
+If set to 1, init() will die if no valid rules could be loaded. This is the
+default behaviour when called by C<spamassassin> or C<spamd>.
+
=item languages_filename
If you want to be able to use the language-guessing rule
@@ -1578,7 +1583,11 @@
}
if ($sysrules) {
- $self->{config_text} .= $self->read_cf($sysrules, 'default rules dir');
+ my $cftext = $self->read_cf($sysrules, 'default rules dir');
+ if ($self->{require_rules} && $cftext !~ /\S/) {
+ die "config: no rules were found! Do you need to run 'sa-update'?\n";
+ }
+ $self->{config_text} .= $cftext;
}
if (!$self->{languages_filename}) {
@@ -1613,7 +1622,12 @@
$self->{config_text} .= $self->{post_config_text} if ($self->{post_config_text});
if ($self->{config_text} !~ /\S/) {
- warn "config: no configuration text or files found! please check your setup\n";
+ my $m = "config: no configuration text or files found! do you need to run 'sa-update'?\n";
+ if ($self->{require_rules}) {
+ die $m;
+ } else {
+ warn $m;
+ }
}
# Go and parse the config!
@@ -1627,6 +1641,10 @@
undef $self->{config_text}; # ensure it's actually freed
delete $self->{config_text};
+
+ if ($self->{require_rules} && !$self->{conf}->found_any_rules()) {
+ die "config: no rules were found! Do you need to run 'sa-update'?\n";
+ }
# Initialize the Bayes subsystem
if ($self->{conf}->{use_bayes}) {
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?rev=648888&r1=648887&r2=648888&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Wed Apr 16 15:40:36 2008
@@ -3497,6 +3497,16 @@
###########################################################################
+sub found_any_rules {
+ my ($self) = @_;
+ if (!defined $self->{found_any_rules}) {
+ $self->{found_any_rules} = (scalar keys %{$self->{tests}} > 0);
+ }
+ return $self->{found_any_rules};
+}
+
+###########################################################################
+
sub get_description_for_rule {
my ($self, $rule) = @_;
return $self->{descriptions}->{$rule};
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm?rev=648888&r1=648887&r2=648888&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm Wed Apr 16 15:40:36 2008
@@ -788,6 +788,8 @@
$conf->{main}->call_plugins("user_conf_parsing_end", { conf => $conf });
}
+ $conf->found_any_rules(); # before we might delete {tests}
+
if (!$conf->{allow_user_rules}) {
# free up stuff we no longer need
delete $conf->{tests};
Modified: spamassassin/trunk/spamassassin.raw
URL: http://svn.apache.org/viewvc/spamassassin/trunk/spamassassin.raw?rev=648888&r1=648887&r2=648888&view=diff
==============================================================================
--- spamassassin/trunk/spamassassin.raw (original)
+++ spamassassin/trunk/spamassassin.raw Wed Apr 16 15:40:36 2008
@@ -253,6 +253,7 @@
debug => $opt{'debug'},
dont_copy_prefs => ( $opt{'create-prefs'} ? 0 : 1 ),
post_config_text => join("\n", @{$opt{'cf'}})."\n",
+ require_rules => 1,
PREFIX => $PREFIX,
DEF_RULES_DIR => $DEF_RULES_DIR,
LOCAL_RULES_DIR => $LOCAL_RULES_DIR,
Modified: spamassassin/trunk/spamd/spamd.raw
URL: http://svn.apache.org/viewvc/spamassassin/trunk/spamd/spamd.raw?rev=648888&r1=648887&r2=648888&view=diff
==============================================================================
--- spamassassin/trunk/spamd/spamd.raw (original)
+++ spamassassin/trunk/spamd/spamd.raw Wed Apr 16 15:40:36 2008
@@ -881,6 +881,7 @@
local_tests_only => ( $opt{'local'} || 0 ),
debug => ( $opt{'debug'} || 0 ),
paranoid => ( $opt{'paranoid'} || 0 ),
+ require_rules => 1,
home_dir_for_helpers => (
defined $opt{'home_dir_for_helpers'}
? $opt{'home_dir_for_helpers'}