Bug 79508 - New port: mail/smc-milter A non-context email filter
Summary: New port: mail/smc-milter A non-context email filter
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: Pav Lucistnik
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-04-03 17:30 UTC by miniEleph
Modified: 2005-04-06 09:49 UTC (History)
0 users

See Also:


Attachments
file.shar (11.07 KB, text/plain)
2005-04-03 17:30 UTC, miniEleph
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description miniEleph 2005-04-03 17:30:08 UTC
Sendmail Confirmation System (SMC) is an Sendmail milter plugin that is
designed to significantly reduce the amount of junk email you receive. It
uses dynamic local and DNS-based remote whitelists, blacklists, and an
original auto-confirmation system for unknown but legitimate senders. It
includes features for protecting recipients from dangerous attachments and
HTML includes. It uses a set of original algorithms, including "Check relay
by NS", which simulates a dynamic whitelisting technique, and "Check delays",
also known as "Greylisting".

WWW: http://milter.sourceforge.net/
Comment 1 Pav Lucistnik freebsd_committer freebsd_triage 2005-04-05 20:42:37 UTC
State Changed
From-To: open->feedback

This is useless.  All the tabs in Makefile and in patches got converted to 
spaces, patches don't apply. Please resubmit with tabs. 

PS Tip: ${MASTERDIR}/files is ${FILESDIR} and you install into ${PREFIX} 
not into ${LOCALBASE} 


Comment 2 Pav Lucistnik freebsd_committer freebsd_triage 2005-04-05 20:42:37 UTC
Responsible Changed
From-To: freebsd-ports-bugs->pav

Handle
Comment 3 miniEleph 2005-04-06 06:57:01 UTC
${MASTERDIR}/files changed to ${FILESDIR}
${LOCALBASE} changed to ${PREFIX} in post-install
all tabs as tabs not spaces
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	smc-milter
#	smc-milter/Makefile
#	smc-milter/distinfo
#	smc-milter/pkg-descr
#	smc-milter/pkg-message
#	smc-milter/pkg-plist
#	smc-milter/files
#	smc-milter/files/smc-milter.sh
#	smc-milter/files/patch-aa
#	smc-milter/files/patch-ab
#	smc-milter/files/patch-ac
#	smc-milter/files/patch-ad
#	smc-milter/files/patch-ae
#	smc-milter/files/patch-af
#
echo c - smc-milter
mkdir -p smc-milter > /dev/null 2>&1
echo x - smc-milter/Makefile
sed 's/^X//' >smc-milter/Makefile << 'END-of-smc-milter/Makefile'
X# New ports collection makefile for:   smc-milter
X# Date created:        30 March 2005
X# Whom:                Andrey E. Shevtsov
X#
X# $FreeBSD$
X#
X
XPORTNAME=	smc-milter
XPORTVERSION=	1.5
XCATEGORIES=	mail
XMASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR=	milter
X
XMAINTAINER=	nyxo@dnuc.polyn.kiae.su
XCOMMENT=	A non-context email filter
X
XBUILD_DEPENDS=  ${LOCALBASE}/lib/libbind_r.a:${PORTSDIR}/dns/bind84
XLIB_DEPENDS=    db-4.2.2:${PORTSDIR}/databases/db42
X
XUSE_GMAKE=	yes
XUSE_REINPLACE=	yes
X
XNOMAN=
X
Xpost-extract:
X	@${REINPLACE_CMD} -e 's|\/opt\/SMC|\/usr\/local\/etc\/smc|g ; \
X		s|aliases|mail\/aliases|g' \
X		${WRKSRC}/smc-milter.h
X
Xpost-install:
X	${INSTALL_SCRIPT} ${FILESDIR}/smc-milter.sh \
X		${PREFIX}/etc/rc.d/smc-milter.sh
X
X.include <bsd.port.mk>
END-of-smc-milter/Makefile
echo x - smc-milter/distinfo
sed 's/^X//' >smc-milter/distinfo << 'END-of-smc-milter/distinfo'
XMD5 (smc-milter-1.5.tar.gz) = d772a8f0d2d6cfccd50ea8668a4881d0
XSIZE (smc-milter-1.5.tar.gz) = 96274
END-of-smc-milter/distinfo
echo x - smc-milter/pkg-descr
sed 's/^X//' >smc-milter/pkg-descr << 'END-of-smc-milter/pkg-descr'
XSendmail Confirmation System (SMC) is an Sendmail milter plugin that is
Xdesigned to significantly reduce the amount of junk email you receive. It
Xuses dynamic local and DNS-based remote whitelists, blacklists, and an
Xoriginal auto-confirmation system for unknown but legitimate senders. It
Xincludes features for protecting recipients from dangerous attachments and
XHTML includes. It uses a set of original algorithms, including "Check relay
Xby NS", which simulates a dynamic whitelisting technique, and "Check delays",
Xalso known as "Greylisting".
X
XWWW: http://milter.sourceforge.net/
END-of-smc-milter/pkg-descr
echo x - smc-milter/pkg-message
sed 's/^X//' >smc-milter/pkg-message << 'END-of-smc-milter/pkg-message'
XThe start/stop script has been placed in $PREFIX/etc/rc.d/smc-milter.sh
XConfiguration files has been placed in $PREFIX/etc/smc/
X
XAdd this lines to your sendmail's .mc file:
X
Xdefine(`confMILTER_MACROS_CONNECT', `{client_addr}')dnl
XINPUT_MAIL_FILTER(`SMC-milter', `S=local:/var/run/smc-milter.sock, F=T, T=C:30m;S:10m;R:10m;E:30m')dnl
X
XThen generate new sendmail.cf, install it, start smc-milter and finally
Xrestart sendmail.
X
END-of-smc-milter/pkg-message
echo x - smc-milter/pkg-plist
sed 's/^X//' >smc-milter/pkg-plist << 'END-of-smc-milter/pkg-plist'
Xbin/smc-milter
Xetc/smc/smc-milter.conf
Xetc/smc/smc-milter.policy
Xetc/smc/smc-milter.users
X@dirrm etc/smc
Xetc/rc.d/smc-milter.sh
END-of-smc-milter/pkg-plist
echo c - smc-milter/files
mkdir -p smc-milter/files > /dev/null 2>&1
echo x - smc-milter/files/smc-milter.sh
sed 's/^X//' >smc-milter/files/smc-milter.sh << 'END-of-smc-milter/files/smc-milter.sh'
X#!/bin/sh
X
Xcase "$1" in
X	start)
X		/usr/local/bin/smc-milter
X		echo ' smc-milter'
X		;;
X	stop)
X		if [ -f /var/run/smc-milter.pid ]; then
X			kill `cat /var/run/smc-milter.pid`
X			echo ' smc-milter'
X		fi
X		;;
X	*)
X		echo ""
X		echo "Usage: `basename $0` { start | stop }"
X		echo ""
X		exit 64
X		;;
Xesac
END-of-smc-milter/files/smc-milter.sh
echo x - smc-milter/files/patch-aa
sed 's/^X//' >smc-milter/files/patch-aa << 'END-of-smc-milter/files/patch-aa'
X*** Makefile.orig	Mon Mar 14 08:27:09 2005
X--- Makefile	Sun Apr  3 17:28:21 2005
X***************
X*** 10,20 ****
X  # CFLAGS	= -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -I/usr/lib/bind/include
X  # LIBS		= /usr/lib/bind/lib/libbind_r.a -lmilter -pthread -lssl -ldb
X  # if glibc >= 2.2
X! CFLAGS		= -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT
X! LIBS		= -lmilter -pthread -lssl -ldb -lresolv
X  MILTER		= smc-milter
X! INSDIR		= /opt/SMC
X! CC		= gcc
X
X  all: milter
X
X--- 10,24 ----
X  # CFLAGS	= -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT -I/usr/lib/bind/include
X  # LIBS		= /usr/lib/bind/lib/libbind_r.a -lmilter -pthread -lssl -ldb
X  # if glibc >= 2.2
X! CFLAGS		+= -g -O2 -Wall -D_GNU_SOURCE -D_REENTRANT \
X! -I/usr/local/include/bind -I/usr/local/include/db42
X! LIBS		= -lmilter -pthread -lssl -L/usr/local/lib/db42 -ldb \
X! -L/usr/local/lib -lbind_r -lcrypto
X  MILTER		= smc-milter
X! BASEINSDIR	= /usr/local
X! CONFINSDIR	= $(BASEINSDIR)/etc/smc
X! BININSDIR	= $(BASEINSDIR)/bin
X! CC		?= gcc
X
X  all: milter
X
X***************
X*** 29,42 ****
X
X
X  install:
X! 	[ -d "$(INSDIR)" ] || mkdir $(INSDIR)
X  	if [ -n "$(MILTER)" ]; then \
X  		strip $(MILTER) ; \
X! 		install -m 755 $(MILTER) $(INSDIR) ; \
X  	fi
X! 	install -m 644 $(MILTER).conf $(INSDIR)
X! 	install -m 644 $(MILTER).policy $(INSDIR)
X! 	install -m 644 $(MILTER).users $(INSDIR)
X
X  remove:
X  	rm -f $(INSDIR)/$(MILTER)*
X--- 33,46 ----
X
X
X  install:
X! 	[ -d "$(CONFINSDIR)" ] || mkdir $(CONFINSDIR)
X  	if [ -n "$(MILTER)" ]; then \
X  		strip $(MILTER) ; \
X! 		install -m 755 $(MILTER) $(BININSDIR) ; \
X  	fi
X! 	install -m 644 $(MILTER).conf $(CONFINSDIR)
X! 	install -m 644 $(MILTER).policy $(CONFINSDIR)
X! 	install -m 644 $(MILTER).users $(CONFINSDIR)
X
X  remove:
X  	rm -f $(INSDIR)/$(MILTER)*
END-of-smc-milter/files/patch-aa
echo x - smc-milter/files/patch-ab
sed 's/^X//' >smc-milter/files/patch-ab << 'END-of-smc-milter/files/patch-ab'
X*** regex.c.orig	Thu Mar 10 06:10:48 2005
X--- regex.c	Wed Mar 23 17:51:06 2005
X***************
X*** 58,64 ****
X  # include <wctype.h>
X  #endif
X
X! #include <malloc.h>
X  #include "regex.h"
X
X  /* This is for multi byte string support.  */
X--- 58,64 ----
X  # include <wctype.h>
X  #endif
X
X! #include <stdlib.h>
X  #include "regex.h"
X
X  /* This is for multi byte string support.  */
X***************
X*** 148,159 ****
X--- 148,161 ----
X     even if config.h says that we can.  */
X  # undef REL_ALLOC
X
X+ #ifndef _STDLIB_H_
X  # if defined STDC_HEADERS || defined _LIBC
X  #  include <stdlib.h>
X  # else
X  char *malloc ();
X  char *realloc ();
X  # endif
X+ #endif /* _STDLIB_H_ */
X
X  /* When used in Emacs's lib-src, we need to get bzero and bcopy somehow.
X     If nothing else has been done, use the method below.  */
END-of-smc-milter/files/patch-ab
echo x - smc-milter/files/patch-ac
sed 's/^X//' >smc-milter/files/patch-ac << 'END-of-smc-milter/files/patch-ac'
X*** relay.c.orig	Thu Mar 10 06:23:13 2005
X--- relay.c	Thu Mar 24 11:23:49 2005
X***************
X*** 202,209 ****
X  		    return -1;
X  		}
X
X! 		if (!(gethostbyname_r(host_name, &host_buf, buffer, sizeof(buffer),
X! 		    &host, &ret))) {
X  		    while (*host->h_addr_list) {
X  			if (host_addr == *(uint32_t *)(*host->h_addr_list)) {
X  			    resolver_close(&res_local);
X--- 202,209 ----
X  		    return -1;
X  		}
X
X! 		host = gethostbyname_r(host_name, &host_buf, buffer, sizeof(buffer), &ret);
X! 		if (!ret) {
X  		    while (*host->h_addr_list) {
X  			if (host_addr == *(uint32_t *)(*host->h_addr_list)) {
X  			    resolver_close(&res_local);
END-of-smc-milter/files/patch-ac
echo x - smc-milter/files/patch-ad
sed 's/^X//' >smc-milter/files/patch-ad << 'END-of-smc-milter/files/patch-ad'
X*** smc-milter.c.orig	Thu Mar 10 06:10:48 2005
X--- smc-milter.c	Thu Mar 24 12:09:11 2005
X***************
X*** 65,70 ****
X--- 65,74 ----
X  #include "relay.h"
X  #include "smtp.h"
X
X+ #if !defined O_SYNC && defined O_FSYNC
X+ 	#define O_SYNC O_FSYNC
X+ #endif
X+
X  /* Static variables for config defaults, etc. */
X  static int  runmode   = 0;
X  static char *smfisock = NULL;
X***************
X*** 161,166 ****
X--- 165,191 ----
X  	"<(i?frame|object|embed|applet)[^>]*>",
X  	"\\son(\\w+)=[^> ]+", NULL
X  };
X+
X+ #ifndef strndup
X+ char *strndup(char const* s, size_t n)
X+ {
X+         void* voided = (void*)s;
X+         void* match;
X+ 	char *ret;
X+ 	size_t len;
X+
X+         if (!s || !n) return NULL;
X+ 	match = memchr(voided, 0, n);
X+         len =
X+                 match
X+                 ? (char*)match - s
X+                 : n+1;
X+         ret = (char*)malloc(len);
X+         memcpy(ret, s, len-1);
X+         ret[len] = '\0';
X+         return ret;
X+ }
X+ #endif
X
X  void
X  signal_handler (int sig) {
END-of-smc-milter/files/patch-ad
echo x - smc-milter/files/patch-ae
sed 's/^X//' >smc-milter/files/patch-ae << 'END-of-smc-milter/files/patch-ae'
X*** smtp.c.orig	Thu Mar 10 06:10:48 2005
X--- smtp.c	Thu Mar 24 11:38:42 2005
X***************
X*** 50,55 ****
X--- 50,59 ----
X  #define SMTP_CMD_PERM(x)	(500 <= (x) && (x) < 600)
X  #define SMTP_DATA_OK(x)		((x) == 354)
X
X+ #ifndef MSG_NOSIGNAL
X+ 	#define MSG_NOSIGNAL 0
X+ #endif
X+
X  typedef union {
X      HEADER hdr;
X      u_char buf[MAXPACKET];
X***************
X*** 326,333 ****
X  	int optval = 1;
X  	char buffer[8192];
X
X! 	if ((gethostbyname_r(mxhost, &host_buf, buffer, sizeof(buffer),
X! 	    &host, &ret))) return -1;
X
X  	memset(&address, 0, sizeof(struct sockaddr));
X  	address.sin_addr.s_addr = *(uint32_t *)host->h_addr_list[0];
X--- 330,338 ----
X  	int optval = 1;
X  	char buffer[8192];
X
X! 	host = gethostbyname_r(mxhost, &host_buf, buffer, sizeof(buffer), &ret);
X! 	if(ret)
X! 		return -1;
X
X  	memset(&address, 0, sizeof(struct sockaddr));
X  	address.sin_addr.s_addr = *(uint32_t *)host->h_addr_list[0];
END-of-smc-milter/files/patch-ae
echo x - smc-milter/files/patch-af
sed 's/^X//' >smc-milter/files/patch-af << 'END-of-smc-milter/files/patch-af'
X*** utils.c.orig	Thu Mar 10 06:10:48 2005
X--- utils.c	Thu Mar 24 11:40:56 2005
X***************
X*** 32,37 ****
X--- 32,41 ----
X  	#define MAXLINE	4096
X  #endif
X
X+ #if !defined O_SYNC && defined O_FSYNC
X+ 	#define O_SYNC O_FSYNC
X+ #endif
X+
X  typedef struct {
X  	char name[PATH_MAX+1];
X  	pthread_mutex_t lock;
END-of-smc-milter/files/patch-af
exit
Comment 4 Pav Lucistnik freebsd_committer freebsd_triage 2005-04-06 09:49:04 UTC
State Changed
From-To: feedback->closed

New port added, thank you!