blob: b8e2041b6b91ff271c2d4449ca4c8b990748b09d [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
name ccnx
homepage http://www.ccnx.org/
license GPL-2+ LGPL-2.1+
version 0.6.1
revision 0
epoch 0
categories net ccnx
platforms darwin
maintainers ucla.edu:alexander.afanasyev
description ProjectCCNx implementation of Content Centric Networking (CCN) / \
Named Data Networking (NDN) architecture
long_description Project CCNx(r) exists to develop, promote, and evaluate a new \
approach to communication architecture we call content-centric \
networking. We seek to carry out this mission by creating and \
publishing open protocol specifications and an open source \
software reference implementation of those protocols. We provide \
support for a community of people interested in experimentation, \
research, and building applications with this technology, all \
contributing to its evolution.
master_sites http://www.ccnx.org/releases/
checksums rmd160 073478f3d5818b0e4fe09e21a727e5f3207e4277 \
sha256 bfaae10c2c1a327d77f752737b60243e23fd8f3a7c7025ae92221ba0a700b889
use_parallel_build yes
depends_lib port:openssl \
port:expat \
port:libpcap \
port:libxml2
set ccnxuser ccnx
set ccnxgroup ccnx
set ccnxdir ${prefix}/etc/ccnx
add_users ${ccnxuser} shell=/bin/sh group=${ccnxgroup} \
home=${ccnxdir} \
realname=CCNx\ 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
}
patchfiles patch-macports-customizations.diff
post-patch {
reinplace "s|\$HOME/.ccnx/|${prefix}/etc/ccnx/|g" ${worksrcpath}/csrc/util/ccndstart.sh
}
configure.env-append OPENSSL_CFLAGS=-I${prefix}/include \
OPENSSL_LIBS=-L${prefix}/lib \
INSTALL_BASE=${prefix} \
BUILD_JAVA=false \
BUILD_APPS=false \
configure.cflags-append -DCCNX_DIR=\\\"${prefix}/etc/ccnx\\\"
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 ${ccnxuser}
xinstall -d -o ${ccnxuser} -g ${ccnxgroup} "${destroot}${prefix}/etc/ccnx"
# Copy a sample ccnd.conf file
xinstall -o ${ccnxuser} -g ${ccnxgroup} ${worksrcpath}/csrc/libexec/ccnd.conf.sample ${destroot}${prefix}/etc/ccnx/
# Create a sample ccndrc file
system "echo CCND_LOG=${prefix}/var/log/ccnd.log > \"${destroot}${prefix}/etc/ccnx/ccndrc.sample\""
system "echo CCND_DEBUG=16 >> \"${destroot}${prefix}/etc/ccnx/ccndrc.sample\""
}
post-activate {
# log file needs to be owned by ${ccnxuser}, otherwise ccnd will not be able to write to it
touch "${prefix}/var/log/ccnd.log"
file attributes "${prefix}/var/log/ccnd.log" -owner ${ccnxuser} -group ${ccnxgroup}
}
startupitem.pidfile none
startupitem.start "su ${ccnxuser} -c \"${prefix}/bin/ccndstart\""
startupitem.stop "su ${ccnxuser} -c \"${prefix}/bin/ccndstop\""
startupitem.restart "su ${ccnxuser} -c \"${prefix}/bin/ccndc -f ${prefix}/etc/ccnx/ccnd.conf\""
startupitem.create yes
startupitem.name ${name}
startupitem.netchange yes
startupitem.logevents yes
startupitem.logfile ${prefix}/var/log/ccnx.log
notes "
In order repo to work, you need to add the following lines at the end of your
\[~/.bash_profile\]:
export CCNR_DIRECTORY=${prefix}/etc/ccnx/repo
To configure environment variables for ccnd, edit your
\[${prefix}/etc/ccnx/ccndrc\]. For example,
CCND_LOG=${prefix}/var/log/ccnd.log
CCND_DEBUG=16
To add static FIB entries, edit your \[${prefix}/etc/ccnx/ccnd.conf\].
For example,
add ccnx:/ccnx.org udp 224.0.23.170 59695
Upon any networking change event (new connection or awaking from the sleep
phase), all static FIB entries will be reapplied automatically.
For more information and documentation, refer to man pages and
http://www.ccnx.org website.
"