# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id$

PortSystem          1.0
PortGroup           github 1.0

github.setup        named-data NFD NFD-0.3.2
checksums           rmd160  3e6890104286046251f08a818493228cdef851a2 \
                    sha256  5633a84f97ad293dedd1ded3a87554826c8f7be206a5de03860da3c66768c487

name                nfd
homepage            http://named-data.net/doc/NFD/
license             GPL3+
version             0.3.2
epoch               3

categories          net
platforms           darwin
maintainers         ucla.edu:alexander.afanasyev

description         Named Data Networking Forwarding Daemon

long_description \
    NFD is a network forwarder that implements and evolves together with the \
    Named Data Networking (NDN) protocol.  The main design goal of NFD is \
    to support diverse experimentation of NDN technology.                 \
    The design emphasizes modularity and extensibility to allow easy      \
    experiments with new protocol features, algorithms, new               \
    applications. We have not fully optimized the code for                \
    performance. The intention is that performance optimizations are one  \
    type of experiments that developers can conduct by trying out         \
    different data structures and different algorithms\; over time, better \
    implementations may emerge within the same design framework.

depends_lib-append  port:ndn-cxx \
                    port:libpcap

depends_build-append    port:pkgconfig \
                        port:py27-sphinx

use_configure           yes

pre-configure {
    system "cd ${worksrcpath} && \
            curl -L https://github.com/zaphoyd/websocketpp/tarball/ac5d7ea5af9734de965688b54a7860259887b537 > websocket.tar.gz && \
            tar zxf websocket.tar.gz -C websocketpp/ --strip 1"
}

configure.env-append    SPHINX_BUILD=${prefix}/bin/sphinx-build-2.7
configure.env-append PKG_CONFIG_PATH=${prefix}/lib/pkgconfig
configure.cxxflags-append -std=c++11
configure.cmd           ./waf configure

build.cmd           ./waf
build.target        build

destroot.cmd        ./waf
destroot.target     install
destroot.destdir    --destdir=${destroot}

set ndn_user        ndn
set ndn_group       ndn

add_users ${ndn_user} shell=/bin/sh group=${ndn_group} \
    realname=NDN\ User

post-destroot {
    # Install plists
    xinstall -m 755 -d ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/
    xinstall -m 755 ${filespath}/net.named-data.nfd.plist \
        ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/

    reinplace "s|/usr/local|${prefix}|g" \
        ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nfd.plist

    # Install replacement for nfd-start/stop scripts
    xinstall -m 755 ${filespath}/nfd-start "${destroot}${prefix}/bin/"
    xinstall -m 755 ${filespath}/nfd-stop "${destroot}${prefix}/bin/"
}

post-activate {

    # Create log dir
    xinstall -m 755 -d -o ${ndn_user} -g ${ndn_group} \
        ${prefix}/var/log/ndn

    system "cd /Library/LaunchDaemons && sudo ln -sf \
            ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nfd.plist"

    if {![file exists ${prefix}/etc/ndn/nfd.conf]} {

        file copy ${prefix}/etc/ndn/nfd.conf.sample \
            ${prefix}/etc/ndn/nfd.conf

        # Generate self-signed NDN certificate for nfd (owned by root)
        xinstall -m 755 -d ${prefix}/var/lib/ndn/nfd/.ndn
        system "echo tpm=file > ${prefix}/var/lib/ndn/nfd/.ndn/client.conf"
        system "HOME=${prefix}/var/lib/ndn/nfd ndnsec-keygen /localhost/daemons/nfd | \
          HOME=${prefix}/var/lib/ndn/nfd ndnsec-install-cert -"

        # Dump RIB Management daemon's certificate
        xinstall -m 755 -d ${prefix}/etc/ndn/certs
        system "sudo sh -c 'sudo -u ${ndn_user} -g ${ndn_group} HOME=${prefix}/var/lib/ndn/nfd \
          ndnsec-dump-certificate -i /localhost/daemons/nfd \
          > ${prefix}/etc/ndn/certs/localhost_daemons_nfd.ndncert'"

    }
}

pre-deactivate {
    system "${prefix}/bin/nfd-stop"

    system "rm ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nfd.plist"
}

notes "

To start NFD and ensure it is started when system boots:

    nfd-start

To stop NFD and disable auto-start when system boots:

    nfd-stop

NFD log files are located in ${prefix}/var/log/ndn/

Configuration file is in ${prefix}/var/etc/ndn/

"
