ports/144911: [MAINTAINER-UPDATE] mail/p5-Mail-SpamAssassin update to 3.3.1

Michael Scheidell scheidell at secnap.net
Sat Mar 20 17:40:01 UTC 2010


>Number:         144911
>Category:       ports
>Synopsis:       [MAINTAINER-UPDATE] mail/p5-Mail-SpamAssassin update to 3.3.1
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Mar 20 17:40:01 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Michael Scheidell
>Release:        na
>Organization:
SECNAP Network Security
>Environment:
na
>Description:
SA 3.3.1 is mostly a non critical minor bugfix and update

This attached patch updates SA to 3.3.1, and also incorporates PR's 144190 and 144418 which will copy over the missing v330.pre and will not include the IPV perl module if IPV6 is not enabled.(thanks wks)

a big change to pkg-install was done to try to take into account that the sa rules are no longer distributed with SA.  This means that make install, port install, packages, non of these have sa rules distributed, and you either need to install them with sa-update, or get them from the internet some other way, get the PGP keys and use sa-update to locally install them (hint: use sa-update)

this new pkg-install will ask if you need to install rules, if they do not exist.
(using an rc of 255 with the spamassassin --lint command)

It appears to work with make install, portinstall, portupgrade, both binary and source (note: portinstall/upgrade -PP ignores --batch, so if you are scripting this, you must run sa-update and optionally sa-compile later)

thanks again to wks for trying to get this scripted right in plg-install

>How-To-Repeat:
na
>Fix:
apply attached patch, don't forget to run sa-update


Patch attached with submission follows:

diff -bBru /var/tmp/SA330/Makefile ./Makefile
--- /var/tmp/SA330/Makefile	2010-02-17 17:03:35.000000000 -0500
+++ ./Makefile	2010-03-20 11:47:02.000000000 -0400
@@ -6,8 +6,7 @@
 #
 
 PORTNAME=	Mail-SpamAssassin
-PORTVERSION=	3.3.0
-PORTREVISION=	3
+PORTVERSION=	3.3.1
 CATEGORIES=	mail perl5
 MASTER_SITES=	${MASTER_SITE_APACHE:S/$/:apache/} ${MASTER_SITE_PERL_CPAN:S/$/:cpan/}
 MASTER_SITE_SUBDIR=	spamassassin/source/:apache Mail/:cpan
@@ -30,7 +29,6 @@
 		${SITE_PERL}/Mail/Internet.pm:${PORTSDIR}/mail/p5-Mail-Tools
 
 RUN_DEPENDS=	${BUILD_DEPENDS} \
-		${SITE_PERL}/IO/Socket/INET6.pm:${PORTSDIR}/net/p5-IO-INET6 \
 		${SITE_PERL}/${PERL_ARCH}/Time/HiRes.pm:${PORTSDIR}/devel/p5-Time-HiRes
 
 CONFLICTS=	ja-p5-Mail-SpamAssassin-[0-9]*
@@ -75,6 +73,9 @@
 .if defined(WITH_SPF_QUERY)
 BUILD_DEPENDS+=	${SITE_PERL}/Mail/SPF.pm:${PORTSDIR}/mail/p5-Mail-SPF
 .endif
+.if !defined(WITHOUT_IPV6)
+RUN_DEPENDS+= ${SITE_PERL}/IO/Socket/INET6.pm:${PORTSDIR}/net/p5-IO-INET6
+.endif
 
 .if !defined(WITHOUT_SSL)
 .include "${PORTSDIR}/Mk/bsd.openssl.mk"
@@ -289,7 +290,10 @@
 	@[ -f ${PREFIX}/etc/mail/spamassassin/v320.pre ] || \
 		${CP} ${PREFIX}/etc/mail/spamassassin/v320.pre.sample \
 			${PREFIX}/etc/mail/spamassassin/v320.pre
-	@PKG_PREFIX=${PREFIX} BATCH=${BATCH} ${SH} ${PKGDIR}/pkg-install ${PKGNAME} POST-INSTALL
+	@PKG_PREFIX=${PREFIX} BATCH=${BATCH} SU_CMD="${SU_CMD}" ${SH} ${PKGDIR}/pkg-install ${PKGNAME} POST-INSTALL
+	@[ -f ${PREFIX}/etc/mail/spamassassin/v330.pre ] || \
+		${CP} ${PREFIX}/etc/mail/spamassassin/v330.pre.sample \
+			${PREFIX}/etc/mail/spamassassin/v330.pre
 
 .if !defined(NOPORTDOCS)
 	@${MKDIR} ${DOCSDIR} ${DOCSDIR}/sql ${DOCSDIR}/ldap
diff -bBru /var/tmp/SA330/distinfo ./distinfo
--- /var/tmp/SA330/distinfo	2010-02-10 04:06:08.000000000 -0500
+++ ./distinfo	2010-03-20 13:01:22.000000000 -0400
@@ -1,3 +1,3 @@
-MD5 (Mail-SpamAssassin-3.3.0.tar.gz) = 38078b07396c0ab92b46386bc70ef086
-SHA256 (Mail-SpamAssassin-3.3.0.tar.gz) = 51676f4c3af787e3b186aeb8c5ca556330f91a6e213c266480fda3518ed53564
-SIZE (Mail-SpamAssassin-3.3.0.tar.gz) = 1322429
+MD5 (Mail-SpamAssassin-3.3.1.tar.gz) = 5a93f81fda315411560ff5da099382d2
+SHA256 (Mail-SpamAssassin-3.3.1.tar.gz) = a11ca187150d5a8fc2904c4a50f29d3ff739294fa714aaab127ba692d65410ad
+SIZE (Mail-SpamAssassin-3.3.1.tar.gz) = 1196842
diff -bBru /var/tmp/SA330/files/patch-BayesStore-DBM.pm ./files/patch-BayesStore-DBM.pm
--- /var/tmp/SA330/files/patch-BayesStore-DBM.pm	2010-02-10 04:06:08.000000000 -0500
+++ ./files/patch-BayesStore-DBM.pm	2010-03-20 00:18:51.000000000 -0400
@@ -1,13 +0,0 @@
---- lib/Mail/SpamAssassin/BayesStore/DBM.pm	(revision 903517)
-+++ lib/Mail/SpamAssassin/BayesStore/DBM.pm	(working copy)
-@@ -1438,6 +1438,9 @@
-     # bayes directory
-     my $main = $self->{bayes}->{main};
-     my $path = $main->sed_path($main->{conf}->{bayes_path});
-+
-+    # prevent dirname() from tainting the result, it assumes $1 is not tainted
-+    local($1,$2,$3);  # Bug 6310
-     my $dir = dirname($path);
- 
-     # make temporary copy since old dbm and new dbm may have same name
-
diff -bBru /var/tmp/SA330/files/patch-Conf.pm ./files/patch-Conf.pm
--- /var/tmp/SA330/files/patch-Conf.pm	2010-02-10 04:06:08.000000000 -0500
+++ ./files/patch-Conf.pm	2010-03-20 00:19:14.000000000 -0400
@@ -1,24 +0,0 @@
---- lib/Mail/SpamAssassin/Conf.pm	(revision 903394)
-+++ lib/Mail/SpamAssassin/Conf.pm	(working copy)
-@@ -2156,8 +2156,8 @@
- =item header SYMBOLIC_TEST_NAME exists:name_of_header
- 
- Define a header existence test.  C<name_of_header> is the name of a
--header to test for existence.  This is just a very simple version of
--the above header tests.
-+header field to test for existence.  This is just a very simple version
-+of the above header tests.
- 
- =item header SYMBOLIC_TEST_NAME eval:name_of_eval_method([arguments])
- 
-@@ -2280,7 +2280,8 @@
-           $self->{parser}->add_test ($name, $fn, $TYPE_HEAD_EVALS);
-         }
-       }
--      elsif ($value =~ /^(\S+)\s+exists:(.*)$/) {
-+      elsif ($value =~ /^(\S+)\s+exists:([!-9;-\176]+)$/) {
-+        # RFC 5322 section 3.6.8, ftext printable US-ASCII ch not including ":"
-         $self->{parser}->add_test ($1, "defined($2)", $TYPE_HEAD_TESTS);
-         $self->{descriptions}->{$1} = "Found a $2 header";
-       }
-
diff -bBru /var/tmp/SA330/files/patch-DCC.pm ./files/patch-DCC.pm
--- /var/tmp/SA330/files/patch-DCC.pm	2010-02-10 04:06:08.000000000 -0500
+++ ./files/patch-DCC.pm	2010-03-20 00:19:32.000000000 -0400
@@ -1,21 +0,0 @@
---- lib/Mail/SpamAssassin/Plugin/DCC.pm	(revision 905273)
-+++ lib/Mail/SpamAssassin/Plugin/DCC.pm	(working copy)
-@@ -679,7 +679,7 @@
-   my $left;
-   my $right;
-   my $timeout = $conf->{dcc_timeout};
--  my $opts = $conf->{dcc_options};
-+  my $opts = $conf->{dccifd_options};
-   my @opts = !defined $opts ? () : split(' ',$opts);
- 
-   $permsgstatus->enter_helper_run_mode();
-@@ -906,7 +906,7 @@
-   my $conf = $self->{main}->{conf};
-   my $timeout = $conf->{dcc_timeout};
-   # instead of header use whatever the report option is
--  my $opts = $conf->{dcc_options};
-+  my $opts = $conf->{dccifd_options};
-   my @opts = !defined $opts ? () : split(' ',$opts);
- 
-   $options->{report}->enter_helper_run_mode();
-
diff -bBru /var/tmp/SA330/files/patch-DKIM.pm ./files/patch-DKIM.pm
--- /var/tmp/SA330/files/patch-DKIM.pm	2010-03-20 12:58:43.000000000 -0400
+++ ./files/patch-DKIM.pm	2010-03-19 14:27:04.000000000 -0400
@@ -0,0 +1,66 @@
+--- lib/Mail/SpamAssassin/Plugin/DKIM.pm	(revision 925052)
++++ lib/Mail/SpamAssassin/Plugin/DKIM.pm	(working copy)
+@@ -213,6 +213,19 @@
+ in the SpamAssassin distribution.  The whitelist score is lower, because
+ these are often targets for abuse of public mailers which sign their mail.
+ 
++=item unwhitelist_from_dkim author at example.com
++
++Removes an email address from def_whitelist_from_dkim and whitelist_from_dkim
++tables, if it exists. Useful for removing undesired default entries from a
++distributed configuration file by a local.cf file or by a C<user_prefs>.
++Note that a parameter is a single email address - currently that address
++is removed regardless of a signing-domain which may have been specified in a
++whitelisting entry.
++
++The specified email address has to match exactly the address previously
++used in a whitelist_from_dkim or def_whitelist_from_dkim directive
++(with an exception that its domain name part is matched case-insensitively).
++
+ =item adsp_override domain [signing-practices]
+ 
+ Currently few domains publish their signing practices (RFC 5617 - ADSP),
+@@ -362,6 +375,7 @@
+       }
+       my $address = $1;
+       my $sdid = defined $2 ? $2 : '';  # empty implies author domain signature
++      $address =~ s/(\@[^@]*)\z/lc($1)/e; # lowercase the email address domain
+       $self->{parser}->add_to_addrlist_rcvd('whitelist_from_dkim',
+                                             $address, $sdid);
+     }
+@@ -381,12 +395,32 @@
+       }
+       my $address = $1;
+       my $sdid = defined $2 ? $2 : '';  # empty implies author domain signature
++      $address =~ s/(\@[^@]*)\z/lc($1)/e; # lowercase the email address domain
+       $self->{parser}->add_to_addrlist_rcvd('def_whitelist_from_dkim',
+                                             $address, $sdid);
+     }
+   });
+ 
+   push (@cmds, {
++    setting => 'unwhitelist_from_dkim',
++    type => $Mail::SpamAssassin::Conf::CONF_TYPE_ADDRLIST,
++    code => sub {
++      my ($self, $key, $value, $line) = @_;
++      unless (defined $value && $value !~ /^$/) {
++        return $Mail::SpamAssassin::Conf::MISSING_REQUIRED_VALUE;
++      }
++      unless ($value =~ /^\S+$/) {
++        return $Mail::SpamAssassin::Conf::INVALID_VALUE;
++      }
++      $value =~ s/(\@[^@]*)\z/lc($1)/e;  # lowercase the email address domain
++      $self->{parser}->remove_from_addrlist_rcvd('whitelist_from_dkim',
++                                                 $value);
++      $self->{parser}->remove_from_addrlist_rcvd('def_whitelist_from_dkim',
++                                                 $value);
++    }
++  });
++
++  push (@cmds, {
+     setting => 'adsp_override',
+     type => $Mail::SpamAssassin::Conf::CONF_TYPE_HASH_KEY_VALUE,
+     code => sub {
+
+
+
diff -bBru /var/tmp/SA330/files/patch-Message.pm ./files/patch-Message.pm
--- /var/tmp/SA330/files/patch-Message.pm	2010-02-10 04:06:08.000000000 -0500
+++ ./files/patch-Message.pm	2010-03-20 00:19:52.000000000 -0400
@@ -1,11 +0,0 @@
---- lib/Mail/SpamAssassin/Message.pm.orig	2010/01/29 15:48:09	904525
-+++ lib/Mail/SpamAssassin/Message.pm	2010/01/29 15:48:29	904526
-@@ -114,6 +114,7 @@
-   $self->{pristine_body} =	'';
-   $self->{mime_boundary_state} = {};
-   $self->{line_ending} =	"\012";
-+  $self->{master_deadline} = $opts->{'master_deadline'};
-   $self->{suppl_attrib} = $opts->{'suppl_attrib'};
- 
-   bless($self,$class);
-
diff -bBru /var/tmp/SA330/files/patch-Parser.pm ./files/patch-Parser.pm
--- /var/tmp/SA330/files/patch-Parser.pm	2010-02-11 11:41:35.000000000 -0500
+++ ./files/patch-Parser.pm	2010-03-20 00:20:15.000000000 -0400
@@ -1,13 +0,0 @@
---- lib/Mail/SpamAssassin/Conf/Parser.pm	(revision 903394)
-+++ lib/Mail/SpamAssassin/Conf/Parser.pm	(working copy)
-@@ -1127,7 +1127,8 @@
-   }
-   if ($type == $Mail::SpamAssassin::Conf::TYPE_HEAD_TESTS)
-   {
--    if ($text =~ /^!?defined\([A-Za-z][A-Za-z0-9-]*\)$/) {
-+    # RFC 5322 section 3.6.8, ftext printable US-ASCII chars not including ":"
-+    if ($text =~ /^!?defined\([!-9;-\176]+\)$/) {
-       # fine, implements 'exists:'
-     } else {
-       my ($pat) = ($text =~ /^\s*\S+\s*(?:\=|\!)\~\s*(\S.*?\S)\s*$/);
-
diff -bBru /var/tmp/SA330/files/patch-SpamAssassin.pm ./files/patch-SpamAssassin.pm
--- /var/tmp/SA330/files/patch-SpamAssassin.pm	2010-02-10 04:06:08.000000000 -0500
+++ ./files/patch-SpamAssassin.pm	2010-03-20 00:20:34.000000000 -0400
@@ -1,51 +0,0 @@
---- lib/Mail/SpamAssassin.pm.orig	2010/01/29 15:48:09	904525
-+++ lib/Mail/SpamAssassin.pm	2010/01/29 15:48:29	904526
-@@ -75,6 +75,7 @@
- use Mail::SpamAssassin::Message;
- use Mail::SpamAssassin::PluginHandler;
- use Mail::SpamAssassin::DnsResolver;
-+use Mail::SpamAssassin::Util qw(untaint_var);
- use Mail::SpamAssassin::Util::ScopedTimer;
- 
- use Errno qw(ENOENT EACCES);
-@@ -490,20 +490,21 @@
-   $self->init(1);
-   my $timer = $self->time_method("parse");
- 
--  my $msg = Mail::SpamAssassin::Message->new({
--    message=>$message, parsenow=>$parsenow,
--    normalize=>$self->{conf}->{normalize_charset},
--    suppl_attrib=>$suppl_attrib });
--
-+  my $master_deadline;
-   if (ref $suppl_attrib && exists $suppl_attrib->{master_deadline}) {
--    $msg->{master_deadline} = $suppl_attrib->{master_deadline};  # may be undef
-+    $master_deadline = $suppl_attrib->{master_deadline};  # may be undef
-   } elsif ($self->{conf}->{time_limit}) {  # defined and nonzero
--    $msg->{master_deadline} = $start_time + $self->{conf}->{time_limit};
-+    $master_deadline = $start_time + $self->{conf}->{time_limit};
-   }
--  if (defined $msg->{master_deadline}) {
--    dbg("config: time limit %.1f s", $msg->{master_deadline} - $start_time);
-+  if (defined $master_deadline) {
-+    dbg("config: time limit %.1f s", $master_deadline - $start_time);
-   }
- 
-+  my $msg = Mail::SpamAssassin::Message->new({
-+    message=>$message, parsenow=>$parsenow,
-+    normalize=>$self->{conf}->{normalize_charset},
-+    master_deadline=>$master_deadline, suppl_attrib=>$suppl_attrib });
-+
-   # bug 5069: The goal here is to get rendering plugins to do things
-   # like OCR, convert doc and pdf to text, etc, though it could be anything
-
-@@ -1935,7 +1936,7 @@
-       close IN  or die "error closing $defprefs: $!";
- 
-       if (($< == 0) && ($> == 0) && defined($user)) { # chown it
--        my ($uid,$gid) = (getpwnam($user))[2,3];
-+        my ($uid,$gid) = (getpwnam(untaint_var($user)))[2,3];
-         unless (chown($uid, $gid, $fname)) {
-           warn "config: couldn't chown $fname to $uid:$gid for $user: $!\n";
-         }
-
diff -bBru /var/tmp/SA330/files/patch-bayes.pm ./files/patch-bayes.pm
--- /var/tmp/SA330/files/patch-bayes.pm	2010-02-10 04:06:08.000000000 -0500
+++ ./files/patch-bayes.pm	2010-03-20 00:20:52.000000000 -0400
@@ -1,12 +0,0 @@
---- lib/Mail/SpamAssassin/Plugin/Bayes.pm	2010/01/26 12:13:41	903191
-+++ lib/Mail/SpamAssassin/Plugin/Bayes.pm	2010/02/03 16:44:07	906120
-@@ -832,7 +832,7 @@
-             });
- 
-   $permsgstatus->set_tag ('TOKENSUMMARY', sub {
--              if( defined $self->{tag_data}{BAYESTC} )
-+              if ( defined $permsgstatus->{tag_data}{BAYESTC} )
-                 {
-                   my $tcount_neutral = $permsgstatus->{tag_data}{BAYESTCLEARNED}
-                                     - $permsgstatus->{tag_data}{BAYESTCSPAMMY}
- 
diff -bBru /var/tmp/SA330/files/patch-spamd_spamd.raw ./files/patch-spamd_spamd.raw
--- /var/tmp/SA330/files/patch-spamd_spamd.raw	2010-02-10 04:06:08.000000000 -0500
+++ ./files/patch-spamd_spamd.raw	2010-03-20 00:21:08.000000000 -0400
@@ -1,52 +0,0 @@
---- spamd/spamd.raw.orig	2008-04-24 09:50:46.000000000 +0200
-+++ spamd/spamd.raw	2008-04-24 09:52:55.000000000 +0200
-@@ -1381,8 +1381,9 @@
-   
-   # Now parse *only* the message headers; the MIME tree won't be generated 
-   # yet, it will be done on demand later on.
--  my $mail = $spamtest->parse(\@msglines, 0, !$timeout_child ? () :
--                         { master_deadline => $start_time + $timeout_child } );
-+  my $mail = $spamtest->parse(\@msglines, 0,
-+                       !$timeout_child || !$start_time ? ()
-+                       : { master_deadline => $start_time + $timeout_child } );
- 
-   return ($mail, $actual_length);
- }
-@@ -1705,8 +1706,9 @@
-   my $resp = "EX_OK";
- 
-   # generate mail object from input
--  my ($mail, $actual_length) = parse_body($client, $expected_length,
--                $compress_zlib);
-+  my($mail, $actual_length) =
-+    parse_body($client, $expected_length, $compress_zlib, $start_time);
-+
-   return 0 unless defined($mail);       # error
- 
-   if ($compress_zlib) {
-@@ -2276,8 +2276,14 @@
- 
- sub handle_user_setuid_with_sql {
-   my $username = shift;
-+
-+  # Bug 6313: interestingly, if $username is not tainted than $pwd, $gcos and
-+  # $etc end up tainted but other fields not;  if $username _is_ tainted,
-+  # getpwnam does not complain, but all returned fields are tainted (which
-+  # makes sense, but is worth remembering)
-+  #
-   my ($name, $pwd, $uid, $gid, $quota, $comment, $gcos, $dir, $etc) =
--      getpwnam($username);
-+      getpwnam(untaint_var($username));
- 
-   if (!$spamtest->{'paranoid'} && !defined($uid)) {
-     # if we are given a username, but can't look it up, maybe name
-@@ -2300,7 +2306,7 @@
-   }
- 
-   my $spam_conf_dir = $dir . '/.spamassassin'; # needed for Bayes, etc.
--  if (! -d $spam_conf_dir) {
-+  if ($opt{'user-config'} && ! -d $spam_conf_dir) {
-     if (mkdir $spam_conf_dir, 0700) {
-       info("spamd: created $spam_conf_dir for $username");
-     }
-
diff -bBru /var/tmp/SA330/pkg-install ./pkg-install
--- /var/tmp/SA330/pkg-install	2010-02-17 17:03:35.000000000 -0500
+++ ./pkg-install	2010-03-20 13:02:25.000000000 -0400
@@ -32,31 +33,6 @@
                 echo "Please answer yes or no."
         done
 }
-
-    if [ ! -e ${PKG_PREFIX}/etc/mail/spamassassin/v320.pre ]; then
-       echo "***********************************************"
-       echo "*__        ___    ____  _   _ ___ _   _  ____ *"
-       echo "*\ \      / / \  |  _ \| \ | |_ _| \ | |/ ___|*"
-       echo "* \ \ /\ / / _ \ | |_) |  \| || ||  \| | |  _ *"
-       echo "*  \ V  V / ___ \|  _ <| |\  || || |\  | |_| |*"
-       echo "*   \_/\_/_/   \_\_| \_\_| \_|___|_| \_|\____|*"
-       echo "*                                             *"
-       echo "*You must install rules before starting spamd!*"
-       echo "***********************************************"
-       if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
-           sleep 10;
-       fi
-       if yesno "Do you wish to run sa-update to fetch new rules" "N";then
-           ${PKG_PREFIX}/bin/sa-update || true
-       fi
-       grep '^load.*Rule2XSBody' ${PKG_PREFIX}/etc/mail/spamassassin/v320.pre > /dev/null
-       if [ $? -eq 0 ];then
-         if yesno "Do you wish to compile rules with re2c (will take a long time)" "N";then
-           ${PKG_PREFIX}/bin/sa-compile || true
-         fi
-       fi
-    fi
-    
     if ! pw groupshow "${GROUP}" 2>/dev/null 1>&2; then
     	if pw groupadd ${GROUP} -g ${GID}; then
     		echo "Added group \"${GROUP}\"."
@@ -81,12 +57,9 @@
     
     # Create pid directory
     mkdir /var/run/spamd 2> /dev/null && chown ${USER}:${GROUP} /var/run/spamd
+    /usr/bin/su root -c "${PKG_PREFIX}/bin/spamassassin -x -L --lint"
     
-   exit 0
-fi  # post-install
-
-if [ "$2" = "PRE-INSTALL" ]; then
-    if [ ! -e ${PKG_PREFIX}/etc/mail/spamassassin/v320.pre ]; then
+    if [ ${?} -eq 255 ];then
         echo "***********************************************"
         echo "*__        ___    ____  _   _ ___ _   _  ____ *"
         echo "*\ \      / / \  |  _ \| \ | |_ _| \ | |/ ___|*"
@@ -97,10 +70,21 @@
         echo "*You must install rules before starting spamd!*"
         echo "***********************************************"
         if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
-            sleep 10;
+           if yesno "Do you wish to run sa-update to fetch new rules" "N";then
+              ${PKG_PREFIX}/bin/sa-update || true
+	   else
+              echo ""
+           fi
+           /usr/bin/su root -c  "${PKG_PREFIX}/bin/spamassassin -x -L --lint"
+           if [ ${?} -eq 0 ] && grep '^load.*Rule2XSBody' ${PKG_PREFIX}/etc/mail/spamassassin/v320.pre > /dev/null ;then
+              if yesno "Do you wish to compile rules with re2c (will take a long time)" "N";then
+                ${PKG_PREFIX}/bin/sa-compile || true
         fi
     fi
+       fi
+    fi
+    
     exit 0
-fi
+fi  # post-install
 
 exit 0


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list