Add SMF manifest for openvpn. Provided by Ernst Glatz in https://github.com/joyent/pkgsrc/pull/218diff -r1.53 -r1.54 pkgsrc/net/openvpn/Makefile
(wiedi)
@@ -1,16 +1,17 @@ | @@ -1,16 +1,17 @@ | |||
1 | # $NetBSD: Makefile,v 1.53 2014/07/20 17:43:29 adam Exp $ | 1 | # $NetBSD: Makefile,v 1.54 2014/09/08 16:57:01 wiedi Exp $ | |
2 | 2 | |||
3 | DISTNAME= ${OPENVPN_DISTNAME} | 3 | DISTNAME= ${OPENVPN_DISTNAME} | |
4 | PKGREVISION= 1 | |||
4 | CATEGORIES= net | 5 | CATEGORIES= net | |
5 | MASTER_SITES= ${OPENVPN_MASTER_SITES} | 6 | MASTER_SITES= ${OPENVPN_MASTER_SITES} | |
6 | EXTRACT_SUFX= .tar.xz | 7 | EXTRACT_SUFX= .tar.xz | |
7 | 8 | |||
8 | MAINTAINER= pkgsrc-users@NetBSD.org | 9 | MAINTAINER= pkgsrc-users@NetBSD.org | |
9 | HOMEPAGE= http://openvpn.net/ | 10 | HOMEPAGE= http://openvpn.net/ | |
10 | COMMENT= Easy-to-use SSL VPN daemon | 11 | COMMENT= Easy-to-use SSL VPN daemon | |
11 | LICENSE= gnu-gpl-v2 | 12 | LICENSE= gnu-gpl-v2 | |
12 | 13 | |||
13 | PKG_DESTDIR_SUPPORT= user-destdir | 14 | PKG_DESTDIR_SUPPORT= user-destdir | |
14 | 15 | |||
15 | USE_LIBTOOL= yes | 16 | USE_LIBTOOL= yes | |
16 | USE_TOOLS+= aclocal autoconf autom4te grep:run pkg-config | 17 | USE_TOOLS+= aclocal autoconf autom4te grep:run pkg-config | |
@@ -22,26 +23,28 @@ CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSC | @@ -22,26 +23,28 @@ CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSC | |||
22 | 23 | |||
23 | USE_OLD_DES_API= yes | 24 | USE_OLD_DES_API= yes | |
24 | TEST_TARGET= check | 25 | TEST_TARGET= check | |
25 | 26 | |||
26 | PKG_SYSCONFSUBDIR= openvpn | 27 | PKG_SYSCONFSUBDIR= openvpn | |
27 | DATADIR= ${PREFIX}/share/${PKGBASE} | 28 | DATADIR= ${PREFIX}/share/${PKGBASE} | |
28 | EGDIR= ${PREFIX}/share/examples/${PKGBASE} | 29 | EGDIR= ${PREFIX}/share/examples/${PKGBASE} | |
29 | RCD_SCRIPTS= openvpn | 30 | RCD_SCRIPTS= openvpn | |
30 | 31 | |||
31 | INSTALLATION_DIRS+= ${EGDIR}/config | 32 | INSTALLATION_DIRS+= ${EGDIR}/config | |
32 | INSTALLATION_DIRS+= ${EGDIR}/keys | 33 | INSTALLATION_DIRS+= ${EGDIR}/keys | |
33 | INSTALLATION_DIRS+= ${EGDIR}/scripts | 34 | INSTALLATION_DIRS+= ${EGDIR}/scripts | |
34 | 35 | |||
36 | SMF_METHODS+= openvpn | |||
37 | ||||
35 | .include "../../mk/bsd.prefs.mk" | 38 | .include "../../mk/bsd.prefs.mk" | |
36 | 39 | |||
37 | PKG_GROUPS= ${OPENVPN_GROUP} | 40 | PKG_GROUPS= ${OPENVPN_GROUP} | |
38 | PKG_USERS= ${OPENVPN_USER}:${OPENVPN_GROUP} | 41 | PKG_USERS= ${OPENVPN_USER}:${OPENVPN_GROUP} | |
39 | PKG_GECOS.${OPENVPN_USER}= OpenVPN\ server\ user | 42 | PKG_GECOS.${OPENVPN_USER}= OpenVPN\ server\ user | |
40 | 43 | |||
41 | MESSAGE_SUBST+= OPENVPN_PLUGINSDIR=${PREFIX}/${OPENVPN_PLUGINSDIR} | 44 | MESSAGE_SUBST+= OPENVPN_PLUGINSDIR=${PREFIX}/${OPENVPN_PLUGINSDIR} | |
42 | 45 | |||
43 | post-install: | 46 | post-install: | |
44 | set -e; cd ${WRKSRC}/sample/sample-config-files; for file in *; do \ | 47 | set -e; cd ${WRKSRC}/sample/sample-config-files; for file in *; do \ | |
45 | ${INSTALL_DATA} $$file ${DESTDIR}${EGDIR}/config; \ | 48 | ${INSTALL_DATA} $$file ${DESTDIR}${EGDIR}/config; \ | |
46 | done | 49 | done | |
47 | set -e; cd ${WRKSRC}/sample/sample-scripts; for file in *; do \ | 50 | set -e; cd ${WRKSRC}/sample/sample-scripts; for file in *; do \ |
<?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>
#!@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