diff options
author | wiedi <wiedi@pkgsrc.org> | 2014-09-08 16:57:01 +0000 |
---|---|---|
committer | wiedi <wiedi@pkgsrc.org> | 2014-09-08 16:57:01 +0000 |
commit | 2801a67bdb23b86616675b72688773413f368813 (patch) | |
tree | fdfea503ea740fd06bc23b8405e888cdb9c999d6 /net | |
parent | a2662849d23bed9a316f7248df09532d1b189e76 (diff) | |
download | pkgsrc-2801a67bdb23b86616675b72688773413f368813.tar.gz |
Add SMF manifest for openvpn.
Provided by Ernst Glatz in https://github.com/joyent/pkgsrc/pull/218
Diffstat (limited to 'net')
-rw-r--r-- | net/openvpn/Makefile | 5 | ||||
-rw-r--r-- | net/openvpn/files/smf/manifest.xml | 33 | ||||
-rw-r--r-- | net/openvpn/files/smf/openvpn.sh | 48 |
3 files changed, 85 insertions, 1 deletions
diff --git a/net/openvpn/Makefile b/net/openvpn/Makefile index ef7e78cceb5..df4279be6bb 100644 --- a/net/openvpn/Makefile +++ b/net/openvpn/Makefile @@ -1,6 +1,7 @@ -# $NetBSD: Makefile,v 1.53 2014/07/20 17:43:29 adam Exp $ +# $NetBSD: Makefile,v 1.54 2014/09/08 16:57:01 wiedi Exp $ DISTNAME= ${OPENVPN_DISTNAME} +PKGREVISION= 1 CATEGORIES= net MASTER_SITES= ${OPENVPN_MASTER_SITES} EXTRACT_SUFX= .tar.xz @@ -32,6 +33,8 @@ INSTALLATION_DIRS+= ${EGDIR}/config INSTALLATION_DIRS+= ${EGDIR}/keys INSTALLATION_DIRS+= ${EGDIR}/scripts +SMF_METHODS+= openvpn + .include "../../mk/bsd.prefs.mk" PKG_GROUPS= ${OPENVPN_GROUP} diff --git a/net/openvpn/files/smf/manifest.xml b/net/openvpn/files/smf/manifest.xml new file mode 100644 index 00000000000..cfad08b2dd2 --- /dev/null +++ b/net/openvpn/files/smf/manifest.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" ?> +<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> +<service_bundle type="manifest" name="export"> + <service name='@SMF_PREFIX@/@SMF_NAME@' type="service" version="0"> + <create_default_instance enabled="true"/> + <dependency name="fs" grouping="require_all" restart_on="none" type="service"> + <service_fmri value="svc:/system/filesystem/local"/> + </dependency> + <dependency name="net" grouping="require_all" restart_on="none" type="service"> + <service_fmri value="svc:/network/loopback"/> + </dependency> + <exec_method name="start" type="method" exec="@PREFIX@/@SMF_METHOD_FILE.openvpn@ start %{config}" timeout_seconds="60" > + <method_context working_directory='@PKG_SYSCONFDIR@' /> + </exec_method> + <exec_method name="stop" type="method" exec="@PREFIX@/@SMF_METHOD_FILE.openvpn@ stop" timeout_seconds="60" /> + <property_group name="startd" type="framework"> + <propval name="duration" type="astring" value="child"/> + </property_group> + <property_group name="application" type="application"> + <propval name="config" type="astring" value="@PKG_SYSCONFDIR@/openvpn.conf"/> + </property_group> + <stability value="External"/> + <template> + <common_name> + <loctext xml:lang="C">openvpn</loctext> + </common_name> + <documentation> + <manpage title="openvpn" section="8" manpath="man"/> + <doc_link name="openvpn.net" uri="http://openvpn.net/index.php/manuals"/> + </documentation> + </template> + </service> +</service_bundle> diff --git a/net/openvpn/files/smf/openvpn.sh b/net/openvpn/files/smf/openvpn.sh new file mode 100644 index 00000000000..47ec711f2f9 --- /dev/null +++ b/net/openvpn/files/smf/openvpn.sh @@ -0,0 +1,48 @@ +#!@SMF_METHOD_SHELL@ +# +# $NetBSD: openvpn.sh,v 1.1 2014/09/08 16:57:01 wiedi Exp $ +# +# Init script for openvpn (SMF). +# +. /lib/svc/share/smf_include.sh + + + + +METHOD=$1 +CONFIG=$2 +PATH="@PREFIX@/sbin:@PREFIX@/bin:@PREFIX@/gnu/bin:/usr/bin:/usr/sbin" +SCRIPTNAME=$(basename $0) +INSTANCE=$(echo $SMF_FMRI | sed s_.*:__) +PIDFILE="@VARBASE@/run/openvpn-$INSTANCE.pid" + +case $METHOD in +start) + if [[ ! -f $CONFIG ]] + then + echo "ERROR: Openvpn config file \""$CONFIG"\" doesn't exist" + exit $SMF_EXIT_ERR_CONFIG + fi + @PREFIX@/sbin/openvpn --config ${CONFIG} --writepid ${PIDFILE} + +;; +stop) + if [[ -s ${PIDFILE} ]] + then + kill $(cat ${PIDFILE}) 2>/dev/null + [[ $? -eq 0 ]] && rm -f ${PIDFILE} + + else + echo "ERROR: \""$PIDFILE"\" pidfile doesn't exist" + exit $SMF_EXIT_ERR_CONFIG + fi +;; + +*) + echo "usage : " + echo "$SCRIPTNAME { start | stop } " + echo "" + exit $SMF_EXIT_ERR_CONFIG +esac + +exit $SMF_EXIT_OK |