public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] dev/darkside:master commit in: net-misc/openvpn/, net-misc/openvpn/files/
@ 2012-01-29  4:32 Jeremy Olexa
  0 siblings, 0 replies; 2+ messages in thread
From: Jeremy Olexa @ 2012-01-29  4:32 UTC (permalink / raw
  To: gentoo-commits

commit:     54ce210f763c641c0bda088dc38e0025fb45d814
Author:     Jeremy Olexa <darkside <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 29 04:32:25 2012 +0000
Commit:     Jeremy Olexa <darkside <AT> gentoo <DOT> org>
CommitDate: Sun Jan 29 04:32:25 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=dev/darkside.git;a=commit;h=54ce210f

[net-misc/openvpn] version bump to 2.2.2, bug 383537

---
 net-misc/openvpn/Manifest                          |    2 +
 net-misc/openvpn/files/65openvpn                   |    1 +
 net-misc/openvpn/files/down.sh                     |   33 ++++
 net-misc/openvpn/files/openvpn-2.1.conf            |   18 ++
 net-misc/openvpn/files/openvpn-2.1.init            |  133 +++++++++++++++
 .../openvpn/files/openvpn-2.1_rc13-peercred.patch  |   10 ++
 net-misc/openvpn/files/openvpn-2.2.2-pkcs11.patch  |   36 ++++
 net-misc/openvpn/files/openvpn.init                |   63 +++++++
 net-misc/openvpn/files/up.sh                       |   82 ++++++++++
 net-misc/openvpn/openvpn-2.2.2.ebuild              |  171 ++++++++++++++++++++
 10 files changed, 549 insertions(+), 0 deletions(-)

diff --git a/net-misc/openvpn/Manifest b/net-misc/openvpn/Manifest
new file mode 100644
index 0000000..1833126
--- /dev/null
+++ b/net-misc/openvpn/Manifest
@@ -0,0 +1,2 @@
+DIST openvpn-2.2.0-ipv6-20110522-1.patch.gz 36029 RMD160 a476ba5581f0920dd5f42b2b22beeccb7ef2cbe8 SHA1 04dbcd44d825949e895d714a97e4e57617037536 SHA256 e3b415b1dd61f7fb823231c32b40516a93efc99c2b6b52e3b9fce03d4ae45053
+DIST openvpn-2.2.2.tar.gz 911158 RMD160 60990f183bdd46933724b3bf39ba5861ed0258a6 SHA1 992373cdf12e1b50655b13765a6d36a87cfd3ca3 SHA256 54ca8b260e2ea3b26e84c2282ccb5f8cb149edcfd424b686d5fb22b8dbbeac00

diff --git a/net-misc/openvpn/files/65openvpn b/net-misc/openvpn/files/65openvpn
new file mode 100644
index 0000000..4ddb034
--- /dev/null
+++ b/net-misc/openvpn/files/65openvpn
@@ -0,0 +1 @@
+CONFIG_PROTECT="/usr/share/openvpn/easy-rsa"

diff --git a/net-misc/openvpn/files/down.sh b/net-misc/openvpn/files/down.sh
new file mode 100755
index 0000000..1c70db0
--- /dev/null
+++ b/net-misc/openvpn/files/down.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+# Copyright (c) 2006-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# Contributed by Roy Marples (uberlord@gentoo.org)
+
+# If we have a service specific script, run this now
+if [ -x /etc/openvpn/"${SVCNAME}"-down.sh ] ; then
+	/etc/openvpn/"${SVCNAME}"-down.sh "$@"
+fi
+
+# Restore resolv.conf to how it was
+if [ "${PEER_DNS}" != "no" ]; then
+	if [ -x /sbin/resolvconf ] ; then
+		/sbin/resolvconf -d "${dev}"
+	elif [ -e /etc/resolv.conf-"${dev}".sv ] ; then
+		# Important that we copy instead of move incase resolv.conf is
+		# a symlink and not an actual file
+		cp /etc/resolv.conf-"${dev}".sv /etc/resolv.conf
+		rm -f /etc/resolv.conf-"${dev}".sv
+	fi
+fi
+
+if [ -n "${SVCNAME}" ]; then
+	# Re-enter the init script to start any dependant services
+	if /etc/init.d/"${SVCNAME}" --quiet status ; then
+		export IN_BACKGROUND=true
+		/etc/init.d/"${SVCNAME}" --quiet stop
+	fi
+fi
+
+exit 0
+
+# vim: ts=4 :

diff --git a/net-misc/openvpn/files/openvpn-2.1.conf b/net-misc/openvpn/files/openvpn-2.1.conf
new file mode 100644
index 0000000..72510c3
--- /dev/null
+++ b/net-misc/openvpn/files/openvpn-2.1.conf
@@ -0,0 +1,18 @@
+# OpenVPN automatically creates an /etc/resolv.conf (or sends it to
+# resolvconf) if given DNS information by the OpenVPN server.
+# Set PEER_DNS="no" to stop this.
+PEER_DNS="yes"
+
+# OpenVPN can run in many modes. Most people will want the init script
+# to automatically detect the mode and try and apply a good default
+# configuration and setup scripts. However, there are cases where the
+# OpenVPN configuration looks like a client, but it's really a peer or
+# something else. DETECT_CLIENT controls this behaviour.
+DETECT_CLIENT="yes"
+
+# If DETECT_CLIENT is no and you have your own scripts to re-enter the openvpn
+# init script (ie, it first becomes "inactive" and the script then starts the
+# script again to make it "started") then you can state this below.
+# In other words, unless you understand service dependencies and are a
+# competent shell scripter, don't set this.
+RE_ENTER="no"

diff --git a/net-misc/openvpn/files/openvpn-2.1.init b/net-misc/openvpn/files/openvpn-2.1.init
new file mode 100755
index 0000000..d65e6f8
--- /dev/null
+++ b/net-misc/openvpn/files/openvpn-2.1.init
@@ -0,0 +1,133 @@
+#!/sbin/runscript
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+VPNDIR=${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
+	use dns
+	after bootmisc
+}
+
+checkconfig() {
+	# Linux has good dynamic tun/tap creation
+	if [ $(uname -s) = "Linux" ] ; then
+		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
+		return 0
+	fi
+
+	# Other OS's don't, so we rely on a pre-configured interface
+	# per vpn instance
+	local ifname=$(sed -n -e 's/[[:space:]]*dev[[:space:]][[:space:]]*\([^[:space:]]*\).*/\1/p' "${VPNCONF}")
+	if [ -z ${ifname} ] ; then
+		eerror "You need to specify the interface that this openvpn" \
+			"instance should use" \
+			"by using the dev option in ${VPNCONF}"
+		return 1
+	fi
+
+	if ! ifconfig "${ifname}" >/dev/null 2>/dev/null ; then
+		# Try and create it
+		echo > /dev/"${ifname}" >/dev/null
+	fi
+	if ! ifconfig "${ifname}" >/dev/null 2>/dev/null ; then
+		eerror "${VPNCONF} requires interface ${ifname}" \
+			"but that does not exist"
+		return 1
+	fi
+}
+
+start() {
+	# If we are re-called by the openvpn gentoo-up.sh script
+	# then we don't actually want to start openvpn
+	[ "${IN_BACKGROUND}" = "true" ] && return 0
+	
+	ebegin "Starting ${SVCNAME}"
+
+	checkconfig || return 1
+
+	local args="" reenter=${RE_ENTER:-no}
+	# 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 "^[ 	]*cd[ 	].*" "${VPNCONF}" ; then
+		args="${args} --cd ${VPNDIR}"
+	fi
+	
+	# We mark the service as inactive and then start it.
+	# When we get an authenticated packet from the peer then we run our script
+	# which configures our DNS if any and marks us as up.
+	if [ "${DETECT_CLIENT:-yes}" = "yes" ] && \
+	grep -q "^[ 	]*remote[ 	].*" "${VPNCONF}" ; then
+		reenter="yes"
+		args="${args} --up-delay --up-restart"
+		args="${args} --script-security 2"
+		args="${args} --up /etc/openvpn/up.sh"
+		args="${args} --down-pre --down /etc/openvpn/down.sh"
+
+		# Warn about setting scripts as we override them
+		if grep -Eq "^[ 	]*(up|down)[ 	].*" "${VPNCONF}" ; then
+			ewarn "WARNING: You have defined your own up/down scripts"
+			ewarn "As you're running as a client, we now force Gentoo specific"
+			ewarn "scripts to be run for up and down events."
+			ewarn "These scripts will call /etc/openvpn/${SVCNAME}-{up,down}.sh"
+			ewarn "where you can put your own code."
+		fi
+
+		# Warn about the inability to change ip/route/dns information when
+		# dropping privs
+		if grep -q "^[ 	]*user[ 	].*" "${VPNCONF}" ; then
+			ewarn "WARNING: You are dropping root privileges!"
+			ewarn "As such openvpn may not be able to change ip, routing"
+			ewarn "or DNS configuration."
+		fi
+	else
+		# So we're a server. Run as openvpn unless otherwise specified
+		grep -q "^[ 	]*user[ 	].*" "${VPNCONF}" || args="${args} --user openvpn"
+		grep -q "^[ 	]*group[ 	].*" "${VPNCONF}" || args="${args} --group openvpn"
+	fi
+
+	# Ensure that our scripts get the PEER_DNS variable
+	[ -n "${PEER_DNS}" ] && args="${args} --setenv PEER_DNS ${PEER_DNS}"
+
+	[ "${reenter}" = "yes" ] && mark_service_inactive "${SVCNAME}"
+	start-stop-daemon --start --exec /usr/sbin/openvpn --pidfile "${VPNPID}" \
+		-- --config "${VPNCONF}" --writepid "${VPNPID}" --daemon \
+		--setenv SVCNAME "${SVCNAME}" ${args}
+	eend $? "Check your logs to see why startup failed"
+}
+
+stop() {
+	# If we are re-called by the openvpn gentoo-down.sh script
+	# then we don't actually want to stop openvpn
+	if [ "${IN_BACKGROUND}" = "true" ] ; then
+		mark_service_inactive "${SVCNAME}"
+		return 0
+	fi
+
+	ebegin "Stopping ${SVCNAME}"
+	start-stop-daemon --stop --quiet \
+		--exec /usr/sbin/openvpn --pidfile "${VPNPID}"
+	eend $?
+}
+
+# vim: set ts=4 :

diff --git a/net-misc/openvpn/files/openvpn-2.1_rc13-peercred.patch b/net-misc/openvpn/files/openvpn-2.1_rc13-peercred.patch
new file mode 100644
index 0000000..6592cf1
--- /dev/null
+++ b/net-misc/openvpn/files/openvpn-2.1_rc13-peercred.patch
@@ -0,0 +1,10 @@
+--- socket.c~	2008-11-02 01:39:00.406009999 +0100
++++ socket.c	2008-11-02 01:39:00.406009999 +0100
+@@ -22,6 +22,7 @@
+  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
++#define _GNU_SOURCE
+ #include "syshead.h"
+ 
+ #include "socket.h"

diff --git a/net-misc/openvpn/files/openvpn-2.2.2-pkcs11.patch b/net-misc/openvpn/files/openvpn-2.2.2-pkcs11.patch
new file mode 100644
index 0000000..c7115cc
--- /dev/null
+++ b/net-misc/openvpn/files/openvpn-2.2.2-pkcs11.patch
@@ -0,0 +1,36 @@
+diff --git a/easy-rsa/2.0/openssl-0.9.8.cnf b/easy-rsa/2.0/openssl-0.9.8.cnf
+index 340b8af..89602a2 100755
+--- a/easy-rsa/2.0/openssl-0.9.8.cnf
++++ b/easy-rsa/2.0/openssl-0.9.8.cnf
+@@ -283,8 +283,8 @@ authorityKeyIdentifier=keyid:always,issuer:always
+ #pkcs11 = pkcs11_section
+ 
+ [ pkcs11_section ]
+-engine_id = pkcs11
+-dynamic_path = /usr/lib/engines/engine_pkcs11.so
+-MODULE_PATH = $ENV::PKCS11_MODULE_PATH
+-PIN = $ENV::PKCS11_PIN
+-init = 0
++#engine_id = pkcs11
++#dynamic_path = /usr/lib/engines/engine_pkcs11.so
++#MODULE_PATH = $ENV::PKCS11_MODULE_PATH
++#PIN = $ENV::PKCS11_PIN
++#init = 0
+diff --git a/easy-rsa/2.0/openssl-1.0.0.cnf b/easy-rsa/2.0/openssl-1.0.0.cnf
+index fa258a5..527919d 100755
+--- a/easy-rsa/2.0/openssl-1.0.0.cnf
++++ b/easy-rsa/2.0/openssl-1.0.0.cnf
+@@ -278,8 +278,8 @@ authorityKeyIdentifier=keyid:always,issuer:always
+ #pkcs11 = pkcs11_section
+ 
+ [ pkcs11_section ]
+-engine_id = pkcs11
+-dynamic_path = /usr/lib/engines/engine_pkcs11.so
+-MODULE_PATH = $ENV::PKCS11_MODULE_PATH
+-PIN = $ENV::PKCS11_PIN
+-init = 0
++#engine_id = pkcs11
++#dynamic_path = /usr/lib/engines/engine_pkcs11.so
++#MODULE_PATH = $ENV::PKCS11_MODULE_PATH
++#PIN = $ENV::PKCS11_PIN
++#init = 0

diff --git a/net-misc/openvpn/files/openvpn.init b/net-misc/openvpn/files/openvpn.init
new file mode 100644
index 0000000..489ab49
--- /dev/null
+++ b/net-misc/openvpn/files/openvpn.init
@@ -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 "^[ 	]*cd[ 	].*" "${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

diff --git a/net-misc/openvpn/files/up.sh b/net-misc/openvpn/files/up.sh
new file mode 100755
index 0000000..4a88687
--- /dev/null
+++ b/net-misc/openvpn/files/up.sh
@@ -0,0 +1,82 @@
+#!/bin/sh
+# Copyright (c) 2006-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# Contributed by Roy Marples (uberlord@gentoo.org)
+
+# Setup our resolv.conf
+# Vitally important that we use the domain entry in resolv.conf so we
+# can setup the nameservers are for the domain ONLY in resolvconf if
+# we're using a decent dns cache/forwarder like dnsmasq and NOT nscd/libc.
+# nscd/libc users will get the VPN nameservers before their other ones
+# and will use the first one that responds - maybe the LAN ones?
+# non resolvconf users just the the VPN resolv.conf
+
+# FIXME:- if we have >1 domain, then we have to use search :/
+# We need to add a flag to resolvconf to say
+# "these nameservers should only be used for the listed search domains
+#  if other global nameservers are present on other interfaces"
+# This however, will break compatibility with Debians resolvconf
+# A possible workaround would be to just list multiple domain lines
+# and try and let resolvconf handle it
+
+if [ "${PEER_DNS}" != "no" ]; then
+	NS=
+	DOMAIN=
+	SEARCH=
+	i=1
+	while true ; do
+		eval opt=\$foreign_option_${i}
+		[ -z "${opt}" ] && break
+		if [ "${opt}" != "${opt#dhcp-option DOMAIN *}" ] ; then
+			if [ -z "${DOMAIN}" ] ; then
+				DOMAIN="${opt#dhcp-option DOMAIN *}"
+			else
+				SEARCH="${SEARCH}${SEARCH:+ }${opt#dhcp-option DOMAIN *}"
+			fi
+		elif [ "${opt}" != "${opt#dhcp-option DNS *}" ] ; then
+			NS="${NS}nameserver ${opt#dhcp-option DNS *}\n"
+		fi
+		i=$((${i} + 1))
+	done
+
+	if [ -n "${NS}" ] ; then
+		DNS="# Generated by openvpn for interface ${dev}\n"
+		if [ -n "${SEARCH}" ] ; then
+			DNS="${DNS}search ${DOMAIN} ${SEARCH}\n"
+		elif [ -n "${DOMAIN}" ]; then
+			DNS="${DNS}domain ${DOMAIN}\n"
+		fi
+		DNS="${DNS}${NS}"
+		if [ -x /sbin/resolvconf ] ; then
+			printf "${DNS}" | /sbin/resolvconf -a "${dev}"
+		else
+			# Preserve the existing resolv.conf
+			if [ -e /etc/resolv.conf ] ; then
+				cp /etc/resolv.conf /etc/resolv.conf-"${dev}".sv
+			fi
+			printf "${DNS}" > /etc/resolv.conf
+			chmod 644 /etc/resolv.conf
+		fi
+	fi
+fi
+
+# Below section is Gentoo specific
+# Quick summary - our init scripts are re-entrant and set the SVCNAME env var
+# as we could have >1 openvpn service
+
+if [ -n "${SVCNAME}" ]; then
+	# If we have a service specific script, run this now
+	if [ -x /etc/openvpn/"${SVCNAME}"-up.sh ] ; then
+		/etc/openvpn/"${SVCNAME}"-up.sh "$@"
+	fi
+
+	# Re-enter the init script to start any dependant services
+	if ! /etc/init.d/"${SVCNAME}" --quiet status ; then
+		export IN_BACKGROUND=true
+		/etc/init.d/${SVCNAME} --quiet start
+	fi
+fi
+
+exit 0
+
+# vim: ts=4 :

diff --git a/net-misc/openvpn/openvpn-2.2.2.ebuild b/net-misc/openvpn/openvpn-2.2.2.ebuild
new file mode 100644
index 0000000..af4c8b9
--- /dev/null
+++ b/net-misc/openvpn/openvpn-2.2.2.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openvpn/openvpn-2.2.0-r1.ebuild,v 1.3 2011/07/29 08:45:05 zmedico Exp $
+
+EAPI=4
+
+inherit eutils multilib toolchain-funcs autotools flag-o-matic
+
+IPV6_VERSION="2.2.0-ipv6-20110522-1"
+DESCRIPTION="OpenVPN is a robust and highly flexible tunneling application compatible with many OSes."
+SRC_URI="http://swupdate.openvpn.net/community/releases/${P}.tar.gz
+		ipv6? (
+			http://www.greenie.net/ipv6/openvpn-${IPV6_VERSION}.patch.gz
+		)"
+HOMEPAGE="http://openvpn.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd ~x86-linux"
+# ipv6 patch seems broken, ipv6 is planned for the 2.3 release
+#IUSE="examples iproute2 ipv6 minimal pam passwordsave selinux ssl static pkcs11 userland_BSD"
+IUSE="examples iproute2 minimal pam passwordsave selinux ssl static pkcs11 userland_BSD"
+
+DEPEND=">=dev-libs/lzo-1.07
+	kernel_linux? (
+		iproute2? ( sys-apps/iproute2[-minimal] ) !iproute2? ( sys-apps/net-tools )
+	)
+	!minimal? ( pam? ( virtual/pam ) )
+	selinux? ( sec-policy/selinux-openvpn )
+	ssl? ( >=dev-libs/openssl-0.9.6 )
+	pkcs11? ( >=dev-libs/pkcs11-helper-1.05 )"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+	epatch "${FILESDIR}/${PN}-2.2.2-pkcs11.patch"
+	use ipv6 && epatch "${WORKDIR}/${PN}-${IPV6_VERSION}.patch"
+	sed -i \
+		-e "s/gcc \${CC_FLAGS}/\${CC} \${CFLAGS} -Wall/" \
+		-e "s/-shared/-shared \${LDFLAGS}/" \
+		plugin/*/Makefile || die "sed failed"
+	if use ipv6; then
+		eautoreconf
+	fi
+}
+
+src_configure() {
+	# basic.h defines a type 'bool' that conflicts with the altivec
+	# keyword bool which has to be fixed upstream, see bugs #293840
+	# and #297854.
+	# For now, filter out -maltivec on ppc and append -mno-altivec, as
+	# -maltivec is enabled implicitly by -mcpu and similar flags.
+	(use ppc || use ppc64) && filter-flags -maltivec && append-flags -mno-altivec
+
+	local myconf=""
+
+	if use minimal ; then
+		myconf="${myconf} --disable-plugins"
+		myconf="${myconf} --disable-pkcs11"
+	else
+		myconf="$(use_enable pkcs11)"
+	fi
+
+	econf ${myconf} \
+		$(use_enable passwordsave password-save) \
+		$(use_enable ssl) \
+		$(use_enable ssl crypto) \
+		$(use_enable iproute2) \
+		--docdir="${EPREFIX}/usr/share/doc/${PF}"
+}
+
+src_compile() {
+
+	if use static ; then
+		sed -i -e '/^LIBS/s/LIBS = /LIBS = -static /' Makefile || die "sed failed"
+	fi
+
+	emake || die "make failed"
+
+	if ! use minimal ; then
+		cd plugin
+		for i in *; do
+			[[ ${i} == "README" || ${i} == "examples" || ${i} == "defer" ]] && continue
+			[[ ${i} == "auth-pam" ]] && ! use pam && continue
+			einfo "Building ${i} plugin"
+			emake -C "${i}" CC=$(tc-getCC) || die "make failed"
+		done
+		cd ..
+	fi
+}
+
+src_install() {
+	emake DESTDIR="${D}" install || die "make install failed"
+
+	# install documentation
+	dodoc AUTHORS ChangeLog PORTS README
+
+	# Install some helper scripts
+	keepdir /etc/openvpn
+	exeinto /etc/openvpn
+	doexe "${FILESDIR}/up.sh" || die "doexe failed"
+	doexe "${FILESDIR}/down.sh" || die "doexe failed"
+
+	# Install the init script and config file
+	newinitd "${FILESDIR}/${PN}-2.1.init" openvpn || die "newinitd failed"
+	newconfd "${FILESDIR}/${PN}-2.1.conf" openvpn || die "newconfd failed"
+
+	# install examples, controlled by the respective useflag
+	if use examples ; then
+		# dodoc does not supportly support directory traversal, #15193
+		insinto /usr/share/doc/${PF}/examples
+		doins -r sample-{config-files,keys,scripts} contrib
+	fi
+
+	# Install plugins and easy-rsa
+	doenvd "${FILESDIR}/65openvpn" # config-protect easy-rsa
+	if ! use minimal ; then
+		cd easy-rsa/2.0
+		make install "DESTDIR=${D}" "PREFIX=${EPREFIX}/usr/share/${PN}/easy-rsa"
+		cd ../..
+
+		exeinto "/usr/$(get_libdir)/${PN}"
+		doexe plugin/*/*.so
+	fi
+}
+
+pkg_postinst() {
+	# Add openvpn user so openvpn servers can drop privs
+	# Clients should run as root so they can change ip addresses,
+	# dns information and other such things.
+	enewgroup openvpn
+	enewuser openvpn "" "" "" openvpn
+
+	if [ path_exists -o "${ROOT}/etc/openvpn/*/local.conf" ] ; then
+		ewarn "WARNING: The openvpn init script has changed"
+		ewarn ""
+	fi
+
+	elog "The openvpn init script expects to find the configuration file"
+	elog "openvpn.conf in /etc/openvpn along with any extra files it may need."
+	elog ""
+	elog "To create more VPNs, simply create a new .conf file for it and"
+	elog "then create a symlink to the openvpn init script from a link called"
+	elog "openvpn.newconfname - like so"
+	elog "   cd /etc/openvpn"
+	elog "   ${EDITOR##*/} foo.conf"
+	elog "   cd /etc/init.d"
+	elog "   ln -s openvpn openvpn.foo"
+	elog ""
+	elog "You can then treat openvpn.foo as any other service, so you can"
+	elog "stop one vpn and start another if you need to."
+
+	if grep -Eq "^[ \t]*(up|down)[ \t].*" "${ROOT}/etc/openvpn"/*.conf 2>/dev/null ; then
+		ewarn ""
+		ewarn "WARNING: If you use the remote keyword then you are deemed to be"
+		ewarn "a client by our init script and as such we force up,down scripts."
+		ewarn "These scripts call /etc/openvpn/\$SVCNAME-{up,down}.sh where you"
+		ewarn "can move your scripts to."
+	fi
+
+	if ! use minimal ; then
+		einfo ""
+		einfo "plugins have been installed into /usr/$(get_libdir)/${PN}"
+	fi
+
+#	if use ipv6 ; then
+#		einfo ""
+#		einfo "This build contains a community-maintained IPv6 patch."
+#		einfo "For more information please visit:"
+#		einfo "http://www.greenie.net/ipv6/openvpn.html"
+#	fi
+}



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] dev/darkside:master commit in: net-misc/openvpn/, net-misc/openvpn/files/
@ 2012-03-07 13:56 Jeremy Olexa
  0 siblings, 0 replies; 2+ messages in thread
From: Jeremy Olexa @ 2012-03-07 13:56 UTC (permalink / raw
  To: gentoo-commits

commit:     9a78cd2556c3f59a5212f13e4548f820837aeed5
Author:     Jeremy Olexa <darkside <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 24 18:52:14 2012 +0000
Commit:     Jeremy Olexa <darkside <AT> gentoo <DOT> org>
CommitDate: Fri Feb 24 18:52:14 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=dev/darkside.git;a=commit;h=9a78cd25

[net-misc/openvpn] in tree

---
 net-misc/openvpn/Manifest                          |    1 -
 net-misc/openvpn/files/65openvpn                   |    1 -
 net-misc/openvpn/files/down.sh                     |   33 ----
 net-misc/openvpn/files/openvpn-2.1.conf            |   18 --
 net-misc/openvpn/files/openvpn-2.1.init            |  133 ---------------
 .../openvpn/files/openvpn-2.1_rc13-peercred.patch  |   10 -
 net-misc/openvpn/files/openvpn-2.2.2-pkcs11.patch  |   36 ----
 net-misc/openvpn/files/openvpn.init                |   63 -------
 net-misc/openvpn/files/up.sh                       |   82 ---------
 net-misc/openvpn/openvpn-2.2.2.ebuild              |  175 --------------------
 10 files changed, 0 insertions(+), 552 deletions(-)

diff --git a/net-misc/openvpn/Manifest b/net-misc/openvpn/Manifest
deleted file mode 100644
index 5ca3567..0000000
--- a/net-misc/openvpn/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST openvpn-2.2.2.tar.gz 911158 RMD160 60990f183bdd46933724b3bf39ba5861ed0258a6 SHA1 992373cdf12e1b50655b13765a6d36a87cfd3ca3 SHA256 54ca8b260e2ea3b26e84c2282ccb5f8cb149edcfd424b686d5fb22b8dbbeac00

diff --git a/net-misc/openvpn/files/65openvpn b/net-misc/openvpn/files/65openvpn
deleted file mode 100644
index 4ddb034..0000000
--- a/net-misc/openvpn/files/65openvpn
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_PROTECT="/usr/share/openvpn/easy-rsa"

diff --git a/net-misc/openvpn/files/down.sh b/net-misc/openvpn/files/down.sh
deleted file mode 100755
index 1c70db0..0000000
--- a/net-misc/openvpn/files/down.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2006-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# Contributed by Roy Marples (uberlord@gentoo.org)
-
-# If we have a service specific script, run this now
-if [ -x /etc/openvpn/"${SVCNAME}"-down.sh ] ; then
-	/etc/openvpn/"${SVCNAME}"-down.sh "$@"
-fi
-
-# Restore resolv.conf to how it was
-if [ "${PEER_DNS}" != "no" ]; then
-	if [ -x /sbin/resolvconf ] ; then
-		/sbin/resolvconf -d "${dev}"
-	elif [ -e /etc/resolv.conf-"${dev}".sv ] ; then
-		# Important that we copy instead of move incase resolv.conf is
-		# a symlink and not an actual file
-		cp /etc/resolv.conf-"${dev}".sv /etc/resolv.conf
-		rm -f /etc/resolv.conf-"${dev}".sv
-	fi
-fi
-
-if [ -n "${SVCNAME}" ]; then
-	# Re-enter the init script to start any dependant services
-	if /etc/init.d/"${SVCNAME}" --quiet status ; then
-		export IN_BACKGROUND=true
-		/etc/init.d/"${SVCNAME}" --quiet stop
-	fi
-fi
-
-exit 0
-
-# vim: ts=4 :

diff --git a/net-misc/openvpn/files/openvpn-2.1.conf b/net-misc/openvpn/files/openvpn-2.1.conf
deleted file mode 100644
index 72510c3..0000000
--- a/net-misc/openvpn/files/openvpn-2.1.conf
+++ /dev/null
@@ -1,18 +0,0 @@
-# OpenVPN automatically creates an /etc/resolv.conf (or sends it to
-# resolvconf) if given DNS information by the OpenVPN server.
-# Set PEER_DNS="no" to stop this.
-PEER_DNS="yes"
-
-# OpenVPN can run in many modes. Most people will want the init script
-# to automatically detect the mode and try and apply a good default
-# configuration and setup scripts. However, there are cases where the
-# OpenVPN configuration looks like a client, but it's really a peer or
-# something else. DETECT_CLIENT controls this behaviour.
-DETECT_CLIENT="yes"
-
-# If DETECT_CLIENT is no and you have your own scripts to re-enter the openvpn
-# init script (ie, it first becomes "inactive" and the script then starts the
-# script again to make it "started") then you can state this below.
-# In other words, unless you understand service dependencies and are a
-# competent shell scripter, don't set this.
-RE_ENTER="no"

diff --git a/net-misc/openvpn/files/openvpn-2.1.init b/net-misc/openvpn/files/openvpn-2.1.init
deleted file mode 100755
index d65e6f8..0000000
--- a/net-misc/openvpn/files/openvpn-2.1.init
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-VPNDIR=${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
-	use dns
-	after bootmisc
-}
-
-checkconfig() {
-	# Linux has good dynamic tun/tap creation
-	if [ $(uname -s) = "Linux" ] ; then
-		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
-		return 0
-	fi
-
-	# Other OS's don't, so we rely on a pre-configured interface
-	# per vpn instance
-	local ifname=$(sed -n -e 's/[[:space:]]*dev[[:space:]][[:space:]]*\([^[:space:]]*\).*/\1/p' "${VPNCONF}")
-	if [ -z ${ifname} ] ; then
-		eerror "You need to specify the interface that this openvpn" \
-			"instance should use" \
-			"by using the dev option in ${VPNCONF}"
-		return 1
-	fi
-
-	if ! ifconfig "${ifname}" >/dev/null 2>/dev/null ; then
-		# Try and create it
-		echo > /dev/"${ifname}" >/dev/null
-	fi
-	if ! ifconfig "${ifname}" >/dev/null 2>/dev/null ; then
-		eerror "${VPNCONF} requires interface ${ifname}" \
-			"but that does not exist"
-		return 1
-	fi
-}
-
-start() {
-	# If we are re-called by the openvpn gentoo-up.sh script
-	# then we don't actually want to start openvpn
-	[ "${IN_BACKGROUND}" = "true" ] && return 0
-	
-	ebegin "Starting ${SVCNAME}"
-
-	checkconfig || return 1
-
-	local args="" reenter=${RE_ENTER:-no}
-	# 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 "^[ 	]*cd[ 	].*" "${VPNCONF}" ; then
-		args="${args} --cd ${VPNDIR}"
-	fi
-	
-	# We mark the service as inactive and then start it.
-	# When we get an authenticated packet from the peer then we run our script
-	# which configures our DNS if any and marks us as up.
-	if [ "${DETECT_CLIENT:-yes}" = "yes" ] && \
-	grep -q "^[ 	]*remote[ 	].*" "${VPNCONF}" ; then
-		reenter="yes"
-		args="${args} --up-delay --up-restart"
-		args="${args} --script-security 2"
-		args="${args} --up /etc/openvpn/up.sh"
-		args="${args} --down-pre --down /etc/openvpn/down.sh"
-
-		# Warn about setting scripts as we override them
-		if grep -Eq "^[ 	]*(up|down)[ 	].*" "${VPNCONF}" ; then
-			ewarn "WARNING: You have defined your own up/down scripts"
-			ewarn "As you're running as a client, we now force Gentoo specific"
-			ewarn "scripts to be run for up and down events."
-			ewarn "These scripts will call /etc/openvpn/${SVCNAME}-{up,down}.sh"
-			ewarn "where you can put your own code."
-		fi
-
-		# Warn about the inability to change ip/route/dns information when
-		# dropping privs
-		if grep -q "^[ 	]*user[ 	].*" "${VPNCONF}" ; then
-			ewarn "WARNING: You are dropping root privileges!"
-			ewarn "As such openvpn may not be able to change ip, routing"
-			ewarn "or DNS configuration."
-		fi
-	else
-		# So we're a server. Run as openvpn unless otherwise specified
-		grep -q "^[ 	]*user[ 	].*" "${VPNCONF}" || args="${args} --user openvpn"
-		grep -q "^[ 	]*group[ 	].*" "${VPNCONF}" || args="${args} --group openvpn"
-	fi
-
-	# Ensure that our scripts get the PEER_DNS variable
-	[ -n "${PEER_DNS}" ] && args="${args} --setenv PEER_DNS ${PEER_DNS}"
-
-	[ "${reenter}" = "yes" ] && mark_service_inactive "${SVCNAME}"
-	start-stop-daemon --start --exec /usr/sbin/openvpn --pidfile "${VPNPID}" \
-		-- --config "${VPNCONF}" --writepid "${VPNPID}" --daemon \
-		--setenv SVCNAME "${SVCNAME}" ${args}
-	eend $? "Check your logs to see why startup failed"
-}
-
-stop() {
-	# If we are re-called by the openvpn gentoo-down.sh script
-	# then we don't actually want to stop openvpn
-	if [ "${IN_BACKGROUND}" = "true" ] ; then
-		mark_service_inactive "${SVCNAME}"
-		return 0
-	fi
-
-	ebegin "Stopping ${SVCNAME}"
-	start-stop-daemon --stop --quiet \
-		--exec /usr/sbin/openvpn --pidfile "${VPNPID}"
-	eend $?
-}
-
-# vim: set ts=4 :

diff --git a/net-misc/openvpn/files/openvpn-2.1_rc13-peercred.patch b/net-misc/openvpn/files/openvpn-2.1_rc13-peercred.patch
deleted file mode 100644
index 6592cf1..0000000
--- a/net-misc/openvpn/files/openvpn-2.1_rc13-peercred.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- socket.c~	2008-11-02 01:39:00.406009999 +0100
-+++ socket.c	2008-11-02 01:39:00.406009999 +0100
-@@ -22,6 +22,7 @@
-  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-  */
- 
-+#define _GNU_SOURCE
- #include "syshead.h"
- 
- #include "socket.h"

diff --git a/net-misc/openvpn/files/openvpn-2.2.2-pkcs11.patch b/net-misc/openvpn/files/openvpn-2.2.2-pkcs11.patch
deleted file mode 100644
index c7115cc..0000000
--- a/net-misc/openvpn/files/openvpn-2.2.2-pkcs11.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/easy-rsa/2.0/openssl-0.9.8.cnf b/easy-rsa/2.0/openssl-0.9.8.cnf
-index 340b8af..89602a2 100755
---- a/easy-rsa/2.0/openssl-0.9.8.cnf
-+++ b/easy-rsa/2.0/openssl-0.9.8.cnf
-@@ -283,8 +283,8 @@ authorityKeyIdentifier=keyid:always,issuer:always
- #pkcs11 = pkcs11_section
- 
- [ pkcs11_section ]
--engine_id = pkcs11
--dynamic_path = /usr/lib/engines/engine_pkcs11.so
--MODULE_PATH = $ENV::PKCS11_MODULE_PATH
--PIN = $ENV::PKCS11_PIN
--init = 0
-+#engine_id = pkcs11
-+#dynamic_path = /usr/lib/engines/engine_pkcs11.so
-+#MODULE_PATH = $ENV::PKCS11_MODULE_PATH
-+#PIN = $ENV::PKCS11_PIN
-+#init = 0
-diff --git a/easy-rsa/2.0/openssl-1.0.0.cnf b/easy-rsa/2.0/openssl-1.0.0.cnf
-index fa258a5..527919d 100755
---- a/easy-rsa/2.0/openssl-1.0.0.cnf
-+++ b/easy-rsa/2.0/openssl-1.0.0.cnf
-@@ -278,8 +278,8 @@ authorityKeyIdentifier=keyid:always,issuer:always
- #pkcs11 = pkcs11_section
- 
- [ pkcs11_section ]
--engine_id = pkcs11
--dynamic_path = /usr/lib/engines/engine_pkcs11.so
--MODULE_PATH = $ENV::PKCS11_MODULE_PATH
--PIN = $ENV::PKCS11_PIN
--init = 0
-+#engine_id = pkcs11
-+#dynamic_path = /usr/lib/engines/engine_pkcs11.so
-+#MODULE_PATH = $ENV::PKCS11_MODULE_PATH
-+#PIN = $ENV::PKCS11_PIN
-+#init = 0

diff --git a/net-misc/openvpn/files/openvpn.init b/net-misc/openvpn/files/openvpn.init
deleted file mode 100644
index 489ab49..0000000
--- a/net-misc/openvpn/files/openvpn.init
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/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 "^[ 	]*cd[ 	].*" "${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

diff --git a/net-misc/openvpn/files/up.sh b/net-misc/openvpn/files/up.sh
deleted file mode 100755
index 4a88687..0000000
--- a/net-misc/openvpn/files/up.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2006-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# Contributed by Roy Marples (uberlord@gentoo.org)
-
-# Setup our resolv.conf
-# Vitally important that we use the domain entry in resolv.conf so we
-# can setup the nameservers are for the domain ONLY in resolvconf if
-# we're using a decent dns cache/forwarder like dnsmasq and NOT nscd/libc.
-# nscd/libc users will get the VPN nameservers before their other ones
-# and will use the first one that responds - maybe the LAN ones?
-# non resolvconf users just the the VPN resolv.conf
-
-# FIXME:- if we have >1 domain, then we have to use search :/
-# We need to add a flag to resolvconf to say
-# "these nameservers should only be used for the listed search domains
-#  if other global nameservers are present on other interfaces"
-# This however, will break compatibility with Debians resolvconf
-# A possible workaround would be to just list multiple domain lines
-# and try and let resolvconf handle it
-
-if [ "${PEER_DNS}" != "no" ]; then
-	NS=
-	DOMAIN=
-	SEARCH=
-	i=1
-	while true ; do
-		eval opt=\$foreign_option_${i}
-		[ -z "${opt}" ] && break
-		if [ "${opt}" != "${opt#dhcp-option DOMAIN *}" ] ; then
-			if [ -z "${DOMAIN}" ] ; then
-				DOMAIN="${opt#dhcp-option DOMAIN *}"
-			else
-				SEARCH="${SEARCH}${SEARCH:+ }${opt#dhcp-option DOMAIN *}"
-			fi
-		elif [ "${opt}" != "${opt#dhcp-option DNS *}" ] ; then
-			NS="${NS}nameserver ${opt#dhcp-option DNS *}\n"
-		fi
-		i=$((${i} + 1))
-	done
-
-	if [ -n "${NS}" ] ; then
-		DNS="# Generated by openvpn for interface ${dev}\n"
-		if [ -n "${SEARCH}" ] ; then
-			DNS="${DNS}search ${DOMAIN} ${SEARCH}\n"
-		elif [ -n "${DOMAIN}" ]; then
-			DNS="${DNS}domain ${DOMAIN}\n"
-		fi
-		DNS="${DNS}${NS}"
-		if [ -x /sbin/resolvconf ] ; then
-			printf "${DNS}" | /sbin/resolvconf -a "${dev}"
-		else
-			# Preserve the existing resolv.conf
-			if [ -e /etc/resolv.conf ] ; then
-				cp /etc/resolv.conf /etc/resolv.conf-"${dev}".sv
-			fi
-			printf "${DNS}" > /etc/resolv.conf
-			chmod 644 /etc/resolv.conf
-		fi
-	fi
-fi
-
-# Below section is Gentoo specific
-# Quick summary - our init scripts are re-entrant and set the SVCNAME env var
-# as we could have >1 openvpn service
-
-if [ -n "${SVCNAME}" ]; then
-	# If we have a service specific script, run this now
-	if [ -x /etc/openvpn/"${SVCNAME}"-up.sh ] ; then
-		/etc/openvpn/"${SVCNAME}"-up.sh "$@"
-	fi
-
-	# Re-enter the init script to start any dependant services
-	if ! /etc/init.d/"${SVCNAME}" --quiet status ; then
-		export IN_BACKGROUND=true
-		/etc/init.d/${SVCNAME} --quiet start
-	fi
-fi
-
-exit 0
-
-# vim: ts=4 :

diff --git a/net-misc/openvpn/openvpn-2.2.2.ebuild b/net-misc/openvpn/openvpn-2.2.2.ebuild
deleted file mode 100644
index 8f1019e..0000000
--- a/net-misc/openvpn/openvpn-2.2.2.ebuild
+++ /dev/null
@@ -1,175 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/openvpn/openvpn-2.2.0-r1.ebuild,v 1.3 2011/07/29 08:45:05 zmedico Exp $
-
-EAPI=4
-
-inherit eutils multilib toolchain-funcs autotools flag-o-matic
-
-IPV6_VERSION="2.2.0-ipv6-20110522-1"
-DESCRIPTION="OpenVPN is a robust and highly flexible tunneling application compatible with many OSes."
-SRC_URI="http://swupdate.openvpn.net/community/releases/${P}.tar.gz"
-#		ipv6? (
-#			http://www.greenie.net/ipv6/openvpn-${IPV6_VERSION}.patch.gz
-#		)"
-HOMEPAGE="http://openvpn.net/"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd ~x86-linux"
-# ipv6 patch seems broken, ipv6 is planned for the 2.3 release
-#IUSE="examples iproute2 ipv6 minimal pam passwordsave selinux ssl static pkcs11 userland_BSD"
-IUSE="examples iproute2 minimal pam passwordsave selinux ssl static pkcs11 userland_BSD"
-
-DEPEND=">=dev-libs/lzo-1.07
-	kernel_linux? (
-		iproute2? ( sys-apps/iproute2[-minimal] ) !iproute2? ( sys-apps/net-tools )
-	)
-	!minimal? ( pam? ( virtual/pam ) )
-	selinux? ( sec-policy/selinux-openvpn )
-	ssl? ( >=dev-libs/openssl-0.9.6 )
-	pkcs11? ( >=dev-libs/pkcs11-helper-1.05 )"
-RDEPEND="${DEPEND}"
-
-src_prepare() {
-	epatch "${FILESDIR}/${PN}-2.2.2-pkcs11.patch"
-#	use ipv6 && epatch "${WORKDIR}/${PN}-${IPV6_VERSION}.patch"
-	sed -i \
-		-e "s/gcc \${CC_FLAGS}/\${CC} \${CFLAGS} -Wall/" \
-		-e "s/-shared/-shared \${LDFLAGS}/" \
-		plugin/*/Makefile || die "sed failed"
-	if use ipv6; then
-		eautoreconf
-	fi
-}
-
-src_configure() {
-	# basic.h defines a type 'bool' that conflicts with the altivec
-	# keyword bool which has to be fixed upstream, see bugs #293840
-	# and #297854.
-	# For now, filter out -maltivec on ppc and append -mno-altivec, as
-	# -maltivec is enabled implicitly by -mcpu and similar flags.
-	(use ppc || use ppc64) && filter-flags -maltivec && append-flags -mno-altivec
-
-	local myconf=""
-
-	if use minimal ; then
-		myconf="${myconf} --disable-plugins"
-		myconf="${myconf} --disable-pkcs11"
-	else
-		myconf="$(use_enable pkcs11)"
-	fi
-
-	econf ${myconf} \
-		$(use_enable passwordsave password-save) \
-		$(use_enable ssl) \
-		$(use_enable ssl crypto) \
-		$(use_enable iproute2) \
-		--docdir="${EPREFIX}/usr/share/doc/${PF}"
-}
-
-src_compile() {
-
-	if use static ; then
-		sed -i -e '/^LIBS/s/LIBS = /LIBS = -static /' Makefile || die "sed failed"
-	fi
-
-	emake
-
-	if ! use minimal ; then
-		cd plugin
-		for i in *; do
-			[[ ${i} == "README" || ${i} == "examples" || ${i} == "defer" ]] && continue
-			[[ ${i} == "auth-pam" ]] && ! use pam && continue
-			einfo "Building ${i} plugin"
-			emake -C "${i}" CC=$(tc-getCC)
-		done
-		cd ..
-	fi
-}
-
-src_install() {
-	emake DESTDIR="${D}" install
-
-	# install openvpn-plugin.h
-	insinto /usr/include
-	doins openvpn-plugin.h
-
-	# install documentation
-	dodoc AUTHORS ChangeLog PORTS README
-
-	# Install some helper scripts
-	keepdir /etc/openvpn
-	exeinto /etc/openvpn
-	doexe "${FILESDIR}/up.sh"
-	doexe "${FILESDIR}/down.sh"
-
-	# Install the init script and config file
-	newinitd "${FILESDIR}/${PN}-2.1.init" openvpn
-	newconfd "${FILESDIR}/${PN}-2.1.conf" openvpn
-
-	# install examples, controlled by the respective useflag
-	if use examples ; then
-		# dodoc does not supportly support directory traversal, #15193
-		insinto /usr/share/doc/${PF}/examples
-		doins -r sample-{config-files,keys,scripts} contrib
-	fi
-
-	# Install plugins and easy-rsa
-	doenvd "${FILESDIR}/65openvpn" # config-protect easy-rsa
-	if ! use minimal ; then
-		cd easy-rsa/2.0
-		make install "DESTDIR=${D}" "PREFIX=${EPREFIX}/usr/share/${PN}/easy-rsa"
-		cd ../..
-
-		exeinto "/usr/$(get_libdir)/${PN}"
-		doexe plugin/*/*.so
-	fi
-}
-
-pkg_postinst() {
-	# Add openvpn user so openvpn servers can drop privs
-	# Clients should run as root so they can change ip addresses,
-	# dns information and other such things.
-	enewgroup openvpn
-	enewuser openvpn "" "" "" openvpn
-
-	if [ path_exists -o "${ROOT}/etc/openvpn/*/local.conf" ] ; then
-		ewarn "WARNING: The openvpn init script has changed"
-		ewarn ""
-	fi
-
-	elog "The openvpn init script expects to find the configuration file"
-	elog "openvpn.conf in /etc/openvpn along with any extra files it may need."
-	elog ""
-	elog "To create more VPNs, simply create a new .conf file for it and"
-	elog "then create a symlink to the openvpn init script from a link called"
-	elog "openvpn.newconfname - like so"
-	elog "   cd /etc/openvpn"
-	elog "   ${EDITOR##*/} foo.conf"
-	elog "   cd /etc/init.d"
-	elog "   ln -s openvpn openvpn.foo"
-	elog ""
-	elog "You can then treat openvpn.foo as any other service, so you can"
-	elog "stop one vpn and start another if you need to."
-
-	if grep -Eq "^[ \t]*(up|down)[ \t].*" "${ROOT}/etc/openvpn"/*.conf 2>/dev/null ; then
-		ewarn ""
-		ewarn "WARNING: If you use the remote keyword then you are deemed to be"
-		ewarn "a client by our init script and as such we force up,down scripts."
-		ewarn "These scripts call /etc/openvpn/\$SVCNAME-{up,down}.sh where you"
-		ewarn "can move your scripts to."
-	fi
-
-	if ! use minimal ; then
-		einfo ""
-		einfo "plugins have been installed into /usr/$(get_libdir)/${PN}"
-	fi
-
-#	if use ipv6 ; then
-#		einfo ""
-#		einfo "This build contains a community-maintained IPv6 patch."
-#		einfo "For more information please visit:"
-#		einfo "http://www.greenie.net/ipv6/openvpn.html"
-#	fi
-}



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-03-07 13:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-29  4:32 [gentoo-commits] dev/darkside:master commit in: net-misc/openvpn/, net-misc/openvpn/files/ Jeremy Olexa
  -- strict thread matches above, loose matches on Subject: below --
2012-03-07 13:56 Jeremy Olexa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox