pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/net/tinc



Module Name:    pkgsrc
Committed By:   jperkin
Date:           Sun Sep 30 15:55:25 UTC 2018

Modified Files:
        pkgsrc/net/tinc: Makefile PLIST
Added Files:
        pkgsrc/net/tinc: MESSAGE.smf
        pkgsrc/net/tinc/files: tinc-down tinc-up tinc.conf
        pkgsrc/net/tinc/files/smf: manifest.xml tinc.sh

Log Message:
tinc: Provide SMF and user support.

Submitted by Antonio Huete in joyent/pkgsrc#108.  Bump PKGREVISION.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/net/tinc/MESSAGE.smf
cvs rdiff -u -r1.27 -r1.28 pkgsrc/net/tinc/Makefile
cvs rdiff -u -r1.4 -r1.5 pkgsrc/net/tinc/PLIST
cvs rdiff -u -r0 -r1.1 pkgsrc/net/tinc/files/tinc-down \
    pkgsrc/net/tinc/files/tinc-up pkgsrc/net/tinc/files/tinc.conf
cvs rdiff -u -r0 -r1.1 pkgsrc/net/tinc/files/smf/manifest.xml \
    pkgsrc/net/tinc/files/smf/tinc.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/net/tinc/Makefile
diff -u pkgsrc/net/tinc/Makefile:1.27 pkgsrc/net/tinc/Makefile:1.28
--- pkgsrc/net/tinc/Makefile:1.27       Fri Sep  8 13:53:25 2017
+++ pkgsrc/net/tinc/Makefile    Sun Sep 30 15:55:25 2018
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile,v 1.27 2017/09/08 13:53:25 jperkin Exp $
+# $NetBSD: Makefile,v 1.28 2018/09/30 15:55:25 jperkin Exp $
 
 DISTNAME=      tinc-1.0.32
+PKGREVISION=   1
 CATEGORIES=    net
 MASTER_SITES=  http://www.tinc-vpn.org/packages/
 
@@ -9,6 +10,8 @@ HOMEPAGE=      http://www.tinc-vpn.org/
 COMMENT=       Virtual Private Network (VPN) daemon
 LICENSE=       gnu-gpl-v2
 
+BUILD_DEFS+=           VARBASE
+
 INFO_FILES=            yes
 USE_TOOLS+=            msgfmt
 GNU_CONFIGURE=         yes
@@ -16,7 +19,45 @@ GNU_CONFIGURE=               yes
 SUBST_CLASSES+=                mdoc
 SUBST_FILES.mdoc=      doc/tinc.conf.5.in
 SUBST_SED.mdoc+=       -e '/^$$/d'
-SUBST_STAGE.mdoc=      pre-patch
+SUBST_STAGE.mdoc=      pre-configure
+
+EGDIR=                 ${PREFIX}/share/examples/tinc
+TINC_USER?=            tinc
+TINC_GROUP?=           tinc
+
+PKG_GROUPS_VARS+=      TINC_GROUP
+PKG_USERS_VARS+=       TINC_USER
+
+PKG_GROUPS=            ${TINC_GROUP}
+PKG_USERS=             ${TINC_USER}:${TINC_GROUP}
+PKG_SHELL.${TINC_USER}=        ${SH}
+
+OWN_DIRS+=             ${VARBASE}/log/tinc
+MAKE_DIRS+=            ${PKG_SYSCONFDIR}/default
+
+INSTALLATION_DIRS=     share/examples/tinc
+
+PKG_SYSCONFSUBDIR=     tinc
+
+CONF_FILES_PERMS+=     ${EGDIR}/tinc.conf ${PKG_SYSCONFDIR}/default/tinc.conf \
+                       ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 644
+CONF_FILES_PERMS+=     ${EGDIR}/tinc-up ${PKG_SYSCONFDIR}/default/tinc-up \
+                       ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 755
+CONF_FILES_PERMS+=     ${EGDIR}/tinc-down ${PKG_SYSCONFDIR}/default/tinc-down \
+                       ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 755
+
+.include "../../mk/bsd.prefs.mk"
+
+.if ${INIT_SYSTEM} == "smf"
+SMF_METHODS=           tinc
+MESSAGE_SRC+=          MESSAGE.smf
+MESSAGE_SUBST+=                PKG_SYSCONFDIR=${PKG_SYSCONFDIR:Q}
+.endif
+
+post-install:
+       ${INSTALL_DATA} ${FILESDIR}/tinc.conf ${DESTDIR}${EGDIR}
+       ${INSTALL_DATA} ${FILESDIR}/tinc-up ${DESTDIR}${EGDIR}
+       ${INSTALL_DATA} ${FILESDIR}/tinc-down ${DESTDIR}${EGDIR}
 
 .include "../../archivers/lzo/buildlink3.mk"
 .include "../../converters/libiconv/buildlink3.mk"

Index: pkgsrc/net/tinc/PLIST
diff -u pkgsrc/net/tinc/PLIST:1.4 pkgsrc/net/tinc/PLIST:1.5
--- pkgsrc/net/tinc/PLIST:1.4   Sat May  1 16:56:40 2010
+++ pkgsrc/net/tinc/PLIST       Sun Sep 30 15:55:25 2018
@@ -1,5 +1,8 @@
-@comment $NetBSD: PLIST,v 1.4 2010/05/01 16:56:40 tonnerre Exp $
+@comment $NetBSD: PLIST,v 1.5 2018/09/30 15:55:25 jperkin Exp $
 info/tinc.info
 man/man5/tinc.conf.5
 man/man8/tincd.8
 sbin/tincd
+share/examples/tinc/tinc-down
+share/examples/tinc/tinc-up
+share/examples/tinc/tinc.conf

Added files:

Index: pkgsrc/net/tinc/MESSAGE.smf
diff -u /dev/null pkgsrc/net/tinc/MESSAGE.smf:1.1
--- /dev/null   Sun Sep 30 15:55:25 2018
+++ pkgsrc/net/tinc/MESSAGE.smf Sun Sep 30 15:55:25 2018
@@ -0,0 +1,27 @@
+===========================================================================
+$NetBSD: MESSAGE.smf,v 1.1 2018/09/30 15:55:25 jperkin Exp $
+
+ This package supports multiple SMF instances.
+
+ By default a 'default' instance is created and a example tinc.conf
+ config file is put in place in the 'default' network directory.
+ No keys will be generated automatically, the user is expected to do so.
+
+ Configure using the SMF properties: user, chroot, memlock
+
+ 'user' is the user to setuid to after initialization.
+ 'chroot' will chroot the server process to the directory where the
+ network config is located.
+ 'memlock' locks tinc into the main memory.
+
+ For more information about these options check tincd(8) manpage.
+
+ Add a example service instance:
+
+  svccfg -s tinc add mynetwork
+  svccfg -s tinc:mynetwork addpg tinc application
+  svccfg -s tinc:mynetwork setprop tinc/user = astring: tincuser
+  svccfg -s tinc:mynetwork setprop tinc/chroot = boolean: true
+  svccfg -s tinc:mynetwork setprop tinc/memlock = boolean: true
+
+===========================================================================

Index: pkgsrc/net/tinc/files/tinc-down
diff -u /dev/null pkgsrc/net/tinc/files/tinc-down:1.1
--- /dev/null   Sun Sep 30 15:55:25 2018
+++ pkgsrc/net/tinc/files/tinc-down     Sun Sep 30 15:55:25 2018
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+ifconfig $INTERFACE down
+ifconfig $INTERFACE unplumb
Index: pkgsrc/net/tinc/files/tinc-up
diff -u /dev/null pkgsrc/net/tinc/files/tinc-up:1.1
--- /dev/null   Sun Sep 30 15:55:25 2018
+++ pkgsrc/net/tinc/files/tinc-up       Sun Sep 30 15:55:25 2018
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+ifconfig $INTERFACE plumb
+ifconfig $INTERFACE 192.168.100.1 netmask 255.255.255.0 up
+
+# Add the routes needed
+# route add -net 192.168.4.0/24 172.16.12.10 -interface
Index: pkgsrc/net/tinc/files/tinc.conf
diff -u /dev/null pkgsrc/net/tinc/files/tinc.conf:1.1
--- /dev/null   Sun Sep 30 15:55:25 2018
+++ pkgsrc/net/tinc/files/tinc.conf     Sun Sep 30 15:55:25 2018
@@ -0,0 +1,66 @@
+# $NetBSD: tinc.conf,v 1.1 2018/09/30 15:55:25 jperkin Exp $
+#
+# tinc-vpn example configuration file. Please do NOT rely solely in the
+# information of this template, the information tinc.conf(5) manpage might
+# be more current.
+#
+# -------------------------------------------------------------------------------
+#    Name = name [required]
+#      This is the name which identifies this tinc daemon.  It must be unique
+#      for the virtual private network this daemon will connect to.
+#      We're using 'default' to match the instance name of the SMF service which
+#      is created by default.
+# -------------------------------------------------------------------------------
+Name = default
+#
+#
+# -------------------------------------------------------------------------------
+#    Mode = router | switch | hub (router)
+#      This option selects the way packets are routed to other daemons.
+#
+#      router  In this mode Subnet variables in the host configuration files will
+#              be used to form a routing table.  Only unicast packets of routable
+#              protocols (IPv4 and IPv6) are supported in this mode.
+#
+#              This is the default mode, and unless you really know you need
+#              another mode, don't change it.
+#
+#      switch  In this mode the MAC addresses of the packets on the VPN will be
+#              used to dynamically create a routing table just like an Ethernet
+#              switch does.  Unicast, multicast and broadcast packets of every
+#              protocol that runs over Ethernet are supported in this mode at the
+#              cost of frequent broadcast ARP requests and routing table updates.
+#
+#              This mode is primarily useful if you want to bridge Ethernet
+#              segments.
+#
+#      hub     This mode is almost the same as the switch mode, but instead every
+#              packet will be broadcast to the other daemons while no routing
+#              table is managed.
+# -------------------------------------------------------------------------------
+# Mode = router
+#
+#
+# -------------------------------------------------------------------------------
+#   ConnectTo = name
+#      Specifies which other tinc daemon to connect to on startup.  Multiple
+#      ConnectTo variables may be specified, in which case outgoing connections
+#      to each specified tinc daemon are made.  The names should be known to this
+#      tinc daemon (i.e., there should be a host configuration file for the name
+#      on the ConnectTo line).
+#
+#      If you don't specify a host with ConnectTo, tinc won't try to connect to
+#      other daemons at all, and will instead just listen for incoming
+#      connections.
+# -------------------------------------------------------------------------------
+# ConnectTo = vpn1
+#
+#
+# -------------------------------------------------------------------------------
+#    DeviceType = type (platform dependent)
+#       The type of the virtual network device.  Tinc will normally automatically
+#       select the right type of tun/tap interface, and this option should not be
+#       used.  However, this option can be used to select one of the special
+#       interface types, if support for them is compiled in.
+# -------------------------------------------------------------------------------
+# DeviceType = tap

Index: pkgsrc/net/tinc/files/smf/manifest.xml
diff -u /dev/null pkgsrc/net/tinc/files/smf/manifest.xml:1.1
--- /dev/null   Sun Sep 30 15:55:25 2018
+++ pkgsrc/net/tinc/files/smf/manifest.xml      Sun Sep 30 15:55:25 2018
@@ -0,0 +1,28 @@
+<?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='1'>
+    <create_default_instance enabled='false'/>
+    <dependency name='network' grouping='require_all' restart_on='refresh' type='service'>
+      <service_fmri value='svc:/milestone/network:default'/>
+    </dependency>
+    <dependency name='filesystem' grouping='require_all' restart_on='refresh' type='service'>
+      <service_fmri value='svc:/system/filesystem/local'/>
+    </dependency>
+    <exec_method type='method' name='start' exec='@PREFIX@/@SMF_METHOD_FILE.tinc@ start' timeout_seconds='60'/>
+    <exec_method type='method' name='stop'  exec='@PREFIX@/@SMF_METHOD_FILE.tinc@ stop' timeout_seconds='60'/>
+    <property_group name='application' type='application'></property_group>
+    <property_group name='startd' type='framework'>
+      <propval name='duration' type='astring' value='contract'/>
+      <propval name='ignore_error' type='astring' value='core,signal'/>
+    </property_group>
+    <template>
+      <common_name>
+        <loctext xml:lang='C'>Virtual Private Network (VPN) daemon</loctext>
+      </common_name>
+      <documentation>
+        <manpage title='tincd' section='8' manpath='@PREFIX@/@PKGMANDIR@'/>
+      </documentation>
+    </template>
+  </service>
+</service_bundle>
Index: pkgsrc/net/tinc/files/smf/tinc.sh
diff -u /dev/null pkgsrc/net/tinc/files/smf/tinc.sh:1.1
--- /dev/null   Sun Sep 30 15:55:25 2018
+++ pkgsrc/net/tinc/files/smf/tinc.sh   Sun Sep 30 15:55:25 2018
@@ -0,0 +1,52 @@
+#!@SMF_METHOD_SHELL@
+#
+# Init script for tinc (SMF)
+#
+
+. /lib/svc/share/smf_include.sh
+
+getproparg() {
+       svcprop -p $1 $SMF_FMRI 2>/dev/null
+}
+
+METHOD=$1
+INSTANCE=$(echo $SMF_FMRI | sed s_.*:__)
+INSTANCE=${INSTANCE:=default}
+
+LOGDIR="@VARBASE@/log/tinc"
+LOGFILE="${LOGDIR}/tinc.${INSTANCE}.log"
+PIDFILE="@VARBASE@/run/tinc.${INSTANCE}.pid"
+_USER=$(getproparg tinc/user)
+_CHROOT=$(getproparg tinc/chroot)
+_MEMLOCK=$(getproparg tinc/memlock)
+
+USER=${_USER:=tinc}
+
+TINC_FLAGS=""
+
+# Check if there is a configuration directory for this instance
+if [ ! -d @PKG_SYSCONFDIR@/${INSTANCE} ]; then
+       echo "$0: No configuration directory found"
+       exit $SMF_EXIT_ERR_CONFIG
+fi
+
+# Chroot tinc into its config directory
+if [ "${_CHROOT}" == "true" ]; then
+       TINC_FLAGS="${TINC_FLAGS} -R"
+fi
+
+# Lock tinc memory to avoid going into swap
+if [ "${_MEMLOCK}" == "true" ]; then
+       TINC_FLAGS="${TINC_FLAGS} -L"
+fi
+
+case ${METHOD} in
+start)
+       @PREFIX@/sbin/tincd -n ${INSTANCE} -U ${USER} ${TINC_FLAGS} --logfile=${LOGFILE} --pidfile=${PIDFILE}
+       ;;
+stop)
+       @PREFIX@/sbin/tincd -n ${INSTANCE} -k --pidfile=${PIDFILE}
+       ;;
+esac
+
+exit ${SMF_EXIT_OK}



Home | Main Index | Thread Index | Old Index