Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Oct 2007 12:17:16 +0300 (EEST)
From:      Anton Lysenok <bart@tapolsky.net.ua>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/116948: [NEW PORT] mail/smfsav: Sendmail Sender Address Validator
Message-ID:  <200710050917.l959HGfB059645@mail.midland.com.ua>
Resent-Message-ID: <200710050920.l959K2kJ028192@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         116948
>Category:       ports
>Synopsis:       [NEW PORT] mail/smfsav: Sendmail Sender Address Validator
>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:   Fri Oct 05 09:20:02 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Anton Lysenok
>Release:        FreeBSD 6.2-RELEASE-p5 i386
>Organization:
>Environment:
System: FreeBSD xxxx 6.2-RELEASE-p5 FreeBSD 6.2-RELEASE-p5 #0: Mon May 28 13:36:21 EEST 2007 xxxx:xxxx i386


	
>Description:
	
  It's a lightweight, fast and reliable Sendmail milter that implements
a real-time Sender e-Mail Address Verification technology. This technology
can stop some kinds of SPAM with a spoofed sender's e-Mail address.
  Also it implements a real-time Recipient e-Mail Address Verification
technology. It can be useful if your machine is a backup MX for the recipient's
domains or if your machine forwards all e-Mail messages as a relay host for your
domains to another internal or external e-Mail servers.
  It's a lite alternative for the spamilter, milter-sender and milter-ahead
milters.

WWW: http://smfs.sourceforge.net/

- Eugene Kurmanin
me@kurmanin.info

------------------------------
SOME COMMENTS FROM MANTAINER:
Bind package is required only for build, thats why I do not install bind to system. Port's Makefile
only builds bind and includes needed libraries and then cleans bind's work folder.
 
>How-To-Repeat:
	
>Fix:

	

--- smfsav.shar begins here ---
# 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:
#
#	smfsav
#	smfsav/Makefile
#	smfsav/distinfo
#	smfsav/files
#	smfsav/files/patch-smf-sav.conf
#	smfsav/files/patch-smf-sav.c
#	smfsav/files/patch-Makefile
#	smfsav/files/patch-init
#	smfsav/files/patch-install.sh
#	smfsav/files/patch-readme
#	smfsav/pkg-message
#	smfsav/pkg-descr
#	smfsav/pkg-deinstall
#
echo c - smfsav
mkdir -p smfsav > /dev/null 2>&1
echo x - smfsav/Makefile
sed 's/^X//' >smfsav/Makefile << 'END-of-smfsav/Makefile'
X# New ports collection makefile for:   smfsav
X# Date created:        05 October 2007
X# Whom:            Anton Lysenok <bart@tapolsky.net.ua>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	smfsav
XPORTVERSION=	1.4.0
XCATEGORIES=	mail
XMASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR=	smfs
XDISTNAME=	smf-sav-1.4.0
X
XMAINTAINER=	bart@tapolsky.net.ua
XCOMMENT=	Sendmail Sender Address Validator
X
XBUILD_DEPENDS=	${PORTSDIR}/dns/bind84/work/src/lib/libbind_r.a:${PORTSDIR}/dns/bind84:all \
X	${PORTSDIR}/dns/bind84/work/src/include/arpa/inet.h:${PORTSDIR}/dns/bind84:all \
X	${PORTSDIR}/dns/bind84/work/src/include/arpa/nameser.h:${PORTSDIR}/dns/bind84:all \
X	${PORTSDIR}/dns/bind84/work/src/include/netdb.h:${PORTSDIR}/dns/bind84:all \
X	${PORTSDIR}/dns/bind84/work/src/include/resolv.h:${PORTSDIR}/dns/bind84:all
X
XPLIST_FILES=	sbin/smfsav \
X	etc/smfsav.conf-dist
X
X.if !defined(NOPORTDOCS)
XPLIST_FILES+=	share/doc/${PORTNAME}/COPYING \
X	share/doc/${PORTNAME}/CHANGES \
X	share/doc/${PORTNAME}/README
XPLIST_DIRS=	share/doc/${PORTNAME}
X.endif
X
Xdo-install:
X	@${WRKSRC}/install.sh
X	@${ECHO}
X	${INSTALL_PROGRAM} ${WRKSRC}/smf-sav ${PREFIX}/sbin/smfsav
X	${INSTALL_DATA} ${WRKSRC}/smf-sav.conf ${PREFIX}/etc/smfsav.conf-dist
X	${INSTALL_SCRIPT} ${WRKSRC}/init/smfsav.freebsd ${PREFIX}/etc/rc.d/smfsav
X	${MKDIR} /var/run/smfsav
X	${CHOWN} smfsav:smfsav /var/run/smfsav
X
Xpost-install:
X.if !defined(NOPORTDOCS)
X	${MKDIR} ${DOCSDIR}
X	${INSTALL_DATA} ${WRKSRC}/COPYING ${DOCSDIR}/COPYING
X	${INSTALL_DATA} ${WRKSRC}/ChangeLog ${DOCSDIR}/CHANGES
X	${INSTALL_DATA} ${WRKSRC}/readme ${DOCSDIR}/README
X.endif
X
X	@${CAT} ${PKGMESSAGE}
X
X.include <bsd.port.mk>
END-of-smfsav/Makefile
echo x - smfsav/distinfo
sed 's/^X//' >smfsav/distinfo << 'END-of-smfsav/distinfo'
XMD5 (smf-sav-1.4.0.tar.gz) = 7f3d0b66a2b940c86b47e94afe5f96a2
XSHA256 (smf-sav-1.4.0.tar.gz) = 77a28d012330581b5ecaf126a153f049731c399e294aab0ded53c1b0abab68cc
XSIZE (smf-sav-1.4.0.tar.gz) = 21968
END-of-smfsav/distinfo
echo c - smfsav/files
mkdir -p smfsav/files > /dev/null 2>&1
echo x - smfsav/files/patch-smf-sav.conf
sed 's/^X//' >smfsav/files/patch-smf-sav.conf << 'END-of-smfsav/files/patch-smf-sav.conf'
X--- smf-sav.conf.orig	Wed Oct 25 23:15:10 2006
X+++ smf-sav.conf	Fri Oct  5 10:33:30 2007
X@@ -1,4 +1,4 @@
X-# /etc/mail/smfs/smf-sav.conf
X+# /usr/local/etc/smfsav.conf
X #
X # smf-sav configuration file v1.4.0 (it's read at start)
X #
X@@ -103,9 +103,9 @@
X 
X # Socket used to communicate with a Sendmail daemon
X #
X-# Default: unix:/var/run/smfs/smf-sav.sock
X+# Default: unix:/var/run/smfsav/smfsav.sock
X #
X-#Socket		unix:/var/run/smfs/smf-sav.sock
X+#Socket		unix:/var/run/smfsav/smfsav.sock
X 
X # Facility for logging via a Syslog daemon
X #
END-of-smfsav/files/patch-smf-sav.conf
echo x - smfsav/files/patch-smf-sav.c
sed 's/^X//' >smfsav/files/patch-smf-sav.c << 'END-of-smfsav/files/patch-smf-sav.c'
X--- smf-sav.c.orig	Wed Oct 25 23:15:10 2006
X+++ smf-sav.c	Wed Aug 29 15:54:13 2007
X@@ -20,11 +20,7 @@
X #endif
X 
X #include <arpa/inet.h>
X-#if __linux__ || __sun__
X #include <arpa/nameser.h>
X-#else
X-#include <bind/arpa/nameser.h>
X-#endif
X #include <ctype.h>
X #include <errno.h>
X #include <fcntl.h>
X@@ -33,20 +29,12 @@
X #endif
X #include <grp.h>
X #include <libmilter/mfapi.h>
X-#if __linux__ || __sun__
X #include <netdb.h>
X-#else
X-#include <bind/netdb.h>
X-#endif
X #include <netinet/in.h>
X #include <pthread.h>
X #include <pwd.h>
X #include <regex.h>
X-#if __linux__ || __sun__
X #include <resolv.h>
X-#else
X-#include <bind/resolv.h>
X-#endif
X #include <signal.h>
X #include <stdio.h>
X #include <stdlib.h>
X@@ -68,7 +56,7 @@
X #define hash_size(x)		((unsigned long) 1 << x)
X #define hash_mask(x)		(hash_size(x) - 1)
X 
X-#define CONFIG_FILE		"/etc/mail/smfs/smf-sav.conf"
X+#define CONFIG_FILE		"/usr/local/etc/smfsav.conf"
X #define PUBLIC_NAME		"yourhost.yourdomain.tld"
X #define SAFE_CALLBACK		"postmaster@yourdomain.tld"
X #define SYSLOG_FACILITY		LOG_MAIL
X@@ -81,9 +69,9 @@
X #define TO_PASS_TTL		3600
X #define TO_TEMPFAIL_TTL		300
X #define TO_FAIL_TTL		3600
X-#define WORK_SPACE		"/var/run/smfs"
X-#define OCONN			"unix:" WORK_SPACE "/smf-sav.sock"
X-#define USER			"smfs"
X+#define WORK_SPACE		"/var/run/smfsav"
X+#define OCONN			"unix:" WORK_SPACE "/smfsav.sock"
X+#define USER			"smfsav"
X 
X #define DNS_RETRANS		7
X #define DNS_RETRY		4
END-of-smfsav/files/patch-smf-sav.c
echo x - smfsav/files/patch-Makefile
sed 's/^X//' >smfsav/files/patch-Makefile << 'END-of-smfsav/files/patch-Makefile'
X--- Makefile.orig	Wed Oct 25 23:15:10 2006
X+++ Makefile	Tue Aug 28 14:16:07 2007
X@@ -1,17 +1,17 @@
X CC = gcc
X PREFIX = /usr/local
X SBINDIR = $(PREFIX)/sbin
X-DATADIR = /var/run/smfs
X-CONFDIR = /etc/mail/smfs
X-USER = smfs
X-GROUP = smfs
X-CFLAGS = -O2 -D_REENTRANT -fomit-frame-pointer -I/usr/local/include
X+DATADIR = /var/run/smfsav
X+CONFDIR = $(PREFIX)/etc
X+USER = smfsav
X+GROUP = smfsav
X+CFLAGS = -O2 -D_REENTRANT -fomit-frame-pointer -I/usr/ports/dns/bind84/work/src/include
X 
X # Linux
X-LDFLAGS = -lmilter -lpthread -lresolv
X+#LDFLAGS = -lmilter -lpthread -lresolv
X 
X # FreeBSD (BIND v8 is required)
X-#LDFLAGS = -lmilter -pthread -L/usr/local/lib -lbind_r
X+LDFLAGS = -lmilter -pthread -L/usr/ports/dns/bind84/work/src/lib -lbind_r
X 
X # Solaris
X #LDFLAGS = -lmilter -lpthread -lsocket -lnsl -lresolv
X@@ -30,20 +30,3 @@
X 
X clean:
X 	rm -f smf-sav.o smf-sav
X-
X-install:
X-	@./install.sh
X-	@cp -f -p smf-sav $(SBINDIR)
X-	@if test ! -d $(DATADIR); then \
X-	mkdir -m 700 $(DATADIR); \
X-	chown $(USER):$(GROUP) $(DATADIR); \
X-	fi
X-	@if test ! -d $(CONFDIR); then \
X-	mkdir -m 755 $(CONFDIR); \
X-	fi
X-	@if test ! -f $(CONFDIR)/smf-sav.conf; then \
X-	cp -p smf-sav.conf $(CONFDIR)/smf-sav.conf; \
X-	else \
X-	cp -p smf-sav.conf $(CONFDIR)/smf-sav.conf.new; \
X-	fi
X-	@echo Please, inspect and edit the $(CONFDIR)/smf-sav.conf file.
END-of-smfsav/files/patch-Makefile
echo x - smfsav/files/patch-init
sed 's/^X//' >smfsav/files/patch-init << 'END-of-smfsav/files/patch-init'
X--- init/smfsav.freebsd.orig	Wed Oct 25 23:15:17 2006
X+++ init/smfsav.freebsd	Fri Oct  5 10:27:36 2007
X@@ -1,12 +1,12 @@
X #!/bin/sh
X 
X-# PROVIDE: smf-sav
X+# PROVIDE: smfsav
X # REQUIRE: NETWORKING
X # BEFORE: sendmail
X 
X # Written for FreeBSD.
X #
X-# Copy this file into /etc/rc.d as /etc/rc.d/smfsav
X+# Copy this file into /usr/local/etc/rc.d as /usr/local/etc/rc.d/smfsav
X # Add this line to /etc/rc.conf:
X #
X # smfsav_enable="YES"
X@@ -15,7 +15,7 @@
X 
X name="smfsav"
X rcvar=`set_rcvar`
X-command="/usr/local/sbin/smf-sav"
X+command="/usr/local/sbin/smfsav"
X 
X load_rc_config ${name}
X run_rc_command "$1"
END-of-smfsav/files/patch-init
echo x - smfsav/files/patch-install.sh
sed 's/^X//' >smfsav/files/patch-install.sh << 'END-of-smfsav/files/patch-install.sh'
X--- install.sh.orig	Wed Oct 25 23:15:10 2006
X+++ install.sh	Tue Aug 28 12:13:43 2007
X@@ -1,7 +1,7 @@
X #!/bin/sh
X 
X-USER=smfs
X-GROUP=smfs
X+USER=smfsav
X+GROUP=smfsav
X UNAME=`uname`
X PATH=$PATH:/sbin:/bin:/usr/sbin:/usr/bin
X 
END-of-smfsav/files/patch-install.sh
echo x - smfsav/files/patch-readme
sed 's/^X//' >smfsav/files/patch-readme << 'END-of-smfsav/files/patch-readme'
X--- readme.orig	Wed Oct 25 23:15:10 2006
X+++ readme	Wed Aug 29 16:07:27 2007
X@@ -38,18 +38,18 @@
X make
X make install
X 
X-  Inspect and edit the /etc/mail/smfs/smf-sav.conf file.
X+  Inspect and edit the /usr/local/etc/smfsav.conf file.
X 
X-/usr/local/sbin/smf-sav
X+/usr/local/sbin/smfsav
X or
X-/usr/local/sbin/smf-sav -c /etc/mail/smfs/smf-sav.conf
X+/usr/local/sbin/smfsav -c /usr/local/etc/smfsav.conf
X 
X   Add this milter to start-up scripts before starting a Sendmail daemon.
X Look at the contributed samples of start-up scripts.
X 
X   Add these lines to your Sendmail configuration file (usually sendmail.mc):
X define(`confMILTER_MACROS_HELO', confMILTER_MACROS_HELO`, {verify}')dnl
X-INPUT_MAIL_FILTER(`smf-sav', `S=unix:/var/run/smfs/smf-sav.sock, T=S:30s;R:4m')dnl
X+INPUT_MAIL_FILTER(`smf-sav', `S=unix:/var/run/smfsav/smfsav.sock, T=S:30s;R:4m')dnl
X 
X IMPORTANT: make sure that /var/run is not a group writable directory! If so,
X or chmod 755 /var/run, or if it's impossible switch to another directory.
END-of-smfsav/files/patch-readme
echo x - smfsav/pkg-message
sed 's/^X//' >smfsav/pkg-message << 'END-of-smfsav/pkg-message'
X
X=====================================================================================
X1. Inspect and edit the /usr/local/etc/smfsav.conf file
X2. Add these lines to your Sendmail configuration file (usually sendmail.mc):
X    define(`confMILTER_MACROS_HELO', confMILTER_MACROS_HELO`, {verify}')dnl
X    INPUT_MAIL_FILTER(`smfsav', `S=unix:/var/run/smfsav/smfsav.sock, T=S:30s;R:4m')dnl
X3. Put line smfsav_enable="YES" to /etc/rc.conf file
X4. Run /usr/local/etc/rc.d/smfsav start
X=====================================================================================
END-of-smfsav/pkg-message
echo x - smfsav/pkg-descr
sed 's/^X//' >smfsav/pkg-descr << 'END-of-smfsav/pkg-descr'
X  It's a lightweight, fast and reliable Sendmail milter that implements
Xa real-time Sender e-Mail Address Verification technology. This technology
Xcan stop some kinds of SPAM with a spoofed sender's e-Mail address.
X  Also it implements a real-time Recipient e-Mail Address Verification
Xtechnology. It can be useful if your machine is a backup MX for the recipient's
Xdomains or if your machine forwards all e-Mail messages as a relay host for your
Xdomains to another internal or external e-Mail servers.
X  It's a lite alternative for the spamilter, milter-sender and milter-ahead
Xmilters.
X
XWWW: http://smfs.sourceforge.net/
X
X- Eugene Kurmanin
Xme@kurmanin.info
END-of-smfsav/pkg-descr
echo x - smfsav/pkg-deinstall
sed 's/^X//' >smfsav/pkg-deinstall << 'END-of-smfsav/pkg-deinstall'
X#!/bin/sh
X
Xif [ "$2" = "POST-DEINSTALL" ]; then
X    if test -f /usr/local/etc/rc.d/smfsav; then
X	echo "[*] Removing init script"
X	rm /usr/local/etc/rc.d/smfsav
X    fi
X
X    if /usr/sbin/pw group show "smfsav" 2>&1 >/dev/null; then
X	echo "[*] Removing group \"smfsav\""
X	/usr/sbin/pw groupdel "smfsav"
X    fi
X
X    if /usr/sbin/pw user show "smfsav" 2>&1 >/dev/null; then
X	echo "[*] Removing user \"smfsav\""
X	/usr/sbin/pw userdel "smfsav"
X    fi
X
X    if [ -d /var/run/smfsav ]; then
X	echo "[*] Removing directory \"/var/run/smfsav\""
X	rmdir /var/run/smfsav
X    fi
X
Xfi
END-of-smfsav/pkg-deinstall
exit
--- smfsav.shar ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200710050917.l959HGfB059645>