# -*- 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 ad3f1cbc875b8e711526d57374dc33c60b0a91dd
checksums           rmd160  59353a09dc3f1b2b37c70f5d551ed3b584867190 \
                    sha256  107473eab271b6c622439416ae129f1822b6ae55c0a251c2e00dfd7564311615

name                nfd
homepage            http://named-data.net/doc/NFD/
license             GPL3+
version             0.2.0-rc2.4
epoch               1

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/65cc3765a892ee5928160ba478178e747233aa6c > websocket.tar.gz && \
            tar zxf websocket.tar.gz -C websocketpp/ --strip 1"
}

configure.env-append    SPHINX_BUILD=${prefix}/bin/sphinx-build-2.7
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/
    xinstall -m 755 ${filespath}/net.named-data.nrd.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
    reinplace "s|/usr/local|${prefix}|g" \
        ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nrd.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"
    system "cd /Library/LaunchDaemons && sudo ln -sf \
            ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nrd.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 -"

        # Generate self-signed NDN certificate for nrd (owned by ndn)
        xinstall -m 755 -d -o ${ndn_user} -g ${ndn_group} ${prefix}/var/lib/ndn/nrd/.ndn
        system "sudo -u ${ndn_user} -g ${ndn_group} sh -c 'echo tpm=file \
          > ${prefix}/var/lib/ndn/nrd/.ndn/client.conf'"
        system "sudo -u ${ndn_user} -g ${ndn_group} HOME=${prefix}/var/lib/ndn/nrd \
          ndnsec-keygen /localhost/daemons/nrd | \
          sudo -u ${ndn_user} -g ndn HOME=${prefix}/var/lib/ndn/nrd 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/nrd \
          ndnsec-dump-certificate -i /localhost/daemons/nrd \
          > ${prefix}/etc/ndn/certs/localhost_daemons_nrd.ndncert'"

    }
}

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

    system "rm ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nfd.plist"
    system "rm ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nrd.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/

"
