blob: 81390ece30bcbae0ba445a53e4c1ac80994ff8c0 [file] [log] [blame]
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -07001# -*- 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
2# $Id$
3
4PortSystem 1.0
5PortGroup github 1.0
6
Alexander Afanasyev51ba7402015-02-03 00:22:43 -08007github.setup named-data NFD NFD-0.3.0
8checksums rmd160 1adfd25be1889ff0fa0073fcab1b9f6b82371ba0 \
9 sha256 695274851fa3b9c0b17cc2e16ff00259749bae35ef429c5a90400f93b3daf6a0
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -070010
11name nfd
12homepage http://named-data.net/doc/NFD/
13license GPL3+
Alexander Afanasyev51ba7402015-02-03 00:22:43 -080014version 0.3.0
15epoch 3
Alexander Afanasyeve1a35c32015-02-20 14:12:38 -080016revision 1
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -070017
18categories net
19platforms darwin
20maintainers ucla.edu:alexander.afanasyev
21
22description Named Data Networking Forwarding Daemon
23
24long_description \
25 NFD is a network forwarder that implements and evolves together with the \
26 Named Data Networking (NDN) protocol. The main design goal of NFD is \
27 to support diverse experimentation of NDN technology. \
28 The design emphasizes modularity and extensibility to allow easy \
29 experiments with new protocol features, algorithms, new \
30 applications. We have not fully optimized the code for \
31 performance. The intention is that performance optimizations are one \
32 type of experiments that developers can conduct by trying out \
33 different data structures and different algorithms\; over time, better \
34 implementations may emerge within the same design framework.
35
36depends_lib-append port:ndn-cxx \
37 port:libpcap
38
39depends_build-append port:pkgconfig \
40 port:py27-sphinx
41
42use_configure yes
43
Alexander Afanasyev2dfea932014-07-02 12:05:30 -070044pre-configure {
45 system "cd ${worksrcpath} && \
Alexander Afanasyevf9312c32014-12-18 14:23:41 -080046 curl -L https://github.com/zaphoyd/websocketpp/tarball/4309749dd98937b8a7be5dc0bfe679ba201c5512 > websocket.tar.gz && \
Alexander Afanasyev2dfea932014-07-02 12:05:30 -070047 tar zxf websocket.tar.gz -C websocketpp/ --strip 1"
48}
49
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -070050configure.env-append SPHINX_BUILD=${prefix}/bin/sphinx-build-2.7
Alexander Afanasyeve1a35c32015-02-20 14:12:38 -080051configure.env-append PKG_CONFIG_PATH=${prefix}/lib/pkgconfig
Alexander Afanasyevf9312c32014-12-18 14:23:41 -080052configure.cxxflags-append -std=c++11
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -070053configure.cmd ./waf configure
54
55build.cmd ./waf
56build.target build
57
58destroot.cmd ./waf
59destroot.target install
60destroot.destdir --destdir=${destroot}
61
62set ndn_user ndn
63set ndn_group ndn
64
65add_users ${ndn_user} shell=/bin/sh group=${ndn_group} \
66 realname=NDN\ User
67
68post-destroot {
69 # Install plists
70 xinstall -m 755 -d ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/
71 xinstall -m 755 ${filespath}/net.named-data.nfd.plist \
72 ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/
73 xinstall -m 755 ${filespath}/net.named-data.nrd.plist \
74 ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/
75
76 reinplace "s|/usr/local|${prefix}|g" \
77 ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nfd.plist
78 reinplace "s|/usr/local|${prefix}|g" \
79 ${destroot}${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nrd.plist
80
81 # Install replacement for nfd-start/stop scripts
82 xinstall -m 755 ${filespath}/nfd-start "${destroot}${prefix}/bin/"
83 xinstall -m 755 ${filespath}/nfd-stop "${destroot}${prefix}/bin/"
84}
85
86post-activate {
87
88 # Create log dir
89 xinstall -m 755 -d -o ${ndn_user} -g ${ndn_group} \
90 ${prefix}/var/log/ndn
91
92 system "cd /Library/LaunchDaemons && sudo ln -sf \
93 ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nfd.plist"
94 system "cd /Library/LaunchDaemons && sudo ln -sf \
95 ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nrd.plist"
96
97 if {![file exists ${prefix}/etc/ndn/nfd.conf]} {
98
99 file copy ${prefix}/etc/ndn/nfd.conf.sample \
100 ${prefix}/etc/ndn/nfd.conf
101
102 # Generate self-signed NDN certificate for nfd (owned by root)
103 xinstall -m 755 -d ${prefix}/var/lib/ndn/nfd/.ndn
104 system "echo tpm=file > ${prefix}/var/lib/ndn/nfd/.ndn/client.conf"
105 system "HOME=${prefix}/var/lib/ndn/nfd ndnsec-keygen /localhost/daemons/nfd | \
106 HOME=${prefix}/var/lib/ndn/nfd ndnsec-install-cert -"
107
108 # Generate self-signed NDN certificate for nrd (owned by ndn)
109 xinstall -m 755 -d -o ${ndn_user} -g ${ndn_group} ${prefix}/var/lib/ndn/nrd/.ndn
110 system "sudo -u ${ndn_user} -g ${ndn_group} sh -c 'echo tpm=file \
111 > ${prefix}/var/lib/ndn/nrd/.ndn/client.conf'"
112 system "sudo -u ${ndn_user} -g ${ndn_group} HOME=${prefix}/var/lib/ndn/nrd \
113 ndnsec-keygen /localhost/daemons/nrd | \
114 sudo -u ${ndn_user} -g ndn HOME=${prefix}/var/lib/ndn/nrd ndnsec-install-cert -"
115
116 # Dump RIB Management daemon's certificate
117 xinstall -m 755 -d ${prefix}/etc/ndn/certs
118 system "sudo sh -c 'sudo -u ${ndn_user} -g ${ndn_group} HOME=${prefix}/var/lib/ndn/nrd \
119 ndnsec-dump-certificate -i /localhost/daemons/nrd \
120 > ${prefix}/etc/ndn/certs/localhost_daemons_nrd.ndncert'"
121
122 }
123}
124
125pre-deactivate {
126 system "${prefix}/bin/nfd-stop"
127
128 system "rm ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nfd.plist"
129 system "rm ${prefix}/etc/LaunchDaemons/net.named-data.nfd/net.named-data.nrd.plist"
130}
131
132notes "
133
134To start NFD and ensure it is started when system boots:
135
136 nfd-start
137
138To stop NFD and disable auto-start when system boots:
139
140 nfd-stop
141
142NFD log files are located in ${prefix}/var/log/ndn/
143
144Configuration file is in ${prefix}/var/etc/ndn/
145
146"