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'}