From b70981b68efcce5256eb11c6cd26ae123b10b6ea Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 24 Jul 2009 08:01:31 +0000 Subject: moved extra/* to main/ and fixed misc build issues --- main/openvpn/APKBUILD | 54 +++++++++++++++++++++++++ main/openvpn/openvpn-2.0.9-persistent.patch | 44 ++++++++++++++++++++ main/openvpn/openvpn.initd | 63 +++++++++++++++++++++++++++++ 3 files changed, 161 insertions(+) create mode 100644 main/openvpn/APKBUILD create mode 100644 main/openvpn/openvpn-2.0.9-persistent.patch create mode 100644 main/openvpn/openvpn.initd (limited to 'main/openvpn') diff --git a/main/openvpn/APKBUILD b/main/openvpn/APKBUILD new file mode 100644 index 0000000000..3b927139d1 --- /dev/null +++ b/main/openvpn/APKBUILD @@ -0,0 +1,54 @@ +# Maintainer: Natanael Copa +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/main/openvpn/openvpn-2.0.9-persistent.patch b/main/openvpn/openvpn-2.0.9-persistent.patch new file mode 100644 index 0000000000..e042124ea4 --- /dev/null +++ b/main/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/main/openvpn/openvpn.initd b/main/openvpn/openvpn.initd new file mode 100644 index 0000000000..a6e4529e1c --- /dev/null +++ b/main/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 -- cgit v1.2.3