aboutsummaryrefslogtreecommitdiffstats
path: root/extra
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-03-18 13:24:15 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-03-18 13:24:15 +0000
commit70f6b7df72309a8270470877ceda9805415a4224 (patch)
treeea4c3a00679dfbf26346f2542b002b1b97f09a4e /extra
parent726860e8484051831ca52c28a922fbad5444d766 (diff)
downloadaports-70f6b7df72309a8270470877ceda9805415a4224.tar.bz2
aports-70f6b7df72309a8270470877ceda9805415a4224.tar.xz
extra/openvpn: new aport
A robust, and highly configurable VPN (Virtual Private Network) http://openvpn.sourceforge.net/
Diffstat (limited to 'extra')
-rw-r--r--extra/openvpn/APKBUILD54
-rw-r--r--extra/openvpn/openvpn-2.0.9-persistent.patch44
-rw-r--r--extra/openvpn/openvpn.initd63
3 files changed, 161 insertions, 0 deletions
diff --git a/extra/openvpn/APKBUILD b/extra/openvpn/APKBUILD
new file mode 100644
index 0000000000..3b927139d1
--- /dev/null
+++ b/extra/openvpn/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=openvpn
+pkgver=2.0.9
+pkgrel=0
+pkgdesc="A robust, and highly configurable VPN (Virtual Private Network)"
+url="http://openvpn.sourceforge.net/"
+license="custom"
+subpackages="$pkgname-doc"
+depends="openssl iproute2 lzo"
+makedepends="openssl-dev lzo-dev"
+install=
+source="http://$pkgname.net/release/$pkgname-$pkgver.tar.gz
+ openvpn-2.0.9-persistent.patch
+ "
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+ for i in ../*.patch; do
+ msg "Applying $i..."
+ patch -p1 < $i || return 1
+ done
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-ssl \
+ --enable-crypto \
+ --disable-threads
+
+ make || return 1
+
+ cd plugin/down-root
+ make || return 1
+ cd ../..
+
+ make DESTDIR="$pkgdir" install || return 1
+
+ # install plugins
+ install -d "$pkgdir"/usr/lib/$pkgname
+ cp plugin/*/*.so "$pkgdir"/usr/lib/$pkgname
+
+ # install easy-rsa
+ sed -i -e 's/--directory/-d/g; s/--mode/-m/g' easy-rsa/2.0/Makefile
+ make -C easy-rsa/2.0 DESTDIR="$pkgdir" \
+ PREFIX=usr/share/openvpn/easy-rsa \
+ install
+
+ # install examples
+ mkdir -p "$pkgdir"/usr/share/doc/$pkgname/examples
+ cp -a sample-config-files "$pkgdir"/usr/share/doc/$pkgname/examples
+ install -D -m644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+
+}
+md5sums="60745008b90b7dbe25fe8337c550fec6 openvpn-2.0.9.tar.gz
+a9075ceb8552980519132cc27fda85ac openvpn-2.0.9-persistent.patch"
diff --git a/extra/openvpn/openvpn-2.0.9-persistent.patch b/extra/openvpn/openvpn-2.0.9-persistent.patch
new file mode 100644
index 0000000000..e042124ea4
--- /dev/null
+++ b/extra/openvpn/openvpn-2.0.9-persistent.patch
@@ -0,0 +1,44 @@
+diff -ru openvpn-2.0.9~/init.c openvpn-2.0.9/init.c
+--- openvpn-2.0.9~/init.c 2008-05-13 23:21:30.000000000 +0200
++++ openvpn-2.0.9/init.c 2008-05-13 23:22:51.000000000 +0200
+@@ -347,7 +347,8 @@
+ msg (M_FATAL|M_OPTERR,
+ "options --mktun or --rmtun should only be used together with --dev");
+ tuncfg (options->dev, options->dev_type, options->dev_node,
+- options->tun_ipv6, options->persist_mode);
++ options->tun_ipv6, options->persist_mode,
++ &options->tuntap_options);
+ return true;
+ }
+ #endif
+diff -ru openvpn-2.0.9~/tun.c openvpn-2.0.9/tun.c
+--- openvpn-2.0.9~/tun.c 2008-05-13 23:21:30.000000000 +0200
++++ openvpn-2.0.9/tun.c 2008-05-13 23:22:51.000000000 +0200
+@@ -1095,13 +1095,14 @@
+ #ifdef TUNSETPERSIST
+
+ void
+-tuncfg (const char *dev, const char *dev_type, const char *dev_node, bool ipv6, int persist_mode)
++tuncfg (const char *dev, const char *dev_type, const char *dev_node, bool ipv6, int persist_mode, const struct tuntap_options *options)
+ {
+ struct tuntap *tt;
+
+ ALLOC_OBJ (tt, struct tuntap);
+ clear_tuntap (tt);
+ tt->type = dev_type_enum (dev, dev_type);
++ tt->options = *options;
+ open_tun (dev, dev_type, dev_node, ipv6, tt);
+ if (ioctl (tt->fd, TUNSETPERSIST, persist_mode) < 0)
+ msg (M_ERR, "Cannot ioctl TUNSETPERSIST(%d) %s", persist_mode, dev);
+diff -ru openvpn-2.0.9~/tun.h openvpn-2.0.9/tun.h
+--- openvpn-2.0.9~/tun.h 2008-05-13 23:21:30.000000000 +0200
++++ openvpn-2.0.9/tun.h 2008-05-13 23:22:51.000000000 +0200
+@@ -194,7 +194,7 @@
+ int read_tun (struct tuntap* tt, uint8_t *buf, int len);
+
+ void tuncfg (const char *dev, const char *dev_type, const char *dev_node,
+- bool ipv6, int persist_mode);
++ bool ipv6, int persist_mode, const struct tuntap_options *options);
+
+ const char *guess_tuntap_dev (const char *dev,
+ const char *dev_type,
diff --git a/extra/openvpn/openvpn.initd b/extra/openvpn/openvpn.initd
new file mode 100644
index 0000000000..a6e4529e1c
--- /dev/null
+++ b/extra/openvpn/openvpn.initd
@@ -0,0 +1,63 @@
+#!/sbin/runscript
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+VPNDIR="/etc/openvpn"
+VPN="${SVCNAME#*.}"
+if [ -n "${VPN}" ] && [ "${SVCNAME}" != "openvpn" ]; then
+ VPNPID="/var/run/openvpn.${VPN}.pid"
+else
+ VPNPID="/var/run/openvpn.pid"
+fi
+VPNCONF="${VPNDIR}/${VPN}.conf"
+
+depend() {
+ need localmount net
+ before netmount
+ after bootmisc
+}
+
+checktundevice() {
+ if [ ! -e /dev/net/tun ]; then
+ if ! modprobe tun ; then
+ eerror "TUN/TAP support is not available in this kernel"
+ return 1
+ fi
+ fi
+ if [ -h /dev/net/tun ] && [ -c /dev/misc/net/tun ]; then
+ ebegin "Detected broken /dev/net/tun symlink, fixing..."
+ rm -f /dev/net/tun
+ ln -s /dev/misc/net/tun /dev/net/tun
+ eend $?
+ fi
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+
+ checktundevice || return 1
+
+ if [ ! -e "${VPNCONF}" ]; then
+ eend 1 "${VPNCONF} does not exist"
+ return 1
+ fi
+
+ local args=""
+ # If the config file does not specify the cd option, we do
+ # But if we specify it, we override the config option which we do not want
+ if ! grep -q "^[ \t]*cd[ \t].*" "${VPNCONF}" ; then
+ args="${args} --cd ${VPNDIR}"
+ fi
+
+ start-stop-daemon --start --exec /usr/sbin/openvpn --pidfile "${VPNPID}" \
+ -- --config "${VPNCONF}" --writepid "${VPNPID}" --daemon ${args}
+ eend $? "Check your logs to see why startup failed"
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --exec /usr/sbin/openvpn --pidfile "${VPNPID}"
+ eend $?
+}
+
+# vim: ts=4