Added patches to enable txqueuelen when making a persistent interface, #150791
authorRoy Marples <uberlord@gentoo.org>
Wed, 8 Nov 2006 13:49:10 +0000 (13:49 +0000)
committerRoy Marples <uberlord@gentoo.org>
Wed, 8 Nov 2006 13:49:10 +0000 (13:49 +0000)
Package-Manager: portage-2.1.2_rc1-r4

net-misc/openvpn/ChangeLog
net-misc/openvpn/Manifest
net-misc/openvpn/files/digest-openvpn-2.0.7-r1 [new file with mode: 0644]
net-misc/openvpn/files/digest-openvpn-2.1_rc1-r1 [new file with mode: 0644]
net-misc/openvpn/files/openvpn-2.0.7-persistent.patch [new file with mode: 0644]
net-misc/openvpn/files/openvpn-2.1_rc1-persistent.patch [new file with mode: 0644]
net-misc/openvpn/openvpn-2.0.7-r1.ebuild [new file with mode: 0644]
net-misc/openvpn/openvpn-2.1_rc1-r1.ebuild [new file with mode: 0644]

index 070dc94082aba8e2d5471f1d061b42d47e1207ba..1c30facfd4f152652e9cdb5418d27184e6c10e06 100644 (file)
@@ -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:
index 88ca459771c36b1f289d9047dde8bb6b9080698b..abfa56fbcbf40b20217d50d0567dc4d8a2aeca3f 100644 (file)
@@ -10,10 +10,18 @@ AUX openvpn-2.0.7-pam.patch 1236 RMD160 3f9035a7005b206e1447dfd75edcb65cb5531b2d
 MD5 968e83fbca1dca7d68c60aacdb51b6be files/openvpn-2.0.7-pam.patch 1236
 RMD160 3f9035a7005b206e1447dfd75edcb65cb5531b2d files/openvpn-2.0.7-pam.patch 1236
 SHA256 b5906cc1bff00ebc3dc9a58861388493aa6d2be774dbacba63c2cfcc8bfa4f92 files/openvpn-2.0.7-pam.patch 1236
+AUX openvpn-2.0.7-persistent.patch 1857 RMD160 b3232feb19810ac405cd7af6bb692ed03f9c44c2 SHA1 5ac9d0ff58f56ef771d44bb1dc13322815339e72 SHA256 51de714f2191ac3ea59a7f7c5a0aa1c0bf15ee5d79ace10f2276d415cd0f59e0
+MD5 3960920a53d3398558b984d2952b6aa6 files/openvpn-2.0.7-persistent.patch 1857
+RMD160 b3232feb19810ac405cd7af6bb692ed03f9c44c2 files/openvpn-2.0.7-persistent.patch 1857
+SHA256 51de714f2191ac3ea59a7f7c5a0aa1c0bf15ee5d79ace10f2276d415cd0f59e0 files/openvpn-2.0.7-persistent.patch 1857
 AUX openvpn-2.1.init 4030 RMD160 2fd09ed8b13bdd3cc7010c8101b4df02c3c0563f SHA1 9321aa3acf0440b17bbd97cb8c3f7de68bd05122 SHA256 5fcdb3c7b27584d9a3167e3794fec77b8657814408287ef12fcb58996d66b7da
 MD5 7de21271f38af5f627ec66cc766831b9 files/openvpn-2.1.init 4030
 RMD160 2fd09ed8b13bdd3cc7010c8101b4df02c3c0563f files/openvpn-2.1.init 4030
 SHA256 5fcdb3c7b27584d9a3167e3794fec77b8657814408287ef12fcb58996d66b7da files/openvpn-2.1.init 4030
+AUX openvpn-2.1_rc1-persistent.patch 1977 RMD160 44a70845a1dac1f169fdf5f45d927709389d3166 SHA1 04dd0226e9ca71a3d4fee4e9338c4a07206f3167 SHA256 e1e1426aee7b17e784a8477d5efef1a262afd9cd124950d6a8f314c17cdb95c4
+MD5 c5392cca1d5862f58bac2a8f40ed5b58 files/openvpn-2.1_rc1-persistent.patch 1977
+RMD160 44a70845a1dac1f169fdf5f45d927709389d3166 files/openvpn-2.1_rc1-persistent.patch 1977
+SHA256 e1e1426aee7b17e784a8477d5efef1a262afd9cd124950d6a8f314c17cdb95c4 files/openvpn-2.1_rc1-persistent.patch 1977
 AUX openvpn.init 1457 RMD160 233cf3953ee341f025a9bc863e7ad0fac91369ab SHA1 b625de203e357b5e2a8d276c36e2fecc31946c1a SHA256 bfb8ac1e2d8a7d2a0313741e45f6e14ab4076581ba4166709dbe05ab110cb80a
 MD5 35cb74384ed5232c68dbf19f9107bd8e files/openvpn.init 1457
 RMD160 233cf3953ee341f025a9bc863e7ad0fac91369ab files/openvpn.init 1457
@@ -29,18 +37,26 @@ EBUILD openvpn-2.0.6.ebuild 4118 RMD160 ce11d356741c634e7cd1a3efd6921eb80ae919b4
 MD5 99bd255fe9faf60d8998dfb47ad4d59b openvpn-2.0.6.ebuild 4118
 RMD160 ce11d356741c634e7cd1a3efd6921eb80ae919b4 openvpn-2.0.6.ebuild 4118
 SHA256 0529d354151fef7c89b54b42cbcba4db58830fee9c3858a56f0aa13f3c6c8ee0 openvpn-2.0.6.ebuild 4118
+EBUILD openvpn-2.0.7-r1.ebuild 4233 RMD160 14cf1bcbd59c1223974c1bc1fbb84afa2e04ee77 SHA1 eeb46111e678b23bb519976f6b7b4f5be302de12 SHA256 216b743db7a42b29bc2812db417a1b659bbea93760191d7456455060cc943d6d
+MD5 65cc05d5c2a87710aa029c56cfb479d1 openvpn-2.0.7-r1.ebuild 4233
+RMD160 14cf1bcbd59c1223974c1bc1fbb84afa2e04ee77 openvpn-2.0.7-r1.ebuild 4233
+SHA256 216b743db7a42b29bc2812db417a1b659bbea93760191d7456455060cc943d6d openvpn-2.0.7-r1.ebuild 4233
 EBUILD openvpn-2.0.7.ebuild 4186 RMD160 088c8979b61e3d5fe2e92f51f8342b831f2499f3 SHA1 0c5b2dbfed43073e1ca5f8670c726b9f3a64c9f6 SHA256 567d794408d0ff108df399a546138698a4860150c27c11a66c07b835ba3a0050
 MD5 c460c3a340870131c3ef11743a2e3407 openvpn-2.0.7.ebuild 4186
 RMD160 088c8979b61e3d5fe2e92f51f8342b831f2499f3 openvpn-2.0.7.ebuild 4186
 SHA256 567d794408d0ff108df399a546138698a4860150c27c11a66c07b835ba3a0050 openvpn-2.0.7.ebuild 4186
+EBUILD openvpn-2.1_rc1-r1.ebuild 4744 RMD160 daf8e918990ac2a1a94705efc1227419a4c93254 SHA1 be4bd02cebb3bc7c5243e94b50803ab9793184e6 SHA256 8ff23ddaf0e5d58957f660a8cdcd4bd6eba71d3b120ca9ff20399d8288643a87
+MD5 2aa9077ade5fc7c5207f03ee5d76c526 openvpn-2.1_rc1-r1.ebuild 4744
+RMD160 daf8e918990ac2a1a94705efc1227419a4c93254 openvpn-2.1_rc1-r1.ebuild 4744
+SHA256 8ff23ddaf0e5d58957f660a8cdcd4bd6eba71d3b120ca9ff20399d8288643a87 openvpn-2.1_rc1-r1.ebuild 4744
 EBUILD openvpn-2.1_rc1.ebuild 4697 RMD160 f39bb1dc7624a53890721e60ca6b1e4a999f69d1 SHA1 bbc19074f758f0f7afc469d5cd83a423a03f179e SHA256 2969f5a4b9deb5509665c8b8000b0fbf17ee212752590b15b53f9ad28e6ff607
 MD5 7fa89ff5e05f4dd15dd45e231458a16b openvpn-2.1_rc1.ebuild 4697
 RMD160 f39bb1dc7624a53890721e60ca6b1e4a999f69d1 openvpn-2.1_rc1.ebuild 4697
 SHA256 2969f5a4b9deb5509665c8b8000b0fbf17ee212752590b15b53f9ad28e6ff607 openvpn-2.1_rc1.ebuild 4697
-MISC ChangeLog 15502 RMD160 e607728962403be198b57876d130b1606fd480fb SHA1 09fb9ce47ff92e816900cd39fc985c8e0e7fd607 SHA256 81ce66ce59b3fde0f9afe56887950abb6ea446ccebf7237d3b2007fdfe32658d
-MD5 0a50bb939fef065957255dd0c5379929 ChangeLog 15502
-RMD160 e607728962403be198b57876d130b1606fd480fb ChangeLog 15502
-SHA256 81ce66ce59b3fde0f9afe56887950abb6ea446ccebf7237d3b2007fdfe32658d ChangeLog 15502
+MISC ChangeLog 15840 RMD160 4ce3f6d4002191bdf95f95ef3a7e2e2a1e10e88f SHA1 62774ced0a1e199ce3f70f4ccb15de67d4114f81 SHA256 1eb43ac41bdc2f0218eb17c6a638949064bc99555f4f083ad3eb3a8d44b979e8
+MD5 a20a1c095caff9259aa6e4d106436491 ChangeLog 15840
+RMD160 4ce3f6d4002191bdf95f95ef3a7e2e2a1e10e88f ChangeLog 15840
+SHA256 1eb43ac41bdc2f0218eb17c6a638949064bc99555f4f083ad3eb3a8d44b979e8 ChangeLog 15840
 MISC metadata.xml 440 RMD160 120089ec9c799161dfeeacd9a3adfc40b4317f06 SHA1 23d2975ef0f709dc2e754a5867942e679ee60740 SHA256 408ca4fc4f58fa21e629582d0a44a759f9695a018479d70efbd3338b6bdbcfd6
 MD5 62aa0438042b29eba4a6afd971037761 metadata.xml 440
 RMD160 120089ec9c799161dfeeacd9a3adfc40b4317f06 metadata.xml 440
@@ -51,6 +67,12 @@ SHA256 cc2c7e3423898778eb6f6b45bdd4ba18d2a20be748cfa8482eba4ca20c2f80bd files/di
 MD5 f8b2e9d63bd97591290f11cd6bf8ae2a files/digest-openvpn-2.0.7 241
 RMD160 95c02dbccbc539ab7e6c2947ef7d187c3be3b6ad files/digest-openvpn-2.0.7 241
 SHA256 a1f31a906a965a6209c5e248a0a36f80423f087dd519d8465503446f23f1446d files/digest-openvpn-2.0.7 241
+MD5 f8b2e9d63bd97591290f11cd6bf8ae2a files/digest-openvpn-2.0.7-r1 241
+RMD160 95c02dbccbc539ab7e6c2947ef7d187c3be3b6ad files/digest-openvpn-2.0.7-r1 241
+SHA256 a1f31a906a965a6209c5e248a0a36f80423f087dd519d8465503446f23f1446d files/digest-openvpn-2.0.7-r1 241
 MD5 bb7afa7edeacc9e41966e22abf947db5 files/digest-openvpn-2.1_rc1 247
 RMD160 3d9aea0ae09e97b06c00e158b96ea1ec46cb4bcf files/digest-openvpn-2.1_rc1 247
 SHA256 cb762f95d659bb7f55c64f681b194e75afded7641d68a3528a2d80df14dc1a24 files/digest-openvpn-2.1_rc1 247
+MD5 bb7afa7edeacc9e41966e22abf947db5 files/digest-openvpn-2.1_rc1-r1 247
+RMD160 3d9aea0ae09e97b06c00e158b96ea1ec46cb4bcf files/digest-openvpn-2.1_rc1-r1 247
+SHA256 cb762f95d659bb7f55c64f681b194e75afded7641d68a3528a2d80df14dc1a24 files/digest-openvpn-2.1_rc1-r1 247
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 (file)
index 0000000..c534cdb
--- /dev/null
@@ -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 (file)
index 0000000..03a90a8
--- /dev/null
@@ -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 (file)
index 0000000..cddfcdb
--- /dev/null
@@ -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 (file)
index 0000000..2ffb491
--- /dev/null
@@ -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 (file)
index 0000000..9412be1
--- /dev/null
@@ -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 (file)
index 0000000..43904e7
--- /dev/null
@@ -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
+}