blob: 9092550fd00e5e29844aad6ca8ce118d35ddf1b6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
inherit eutils multilib toolchain-funcs autotools
DESCRIPTION="Anytun is an implementation of the Secure Anycast Tunneling
Protocol. It provides similary functionality to openvpn but with less overhead
and the ability use an anycast ip and therefore mulitple endpoints at the same
time."
SRC_URI="http://anytun.org/~equinox/${P}.tar.gz"
HOMEPAGE="http://anytun.org/"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~x86-fbsd"
IUSE="gcrypt doc"
DEPEND=">=dev-libs/boost-1.35
gcrypt? ( dev-libs/libgcrypt )
!gcrypt? ( >=dev-libs/openssl-0.9.6 )
doc? ( app-text/asciidoc )"
RDEPEND="${DEPEND}"
pkg_setup() {
}
src_unpack() {
unpack ${A}
cd "${S}"
#epatch "${FILESDIR}/${PN}-2.1_rc13-peercred.patch"
#epatch "${FILESDIR}"/openvpn-2.1_rc20-pkcs11.patch
eautoreconf
}
src_compile() {
local myconf=""
if use gcrypt ; then
#myconf="$(use_enable pkcs11)"
myconf="${myconf}"
else
myconf="${myconf} --use-ssl-crypto"
fi
econf ${myconf} \
|| die "configure failed"
#use static && sed -i -e '/^LIBS/s/LIBS = /LIBS = -static /' Makefile
emake || die "make failed"
if use static ; then
emake anytun-static || die "make anytun-static failed"
fi
if use doc ; then
einfo "Building manpages"
emake manpage
fi
}
src_install() {
mkdir -p ${D}/usr/sbin ${D}/usr/bin ${D}/var/run/anytun ${D}/var/run/anytun-controld ${D}/etc/anytun ${D}/etc/rc.d/ ${D}/usr/share/$pkgname-$pkgver/etc-example/
cp anytun ${D}/usr/sbin/
cp anytun-config anytun-controld anytun-nosync anytun-showtables ${D}/usr/bin/
#touch ${D}/var/run/anytun/.keep ${D}/var/run/anytun-controld/.keep
cp $srcdir/$pkgname-$pkgver/etc/init.d/anytun ${D}/etc/rc.d/
cp -R $srcdir/$pkgname-$pkgver/etc/anytun ${D}/usr/share/$pkgname-$pkgver/etc-example/
cp $srcdir/$pkgname-$pkgver/etc/anytun/autostart ${D}/etc/anytun/
cp -R ../wireshark-lua ${D}/usr/share/$pkgname-$pkgver/
keepdir /var/run/anytun-controld
use doc && dodoc
..........
make DESTDIR="${D}" install || die "make install failed"
# install documentation
dodoc AUTHORS ChangeLog LICENSE README
# remove empty dir
rmdir "${D}/usr/share/doc/openvpn"
# 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 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
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 ipv6 ; then
einfo ""
einfo "This build contains IPv6-Patch from JuanJo Ciarlante."
einfo "For more information please visit:"
einfo "http://github.com/jjo/openvpn-ipv6"
fi
if use eurephia ; then
einfo ""
einfo "This build contains eurephia patch."
einfo "For more information please visit:"
einfo "http://www.eurephia.net/"
fi
}
|