summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorwiedi <wiedi@pkgsrc.org>2014-09-08 16:57:01 +0000
committerwiedi <wiedi@pkgsrc.org>2014-09-08 16:57:01 +0000
commit2801a67bdb23b86616675b72688773413f368813 (patch)
treefdfea503ea740fd06bc23b8405e888cdb9c999d6 /net
parenta2662849d23bed9a316f7248df09532d1b189e76 (diff)
downloadpkgsrc-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/Makefile5
-rw-r--r--net/openvpn/files/smf/manifest.xml33
-rw-r--r--net/openvpn/files/smf/openvpn.sh48
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