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


(hans)
diff -r1.127 -r1.128 pkgsrc/mail/spamassassin/Makefile
diff -r0 -r1.1 pkgsrc/mail/spamassassin/files/smf/manifest.xml
diff -r0 -r1.1 pkgsrc/mail/spamassassin/files/smf/spamassassin.sh

cvs diff -r1.127 -r1.128 pkgsrc/mail/spamassassin/Makefile (expand / switch to unified diff)

--- pkgsrc/mail/spamassassin/Makefile 2016/11/10 20:25:50 1.127
+++ pkgsrc/mail/spamassassin/Makefile 2016/12/16 15:52:52 1.128
@@ -1,33 +1,35 @@ @@ -1,33 +1,35 @@
1# $NetBSD: Makefile,v 1.127 2016/11/10 20:25:50 roy Exp $ 1# $NetBSD: Makefile,v 1.128 2016/12/16 15:52:52 hans Exp $
2 2
3DISTNAME= Mail-SpamAssassin-3.4.1 3DISTNAME= Mail-SpamAssassin-3.4.1
4PKGNAME= spamassassin-3.4.1 4PKGNAME= spamassassin-3.4.1
5PKGREVISION= 5 5PKGREVISION= 6
6CATEGORIES= mail perl5 6CATEGORIES= mail perl5
7MASTER_SITES= ${MASTER_SITE_APACHE:=spamassassin/source/} 7MASTER_SITES= ${MASTER_SITE_APACHE:=spamassassin/source/}
8DISTFILES= ${DISTNAME}${EXTRACT_SUFX} 8DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
9DISTFILES+= ${RULESARCHIVE} 9DISTFILES+= ${RULESARCHIVE}
10#DISTFILES+= ${RULESARCHIVEASC} 10#DISTFILES+= ${RULESARCHIVEASC}
11#DISTFILES+= ${RULESARCHIVESHA} 11#DISTFILES+= ${RULESARCHIVESHA}
12EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} 12EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
13 13
14MAINTAINER= pkgsrc-users@NetBSD.org 14MAINTAINER= pkgsrc-users@NetBSD.org
15HOMEPAGE= http://spamassassin.apache.org/ 15HOMEPAGE= http://spamassassin.apache.org/
16COMMENT= Mail filter to identify spam 16COMMENT= Mail filter to identify spam
17LICENSE= apache-2.0 17LICENSE= apache-2.0
18 18
19.include "../../mk/bsd.prefs.mk" 19.include "../../mk/bsd.prefs.mk"
20 20
 21SMF_METHODS= spamassassin
 22
21RULESARCHIVE= Mail-SpamAssassin-rules-3.4.1.r1675274.tgz 23RULESARCHIVE= Mail-SpamAssassin-rules-3.4.1.r1675274.tgz
22#RULESARCHIVEASC=${RULESARCHIVE}.asc 24#RULESARCHIVEASC=${RULESARCHIVE}.asc
23#RULESARCHIVESHA=${RULESARCHIVE}.sha1 25#RULESARCHIVESHA=${RULESARCHIVE}.sha1
24FILES_SUBST+= RULESARCHIVE=${RULESDIR}/${RULESARCHIVE} 26FILES_SUBST+= RULESARCHIVE=${RULESDIR}/${RULESARCHIVE}
25PLIST_SUBST+= RULESARCHIVE=${RULESARCHIVE:Q} 27PLIST_SUBST+= RULESARCHIVE=${RULESARCHIVE:Q}
26#PLIST_SUBST+= RULESARCHIVEASC=${RULESARCHIVEASC:Q} 28#PLIST_SUBST+= RULESARCHIVEASC=${RULESARCHIVEASC:Q}
27#PLIST_SUBST+= RULESARCHIVESHA=${RULESARCHIVESHA:Q} 29#PLIST_SUBST+= RULESARCHIVESHA=${RULESARCHIVESHA:Q}
28 30
29#DEPENDS+= {perl>=5.9.3,p5-Archive-Tar>=1.23}:../../archivers/p5-Archive-Tar 31#DEPENDS+= {perl>=5.9.3,p5-Archive-Tar>=1.23}:../../archivers/p5-Archive-Tar
30#DEPENDS+= {perl>=5,p5-DB_File-[0-9]*}:../../databases/p5-DB_File 32#DEPENDS+= {perl>=5,p5-DB_File-[0-9]*}:../../databases/p5-DB_File
31DEPENDS+= p5-Digest-SHA1-[0-9]*:../../security/p5-Digest-SHA1 33DEPENDS+= p5-Digest-SHA1-[0-9]*:../../security/p5-Digest-SHA1
32DEPENDS+= p5-HTML-Parser>=3.43:../../www/p5-HTML-Parser 34DEPENDS+= p5-HTML-Parser>=3.43:../../www/p5-HTML-Parser
33#DEPENDS+= {perl>=5.9.3,p5-IO-Compress-[0-9]*}:../../devel/p5-IO-Compress # Compress::Zlib>=0 35#DEPENDS+= {perl>=5.9.3,p5-IO-Compress-[0-9]*}:../../devel/p5-IO-Compress # Compress::Zlib>=0

File Added: pkgsrc/mail/spamassassin/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>
    <instance name='default' enabled='false'>
      <exec_method type='method' name='start' exec='@PREFIX@/@SMF_METHOD_FILE.spamassassin@ %m %i' timeout_seconds='60' />
      <exec_method type='method' name='stop' exec=':kill' timeout_seconds='60' />
      <!-- Default property settings for spamd(1) instance. -->
      <property_group name='options' type='application'>
        <!--	allow-tell: Allow learning/reporting -->
        <propval name='allow-tell' type='boolean' value='false' />
        <!--	listen-on: Listen on IP addr and port -->
        <propval name='listen-on' type='astring' value='' />
        <!--	allowed-ips: Restrict to IP addresses which can connect -->
        <propval name='allowed-ips' type='astring' value='' />
        <!--	max-children: maximum number of children -->
        <propval name='max-children' type='integer' value='' />
        <!--	user: Run as username -->
        <propval name='user' type='astring' value='' />
        <!--	local-only: Perform only local tests on all mail -->
        <propval name='local-only' type='boolean' value='false' />
        <!--	log-facility: syslog facility used for logging -->
        <propval name='log-facility' type='astring' value='' />
      </property_group>
    </instance>
    <stability value='Unstable' />
    <template>
      <common_name>
        <loctext xml:lang='C'>Spamassassin</loctext>
      </common_name>
      <documentation>
        <manpage title='spamd' section='1' manpath='@PREFIX@/@PKGMANDIR@' />
      </documentation>
    </template>
  </service>
</service_bundle>

File Added: pkgsrc/mail/spamassassin/files/smf/spamassassin.sh
#!@SMF_METHOD_SHELL@
#
# $NetBSD: spamassassin.sh,v 1.1 2016/12/16 15:52:52 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 spamassassin spamd

. /lib/svc/share/smf_include.sh


get_config ()
{   
    cmdopts=""
    properties="allow-tell listen-on allowed-ips max-children user local-only
	log-facility"

    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
        'allow-tell')
            if [ ${value} = "true" ]; then
                cmdopts="${cmdopts} --allow-tell"
            fi
            ;;
        'listen-on')
            cmdopts="${cmdopts} --listen=${value}"
            ;;
        'allowed-ips')
            cmdopts="${cmdopts} --allowed-ips=${value}"
            ;;
        'max-children')
            if [ ${value} -gt 0 ]; then
                cmdopts="${cmdopts} --max-children=${value}"
            fi
            ;;
        'user')
            cmdopts="${cmdopts} --user=${value}"
            ;;
        'local-only')
            if [ ${value} = "true" ]; then
                cmdopts="${cmdopts} --local"
            fi
            ;;
        'log-facility')
            cmdopts="${cmdopts} --syslog=${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@/bin/spamd -d --syslog-socket=native ${cmdopts}

exit $?