From fd73238e7cc9681d740ea6f0dee483642adc24e3 Mon Sep 17 00:00:00 2001 From: Eric Evans Date: Tue, 14 Dec 2010 02:53:30 +0000 Subject: [PATCH] enable use of jna in redhat rpms Patch by Nick Bailey; reviewed by eevans for CASSANDRA-1689 git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.7@1048914 13f79535-47bb-0310-9956-ffa450edef68 --- redhat/apache-cassandra.spec | 8 +++++++- {contrib/redhat => redhat}/cassandra | 3 +++ redhat/cassandra.conf | 1 + redhat/cassandra.in.sh | 13 +++++++++++++ redhat/default | 7 +++++++ 5 files changed, 31 insertions(+), 1 deletion(-) rename {contrib/redhat => redhat}/cassandra (90%) create mode 100644 redhat/cassandra.conf create mode 100644 redhat/cassandra.in.sh create mode 100644 redhat/default diff --git a/redhat/apache-cassandra.spec b/redhat/apache-cassandra.spec index 4a9813e7d3..ca7449c5a7 100644 --- a/redhat/apache-cassandra.spec +++ b/redhat/apache-cassandra.spec @@ -51,11 +51,15 @@ mkdir -p %{buildroot}/usr/share/%{username}/lib mkdir -p %{buildroot}/usr/share/%{username}/default.conf mkdir -p %{buildroot}/etc/%{username}/default.conf mkdir -p %{buildroot}/etc/rc.d/init.d/ +mkdir -p %{buildroot}/etc/security/limits.d/ +mkdir -p %{buildroot}/etc/default/ mkdir -p %{buildroot}/usr/sbin mkdir -p %{buildroot}/usr/bin cp -p conf/* %{buildroot}/etc/%{username}/default.conf cp -p conf/* %{buildroot}/usr/share/%{username}/default.conf -cp -p contrib/redhat/%{username} %{buildroot}/etc/rc.d/init.d/ +cp -p redhat/%{username} %{buildroot}/etc/rc.d/init.d/ +cp -p redhat/%{username}.conf %{buildroot}/etc/security/limits.d/ +cp -p redhat/default %{buildroot}/etc/default/%{username} cp -p lib/*.jar %{buildroot}/usr/share/%{username}/lib mv bin/cassandra.in.sh %{buildroot}/usr/share/%{username} mv bin/cassandra %{buildroot}/usr/sbin @@ -89,6 +93,8 @@ fi %attr(755,root,root) %{_bindir}/* %attr(755,root,root) %{_sbindir}/cassandra %attr(755,root,root) /etc/rc.d/init.d/%{username} +%attr(755,root,root) /etc/default/%{username} +%attr(755,root,root) /etc/security/limits.d/%{username}.conf %attr(755,%{username},%{username}) /usr/share/%{username}* %attr(755,%{username},%{username}) %config(noreplace) /%{_sysconfdir}/%{username} %attr(755,%{username},%{username}) %config(noreplace) /var/lib/%{username}/* diff --git a/contrib/redhat/cassandra b/redhat/cassandra similarity index 90% rename from contrib/redhat/cassandra rename to redhat/cassandra index 80b7c48a5d..83d5e0deea 100644 --- a/contrib/redhat/cassandra +++ b/redhat/cassandra @@ -14,10 +14,13 @@ export CASSANDRA_HOME=/usr/share/cassandra/ export CASSANDRA_INCLUDE=/usr/share/cassandra/cassandra.in.sh export CASSANDRA_CONF=/etc/cassandra/conf export CASSANDRA_OWNR=cassandra +NAME="cassandra" log_file=/var/log/cassandra/cassandra.log pid_file=/var/run/cassandra/cassandra.pid CASSANDRA_PROG=/usr/sbin/cassandra +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME case "$1" in start) diff --git a/redhat/cassandra.conf b/redhat/cassandra.conf new file mode 100644 index 0000000000..d8e680a703 --- /dev/null +++ b/redhat/cassandra.conf @@ -0,0 +1 @@ +cassandra - memlock unlimited diff --git a/redhat/cassandra.in.sh b/redhat/cassandra.in.sh new file mode 100644 index 0000000000..49b90e74d0 --- /dev/null +++ b/redhat/cassandra.in.sh @@ -0,0 +1,13 @@ + +# The directory where Cassandra's configs live (required) +CASSANDRA_CONF=/etc/cassandra/conf + +# use JNA if installed in standard location +[ -r /usr/share/java/jna.jar ] && CLASSPATH="$CLASSPATH:/usr/share/java/jna.jar" + +# The java classpath (required) +CLASSPATH=$CLASSPATH:$CASSANDRA_CONF + +for jar in /usr/share/cassandra/lib/*.jar; do + CLASSPATH=$CLASSPATH:$jar +done diff --git a/redhat/default b/redhat/default new file mode 100644 index 0000000000..1b56a980fd --- /dev/null +++ b/redhat/default @@ -0,0 +1,7 @@ +# NOTICE: See also /etc/cassandra/cassandra-env.sh + +# EXTRA_CLASSPATH provides the means to extend Cassandra's classpath with +# additional libraries. It is formatted as a colon-delimited list of +# class directories and/or jar files. For example, to enable the +# JMX-to-web bridge install libmx4j-java and uncomment the following. +#EXTRA_CLASSPATH="/usr/share/java/mx4j-tools.jar"