On Fri, Nov 11, 2005 at 10:29:08AM +0100, Jakob Schlyter wrote:
can I get some confirmations that this is tested by current dspam users?

 DSPAM 3.6.1 seems to work fine on i386 and amd64 and there are very few
changes between 3.6.0+patches from the previous port and 3.6.1.

 I got a report that multiple dependencies were not properly handled, due
to LIB_DEPENDS= usage instead of LIB_DEPENDS+=. This is fixed in the
attached diff.

diff -urN mail/dspam.orig/Makefile mail/dspam/Makefile
--- mail/dspam.orig/Makefile    Wed Oct 26 08:18:38 2005
+++ mail/dspam/Makefile Fri Nov 11 15:17:03 2005
@@ -2,7 +2,7 @@

COMMENT=        "anti-spam filter"

-VERSION=       3.6.0
+VERSION=       3.6.1
DISTNAME=       dspam-${VERSION}
CATEGORIES=     mail

@@ -40,7 +40,7 @@
EXAMPLESDIR=    ${PREFIX}/share/examples/dspam
DRIVER=

-FLAVORS=       sqlite3 sqlite mysql pgsql hash daemon clamav ldap
+FLAVORS=       sqlite3 sqlite mysql pgsql hash clamav ldap
FLAVOR?=        sqlite3

.if ${FLAVOR:L:Mmysql}
@@ -83,7 +83,7 @@
CONFIGURE_ARGS+=        --with-storage-driver=sqlite_drv \
                        --with-sqlite-includes=${LOCALBASE}/include \
                        --with-sqlite-libraries=${LOCALBASE}/lib
-LIB_DEPENDS=           sqlite::databases/sqlite
+LIB_DEPENDS+=          sqlite.8::databases/sqlite
DRIVER=                 sqlite
.endif

@@ -96,29 +96,23 @@
CONFIGURE_ARGS+=        --with-storage-driver=sqlite3_drv \
                        --with-sqlite-includes=${LOCALBASE}/include \
                        --with-sqlite-libraries=${LOCALBASE}/lib
-LIB_DEPENDS=           sqlite3::databases/sqlite3
+LIB_DEPENDS+=          sqlite3.8::databases/sqlite3
DRIVER=                 sqlite
.endif

.if ${FLAVOR:L:Mclamav}
CONFIGURE_ARGS+=        --enable-clamav
-LIB_DEPENDS=           clamav.1::security/clamav
+LIB_DEPENDS+=          clamav.1::security/clamav
.endif

.if ${FLAVOR:L:Mldap}
CONFIGURE_ARGS+=        --enable-ldap
-LIB_DEPENDS=           ldap_r.7,lber.7::databases/openldap
+LIB_DEPENDS+=          ldap_r.8,lber.8::databases/openldap
CONFIGURE_ENV=          CPPFLAGS="-I${DEPBASE}/include" \
                        LDFLAGS="-L${DEPBASE}/lib"
.endif

-.if ${FLAVOR:L:Mdaemon}
-.if ${FLAVOR:L:Msqlite3}
-BROKEN=                        daemon mode is currently incompatible with 
sqlite3
-.endif
-.if ${FLAVOR:L:Msqlite}
-BROKEN=                        daemon mode is currently incompatible with 
sqlite
-.endif
+.if empty(FLAVOR:L:Msqlite3) && empty(FLAVOR:L:Msqlite)
CONFIGURE_ARGS+=        --enable-daemon
.endif

diff -urN mail/dspam.orig/distinfo mail/dspam/distinfo
--- mail/dspam.orig/distinfo    Sat Nov  5 17:14:28 2005
+++ mail/dspam/distinfo Wed Nov  9 00:04:26 2005
@@ -1,4 +1,4 @@
-MD5 (dspam-3.6.0.tar.gz) = d9ee63a8cf67ea933d711b00851ce916
-RMD160 (dspam-3.6.0.tar.gz) = eb4b7ff0f260a12508b47d5141a9bf1a0cf49326
-SHA1 (dspam-3.6.0.tar.gz) = 19c0064902544bde90d0302b5d657782a4f2cc8f
-SIZE (dspam-3.6.0.tar.gz) = 732042
+MD5 (dspam-3.6.1.tar.gz) = 6aad568823f297852dff4989da332e22
+SHA1 (dspam-3.6.1.tar.gz) = 864cd85d44350c6b4d203cde40d025cf5015af82
+RMD160 (dspam-3.6.1.tar.gz) = d93f73ad87ea0061e3b2c3d4dc84578872bce74d
+SIZE (dspam-3.6.1.tar.gz) = 739389
diff -urN mail/dspam.orig/patches/patch-UPGRADING 
mail/dspam/patches/patch-UPGRADING
--- mail/dspam.orig/patches/patch-UPGRADING     Thu Jan  1 01:00:00 1970
+++ mail/dspam/patches/patch-UPGRADING  Tue Nov  8 23:45:02 2005
@@ -0,0 +1,16 @@
+$OpenBSD$
+--- UPGRADING.orig     Tue Oct 25 14:32:09 2005
++++ UPGRADING  Tue Nov  8 23:44:49 2005
+@@ -8,8 +8,10 @@ UPGRADING FROM < 3.6.1
+ + - For users of hash_drv: A cssconvert tool has been provided to convert all
+   v3.6.0 databases to the correct, 8-byte aligned format used in all newer
+- versions. Please run cssconvert on all of your .css databases before +- turning on your new version of dspam. ++ versions. ++ ++ The OpenBSD port of DSPAM 3.6.0 already used the correctly aligned format,
++  so that you don't need to run cssconvert before upgrading to 3.6.1 and 
later.
+ + UPGRADING FROM < 3.6.0
+ ----------------------
diff -urN mail/dspam.orig/patches/patch-configure 
mail/dspam/patches/patch-configure
--- mail/dspam.orig/patches/patch-configure     Wed Oct 26 08:18:38 2005
+++ mail/dspam/patches/patch-configure  Thu Jan  1 01:00:00 1970
@@ -1,12 +0,0 @@
-$OpenBSD: patch-configure,v 1.1 2005/10/26 06:18:38 jakob Exp $
---- configure.orig     Mon Oct 17 02:50:02 2005
-+++ configure  Tue Oct 18 18:02:03 2005
-@@ -20031,7 +20031,7 @@ fi
- done
- - --for ac_func in strsep
-+for ac_func in strsep strcasestr
- do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
- echo "$as_me:$LINENO: checking for $ac_func" >&5
diff -urN mail/dspam.orig/patches/patch-src_agent_shared_c 
mail/dspam/patches/patch-src_agent_shared_c
--- mail/dspam.orig/patches/patch-src_agent_shared_c    Wed Oct 26 08:18:38 2005
+++ mail/dspam/patches/patch-src_agent_shared_c Thu Jan  1 01:00:00 1970
@@ -1,18 +0,0 @@
-$OpenBSD: patch-src_agent_shared_c,v 1.1 2005/10/26 06:18:38 jakob Exp $
---- src/agent_shared.c.orig    Tue Oct 25 22:46:43 2005
-+++ src/agent_shared.c Tue Oct 25 22:47:02 2005
-@@ -1,4 +1,4 @@
--/* $Id: patch-src_agent_shared_c,v 1.1 2005/10/26 06:18:38 jakob Exp $ */
-+/* $Id: patch-src_agent_shared_c,v 1.1 2005/10/26 06:18:38 jakob Exp $ */
- - /*
-  DSPAM
-@@ -718,7 +718,7 @@ buffer * read_stdin(AGENT_CTX *ATX) {
-   }
- - if (_ds_match_attribute(agent_config, "DataSource", "document")) {
--    buffer_cat(msg, ".\n\n");
-+    buffer_cat(msg, ": \n\n");
-     body = 1;
-   }
- diff -urN mail/dspam.orig/patches/patch-src_auto-config_h_in mail/dspam/patches/patch-src_auto-config_h_in
--- mail/dspam.orig/patches/patch-src_auto-config_h_in  Wed Oct 26 08:18:38 2005
+++ mail/dspam/patches/patch-src_auto-config_h_in       Thu Jan  1 01:00:00 1970
@@ -1,13 +0,0 @@
-$OpenBSD: patch-src_auto-config_h_in,v 1.1 2005/10/26 06:18:38 jakob Exp $
---- src/auto-config.h.in.orig  Mon Oct 17 02:51:17 2005
-+++ src/auto-config.h.in       Tue Oct 18 18:08:00 2005
-@@ -86,6 +86,9 @@
- /* Define to 1 if you have the `strsep' function. */
- #undef HAVE_STRSEP
- -+/* Define to 1 if you have the `strcasestr' function. */
-+#undef HAVE_STRCASESTR
-+
- /* Define to 1 if you have the `strtok_r' function. */
- #undef HAVE_STRTOK_R
- diff -urN mail/dspam.orig/patches/patch-src_daemon_c mail/dspam/patches/patch-src_daemon_c
--- mail/dspam.orig/patches/patch-src_daemon_c  Wed Oct 26 08:18:38 2005
+++ mail/dspam/patches/patch-src_daemon_c       Thu Jan  1 01:00:00 1970
@@ -1,21 +0,0 @@
-$OpenBSD: patch-src_daemon_c,v 1.1 2005/10/26 06:18:38 jakob Exp $
---- src/daemon.c.orig  Tue Oct 25 22:46:43 2005
-+++ src/daemon.c       Tue Oct 25 22:47:02 2005
-@@ -1,4 +1,4 @@
--/* $Id: patch-src_daemon_c,v 1.1 2005/10/26 06:18:38 jakob Exp $ */
-+/* $Id: patch-src_daemon_c,v 1.1 2005/10/26 06:18:38 jakob Exp $ */
- - /*
-  DSPAM
-@@ -732,8 +732,9 @@ GETCMD:
-     /* Send a terminating '.' if --stdout in 'dspam' mode */
- - if (ATX->sockfd_output) {
--      if (send_socket(TTX, ".")<=0)
--        goto CLOSE;
-+      if (!(ATX->flags & DAF_SUMMARY))
-+        if (send_socket(TTX, ".")<=0)
-+          goto CLOSE;
- - /* Otherwise, produce standard delivery results */ - diff -urN mail/dspam.orig/patches/patch-src_decode_c mail/dspam/patches/patch-src_decode_c
--- mail/dspam.orig/patches/patch-src_decode_c  Wed Oct 26 08:18:38 2005
+++ mail/dspam/patches/patch-src_decode_c       Thu Jan  1 01:00:00 1970
@@ -1,63 +0,0 @@
-$OpenBSD: patch-src_decode_c,v 1.1 2005/10/26 06:18:38 jakob Exp $
---- src/decode.c.orig  Thu Oct 13 16:28:13 2005
-+++ src/decode.c       Tue Oct 25 22:47:02 2005
-@@ -1,4 +1,4 @@
--/* $Id: patch-src_decode_c,v 1.1 2005/10/26 06:18:38 jakob Exp $ */
-+/* $Id: patch-src_decode_c,v 1.1 2005/10/26 06:18:38 jakob Exp $ */
- - /*
-  DSPAM
-@@ -528,11 +528,12 @@ _ds_analyze_header (
- - if (!strcasecmp (header->heading, "Content-Type"))
-   {
-+    int len = strlen(header->data);
-     if (!strncasecmp (header->data, "text", 4)) {
-       block->media_type = MT_TEXT;
--      if (!strncasecmp (header->data + 5, "plain", 5))
-+      if (len >= 5 && !strncasecmp (header->data + 5, "plain", 5))
-         block->media_subtype = MST_PLAIN;
--      else if (!strncasecmp (header->data + 5, "html", 4))
-+      else if (len >= 5 && !strncasecmp (header->data + 5, "html", 4))
-         block->media_subtype = MST_HTML;
-       else
-         block->media_subtype = MST_OTHER;
-@@ -541,7 +542,7 @@ _ds_analyze_header (
-     else if (!strncasecmp (header->data, "application", 11))
-     {
-       block->media_type = MT_APPLICATION;
--      if (!strncasecmp (header->data + 12, "dspam-signature", 15))
-+      if (len >= 12 && !strncasecmp (header->data + 12, "dspam-signature", 
15))
-         block->media_subtype = MST_DSPAM_SIGNATURE;
-       else
-         block->media_subtype = MST_OTHER;
-@@ -550,9 +551,9 @@ _ds_analyze_header (
-     else if (!strncasecmp (header->data, "message", 7))
-     {
-       block->media_type = MT_MESSAGE;
--      if (!strncasecmp (header->data + 8, "rfc822", 6))
-+      if (len >= 8 && !strncasecmp (header->data + 8, "rfc822", 6))
-         block->media_subtype = MST_RFC822;
--      else if (!strncasecmp (header->data + 8, "inoculation", 11))
-+      else if (len >= 8 && !strncasecmp (header->data + 8, "inoculation", 11))
-         block->media_subtype = MST_INOCULATION;
-       else
-         block->media_subtype = MST_OTHER;
-@@ -563,13 +564,13 @@ _ds_analyze_header (
-       char boundary[128];
- - block->media_type = MT_MULTIPART;
--      if (!strncasecmp (header->data + 10, "mixed", 5))
-+      if (len >= 10 && !strncasecmp (header->data + 10, "mixed", 5))
-         block->media_subtype = MST_MIXED;
--      else if (!strncasecmp (header->data + 10, "alternative", 11))
-+      else if (len >= 10 && !strncasecmp (header->data + 10, "alternative", 
11))
-         block->media_subtype = MST_ALTERNATIVE;
--      else if (!strncasecmp (header->data + 10, "signed", 6))
-+      else if (len >= 10 && !strncasecmp (header->data + 10, "signed", 6))
-         block->media_subtype = MST_SIGNED;
--      else if (!strncasecmp (header->data + 10, "encrypted", 9))
-+      else if (len >= 10 && !strncasecmp (header->data + 10, "encrypted", 9))
-         block->media_subtype = MST_ENCRYPTED;
-       else
-         block->media_subtype = MST_OTHER;
diff -urN mail/dspam.orig/patches/patch-src_dspam_c 
mail/dspam/patches/patch-src_dspam_c
--- mail/dspam.orig/patches/patch-src_dspam_c   Wed Oct 26 08:18:38 2005
+++ mail/dspam/patches/patch-src_dspam_c        Tue Nov  8 16:15:31 2005
@@ -1,6 +1,6 @@
$OpenBSD: patch-src_dspam_c,v 1.1 2005/10/26 06:18:38 jakob Exp $
---- src/dspam.c.orig   Tue Oct  4 18:22:58 2005
-+++ src/dspam.c        Mon Oct 17 14:48:42 2005
+--- src/dspam.c.orig   Tue Oct 25 14:32:09 2005
++++ src/dspam.c        Tue Nov  8 16:11:16 2005
@@ -382,7 +382,7 @@ process_message (
       CTX->confidence = 1.0;
       STATUS("A virus was detected in the message contents");
@@ -50,7 +50,7 @@
   if (_ds_pref_val(ATX->PTX, "spamSubject")[0] != '\n' &&
       _ds_pref_val(ATX->PTX, "spamSubject")[0] != 0)
   {
-@@ -1572,7 +1572,7 @@ int process_users(AGENT_CTX *ATX, buffer
+@@ -1596,7 +1596,7 @@ int process_users(AGENT_CTX *ATX, buffer
     if (parse_message == NULL) {
       LOG(LOG_CRIT, ERR_MEM_ALLOC);
       presult->exitcode = ERC_PROCESS;
diff -urN mail/dspam.orig/patches/patch-src_hash_drv_h 
mail/dspam/patches/patch-src_hash_drv_h
--- mail/dspam.orig/patches/patch-src_hash_drv_h        Wed Oct 26 08:18:39 2005
+++ mail/dspam/patches/patch-src_hash_drv_h     Thu Jan  1 01:00:00 1970
@@ -1,17 +0,0 @@
-$OpenBSD: patch-src_hash_drv_h,v 1.1 2005/10/26 06:18:39 jakob Exp $
---- src/hash_drv.h.orig        Sat Oct  1 00:15:00 2005
-+++ src/hash_drv.h     Tue Oct 25 22:47:02 2005
-@@ -1,4 +1,4 @@
--/* $Id: patch-src_hash_drv_h,v 1.1 2005/10/26 06:18:39 jakob Exp $ */
-+/* $Id: patch-src_hash_drv_h,v 1.1 2005/10/26 06:18:39 jakob Exp $ */
- - /*
-  DSPAM
-@@ -39,6 +39,7 @@ typedef struct _hash_drv_header
- {
-   unsigned long hash_rec_max;
-   struct _ds_spam_totals totals;
-+  char padding[4]; /* Keep 8-byte alignment */
- } *hash_drv_header_t;
- - typedef struct _hash_drv_map
diff -urN mail/dspam.orig/patches/patch-src_libdspam_c 
mail/dspam/patches/patch-src_libdspam_c
--- mail/dspam.orig/patches/patch-src_libdspam_c        Wed Oct 26 08:18:39 2005
+++ mail/dspam/patches/patch-src_libdspam_c     Thu Jan  1 01:00:00 1970
@@ -1,46 +0,0 @@
-$OpenBSD: patch-src_libdspam_c,v 1.1 2005/10/26 06:18:39 jakob Exp $
---- src/libdspam.c.orig        Mon Oct 17 02:48:46 2005
-+++ src/libdspam.c     Mon Oct 17 14:48:42 2005
-@@ -594,9 +594,9 @@ dspam_process (DSPAM_CTX * CTX, const ch
- - if (CTX->class[0] == 0) {
-     if (CTX->result == DSR_ISSPAM)
--      strcpy(CTX->class, LANG_CLASS_SPAM);
-+      strlcpy(CTX->class, LANG_CLASS_SPAM, sizeof (CTX->class));
-     else if (CTX->result == DSR_ISINNOCENT)
--      strcpy(CTX->class, LANG_CLASS_INNOCENT);
-+      strlcpy(CTX->class, LANG_CLASS_INNOCENT, sizeof (CTX->class));
-   }
- - if (is_toe)
-@@ -768,9 +768,9 @@ _ds_operate (DSPAM_CTX * CTX, char *head
-       goto bail;
-     }
- -- strcpy(CTX->signature->data, headers);
--    strcat(CTX->signature->data, "\001");
--    strcat(CTX->signature->data, body);
-+    strlcpy(CTX->signature->data, headers, CTX->signature->length);
-+    strlcat(CTX->signature->data, "\001", CTX->signature->length);
-+    strlcat(CTX->signature->data, body, CTX->signature->length);
-   }
- - if (!diction)
-@@ -962,7 +962,7 @@ _ds_operate (DSPAM_CTX * CTX, char *head
-   if (CTX->flags & DSF_WHITELIST && do_whitelist) {
-     LOGDEBUG("auto-whitelisting this message");
-     CTX->result = DSR_ISINNOCENT;
--    strcpy(CTX->class, LANG_CLASS_WHITELISTED);
-+    strlcpy(CTX->class, LANG_CLASS_WHITELISTED, sizeof (CTX->class));
-   }
- - /* Update Totals */
-@@ -2282,7 +2282,7 @@ int _ds_instantiate_bnr(
-       previous_bnr_probs[i] = previous_bnr_probs[i+1];
- - previous_bnr_probs[BNR_SIZE-1] = _ds_round(ds_term->s.probability);
--    sprintf(bnr_token, "bnr.%c|", identifier);
-+    snprintf(bnr_token, sizeof (bnr_token), "bnr.%c|", identifier);
-     for(i=0;i<BNR_SIZE;i++) {
-       char x[6];
-       snprintf(x, 6, "%01.2f_", previous_bnr_probs[i]);
diff -urN mail/dspam.orig/patches/patch-src_util_c 
mail/dspam/patches/patch-src_util_c
--- mail/dspam.orig/patches/patch-src_util_c    Wed Oct 26 08:18:39 2005
+++ mail/dspam/patches/patch-src_util_c Tue Nov  8 16:15:32 2005
@@ -1,6 +1,6 @@
$OpenBSD: patch-src_util_c,v 1.1 2005/10/26 06:18:39 jakob Exp $
---- src/util.c.orig    Sat Oct  1 06:32:19 2005
-+++ src/util.c Mon Oct 17 14:48:42 2005
+--- src/util.c.orig    Wed Oct 26 19:39:32 2005
++++ src/util.c Tue Nov  8 16:13:59 2005
@@ -278,7 +278,7 @@ const char * _ds_userdir_path (char *pat
 #endif
@@ -19,23 +19,7 @@
 #endif
/* Use home/opt-in/ and home/opt-out/ to store opt files, instead of
-@@ -675,6 +675,7 @@ float _ds_round(float n) {
-   return (r/100.0);
- }
- -+#ifndef __HAVE_STRCASESTR__
- char *
- strcasestr(s, find)
-       const char *s, *find;
-@@ -695,6 +696,7 @@ strcasestr(s, find)
-       }
-       return ((char *)s);
- }
-+#endif
- - #ifndef HAVE_INET_NTOA_R
- /*
-@@ -746,6 +748,7 @@ inet_ntoa_r(struct in_addr in, char *buf
+@@ -748,6 +748,7 @@ inet_ntoa_r(struct in_addr in, char *buf
     return(NULL);
   }
diff -urN mail/dspam.orig/patches/patch-src_util_h mail/dspam/patches/patch-src_util_h
--- mail/dspam.orig/patches/patch-src_util_h    Wed Oct 26 08:18:39 2005
+++ mail/dspam/patches/patch-src_util_h Thu Jan  1 01:00:00 1970
@@ -1,13 +0,0 @@
-$OpenBSD: patch-src_util_h,v 1.1 2005/10/26 06:18:39 jakob Exp $
---- src/util.h.orig    Sat Oct  1 06:32:19 2005
-+++ src/util.h Tue Oct 18 18:04:58 2005
-@@ -40,7 +40,9 @@ void chomp   (char *string);
- char *        ltrim   (char *str);
- char *        rtrim   (char *str);
- int   lc      (char *buff, const char *string);
-+#ifndef __HAVE_STRCASESTR__
- char *  strcasestr (const char *, const char *);
-+#endif
- - #define ALLTRIM(str) ltrim(rtrim(str)) - diff -urN mail/dspam.orig/patches/patch-webui_cgi-bin_dspam_cgi mail/dspam/patches/patch-webui_cgi-bin_dspam_cgi
--- mail/dspam.orig/patches/patch-webui_cgi-bin_dspam_cgi       Wed Oct 26 
08:18:39 2005
+++ mail/dspam/patches/patch-webui_cgi-bin_dspam_cgi    Thu Jan  1 01:00:00 1970
@@ -1,14 +0,0 @@
-$OpenBSD: patch-webui_cgi-bin_dspam_cgi,v 1.1 2005/10/26 06:18:39 jakob Exp $
---- webui/cgi-bin/dspam.cgi.orig       Sun Oct 16 16:43:36 2005
-+++ webui/cgi-bin/dspam.cgi    Mon Oct 17 22:57:56 2005
-@@ -195,8 +195,8 @@ sub DisplayHistory {
-     }
-     close (LINES);
- -- $end = $all_lines - (($history_site-1) * $CONFIG{'HISTORY_PER_SITE'});
--    $begin = $end - $CONFIG{'HISTORY_PER_SITE'} + 1 ;
-+    $end = $all_lines - (($history_site-1) * $CONFIG{'HISTORY_PER_PAGE'});
-+    $begin = $end - $CONFIG{'HISTORY_PER_PAGE'} + 1 ;
- - if ($begin < 0) {
-       $begin = 1;
diff -urN mail/dspam.orig/pkg/DESCR mail/dspam/pkg/DESCR
--- mail/dspam.orig/pkg/DESCR   Wed Oct 26 08:18:39 2005
+++ mail/dspam/pkg/DESCR        Wed Nov  9 00:09:07 2005
@@ -9,11 +9,6 @@

Available flavors are:

-- daemon: add the ability to run dspam as multiple clients connecting to a
-central server. This flavor is required in order to use the --daemon and
---client command-line switches. However, the daemon mode is currently
-incompatible with sqlite.
-
- clamav: enable usage of the clam antivirus.

- ldap: include support for LDAP verification.
diff -urN mail/dspam.orig/pkg/PFRAG.hash mail/dspam/pkg/PFRAG.hash
--- mail/dspam.orig/pkg/PFRAG.hash      Wed Oct 26 08:18:39 2005
+++ mail/dspam/pkg/PFRAG.hash   Tue Nov  8 16:25:21 2005
@@ -1,4 +1,5 @@
@comment $OpenBSD: PFRAG.hash,v 1.1 2005/10/26 06:18:39 jakob Exp $
bin/cssclean
bin/csscompress
+bin/cssconvert
bin/cssstat

Reply via email to