Bug 158530 - [UPDATE] japanese/p5-Mail-SpamAssassin: Update 3.3.2
Summary: [UPDATE] japanese/p5-Mail-SpamAssassin: Update 3.3.2
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Chris Rees
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-30 10:00 UTC by takefu
Modified: 2011-08-11 11:10 UTC (History)
0 users

See Also:


Attachments
ja-p5-Mail-SpamAssassin.patch (26.74 KB, patch)
2011-06-30 10:00 UTC, takefu
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description takefu 2011-06-30 10:00:24 UTC
- Update to 3.3.2
Please close PR 157584
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2011-06-30 10:00:41 UTC
Responsible Changed
From-To: freebsd-ports-bugs->perl

perl@ wants this port PRs (via the GNATS Auto Assign Tool)
Comment 2 Edwin Groothuis freebsd_committer freebsd_triage 2011-06-30 10:00:44 UTC
Maintainer of japanese/p5-Mail-SpamAssassin,

Please note that PR ports/158530 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/158530

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 3 Edwin Groothuis freebsd_committer freebsd_triage 2011-06-30 10:00:47 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 4 Chris Rees freebsd_committer freebsd_triage 2011-07-17 17:44:20 UTC
Responsible Changed
From-To: perl->crees

I'll take it.
Comment 5 Chris Rees 2011-07-28 08:38:08 UTC
Hi Takefu,

I'm afraid the patch is stale... Please would you rerun the patch 
against an up-to-date version of japanese/p5-Mail-SpamAssassin?

Chris

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Comment 6 takefu 2011-07-28 10:39:46 UTC
Hi Chris

Sure.
We also included in the job PR 159113

:-)

--- p5-Mail-SpamAssassin_2.patch begins here ---
diff -ruN /usr/ports/japanese/p5-Mail-SpamAssassin/Makefile japanese/p5-Mail-SpamAssassin/Makefile
--- /usr/ports/japanese/p5-Mail-SpamAssassin/Makefile	2011-07-12 14:08:15.000000000 +0900
+++ japanese/p5-Mail-SpamAssassin/Makefile	2011-07-28 18:07:29.000000000 +0900
@@ -6,8 +6,8 @@
 #

 PORTNAME=	Mail-SpamAssassin
-PORTVERSION=	3.3.1
-PORTREVISION=	3
+PORTVERSION=	3.3.2
+PORTREVISION=	1
 CATEGORIES=	japanese mail perl5
 MASTER_SITES=	${MASTER_SITE_APACHE:S/$/:apache/} ${MASTER_SITE_PERL_CPAN:S/$/:cpan/} \
 		${PATCH_SITES}
@@ -23,19 +23,22 @@
 PATCHLEVEL=	1
 PATCH_DIST_STRIP=	-p1

-RUN_DEPENDS+=
 MAINTAINER=	fmysh@iijmio-mail.jp
 COMMENT=	SpamAssassin with Japanese tokenizer

 RUN_DEPENDS=	p5-NetAddr-IP>=4.00.7:${PORTSDIR}/net-mgmt/p5-NetAddr-IP \
 		p5-Net-DNS>=0.63:${PORTSDIR}/dns/p5-Net-DNS \
-		p5-HTML-Parser>=3.43:${PORTSDIR}/www/p5-HTML-Parser \
-		p5-libwww>=0:${PORTSDIR}/www/p5-libwww \
+		p5-HTML-Parser>=3.46:${PORTSDIR}/www/p5-HTML-Parser \
+		${SITE_PERL}/Bundle/LWP.pm:${PORTSDIR}/www/p5-libwww \
+		${SITE_PERL}/${PERL_ARCH}/Encode/Detect.pm:${PORTSDIR}/converters/p5-Encode-Detect \
+		${SITE_PERL}/Mail/Internet.pm:${PORTSDIR}/mail/p5-Mail-Tools\
+		ja-p5-MeCab>=0.98:${PORTSDIR}/japanese/p5-MeCab
+BUILD_DEPENDS=	p5-NetAddr-IP>=4.00.7:${PORTSDIR}/net-mgmt/p5-NetAddr-IP \
+		p5-Net-DNS>=0.63:${PORTSDIR}/dns/p5-Net-DNS \
+		p5-HTML-Parser>=3.46:${PORTSDIR}/www/p5-HTML-Parser \
+		${SITE_PERL}/Bundle/LWP.pm:${PORTSDIR}/www/p5-libwww \
 		${SITE_PERL}/${PERL_ARCH}/Encode/Detect.pm:${PORTSDIR}/converters/p5-Encode-Detect \
 		${SITE_PERL}/Mail/Internet.pm:${PORTSDIR}/mail/p5-Mail-Tools
-RUN_DEPENDS+=	ja-p5-MeCab>=0.98:${PORTSDIR}/japanese/p5-MeCab
-
-BUILD_DEPENDS=	${RUN_DEPENDS}

 CONFLICTS=	p5-Mail-SpamAssassin-[0-9]*

@@ -46,6 +49,9 @@
 	       	CONTACT_ADDRESS="${CONTACT_ADDRESS}" \
 		LOCALSTATEDIR="/var/db/spamassassin"

+USERS=		spamd
+GROUPS=		spamd
+
 # You can override it if you like
 CONTACT_ADDRESS?=	The administrator of that system

@@ -133,7 +139,7 @@
 RUN_DEPENDS+=	${SITE_PERL}/${PERL_ARCH}/Digest/SHA.pm:${PORTSDIR}/security/p5-Digest-SHA
 . endif
 RUN_DEPENDS+=	p5-Mail-DKIM>=0.37:${PORTSDIR}/mail/p5-Mail-DKIM
-RUN_DEPENDS+=	p5-Crypt-OpenSSL-RSA>=0.24:${PORTSDIR}/security/p5-Crypt-OpenSSL-RSA
+RUN_DEPENDS+=	p5-Crypt-OpenSSL-RSA>=0.26_1:${PORTSDIR}/security/p5-Crypt-OpenSSL-RSA
 .endif

 .if defined(WITH_SACOMPILE)
@@ -220,7 +226,7 @@
 		spamassassin-run.3

 MAN1=		spamd.1 spamassassin.1 spamc.1 sa-learn.1 sa-update.1 \
-		spamassassin-run.1 sa-compile.1
+		spamassassin-run.1 sa-compile.1 sa-awl.1

 DOCSDIR=	${PREFIX}/share/doc/${PKGNAMEPREFIX}${PORTNAME}
 DATADIR=	${PREFIX}/share/spamassassin
@@ -239,7 +245,7 @@
 SUB_LIST+=	SQL_FLAG=""
 .endif
 .if !defined(WITH_AS_ROOT)
-SUB_LIST+=	RUN_AS_USER="-u spamd -H /var/spool/spamd"
+SUB_LIST+=	RUN_AS_USER="-u ${USERS} -H /var/spool/spamd"
 .else
 SUB_LIST+=	RUN_AS_USER=""
 .endif
@@ -289,7 +295,7 @@
 .endif

 pre-su-install:
-	@${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
+	@USER=${USERS} GROUP=${GROUPS} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
 	@${INSTALL_PROGRAM} ${WRKSRC}/spamc/libspamc.so ${PREFIX}/lib/libspamc.so.0
 	@${LN} -sf libspamc.so.0 ${PREFIX}/lib/libspamc.so
 .if !defined(WITHOUT_SSL)
@@ -314,7 +320,7 @@
 	@[ -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} SU_CMD="${SU_CMD}" ${SH} ${PKGDIR}/pkg-install ${PKGNAME} POST-INSTALL
+	@PKG_PREFIX=${PREFIX} BATCH=${BATCH} SU_CMD="${SU_CMD}" USER=${USERS} GROUP=${GROUPS} ${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
diff -ruN /usr/ports/japanese/p5-Mail-SpamAssassin/distinfo japanese/p5-Mail-SpamAssassin/distinfo
--- /usr/ports/japanese/p5-Mail-SpamAssassin/distinfo	2011-03-21 14:17:23.000000000 +0900
+++ japanese/p5-Mail-SpamAssassin/distinfo	2011-07-21 09:50:48.000000000 +0900
@@ -1,8 +1,8 @@
-SHA256 (ja-spamassassin/Mail-SpamAssassin-3.3.1.tar.gz) = a11ca187150d5a8fc2904c4a50f29d3ff739294fa714aaab127ba692d65410ad
-SIZE (ja-spamassassin/Mail-SpamAssassin-3.3.1.tar.gz) = 1196842
+SHA256 (ja-spamassassin/Mail-SpamAssassin-3.3.2.tar.gz) = 5323038939a0ef9fc97d5264defce3ae1d95e98b3a94c4c3b583341c927f32df
+SIZE (ja-spamassassin/Mail-SpamAssassin-3.3.2.tar.gz) = 1208182
 SHA256 (ja-spamassassin/tokenizer.pre) = 9f8e30a8449fd13d571427ea30a252b4b275f153bde5345c50427a7aee3c90e0
 SIZE (ja-spamassassin/tokenizer.pre) = 163
-SHA256 (ja-spamassassin/spamassassin-3.3.1-ja-1.txt) = 8342ed8b783f0eae867df9749b8c2ef35d7d5bee00bc240624bab57cc5a03070
-SIZE (ja-spamassassin/spamassassin-3.3.1-ja-1.txt) = 7163
-SHA256 (ja-spamassassin/spamassassin-3.3.1-ja-1.patch) = 39dd21525076b86134b421a99cbbe151feba66da7381003d4743044c852ee2d5
-SIZE (ja-spamassassin/spamassassin-3.3.1-ja-1.patch) = 33740
+SHA256 (ja-spamassassin/spamassassin-3.3.2-ja-1.txt) = 6d818b246d2655abb260de83b4735c4f433808de7c19c4f905474c78c1ccbebd
+SIZE (ja-spamassassin/spamassassin-3.3.2-ja-1.txt) = 7246
+SHA256 (ja-spamassassin/spamassassin-3.3.2-ja-1.patch) = 073e9eaebf0dc2bf9e90f894c171a7654dad8444ed269528045e547302b7136a
+SIZE (ja-spamassassin/spamassassin-3.3.2-ja-1.patch) = 33740
diff -ruN /usr/ports/japanese/p5-Mail-SpamAssassin/files/patch-DKIM.pm japanese/p5-Mail-SpamAssassin/files/patch-DKIM.pm
--- /usr/ports/japanese/p5-Mail-SpamAssassin/files/patch-DKIM.pm	2011-04-18 15:55:33.000000000 +0900
+++ japanese/p5-Mail-SpamAssassin/files/patch-DKIM.pm	1970-01-01 09:00:00.000000000 +0900
@@ -1,66 +0,0 @@
---- 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@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 -ruN /usr/ports/japanese/p5-Mail-SpamAssassin/files/patch-bug6392 japanese/p5-Mail-SpamAssassin/files/patch-bug6392
--- /usr/ports/japanese/p5-Mail-SpamAssassin/files/patch-bug6392	2011-04-18 15:55:33.000000000 +0900
+++ japanese/p5-Mail-SpamAssassin/files/patch-bug6392	1970-01-01 09:00:00.000000000 +0900
@@ -1,225 +0,0 @@
-Index: lib/Mail/SpamAssassin/HTML.pm
-===================================================================
---- lib/Mail/SpamAssassin/HTML.pm	(revision 943932)
-+++ lib/Mail/SpamAssassin/HTML.pm	(revision 943933)
-@@ -191,7 +191,7 @@
-   my $self = shift;
-   my %options = @_;
-
--  return join('', @{ $self->{text} }) unless keys %options;
-+  return join('', @{ $self->{text} }) unless %options;
-
-   my $mask;
-   while (my ($k, $v) = each %options) {
-Index: lib/Mail/SpamAssassin/Dns.pm
-===================================================================
---- lib/Mail/SpamAssassin/Dns.pm	(revision 943932)
-+++ lib/Mail/SpamAssassin/Dns.pm	(revision 943933)
-@@ -754,7 +754,7 @@
-   dbg("dns: entering helper-app run mode");
-   $self->{old_slash} = $/;              # Razor pollutes this
-   %{$self->{old_env}} = ();
--  if ( defined %ENV ) {
-+  if ( %ENV ) {
-     # undefined values in %ENV can result due to autovivification elsewhere,
-     # this prevents later possible warnings when we restore %ENV
-     while (my ($key, $value) = each %ENV) {
-Index: lib/Mail/SpamAssassin/Plugin/Check.pm
-===================================================================
---- lib/Mail/SpamAssassin/Plugin/Check.pm	(revision 943932)
-+++ lib/Mail/SpamAssassin/Plugin/Check.pm	(revision 943933)
-@@ -307,64 +307,51 @@
-   my $package_name = __PACKAGE__;
-   my $methodname = $package_name."::_".$ruletype."_tests_".$clean_priority;
-
--  if (defined &{$methodname} && !$doing_user_rules) {
--run_compiled_method:
--  # dbg("rules: run_generic_tests - calling %s", $methodname);
--    my $t = Mail::SpamAssassin::Timeout->new({ deadline => $master_deadline });
--    my $err = $t->run(sub {
--      no strict "refs";
--      $methodname->($pms, @{$opts{args}});
--    });
--    if ($t->timed_out() && $master_deadline && time > $master_deadline) {
--      info("check: exceeded time limit in $methodname, skipping further tests");
--      $pms->{deadline_exceeded} = 1;
--    }
--    return;
--  }
-+  if (!defined &{$methodname} || $doing_user_rules) {
-
--  # use %nopts for named parameter-passing; it's more friendly to future-proof
--  # subclassing, since new parameters can be added without breaking third-party
--  # subclassed implementations of this plugin.
--  my %nopts = (
--    ruletype => $ruletype,
--    doing_user_rules => $doing_user_rules,
--    priority => $priority,
--    clean_priority => $clean_priority
--  );
-+    # use %nopts for named parameter-passing; it's more friendly
-+    # to future-proof subclassing, since new parameters can be added without
-+    # breaking third-party subclassed implementations of this plugin.
-+    my %nopts = (
-+      ruletype => $ruletype,
-+      doing_user_rules => $doing_user_rules,
-+      priority => $priority,
-+      clean_priority => $clean_priority
-+    );
-
--  # build up the eval string...
--  $self->{evalstr_methodname} = $methodname;
--  $self->{evalstr_chunk_current_methodname} = undef;
--  $self->{evalstr_chunk_methodnames} = [];
--  $self->{evalstr_chunk_prefix} = [];  # stack (array) of source code sections
--  $self->{evalstr} = ''; $self->{evalstr_l} = 0;
--  $self->{evalstr2} = '';
--  $self->begin_evalstr_chunk($pms);
-+    # build up the eval string...
-+    $self->{evalstr_methodname} = $methodname;
-+    $self->{evalstr_chunk_current_methodname} = undef;
-+    $self->{evalstr_chunk_methodnames} = [];
-+    $self->{evalstr_chunk_prefix} = []; # stack (array) of source code sections
-+    $self->{evalstr} = ''; $self->{evalstr_l} = 0;
-+    $self->{evalstr2} = '';
-+    $self->begin_evalstr_chunk($pms);
-
--  $self->push_evalstr_prefix($pms, '
--      # start_rules_plugin_code '.$ruletype.' '.$priority.'
--      my $scoresptr = $self->{conf}->{scores};
--  ');
--  if (defined $opts{pre_loop_body}) {
--    $opts{pre_loop_body}->($self, $pms, $conf, %nopts);
--  }
--  $self->add_evalstr($pms,
--                     $self->start_rules_plugin_code($ruletype, $priority) );
--  while (my($rulename, $test) = each %{$opts{testhash}->{$priority}}) {
--    $opts{loop_body}->($self, $pms, $conf, $rulename, $test, %nopts);
--  }
--  if (defined $opts{post_loop_body}) {
--    $opts{post_loop_body}->($self, $pms, $conf, %nopts);
--  }
-+    $self->push_evalstr_prefix($pms, '
-+        # start_rules_plugin_code '.$ruletype.' '.$priority.'
-+        my $scoresptr = $self->{conf}->{scores};
-+    ');
-+    if (defined $opts{pre_loop_body}) {
-+      $opts{pre_loop_body}->($self, $pms, $conf, %nopts);
-+    }
-+    $self->add_evalstr($pms,
-+                       $self->start_rules_plugin_code($ruletype, $priority) );
-+    while (my($rulename, $test) = each %{$opts{testhash}->{$priority}}) {
-+      $opts{loop_body}->($self, $pms, $conf, $rulename, $test, %nopts);
-+    }
-+    if (defined $opts{post_loop_body}) {
-+      $opts{post_loop_body}->($self, $pms, $conf, %nopts);
-+    }
-
--  $self->flush_evalstr($pms, 'run_generic_tests');
--  $self->free_ruleset_source($pms, $ruletype, $priority);
-+    $self->flush_evalstr($pms, 'run_generic_tests');
-+    $self->free_ruleset_source($pms, $ruletype, $priority);
-
--  # clear out a previous version of this method
--  undef &{$methodname};
-+    # clear out a previous version of this method
-+    undef &{$methodname};
-
--  # generate the loop that goes through each line...
--  my $evalstr = <<"EOT";
-+    # generate the loop that goes through each line...
-+    my $evalstr = <<"EOT";
-   {
-     package $package_name;
-
-@@ -373,41 +360,52 @@
-     sub $methodname {
- EOT
-
--  for my $chunk_methodname (@{$self->{evalstr_chunk_methodnames}}) {
--    $evalstr .= "      $chunk_methodname(\@_);\n";
--  }
-+    for my $chunk_methodname (@{$self->{evalstr_chunk_methodnames}}) {
-+      $evalstr .= "      $chunk_methodname(\@_);\n";
-+    }
-
--  $evalstr .= <<"EOT";
-+    $evalstr .= <<"EOT";
-     }
-
-     1;
-   }
- EOT
-
--  delete $self->{evalstr};   # free up some RAM before we eval()
--  delete $self->{evalstr2};
--  delete $self->{evalstr_methodname};
--  delete $self->{evalstr_chunk_current_methodname};
--  delete $self->{evalstr_chunk_methodnames};
--  delete $self->{evalstr_chunk_prefix};
-+    delete $self->{evalstr};   # free up some RAM before we eval()
-+    delete $self->{evalstr2};
-+    delete $self->{evalstr_methodname};
-+    delete $self->{evalstr_chunk_current_methodname};
-+    delete $self->{evalstr_chunk_methodnames};
-+    delete $self->{evalstr_chunk_prefix};
-
--  dbg("rules: run_generic_tests - compiling eval code: %s, priority %s",
--      $ruletype, $priority);
--# dbg("rules: eval code to compile: $evalstr");
--  my $eval_result;
--  { my $timer = $self->{main}->time_method('compile_gen');
--    $eval_result = eval($evalstr);
--  }
--  if (!$eval_result) {
--    my $eval_stat = $@ ne '' ? $@ : "errno=$!";  chomp $eval_stat;
--    warn "rules: failed to compile $ruletype tests, skipping:\n".
--         "\t($eval_stat)\n";
--    $pms->{rule_errors}++;
--  }
--  else {
-+    dbg("rules: run_generic_tests - compiling eval code: %s, priority %s",
-+        $ruletype, $priority);
-+  # dbg("rules: eval code to compile: $evalstr");
-+    my $eval_result;
-+    { my $timer = $self->{main}->time_method('compile_gen');
-+      $eval_result = eval($evalstr);
-+    }
-+    if (!$eval_result) {
-+      my $eval_stat = $@ ne '' ? $@ : "errno=$!";  chomp $eval_stat;
-+      warn "rules: failed to compile $ruletype tests, skipping:\n".
-+           "\t($eval_stat)\n";
-+      $pms->{rule_errors}++;
-+      return;
-+    }
-     dbg("rules: compiled $ruletype tests");
--    goto run_compiled_method;
-   }
-+
-+#run_compiled_method:
-+# dbg("rules: run_generic_tests - calling %s", $methodname);
-+  my $t = Mail::SpamAssassin::Timeout->new({ deadline => $master_deadline });
-+  my $err = $t->run(sub {
-+    no strict "refs";
-+    $methodname->($pms, @{$opts{args}});
-+  });
-+  if ($t->timed_out() && $master_deadline && time > $master_deadline) {
-+    info("check: exceeded time limit in $methodname, skipping further tests");
-+    $pms->{deadline_exceeded} = 1;
-+  }
- }
-
- sub begin_evalstr_chunk {
-Index: lib/Mail/SpamAssassin/Plugin/BodyEval.pm
-===================================================================
---- lib/Mail/SpamAssassin/Plugin/BodyEval.pm	(revision 943932)
-+++ lib/Mail/SpamAssassin/Plugin/BodyEval.pm	(revision 943933)
-@@ -119,7 +119,7 @@
-         }
-
- 	# If there are no words, mark if there's at least 1 image ...
--	if (keys %html == 0 && exists $pms->{html}{inside}{img}) {
-+	if (!%html && exists $pms->{html}{inside}{img}) {
- 	  # Use "\n" as the mark since it can't ever occur normally
- 	  $html{"\n"}=1;
- 	}
diff -ruN /usr/ports/japanese/p5-Mail-SpamAssassin/files/patch-bug6396 japanese/p5-Mail-SpamAssassin/files/patch-bug6396
--- /usr/ports/japanese/p5-Mail-SpamAssassin/files/patch-bug6396	2011-04-18 15:55:33.000000000 +0900
+++ japanese/p5-Mail-SpamAssassin/files/patch-bug6396	1970-01-01 09:00:00.000000000 +0900
@@ -1,13 +0,0 @@
-Index: lib/Mail/SpamAssassin/Plugin/MIMEEval.pm
-===================================================================
---- lib/Mail/SpamAssassin/Plugin/MIMEEval.pm	(revision 929342)
-+++ lib/Mail/SpamAssassin/Plugin/MIMEEval.pm	(revision 929343)
-@@ -498,7 +498,7 @@
-     # perhaps just limit to test, and image?
-     next if ($ctype eq 'application/ics');
-
--    my $cte = lc $p->get_header('content-transfer-encoding') || '';
-+    my $cte = lc($p->get_header('content-transfer-encoding') || '');
-     next if ($cte !~ /^base64$/);
-     foreach my $l ( @{$p->raw()} ) {
-       my $len = length $l;
diff -ruN /usr/ports/japanese/p5-Mail-SpamAssassin/files/patch-bug6624 japanese/p5-Mail-SpamAssassin/files/patch-bug6624
--- /usr/ports/japanese/p5-Mail-SpamAssassin/files/patch-bug6624	1970-01-01 09:00:00.000000000 +0900
+++ japanese/p5-Mail-SpamAssassin/files/patch-bug6624	2011-06-27 11:44:36.000000000 +0900
@@ -0,0 +1,88 @@
+--- lib/Mail/SpamAssassin/BayesStore/MySQL.pm	(revision 1138970)
++++ lib/Mail/SpamAssassin/BayesStore/MySQL.pm	(working copy)
+@@ -840,14 +840,28 @@
+       return 0;
+     }
+
++    # With ON DUPLICATE KEY UPDATE, the affected-rows value per row is 1 if
++    # the row is inserted as a new row and 2 if an existing row is updated.
++    #
++    # Due to a MySQL server bug a value of 3 can be seen.
++    # See: http://bugs.mysql.com/bug.php?id=46675
++    #   When executing the INSERT ... ON DUPLICATE KEY UPDATE statement
++    #   and checking the rows return count:
++    #   mysql_client_found_rows = 0: The second INSERT returns a row count
++    #                                of 2 in all MySQL versions.
++    #   mysql_client_found_rows = 1: The second INSERT returns this row count:
++    #     Before MySQL 5.1.20: 2
++    #     MySQL 5.1.20: undef on Mac OS X, 139775481 on Linux (garbage?)
++    #     MySQL 5.1.21 and up: 3
++    #
+     my $num_rows = $rc;
+
+     $sth->finish();
+
+-    if ($num_rows == 1 || $num_rows == 2) {
++    if ($num_rows == 1 || $num_rows == 2 || $num_rows == 3) {
+       my $token_count_update = '';
+
+-      $token_count_update = "token_count = token_count + 1," if ($num_rows == 1);
++      $token_count_update = "token_count = token_count + 1," if $num_rows == 1;
+       $sql = "UPDATE bayes_vars SET
+                      $token_count_update
+                      newest_token_age = GREATEST(newest_token_age, ?),
+@@ -872,7 +886,11 @@
+     }
+     else {
+       # $num_rows was not what we expected
+-      dbg("bayes: _put_token: Updated an unexpected number of rows.");
++      my $token_displ = $token;
++      $token_displ =~ s/(.)/sprintf('%02x',ord($1))/egs;
++      dbg("bayes: _put_token: Updated an unexpected number of rows: %s, ".
++          "id: %s, token (hex): %s",
++          $num_rows, $self->{_userid}, $token_displ);
+       $self->{_dbh}->rollback();
+       return 0;
+     }
+@@ -987,8 +1005,24 @@
+       else {
+ 	my $num_rows = $rc;
+
+-	$need_atime_update_p = 1 if ($num_rows == 1 || $num_rows == 2);
+-	$new_tokens++ if ($num_rows == 1);
++        # With ON DUPLICATE KEY UPDATE, the affected-rows value per row is 1 if
++        # the row is inserted as a new row and 2 if an existing row is updated.
++        # But see MySQL bug (as above): http://bugs.mysql.com/bug.php?id=46675
++
++        if ($num_rows == 1) {
++          $new_tokens++;
++          $need_atime_update_p = 1;
++        } elsif ($num_rows == 2 || $num_rows == 3) {
++          $need_atime_update_p = 1;
++        } else {
++          # $num_rows was not what we expected
++          my $token_displ = $token;
++          $token_displ =~ s/(.)/sprintf('%02x',ord($1))/egs;
++          dbg("bayes: _put_tokens: Updated an unexpected number of rows: %s, ".
++              "id: %s, token (hex): %s",
++              $num_rows, $self->{_userid}, $token_displ);
++          $error_p = 1;
++        }
+       }
+     }
+
+@@ -1026,10 +1060,10 @@
+       }
+     }
+     else {
+-      # $num_rows was not what we expected
+-      dbg("bayes: _put_tokens: Updated an unexpected number of rows.");
+-      $self->{_dbh}->rollback();
+-      return 0;
++      info("bayes: _put_tokens: no atime updates needed?  Num of tokens: %d",
++           scalar keys %{$tokens});
++#     $self->{_dbh}->rollback();
++#     return 0;
+     }
+   }
+
diff -ruN /usr/ports/japanese/p5-Mail-SpamAssassin/pkg-install japanese/p5-Mail-SpamAssassin/pkg-install
--- /usr/ports/japanese/p5-Mail-SpamAssassin/pkg-install	2010-08-24 08:19:34.000000000 +0900
+++ japanese/p5-Mail-SpamAssassin/pkg-install	2011-06-27 14:19:10.000000000 +0900
@@ -1,9 +1,7 @@
 #!/bin/sh
 PKG_PREFIX=${PKG_PREFIX:-/usr/local}
-USER=spamd
-GROUP=${USER}
-UID=58
-GID=${UID}
+USER=${USER:-spamd}
+GROUP=${GROUP:-spamd}
 HOME=/var/spool/${USER}

 if [ "$2" = "POST-INSTALL" ];then
@@ -32,33 +30,12 @@
                 echo "Please answer yes or no."
         done
 }
-    if ! pw groupshow "${GROUP}" 2>/dev/null 1>&2; then
-    	if pw groupadd ${GROUP} -g ${GID}; then
-    		echo "Added group \"${GROUP}\"."
-    	else
-    		echo "Adding group \"${GROUP}\" failed..."
-    		exit 1
-    	fi
-    fi
-
-    if ! pw usershow "${USER}" 2>/dev/null 1>&2; then
-    	if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
-    		-s "/sbin/nologin" -d "${HOME}" \
-    		-c "SpamAssassin user"; \
-    	then
-    		echo "Added user \"${USER}\"."
-    		mkdir ${HOME} && chown ${USER}:${GROUP} ${HOME}
-    	else
-    		echo "Adding user \"${USER}\" failed..."
-    		exit 1
-    	fi
-    fi
-
+
     # Create pid directory
-    mkdir /var/run/spamd 2> /dev/null && chown ${USER}:${GROUP} /var/run/spamd
+    install -d -o ${USER} -g ${GROUP} /var/run/spamd
     /usr/bin/su root -c "${PKG_PREFIX}/bin/spamassassin -x -L --lint"
-
-    if [ ${?} -eq 255 ];then
+
+    if [ ${?} -eq 9 ];then
         echo "***********************************************"
         echo "*__        ___    ____  _   _ ___ _   _  ____ *"
         echo "*\ \      / / \  |  _ \| \ | |_ _| \ | |/ ___|*"
@@ -82,7 +59,7 @@
     fi
        fi
     fi
-
+
     exit 0
 fi  # post-install

diff -ruN /usr/ports/japanese/p5-Mail-SpamAssassin/pkg-plist japanese/p5-Mail-SpamAssassin/pkg-plist
--- /usr/ports/japanese/p5-Mail-SpamAssassin/pkg-plist	2010-08-24 08:19:34.000000000 +0900
+++ japanese/p5-Mail-SpamAssassin/pkg-plist	2011-06-30 13:45:51.000000000 +0900
@@ -1,5 +1,4 @@
-@unexec %D/etc/rc.d/sa-spamd.sh stop > /dev/null 2>&1 || true
-@unexec %D/etc/rc.d/sa-spamd stop > /dev/null 2>&1 || true
+@stopdaemon sa-spamd
 bin/sa-awl
 bin/sa-check_spamd
 bin/sa-compile
@@ -159,4 +158,4 @@
 @dirrmtry %%SITE_PERL%%/Mail
 @dirrmtry etc/mail/spamassassin
 @dirrmtry etc/mail
-@dirrmtry /var/run/spamd
+@unexec rm -rf /var/run/spamd || true
--- p5-Mail-SpamAssassin_2.patch ends here ---

Chris Rees ããã¯æ¸ãã¾ãã (2011/07/28 16:38):
> Hi Takefu,
> 
> I'm afraid the patch is stale... Please would you rerun the patch against an up-to-date version of japanese/p5-Mail-SpamAssassin?
> 
> Chris
> 


--
Comment 7 Chris Rees freebsd_committer freebsd_triage 2011-07-28 18:34:43 UTC
Thanks. I'm testing it now.

We can count this as a maintainer timeout, so I'll commit it if it's ok.

Chris
Comment 8 Chris Rees freebsd_committer freebsd_triage 2011-08-10 20:18:47 UTC
State Changed
From-To: feedback->analyzed

Taken for Tinderbox run 
http://www.bayofrum.net/tb/index.php?action=describe_port&id=1086
Comment 9 dfilter service freebsd_committer freebsd_triage 2011-08-11 08:50:39 UTC
crees       2011-08-11 07:50:30 UTC

  FreeBSD ports repository

  Modified files:
    japanese/p5-Mail-SpamAssassin Makefile distinfo pkg-install 
                                  pkg-plist 
  Removed files:
    japanese/p5-Mail-SpamAssassin/files patch-DKIM.pm 
                                        patch-bug6392 
                                        patch-bug6396 
  Log:
  - Update to 3.3.2
  - Use USERS
  
  PR:             ports/158530
  Submitted by:   Takefu <takefu@airport.fm>
  
  Revision  Changes    Path
  1.25      +20 -14    ports/japanese/p5-Mail-SpamAssassin/Makefile
  1.7       +6 -6      ports/japanese/p5-Mail-SpamAssassin/distinfo
  1.2       +0 -66     ports/japanese/p5-Mail-SpamAssassin/files/patch-DKIM.pm (dead)
  1.2       +0 -225    ports/japanese/p5-Mail-SpamAssassin/files/patch-bug6392 (dead)
  1.2       +0 -13     ports/japanese/p5-Mail-SpamAssassin/files/patch-bug6396 (dead)
  1.6       +7 -30     ports/japanese/p5-Mail-SpamAssassin/pkg-install
  1.8       +2 -3      ports/japanese/p5-Mail-SpamAssassin/pkg-plist
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 10 Chris Rees freebsd_committer freebsd_triage 2011-08-11 08:50:52 UTC
State Changed
From-To: analyzed->closed

Committed. Thanks!
Comment 11 dfilter service freebsd_committer freebsd_triage 2011-08-11 11:00:32 UTC
crees       2011-08-11 09:59:52 UTC

  FreeBSD ports repository

  Modified files:
    japanese/p5-Mail-SpamAssassin Makefile distinfo pkg-plist 
  Log:
  To clarify, previous commit was approved by a maintainer timeout of
  5 weeks.
  
  PR:             ports/158530
  
  Revision  Changes    Path
  1.26      +0 -0      ports/japanese/p5-Mail-SpamAssassin/Makefile
  1.8       +0 -0      ports/japanese/p5-Mail-SpamAssassin/distinfo
  1.9       +0 -0      ports/japanese/p5-Mail-SpamAssassin/pkg-plist
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"