ports/146435: [PATCH] mail/mimedefang - Update to 2.68 and a few additional port fixes

Marko Njezic mrmax063 at maxempire.com
Sun May 9 17:50:05 UTC 2010


>Number:         146435
>Category:       ports
>Synopsis:       [PATCH] mail/mimedefang - Update to 2.68 and a few additional port fixes
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sun May 09 17:50:04 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Marko Njezic
>Release:        8.0-RELEASE-p2
>Organization:
MAX Interactive corp.
>Environment:
FreeBSD vmbsd 8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 #0: Tue Jan  5 16:02:27 UTC 2010     root at i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386
>Description:
I'm sending a patch for mimedefang port, which does the following:

- Updates port to recently released mimedefang version 2.68.
- Fixes default clamd socket location, which was being set by previous port to the wrong location (missing ".sock" suffix).
- Renames init script from "mimedefang.sh-dist" to "mimedefang" in order to be consistent with other rc scripts.
- Fixes restart option in init script, which so far didn't work properly, because it takes some time for libmilter to remove socket after stopping, thus preventing the new socket from being created. This is fixed by adding new restart_cmd function that waits between stop / start sequence.
- Fixes wrong group ownership on mimedefang's spool and quarantine directories, which is set to mailnull:wheel if mimedefang is installed directly from port. I've modified port's makefile to properly chgrp those directories. This doesn't happen if mimedefang is installed from package, because in that case pkg-install script will set ownership to mailnull:mailnull.
- Modifies the init script, so that it's able to change mimedefangs milter's socket file mode after starting (this makes using mimedefang from postfix much easier, you only need to add postfix's user to mailnull group and set socket mode to 660). By default, mimedefang (or more precisely libmilter) will set socket mode respecting umask, which is set to 027 in mimedefang, resulting in 777-027=750 permissions on socket, which are useless because it's not group writable. Modified init script allows users to choose socket mode to their own liking (modifications are based on clamav's milter init script).
>How-To-Repeat:
N/A
>Fix:
Apply the suggested patch.

Patch attached with submission follows:

diff -Naur mimedefang.original/Makefile mimedefang/Makefile
--- mimedefang.original/Makefile	2010-01-27 14:05:26.000000000 +0100
+++ mimedefang/Makefile	2010-05-09 17:22:58.000000000 +0200
@@ -6,8 +6,7 @@
 #
 
 PORTNAME=	mimedefang
-PORTVERSION=	2.67
-PORTREVISION=	1
+PORTVERSION=	2.68
 CATEGORIES=	mail
 MASTER_SITES=	http://www.mimedefang.org/static/
 
@@ -63,8 +62,9 @@
 post-install:
 	@${REINPLACE_CMD} -e 's,# MX_USER=,MX_USER=,g ; \
 			s,# MX_MAX_RSS=,MX_MAX_RSS=,g ; \
-			s,# MX_MAX_AS=,MX_MAX_AS=,g' ${WRKSRC}/examples/init-script
-	@${INSTALL_SCRIPT} ${WRKSRC}/examples/init-script ${PREFIX}/etc/rc.d/mimedefang.sh-dist
+			s,# MX_MAX_AS=,MX_MAX_AS=,g ; \
+			s,%%CHMOD%%,${CHMOD},g' ${WRKSRC}/examples/init-script
+	@${INSTALL_SCRIPT} ${WRKSRC}/examples/init-script ${PREFIX}/etc/rc.d/mimedefang
 .if !defined(NOPORTDOCS)
 	@${MKDIR} ${EXAMPLESDIR}
 	@${MKDIR} ${DOCSDIR}
@@ -73,6 +73,8 @@
 	@${INSTALL_DATA} ${WRKSRC}/examples/README ${EXAMPLESDIR}
 	@${INSTALL_DATA} ${WRKSRC}/README* ${DOCSDIR}
 .endif
+	@[ -d ${SPOOLDIR} ] && ${CHGRP} ${MAILUSER} ${SPOOLDIR}
+	@[ -d ${QUARANTINEDIR} ] && ${CHGRP} ${MAILUSER} ${QUARANTINEDIR}
 	@${CAT} ${PKGMESSAGE}
 
 .include <bsd.port.post.mk>
diff -Naur mimedefang.original/distinfo mimedefang/distinfo
--- mimedefang.original/distinfo	2009-10-11 14:15:17.000000000 +0200
+++ mimedefang/distinfo	2010-05-07 12:03:09.000000000 +0200
@@ -1,3 +1,3 @@
-MD5 (mimedefang-2.67.tar.gz) = d1f67bc03b41484cb9ae52fb0dd4d24b
-SHA256 (mimedefang-2.67.tar.gz) = e27f3f084f2b436622f9bee47086a905d4b66e2857b3cbcfec71cba664cf3aeb
-SIZE (mimedefang-2.67.tar.gz) = 338779
+MD5 (mimedefang-2.68.tar.gz) = b988d34b7d656fcf007a00c23565ed20
+SHA256 (mimedefang-2.68.tar.gz) = af6d947eef87f00fe513045bf79828808ea42b9cf70eaee033d5e96e73edf61a
+SIZE (mimedefang-2.68.tar.gz) = 342973
diff -Naur mimedefang.original/files/patch-Makefile.in mimedefang/files/patch-Makefile.in
--- mimedefang.original/files/patch-Makefile.in	2004-12-23 20:26:28.000000000 +0100
+++ mimedefang/files/patch-Makefile.in	2010-05-09 17:15:05.000000000 +0200
@@ -1,6 +1,6 @@
---- Makefile.in.orig	Mon Aug  9 11:32:55 2004
-+++ Makefile.in	Thu Dec 23 11:22:02 2004
-@@ -182,7 +182,7 @@
+--- ./Makefile.in.orig	2010-02-16 17:29:59.000000000 +0100
++++ ./Makefile.in	2010-05-09 16:46:21.000000000 +0200
+@@ -201,7 +201,7 @@
  		chown "$(DEFANGUSER)" $(DESTDIR)$(RPM_INSTALL_ROOT)${CONFDIR}/mimedefang-ip-key > /dev/null 2>&1 || true; \
  		mkdir -p $(DESTDIR)$(RPM_INSTALL_ROOT)@SPOOLDIR@ > /dev/null 2>&1 || true; \
  		chown "$(DEFANGUSER)" $(DESTDIR)$(RPM_INSTALL_ROOT)@SPOOLDIR@ || true; \
@@ -9,7 +9,7 @@
  		mkdir -p $(DESTDIR)$(RPM_INSTALL_ROOT)@QDIR@ > /dev/null 2>&1 || true; \
  		chown "$(DEFANGUSER)" $(DESTDIR)$(RPM_INSTALL_ROOT)@QDIR@ || true; \
  		chmod 700 $(DESTDIR)$(RPM_INSTALL_ROOT)@QDIR@ || exit 1; \
-@@ -196,12 +196,11 @@
+@@ -215,12 +215,11 @@
  	-mkdir -p $(DESTDIR)$(RPM_INSTALL_ROOT)$(MANDIR)/man5 && chmod 755 $(DESTDIR)$(RPM_INSTALL_ROOT)$(MANDIR)/man5
  	-mkdir -p $(DESTDIR)$(RPM_INSTALL_ROOT)$(MANDIR)/man7 && chmod 755 $(DESTDIR)$(RPM_INSTALL_ROOT)$(MANDIR)/man7
  	-mkdir -p $(DESTDIR)$(RPM_INSTALL_ROOT)$(MANDIR)/man8 && chmod 755 $(DESTDIR)$(RPM_INSTALL_ROOT)$(MANDIR)/man8
@@ -25,7 +25,7 @@
  		@INSTALL@ -m 644 examples/suggested-minimum-filter-for-windows-clients $(DESTDIR)$(RPM_INSTALL_ROOT)${CONFDIR}/mimedefang-filter || exit 1; \
  	fi
  
-@@ -221,9 +220,8 @@
+@@ -242,9 +241,8 @@
  	if test "$(HAVE_SPAM_ASSASSIN)" = "yes" ; then \
  		mkdir -p $(DESTDIR)$(RPM_INSTALL_ROOT)${CONFDIR} > /dev/null 2>&1 ; \
  		chmod 755 $(DESTDIR)$(RPM_INSTALL_ROOT)${CONFDIR} ;\
diff -Naur mimedefang.original/files/patch-examples__init-script.in mimedefang/files/patch-examples__init-script.in
--- mimedefang.original/files/patch-examples__init-script.in	1970-01-01 01:00:00.000000000 +0100
+++ mimedefang/files/patch-examples__init-script.in	2010-05-09 17:15:05.000000000 +0200
@@ -0,0 +1,75 @@
+--- ./examples/init-script.in.orig	2009-05-04 17:34:32.000000000 +0200
++++ ./examples/init-script.in	2010-05-09 17:14:06.000000000 +0200
+@@ -39,6 +39,12 @@
+ # The socket used by mimedefang to communicate with sendmail
+ # SOCKET=$SPOOLDIR/mimedefang.sock
+ 
++# Timeout while waiting for socket to appear
++# SOCKET_TIMEOUT=60
++
++# The value of socket file access mode
++# SOCKET_MODE=600
++
+ # Run the multiplexor and filters as this user, not root.  RECOMMENDED
+ MX_USER=@DEFANGUSER@
+ 
+@@ -189,6 +195,7 @@
+     procname=$PROGDIR/$prog-multiplexor
+     start_cmd="start_it"
+     stop_cmd="stop_it"
++    restart_cmd="restart_it"
+     sig_reload="INT"
+     reread_cmd="reread_it"
+     # provide both "reload", the FreeBSD default, with a direct signal to
+@@ -199,6 +206,8 @@
+ # Make sure required vars are set
+ SOCKET=${SOCKET:=$SPOOLDIR/$prog.sock}
+ MX_SOCKET=${MX_SOCKET:=$SPOOLDIR/$prog-multiplexor.sock}
++SOCKET_TIMEOUT=${SOCKET_TIMEOUT:=60}
++SOCKET_MODE=${SOCKET_MODE:=600}
+ 
+ start_it() {
+     if test -r $PID ; then
+@@ -281,6 +290,29 @@
+ 	kill `cat $MXPID`
+ 	return 1
+     fi
++
++    SOCKET_PREFIX=${SOCKET%:*}
++    # We can have inet or inet6, try to remove 6
++    SOCKET_PREFIX=${SOCKET_PREFIX%6}
++
++    if [ "x$SOCKET" != "x" -a "${SOCKET_PREFIX}" != "inet" ] ; then
++        printf "Waiting for $prog socket."
++        i=${SOCKET_TIMEOUT}
++        while [ $i -ne 0 ]
++        do
++            [ -S "$SOCKET" ] && break
++            printf "."
++            sleep 1
++            i=$(($i-1))
++        done
++        echo ""
++        if [ $i -eq 0 ] ; then
++            echo "There is no $prog socket (${SOCKET})!"
++            return 1
++        fi
++        %%CHMOD%% ${SOCKET_MODE} ${SOCKET} > /dev/null 2>&1
++    fi
++
+     return 0
+ }
+ 
+@@ -368,6 +400,12 @@
+ 	fi
+ }
+ 
++restart_it() {
++    stop_it wait
++    start_it
++    RETVAL=$?
++}
++
+ if type run_rc_command > /dev/null 2>&1
+ then
+     # NetBSD/FreeBSD compatible startup script
diff -Naur mimedefang.original/files/patch-mimedefang-filter.5.in mimedefang/files/patch-mimedefang-filter.5.in
--- mimedefang.original/files/patch-mimedefang-filter.5.in	2005-06-13 06:50:10.000000000 +0200
+++ mimedefang/files/patch-mimedefang-filter.5.in	2010-05-09 17:15:05.000000000 +0200
@@ -1,11 +1,11 @@
---- mimedefang-filter.5.in.orig	Sun Jun 12 18:37:53 2005
-+++ mimedefang-filter.5.in	Sun Jun 12 18:38:24 2005
-@@ -601,7 +601,7 @@
+--- ./mimedefang-filter.5.in.orig	2010-02-24 16:19:43.000000000 +0100
++++ ./mimedefang-filter.5.in	2010-05-09 16:46:21.000000000 +0200
+@@ -609,7 +609,7 @@
  routine.
  
  .TP
 -.B $ClamdSock \fR(default @SPOOLDIR@/clamd.sock)
-+.B $ClamdSock \fR(default /var/run/clamav/clamd)
++.B $ClamdSock \fR(default /var/run/clamav/clamd.sock)
  Socket used for clamd daemon calls within message_contains_virus_clamd
  and entity_contains_virus_clamd unless a socket is provided by the calling
  routine.
diff -Naur mimedefang.original/files/patch-mimedefang.pl.in mimedefang/files/patch-mimedefang.pl.in
--- mimedefang.original/files/patch-mimedefang.pl.in	2007-07-14 05:07:32.000000000 +0200
+++ mimedefang/files/patch-mimedefang.pl.in	2010-05-09 17:15:05.000000000 +0200
@@ -1,11 +1,11 @@
---- mimedefang.pl.in.orig	Fri Jul 13 08:03:23 2007
-+++ mimedefang.pl.in	Fri Jul 13 08:04:19 2007
-@@ -186,7 +186,7 @@
- $FprotdHost = "127.0.0.1:10200";
+--- ./mimedefang.pl.in.orig	2010-02-24 15:55:03.000000000 +0100
++++ ./mimedefang.pl.in	2010-05-09 16:46:21.000000000 +0200
+@@ -184,7 +184,7 @@
+ $Fprotd6Host = "127.0.0.1:10200";
  
  $SophieSock = "@SPOOLDIR@/sophie";
 -$ClamdSock  = "@SPOOLDIR@/clamd.sock";
-+$ClamdSock  = "/var/run/clamav/clamd";
++$ClamdSock  = "/var/run/clamav/clamd.sock";
  $TrophieSock = "@SPOOLDIR@/trophie";
  
  package MIME::Parser::ParanoidFiler;
diff -Naur mimedefang.original/pkg-plist mimedefang/pkg-plist
--- mimedefang.original/pkg-plist	2007-02-04 10:53:17.000000000 +0100
+++ mimedefang/pkg-plist	2010-05-09 17:23:05.000000000 +0200
@@ -4,7 +4,7 @@
 bin/md-mx-ctrl
 bin/watch-mimedefang
 bin/watch-multiple-mimedefangs.tcl
-etc/rc.d/mimedefang.sh-dist
+etc/rc.d/mimedefang
 @unexec if cmp -s %D/etc/mimedefang/mimedefang-filter %D/etc/mimedefang/mimedefang-filter.example; then rm -f %D/etc/mimedefang/mimedefang-filter; fi
 etc/mimedefang/mimedefang-filter.example
 @unexec if cmp -s %D/etc/mimedefang/sa-mimedefang.cf %D/etc/mimedefang/sa-mimedefang.cf.example; then rm -f %D/etc/mimedefang/sa-mimedefang.cf; fi


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



More information about the freebsd-ports-bugs mailing list