diff options
author | Dirkjan Ochtman <djc@gentoo.org> | 2012-03-01 12:09:00 +0000 |
---|---|---|
committer | Dirkjan Ochtman <djc@gentoo.org> | 2012-03-01 12:09:00 +0000 |
commit | 3d24a578e20c850ea66de9d72656ccade8588c57 (patch) | |
tree | 04cef0a621fb0539c0156b0bb67f07f136b528f0 /net-misc/openvpn | |
parent | Version bump, remove old. (diff) | |
download | gentoo-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/ChangeLog | 8 | ||||
-rw-r--r-- | net-misc/openvpn/files/openvpn-9999-pkcs11.patch | 32 | ||||
-rw-r--r-- | net-misc/openvpn/openvpn-9999.ebuild | 170 |
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 +} |