| # Copyright 1999-2014 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| inherit eutils cmake-utils user toolchain-funcs systemd |
| |
| MY_P=${PN}-${PV/_rc/rc} |
| DESCRIPTION="Peer-to-peer VPN, NCD scripting language, tun2socks proxifier" |
| HOMEPAGE="https://github.com/ambrop72/badvpn https://code.google.com/p/badvpn/" |
| SRC_URI="https://github.com/ambrop72/badvpn/archive/${PV}.tar.gz -> ${P}.tar.gz" |
| |
| LICENSE="BSD" |
| KEYWORDS="amd64 ~arm x86" |
| SLOT="0" |
| TARGETS="+client +ncd +server +tun2socks +udpgw" |
| IUSE="${TARGETS} debug" |
| # tests are only ncd related |
| RESTRICT="!ncd? ( test )" |
| |
| COMMON_DEPEND=" |
| client? ( |
| dev-libs/nspr |
| dev-libs/nss |
| dev-libs/openssl |
| ) |
| server? ( |
| dev-libs/nspr |
| dev-libs/nss |
| dev-libs/openssl |
| ) |
| ncd? ( |
| dev-libs/openssl |
| )" |
| RDEPEND="${COMMON_DEPEND} |
| ncd? ( |
| sys-apps/iproute2 |
| >=virtual/udev-171 |
| )" |
| DEPEND="${COMMON_DEPEND} |
| virtual/pkgconfig" |
| # we need at least one target |
| REQUIRED_USE="|| ( ${TARGETS//+/} )" |
| |
| S=${WORKDIR}/${MY_P} |
| |
| pkg_setup() { |
| enewuser ${PN} |
| } |
| |
| src_prepare() { |
| # allow user to easily apply patches |
| epatch_user |
| } |
| |
| src_configure() { |
| local mycmakeargs=( |
| -DBUILD_NOTHING_BY_DEFAULT=1 |
| $(cmake-utils_use_build client CLIENT) |
| $(cmake-utils_use_build server SERVER) |
| $(cmake-utils_use_build ncd NCD) |
| $(cmake-utils_use_build tun2socks TUN2SOCKS) |
| $(cmake-utils_use_build udpgw UDPGW) |
| ) |
| |
| cmake-utils_src_configure |
| } |
| |
| src_test() { |
| # OOHMSA: do this on portage level? |
| tc-is-cross-compiler && die "these tests do not work when cross compiling!" |
| |
| einfo "Running NCD tests" |
| cd "${S}"/ncd/tests || die |
| bash ./run_tests "${CMAKE_BUILD_DIR}/ncd/badvpn-ncd" \ |
| || die "one or more tests failed" |
| } |
| |
| src_install() { |
| cmake-utils_src_install |
| dodoc ChangeLog |
| |
| if use server; then |
| newinitd "${FILESDIR}"/${PN}-server.init ${PN}-server |
| newconfd "${FILESDIR}"/${PN}-server.conf ${PN}-server |
| fi |
| |
| if use ncd; then |
| newinitd "${FILESDIR}"/${PN}-1.999.127-ncd.init ${PN}-ncd |
| newconfd "${FILESDIR}"/${PN}-ncd.conf ${PN}-ncd |
| systemd_dounit "${FILESDIR}"/badvpn-ncd.service |
| fi |
| } |