ndnx: Initial port of version v0.1
diff --git a/net/ndnx/Portfile b/net/ndnx/Portfile
new file mode 100644
index 0000000..ffac408
--- /dev/null
+++ b/net/ndnx/Portfile
@@ -0,0 +1,138 @@
+# -*- 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 ndnx v0.1
+checksums rmd160 c1aa95c70444e3f0f1b1943ee60c138f850dc78c \
+ sha256 9d64a112883ec3389a576f0df4281babac9520181ece5e106478d71d895ab6d8
+
+name ndnx
+homepage http://www.named-data.net
+license GPL-2+ LGPL-2.1+
+version 0.1
+
+categories net
+platforms darwin
+maintainers ucla.edu:alexander.afanasyev
+
+description NDNx library and ndnd forwarding daemon
+
+long_description NDNx library and ndnd forwarding daemon
+
+depends_lib-append port:openssl \
+ port:expat \
+ port:libpcap \
+ port:libxml2 \
+ port:asciidoc
+
+set ndnxuser ndnx
+set ndnxgroup ndnx
+set ndnxdir ${prefix}/etc/ndnx
+
+add_users ${ndnxuser} shell=/bin/sh group=${ndnxgroup} \
+ home=${ndnxdir} \
+ realname=NDNx\ Account
+
+default_variants +java +apps
+
+variant java description {Enable Java API build} {
+ configure.env-delete BUILD_JAVA=false
+}
+
+variant apps requires java description {Enable build of reference applications} {
+ configure.env-delete BUILD_APPS=false
+}
+
+post-patch {
+ reinplace "s|\$HOME/.ndnx/|${ndnxdir}/|g" ${worksrcpath}/csrc/util/ndndstart.sh
+}
+
+configure.env-append OPENSSL_CFLAGS=-I${prefix}/include \
+ OPENSSL_LIBS=-L${prefix}/lib \
+ INSTALL_BASE=${prefix} \
+ INSTALL_MAN=${prefix}/share/man \
+ BUILD_JAVA=false \
+ BUILD_APPS=false \
+
+configure.cflags -DNDNX_DIR=\\\"${ndnxdir}\\\" \
+ -O2 -std=gnu99
+
+build.env-append OPENSSL_CFLAGS=-I${prefix}/include \
+ OPENSSL_LIBS=-L${prefix}/lib \
+ INSTALL_BASE=${prefix} \
+
+
+post-destroot {
+ # Create a configuration directory, which also a home directory for ${ndnxuser}
+ xinstall -d -o ${ndnxuser} -g ${ndnxgroup} "${destroot}${ndnxdir}"
+
+ # Copy a sample ndnd.conf file
+ xinstall -o ${ndnxuser} -g ${ndnxgroup} \
+ ${worksrcpath}/csrc/libexec/ndnd.conf.sample \
+ ${destroot}${ndnxdir}/
+
+ # Create a sample ndndrc file
+ system "echo NDNR_GLOBAL_PREFIX=/ndn/keys > \"${destroot}${ndnxdir}/ndndrc.sample\""
+ system "echo NDND_LOG=${prefix}/var/log/ndnd.log >> \"${destroot}${ndnxdir}/ndndrc.sample\""
+ system "echo NDND_DEBUG=16 >> \"${destroot}${ndnxdir}/ndndrc.sample\""
+}
+
+post-activate {
+ # log file needs to be owned by ${ndnxuser}, otherwise ndnd will not be able to write to it
+ file mkdir "${prefix}/var/log"
+ touch "${prefix}/var/log/ndnd.log"
+ file attributes "${prefix}/var/log/ndnd.log" -owner ${ndnxuser} -group ${ndnxgroup}
+ file mkdir "${prefix}/var/run/ndnd"
+ file attributes "${prefix}/var/run/ndnd" -owner ${ndnxuser} -group ${ndnxgroup}
+
+ # Make sure initial conf files are present and setup correctly
+ foreach f { ndnd.conf ndndrc } {
+ if {![file exists ${ndnxdir}/${f}]} {
+ file copy ${ndnxdir}/${f}.sample \
+ ${ndnxdir}/${f}
+ }
+ }
+}
+
+startupitem.pidfile none
+startupitem.start "su ${ndnxuser} -c \"${prefix}/bin/ndndstart\" && sleep 5 && su ${ndnxuser} -c \"${prefix}/bin/ndnd-autoconfig -d ${prefix}/var/run/ndnd/autoconfig.pid &\""
+startupitem.stop "su ${ndnxuser} -c \"kill `cat ${prefix}/var/run/ndnd/autoconfig.pid`\" ; su ${ndnxuser} -c \"${prefix}/bin/ndndstop\""
+startupitem.restart "su ${ndnxuser} -c \"${prefix}/bin/ndndc -f ${ndnxdir}/ndnd.conf\" && su ${ndnxuser} -c \"${prefix}/bin/ndnd-autoconfig\""
+
+variant no_autoconf description {Disable automatic detection of local ndnx hub} {
+ startupitem.start "su ${ndnxuser} -c \"${prefix}/bin/ndndstart\""
+ startupitem.restart "su ${ndnxuser} -c \"${prefix}/bin/ndndc -f ${ndnxdir}/ndnd.conf\""
+}
+
+startupitem.create yes
+startupitem.name ${name}
+
+startupitem.netchange yes
+startupitem.logevents yes
+startupitem.logfile ${prefix}/var/log/ndnx.log
+
+notes "
+
+You can add the following line into \"${ndnxdir}/ndndrc\" in order to automatically
+start ndnx repo for the /ndn/keys prefix:
+
+ NDNR_GLOBAL_PREFIX=/ndn/keys
+
+For more information and documentation, refer to man pages and http://www.ndnx.org website.
+
+If you have your public key signed by NDN testbed operators and you installed the certificate
+\(using ndn-install-pubcert command\), you can enable automatic configuration of the default
+route using your key. To do so, you need to run the following commands once:
+
+ # extract public key from ndnx user
+ sudo HOME=${ndnxdir} ndn-extract-public-key > /tmp/ndnx.pem
+
+ # sign public key of the ndnx user
+ ndn-sign-key -i \"ndnx-autoconfig\" /tmp/ndnx.pem
+
+ # install certification of the public key
+ sudo HOME=${ndnxdir} ndn-install-pubcert /tmp/ndnx.pubcert
+
+"