summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirkjan Ochtman <djc@gentoo.org>2012-03-01 12:09:00 +0000
committerDirkjan Ochtman <djc@gentoo.org>2012-03-01 12:09:00 +0000
commit3d24a578e20c850ea66de9d72656ccade8588c57 (patch)
tree04cef0a621fb0539c0156b0bb67f07f136b528f0 /net-misc/openvpn
parentVersion bump, remove old. (diff)
downloadgentoo-2-3d24a578e20c850ea66de9d72656ccade8588c57.tar.gz
gentoo-2-3d24a578e20c850ea66de9d72656ccade8588c57.tar.bz2
gentoo-2-3d24a578e20c850ea66de9d72656ccade8588c57.zip
Add live ebuild for openvpn (bug 385375).
(Portage version: 2.1.10.49/cvs/Linux x86_64)
Diffstat (limited to 'net-misc/openvpn')
-rw-r--r--net-misc/openvpn/ChangeLog8
-rw-r--r--net-misc/openvpn/files/openvpn-9999-pkcs11.patch32
-rw-r--r--net-misc/openvpn/openvpn-9999.ebuild170
3 files changed, 209 insertions, 1 deletions
diff --git a/net-misc/openvpn/ChangeLog b/net-misc/openvpn/ChangeLog
index 8f3c1733387f..33f0696a3e74 100644
--- a/net-misc/openvpn/ChangeLog
+++ b/net-misc/openvpn/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-misc/openvpn
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/openvpn/ChangeLog,v 1.223 2012/02/23 22:57:50 fauli Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openvpn/ChangeLog,v 1.224 2012/03/01 12:09:00 djc Exp $
+
+*openvpn-9999 (01 Mar 2012)
+
+ 01 Mar 2012; Dirkjan Ochtman <djc@gentoo.org> +openvpn-9999.ebuild,
+ +files/openvpn-9999-pkcs11.patch:
+ Add live ebuild (bug 385375). Thanks to Marcel Pennewiß.
23 Feb 2012; Christian Faulhammer <fauli@gentoo.org>
files/openvpn-2.1_rc20-pkcs11.patch, +files/openvpn-2.2.0-pkcs11.patch:
diff --git a/net-misc/openvpn/files/openvpn-9999-pkcs11.patch b/net-misc/openvpn/files/openvpn-9999-pkcs11.patch
new file mode 100644
index 000000000000..0df65c7b960b
--- /dev/null
+++ b/net-misc/openvpn/files/openvpn-9999-pkcs11.patch
@@ -0,0 +1,32 @@
+--- easy-rsa/2.0/openssl-1.0.0.cnf.orig 2011-10-02 10:16:45.000000000 +0200
++++ easy-rsa/2.0/openssl-1.0.0.cnf 2011-10-02 10:16:37.000000000 +0200
+@@ -278,8 +278,8 @@
+ #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
+--- easy-rsa/2.0/openssl-0.9.8.cnf.orig 2011-10-02 10:16:04.000000000 +0200
++++ easy-rsa/2.0/openssl-0.9.8.cnf 2011-10-02 10:10:35.000000000 +0200
+@@ -283,8 +283,8 @@
+ #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/openvpn-9999.ebuild b/net-misc/openvpn/openvpn-9999.ebuild
new file mode 100644
index 000000000000..b53bcfc4e29c
--- /dev/null
+++ b/net-misc/openvpn/openvpn-9999.ebuild
@@ -0,0 +1,170 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit eutils multilib toolchain-funcs autotools flag-o-matic git-2
+
+DESCRIPTION="OpenVPN is a robust and highly flexible tunneling application compatible with many OSes."
+EGIT_REPO_URI="git://${PN}.git.sourceforge.net/gitroot/${PN}/${PN}.git"
+HOMEPAGE="http://openvpn.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+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}/${P}-pkcs11.patch"
+ sed -i \
+ -e "s/gcc \${CC_FLAGS}/\${CC} \${CFLAGS} -Wall/" \
+ -e "s/-shared/-shared \${LDFLAGS}/" \
+ plugin/*/Makefile || die "sed failed"
+
+ # Add GIT commit ID to Product Version
+ sed -i \
+ -e "/^define(PRODUCT_VERSION/s/])/-git-${EGIT_VERSION}])/" \
+ version.m4
+ eautoreconf
+}
+
+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 README.IPv6 TODO.IPv6
+
+ # 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 [[ ${PV} == "9999" ]]; then
+ ewarn ""
+ ewarn "You are using a live ebuild building from the sources of openvpn"
+ ewarn "repository from http://openvpn.git.sourceforge.net. For reporting"
+ ewarn "bugs please contact: openvpn-devel@lists.sourceforge.net"
+ fi
+}