[103776] trunk/dports/databases/cassandra/Portfile

ryandesign at macports.org ryandesign at macports.org
Wed Mar 6 20:34:17 PST 2013


Revision: 103776
          https://trac.macports.org/changeset/103776
Author:   ryandesign at macports.org
Date:     2013-03-06 20:34:17 -0800 (Wed, 06 Mar 2013)
Log Message:
-----------
cassandra: update to 1.2.2 and add startupitem (#38314)

Modified Paths:
--------------
    trunk/dports/databases/cassandra/Portfile

Modified: trunk/dports/databases/cassandra/Portfile
===================================================================
--- trunk/dports/databases/cassandra/Portfile	2013-03-07 04:03:35 UTC (rev 103775)
+++ trunk/dports/databases/cassandra/Portfile	2013-03-07 04:34:17 UTC (rev 103776)
@@ -4,7 +4,7 @@
 PortSystem              1.0
 
 name                    cassandra
-version                 0.8.2
+version                 1.2.2
 categories              databases
 maintainers             nomaintainer
 homepage                http://cassandra.apache.org/
@@ -16,6 +16,7 @@
 
 description             A highly scalable, eventually consistent, \
                         distributed, structured key-value store.
+
 long_description        \
     The Apache Cassandra Project develops a highly scalable second-generation \
     distributed database, bringing together Dynamo's fully distributed design \
@@ -23,20 +24,39 @@
     by Facebook in 2008, and is now developed by Apache committers and \
     contributors from many companies.
 
-checksums               md5     f9f06527fd2a043ea04e2852144f7d21 \
-                        sha1    48ebc3644972260eae9de85fb704de7088549f62 \
-                        rmd160  4a68ef1e6370f01861e90132870d2d9aefb601bb
+checksums               md5     df9b5a88f33d3961ee33f24ee9bd52ff \
+                        sha1    dae64c407d9040688614234b8469e4eba982bc37 \
+                        rmd160  832630aa3841694bffa0d35e141834f931da3178
 
-depends_build           bin:ant:apache-ant port:apache-ivy
-depends_run             port:antlr3 port:junit port:jline port:slf4j \
-                        port:commons-cli port:commons-lang port:commons-collections \
-                        port:commons-codec port:jakarta-log4j \
-                        port:google-collections  port:google-guava \
-                        port:servlet25-api
+depends_build           bin:ant:apache-ant \
+                        port:apache-ivy
+
+depends_run             port:antlr3 \
+                        port:junit \
+                        port:jline \
+                        port:slf4j \
+                        port:commons-cli \
+                        port:commons-lang \
+                        port:commons-codec \
+                        port:jakarta-log4j \
+                        port:google-guava
+
+set java_basepath       ${prefix}/share/java
+set cassandra_destpath  ${java_basepath}/${name}-${version}
+
 set mp_libs {antlr junit jline slf4j-api slf4j-log4j12 commons-cli \
-    commons-lang commons-collections commons-codec jakarta-log4j \
-    google-collect google-guava servlet25-api }
+    commons-lang commons-codec jakarta-log4j \
+    google-guava }
 
+set dbdir           ${prefix}/var/db/cassandra
+set logdir          ${prefix}/var/log/cassandra
+if {"darwin" == ${os.platform} && ${os.major} > 8} {
+    set cassandrauser       _cassandra
+} else {
+    set cassandrauser       cassandra
+}
+add_users ${cassandrauser} group=${cassandrauser} realname=Cassandra\ Server
+
 use_configure           no
 
 build.cmd               ant
@@ -44,8 +64,8 @@
 
 destroot {
     # create directories
-    set cas_home ${destroot}${prefix}/share/java/${name}
-    set doc_dir ${destroot}${prefix}/share/doc/${name}
+    set cas_home ${destroot}${cassandra_destpath}
+    set doc_dir ${destroot}${prefix}/share/doc/${name}-${version}
     xinstall -m 755 -d ${cas_home}/lib ${doc_dir}
     
     # move in docs
@@ -53,11 +73,11 @@
     
     # fix cassandra include file
     move ${worksrcpath}/bin/cassandra.in.sh ${cas_home}/
-    reinplace "s|CASSANDRA_HOME=.*|CASSANDRA_HOME=${prefix}/share/java/${name}|" ${cas_home}/cassandra.in.sh
+    reinplace "s|CASSANDRA_HOME=.*|CASSANDRA_HOME=${cassandra_destpath}|" ${cas_home}/cassandra.in.sh
     
     # install bin scripts
     eval delete [glob ${worksrcpath}/bin/*.bat]
-    eval reinplace "s|/opt/cassandra/cassandra.in.sh|${prefix}/share/java/${name}/cassandra.in.sh|" [glob ${worksrcpath}/bin/*]
+    eval reinplace "s|/opt/cassandra/cassandra.in.sh|${cassandra_destpath}/cassandra.in.sh|" [glob ${worksrcpath}/bin/*]
     eval xinstall -m 755 [glob ${worksrcpath}/bin/*] ${destroot}${prefix}/bin
 
     # install jars
@@ -65,92 +85,25 @@
         ${cas_home}/lib/${name}.jar
     xinstall -m 644 ${worksrcpath}/build/apache-${name}-thrift-${version}-SNAPSHOT.jar \
         ${cas_home}/lib/${name}-thrift.jar
-    if {[variant_isset no_deps]} {
-        eval xinstall -m 644 [glob ${worksrcpath}/lib/*.jar] ${cas_home}/lib/
-    } else {
-        foreach lib $mp_libs {
-            ln -s ${prefix}/share/java/$lib.jar ${cas_home}/lib/$lib.jar
-            file delete ${worksrcpath}/lib/$lib.jar
-        }
-        eval xinstall -m 644 [glob ${worksrcpath}/lib/*.jar] ${cas_home}/lib/
-    }
+    eval xinstall -m 644 [glob ${worksrcpath}/lib/*.jar] ${cas_home}/lib/
     
-    # install conf, contrib, interface
-    move ${worksrcpath}/conf ${worksrcpath}/contrib ${worksrcpath}/interface ${cas_home}
+    # install conf, interface
+    move ${worksrcpath}/conf ${worksrcpath}/interface ${cas_home}
     
     # update file storage location to be within Macports hierarchy
-    eval reinplace "s|/var|${prefix}/var|" [glob ${cas_home}/conf/*]
-    
-    # create these files
-    xinstall -m 755 -d ${destroot}${prefix}/var/log/cassandra/ ${destroot}${prefix}/var/lib/cassandra/data/
-    touch ${destroot}${prefix}/var/log/cassandra/system.log
-}
-destroot.keepdirs   ${destroot}${prefix}/var/log/cassandra/ \
-                    ${destroot}${prefix}/var/lib/cassandra/
+    eval reinplace "s|/var|${prefix}/var|g" [glob ${cas_home}/conf/*]
 
-
-pre-build {
-    # help Ant find Ivy
-    xinstall -d ${worksrcpath}/build
-    ln -s ${prefix}/share/java/ivy.jar ${worksrcpath}/build/ivy.jar
-    reinplace "s|ivy-\${ivy\.version}\.jar|ivy.jar|" ${worksrcpath}/build.xml
-    
-    if {[variant_isset no_deps]} {} else {
-        file delete ${worksrcpath}/lib/antlr-3.2.jar
-        ln -s ${prefix}/share/java/antlr.jar ${worksrcpath}/lib/antlr.jar
-        reinplace "s|antlr-3.2.jar|antlr.jar|" ${worksrcpath}/build.xml
-        
-        file delete ${worksrcpath}/lib/junit-4.6.jar
-        ln -s ${prefix}/share/java/junit.jar ${worksrcpath}/lib/junit.jar
-        reinplace "s|junit-4.6.jar|junit.jar|" ${worksrcpath}/build.xml
-        
-        file delete ${worksrcpath}/lib/commons-cli-1.1.jar
-        ln -s ${prefix}/share/java/commons-cli.jar ${worksrcpath}/lib/commons-cli.jar
-        reinplace "s|commons-cli-1.1.jar|commons-cli.jar|" ${worksrcpath}/build.xml
-        
-        file delete ${worksrcpath}/lib/commons-lang-2.4.jar
-        ln -s ${prefix}/share/java/commons-lang.jar ${worksrcpath}/lib/commons-lang.jar
-        reinplace "s|commons-lang-2.4.jar|commons-lang.jar|" ${worksrcpath}/build.xml
-        
-        file delete ${worksrcpath}/lib/commons-collections-3.2.1.jar
-        ln -s ${prefix}/share/java/commons-collections.jar ${worksrcpath}/lib/commons-collections.jar
-        reinplace "s|commons-collections-3.2.1.jar|commons-collections.jar|" ${worksrcpath}/build.xml
-
-        file delete ${worksrcpath}/lib/commons-codec-1.2.jar
-        ln -s ${prefix}/share/java/commons-codec.jar ${worksrcpath}/lib/commons-codec.jar
-        reinplace "s|commons-codec-1.2.jar|commons-codec.jar|" ${worksrcpath}/build.xml
-        
-        file delete ${worksrcpath}/lib/log4j-1.2.16.jar
-        ln -s ${prefix}/share/java/jakarta-log4j.jar ${worksrcpath}/lib/jakarta-log4j.jar
-        reinplace "s|log4j-1.2.16.jar|jakarta-log4j.jar|" ${worksrcpath}/build.xml
-        
-        file delete ${worksrcpath}/lib/google-collect-1.0-rc1.jar
-        ln -s ${prefix}/share/java/google-collect.jar ${worksrcpath}/lib/google-collect.jar
-        reinplace "s|google-collect-1.0-rc1.jar|google-collect.jar|" ${worksrcpath}/build.xml
-
-        file delete ${worksrcpath}/lib/guava-r08.jar
-        ln -s ${prefix}/share/java/google-guava.jar ${worksrcpath}/lib/google-guava.jar
-        reinplace "s|guava-r08.jar|google-guava.jar|" ${worksrcpath}/build.xml
-        
-        file delete ${worksrcpath}/lib/jline-0.9.94.jar
-        ln -s ${prefix}/share/java/jline.jar ${worksrcpath}/lib/jline.jar
-        reinplace "s|jline-0.9.94.jar|jline.jar|" ${worksrcpath}/build.xml
-        
-        file delete ${worksrcpath}/lib/slf4j-api-1.6.1.jar
-        ln -s ${prefix}/share/java/slf4j-api.jar ${worksrcpath}/lib/slf4j-api.jar
-        reinplace "s|slf4j-api-1.6.1.jar|slf4j-api.jar|" ${worksrcpath}/build.xml
-        
-        file delete ${worksrcpath}/lib/slf4j-log4j12-1.6.1.jar
-        ln -s ${prefix}/share/java/slf4j-log4j12.jar ${worksrcpath}/lib/slf4j-log4j12.jar
-        reinplace "s|slf4j-log4j12-1.6.1.jar|slf4j-log4j12.jar|" ${worksrcpath}/build.xml
-
-        file delete ${worksrcpath}/lib/servlet-api-2.5-20081211.jar
-        ln -s ${prefix}/share/java/servlet25-api.jar ${worksrcpath}/lib/servlet25-api.jar
-        reinplace "s|servlet-api-2.5-20081211.jar|servlet25-api.jar|" ${worksrcpath}/build.xml
-    }
+    reinplace "s|/var/lib/cassandra|/var/db/cassandra|g" ${cas_home}/conf/cassandra.yaml
 }
 
-variant no_deps description {Use jar files that came with Cassandra distribution for dependencies, instead of using Macports to install dependencies} {
-    # clear all runtime deps
-    depends_run
+post-destroot {
+    xinstall -m 755 -o ${cassandrauser} -g ${cassandrauser} -d \
+        ${destroot}${logdir} \
+        ${destroot}${dbdir}
+    destroot.keepdirs-append \
+        ${destroot}${dbdir} \
+        ${destroot}${logdir}
 }
+
+startupitem.create      yes
+startupitem.executable  sudo -u ${cassandrauser} ${prefix}/bin/cassandra
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130306/1e8e6f02/attachment-0001.html>


More information about the macports-changes mailing list