From owner-freebsd-ports-bugs@FreeBSD.ORG Sun Apr 3 16:30:09 2005 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8A6DB16A4CE for ; Sun, 3 Apr 2005 16:30:09 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id B738743D48 for ; Sun, 3 Apr 2005 16:30:08 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j33GU8lr031951 for ; Sun, 3 Apr 2005 16:30:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j33GU8tY031950; Sun, 3 Apr 2005 16:30:08 GMT (envelope-from gnats) Resent-Date: Sun, 3 Apr 2005 16:30:08 GMT Resent-Message-Id: <200504031630.j33GU8tY031950@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, miniEleph Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E225216A4CE for ; Sun, 3 Apr 2005 16:25:14 +0000 (GMT) Received: from dnuc.polyn.kiae.su (dnuc.polyn.kiae.su [144.206.160.140]) by mx1.FreeBSD.org (Postfix) with ESMTP id DE80443D31 for ; Sun, 3 Apr 2005 16:25:13 +0000 (GMT) (envelope-from nyxo@dnuc.polyn.kiae.su) Received: from dnuc.polyn.kiae.su (localhost.polyn.kiae.su [127.0.0.1]) by dnuc.polyn.kiae.su (8.12.8/8.12.8) with ESMTP id j33GQcYG085661 for ; Sun, 3 Apr 2005 20:26:38 +0400 (MSD) (envelope-from nyxo@dnuc.polyn.kiae.su) Received: (from nyxo@localhost) by dnuc.polyn.kiae.su (8.12.8/8.12.8/Submit) id j33GQcNH085660; Sun, 3 Apr 2005 20:26:38 +0400 (MSD) (envelope-from nyxo) Message-Id: <200504031626.j33GQcNH085660@dnuc.polyn.kiae.su> Date: Sun, 3 Apr 2005 20:26:38 +0400 (MSD) From: miniEleph To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: ports/79508: New port: mail/smc-milter A non-context email filter X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: miniEleph List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Apr 2005 16:30:09 -0000 >Number: 79508 >Category: ports >Synopsis: New port: mail/smc-milter A non-context email filter >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun Apr 03 16:30:08 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Andrey E. Shevtsov >Release: FreeBSD 4.10-STABLE i386 >Organization: >Environment: System: FreeBSD dnuc.polyn.kiae.su 4.10-STABLE FreeBSD 4.10-STABLE #1: Fri Feb 18 16:41:31 MSK 2005 nyxo@dnuc.polyn.kiae.su:/usr/src/sys/compile/DNUC i386 >Description: 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/ >How-To-Repeat: >Fix: # 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= ports@FreeBSD.org 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} ${MASTERDIR}/files/smc-milter.sh \ X ${LOCALBASE}/etc/rc.d/smc-milter.sh X X.include 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 X #endif X X! #include X #include "regex.h" X X /* This is for multi byte string support. */ X--- 58,64 ---- X # include X #endif X X! #include 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 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 >Release-Note: >Audit-Trail: >Unformatted: