diff options
author | hans <hans@pkgsrc.org> | 2016-12-16 15:52:52 +0000 |
---|---|---|
committer | hans <hans@pkgsrc.org> | 2016-12-16 15:52:52 +0000 |
commit | 8390430b3a29d162a73e5527eaa923f5dec97b12 (patch) | |
tree | 35668f1e579dc21a9c67df2ff9b4f995ce98dc2d | |
parent | 1b87302ee3e3cbadcb8bc82026b39f8f654bfe97 (diff) | |
download | pkgsrc-8390430b3a29d162a73e5527eaa923f5dec97b12.tar.gz |
Add SMF manifest and method.
-rw-r--r-- | mail/spamass-milter/Makefile | 4 | ||||
-rw-r--r-- | mail/spamass-milter/files/smf/manifest.xml | 66 | ||||
-rw-r--r-- | mail/spamass-milter/files/smf/spamass-milter.sh | 86 | ||||
-rw-r--r-- | mail/spamassassin/Makefile | 6 | ||||
-rw-r--r-- | mail/spamassassin/files/smf/manifest.xml | 59 | ||||
-rw-r--r-- | mail/spamassassin/files/smf/spamassassin.sh | 79 |
6 files changed, 297 insertions, 3 deletions
diff --git a/mail/spamass-milter/Makefile b/mail/spamass-milter/Makefile index c6ef7b54eda..451b6c733b6 100644 --- a/mail/spamass-milter/Makefile +++ b/mail/spamass-milter/Makefile @@ -1,7 +1,8 @@ -# $NetBSD: Makefile,v 1.34 2016/12/07 00:36:24 wiedi Exp $ +# $NetBSD: Makefile,v 1.35 2016/12/16 15:56:05 hans Exp $ # DISTNAME= spamass-milter-0.4.0 +PKGREVISION= 1 CATEGORIES= mail MASTER_SITES= http://savannah.nongnu.org/download/spamass-milt/ @@ -19,6 +20,7 @@ USE_LANGUAGES= c c++ CPPFLAGS.SunOS+= -Du_int8_t=uint8_t RCD_SCRIPTS= spamass-milter +SMF_METHODS= spamass-milter .include "../../mail/libmilter/buildlink3.mk" .include "../../mk/pthread.buildlink3.mk" diff --git a/mail/spamass-milter/files/smf/manifest.xml b/mail/spamass-milter/files/smf/manifest.xml new file mode 100644 index 00000000000..05206064d2c --- /dev/null +++ b/mail/spamass-milter/files/smf/manifest.xml @@ -0,0 +1,66 @@ +<?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> diff --git a/mail/spamass-milter/files/smf/spamass-milter.sh b/mail/spamass-milter/files/smf/spamass-milter.sh new file mode 100644 index 00000000000..850d2c721cc --- /dev/null +++ b/mail/spamass-milter/files/smf/spamass-milter.sh @@ -0,0 +1,86 @@ +#!@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 $? diff --git a/mail/spamassassin/Makefile b/mail/spamassassin/Makefile index 29a23d574ab..a04fa30980c 100644 --- a/mail/spamassassin/Makefile +++ b/mail/spamassassin/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.127 2016/11/10 20:25:50 roy Exp $ +# $NetBSD: Makefile,v 1.128 2016/12/16 15:52:52 hans Exp $ DISTNAME= Mail-SpamAssassin-3.4.1 PKGNAME= spamassassin-3.4.1 -PKGREVISION= 5 +PKGREVISION= 6 CATEGORIES= mail perl5 MASTER_SITES= ${MASTER_SITE_APACHE:=spamassassin/source/} DISTFILES= ${DISTNAME}${EXTRACT_SUFX} @@ -18,6 +18,8 @@ LICENSE= apache-2.0 .include "../../mk/bsd.prefs.mk" +SMF_METHODS= spamassassin + RULESARCHIVE= Mail-SpamAssassin-rules-3.4.1.r1675274.tgz #RULESARCHIVEASC=${RULESARCHIVE}.asc #RULESARCHIVESHA=${RULESARCHIVE}.sha1 diff --git a/mail/spamassassin/files/smf/manifest.xml b/mail/spamassassin/files/smf/manifest.xml new file mode 100644 index 00000000000..f2e4bb225a9 --- /dev/null +++ b/mail/spamassassin/files/smf/manifest.xml @@ -0,0 +1,59 @@ +<?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> diff --git a/mail/spamassassin/files/smf/spamassassin.sh b/mail/spamassassin/files/smf/spamassassin.sh new file mode 100644 index 00000000000..6c4dd6cc8ef --- /dev/null +++ b/mail/spamassassin/files/smf/spamassassin.sh @@ -0,0 +1,79 @@ +#!@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 $? |