View | Details | Raw Unified | Return to bug 136912
Collapse All | Expand All

(-)spamd/Makefile (-11 / +35 lines)
Lines 6-25 Link Here
6
#
6
#
7
7
8
PORTNAME=	spamd
8
PORTNAME=	spamd
9
PORTVERSION=	4.1.2
9
PORTVERSION=	4.5.0
10
PORTREVISION=	1
11
CATEGORIES=	mail
10
CATEGORIES=	mail
12
MASTER_SITES=	BERLIOS
11
MASTER_SITES=	BERLIOS
13
MASTER_SITE_SUBDIR=freebsdspamd
12
MASTER_SITE_SUBDIR=freebsdspamd
14
DISTNAME=	${PORTNAME}-${PORTVERSION}
13
DISTNAME=	${PORTNAME}-${PORTVERSION}
15
14
16
MAINTAINER=	samm@os2.kiev.ua
15
MAINTAINER=	ohauer@gmx.de
17
COMMENT=	Traps spammers with a very slow smtp-login and return 4xx error
16
COMMENT=	Traps spammers with a very slow smtp-login and return 4xx error
18
17
19
.include <bsd.port.pre.mk>
20
21
LOCAL_PFCTL=	/sbin/pfctl
22
23
USE_RC_SUBR?=	obspamd obspamlogd
18
USE_RC_SUBR?=	obspamd obspamlogd
24
19
25
SPAMDUSER?=	_spamd
20
SPAMDUSER?=	_spamd
Lines 31-41 Link Here
31
26
32
MAN5=		spamd.conf.5
27
MAN5=		spamd.conf.5
33
MAN8=		spamd.8 spamd-setup.8 spamdb.8 spamlogd.8
28
MAN8=		spamd.8 spamd-setup.8 spamdb.8 spamlogd.8
34
PORTDOCS=	ipfw-spamd.txt
29
PORTDOCS=	ipfw-spamd.txt spamdb.txt
35
30
36
PLIST_DIRS=	etc/spamd
31
PLIST_DIRS=	etc/spamd
37
PLIST_FILES=	libexec/spamd libexec/spamlogd \
32
PLIST_FILES=	libexec/spamlogd \
38
		sbin/spamd-setup sbin/spamdb \
33
		sbin/spamd-setup \
34
		sbin/spamdb \
39
		etc/spamd/spamd.conf.sample
35
		etc/spamd/spamd.conf.sample
40
36
41
CONFIG_DIR=		${PREFIX}/etc/spamd
37
CONFIG_DIR=		${PREFIX}/etc/spamd
Lines 47-52 Link Here
47
		SPAMDUID=${SPAMDUID} \
43
		SPAMDUID=${SPAMDUID} \
48
		SPAMDGID=${SPAMDGID}
44
		SPAMDGID=${SPAMDGID}
49
45
46
# If you are a CPANEL user the this option is for you!
47
# CPANEL sends periodic a 'kill -TERM spamd' to the SpamAssassin spamd, and
48
# this kills also the OpenBSD spamd daemon.
49
# With this option spamd will be installed as obspamd, and the rc script will
50
# be adjusted. Man page and pid file will not be renamed!
51
.if !defined(CPANEL)
52
PLIST_FILES+=	libexec/spamd
53
PLIST_SUB+=	SPAMDBIN=spamd
54
.else
55
PLIST_FILES+=	libexec/obspamd
56
PLIST_SUB+=	SPAMDBIN=obspamd
57
.endif
58
50
SUB_FILES=	pkg-install \
59
SUB_FILES=	pkg-install \
51
		pkg-deinstall \
60
		pkg-deinstall \
52
		pkg-message
61
		pkg-message
Lines 54-59 Link Here
54
SUB_LIST=	PREFIX=${PREFIX} \
63
SUB_LIST=	PREFIX=${PREFIX} \
55
		${PLIST_SUB}
64
		${PLIST_SUB}
56
65
66
pre-fetch:
67
	@${ECHO} ""
68
	@${ECHO} " **** UPGRADE WARNING:  SYNC PROTOCOL CHANGED ****"
69
	@${ECHO} " If you have spamd in distributed environment stop"
70
	@${ECHO} " sync between old (4.1.x) and new version"
71
	@${ECHO} " until every node is updated"
72
	@${ECHO} ""
73
	@read -p "Hit ^c now to stop, any key to continue: " -t 5 a || true
74
	@${ECHO} ""
75
57
pre-install:
76
pre-install:
58
	@${SH} ${PKGINSTALL} ${DISTNAME} PRE-INSTALL
77
	@${SH} ${PKGINSTALL} ${DISTNAME} PRE-INSTALL
59
78
Lines 61-67 Link Here
61
	@${CAT} ${PKGMESSAGE}
80
	@${CAT} ${PKGMESSAGE}
62
81
63
do-install:
82
do-install:
83
.if !defined(CPANEL)
64
	${INSTALL_PROGRAM} ${WRKSRC}/spamd/spamd ${PREFIX}/libexec
84
	${INSTALL_PROGRAM} ${WRKSRC}/spamd/spamd ${PREFIX}/libexec
85
.else
86
	${INSTALL_PROGRAM} ${WRKSRC}/spamd/spamd ${PREFIX}/libexec/obspamd
87
.endif
65
	${INSTALL_PROGRAM} ${WRKSRC}/spamlogd/spamlogd ${PREFIX}/libexec
88
	${INSTALL_PROGRAM} ${WRKSRC}/spamlogd/spamlogd ${PREFIX}/libexec
66
	${INSTALL_PROGRAM} ${WRKSRC}/spamd-setup/spamd-setup ${PREFIX}/sbin
89
	${INSTALL_PROGRAM} ${WRKSRC}/spamd-setup/spamd-setup ${PREFIX}/sbin
67
	${INSTALL_PROGRAM} ${WRKSRC}/spamdb/spamdb ${PREFIX}/sbin
90
	${INSTALL_PROGRAM} ${WRKSRC}/spamdb/spamdb ${PREFIX}/sbin
Lines 82-87 Link Here
82
.if !defined(NOPORTDOCS)
105
.if !defined(NOPORTDOCS)
83
	@${MKDIR} ${DOCSDIR}
106
	@${MKDIR} ${DOCSDIR}
84
	@${INSTALL_DATA} ${WRKSRC}/doc/ipfw-spamd.txt ${DOCSDIR}/
107
	@${INSTALL_DATA} ${WRKSRC}/doc/ipfw-spamd.txt ${DOCSDIR}/
108
	@${INSTALL_DATA} ${WRKSRC}/doc/spamdb.txt ${DOCSDIR}/
85
.endif
109
.endif
86
110
87
.include <bsd.port.post.mk>
111
.include <bsd.port.mk>
(-)spamd/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
MD5 (spamd-4.1.2.tar.gz) = 0a207e997840359bde85ec4039e0d6a8
1
MD5 (spamd-4.5.0.tar.gz) = ef501b144a8eadefc6971e53aef08f42
2
SHA256 (spamd-4.1.2.tar.gz) = 49defbee42fe30c5f218351cc664e11328799b9893abe4528a17594d3ec97231
2
SHA256 (spamd-4.5.0.tar.gz) = 52a8ae130b838b1b83a1025c5586ab78c6c4e364cd3089892858b83d4d62820f
3
SIZE (spamd-4.1.2.tar.gz) = 50199
3
SIZE (spamd-4.5.0.tar.gz) = 52127
(-)spamd/files/obspamd.in (-3 / +12 lines)
Lines 25-40 Link Here
25
name="obspamd"
25
name="obspamd"
26
rcvar=`set_rcvar`
26
rcvar=`set_rcvar`
27
27
28
command="%%PREFIX%%/libexec/spamd"
28
command="%%PREFIX%%/libexec/%%SPAMDBIN%%"
29
start_precmd="obspamd_precmd"
29
start_precmd="obspamd_precmd"
30
start_postcmd="obspamd_postcmd"
30
start_postcmd="obspamd_postcmd"
31
restart_postcmd="obspamd_postcmd"
31
restart_postcmd="obspamd_postcmd"
32
stop_postcmd="obspamd_cleanup"
32
pidfile="/var/run/spamd.pid"
33
pidfile="/var/run/spamd.pid"
33
34
34
obspamd_precmd()
35
obspamd_precmd()
35
{
36
{
36
	_rc=0
37
	_rc=0
37
	echo "${obspamd_flags}" | grep "\-b" 2>&1 > /dev/null
38
    # we need the white-space in the grep expr. to limit a failure
39
    # in parsing the flags, for example if someone
40
    # defined the word 'IP-based' in the banner.
41
	echo "${obspamd_flags}" | grep " \-b" 2>&1 > /dev/null
38
	if [ $? -eq 1 ]; then
42
	if [ $? -eq 1 ]; then
39
		/sbin/mount -p | grep 'fdescfs.*/dev/fd.*fdescfs.*rw' 2>&1 > /dev/null
43
		/sbin/mount -p | grep 'fdescfs.*/dev/fd.*fdescfs.*rw' 2>&1 > /dev/null
40
		_rc=${?}
44
		_rc=${?}
Lines 54-63 Link Here
54
{
58
{
55
	if [ -x %%PREFIX%%/sbin/spamd-setup ]; then
59
	if [ -x %%PREFIX%%/sbin/spamd-setup ]; then
56
		if [ -r %%PREFIX%%/etc/spamd/spamd.conf ]; then
60
		if [ -r %%PREFIX%%/etc/spamd/spamd.conf ]; then
57
			%%PREFIX%%/sbin/spamd-setup &
61
			%%PREFIX%%/sbin/spamd-setup -D
58
		fi
62
		fi
59
	fi
63
	fi
60
}
64
}
61
65
66
obspamd_cleanup()
67
{
68
	/bin/rm -f ${pidfile}
69
}
70
62
load_rc_config $name
71
load_rc_config $name
63
run_rc_command "$1"
72
run_rc_command "$1"
(-)spamd/files/obspamlogd.in (-1 / +8 lines)
Lines 26-32 Link Here
26
rcvar=`set_rcvar`
26
rcvar=`set_rcvar`
27
27
28
command="%%PREFIX%%/libexec/spamlogd"
28
command="%%PREFIX%%/libexec/spamlogd"
29
start_precmd="${name}_precmd"
29
start_precmd="obspamlogd_precmd"
30
stop_postcmd="obspamlogd_cleanup"
31
pidfile="/var/run/spamlogd.pid"
30
32
31
obspamlogd_precmd()
33
obspamlogd_precmd()
32
{
34
{
Lines 44-48 Link Here
44
	return ${_rc}
46
	return ${_rc}
45
}
47
}
46
48
49
obspamlogd_cleanup()
50
{
51
	/bin/rm -f ${pidfile}
52
}
53
47
load_rc_config $name
54
load_rc_config $name
48
run_rc_command "$1"
55
run_rc_command "$1"
(-)spamd/files/patch-makefile (-13 lines)
Lines 1-13 Link Here
1
--- spamlogd/Makefile.old	Mon Apr  2 01:33:46 2007
2
+++ spamlogd/Makefile	Sat Jun 23 15:29:03 2007
3
@@ -4,6 +4,10 @@
4
 SRCS=	spamlogd.c sync.c
5
 MAN=	spamlogd.8
6
 
7
+.if ${OSVERSION} < 601000
8
+SRCS+=	../spamd/strtonum.c
9
+.endif
10
+
11
 CFLAGS+= -Wall -Wstrict-prototypes -I${.CURDIR}/../spamd
12
 LDADD+= -lpcap -lcrypto -lmd
13
 DPADD+= ${LIBPCAP} ${LIBMD}
(-)spamd/files/patch-spamd__grey.c (-68 lines)
Lines 1-68 Link Here
1
--- spamd/grey.c.orig	2009-02-26 13:27:35.159368721 -0500
2
+++ spamd/grey.c	2009-02-26 13:31:07.469474893 -0500
3
@@ -376,7 +376,7 @@
4
 	static char buf[MAX_MAIL];
5
 	char *cp;
6
 
7
-	if (*addr == '<');
8
+	if (*addr == '<')
9
 		addr++;
10
 	(void) strlcpy(buf, addr, sizeof(buf));
11
 	cp = strrchr(buf, '>');
12
@@ -398,8 +398,11 @@
13
 	size_t len;
14
 	struct mail_addr *m;
15
 
16
-	while (!SLIST_EMPTY(&match_suffix))
17
+	while (!SLIST_EMPTY(&match_suffix)) {
18
+		m = SLIST_FIRST(&match_suffix);
19
 		SLIST_REMOVE_HEAD(&match_suffix, entry);
20
+		free(m);
21
+	}
22
 	if ((fp = fopen(alloweddomains_file, "r")) != NULL) {
23
 		while ((buf = fgetln(fp, &len))) {
24
 #ifdef __FreeBSD__
25
@@ -410,11 +413,11 @@
26
 				buf++;
27
 				len--;
28
 			}
29
+			if (len == 0)
30
+				continue;
31
 			/* jump over comments and blank lines */
32
 			if (*buf == '#' || *buf == '\n')
33
 				continue;
34
-			if (len == 0)
35
-				continue;
36
 #endif
37
 			if (buf[len-1] == '\n')
38
 				len--;
39
@@ -434,8 +437,11 @@
40
 	}
41
 	return;
42
 bad:
43
-	while (!SLIST_EMPTY(&match_suffix))
44
+	while (!SLIST_EMPTY(&match_suffix)) {
45
+		m = SLIST_FIRST(&match_suffix);
46
 		SLIST_REMOVE_HEAD(&match_suffix, entry);
47
+		free(m);
48
+	}
49
 }
50
 
51
 void
52
@@ -609,6 +615,7 @@
53
 		dbc->act = 0;
54
 		dbc->dsiz = 0;
55
 		SLIST_REMOVE_HEAD(&db_changes, entry);
56
+		free(dbc);
57
 
58
 	}
59
 	return(ret);
60
@@ -795,7 +802,7 @@
61
 
62
 	now = time(NULL);
63
 	/* expiry times have to be in the future */
64
-	expire = strtonum(expires, now, UINT_MAX, NULL);
65
+	expire = strtonum(expires, now, INT_MAX, NULL);
66
 	if (expire == 0)
67
 		return(-1);
68
 
(-)spamd/files/patch-spamlogd (-15 lines)
Lines 1-15 Link Here
1
--- spamlogd/spamlogd.c.orig	Sat Jun 23 15:28:14 2007
2
+++ spamlogd/spamlogd.c	Sat Jun 23 15:28:27 2007
3
@@ -158,10 +158,12 @@
4
 
5
 	pcap_freecode(&bpfp);
6
 
7
+#ifdef BIOCLOCK
8
 	if (ioctl(pcap_fileno(hpcap), BIOCLOCK) < 0) {
9
 		logmsg(LOG_ERR, "BIOCLOCK: %s", strerror(errno));
10
 		return (-1);
11
 	}
12
+#endif
13
 
14
 	return (0);
15
 }
(-)spamd/files/pkg-deinstall.in (-1 / +3 lines)
Lines 16-21 Link Here
16
  fi
16
  fi
17
17
18
  if [ -e "${SPAMDDIR}" ]; then
18
  if [ -e "${SPAMDDIR}" ]; then
19
    echo "You should manually remove the \"${SPAMDDIR}\" directory."
19
    if [ "${SPAMDDIR}" != "/var/empty" ]; then
20
       echo "You should manually remove the \"${SPAMDDIR}\" directory."
21
    fi
20
  fi
22
  fi
21
fi
23
fi
(-)spamd/files/pkg-install.in (-21 / +66 lines)
Lines 41-96 Link Here
41
   done
41
   done
42
}
42
}
43
43
44
check_db() {
45
    DB=/var/db/spamd
46
    if [ -f ${DB} ]; then
47
        OWN=`ls -l ${DB} | awk '{print $3}'`
48
        GRP=`ls -l ${DB} | awk '{print $4}'`
49
        if [ "x${OWN}" != "x${SPAMDUSER}" ]; then
50
            echo "change ${DB} owner to ${SPAMDUSER}"
51
            /usr/sbin/chown ${SPAMDUSER} ${DB}
52
        fi
53
        if [ "x${GRP}" != "x${SPAMDGROUP}" ]; then
54
            echo "change ${DB} group to ${SPAMDGROUP}"
55
            /usr/sbin/chown :${SPAMDGROUP} ${DB}
56
        fi
57
    fi
58
}
59
44
check_service() {
60
check_service() {
45
    local name number type comment
61
    local name number type comment
46
    
62
47
    name=$1
63
    name=$1
48
    number=$2
64
    number=$2
49
    type=$3
65
    type=$3
50
    comment=$4
66
    comment=$4
51
    
67
52
    FILE="/etc/services"
68
    FILE="/etc/services"
53
    # check
69
    # check
54
    OK=no
70
    OK=no
55
    HAS_SERVICE=no
71
    HAS_SERVICE=no
56
    COUNT=1
72
    COUNT=1
57
    for i in `grep $name $FILE `; do
73
    for i in `grep $name $FILE `; do
58
	if [ $COUNT = 1 ] && [ X"$i" = X"$name" ]; then
74
    if [ $COUNT = 1 ] && [ X"$i" = X"$name" ]; then
59
	    HAS_SERVICE=yes
75
        HAS_SERVICE=yes
60
	elif [ $COUNT = 2 ] && [ $HAS_SERVICE = yes ] && \
76
    elif [ $COUNT = 2 ] && [ $HAS_SERVICE = yes ] && \
61
		[ X"$i" = X"$number/$type" ]; then
77
        [ X"$i" = X"$number/$type" ]; then
62
	    OK=yes
78
        OK=yes
63
	    break
79
        break
64
	fi
80
    fi
65
	COUNT=`expr ${COUNT} + 1`
81
    COUNT=`expr ${COUNT} + 1`
66
    done
82
    done
67
    # add an entry for SERVICE to /etc/services
83
    # add an entry for SERVICE to /etc/services
68
    if [ $OK = no ]; then
84
    if [ $OK = no ]; then
69
	echo "This system has no entry for $name in ${FILE}"
85
    echo "This system has no entry for $name in ${FILE}"
70
	if yesno "Would you like to add it automatically?" y; then
86
    if yesno "Would you like to add it automatically?" y; then
71
	    mv ${FILE} ${FILE}.bak
87
        mv ${FILE} ${FILE}.bak
72
	    (grep -v $name ${FILE}.bak ; \
88
        (grep -v $name ${FILE}.bak ; \
73
		echo "$name	$number/$type	# $comment") \
89
        echo "$name 	$number/$type 	# $comment") \
74
		>> ${FILE}
90
        >> ${FILE}
75
	    rm ${FILE}.bak
91
        rm ${FILE}.bak
76
	else
92
    else
77
	    echo "Please add '$name $number/$type' into ${FILE}, and try again."
93
        echo "Please add '$name $number/$type' into ${FILE}, and try again."
78
	    return 1
94
        return 1
79
	fi
95
    fi
80
    fi
96
    fi
81
    return 0
97
    return 0
82
}
98
}
83
99
84
100
101
# this msg is for users installing not from source,
102
# - show msg about changed sync protocol
85
if [ "$2" = "PRE-INSTALL" ]; then
103
if [ "$2" = "PRE-INSTALL" ]; then
104
 echo "
105
106
    **** UPGRADE WARNING:  SYNC PROTOCOL CHANGED ****
107
108
    If you have spamd in distributed environment stop
109
    sync between old (4.1.x) and this new version
110
    until every node is updated
111
112
    read UPDATING in your PORTSDIR
113
114
    **** UPGRADE WARNING:  SYNC PROTOCOL CHANGED ****
115
"
116
    read -p "Hit ^c now to stop, any key to continue: " -t 5 a || true
117
    echo ""
118
    echo ""
119
fi
120
121
if [ "$2" = "PRE-INSTALL" ]; then
122
  check_dbown=0
86
  if /usr/sbin/pw group show "${SPAMDGROUP}" 2>&1 >/dev/null; then
123
  if /usr/sbin/pw group show "${SPAMDGROUP}" 2>&1 >/dev/null; then
87
    echo "You already have a \"${SPAMDGROUP}\" group, so I will use it."
124
    echo "You already have a \"${SPAMDGROUP}\" group, so I will use it."
125
    check_dbown=1
88
  else
126
  else
89
    echo "You need a \"${SPAMDGROUP}\" group."
127
    echo "You need a \"${SPAMDGROUP}\" group."
90
    if yesno "Would you like me to create it" "YES"; then
128
    if yesno "Would you like me to create it" "YES"; then
91
      /usr/sbin/pw groupadd "${SPAMDGROUP}" -g "${SPAMDGID}" -h - || \
129
      /usr/sbin/pw groupadd "${SPAMDGROUP}" -g "${SPAMDGID}" -h - || \
92
        /usr/sbin/pw groupadd "${SPAMDGROUP}" -h - || exit
130
        /usr/sbin/pw groupadd "${SPAMDGROUP}" -h - || exit
93
      echo "Done."
131
      echo "Done."
132
      check_dbown=1
94
    else
133
    else
95
      echo "Please create the \"${SPAMDGROUP}\" group manually and try again."
134
      echo "Please create the \"${SPAMDGROUP}\" group manually and try again."
96
      exit 1
135
      exit 1
Lines 99-104 Link Here
99
138
100
  if /usr/sbin/pw user show "${SPAMDUSER}" 2>&1 >/dev/null; then
139
  if /usr/sbin/pw user show "${SPAMDUSER}" 2>&1 >/dev/null; then
101
    echo "You already have a \"${SPAMDUSER}\" user, so I will use it."
140
    echo "You already have a \"${SPAMDUSER}\" user, so I will use it."
141
    check_dbown=1
102
  else
142
  else
103
    echo "You need a \"${SPAMDUSER}\" user."
143
    echo "You need a \"${SPAMDUSER}\" user."
104
    if yesno "Would you like me to create it" "YES"; then
144
    if yesno "Would you like me to create it" "YES"; then
Lines 106-117 Link Here
106
        -s /sbin/nologin -c "spamd pseudo-user" || \
146
        -s /sbin/nologin -c "spamd pseudo-user" || \
107
        /usr/sbin/pw useradd "${SPAMDUSER}" -g "${SPAMDGROUP}" -h - -d "${SPAMDDIR}" \
147
        /usr/sbin/pw useradd "${SPAMDUSER}" -g "${SPAMDGROUP}" -h - -d "${SPAMDDIR}" \
108
        -s /sbin/nologin -c "spamd pseudo-user" || exit
148
        -s /sbin/nologin -c "spamd pseudo-user" || exit
149
      check_dbown=1
109
    else
150
    else
110
      echo "Please create the \"${SPAMDUSER}\" user manually and try again."
151
      echo "Please create the \"${SPAMDUSER}\" user manually and try again."
111
      exit 1
152
      exit 1
112
    fi
153
    fi
113
  fi
154
  fi
114
155
156
  if [ ${check_dbown} -eq 1 ]; then
157
    check_db
158
  fi
159
115
  if ! check_service spamd 8025 tcp "spamd(8)"; then
160
  if ! check_service spamd 8025 tcp "spamd(8)"; then
116
    exit 1
161
    exit 1
117
  fi
162
  fi
(-)spamd/files/pkg-message.in (-16 / +15 lines)
Lines 20-42 Link Here
20
  rdr pass inet proto tcp from any to any \
20
  rdr pass inet proto tcp from any to any \
21
      port smtp -> 127.0.0.1 port spamd
21
      port smtp -> 127.0.0.1 port spamd
22
22
23
New features:
24
  - sync for spamdb is now implemented (parameter -Y)
25
    See %%PREFIX%%/%%DOCSDIR%%/ for usage manual.
26
  - spamdb and spamlogd whiteexp times can now adjusted
27
    with parameter -W
28
29
23
 !!!!!!!!!!!! --  I M P O T A N T  -  N O T E S  -- !!!!!!!!!!!!!!!!!
30
 !!!!!!!!!!!! --  I M P O T A N T  -  N O T E S  -- !!!!!!!!!!!!!!!!!
24
 !
31
25
 ! changes in Ver. 4.1.x:
32
  **** UPGRADE WARNING:  SYNC PROTOCOL CHANGED ****
26
 !  - UID/GID is reserved to: _spamd:_spamd
33
27
 !    check the owner of /var/db/spamd
34
    The sync protocol has changed for versions > 4.1.x
28
 !  - greylisting is now the default
35
29
 !  - paramer: -b is now blacklist (Ver. < 4.1.x it is bind address)
36
    If spamd is installed in distributed environment and sync is 
30
 !  - paramer: -l is now listen address
37
    enabled, stop sync at every node until they are updated.
31
 !  - spamdb: format is now HASH, helo/ehlo is also stored in db
38
  
32
 !    convert will be done at the first start of spamd
33
 !    if you have scripts that use spamdb review this scripts
34
 !  - config files: new location is %%PREFIX%%/etc/spamd
35
 !  - spamtrapp addresses: remove the surrounding '< >' signs
36
 !  - pfspamd.sh was renamed to the obspamd
37
 !  - IPFW support (beta) added to the sources.
38
 !    See %%PREFIX%%/%%DOCSDIR%%/spamd-ipfw.txt for usage manual.
39
 !
40
 !!!!!!!!!!!! --  I M P O T A N T  -  N O T E S  -- !!!!!!!!!!!!!!!!!
39
 !!!!!!!!!!!! --  I M P O T A N T  -  N O T E S  -- !!!!!!!!!!!!!!!!!
41
40
42
**********************************************************************
41
**********************************************************************

Return to bug 136912