ccnx+ccnping: Update Portfile to meet macports recommendations and requirements
diff --git a/net/ccnx/Portfile b/net/ccnx/Portfile
index 049903a..b8e2041 100644
--- a/net/ccnx/Portfile
+++ b/net/ccnx/Portfile
@@ -1,90 +1,95 @@
# -*- 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
-version 0.6.1
-revision 2
-epoch 1
-categories net
-platforms darwin
-license GPL LGPL
-maintainers ucla.edu:alexander.afanasyev
-description ProjectCCNx implementation of Content Centric Networking (CCN) / \
- Named Data Networking (NDN) architecture
-long_description Project CCNx® 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.
-homepage http://www.ccnx.org/
+PortSystem 1.0
+
+name ccnx
+homepage http://www.ccnx.org/
+license GPL-2+ LGPL-2.1+
+version 0.6.1
+revision 0
+epoch 0
-# fetch.type git
-# git.url https://github.com/ProjectCCNx/ccnx.git
-# git.branch ccnx-0.6.1
-
-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
+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
+ configure.env-delete BUILD_JAVA=false
}
variant apps requires java description {Enable build of reference applications} {
- configure.env-delete BUILD_APPS=false
+ configure.env-delete BUILD_APPS=false
}
-configure.env-append OPENSSL_CFLAGS=-I${prefix}/include
-configure.env-append OPENSSL_LIBS=-L${prefix}/lib
-configure.env-append INSTALL_BASE=${prefix}
-configure.env-append BUILD_JAVA=false
-configure.env-append BUILD_APPS=false
-configure.cflags -DCCNX_DIR=\\\"${prefix}/etc/ccnx\\\"
+patchfiles patch-macports-customizations.diff
-pre-build {
- reinplace "s|\$HOME/.ccnx/|${prefix}/etc/ccnx/|g" ${worksrcpath}/csrc/util/ccndstart.sh
+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 {
- system "mkdir -p ${destroot}${prefix}/var/log"
- system "touch ${destroot}${prefix}/var/log/ccnd.log"
- system "chown ${ccnxuser}:${ccnxgroup} ${destroot}${prefix}/var/log/ccnd.log"
+ # Create a configuration directory, which also a home directory for ${ccnxuser}
+ xinstall -d -o ${ccnxuser} -g ${ccnxgroup} "${destroot}${prefix}/etc/ccnx"
- file mkdir ${destroot}${prefix}/etc/ccnx
- file copy ${worksrcpath}/csrc/libexec/ccnd.conf.sample ${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/
- 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"
-
- system "chown ${ccnxuser}:${ccnxgroup} ${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\""
}
-build.env-append OPENSSL_CFLAGS=-I${prefix}/include
-build.env-append OPENSSL_LIBS=-L${prefix}/lib
-build.env-append INSTALL_BASE=${prefix}
-
-patchfiles patch-macports-customizations.diff
+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\""
@@ -92,7 +97,7 @@
startupitem.restart "su ${ccnxuser} -c \"${prefix}/bin/ccndc -f ${prefix}/etc/ccnx/ccnd.conf\""
startupitem.create yes
-startupitem.name ccnx
+startupitem.name ${name}
startupitem.netchange yes
startupitem.logevents yes