diff options
author | Roy Marples <uberlord@gentoo.org> | 2006-11-08 13:49:10 +0000 |
---|---|---|
committer | Roy Marples <uberlord@gentoo.org> | 2006-11-08 13:49:10 +0000 |
commit | 29b25c53613b670cc4c4b12b8f755515f76f0cbb (patch) | |
tree | 0135b155db2b43971e738b9e68ba52b7deb803f1 /net-misc/openvpn | |
parent | - .18-ebuilds. (diff) | |
download | gentoo-2-29b25c53613b670cc4c4b12b8f755515f76f0cbb.tar.gz gentoo-2-29b25c53613b670cc4c4b12b8f755515f76f0cbb.tar.bz2 gentoo-2-29b25c53613b670cc4c4b12b8f755515f76f0cbb.zip |
Added patches to enable txqueuelen when making a persistent interface, #150791
(Portage version: 2.1.2_rc1-r4)
Diffstat (limited to 'net-misc/openvpn')
-rw-r--r-- | net-misc/openvpn/ChangeLog | 11 | ||||
-rw-r--r-- | net-misc/openvpn/files/digest-openvpn-2.0.7-r1 | 3 | ||||
-rw-r--r-- | net-misc/openvpn/files/digest-openvpn-2.1_rc1-r1 | 3 | ||||
-rw-r--r-- | net-misc/openvpn/files/openvpn-2.0.7-persistent.patch | 44 | ||||
-rw-r--r-- | net-misc/openvpn/files/openvpn-2.1_rc1-persistent.patch | 44 | ||||
-rw-r--r-- | net-misc/openvpn/openvpn-2.0.7-r1.ebuild | 143 | ||||
-rw-r--r-- | net-misc/openvpn/openvpn-2.1_rc1-r1.ebuild | 162 |
7 files changed, 409 insertions, 1 deletions
diff --git a/net-misc/openvpn/ChangeLog b/net-misc/openvpn/ChangeLog index 070dc94082ab..1c30facfd4f1 100644 --- a/net-misc/openvpn/ChangeLog +++ b/net-misc/openvpn/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for net-misc/openvpn # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/openvpn/ChangeLog,v 1.101 2006/11/06 09:52:22 uberlord Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/openvpn/ChangeLog,v 1.102 2006/11/08 13:49:10 uberlord Exp $ + +*openvpn-2.1_rc1-r1 (08 Nov 2006) +*openvpn-2.0.7-r1 (08 Nov 2006) + + 08 Nov 2006; Roy Marples <uberlord@gentoo.org> + +files/openvpn-2.0.7-persistent.patch, + +files/openvpn-2.1_rc1-persistent.patch, +openvpn-2.0.7-r1.ebuild, + +openvpn-2.1_rc1-r1.ebuild: + Added patches to enable txqueuelen when making a persistent interface, #150791 06 Nov 2006; Roy Marples <uberlord@gentoo.org> openvpn-2.0.6.ebuild, openvpn-2.0.7.ebuild, -openvpn-2.1_beta15.ebuild, openvpn-2.1_rc1.ebuild: diff --git a/net-misc/openvpn/files/digest-openvpn-2.0.7-r1 b/net-misc/openvpn/files/digest-openvpn-2.0.7-r1 new file mode 100644 index 000000000000..c534cdba1b47 --- /dev/null +++ b/net-misc/openvpn/files/digest-openvpn-2.0.7-r1 @@ -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-r1 b/net-misc/openvpn/files/digest-openvpn-2.1_rc1-r1 new file mode 100644 index 000000000000..03a90a8e78bc --- /dev/null +++ b/net-misc/openvpn/files/digest-openvpn-2.1_rc1-r1 @@ -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/openvpn-2.0.7-persistent.patch b/net-misc/openvpn/files/openvpn-2.0.7-persistent.patch new file mode 100644 index 000000000000..cddfcdbd33be --- /dev/null +++ b/net-misc/openvpn/files/openvpn-2.0.7-persistent.patch @@ -0,0 +1,44 @@ +diff -u /tmp/openvpn-2.0.7/init.c openvpn-2.0.7/init.c +--- openvpn-2.0.7/init.c 2006-11-08 13:33:02.043877584 +0000 ++++ openvpn-2.0.7/init.c 2006-11-08 13:33:24.000000000 +0000 +@@ -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 -u /tmp/openvpn-2.0.7/tun.c openvpn-2.0.7/tun.c +--- openvpn-2.0.7/tun.c 2006-11-08 13:33:02.037878496 +0000 ++++ openvpn-2.0.7/tun.c 2006-11-08 13:34:20.000000000 +0000 +@@ -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 -u /tmp/openvpn-2.0.7/tun.h openvpn-2.0.7/tun.h +--- openvpn-2.0.7/tun.h 2006-11-08 13:33:02.042877736 +0000 ++++ openvpn-2.0.7/tun.h 2006-11-08 13:33:50.000000000 +0000 +@@ -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/net-misc/openvpn/files/openvpn-2.1_rc1-persistent.patch b/net-misc/openvpn/files/openvpn-2.1_rc1-persistent.patch new file mode 100644 index 000000000000..2ffb4910089f --- /dev/null +++ b/net-misc/openvpn/files/openvpn-2.1_rc1-persistent.patch @@ -0,0 +1,44 @@ +diff -u openvpn-2.1_rc1/init.c /tmp/openvpn-2.1_rc1/init.c +--- openvpn-2.1_rc1/init.c 2006-10-15 23:30:20.000000000 +0100 ++++ openvpn-2.1_rc1/init.c 2006-11-08 13:25:04.136530544 +0000 +@@ -425,7 +425,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); + if (options->persist_mode && options->lladdr) + set_lladdr(options->dev, options->lladdr, NULL); + return true; +diff -u openvpn-2.1_rc1/tun.c /tmp/openvpn-2.1_rc1/tun.c +--- openvpn-2.1_rc1/tun.c 2006-10-15 23:30:20.000000000 +0100 ++++ openvpn-2.1_rc1/tun.c 2006-11-08 13:25:04.129531608 +0000 +@@ -1163,13 +1163,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 -u openvpn-2.1_rc1/tun.h /tmp/openvpn-2.1_rc1/tun.h +--- openvpn-2.1_rc1/tun.h 2006-10-15 23:30:20.000000000 +0100 ++++ openvpn-2.1_rc1/tun.h 2006-11-08 13:25:04.135530696 +0000 +@@ -204,7 +204,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/net-misc/openvpn/openvpn-2.0.7-r1.ebuild b/net-misc/openvpn/openvpn-2.0.7-r1.ebuild new file mode 100644 index 000000000000..9412be1df985 --- /dev/null +++ b/net-misc/openvpn/openvpn-2.0.7-r1.ebuild @@ -0,0 +1,143 @@ +# Copyright 1999-2006 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-r1.ebuild,v 1.1 2006/11/08 13:49:10 uberlord Exp $ + +inherit eutils gnuconfig 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 ~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" + + gnuconfig_update +} + +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-r1.ebuild b/net-misc/openvpn/openvpn-2.1_rc1-r1.ebuild new file mode 100644 index 000000000000..43904e76a6bc --- /dev/null +++ b/net-misc/openvpn/openvpn-2.1_rc1-r1.ebuild @@ -0,0 +1,162 @@ +# Copyright 1999-2006 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-r1.ebuild,v 1.1 2006/11/08 13:49:10 uberlord Exp $ + +inherit eutils gnuconfig 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 ~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 + + gnuconfig_update +} + +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 +} |