From 6f01709adb0e849c4f4d55786e5e471cbe3878e8 Mon Sep 17 00:00:00 2001 From: Carlo Landmeter Date: Sat, 6 May 2017 17:51:11 +0200 Subject: community/tinc-pre: fix init and move to community --- community/tinc-pre/APKBUILD | 67 +++++++++++++++++++++++++ community/tinc-pre/tinc-1.1-fix-paths.patch | 44 ++++++++++++++++ community/tinc-pre/tinc-pre.confd | 20 ++++++++ community/tinc-pre/tinc-pre.initd | 78 +++++++++++++++++++++++++++++ community/tinc-pre/tinc-pre.networks | 13 +++++ 5 files changed, 222 insertions(+) create mode 100644 community/tinc-pre/APKBUILD create mode 100644 community/tinc-pre/tinc-1.1-fix-paths.patch create mode 100644 community/tinc-pre/tinc-pre.confd create mode 100644 community/tinc-pre/tinc-pre.initd create mode 100644 community/tinc-pre/tinc-pre.networks (limited to 'community') diff --git a/community/tinc-pre/APKBUILD b/community/tinc-pre/APKBUILD new file mode 100644 index 0000000000..2b1006e6d0 --- /dev/null +++ b/community/tinc-pre/APKBUILD @@ -0,0 +1,67 @@ +# Contributor: Carlo Landmeter +# Maintainer: +pkgname=tinc-pre +_realver="1.1pre14" +pkgver=${_realver/pre/.} +pkgrel=1 +pkgdesc="Virtual Private Network (VPN) daemon (pre-release)" +url="http://tinc-vpn.org/" +arch="all" +license="GPLv2" +depends="" +options="!check" +makedepends="linux-headers ncurses-dev readline-dev + zlib-dev lzo-dev libressl-dev texinfo" +install="" +subpackages="$pkgname-doc $pkgname-gui::noarch" +source="http://tinc-vpn.org/packages/tinc-$_realver.tar.gz + tinc-1.1-fix-paths.patch + $pkgname.initd + $pkgname.confd + $pkgname.networks + " +builddir="$srcdir/tinc-$_realver" + +build() { + cd "$builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var \ + --enable-jumbograms \ + --enable-lzo \ + --enable-zlib \ + --without-systemd \ + --enable-legacy-protocol + make +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + install -Dm755 "$srcdir"/$pkgname.initd \ + "$pkgdir"/etc/init.d/tincd + install -Dm644 "$srcdir"/$pkgname.confd \ + "$pkgdir"/etc/conf.d/tincd + install -Dm644 "$srcdir"/$pkgname.networks \ + "$pkgdir"/etc/conf.d/tinc.networks +} + +gui() { + # needs wxpython + pkgdesc="$pkgdesc (Python GUI)" + depends="python3" + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/tinc-gui \ + "$subpkgdir"/usr/bin/ +} + +sha512sums="dfc54a91fd40826b108e9cbae43da42462eb51bb7ad16ac040cb1b262b5510eb6884b1f1dbe0541a3b1631213f70cc678593d1ba51ebdf150c3f6968030b9291 tinc-1.1pre14.tar.gz +55bd0e61a1d10a89d879d5113082f0cdb5ff6bf1d1fb3f618c459eb2658836bf602f72fe27ac03ec78746e300a3a5178db053eef6f08d3cb34b11410dbeb05de tinc-1.1-fix-paths.patch +59811c3e5241d08ebdfbd539556b7cee0dfaab89727ad503512c98f1a696fae143ecdf2682a652c5d71d077ed254ffe2e1c442b1c305c7e7ea94d9af9a1d385e tinc-pre.initd +f8d9354af5ebc07420ced98059262751bffef434b61c6333964338f327e2ac01ae676e375954efa794a1bccf8b939c78387b9fb7261f675f1237b0d946b529c9 tinc-pre.confd +f7cb459c170898e51176bd92c642335386db90b7bca2abb3f6eb2514546efbd74e5fd2c8845060111dd48a0dd2cc1890717a03315c9b86185047c259cdc27135 tinc-pre.networks" diff --git a/community/tinc-pre/tinc-1.1-fix-paths.patch b/community/tinc-pre/tinc-1.1-fix-paths.patch new file mode 100644 index 0000000000..519677dd50 --- /dev/null +++ b/community/tinc-pre/tinc-1.1-fix-paths.patch @@ -0,0 +1,44 @@ +diff -Naur tinc-1.1pre14.orig/src/names.c tinc-1.1pre14/src/names.c +--- tinc-1.1pre14.orig/src/names.c 2016-04-17 12:08:41.000000000 -0400 ++++ tinc-1.1pre14/src/names.c 2016-10-15 07:37:51.147064396 -0400 +@@ -86,36 +86,11 @@ + if(!pidfilename) + xasprintf(&pidfilename, "%s" SLASH "pid", confbase); + #else +- bool fallback = false; +- if(daemon) { +- if(access(LOCALSTATEDIR, R_OK | W_OK | X_OK)) +- fallback = true; +- } else { +- char fname[PATH_MAX]; +- snprintf(fname, sizeof fname, LOCALSTATEDIR SLASH "run" SLASH "%s.pid", identname); +- if(access(fname, R_OK)) { +- snprintf(fname, sizeof fname, "%s" SLASH "pid", confbase); +- if(!access(fname, R_OK)) +- fallback = true; +- } +- } ++ if(!logfilename) ++ xasprintf(&logfilename, "/var/log" SLASH "%s.log", identname); + +- if(!fallback) { +- if(!logfilename) +- xasprintf(&logfilename, LOCALSTATEDIR SLASH "log" SLASH "%s.log", identname); +- +- if(!pidfilename) +- xasprintf(&pidfilename, LOCALSTATEDIR SLASH "run" SLASH "%s.pid", identname); +- } else { +- if(!logfilename) +- xasprintf(&logfilename, "%s" SLASH "log", confbase); +- +- if(!pidfilename) { +- if(daemon) +- logger(DEBUG_ALWAYS, LOG_WARNING, "Could not access " LOCALSTATEDIR SLASH " (%s), storing pid and socket files in %s" SLASH, strerror(errno), confbase); +- xasprintf(&pidfilename, "%s" SLASH "pid", confbase); +- } +- } ++ if(!pidfilename) ++ xasprintf(&pidfilename, "/run" SLASH "%s.pid", identname); + #endif + + if(!unixsocketname) { diff --git a/community/tinc-pre/tinc-pre.confd b/community/tinc-pre/tinc-pre.confd new file mode 100644 index 0000000000..cedca60c42 --- /dev/null +++ b/community/tinc-pre/tinc-pre.confd @@ -0,0 +1,20 @@ +#rc_need="net.net" + +#If you want tincd to log to syslog, then set this to "yes" +#Anything else and tincd will log to /var/log/tinc.NETNAME.log. +SYSLOG="yes" + +#Set debug level, useful for error probe +# 0 Quiet mode, only show starting/stopping of the daemon +# 1 Show (dis)connects of other tinc daemons via TCP +# 2 Show error messages received from other hosts +# 2 Show status messages received from other hosts +# 3 Show the requests that are sent/received +# 4 Show contents of every request that is sent/received +# 5 Show network traffic information +# 6 Show contents of each packet that is being sent/received +# 10 You have been warned +DEBUG_LEVEL="0" + +#Extra Options, if you want addtional customization +EXTRA_OPTS="" diff --git a/community/tinc-pre/tinc-pre.initd b/community/tinc-pre/tinc-pre.initd new file mode 100644 index 0000000000..55728bec2c --- /dev/null +++ b/community/tinc-pre/tinc-pre.initd @@ -0,0 +1,78 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands="reload" + +NETS="/etc/conf.d/tinc.networks" +DAEMON="/usr/sbin/tincd" + +depend() { + use logger dns + need net +} + +checkconfig() { + if [ "${RC_SVCNAME}" = "tincd" ] ; then + ALL_NETNAME="$(awk '/^ *NETWORK:/ { print $2 }' "${NETS}")" + else + ALL_NETNAME="${RC_SVCNAME#*.}" + fi + # warn this if still not found + if [ -z "${ALL_NETNAME}" ] ; then + eerror "No VPN networks configured in ${NETS}" + return 1 + fi + return 0 +} + +start() { + ebegin "Starting tinc VPN networks" + checkconfig || return 1 + for NETNAME in ${ALL_NETNAME} + do + CONFIG="/etc/tinc/${NETNAME}/tinc.conf" + PIDFILE="/run/tinc.${NETNAME}.pid" + if [ ! -f "${CONFIG}" ]; then + eerror "Cannot start network ${NETNAME}." + eerror "Please set up ${CONFIG} !" + else + ebegin "Starting tinc network ${NETNAME}" + if [ "${SYSLOG}" = "yes" ]; then + LOG="" + else + LOG="--logfile=/var/log/tinc.${NETNAME}.log" + fi + start-stop-daemon --start --exec "${DAEMON}" --pidfile "${PIDFILE}" -- --net="${NETNAME}" ${LOG} --pidfile "${PIDFILE}" --debug="${DEBUG_LEVEL}" ${EXTRA_OPTS} + eend $? + fi + done +} + +stop() { + ebegin "Stopping tinc VPN networks" + checkconfig || return 1 + for NETNAME in ${ALL_NETNAME} + do + PIDFILE="/run/tinc.${NETNAME}.pid" + if [ -f "${PIDFILE}" ]; then + ebegin "Stopping tinc network ${NETNAME}" + start-stop-daemon --stop --pidfile "${PIDFILE}" + eend $? + fi + done +} + +reload() { + ebegin "Reloading configuration for tinc VPN networks" + checkconfig || return 1 + for NETNAME in ${ALL_NETNAME} + do + PIDFILE="/run/tinc.${NETNAME}.pid" + if [ -f "${PIDFILE}" ]; then + ebegin "Reloading tinc network ${NETNAME}" + start-stop-daemon --signal HUP --pidfile ${PIDFILE} + eend $? + fi + done +} diff --git a/community/tinc-pre/tinc-pre.networks b/community/tinc-pre/tinc-pre.networks new file mode 100644 index 0000000000..e1844ce2ba --- /dev/null +++ b/community/tinc-pre/tinc-pre.networks @@ -0,0 +1,13 @@ +# file: /etc/conf.d/tinc.networks for /etc/init.d/tincd + +# In this file you define the tinc networks you want to connect to + +# USAGE: +# you add a network to the init script by defining: +# NETWORK: your_network_name +# +# if you want to connect to multiple VPN's just set them behind each other. e.g. +# NETWORK: foo +# NETWORK: bar +# +# this would join the network foo and the network bar. -- cgit v1.2.3