From owner-freebsd-ports-bugs@FreeBSD.ORG Tue Jan 17 02:50:04 2006 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1971916A420 for ; Tue, 17 Jan 2006 02:50:04 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6AA5943D48 for ; Tue, 17 Jan 2006 02:50:03 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k0H2o3kR054861 for ; Tue, 17 Jan 2006 02:50:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k0H2o3C7054860; Tue, 17 Jan 2006 02:50:03 GMT (envelope-from gnats) Resent-Date: Tue, 17 Jan 2006 02:50:03 GMT Resent-Message-Id: <200601170250.k0H2o3C7054860@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Hirohisa Yamaguchi Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 922C016A420 for ; Tue, 17 Jan 2006 02:48:23 +0000 (GMT) (envelope-from umq@ueo.co.jp) Received: from mvs4.plala.or.jp (c158132.vh.plala.or.jp [210.150.158.132]) by mx1.FreeBSD.org (Postfix) with ESMTP id E678043D4C for ; Tue, 17 Jan 2006 02:48:14 +0000 (GMT) (envelope-from umq@ueo.co.jp) Received: from eupheme.kaumoge.org ([58.93.18.28]) by mvs4.plala.or.jp with ESMTP id <20060117024813.XEZA19020.mvs4.plala.or.jp@eupheme.kaumoge.org> for ; Tue, 17 Jan 2006 11:48:13 +0900 Received: from calliope.kaumoge.org (calliope.kaumoge.org [192.168.233.120]) by eupheme.kaumoge.org (8.12.11/8.12.11/20030713) with ESMTP id k0H2mZWU083489 for ; Tue, 17 Jan 2006 11:48:35 +0900 (JST) (envelope-from umq@ueo.co.jp) Message-Id: <86d5ir6042.wl%umq@ueo.co.jp> Date: Tue, 17 Jan 2006 11:48:13 +0900 From: Hirohisa Yamaguchi To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/91894: [maintainer] mail/dkim-milter startup script now can handle multiple instantiation X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Hirohisa Yamaguchi List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jan 2006 02:50:04 -0000 >Number: 91894 >Category: ports >Synopsis: [maintainer] mail/dkim-milter startup script now can handle multiple instantiation >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Tue Jan 17 02:50:02 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Hirohisa Yamaguchi >Release: FreeBSD 7.0-CURRENT amd64 >Organization: >Environment: System: FreeBSD calliope.****.org 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Mon Nov 7 17:32:33 JST 2005 root@calliope.****.org:/usr/obj/usr/src/sys/CALLIOPE64 amd64 >Description: In some cases, several instances of a milter with different configuration run simultaneously; e.g. different key with different selector, or domain for dkim-milter. This update enables multiple instantiation. >How-To-Repeat: >Fix: the patch folleos: diff -rpu ports.orig/mail/dkim-milter/files/milter-dkim.sh.in ports/mail/dkim-milter/files/milter-dkim.sh.in --- ports.orig/mail/dkim-milter/files/milter-dkim.sh.in Wed Jan 11 22:50:22 2006 +++ ports/mail/dkim-milter/files/milter-dkim.sh.in Tue Jan 17 10:45:17 2006 @@ -3,9 +3,9 @@ # $FreeBSD: ports/mail/dkim-milter/files/milter-dkim.sh.in,v 1.1 2006/01/11 13:50:22 ehaupt Exp $ # -# PROVIDE: milterdkim +# PROVIDE: milter-dkim # REQUIRE: DAEMON -# BEFORE: sendmail +# BEFORE: mail # KEYWORD: shutdown # Define these milterdkim_* variables in one of these files: @@ -13,28 +13,83 @@ # /etc/rc.conf.local # /etc/rc.conf.d/milterdkim # +# milterdkim_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable dkim-milter +# milterdkim_profiles (list): Set to "" by default. +# Define your profiles here. +# milterdkim_socket (str): Path to the milter socket. +# milterdkim_domain (str): Domainpart of From: in mails to sign. +# milterdkim_key (str): Path to the private key file to sign with. +# milterdkim_flags (str): Flags passed to start command. +# +# milterdkim_${profile}_* : Variables per profile. +# Sockets must be different from each other. +# # DO NOT CHANGE THESE DEFAULT VALUES HERE # milterdkim_enable=${milterdkim_enable:-"NO"} +milterdkim_profiles=${milterdkim_profiles:-} milterdkim_socket=${milterdkim_socket:-"local:/var/run/dkim-filter"} -milterdkim_pid=${milterdkim_pid:-"/var/run/dkim-filter.pid"} milterdkim_domain=${milterdkim_domain:-"example.com"} milterdkim_key=${milterdkim_key:-"/var/db/domainkeys/default.key.pem"} -milterdkim_flags=${milterdkim_flags:-"-d ${milterdkim_domain} -c nowsp -m MSA \ --s ${milterdkim_key} -S default"} +## milterdkim_flags expands escaped variables later. +milterdkim_flags=${milterdkim_flags:-"-d \${milterdkim_domain\} -c nowsp -m MSA \ +-s \${milterdkim_key\} -S default"} . %%RC_SUBR%% name="milterdkim" -pidfile=${milterdkim_pid} rcvar=`set_rcvar` + +start_precmd="dkim_prepcmd" +stop_postcmd="dkim_prepcmd" command="%%PREFIX%%/libexec/dkim-filter" -command_args="-l -p ${milterdkim_socket} -P ${milterdkim_pid}" -stop_postcmd="dkim_postcmd" +_pidprefix="/var/run/dkim-filter" +pidfile="${_pidprefix}.pid" load_rc_config $name -dkim_postcmd () +if [ -n "$2" ]; then + profile="$2" + if [ "x${milterdkim_profiles}" != "x" ]; then + pidfile="${_pidprefix}.${profile}.pid" + eval milterdkim_enable="\${milterdkim_${profile}_enable:-${milterdkim_enable}}" + eval milterdkim_socket="\${milterdkim_${profile}_socket:-}" + if [ "x${milterdkim_socket}" = "x" ];then + echo "You must define a socket (milterdkim_${profile}_socket)" + exit 1 + fi + eval milterdkim_domain="\${milterdkim_${profile}_domain:-${milterdkim_domain}}" + eval milterdkim_key="\${milterdkim_${profile}_key:-${milterdkim_key}}" + eval milterdkim_flags="\${milterdkim_${profile}_flags:-${milterdkim_flags}}" + command_args="-l -p ${milterdkim_socket} -P ${pidfile}" + else + echo "$0: extra argument ignored" + fi +else + if [ "x${milterdkim_profiles}" != "x" -a "x$1" != "x" ]; then + if [ "x$1" != "xrestart" ]; then + for profile in ${milterdkim_profiles}; do + echo "===> milterdkim profile: ${profile}" + %%PREFIX%%/etc/rc.d/milter-dkim.sh $1 ${profile} + retcode="$?" + if [ "0${retcode}" -ne 0 ]; then + failed="${profile} (${retcode}) ${failed:-}" + else + success="${profile} ${success:-}" + fi + done + exit 0 + else + restart_precmd="" + fi + else + milterdkim_flags=${milterdkim_flags} + command_args="-l -p ${milterdkim_socket} -P ${pidfile}" + fi +fi + +dkim_prepcmd () { if [ -S ${milterdkim_socket##local:} ] ; then rm -f ${milterdkim_socket##local:} diff -rpu ports.orig/mail/dkim-milter/pkg-message ports/mail/dkim-milter/pkg-message --- ports.orig/mail/dkim-milter/pkg-message Wed Jan 11 22:50:22 2006 +++ ports/mail/dkim-milter/pkg-message Tue Jan 17 05:47:36 2006 @@ -8,4 +8,8 @@ INPUT_MAIL_FILTER(`dkim-filter', `S=unix define(`confMILTER_MACROS_CONNECT', `j, {daemon_name}') define(`confMILTER_MACROS_ENVFROM', `i, {auth_type}') +And to run the milter from startup, add milterdkim_enable="YES" in +your /etc/rc.conf. +Extra options can be found in startup script. + ************************************************************************ >Release-Note: >Audit-Trail: >Unformatted: