From derek@server.razorfever.net  Sun Sep 10 21:30:15 2006
Return-Path: <derek@server.razorfever.net>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 15AAB16A403
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 10 Sep 2006 21:30:14 +0000 (UTC)
	(envelope-from derek@server.razorfever.net)
Received: from smtp102.rog.mail.re2.yahoo.com (smtp102.rog.mail.re2.yahoo.com [206.190.36.80])
	by mx1.FreeBSD.org (Postfix) with SMTP id 1EBC043D80
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 10 Sep 2006 21:30:00 +0000 (GMT)
	(envelope-from derek@server.razorfever.net)
Received: (qmail 83011 invoked from network); 10 Sep 2006 21:29:59 -0000
Received: from unknown (HELO server.razorfever.net) (plick@rogers.com@74.119.84.96 with plain)
  by smtp102.rog.mail.re2.yahoo.com with SMTP; 10 Sep 2006 21:29:58 -0000
Received: from server.razorfever.net (localhost [127.0.0.1])
	by server.razorfever.net (8.13.6/8.13.6) with ESMTP id k8ALRQ0d070197
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 10 Sep 2006 17:27:26 -0400 (EDT)
	(envelope-from derek@server.razorfever.net)
Received: (from derek@localhost)
	by server.razorfever.net (8.13.6/8.13.6/Submit) id k8ALRQGX070196;
	Sun, 10 Sep 2006 17:27:26 -0400 (EDT)
	(envelope-from derek)
Message-Id: <200609102127.k8ALRQGX070196@server.razorfever.net>
Date: Sun, 10 Sep 2006 17:27:26 -0400 (EDT)
From: Derek Marcotte <derekm.nospam@rogers.com>
Reply-To: Derek Marcotte <derekm.nospam@rogers.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [patch] port mail/milter-regex rc.d support
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         103114
>Category:       ports
>Synopsis:       [patch] port mail/milter-regex rc.d support
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    clsung
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Sep 10 21:30:18 GMT 2006
>Closed-Date:    Thu Nov 02 06:53:06 GMT 2006
>Last-Modified:  Thu Nov  2 07:00:47 GMT 2006
>Originator:     Derek Marcotte
>Release:        FreeBSD 6.1-RELEASE-p2 i386
>Organization:
>Environment:
System: FreeBSD server.razorfever.net 6.1-RELEASE-p2 FreeBSD 6.1-RELEASE-p2 #1: Mon Jun 19 11:53:43 EDT 2006 derek@server.razorfever.net:/usr/obj/usr/src/sys/GENERIC-NOUHID i386


>Description:
	Add support for rc.d style startup scripts for mail/milter-regex port.
I was in touch with dhartmei@FreeBSD.org, who was listed as maintainer for
this port.  

He says:

"I can't commit to the ports tree, please send the patch to the ports
mailing list instead and ask someone with ports privileges to commit it.

While they're at it, they can also change the maintainer line so it
points to the list instead, please :)"

>How-To-Repeat:
>Fix:

--- milter-regex.patch begins here ---
diff -ruN milter-regex.old/Makefile milter-regex/Makefile
--- milter-regex.old/Makefile	Wed May 10 21:11:35 2006
+++ milter-regex/Makefile	Fri Sep  8 13:50:15 2006
@@ -12,7 +12,7 @@
 MASTER_SITES=	http://www.benzedrine.cx/
 DISTNAME=	milter-regex-${PORTVERSION}
 
-MAINTAINER=	dhartmei@FreeBSD.org
+MAINTAINER=	ports@freebsd.org
 COMMENT=	Milter plugin to sendmail for regular expression filtering
 
 WRKSRC=		${WRKDIR}/milter-regex
@@ -21,6 +21,11 @@
 PLIST_FILES=	libexec/milter-regex
 MAKE_ENV+=	LDFLAGS="${LDFLAGS}"
 
+USE_RC_SUBR=	milterregex.sh
+
+SPOOLDIR=	/var/run/milter-regex
+SUB_LIST=	SPOOLDIR=${SPOOLDIR}
+
 .include <bsd.port.pre.mk>
 
 .if defined(SENDMAIL_MILTER_PORT)
@@ -43,9 +48,11 @@
 post-patch:
 	@${REINPLACE_CMD} -e \
 	    "s:/etc/milter-regex.conf:${PREFIX}/etc/milter-regex.conf:g; \
+	    s:/var/spool/milter-regex:${SPOOLDIR}:g; \
 	    s:_milter-regex:${MAILUSER}:g;" ${WRKSRC}/milter-regex.c
 	@${REINPLACE_CMD} -e \
 	    "s:/etc/milter-regex.conf:${PREFIX}/etc/milter-regex.conf:g; \
+	    s:/var/spool/milter-regex:${SPOOLDIR}:g; \
 	    s:mailstats 1:mailstats 8:;" ${WRKSRC}/milter-regex.8
 	@${REINPLACE_CMD} -e "s:-lpthread:${PTHREAD_LIBS}:g; \
 	    s:-I/usr/src/gnu/usr.sbin/sendmail/include:${PTHREAD_CFLAGS}:g; \
@@ -55,6 +62,9 @@
 do-install:
 	@${INSTALL_PROGRAM} ${WRKSRC}/milter-regex ${PREFIX}/libexec
 	@${INSTALL_MAN} ${WRKSRC}/milter-regex.8 ${PREFIX}/man/man8
-	@${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
+	@${INSTALL} -d -o ${MAILUSER} -g daemon -m 0700 ${SPOOLDIR}
+
+post-install:
+	@${CAT} ${PKGMESSAGE}
 
 .include <bsd.port.post.mk>
diff -ruN milter-regex.old/files/milterregex.sh.in milter-regex/files/milterregex.sh.in
--- milter-regex.old/files/milterregex.sh.in	Wed Dec 31 19:00:00 1969
+++ milter-regex/files/milterregex.sh.in	Thu Sep  7 17:28:44 2006
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# Start or stop milterregex
+
+# PROVIDE: milterregex
+# REQUIRE: DAEMON
+# BEFORE: mail
+# KEYWORD: FreeBSD shutdown
+#
+# NOTE for FreeBSD 5.0+:
+# If you want this script to start with the base rc scripts
+# move milterregex to /etc/rc.d/milterregex
+
+prefix=%%PREFIX%%
+spooldir=%%SPOOLDIR%%
+
+# Define these milterregex_* variables in one of these files:
+#	/etc/rc.conf
+#	/etc/rc.conf.local
+#	/etc/rc.conf.d/milterregex
+#
+# DO NOT CHANGE THESE DEFAULT VALUES HERE
+#
+[ -z "$milterregex_enable" ] && milterregex_enable="NO"	# Enable milter-regex
+#milterregex_program="${prefix}/libexec/milter-regex"	# Location of milter-regex
+[ -z "$milterregex_flags" ] && milterregex_flags="" # Flags to milter-regex program
+
+. /etc/rc.subr
+
+name="milterregex"
+rcvar=`set_rcvar`
+command="${prefix}/libexec/milter-regex"
+pidfile="${spooldir}/milter-regex.pid"
+required_files="${prefix}/etc/milter-regex.conf"
+stop_postcmd="milterregex_poststop"
+
+milterregex_poststop() {
+	/bin/rm -f ${pidfile}
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff -ruN milter-regex.old/files/patch-milter-regex.8 milter-regex/files/patch-milter-regex.8
--- milter-regex.old/files/patch-milter-regex.8	Wed Dec 31 19:00:00 1969
+++ milter-regex/files/patch-milter-regex.8	Wed Sep  6 16:22:26 2006
@@ -0,0 +1,25 @@
+*** milter-regex.8.orig	Sat Mar 13 12:21:23 2004
+--- milter-regex.8	Wed Sep  6 16:15:59 2006
+***************
+*** 37,42 ****
+--- 37,43 ----
+  .Nm
+  .Op Fl d
+  .Op Fl c Ar config
++ .Op Fl r Ar pid-file
+  .Op Fl p Ar pipe
+  .Op Fl u Ar user
+  .Sh DESCRIPTION
+***************
+*** 54,60 ****
+--- 54,63 ----
+  output on stdout.
+  .It Fl c Ar config
+  Use the specified configuration file instead of the default,
+  /etc/milter-regex.conf.
++ .It Fl r Ar pid-file
++ Use the specified pid file to write to.  Default is: 
++ /var/spool/milter-regex/milter-regex.pid
+  .It Fl p Ar pipe 
+  Use the specified pipe to interface
+  .Xr sendmail 8 .
diff -ruN milter-regex.old/files/patch-milter-regex.c milter-regex/files/patch-milter-regex.c
--- milter-regex.old/files/patch-milter-regex.c	Wed Dec 31 19:00:00 1969
+++ milter-regex/files/patch-milter-regex.c	Wed Sep  6 16:02:25 2006
@@ -0,0 +1,85 @@
+*** milter-regex.c.orig	Sun Mar  6 06:42:53 2005
+--- milter-regex.c	Wed Sep  6 16:00:00 2006
+***************
+*** 86,93 ****
+  static void		 usage(const char *);
+  static void		 msg(int, struct context *, const char *, ...);
+  
+  #define USER		"_milter-regex"
+  #define OCONN		"unix:/var/spool/milter-regex/sock"
+  #define RCODE_REJECT	"554"
+  #define RCODE_TEMPFAIL	"451"
+  #define XCODE_REJECT	"5.7.1"
+--- 86,94 ----
+  static void		 usage(const char *);
+  static void		 msg(int, struct context *, const char *, ...);
+  
+  #define USER		"_milter-regex"
+  #define OCONN		"unix:/var/spool/milter-regex/sock"
++ #define OPID		"/var/spool/milter-regex/milter-regex.pid"
+  #define RCODE_REJECT	"554"
+  #define RCODE_TEMPFAIL	"451"
+  #define XCODE_REJECT	"5.7.1"
+***************
+*** 556,565 ****
+--- 557,570 ----
+  {
+  	int ch;
+  	const char *oconn = OCONN;
++ 	const char *pid_file_name = OPID;
+  	const char *user = USER;
+  	sfsistat r = MI_FAILURE;
+  	const char *ofile = NULL;
+  
++ 	pid_t pid;
++ 	FILE *pid_fd = NULL;
++ 
+  	tzset();
+  	openlog("milter-regex", LOG_PID | LOG_NDELAY, LOG_DAEMON);
+  
+***************
+*** 577,582 ****
+--- 582,590 ----
+  		case 'u':
+  			user = optarg;
+  			break;
++ 		case 'r':
++ 			pid_file_name = optarg;
++ 			break;
+  		default:
+  			usage(argv[0]);
+  		}
+***************
+*** 638,646 ****
+  		fprintf(stderr, "daemon: %s\n", strerror(errno));
+  		goto done;
+  	}
+- 	umask(0177);
+  
+  	msg(LOG_INFO, NULL, "started: %s", rcsid);
+  	r = smfi_main();
+  	if (r != MI_SUCCESS)
+  		msg(LOG_ERR, NULL, "smfi_main: terminating due to error");
+--- 646,667 ----
+  		fprintf(stderr, "daemon: %s\n", strerror(errno));
+  		goto done;
+  	}
+  
+  	msg(LOG_INFO, NULL, "started: %s", rcsid);
++ 
++ 	umask(0006);
++ 
++ 	if((pid_fd = fopen(pid_file_name, "w")) == NULL) {
++ 		msg(LOG_ERR, NULL, "can't open file: %s", pid_file_name);
++ 		goto done;
++ 	} else {
++ 		pid = getpid();
++ 		fprintf(pid_fd, "%d", (int) pid);
++ 		fclose(pid_fd);
++ 	}
++ 
++ 	umask(0177);
++ 
+  	r = smfi_main();
+  	if (r != MI_SUCCESS)
+  		msg(LOG_ERR, NULL, "smfi_main: terminating due to error");
diff -ruN milter-regex.old/pkg-install milter-regex/pkg-install
--- milter-regex.old/pkg-install	Thu Apr  8 04:05:49 2004
+++ milter-regex/pkg-install	Wed Dec 31 19:00:00 1969
@@ -1,55 +0,0 @@
-#!/bin/sh
-#
-# 	$FreeBSD: ports/mail/milter-regex/pkg-install,v 1.2 2004/04/07 15:44:50 dhartmei Exp $
-#
-
-set -e
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-PREFIX=${PKG_PREFIX:-/usr/local}
-MAILUSER=mailnull
-SPOOLDIR=/var/spool/milter-regex
-
-do_notice()
-{
-  echo
-  echo "+---------------"
-  echo "| milter-regex has been installed as $PREFIX/libexec/milter-regex."
-  echo "| See milter-regex(8) for instructions on how to register the plugin."
-  echo "|"
-  echo "| To start the plugin automatically on startup, one can use:"
-  echo "|"
-  echo "| /etc/rc.conf.local"
-  echo "| milter_regex=YES"
-  echo "|"
-  echo "| /etc/rc.local"
-  echo "| if [ X\"\${milter_regex}\" == X\"YES\" -a \\"
-  echo "|      -x $PREFIX/libexec/milter-regex ]; then"
-  echo "|         echo -n ' milter-regex'"
-  echo "|         $PREFIX/libexec/milter-regex"
-  echo "| fi"
-  echo "|"
-  echo "+---------------"
-  echo
-}
-
-if [ $# -ne 2 ]; then
-    echo "usage: $0 distname { PRE-INSTALL | POST-INSTALL }" >&2
-    exit 1
-fi
-
-case $2 in
-    PRE-INSTALL)
-	;;
-    POST-INSTALL)
-	if [ ! -d $SPOOLDIR ]; then
-		install -d -o $MAILUSER -g daemon -m 0700 $SPOOLDIR
-	fi
-	do_notice
-	;;
-    *)
-	echo "usage: $0 distname { PRE-INSTALL | POST-INSTALL }" >&2
-	exit 1
-	;;
-esac
-
-exit 0
diff -ruN milter-regex.old/pkg-message milter-regex/pkg-message
--- milter-regex.old/pkg-message	Wed Dec 31 19:00:00 1969
+++ milter-regex/pkg-message	Thu Sep  7 18:38:34 2006
@@ -0,0 +1,11 @@
+===>  INSTALL NOTES:
+
+	To run milter-regex daemon on startup, add milterregex_enable="YES"
+	in your /etc/rc.conf.  You will need to create a config file:
+
+		/usr/local/etc/milter-regex.conf
+
+	The plugin needs to be registered in the sendmail(8) configuration.
+
+	See milter-regex(8) for details.
+
diff -ruN milter-regex.old/pkg-plist milter-regex/pkg-plist
--- milter-regex.old/pkg-plist	Wed Dec 31 19:00:00 1969
+++ milter-regex/pkg-plist	Thu Sep  7 17:35:16 2006
@@ -0,0 +1,3 @@
+@exec mkdir -m 700 -p /var/run/milter-regex
+@exec chown mailnull:daemon /var/run/milter-regex
+@unexec rmdir /var/run/milter-regex
--- milter-regex.patch ends here ---


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->dhartmei 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Sun Sep 10 21:30:51 UTC 2006 
Responsible-Changed-Why:  
Over to maintainer 

http://www.freebsd.org/cgi/query-pr.cgi?pr=103114 
Responsible-Changed-From-To: dhartmei->freebsd-ports-bugs 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Sun Oct 15 04:20:18 UTC 2006 
Responsible-Changed-Why:  
That you can't commit to the ports tree doesn't mean that you can't 
say "This PR is fine, please commit it" and reassign it back to 
freebsd-ports-bugs. 


http://www.freebsd.org/cgi/query-pr.cgi?pr=103114 
Responsible-Changed-From-To: freebsd-ports-bugs->clsung 
Responsible-Changed-By: clsung 
Responsible-Changed-When: Sun Oct 15 05:23:12 UTC 2006 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=103114 
State-Changed-From-To: open->closed 
State-Changed-By: clsung 
State-Changed-When: Thu Nov 2 06:53:05 UTC 2006 
State-Changed-Why:  
Committed. Thank You. 

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

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/103114: commit references a PR
Date: Thu,  2 Nov 2006 06:53:00 +0000 (UTC)

 clsung      2006-11-02 06:52:54 UTC
 
   FreeBSD ports repository
 
   Modified files:
     mail/milter-regex    Makefile 
   Added files:
     mail/milter-regex    pkg-message pkg-plist 
     mail/milter-regex/files milterregex.sh.in patch-milter-regex.8 
                             patch-milter-regex.c 
   Removed files:
     mail/milter-regex    pkg-install 
   Log:
   - Add support for rc.d style startup scripts for mail/milter-regex port.
   - reset maintainership
   
   PR:             ports/103114
   Submitted by:   Derek Marcotte <derekm dot nospam_AT_rogers dot com>
   Approved by:    maintainer (dhartmei)
   
   Revision  Changes    Path
   1.13      +12 -2     ports/mail/milter-regex/Makefile
   1.1       +42 -0     ports/mail/milter-regex/files/milterregex.sh.in (new)
   1.1       +25 -0     ports/mail/milter-regex/files/patch-milter-regex.8 (new)
   1.3       +85 -0     ports/mail/milter-regex/files/patch-milter-regex.c (new)
   1.3       +0 -55     ports/mail/milter-regex/pkg-install (dead)
   1.1       +11 -0     ports/mail/milter-regex/pkg-message (new)
   1.1       +3 -0      ports/mail/milter-regex/pkg-plist (new)
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
