aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS.txt1
-rw-r--r--bigtop-packages/src/common/hama/conf.pseudo/hama-site.xml58
-rw-r--r--bigtop-packages/src/common/hama/do-component-build21
-rw-r--r--bigtop-packages/src/common/hama/hama-bspmaster.init158
-rw-r--r--bigtop-packages/src/common/hama/hama-groom.init159
-rw-r--r--bigtop-packages/src/common/hama/hama.default17
-rw-r--r--bigtop-packages/src/common/hama/install_hama.sh171
-rw-r--r--bigtop-packages/src/deb/hama/changelog1
-rw-r--r--bigtop-packages/src/deb/hama/compat1
-rw-r--r--bigtop-packages/src/deb/hama/control67
-rw-r--r--bigtop-packages/src/deb/hama/copyright16
-rw-r--r--bigtop-packages/src/deb/hama/hama-bspmaster.postinst25
-rw-r--r--bigtop-packages/src/deb/hama/hama-conf-pseudo.dirs1
-rw-r--r--bigtop-packages/src/deb/hama/hama-conf-pseudo.install1
-rw-r--r--bigtop-packages/src/deb/hama/hama-conf-pseudo.postinst61
-rw-r--r--bigtop-packages/src/deb/hama/hama-conf-pseudo.prerm57
-rw-r--r--bigtop-packages/src/deb/hama/hama-doc.dirs1
-rw-r--r--bigtop-packages/src/deb/hama/hama-doc.install1
-rw-r--r--bigtop-packages/src/deb/hama/hama-groom.postinst25
-rw-r--r--bigtop-packages/src/deb/hama/hama.dirs4
-rw-r--r--bigtop-packages/src/deb/hama/hama.install4
-rw-r--r--bigtop-packages/src/deb/hama/hama.postinst36
-rw-r--r--bigtop-packages/src/deb/hama/hama.preinst62
-rw-r--r--bigtop-packages/src/deb/hama/hama.prerm57
-rw-r--r--bigtop-packages/src/deb/hama/rules103
-rw-r--r--bigtop-packages/src/rpm/hama/BUILD/.gitignore0
-rw-r--r--bigtop-packages/src/rpm/hama/RPMS/.gitignore0
-rw-r--r--bigtop-packages/src/rpm/hama/SOURCES/.gitignore0
-rw-r--r--bigtop-packages/src/rpm/hama/SPECS/hama.spec276
-rw-r--r--bigtop-packages/src/rpm/hama/SRPMS/.gitignore0
-rw-r--r--bigtop.mk14
31 files changed, 1398 insertions, 0 deletions
diff --git a/MAINTAINERS.txt b/MAINTAINERS.txt
index fb22c4bc..4b0cbf35 100644
--- a/MAINTAINERS.txt
+++ b/MAINTAINERS.txt
@@ -3,6 +3,7 @@ flume: bmahe
gradle / build system: cos, rvs
ignite-hadoop: cos, Sergey Vladykin <sergi.vladykin@gmail.com>
hadoop: mark grover, cos, rvs
+hama: minho kim <minho@apache.org>, edward j. yoon
hbase: andrew purtell, rvs
hive: mark grover, youngwoo kim
hue: oflebbe
diff --git a/bigtop-packages/src/common/hama/conf.pseudo/hama-site.xml b/bigtop-packages/src/common/hama/conf.pseudo/hama-site.xml
new file mode 100644
index 00000000..759cf9e5
--- /dev/null
+++ b/bigtop-packages/src/common/hama/conf.pseudo/hama-site.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Copyright 2007 The Apache Software Foundation
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<configuration>
+ <property>
+ <name>bsp.master.address</name>
+ <value>localhost:40000</value>
+ <description>The address of the bsp master server. Either the
+ literal string "local" or a host:port for distributed mode
+ </description>
+ </property>
+
+ <property>
+ <name>fs.default.name</name>
+ <value>local</value>
+ <description>
+ The name of the default file system. Either the literal string
+ "local" or a host:port for HDFS.
+ </description>
+ </property>
+
+ <property>
+ <name>hama.zookeeper.quorum</name>
+ <value>localhost</value>
+ <description>Comma separated list of servers in the ZooKeeper Quorum.
+ For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
+ By default this is set to localhost for local and pseudo-distributed modes
+ of operation. For a fully-distributed setup, this should be set to a full
+ list of ZooKeeper quorum servers. If HAMA_MANAGES_ZK is set in hama-env.sh
+ this is the list of servers which we will start/stop zookeeper on.
+ </description>
+ </property>
+
+ <property>
+ <name>hama.zookeeper.property.clientPort</name>
+ <value>2181</value>
+ </property>
+</configuration>
diff --git a/bigtop-packages/src/common/hama/do-component-build b/bigtop-packages/src/common/hama/do-component-build
new file mode 100644
index 00000000..2e1ddc8e
--- /dev/null
+++ b/bigtop-packages/src/common/hama/do-component-build
@@ -0,0 +1,21 @@
+#!/bin/sh
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -ex
+
+. `dirname $0`/bigtop.bom
+
+mvn -Phadoop2 -Dhadoop.version=$HADOOP_VERSION -Dzookeeper.version=$ZOOKEEPER_VERSION clean install -DskipTests "$@"
diff --git a/bigtop-packages/src/common/hama/hama-bspmaster.init b/bigtop-packages/src/common/hama/hama-bspmaster.init
new file mode 100644
index 00000000..b16051d2
--- /dev/null
+++ b/bigtop-packages/src/common/hama/hama-bspmaster.init
@@ -0,0 +1,158 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Starts an Apache Hama BSP Master
+#
+# chkconfig: 2345 90 10
+# description: Apache Hama BSP Master
+#
+### BEGIN INIT INFO
+# Provides: hama-bspmaster
+# Required-Start: $remote_fs
+# Should-Start:
+# Required-Stop: $remote_fs
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Apache Hama BSP Master
+### END INIT INFO
+
+. /lib/lsb/init-functions
+
+if [ -f /etc/default/hama ] ; then
+ . /etc/default/hama
+fi
+
+# Autodetect JAVA_HOME if not defined
+if [ -e /usr/libexec/bigtop-detect-javahome ]; then
+ . /usr/libexec/bigtop-detect-javahome
+elif [ -e /usr/lib/bigtop-utils/bigtop-detect-javahome ]; then
+ . /usr/lib/bigtop-utils/bigtop-detect-javahome
+fi
+
+STATUS_RUNNING=0
+STATUS_DEAD=1
+STATUS_DEAD_AND_LOCK=2
+STATUS_NOT_RUNNING=3
+
+ERROR_PROGRAM_NOT_INSTALLED=5
+
+HAMA_RUN_DIR=/var/run/hama
+HAMA_LOCK_DIR="/var/lock/subsys/"
+LOCKFILE="${HAMA_LOCK_DIR}/hama-bspmaster"
+desc="Apache Hama BSP Master"
+
+HAMA_USER=hama
+EXEC_PATH=/usr/bin/hama
+HAMA_PID_FILE="${HAMA_RUN_DIR}/hama-bspmaster.pid"
+HAMA_LOG_FILE="${HAMA_LOG_DIR}/hama-bspmaster.log"
+
+# These directories may be tmpfs and may or may not exist
+# depending on the OS (ex: /var/lock/subsys does not exist on debian/ubuntu)
+for dir in "$HAMA_RUN_DIR" "$HAMA_LOCK_DIR"; do
+ [ -d "${dir}" ] || install -d -m 0755 -o $HAMA_USER -g $HAMA_USER ${dir}
+done
+
+start() {
+ [ -x $exec ] || exit $ERROR_PROGRAM_NOT_INSTALLED
+
+ checkstatus &> /dev/null
+ status=$?
+ if [ "$status" -eq "$STATUS_RUNNING" ]; then
+ exit 0
+ fi
+
+ log_success_msg "Starting $desc: "
+ /bin/su -s /bin/bash -c "/bin/bash -c 'echo \$\$ > ${HAMA_PID_FILE} && exec ${EXEC_PATH} bspmaster >>${HAMA_LOG_FILE} 2>&1' &" $USER
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch $LOCKFILE
+ return $RETVAL
+}
+
+stop() {
+ if [ ! -e $HAMA_PID_FILE ]; then
+ log_failure_msg "Apache Hama BSP Master is not running"
+ exit 0
+ fi
+
+ log_success_msg "Stopping $desc: "
+
+ HAMA_PID=`cat $HAMA_PID_FILE`
+ if [ -n $HAMA_PID ]; then
+ kill -TERM ${HAMA_PID} &>/dev/null
+ sleep 5
+ kill -KILL ${HAMA_PID} &>/dev/null
+ fi
+ rm -f $LOCKFILE $HAMA_PID_FILE
+ return 0
+}
+
+restart() {
+ stop
+ start
+}
+
+checkstatus(){
+ pidofproc -p $HAMA_PID_FILE java > /dev/null
+ status=$?
+
+ case "$status" in
+ $STATUS_RUNNING)
+ log_success_msg "$desc is running"
+ ;;
+ $STATUS_DEAD)
+ log_failure_msg "$desc is dead and pid file exists"
+ ;;
+ $STATUS_DEAD_AND_LOCK)
+ log_failure_msg "$desc is dead and lock file exists"
+ ;;
+ $STATUS_NOT_RUNNING)
+ log_failure_msg "$desc is not running"
+ ;;
+ *)
+ log_failure_msg "$desc status is unknown"
+ ;;
+ esac
+ return $status
+}
+
+condrestart(){
+ [ -e ${LOCKFILE} ] && restart || :
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ checkstatus
+ ;;
+ restart)
+ restart
+ ;;
+ condrestart|try-restart)
+ condrestart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|try-restart|condrestart}"
+ exit 1
+esac
+
+exit $RETVAL
diff --git a/bigtop-packages/src/common/hama/hama-groom.init b/bigtop-packages/src/common/hama/hama-groom.init
new file mode 100644
index 00000000..4fac6e9c
--- /dev/null
+++ b/bigtop-packages/src/common/hama/hama-groom.init
@@ -0,0 +1,159 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Starts an Apache Hama Groom node
+#
+# chkconfig: 2345 90 10
+# description: Apache Hama Groom node
+#
+### BEGIN INIT INFO
+# Provides: hama-groom
+# Required-Start: $remote_fs
+# Should-Start:
+# Required-Stop: $remote_fs
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Apache Hama Groom node
+### END INIT INFO
+
+. /lib/lsb/init-functions
+
+if [ -f /etc/default/hama ] ; then
+ . /etc/default/hama
+fi
+
+# Autodetect JAVA_HOME if not defined
+if [ -e /usr/libexec/bigtop-detect-javahome ]; then
+ . /usr/libexec/bigtop-detect-javahome
+elif [ -e /usr/lib/bigtop-utils/bigtop-detect-javahome ]; then
+ . /usr/lib/bigtop-utils/bigtop-detect-javahome
+fi
+
+STATUS_RUNNING=0
+STATUS_DEAD=1
+STATUS_DEAD_AND_LOCK=2
+STATUS_NOT_RUNNING=3
+
+ERROR_PROGRAM_NOT_INSTALLED=5
+
+HAMA_RUN_DIR=/var/run/hama
+HAMA_LOCK_DIR="/var/lock/subsys/"
+LOCKFILE="${HAMA_LOCK_DIR}/hama-groom"
+desc="Apache Hama Groom node"
+
+HAMA_USER=hama
+EXEC_PATH=/usr/bin/hama
+HAMA_PID_FILE="${HAMA_RUN_DIR}/hama-groom.pid"
+HAMA_LOG_FILE="${HAMA_LOG_DIR}/hama-groom.log"
+
+# These directories may be tmpfs and may or may not exist
+# depending on the OS (ex: /var/lock/subsys does not exist on debian/ubuntu)
+for dir in "$HAMA_RUN_DIR" "$HAMA_LOCK_DIR"; do
+ [ -d "${dir}" ] || install -d -m 0755 -o $HAMA_USER -g $HAMA_USER ${dir}
+done
+
+
+start() {
+ [ -x $exec ] || exit $ERROR_PROGRAM_NOT_INSTALLED
+
+ checkstatus
+ status=$?
+ if [ "$status" -eq "$STATUS_RUNNING" ]; then
+ exit 0
+ fi
+
+ log_success_msg "Starting $desc: "
+ /bin/su -s /bin/bash -c "/bin/bash -c 'echo \$\$ > ${HAMA_PID_FILE} && exec ${EXEC_PATH} groom >>${HAMA_LOG_FILE} 2>&1' &" $HAMA_USER
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch $LOCKFILE
+ return $RETVAL
+}
+
+stop() {
+ if [ ! -e $HAMA_PID_FILE ]; then
+ log_failure_msg "Apache Hama Groom node is not running"
+ exit 0
+ fi
+
+ log_success_msg "Stopping $desc: "
+
+ HAMA_PID=`cat $HAMA_PID_FILE`
+ if [ -n $HAMA_PID ]; then
+ kill -TERM ${HAMA_PID} &>/dev/null
+ sleep 5
+ kill -KILL ${HAMA_PID} &>/dev/null
+ fi
+ rm -f $LOCKFILE $HAMA_PID_FILE
+ return 0
+}
+
+restart() {
+ stop
+ start
+}
+
+checkstatus(){
+ pidofproc -p $HAMA_PID_FILE java > /dev/null
+ status=$?
+
+ case "$status" in
+ $STATUS_RUNNING)
+ log_success_msg "$desc is running"
+ ;;
+ $STATUS_DEAD)
+ log_failure_msg "$desc is dead and pid file exists"
+ ;;
+ $STATUS_DEAD_AND_LOCK)
+ log_failure_msg "$desc is dead and lock file exists"
+ ;;
+ $STATUS_NOT_RUNNING)
+ log_failure_msg "$desc is not running"
+ ;;
+ *)
+ log_failure_msg "$desc status is unknown"
+ ;;
+ esac
+ return $status
+}
+
+condrestart(){
+ [ -e ${LOCKFILE} ] && restart || :
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ checkstatus
+ ;;
+ restart)
+ restart
+ ;;
+ condrestart|try-restart)
+ condrestart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|try-restart|condrestart}"
+ exit 1
+esac
+
+exit $RETVAL
diff --git a/bigtop-packages/src/common/hama/hama.default b/bigtop-packages/src/common/hama/hama.default
new file mode 100644
index 00000000..b6f56c69
--- /dev/null
+++ b/bigtop-packages/src/common/hama/hama.default
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+export HAMA_HOME=/usr/lib/hama
+export HAMA_CONF_DIR=/etc/hama/conf
+export HAMA_LOG_DIR=/var/log/hama
diff --git a/bigtop-packages/src/common/hama/install_hama.sh b/bigtop-packages/src/common/hama/install_hama.sh
new file mode 100644
index 00000000..1878e79f
--- /dev/null
+++ b/bigtop-packages/src/common/hama/install_hama.sh
@@ -0,0 +1,171 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+
+usage() {
+ echo "
+usage: $0 <options>
+ Required not-so-options:
+ --build-dir=DIR path to Hama dist.dir
+ --prefix=PREFIX path to install into
+
+ Optional options:
+ --distro-dir=DIR path to distro specific files (debian/RPM)
+ --doc-dir=DIR path to install docs into [/usr/share/doc/hama]
+ --lib-dir=DIR path to install hama home [/usr/lib/hama]
+ --installed-lib-dir=DIR path where lib-dir will end up on target system
+ --bin-dir=DIR path to install bins [/usr/bin]
+ --examples-dir=DIR path to install examples [doc-dir/examples]
+ ... [ see source for more similar options ]
+ "
+ exit 1
+}
+
+OPTS=$(getopt \
+ -n $0 \
+ -o '' \
+ -l 'prefix:' \
+ -l 'doc-dir:' \
+ -l 'lib-dir:' \
+ -l 'etc-dir:' \
+ -l 'distro-dir:' \
+ -l 'installed-lib-dir:' \
+ -l 'bin-dir:' \
+ -l 'examples-dir:' \
+ -l 'build-dir:' -- "$@")
+
+if [ $? != 0 ] ; then
+ usage
+fi
+
+eval set -- "$OPTS"
+while true ; do
+ case "$1" in
+ --prefix)
+ PREFIX=$2 ; shift 2
+ ;;
+ --build-dir)
+ BUILD_DIR=$2 ; shift 2
+ ;;
+ --doc-dir)
+ DOC_DIR=$2 ; shift 2
+ ;;
+ --distro-dir)
+ DISTRO_DIR=$2 ; shift 2
+ ;;
+ --lib-dir)
+ LIB_DIR=$2 ; shift 2
+ ;;
+ --etc-dir)
+ ETC_DIR=$2 ; shift 2
+ ;;
+ --installed-lib-dir)
+ INSTALLED_LIB_DIR=$2 ; shift 2
+ ;;
+ --bin-dir)
+ BIN_DIR=$2 ; shift 2
+ ;;
+ --examples-dir)
+ EXAMPLES_DIR=$2 ; shift 2
+ ;;
+ --)
+ shift ; break
+ ;;
+ *)
+ echo "Unknown option: $1"
+ usage
+ exit 1
+ ;;
+ esac
+done
+
+for var in PREFIX BUILD_DIR DISTRO_DIR; do
+ if [ -z "$(eval "echo \$$var")" ]; then
+ echo Missing param: $var
+ usage
+ fi
+done
+
+MAN_DIR=${MAN_DIR:-/usr/share/man/man1}
+DOC_DIR=${DOC_DIR:-/usr/share/doc/hama}
+LIB_DIR=${LIB_DIR:-/usr/lib/hama}
+INSTALLED_LIB_DIR=${INSTALLED_LIB_DIR:-/usr/lib/hama}
+EXAMPLES_DIR=${EXAMPLES_DIR:-$DOC_DIR/examples}
+BIN_DIR=${BIN_DIR:-/usr/bin}
+
+CONF_DIR=/etc/hama/
+CONF_DIST_DIR=${CONF_DIR}/conf.dist/
+ETC_DIR=${ETC_DIR:-${CONF_DIST_DIR}}
+
+install -d -m 0755 $PREFIX/$LIB_DIR
+install -d -m 0755 $PREFIX/$LIB_DIR/bin
+install -d -m 0755 $PREFIX/$LIB_DIR/lib
+install -d -m 0755 $PREFIX/$LIB_DIR/conf
+install -d -m 0755 $PREFIX/$DOC_DIR
+install -d -m 0755 $PREFIX/$ETC_DIR
+install -d -m 0777 $PREFIX/$LIB_DIR/logs
+
+cp -ra ${BUILD_DIR}/lib/* $PREFIX/${LIB_DIR}/lib/
+cp ${BUILD_DIR}/hama*.jar $PREFIX/$LIB_DIR
+cp -a ${BUILD_DIR}/*.txt $PREFIX/$DOC_DIR
+cp -a ${BUILD_DIR}/docs/* $PREFIX/$DOC_DIR
+cp -a ${BUILD_DIR}/bin/* $PREFIX/${LIB_DIR}/bin
+cp -a ${BUILD_DIR}/conf/* $PREFIX/${ETC_DIR}
+
+# Remove unnecessary files
+for f in hama-daemon.sh hama-daemons.sh start-bspd.sh stop-bspd.sh zookeepers.sh; do
+ rm -fv $PREFIX/${LIB_DIR}/bin/$f
+done
+
+# Copy in the /usr/bin/hama wrapper
+install -d -m 0755 $PREFIX/$BIN_DIR
+cat > $PREFIX/$BIN_DIR/hama <<EOF
+
+#!/bin/sh
+
+# Autodetect JAVA_HOME if not defined
+if [ -e /usr/libexec/bigtop-detect-javahome ]; then
+ . /usr/libexec/bigtop-detect-javahome
+elif [ -e /usr/lib/bigtop-utils/bigtop-detect-javahome ]; then
+ . /usr/lib/bigtop-utils/bigtop-detect-javahome
+fi
+
+. /etc/default/hadoop
+. /etc/default/hama
+
+#FIXME: the following line is a workaround for BIGTOP-259
+export HADOOP_CLASSPATH="`echo /usr/lib/hama/hama-examples-*-job.jar`":\$HADOOP_CLASSPATH
+exec $INSTALLED_LIB_DIR/bin/hama "\$@"
+EOF
+chmod 755 $PREFIX/$BIN_DIR/hama
+
+
+# Make the pseudo-distributed config
+for conf in conf.pseudo ; do
+ install -d -m 0755 $PREFIX/$CONF_DIR/$conf
+ # Install the default configurations
+ (cd ${BUILD_DIR}/conf && tar -cf - .) | (cd $PREFIX/$CONF_DIR/$conf && tar -xf -)
+ # Overlay the -site files
+ (cd $DISTRO_DIR/$conf && tar -cf - .) | (cd $PREFIX/$CONF_DIR/$conf && tar -xf -)
+ # When building straight out of svn we have to account for pesky .svn subdirs
+ rm -rf `find $PREFIX/$CONF_DIR/$conf -name .svn -type d`
+done
+
+
+
+
diff --git a/bigtop-packages/src/deb/hama/changelog b/bigtop-packages/src/deb/hama/changelog
new file mode 100644
index 00000000..d4858cd4
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/changelog
@@ -0,0 +1 @@
+--- This is auto-generated
diff --git a/bigtop-packages/src/deb/hama/compat b/bigtop-packages/src/deb/hama/compat
new file mode 100644
index 00000000..ec635144
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/compat
@@ -0,0 +1 @@
+9
diff --git a/bigtop-packages/src/deb/hama/control b/bigtop-packages/src/deb/hama/control
new file mode 100644
index 00000000..288624ae
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/control
@@ -0,0 +1,67 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+Source: hama
+Section: misc
+Priority: extra
+Maintainer: BigTop
+Build-Depends: debhelper (>= 9)
+Standards-Version: 3.9.4
+Homepage: http://hama.apache.org
+
+Package: hama
+Architecture: all
+Depends: hadoop, bigtop-utils, zookeeper
+Description: Hama is a pure BSP(Bulk Synchronous Parallel) computing
+ framework on
+ top of HDFS (Hadoop Distributed File System) for massive scientific
+ computations such as matrix, graph and network algorithms.
+
+Package: hama-bspmaster
+Architecture: all
+Depends: hama (= ${source:Version})
+Description: Maintain the global state of Apache Hama services
+ BSPMaster is responsible for the following:
+ - Maintaining groom server status.
+ - Maintaining supersteps and other counters in a cluster.
+ - Maintaining job progress information.
+ - Scheduling Jobs and assigning tasks to groom servers
+ - Distributing execution classes and configuration across groom servers.
+ - Providing users with the cluster control interface (web and console based).
+
+Package: hama-groom
+Architecture: all
+Depends: hama (= ${source:Version})
+Description: A Groom Server (shortly referred to as groom) is a process that launches bsp tasks assigned by BSPMaster
+ A Groom Server (shortly referred to as groom) is a process that launches bsp tasks
+ assigned by BSPMaster. Each groom contacts the BSPMaster, and it takes assigned
+ tasks and reports its status by means of periodical piggybacks with BSPMaster.
+ Each groom is designed to run with HDFS or other distributed storages. Basically,
+ a groom server and a data node should be run on one physical node to get the best performance. (Data-locality)
+
+Package: hama-conf-pseudo
+Architecture: all
+Depends: hama (= ${source:Version})
+Description: Apache Hama installation in pseudo-distributed mode
+ Installation of this RPM will setup your machine to run in pseudo-distributed mode
+ where each Apache Hama daemon runs in a separate Java process.
+
+Package: hama-doc
+Architecture: all
+Depends: hama (= ${source:Version})
+Description: Apache Hama Documentation
+ Documentation for Apache Hama
+
+
diff --git a/bigtop-packages/src/deb/hama/copyright b/bigtop-packages/src/deb/hama/copyright
new file mode 100644
index 00000000..fb67d3f2
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/copyright
@@ -0,0 +1,16 @@
+Format: http://dep.debian.net/deps/dep5
+Source: http://hama.apache.org/
+Upstream-Name: Apache Hama
+
+Files: *
+Copyright: 2010-2012, The Apache Software Foundation
+License: Apache-2.0
+
+Files debian/*
+Copyright: 2012, The Apache Software Foundation
+License: Apache-2.0
+
+License: Apache-2.0
+ On Debian systems, the complete text of the Apache 2.0 license
+ can be found in "/usr/share/common-licenses/Apache-2.0".
+
diff --git a/bigtop-packages/src/deb/hama/hama-bspmaster.postinst b/bigtop-packages/src/deb/hama/hama-bspmaster.postinst
new file mode 100644
index 00000000..317c3024
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama-bspmaster.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+if [ -x "/etc/init.d/hama-bspmaster" ]; then
+ update-rc.d hama-bspmaster defaults >/dev/null
+ if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+ invoke-rc.d hama-bspmaster start || :
+ else
+ /etc/init.d/hama-bspmaster start || :
+ fi
+fi
diff --git a/bigtop-packages/src/deb/hama/hama-conf-pseudo.dirs b/bigtop-packages/src/deb/hama/hama-conf-pseudo.dirs
new file mode 100644
index 00000000..502361ad
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama-conf-pseudo.dirs
@@ -0,0 +1 @@
+/etc/hama/conf.pseudo
diff --git a/bigtop-packages/src/deb/hama/hama-conf-pseudo.install b/bigtop-packages/src/deb/hama/hama-conf-pseudo.install
new file mode 100644
index 00000000..502361ad
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama-conf-pseudo.install
@@ -0,0 +1 @@
+/etc/hama/conf.pseudo
diff --git a/bigtop-packages/src/deb/hama/hama-conf-pseudo.postinst b/bigtop-packages/src/deb/hama/hama-conf-pseudo.postinst
new file mode 100644
index 00000000..a20d0c82
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama-conf-pseudo.postinst
@@ -0,0 +1,61 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# postinst script for hama
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <postinst> `abort-remove'
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ configure)
+ update-alternatives --install /etc/hama/conf hama-conf /etc/hama/conf.pseudo 40
+ if [ ! -e /etc/hama/conf ]; then
+ ln -s /etc/hama/conf.pseudo /etc/hama/conf
+ fi
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/bigtop-packages/src/deb/hama/hama-conf-pseudo.prerm b/bigtop-packages/src/deb/hama/hama-conf-pseudo.prerm
new file mode 100644
index 00000000..fe6d6afa
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama-conf-pseudo.prerm
@@ -0,0 +1,57 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# prerm script for hama
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <prerm> `remove'
+# * <old-prerm> `upgrade' <new-version>
+# * <new-prerm> `failed-upgrade' <old-version>
+# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+# * <deconfigured's-prerm> `deconfigure' `in-favour'
+# <package-being-installed> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ remove|upgrade|deconfigure)
+ update-alternatives --remove hama-conf /etc/hama/conf.pseudo > /dev/null || :
+ ;;
+
+ failed-upgrade)
+ ;;
+
+ *)
+ echo "prerm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/bigtop-packages/src/deb/hama/hama-doc.dirs b/bigtop-packages/src/deb/hama/hama-doc.dirs
new file mode 100644
index 00000000..f83f6424
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama-doc.dirs
@@ -0,0 +1 @@
+usr/share/doc/hama-doc
diff --git a/bigtop-packages/src/deb/hama/hama-doc.install b/bigtop-packages/src/deb/hama/hama-doc.install
new file mode 100644
index 00000000..f83f6424
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama-doc.install
@@ -0,0 +1 @@
+usr/share/doc/hama-doc
diff --git a/bigtop-packages/src/deb/hama/hama-groom.postinst b/bigtop-packages/src/deb/hama/hama-groom.postinst
new file mode 100644
index 00000000..b81b8605
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama-groom.postinst
@@ -0,0 +1,25 @@
+#!/bin/sh
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+if [ -x "/etc/init.d/hama-groom" ]; then
+ update-rc.d hama-groom defaults >/dev/null
+ if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+ invoke-rc.d hama-groom start || :
+ else
+ /etc/init.d/hama-groom start || :
+ fi
+fi
diff --git a/bigtop-packages/src/deb/hama/hama.dirs b/bigtop-packages/src/deb/hama/hama.dirs
new file mode 100644
index 00000000..d8f22dde
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama.dirs
@@ -0,0 +1,4 @@
+etc/default
+etc/hama/conf.dist
+usr/bin
+usr/lib/hama
diff --git a/bigtop-packages/src/deb/hama/hama.install b/bigtop-packages/src/deb/hama/hama.install
new file mode 100644
index 00000000..256ea148
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama.install
@@ -0,0 +1,4 @@
+etc/default/hama
+etc/hama/conf.dist
+usr/bin/hama
+usr/lib/hama
diff --git a/bigtop-packages/src/deb/hama/hama.postinst b/bigtop-packages/src/deb/hama/hama.postinst
new file mode 100644
index 00000000..7eb7e21a
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama.postinst
@@ -0,0 +1,36 @@
+#!/bin/sh
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+
+chmod 0777 /usr/lib/hama/logs
+
+case "$1" in
+ configure)
+ # Install config alternatives
+ update-alternatives --install /etc/hama/conf hama-conf /etc/hama/conf.dist 30
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/bigtop-packages/src/deb/hama/hama.preinst b/bigtop-packages/src/deb/hama/hama.preinst
new file mode 100644
index 00000000..421ee900
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama.preinst
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# preinst script for hama
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <new-preinst> `install'
+# * <new-preinst> `install' <old-version>
+# * <new-preinst> `upgrade' <old-version>
+# * <old-preinst> `abort-upgrade' <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ install|upgrade)
+ if ! getent passwd hama >/dev/null; then
+ # Adding system user: hama.
+ adduser \
+ --system \
+ --group \
+ --home /var/lib/hama \
+ --gecos "Apache Hama User" \
+ --shell /bin/bash \
+ hama >/dev/null
+ fi
+ install -d -m 0755 -o hama -g hama /var/log/hama
+ ;;
+
+ abort-upgrade)
+ ;;
+
+ *)
+ echo "preinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/bigtop-packages/src/deb/hama/hama.prerm b/bigtop-packages/src/deb/hama/hama.prerm
new file mode 100644
index 00000000..0f2a59a0
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/hama.prerm
@@ -0,0 +1,57 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# prerm script for hama
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <prerm> `remove'
+# * <old-prerm> `upgrade' <new-version>
+# * <new-prerm> `failed-upgrade' <old-version>
+# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+# * <deconfigured's-prerm> `deconfigure' `in-favour'
+# <package-being-installed> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ remove|upgrade|deconfigure)
+ update-alternatives --remove hama-conf /etc/hama/conf.dist || :
+ ;;
+
+ failed-upgrade)
+ ;;
+
+ *)
+ echo "prerm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/bigtop-packages/src/deb/hama/rules b/bigtop-packages/src/deb/hama/rules
new file mode 100644
index 00000000..e3f9eb72
--- /dev/null
+++ b/bigtop-packages/src/deb/hama/rules
@@ -0,0 +1,103 @@
+#!/usr/bin/make -f
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
+patch: patch-stamp
+patch-stamp:
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f *-stamp
+ dh_clean
+ rm -Rf debian/tmp
+ find debian -name .\*swp -exec rm -f {} \;
+
+build-indep: build-indep-stamp
+build-indep-stamp: patch-stamp
+ # we'll just use the build from the tarball.
+ rm -rf bigtop-empty
+ mkdir -p bigtop-empty
+ sh debian/do-component-build -Drat.basedir=${PWD}/bigtop-empty -Dmaven.repo.local=${HOME}/.m2/repository
+ mkdir -p debian/tmp
+ (cd dist/target/hama-${HAMA_BASE_VERSION}/hama-${HAMA_BASE_VERSION} && tar cf - --exclude=debian/\* .) | (cd debian/tmp && tar xf -)
+ touch $@
+
+install: install-indep
+install-indep:
+ dh_testdir
+ dh_testroot
+ dh_installdirs
+ sh -x debian/install_hama.sh \
+ --distro-dir=debian \
+ --build-dir=debian/tmp \
+ --doc-dir=/usr/share/doc/hama-doc \
+ --prefix=debian/tmp/hama
+ rm debian/tmp/hama/usr/lib/hama/lib/hadoop-*.jar
+ ln -s /usr/lib/hadoop/hadoop-core.jar debian/tmp/hama/usr/lib/hama/lib/hadoop-core.jar
+ rm debian/tmp/hama/usr/lib/hama/lib/zookeeper-*.jar
+ ln -s /usr/lib/zookeeper/zookeeper.jar debian/tmp/hama/usr/lib/hama/lib/zookeeper.jar
+ mkdir -p debian/tmp/hama/etc/default
+ cp debian/hama.default debian/tmp/hama/etc/default/hama
+ dh_install --sourcedir=debian/tmp/hama
+ (dh_lintian) || /bin/true
+
+binary-common:
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+# dh_installexamples
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_python
+ dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+# dh_perl
+ dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary-indep: build-indep install-indep
+ $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
+
+binary-arch:
+
+
+binary: binary-indep
+.PHONY: build clean binary-indep binary install-indep binary-arch
diff --git a/bigtop-packages/src/rpm/hama/BUILD/.gitignore b/bigtop-packages/src/rpm/hama/BUILD/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/bigtop-packages/src/rpm/hama/BUILD/.gitignore
diff --git a/bigtop-packages/src/rpm/hama/RPMS/.gitignore b/bigtop-packages/src/rpm/hama/RPMS/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/bigtop-packages/src/rpm/hama/RPMS/.gitignore
diff --git a/bigtop-packages/src/rpm/hama/SOURCES/.gitignore b/bigtop-packages/src/rpm/hama/SOURCES/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/bigtop-packages/src/rpm/hama/SOURCES/.gitignore
diff --git a/bigtop-packages/src/rpm/hama/SPECS/hama.spec b/bigtop-packages/src/rpm/hama/SPECS/hama.spec
new file mode 100644
index 00000000..fc24d907
--- /dev/null
+++ b/bigtop-packages/src/rpm/hama/SPECS/hama.spec
@@ -0,0 +1,276 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+%define hama_name hama
+%define lib_hama /usr/lib/%{hama_name}
+%define etc_hama /etc/%{hama_name}
+%define config_hama %{etc_hama}/conf
+%define log_hama /var/log/%{hama_name}
+%define bin_hama /usr/bin
+%define man_dir /usr/share/man
+
+%if %{?suse_version:1}0
+%define doc_hama %{_docdir}/hama
+%define alternatives_cmd update-alternatives
+%global initd_dir %{_sysconfdir}/rc.d
+%else
+%define doc_hama %{_docdir}/hama-%{hama_version}
+%define alternatives_cmd alternatives
+%global initd_dir %{_sysconfdir}/rc.d/init.d
+%endif
+
+# disable repacking jars
+%define __os_install_post %{nil}
+
+Name: hama
+Version: %{hama_version}
+Release: %{hama_release}
+Summary: A set of Java libraries for scalable machine learning.
+URL: http://hama.apache.org
+Group: Development/Libraries
+BuildArch: noarch
+Buildroot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+License: ASL 2.0
+Source0: %{name}-dist-%{hama_base_version}.tar.gz
+Source1: do-component-build
+Source2: install_%{name}.sh
+Source3: %{name}-bspmaster.init
+Source4: %{name}-groom.init
+Source5: %{name}.default
+Source6: bigtop.bom
+Requires: hadoop, bigtop-utils, zookeeper
+
+# Disable automatic Requires generation
+AutoReq: no
+
+%description
+Apache Hama is a pure BSP(Bulk Synchronous Parallel) computing framework on top of HDFS (Hadoop Distributed File System) for massive scientific computations such as matrix, graph and network algorithms. Currently, it has the following features:
+
+Job submission and management interface.
+Multiple tasks per node.
+Input/Output Formatter.
+Checkpoint recovery.
+Support to run with Apache Mesos.
+Support to run with Hadoop YARN.
+
+%package bspmaster
+Summary: Maintain the global state of Apache Hama services
+Group: Development/Libraries
+BuildArch: noarch
+Requires: %{name} = %{version}-%{release}
+Requires: /sbin/service
+Requires(pre): %{name} = %{version}-%{release}
+Requires(post): /sbin/chkconfig
+Requires(preun): /sbin/chkconfig
+
+%if %{?suse_version:1}0
+# Required for init scripts
+Requires: insserv
+%endif
+
+%if 0%{?mgaversion}
+# Required for init scripts
+Requires: initscripts
+%endif
+
+# CentOS 5 does not have any dist macro
+# So I will suppose anything that is not Mageia or a SUSE will be a RHEL/CentOS/Fedora
+%if %{!?suse_version:1}0 && %{!?mgaversion:1}0
+# Required for init scripts
+Requires: redhat-lsb
+%endif
+
+%description bspmaster
+BSPMaster is responsible for the following:
+- Maintaining groom server status.
+- Maintaining supersteps and other counters in a cluster.
+- Maintaining job progress information.
+- Scheduling Jobs and assigning tasks to groom servers
+- Distributing execution classes and configuration across groom servers.
+- Providing users with the cluster control interface (web and console based).
+
+%package groom
+Summary: A Groom Server (shortly referred to as groom) is a process that launches bsp tasks assigned by BSPMaster
+Group: Development/Libraries
+BuildArch: noarch
+Requires: %{name} = %{version}-%{release}
+Requires: /sbin/service
+Requires(pre): %{name} = %{version}-%{release}
+Requires(post): /sbin/chkconfig
+Requires(preun): /sbin/chkconfig
+
+%if %{?suse_version:1}0
+# Required for init scripts
+Requires: insserv
+%endif
+
+%if 0%{?mgaversion}
+# Required for init scripts
+Requires: initscripts
+%endif
+
+# CentOS 5 does not have any dist macro
+# So I will suppose anything that is not Mageia or a SUSE will be a RHEL/CentOS/Fedora
+%if %{!?suse_version:1}0 && %{!?mgaversion:1}0
+# Required for init scripts
+Requires: redhat-lsb
+%endif
+
+%description groom
+A Groom Server (shortly referred to as groom) is a process that launches bsp tasks
+assigned by BSPMaster. Each groom contacts the BSPMaster, and it takes assigned
+tasks and reports its status by means of periodical piggybacks with BSPMaster.
+Each groom is designed to run with HDFS or other distributed storages. Basically,
+a groom server and a data node should be run on one physical node to get the best performance. (Data-locality)
+
+
+%package conf-pseudo
+Summary: Apache Hama installation in pseudo-distributed mode
+Group: System/Daemons
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-groom = %{version}-%{release}
+Requires: %{name}-bspmaster = %{version}-%{release}
+Requires: zookeeper-server
+
+%description conf-pseudo
+Installation of this RPM will setup your machine to run in pseudo-distributed mode
+where each Apache Hama daemon runs in a separate Java process.
+
+
+%package doc
+Summary: Apache Hama Documentation
+Group: Documentation
+Requires: %{name} = %{version}-%{release}
+
+%description doc
+Documentation for Apache Hama
+
+
+%prep
+%setup -n %{name}-%{hama_base_version}
+
+%build
+bash $RPM_SOURCE_DIR/do-component-build
+
+%install
+%__rm -rf $RPM_BUILD_ROOT
+sh -x $RPM_SOURCE_DIR/install_hama.sh \
+ --distro-dir=$RPM_SOURCE_DIR \
+ --build-dir=dist/target/hama-%{hama_base_version}/hama-%{hama_base_version} \
+ --prefix=$RPM_BUILD_ROOT \
+ --doc-dir=%{doc_hama}
+
+# Reuse Apache Hadoop jar
+rm -f $RPM_BUILD_ROOT/usr/lib/hama/lib/hadoop*.jar
+ln -s /usr/lib/hadoop/hadoop-core.jar $RPM_BUILD_ROOT/usr/lib/hama/lib/hadoop-core.jar
+
+# Reuse Apache Zookeeper jar
+rm -f $RPM_BUILD_ROOT/usr/lib/hama/lib/zookeeper*.jar
+ln -s /usr/lib/zookeeper/zookeeper.jar $RPM_BUILD_ROOT/usr/lib/hama/lib/zookeeper.jar
+
+
+# Install init script
+%__install -d -m 0755 $RPM_BUILD_ROOT/%{initd_dir}/
+
+init_file_bspmaster=$RPM_BUILD_ROOT/%{initd_dir}/%{name}-bspmaster
+%__cp %{SOURCE3} $init_file_bspmaster
+chmod 755 $init_file_bspmaster
+
+init_file_groom=$RPM_BUILD_ROOT/%{initd_dir}/%{name}-groom
+%__cp %{SOURCE4} $init_file_groom
+chmod 755 $init_file_groom
+
+
+# Install default file
+%__install -d -m 0755 $RPM_BUILD_ROOT/etc/default
+%__cp %{SOURCE5} $RPM_BUILD_ROOT/etc/default/%{name}
+
+%pre
+getent group hama >/dev/null || groupadd -r hama
+getent passwd hama >/dev/null || useradd -c "Apache Hama" -s /sbin/nologin -g hama -r -d /var/run/hama hama 2> /dev/null || :
+%__install -d -o hama -g hama -m 0755 /var/log/hama
+
+
+%post
+%{alternatives_cmd} --install %{config_hama} %{hama_name}-conf %{config_hama}.dist 30
+
+%preun
+if [ "$1" = 0 ]; then
+ %{alternatives_cmd} --remove %{hama_name}-conf %{config_hama}.dist || :
+fi
+
+# bspmaster service
+%post bspmaster
+chkconfig --add %{name}-bspmaster
+
+%preun bspmaster
+if [ $1 = 0 ] ; then
+ service %{name}-bspmaster stop > /dev/null 2>&1
+ chkconfig --del %{name}-bspmaster
+fi
+%postun bspmaster
+if [ $1 -ge 1 ]; then
+ service %{name}-bspmaster condrestart >/dev/null 2>&1
+fi
+
+# Groom service
+%post groom
+chkconfig --add %{name}-groom
+
+%preun groom
+if [ $1 = 0 ] ; then
+ service %{name}-groom stop > /dev/null 2>&1
+ chkconfig --del %{name}-groom
+fi
+%postun groom
+if [ $1 -ge 1 ]; then
+ service %{name}-groom condrestart >/dev/null 2>&1
+fi
+
+# Pseudo-distributed Hadoop installation
+%post conf-pseudo
+%{alternatives_cmd} --install %{config_hama} %{name}-conf %{etc_hama}/conf.pseudo 40
+
+%preun conf-pseudo
+if [ "$1" = 0 ]; then
+ %{alternatives_cmd} --remove %{name}-conf %{etc_hama}/conf.pseudo
+fi
+
+
+
+#######################
+#### FILES SECTION ####
+#######################
+%files
+%defattr(-,root,root,755)
+%config(noreplace) %{config_hama}.dist
+%doc *.txt
+%{lib_hama}
+%{bin_hama}/hama
+%config(noreplace) /etc/default/%{name}
+
+%files bspmaster
+%attr(0755,root,root)/%{initd_dir}/%{name}-bspmaster
+
+%files groom
+%attr(0755,root,root)/%{initd_dir}/%{name}-groom
+
+%files conf-pseudo
+%defattr(-,root,root,755)
+%config(noreplace) %attr(755,root,root) %{etc_hama}/conf.pseudo
+
+%files doc
+%defattr(-,root,root,755)
+%doc %{doc_hama}
diff --git a/bigtop-packages/src/rpm/hama/SRPMS/.gitignore b/bigtop-packages/src/rpm/hama/SRPMS/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/bigtop-packages/src/rpm/hama/SRPMS/.gitignore
diff --git a/bigtop.mk b/bigtop.mk
index e653e4ad..1ef75105 100644
--- a/bigtop.mk
+++ b/bigtop.mk
@@ -388,3 +388,17 @@ KITE_TARBALL_DST=kite-$(KITE_BASE_VERSION).tar.gz
KITE_SITE=https://github.com/kite-sdk/kite/archive
KITE_ARCHIVE=$(KITE_SITE)
$(eval $(call PACKAGE,kite,KITE))
+
+# Hama
+HAMA_NAME=hama
+HAMA_RELNOTES_NAME=Apache Hama
+HAMA_PKG_NAME=hama
+HAMA_BASE_VERSION=0.7.0
+HAMA_PKG_VERSION=$(HAMA_BASE_VERSION)
+HAMA_RELEASE_VERSION=1
+HAMA_TARBALL_DST=hama-dist-$(HAMA_BASE_VERSION).tar.gz
+HAMA_TARBALL_SRC=hama-dist-$(HAMA_BASE_VERSION)-src.tar.gz
+HAMA_DOWNLOAD_PATH=/hama/hama-$(HAMA_BASE_VERSION)
+HAMA_SITE=$(APACHE_MIRROR)$(HAMA_DOWNLOAD_PATH)
+HAMA_ARCHIVE=$(APACHE_ARCHIVE)$(HAMA_DOWNLOAD_PATH)
+$(eval $(call PACKAGE,hama,HAMA))