summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoy Marples <uberlord@gentoo.org>2007-02-23 11:44:20 +0000
committerRoy Marples <uberlord@gentoo.org>2007-02-23 11:44:20 +0000
commit40df33feffe2e74636d175f54802f28621694d80 (patch)
treeb60cfd43066d85407075f41ed393ee68418566e0 /net-misc/openvpn
parentclean up (diff)
downloadgentoo-2-40df33feffe2e74636d175f54802f28621694d80.tar.gz
gentoo-2-40df33feffe2e74636d175f54802f28621694d80.tar.bz2
gentoo-2-40df33feffe2e74636d175f54802f28621694d80.zip
Init scripts no longer require bash.
(Portage version: 2.1.2-r10)
Diffstat (limited to 'net-misc/openvpn')
-rw-r--r--net-misc/openvpn/ChangeLog10
-rw-r--r--net-misc/openvpn/files/digest-openvpn-2.0.7-r23
-rw-r--r--net-misc/openvpn/files/digest-openvpn-2.1_rc1-r23
-rwxr-xr-xnet-misc/openvpn/files/down.sh2
-rwxr-xr-xnet-misc/openvpn/files/openvpn-2.1.init33
-rw-r--r--net-misc/openvpn/files/openvpn.init10
-rwxr-xr-xnet-misc/openvpn/files/up.sh4
-rw-r--r--net-misc/openvpn/openvpn-2.0.7-r2.ebuild142
-rw-r--r--net-misc/openvpn/openvpn-2.1_rc1-r2.ebuild161
9 files changed, 341 insertions, 27 deletions
diff --git a/net-misc/openvpn/ChangeLog b/net-misc/openvpn/ChangeLog
index 13306edb43e5..bb85d97a359d 100644
--- a/net-misc/openvpn/ChangeLog
+++ b/net-misc/openvpn/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for net-misc/openvpn
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/openvpn/ChangeLog,v 1.104 2007/02/07 10:36:09 uberlord Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openvpn/ChangeLog,v 1.105 2007/02/23 11:44:20 uberlord Exp $
+
+*openvpn-2.1_rc1-r2 (23 Feb 2007)
+*openvpn-2.0.7-r2 (23 Feb 2007)
+
+ 23 Feb 2007; Roy Marples <uberlord@gentoo.org> files/openvpn-2.1.init,
+ files/down.sh, files/openvpn.init, files/up.sh, +openvpn-2.0.7-r2.ebuild,
+ +openvpn-2.1_rc1-r2.ebuild:
+ Init scripts no longer require bash.
07 Feb 2007; Roy Marples <uberlord@gentoo.org> files/down.sh, files/up.sh:
up.sh and down.sh no longer require bash.
diff --git a/net-misc/openvpn/files/digest-openvpn-2.0.7-r2 b/net-misc/openvpn/files/digest-openvpn-2.0.7-r2
new file mode 100644
index 000000000000..c534cdba1b47
--- /dev/null
+++ b/net-misc/openvpn/files/digest-openvpn-2.0.7-r2
@@ -0,0 +1,3 @@
+MD5 93528233f1f6d02fc18e2c00f82e0aca openvpn-2.0.7.tar.gz 665129
+RMD160 b89f6df5ff08326f4e07e6cd4abda633627ef9e4 openvpn-2.0.7.tar.gz 665129
+SHA256 9e29ebfb76375379b4ca12c2270dff3b4b1636eb643747c69249ae206833052e openvpn-2.0.7.tar.gz 665129
diff --git a/net-misc/openvpn/files/digest-openvpn-2.1_rc1-r2 b/net-misc/openvpn/files/digest-openvpn-2.1_rc1-r2
new file mode 100644
index 000000000000..03a90a8e78bc
--- /dev/null
+++ b/net-misc/openvpn/files/digest-openvpn-2.1_rc1-r2
@@ -0,0 +1,3 @@
+MD5 b0773149ef9d93a0075dfa42b87042a0 openvpn-2.1_rc1.tar.gz 796620
+RMD160 751d07c3b9b40cc3c9a1649ad8b10b9d889a5690 openvpn-2.1_rc1.tar.gz 796620
+SHA256 b5eb4f0d4eda58aaa8b60eb1b2f1d1a0d55ca22e9b098a2f65b6f44abc1c9e11 openvpn-2.1_rc1.tar.gz 796620
diff --git a/net-misc/openvpn/files/down.sh b/net-misc/openvpn/files/down.sh
index 85f565b0ea45..23d9c264b9fb 100755
--- a/net-misc/openvpn/files/down.sh
+++ b/net-misc/openvpn/files/down.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (c) 2006 Gentoo Foundation
+# Copyright (c) 2006-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Contributed by Roy Marples (uberlord@gentoo.org)
diff --git a/net-misc/openvpn/files/openvpn-2.1.init b/net-misc/openvpn/files/openvpn-2.1.init
index 060bc4d4a12b..972e80fdd82e 100755
--- a/net-misc/openvpn/files/openvpn-2.1.init
+++ b/net-misc/openvpn/files/openvpn-2.1.init
@@ -1,10 +1,10 @@
#!/sbin/runscript
-# Copyright 1999-2006 Gentoo Foundation
+# 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
+VPNDIR=${VPNDIR:-/etc/openvpn}
+VPN=${SVCNAME#*.}
+if [ -n "${VPN}" ] && [ ${SVCNAME} != "openvpn" ]; then
VPNPID="/var/run/openvpn.${VPN}.pid"
else
VPNPID="/var/run/openvpn.pid"
@@ -18,15 +18,15 @@ depend() {
checkconfig() {
# Linux has good dynamic tun/tap creation
- if [[ $(uname) == "Linux" ]] ; then
- if [[ ! -e /dev/net/tun ]]; then
+ 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
+ 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
@@ -38,18 +38,18 @@ checkconfig() {
# 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
+ 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 ; then
+ if ! ifconfig "${ifname}" >/dev/null ; then
# Try and create it
- echo > /dev/"${ifname}" &>/dev/null
+ echo > /dev/"${ifname}" >/dev/null
fi
- if ! ifconfig "${ifname}" &>/dev/null ; then
+ if ! ifconfig "${ifname}" >/dev/null ; then
eerror "${VPNCONF} requires interface ${ifname}" \
"but that does not exist"
return 1
@@ -59,7 +59,7 @@ checkconfig() {
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
+ [ "${IN_BACKGROUND}" = "true" ] && return 0
ebegin "Starting ${SVCNAME}"
@@ -103,9 +103,7 @@ start() {
grep -q "^[ \t]*group[ \t].*" "${VPNCONF}" || args="${args} --group openvpn"
fi
- if ${client} && [[ $(type -t mark_service_inactive) == "function" ]] ; then
- mark_service_inactive "${SVCNAME}"
- fi
+ ${client} && mark_service_inactive "${SVCNAME}"
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"
@@ -114,9 +112,8 @@ start() {
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
- [[ $(type -t mark_service_inactive) == "function" ]] \
- && mark_service_inactive "${SVCNAME}"
+ if [ "${IN_BACKGROUND}" = "true" ] ; then
+ mark_service_inactive "${SVCNAME}"
return 0
fi
diff --git a/net-misc/openvpn/files/openvpn.init b/net-misc/openvpn/files/openvpn.init
index 809df9bec2df..64c1bdd1bfae 100644
--- a/net-misc/openvpn/files/openvpn.init
+++ b/net-misc/openvpn/files/openvpn.init
@@ -1,10 +1,10 @@
#!/sbin/runscript
-# Copyright 1999-2005 Gentoo Foundation
+# 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
+if [ -n "${VPN}" ] && [ "${SVCNAME}" != "openvpn" ]; then
VPNPID="/var/run/openvpn.${VPN}.pid"
else
VPNPID="/var/run/openvpn.pid"
@@ -17,13 +17,13 @@ depend() {
}
checktundevice() {
- if [[ ! -e /dev/net/tun ]]; 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
+ 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
@@ -36,7 +36,7 @@ start() {
checktundevice || return 1
- if [[ ! -e "${VPNCONF}" ]]; then
+ if [ ! -e "${VPNCONF}" ]; then
eend 1 "${VPNCONF} does not exist"
return 1
fi
diff --git a/net-misc/openvpn/files/up.sh b/net-misc/openvpn/files/up.sh
index 7ec451796184..879c1c7b1514 100755
--- a/net-misc/openvpn/files/up.sh
+++ b/net-misc/openvpn/files/up.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (c) 2006 Gentoo Foundation
+# Copyright (c) 2006-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Contributed by Roy Marples (uberlord@gentoo.org)
@@ -22,7 +22,7 @@ while true ; do
elif [ "${opt}" != "${opt#dhcp-option DNS *}" ] ; then
NS="${DNS}nameserver ${opt#dhcp-option DNS *}\n"
fi
- i=$((i + 1))
+ i=$((${i} + 1))
done
if [ -n "${NS}" ] ; then
diff --git a/net-misc/openvpn/openvpn-2.0.7-r2.ebuild b/net-misc/openvpn/openvpn-2.0.7-r2.ebuild
new file mode 100644
index 000000000000..9a0be59b520f
--- /dev/null
+++ b/net-misc/openvpn/openvpn-2.0.7-r2.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openvpn/openvpn-2.0.7-r2.ebuild,v 1.1 2007/02/23 11:44:20 uberlord Exp $
+
+inherit eutils multilib
+
+DESCRIPTION="OpenVPN is a robust and highly flexible tunneling application compatible with many OSes."
+SRC_URI="http://openvpn.net/release/openvpn-${PV}.tar.gz"
+HOMEPAGE="http://openvpn.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc-macos ~ppc64 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
+IUSE="examples iproute2 minimal pam passwordsave selinux ssl static threads"
+
+RDEPEND=">=dev-libs/lzo-1.07
+ kernel_linux? (
+ iproute2? ( sys-apps/iproute2 ) !iproute2? ( sys-apps/net-tools )
+ )
+ !minimal? ( pam? ( virtual/pam ) )
+ selinux? ( sec-policy/selinux-openvpn )
+ ssl? ( >=dev-libs/openssl-0.9.6 )"
+DEPEND="${RDEPEND}
+ virtual/os-headers"
+
+pkg_setup() {
+ if use iproute2 ; then
+ if built_with_use sys-apps/iproute2 minimal ; then
+ eerror "iproute2 support requires that sys-apps/iproute2 was not"
+ eerror "built with the minimal USE flag"
+ die "iproute2 support not available"
+ fi
+ fi
+}
+
+src_unpack() {
+ unpack "${A}"
+ cd "${S}"
+
+ epatch "${FILESDIR}/${PN}"-2.0.4-darwin.patch
+ epatch "${FILESDIR}/${P}-pam.patch"
+ epatch "${FILESDIR}/${P}-persistent.patch"
+
+}
+
+src_compile() {
+ local myconf=""
+ # We cannot use use_enable with iproute2 as the Makefile stupidly
+ # enables it with --disable-iproute2
+ use iproute2 && myconf="${myconf} --enable-iproute2"
+ use minimal && myconf="${myconf} --disable-plugins"
+
+ econf ${myconf} \
+ $(use_enable passwordsave password-save) \
+ $(use_enable ssl) \
+ $(use_enable ssl crypto) \
+ $(use_enable threads pthread) \
+ || die "configure failed"
+
+ use static && sed -e -i '/^LIBS/s/LIBS = /LIBS = -static /' Makefile
+
+ emake || die "make failed"
+
+ if ! use minimal ; then
+ cd plugin
+ for i in $( ls 2>/dev/null ); do
+ [[ ${i} == "README" || ${i} == "examples" ]] && continue
+ [[ ${i} == "auth-pam" ]] && ! use pam && continue
+ einfo "Building ${i} plugin"
+ cd "${i}"
+ emake || die "make failed"
+ cd ..
+ done
+ cd ..
+ fi
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "make install failed"
+
+ # install documentation
+ dodoc AUTHORS ChangeLog PORTS README
+
+ # Empty dir
+ dodir /etc/openvpn
+ keepdir /etc/openvpn
+
+ # Install the init script
+ newinitd "${FILESDIR}/openvpn.init" 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
+ prepalldocs
+ fi
+
+ # Install plugins and easy-rsa
+ if ! use minimal ; then
+ cd easy-rsa/2.0
+ exeinto "/usr/share/${PN}/easy-rsa"
+ doexe *-* pkitool
+ insinto "/usr/share/${PN}/easy-rsa"
+ doins README openssl.cnf vars
+ cd ../..
+
+ exeinto "/usr/$(get_libdir)/${PN}"
+ doexe plugin/*/*.so
+ fi
+}
+
+pkg_postinst() {
+ ewarn "WARNING: The openvpn init script has changed"
+ ewarn ""
+ einfo "The openvpn init script expects to find the configuration file"
+ einfo "openvpn.conf in /etc/openvpn along with any extra files it may need."
+ einfo ""
+ einfo "To create more VPNs, simply create a new .conf file for it and"
+ einfo "then create a symlink to the openvpn init script from a link called"
+ einfo "openvpn.newconfname - like so"
+ einfo " cd /etc/openvpn"
+ einfo " ${EDITOR##*/} foo.conf"
+ einfo " cd /etc/init.d"
+ einfo " ln -s openvpn openvpn.foo"
+ einfo ""
+ einfo "You can then treat openvpn.foo as any other service, so you can"
+ einfo "stop one vpn and start another if you need to."
+ if ! use minimal ; then
+ einfo ""
+ einfo "plugins have been installed into /usr/$(get_libdir)/${PN}"
+ fi
+ einfo ""
+ einfo "It is recommended that you create your tun/tap interfaces using"
+ einfo "the net.tun0/net.tap0 scripts provided by baselayout instead of"
+ einfo "using the 'server' directive in openvpn configuration files."
+ einfo "This will insure that the interface really is up after openvpn"
+ einfo "starts."
+ einfo "Note that you cannot use net.tun0/net.tap0 and the server option,"
+ einfo "otherwise openvpn will not start."
+ ebeep
+}
diff --git a/net-misc/openvpn/openvpn-2.1_rc1-r2.ebuild b/net-misc/openvpn/openvpn-2.1_rc1-r2.ebuild
new file mode 100644
index 000000000000..14e016d38a34
--- /dev/null
+++ b/net-misc/openvpn/openvpn-2.1_rc1-r2.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openvpn/openvpn-2.1_rc1-r2.ebuild,v 1.1 2007/02/23 11:44:20 uberlord Exp $
+
+inherit eutils multilib
+
+DESCRIPTION="OpenVPN is a robust and highly flexible tunneling application compatible with many OSes."
+SRC_URI="http://openvpn.net/release/openvpn-${PV}.tar.gz"
+HOMEPAGE="http://openvpn.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc-macos ~ppc64 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
+IUSE="examples iproute2 minimal pam passwordsave selinux ssl static threads"
+
+DEPEND=">=dev-libs/lzo-1.07
+ kernel_linux? (
+ iproute2? ( sys-apps/iproute2 ) !iproute2? ( sys-apps/net-tools )
+ )
+ !minimal? ( pam? ( virtual/pam ) )
+ selinux? ( sec-policy/selinux-openvpn )
+ ssl? ( >=dev-libs/openssl-0.9.6 )"
+
+pkg_setup() {
+ if use iproute2 ; then
+ if built_with_use sys-apps/iproute2 minimal ; then
+ eerror "iproute2 support requires that sys-apps/iproute2 was not"
+ eerror "built with the minimal USE flag"
+ die "iproute2 support not available"
+ fi
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}/${PN}"-2.0.4-darwin.patch
+ epatch "${FILESDIR}/${PN}"-2.0.7-pam.patch
+ epatch "${FILESDIR}/${P}"-persistent.patch
+
+}
+
+src_compile() {
+ local myconf=""
+ # We cannot use use_enable with iproute2 as the Makefile stupidly
+ # enables it with --disable-iproute2
+ use iproute2 && myconf="${myconf} --enable-iproute2"
+ if use minimal ; then
+ myconf="${myconf} --disable-plugins"
+ myconf="${myconf} --disable-pkcs11"
+ fi
+
+ econf ${myconf} \
+ $(use_enable passwordsave password-save) \
+ $(use_enable ssl) \
+ $(use_enable ssl crypto) \
+ $(use_enable threads pthread) \
+ || die "configure failed"
+
+ use static && sed -e -i '/^LIBS/s/LIBS = /LIBS = -static /' Makefile
+
+ emake || die "make failed"
+
+ if ! use minimal ; then
+ cd plugin
+ for i in $( ls 2>/dev/null ); do
+ [[ ${i} == "README" || ${i} == "examples" ]] && continue
+ [[ ${i} == "auth-pam" ]] && ! use pam && continue
+ einfo "Building ${i} plugin"
+ cd "${i}"
+ emake || die "make failed"
+ cd ..
+ done
+ cd ..
+ fi
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "make install failed"
+
+ # install documentation
+ dodoc AUTHORS ChangeLog PORTS README
+
+ # Empty dir
+ dodir /etc/openvpn
+ keepdir /etc/openvpn
+
+ # Install some helper scripts
+ exeinto /etc/openvpn
+ doexe "${FILESDIR}/up.sh"
+ doexe "${FILESDIR}/down.sh"
+
+ # Install the init script
+ newinitd "${FILESDIR}/openvpn-2.1.init" 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
+ prepalldocs
+ fi
+
+ # Install plugins and easy-rsa
+ if ! use minimal ; then
+ cd easy-rsa/2.0
+ make install "DESTDIR=${D}/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 [[ -n $(ls /etc/openvpn/*/local.conf 2>/dev/null) ]] ; then
+ ewarn "WARNING: The openvpn init script has changed"
+ ewarn ""
+ fi
+
+ einfo "The openvpn init script expects to find the configuration file"
+ einfo "openvpn.conf in /etc/openvpn along with any extra files it may need."
+ einfo ""
+ einfo "To create more VPNs, simply create a new .conf file for it and"
+ einfo "then create a symlink to the openvpn init script from a link called"
+ einfo "openvpn.newconfname - like so"
+ einfo " cd /etc/openvpn"
+ einfo " ${EDITOR##*/} foo.conf"
+ einfo " cd /etc/init.d"
+ einfo " ln -s openvpn openvpn.foo"
+ einfo ""
+ einfo "You can then treat openvpn.foo as any other service, so you can"
+ einfo "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 userland_BSD ; then
+ ewarn ""
+ ewarn "If you run any kind of firewall on BSD and use IPv6 acrosss"
+ ewarn "OpenVPN then you'll probably have to lower the MTU to 1420"
+ ewarn "using the tun-mtu statement (even for tap devices)"
+ fi
+}