From 7ba7ec74305bdfc6256d45c7896bcae560b827f4 Mon Sep 17 00:00:00 2001 From: hans Date: Fri, 16 Dec 2016 15:42:20 +0000 Subject: Add SMF manifest and method. --- security/cyrus-saslauthd/Makefile | 6 +- security/cyrus-saslauthd/files/smf/manifest.xml | 55 +++++++++++++++++ security/cyrus-saslauthd/files/smf/saslauthd.sh | 82 +++++++++++++++++++++++++ 3 files changed, 141 insertions(+), 2 deletions(-) create mode 100644 security/cyrus-saslauthd/files/smf/manifest.xml create mode 100644 security/cyrus-saslauthd/files/smf/saslauthd.sh (limited to 'security') diff --git a/security/cyrus-saslauthd/Makefile b/security/cyrus-saslauthd/Makefile index 09b2ee1a548..a836fc9d16f 100644 --- a/security/cyrus-saslauthd/Makefile +++ b/security/cyrus-saslauthd/Makefile @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.50 2016/10/17 13:45:45 hans Exp $ +# $NetBSD: Makefile,v 1.51 2016/12/16 15:42:20 hans Exp $ PKGNAME= ${DISTNAME:S/sasl/saslauthd/} -PKGREVISION= 5 +PKGREVISION= 6 CONFLICTS+= cyrus-sasl<2.1.15nb2 .include "../../security/cyrus-sasl/Makefile.common" @@ -23,6 +23,8 @@ BUILD_DIRS= saslauthd .include "options.mk" RCD_SCRIPTS= saslauthd +SMF_METHODS= saslauthd +SMF_NAME= saslauthd FILES_SUBST+= ROOT_USER=${REAL_ROOT_USER:Q} INSTALLATION_DIRS= bin diff --git a/security/cyrus-saslauthd/files/smf/manifest.xml b/security/cyrus-saslauthd/files/smf/manifest.xml new file mode 100644 index 00000000000..8d7c30726a7 --- /dev/null +++ b/security/cyrus-saslauthd/files/smf/manifest.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/security/cyrus-saslauthd/files/smf/saslauthd.sh b/security/cyrus-saslauthd/files/smf/saslauthd.sh new file mode 100644 index 00000000000..f98018572b1 --- /dev/null +++ b/security/cyrus-saslauthd/files/smf/saslauthd.sh @@ -0,0 +1,82 @@ +#!@SMF_METHOD_SHELL@ +# +# $NetBSD: saslauthd.sh,v 1.1 2016/12/16 15:42:20 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 +# + +# smf_method(5) start/stop script required for cyrus-saslauthd + +. /lib/svc/share/smf_include.sh + + +get_config () +{ + cmdopts="" + properties="authmech mechopts nthreads caching sockpath" + + 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 + 'caching') + if [ ${value} = "true" ]; then + cmdopts="${cmdopts} -c" + fi + ;; + 'authmech') + authmech=${value} + ;; + 'mechopts') + cmdopts="${cmdopts} -O ${value}" + ;; + 'nthreads') + if [ ${value} -gt 0 ]; then + cmdopts="${cmdopts} -n ${value}" + fi + ;; + 'sockpath') + cmdopts="${cmdopts} -m ${value}" + sockpath=${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 + +if [ -z "${authmech}" ]; then + echo "saslauthd: authmech must be set" + exit ${SMF_EXIT_ERR_CONFIG} +fi + +if [ ! -z "${sockpath}" -a ! -d "${sockpath}" ]; then + mkdir -p ${sockpath} + chmod 0755 ${sockpath} + chown root ${sockpath} +fi + +# 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/saslauthd -a ${authmech} ${cmdopts} + +exit $? -- cgit v1.2.3