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>