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
+
+"