From nyxo@dnuc.polyn.kiae.su  Sun Apr  3 16:25:15 2005
Return-Path: <nyxo@dnuc.polyn.kiae.su>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id E225216A4CE
	for <FreeBSD-gnats-submit@freebsd.org>; 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 <FreeBSD-gnats-submit@freebsd.org>; 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 <FreeBSD-gnats-submit@freebsd.org>; 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 <nyxo@dnuc.polyn.kiae.su>
Reply-To: miniEleph <nyxo@dnuc.polyn.kiae.su>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: New port: mail/smc-milter A non-context email filter
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         79508
>Category:       ports
>Synopsis:       New port: mail/smc-milter A non-context email filter
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pav
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Apr 03 16:30:08 GMT 2005
>Closed-Date:    Wed Apr 06 08:49:16 GMT 2005
>Last-Modified:  Wed Apr 06 08:49:16 GMT 2005
>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 <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
	


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->feedback 
State-Changed-By: pav 
State-Changed-When: Tue Apr 5 19:42:37 GMT 2005 
State-Changed-Why:  
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} 


Responsible-Changed-From-To: freebsd-ports-bugs->pav 
Responsible-Changed-By: pav 
Responsible-Changed-When: Tue Apr 5 19:42:37 GMT 2005 
Responsible-Changed-Why:  
Handle 

http://www.freebsd.org/cgi/query-pr.cgi?pr=79508 

From: "Andrew E. `miniEleph' Shevtsov" <nyxo@dnuc.polyn.kiae.su>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/79508: New port: mail/smc-milter A non-context email filter
Date: Wed, 6 Apr 2005 09:57:01 +0400 (MSD)

 ${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
 
State-Changed-From-To: feedback->closed 
State-Changed-By: pav 
State-Changed-When: Wed Apr 6 08:49:04 GMT 2005 
State-Changed-Why:  
New port added, thank you! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=79508 
>Unformatted:
