diff options
author | jperkin <jperkin> | 2014-03-11 14:34:36 +0000 |
---|---|---|
committer | jperkin <jperkin> | 2014-03-11 14:34:36 +0000 |
commit | 25883a57642b6f9b0d13deb4b3574a9d4e4eba29 (patch) | |
tree | 7ee5b13abb9f96749121a307db970b8b85e953da /net/bind99 | |
parent | 8a57b7d09b39ddfb89bcd11bfffa4a2881c0821f (diff) | |
download | pkgsrc-25883a57642b6f9b0d13deb4b3574a9d4e4eba29.tar.gz |
Import initial SMF support for individual packages.
Diffstat (limited to 'net/bind99')
-rw-r--r-- | net/bind99/Makefile | 3 | ||||
-rw-r--r-- | net/bind99/files/smf/manifest.xml | 141 | ||||
-rw-r--r-- | net/bind99/files/smf/named.sh | 117 |
3 files changed, 260 insertions, 1 deletions
diff --git a/net/bind99/Makefile b/net/bind99/Makefile index 25ff5001537..868a31ca902 100644 --- a/net/bind99/Makefile +++ b/net/bind99/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.33 2014/02/12 23:18:19 tron Exp $ +# $NetBSD: Makefile,v 1.34 2014/03/11 14:34:38 jperkin Exp $ DISTNAME= bind-${BIND_VERSION} PKGNAME= ${DISTNAME:S/-P/pl/} @@ -67,6 +67,7 @@ PLIST.inet6= yes .endif RCD_SCRIPTS= lwresd named9 +SMF_METHODS= named INSTALLATION_DIRS= ${DOCDIR} share/doc/bind9/arm diff --git a/net/bind99/files/smf/manifest.xml b/net/bind99/files/smf/manifest.xml new file mode 100644 index 00000000000..6e35cf26498 --- /dev/null +++ b/net/bind99/files/smf/manifest.xml @@ -0,0 +1,141 @@ +<?xml version="1.0"?> +<!-- +CDDL HEADER START + +The contents of this file are subject to the terms of the +Common Development and Distribution License (the "License"). +You may not use this file except in compliance with the License. + +You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +or http://www.opensolaris.org/os/licensing. +See the License for the specific language governing permissions +and limitations under the License. + +When distributing Covered Code, include this CDDL HEADER in each +file and include the License file at usr/src/OPENSOLARIS.LICENSE. +If applicable, add the following below this CDDL HEADER, with the +fields enclosed by brackets "[]" replaced with your own identifying +information: Portions Copyright [yyyy] [name of copyright owner] + +CDDL HEADER END +--> +<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> +<!-- + Copyright 2007 Sun Microsystems, Inc. All rights reserved. + Use is subject to license terms. + + ident "@(#)server.xml 1.8 07/06/19 SMI" +--> +<!-- Portions Copyright 2007 Vedran Bender --> +<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='config-files' grouping='require_any' restart_on='refresh' type='path'> + <service_fmri value='file://localhost@PKG_SYSCONFDIR@/named.conf' /> + </dependency> + <exec_method type='method' name='stop' exec=':kill' timeout_seconds='60' /> + <!-- + In order to run multiple named(1M) processes with their own + configuration file or properties each must have a unique + instance. + --> + <instance name='default' enabled='false'> + <exec_method type='method' name='start' exec='@PREFIX@/@SMF_METHOD_FILE.named@ %m %i' timeout_seconds='60'> + <method_context> + <!-- + privileges: (see privileges(5) and /etc/security/priv_names) + file_dac_read, file_dac_search: + Necessary for reading the configuration file + even it is restricted by the file permission. + net_privaddr: + Bind to a privileged port number. + sys_resource: + Permit the setting of resource limits (eg. stack + size). + proc_chroot: + Permit use of chroot(2). + --> + <method_credential user='root' group='root' privileges='basic,!proc_session,!proc_info,!file_link_any,net_privaddr,file_dac_read,file_dac_search,sys_resource,proc_chroot' /> + </method_context> + </exec_method> + <!-- + SIGHUP causes named to reread its configuration file, but not any + of the properties below. + --> + <exec_method type='method' name='refresh' exec=':kill -HUP' timeout_seconds='60'> + <method_context /> + </exec_method> + <property_group name='general' type='framework'> + <!-- manage DNS server state --> + <propval name='action_authorization' type='astring' value='solaris.smf.manage.bind' /> + <propval name='value_authorization' type='astring' value='solaris.smf.manage.bind' /> + </property_group> + <!-- Default property settings for named(1M) instance. --> + <property_group name='options' type='application'> + <!-- + server: specifies an alternative server command. If + not specified the default /usr/sbin/named is used. + --> + <propval name='server' type='astring' value='' /> + <!-- + configuration_file: specifies an alternative + configuration file to be used. The property is similar + to named(1M) command line option '-c' + --> + <propval name='configuration_file' type='astring' value='' /> + <!-- + ip_interfaces: specifies which IP transport BIND will + transmit on. Possible values are 'IPv4' or 'IPv6'. Any + other setting assumes 'all', the default. + Equivalent command line option '-4' or '-6'. + --> + <propval name='ip_interfaces' type='astring' value='all' /> + <!-- + listen_on_port: Specifies the default UDP and TCP port + which will be used to listen for DNS requests. + Equivalent command line option '-p <integer>'. + --> + <propval name='listen_on_port' type='integer' value='0' /> + <!-- + debug_level: Specifies the default debug level. The + default is 0; no debugging. The Higher the number the + more verbose debug information becomes. + Equivalent command line option '-d <integer>'. + --> + <propval name='debug_level' type='integer' value='0' /> + <!-- + threads: Specifies the number of cpu worker threads to + create. The default of 0 causes named to try and + determine the number of CPUs present and create one + thread per CPU. + Equivalent command line option '-n <integer>'. + --> + <propval name='threads' type='integer' value='0' /> + <!-- + chroot_dir: Change the root directory using chroot(2) + to directory after processing the command line + arguments, but before reading the configuration file. + Equivalent command line option '-t <pathname>'. + --> + <propval name='chroot_dir' type='astring' value='' /> + </property_group> + </instance> + <stability value='Unstable' /> + <template> + <common_name> + <loctext xml:lang='C'>BIND DNS server</loctext> + </common_name> + <documentation> + <manpage title='named' section='1M' manpath='@PREFIX@/@PKGMANDIR@' /> + </documentation> + </template> + </service> +</service_bundle> diff --git a/net/bind99/files/smf/named.sh b/net/bind99/files/smf/named.sh new file mode 100644 index 00000000000..49a2da36913 --- /dev/null +++ b/net/bind99/files/smf/named.sh @@ -0,0 +1,117 @@ +#!@SMF_METHOD_SHELL@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +#pragma ident "@(#)dns-server.sh 1.1 07/03/26 SMI" + +# smf_method(5) start/stop script required for server DNS + +. /lib/svc/share/smf_include.sh + +result=${SMF_EXIT_OK} + +# Read command line arguments +method="$1" # %m +instance="$2" # %i + +# 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 +server="@PREFIX@/sbin/named" +I=`/usr/bin/basename $0` + +case "$method" in +'start') + cmdopts="" + properties="debug_level ip_interfaces listen_on_port + threads chroot_dir configuration_file server" + + 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 + 'debug_level') + if [ ${value} -gt 0 ]; then + cmdopts="${cmdopts} -d ${value}" + fi + ;; + 'ip_interfaces') + case ${value} in + 'IPv4') + cmdopts="${cmdopts} -4";; + 'IPv6') + cmdopts="${cmdopts} -6";; + 'all') + : # Default is all, therefore ignore. + ;; + *) + echo "$I: Unrecognised value in service instance property" >&2 + echo "$I: options/${prop} : ${value}" >&2 + ;; + esac + ;; + 'listen_on_port') + if [ ${value} -gt 0 ]; then + cmdopts="${cmdopts} -p ${value}" + fi + ;; + 'threads') + if [ ${value} -gt 0 ]; then + cmdopts="${cmdopts} -n ${value}" + fi + ;; + 'chroot_dir') + cmdopts="${cmdopts} -t ${value}" + ;; + 'configuration_file') + cmdopts="${cmdopts} -c ${value}" + ;; + 'server') + set -- `echo ${value} | /usr/bin/sed -e 's/\\\\//g'` + server=$@ + ;; + esac + done + + if [ ${result} = ${SMF_EXIT_OK} ]; then + echo "$I: Executing: ${server} ${cmdopts}" + # Execute named(1M) with relevant command line options. + ${server} ${cmdopts} + result=$? + fi + ;; +'stop') + smf_kill_contract ${contract} TERM 1 + [ $? -ne 0 ] && exit 1 + ;; +*) + echo "Usage: $I [stop|start] <instance>" >&2 + exit 1 + ;; +esac +exit ${result} |