# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=6 PYTHON_COMPAT=( python2_7 ) inherit eutils flag-o-matic linux-info systemd python-single-r1 toolchain-funcs DESCRIPTION="Encrypted networking for regular people" HOMEPAGE="https://github.com/cjdelisle/cjdns" SRC_URI="https://github.com/cjdelisle/cjdns/archive/${PN}-v${PV}.tar.gz" LICENSE="GPL-3" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="tools" # bunled libuv and libNaCL are slightly different # unbundling is hard task :-/ DEPEND=">=net-libs/nodejs-4.6.2 ${PYTHON_DEPS}" S="${WORKDIR}/${PN}-${PN}-v${PV}" TOOLS_PATH=/usr/libexec/cjdns pkg_setup() { linux-info_pkg_setup if ! linux_config_exists; then eerror "Unable to check your kernel for TUN support" else CONFIG_CHECK="~TUN" ERROR_TUN="Your kernel lacks TUN support." fi } src_compile() { python-single-r1_pkg_setup tc-export CC ./do || die "./do failed" } src_install() { dodoc README.md doc/*.* doman doc/man/cjdroute.conf.5 dosbin cjdroute newinitd "${FILESDIR}/cjdns.runscript" cjdns systemd_dounit contrib/systemd/cjdns.service if use tools; then exeinto ${TOOLS_PATH} doexe contrib/python/cexec doexe contrib/python/cjdnsa doexe contrib/python/cjdnsadminmaker.py doexe contrib/python/cjdnslog doexe contrib/python/drawgraph doexe contrib/python/dumpgraph doexe contrib/python/dumptable doexe contrib/python/findnodes doexe contrib/python/getLinks doexe contrib/python/graphStats doexe contrib/python/ip6topk doexe contrib/python/peerStats doexe contrib/python/pingAll.py doexe contrib/python/pktoip6 doexe contrib/python/searches doexe contrib/python/sessionStats doexe contrib/python/trashroutes insinto "${TOOLS_PATH}/cjdnsadmin" doins contrib/python/cjdnsadmin/* fi } pkg_postinst() { local config_file="cjdroute.conf" local config_path="${ROOT}etc/${config_file}" if [[ ! -e "${config_path}" ]] ; then ebegin "Generating ${config_file}..." (umask 077 && cjdroute --genconf > "${T}/${config_file}") || die "cjdroute --genconf failed" mv "${T}/${config_file}" "${config_path}" eend "${?}" || die "Failed to generate and install ${config_file}" elog "The keys in ${config_path} have been autogenerated during " elog "emerge, they are not defaults and do not need to be overwritten." fi ewarn "Protect ${config_path}! A lost conf file means you have " ewarn "lost your password and connections and anyone who connected " ewarn "to you will no longer be able to connect. A *compromised* " ewarn "conf file means that other people can impersonate you on " ewarn "the network." ewarn einfo "The cjdns runscript will load the TUN kernel module automatically." einfo "If you are using systemd and have TUN built as a module, add tun " einfo "to /etc/modules-load.d/ for automatic loading at boot-time." einfo "echo tun > /etc/modules-load.d/cjnds.conf" if use tools ; then einfo "Additional tools was installed into : ${TOOLS_PATH}" fi }