diff options
author | Michael Mason <ms13sp@gmail.com> | 2009-03-18 13:37:52 +0000 |
---|---|---|
committer | Michael Mason <ms13sp@gmail.com> | 2009-03-18 13:37:52 +0000 |
commit | c9fa1a7056ea1f965fcc22a9d83e125b0ad72282 (patch) | |
tree | 32ab14b2490dc698eb0c82f1ac1dcd0fd4e312b4 | |
parent | 829a8c02bd6f68d346831806f4d41a0e143cbb33 (diff) | |
parent | 70f6b7df72309a8270470877ceda9805415a4224 (diff) | |
download | aports-c9fa1a7056ea1f965fcc22a9d83e125b0ad72282.tar.bz2 aports-c9fa1a7056ea1f965fcc22a9d83e125b0ad72282.tar.xz |
Merge branch 'master' of git://dev.alpinelinux.org/aports
-rw-r--r-- | extra/openvpn/APKBUILD | 54 | ||||
-rw-r--r-- | extra/openvpn/openvpn-2.0.9-persistent.patch | 44 | ||||
-rw-r--r-- | extra/openvpn/openvpn.initd | 63 |
3 files changed, 161 insertions, 0 deletions
diff --git a/extra/openvpn/APKBUILD b/extra/openvpn/APKBUILD new file mode 100644 index 000000000..3b927139d --- /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 000000000..e042124ea --- /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 000000000..a6e4529e1 --- /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 |