Fri Dec 16 15:56:05 2016 UTC ()
Add SMF manifest and method.


(hans)
diff -r1.34 -r1.35 pkgsrc/mail/spamass-milter/Makefile
diff -r0 -r1.1 pkgsrc/mail/spamass-milter/files/smf/manifest.xml
diff -r0 -r1.1 pkgsrc/mail/spamass-milter/files/smf/spamass-milter.sh

cvs diff -r1.34 -r1.35 pkgsrc/mail/spamass-milter/Makefile (expand / switch to unified diff)

--- pkgsrc/mail/spamass-milter/Makefile 2016/12/07 00:36:24 1.34
+++ pkgsrc/mail/spamass-milter/Makefile 2016/12/16 15:56:05 1.35
@@ -1,25 +1,27 @@ @@ -1,25 +1,27 @@
1# $NetBSD: Makefile,v 1.34 2016/12/07 00:36:24 wiedi Exp $ 1# $NetBSD: Makefile,v 1.35 2016/12/16 15:56:05 hans Exp $
2# 2#
3 3
4DISTNAME= spamass-milter-0.4.0 4DISTNAME= spamass-milter-0.4.0
 5PKGREVISION= 1
5CATEGORIES= mail 6CATEGORIES= mail
6MASTER_SITES= http://savannah.nongnu.org/download/spamass-milt/ 7MASTER_SITES= http://savannah.nongnu.org/download/spamass-milt/
7 8
8MAINTAINER= gdt@NetBSD.org 9MAINTAINER= gdt@NetBSD.org
9HOMEPAGE= http://savannah.nongnu.org/projects/spamass-milt/ 10HOMEPAGE= http://savannah.nongnu.org/projects/spamass-milt/
10COMMENT= Milter interface to Spamassassin 11COMMENT= Milter interface to Spamassassin
11 12
12LICENSE= original-bsd 13LICENSE= original-bsd
13 14
14DEPENDS+= spamassassin>=2.44:../../mail/spamassassin 15DEPENDS+= spamassassin>=2.44:../../mail/spamassassin
15 16
16GNU_CONFIGURE= YES 17GNU_CONFIGURE= YES
17USE_LANGUAGES= c c++ 18USE_LANGUAGES= c c++
18 19
19CPPFLAGS.SunOS+= -Du_int8_t=uint8_t 20CPPFLAGS.SunOS+= -Du_int8_t=uint8_t
20 21
21RCD_SCRIPTS= spamass-milter 22RCD_SCRIPTS= spamass-milter
 23SMF_METHODS= spamass-milter
22 24
23.include "../../mail/libmilter/buildlink3.mk" 25.include "../../mail/libmilter/buildlink3.mk"
24.include "../../mk/pthread.buildlink3.mk" 26.include "../../mk/pthread.buildlink3.mk"
25.include "../../mk/bsd.pkg.mk" 27.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/mail/spamass-milter/files/smf/manifest.xml
<?xml version="1.0"?>
<!--

This file and its contents are supplied under the terms of the
Common Development and Distribution License ("CDDL"), version 1.0.
You may only use this file in accordance with the terms of version
1.0 of the CDDL.
A full copy of the text of the CDDL should have accompanied this
source.  A copy of the CDDL is also available via the Internet at
http://www.illumos.org/license/CDDL.

-->
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
  Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
-->
<service_bundle type='manifest' name='@SMF_NAME@'>
  <service name='@SMF_PREFIX@/@SMF_NAME@' type='service' version='1'>
    <dependency name='filesystem_minimal' grouping='require_all' restart_on='none' type='service'>
      <service_fmri value='svc:/system/filesystem/local' />
    </dependency>
    <dependency name='loopback' grouping='require_any' restart_on='error' type='service'>
      <service_fmri value='svc:/network/loopback' />
    </dependency>
    <dependency name='network' grouping='optional_all' restart_on='error' type='service'>
      <service_fmri value='svc:/milestone/network' />
    </dependency>
    <dependency name='spamassassin' grouping='require_any' restart_on='error' type='service'>
      <service_fmri value='svc:/@SMF_PREFIX@/spamassassin' />
    </dependency>
    <instance name='default' enabled='false'>
      <exec_method type='method' name='start' exec='@PREFIX@/@SMF_METHOD_FILE.spamass-milter@ %m %i' timeout_seconds='60' />
      <exec_method type='method' name='stop' exec=':kill' timeout_seconds='60' />
      <!-- Default property settings for spamass-milter(1) instance. -->
      <property_group name='options' type='application'>
        <!--	socket-path: pathname for milter socket -->
        <propval name='socket-path' type='astring' value='/var/run/spamass-milter.sock' />
        <!--	reject-code: SMTP reject code for rejected spam -->
        <propval name='reject-code' type='astring' value='' />
        <!--	reject-text: message text for rejected spam -->
        <propval name='reject-text' type='astring' value='' />
        <!--	reject-threshold: minimum spam score for rejecting spam -->
        <propval name='reject-threshold' type='integer' value='' />
        <!--	ignore-nets: comma-separated list of IP nets that can send mail unchecked-->
        <propval name='ignore-nets' type='astring' value='' />
        <!--	ignore-auth: don't scan mail from authenticated users -->
        <propval name='ignore-auth' type='boolean' value='true' />
        <!--	default-user: fallback user, and alway pass receipient user name to spamc -->
        <propval name='default-user' type='astring' value='' />
        <!--	lookup-users: call sendmail to translate receipient to user -->
        <propval name='lookup-users' type='boolean' value='false' />
        <!--	spamc-flags: flags passed verbatim to spamc -->
        <propval name='spamc-flags' type='astring' value='' />
      </property_group>
    </instance>
    <stability value='Unstable' />
    <template>
      <common_name>
        <loctext xml:lang='C'>Spamassassin Milter</loctext>
      </common_name>
      <documentation>
        <manpage title='spamass-milter' section='8' manpath='@PREFIX@/@PKGMANDIR@' />
      </documentation>
    </template>
  </service>
</service_bundle>

File Added: pkgsrc/mail/spamass-milter/files/smf/spamass-milter.sh
#!@SMF_METHOD_SHELL@
#
# $NetBSD: spamass-milter.sh,v 1.1 2016/12/16 15:56:05 hans Exp $
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source.  A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
# Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
#

# smf_method(5) start/stop script required for spamass-milter

. /lib/svc/share/smf_include.sh


get_config ()
{   
    cmdopts=""
    # spamc-flags must be last
    properties="socket-path reject-code reject-text reject-threshold ignore-nets ignore-auth default-user lookup-users spamc-flags"

    for prop in $properties
    do
        value=`/usr/bin/svcprop -p options/${prop} ${SMF_FMRI}`
        if [ -z "${value}" -o "${value}" = '""' ]; then
            continue;
        fi

        case $prop in
        'socket-path')
            cmdopts="${cmdopts} -p ${value}"
            ;;
        'reject-code')
            cmdopts="${cmdopts} -C ${value}"
            ;;
        'reject-text')
            cmdopts="${cmdopts} -R ${value}"
            ;;
        'reject-threshold')
            if [ ${value} != "0" ]; then
                cmdopts="${cmdopts} -r ${value}"
            fi
            ;;
        'ignore-nets')
            cmdopts="${cmdopts} -i ${value}"
            ;;
        'ignore-auth')
            if [ ${value} = "true" ]; then
                cmdopts="${cmdopts} -a"
            fi
            ;;
        'default-user')
            cmdopts="${cmdopts} -u ${value}"
            ;;
        'lookup-users')
            if [ ${value} = "true" ]; then
                cmdopts="${cmdopts} -x"
            fi
            ;;
        'spamc-flags')
            value=`echo ${value} | sed -e 's/\\\\//g'`
            cmdopts="${cmdopts} -- ${value}"
            ;;
        esac
    done
}

result=${SMF_EXIT_OK}

# Set defaults; SMF_FMRI should have been set, but just in case.
if [ -z "$SMF_FMRI" ]; then
    SMF_FMRI="svc:/@SMF_PREFIX@/@SMF_NAME@:${instance}"
fi

get_config

# Execute spamd with relevant command line options.
ppriv -s A-all -s A+basic,net_privaddr,file_dac_read,file_dac_search,sys_resource,proc_setid -e @PREFIX@/sbin/spamass-milter -f ${cmdopts}

exit $?