blob: 1b6c29e9c1820174b1417274343ce7f6ffa36d50 [file] [log] [blame]
# -*- 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/
"