summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuslan Makhmatkhanov <rm@FreeBSD.org>2018-07-10 12:46:35 +0000
committerRuslan Makhmatkhanov <rm@FreeBSD.org>2018-07-10 12:46:35 +0000
commitc4d0b9fbaa836e41f3736b93f8d391ce7f827ee5 (patch)
treeeabcdbba65578c5af682343c089169629fd53a5a
parentMaintainership back to Submitter (diff)
Bring back databases/riak port
Distfiles are actually still available and we still using it at work While here: - take up maintainership - pacify portlint (make makepatch, knobs ordering, add license file) - unbreak build on recent -current - remove JOBS_UNSAFE - builds fine here in poudriere with -J 4
-rw-r--r--MOVED1
-rw-r--r--databases/Makefile1
-rw-r--r--databases/riak/Makefile89
-rw-r--r--databases/riak/distinfo2
-rw-r--r--databases/riak/files/patch-deps-eleveldb-c_src-leveldb-build_detect_platform29
-rw-r--r--databases/riak/files/patch-deps-eleveldb-c_src-leveldb-db-version_set.cc36
-rw-r--r--databases/riak/files/patch-deps-erlang_js-c_src-patches-js-src-config-FreeBSD.mk.patch18
-rw-r--r--databases/riak/files/patch-deps-erlang_js-c_src-patches-nspr-src-ptsynch.c.patch15
-rw-r--r--databases/riak/files/patch-deps-node_package-priv-base-env.sh28
-rw-r--r--databases/riak/files/patch-rel-reltool.config16
-rw-r--r--databases/riak/files/patch-rel-vars.config41
-rw-r--r--databases/riak/files/riak.in84
-rw-r--r--databases/riak/pkg-descr6
-rw-r--r--databases/riak/pkg-plist19
14 files changed, 384 insertions, 1 deletions
diff --git a/MOVED b/MOVED
index 480ec0b963b9..38a528e80713 100644
--- a/MOVED
+++ b/MOVED
@@ -10236,7 +10236,6 @@ converters/pdf2djvu||2018-06-07|Has expired: Broken for more than 6 months
databases/rdb||2018-06-07|Has expired: Broken for more than 6 months
databases/animenfo-client||2018-06-07|Has expired: Broken for more than 6 months
databases/ruby-mysql||2018-06-07|Has expired: Broken for more than 6 months
-databases/riak||2018-06-07|Has expired: Broken for more than 6 months
databases/animenfo-client-gtk||2018-06-07|Has expired: Broken for more than 6 months
databases/rdfdb||2018-06-07|Has expired: Broken for more than 6 months
databases/riak2||2018-06-07|Has expired: Broken for more than 6 months
diff --git a/databases/Makefile b/databases/Makefile
index dc3255ed688d..d6be97db5aaa 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -901,6 +901,7 @@
SUBDIR += redis_exporter
SUBDIR += redisdesktopmanager
SUBDIR += retcl
+ SUBDIR += riak
SUBDIR += rocksdb
SUBDIR += rocksdb-lite
SUBDIR += rrdman
diff --git a/databases/riak/Makefile b/databases/riak/Makefile
new file mode 100644
index 000000000000..3057490984f0
--- /dev/null
+++ b/databases/riak/Makefile
@@ -0,0 +1,89 @@
+# $FreeBSD$
+
+PORTNAME= riak
+PORTVERSION= 1.4.12
+PORTREVISION= 3
+CATEGORIES= databases
+MASTER_SITES= http://s3.amazonaws.com/downloads.basho.com/riak/${PORTVERSION:R}/${PORTVERSION}/ \
+ http://downloads.basho.com.s3.amazonaws.com/riak/${PORTVERSION:R}/${PORTVERSION}/
+
+MAINTAINER= rm@FreeBSD.org
+COMMENT= Open source, distributed, noSQL database
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BROKEN_aarch64= Does not compile: error: Unknown CPU architecture
+BROKEN_powerpc64= Does not compile: error: Unknown CPU architecture
+BROKEN_sparc64= Does not compile: Please implement AtomicPointer for this platform
+
+BUILD_DEPENDS= ${LOCALBASE}/lib/erlang15/bin/erlc:lang/erlang-runtime15
+
+USES= gmake readline shebangfix
+SHEBANG_FILES= deps/eper/priv/bin/dtop \
+ deps/eper/priv/bin/gperf \
+ deps/eper/priv/bin/ntop \
+ deps/eper/priv/bin/redbug \
+ deps/eper/priv/bin/sherk
+USE_RC_SUBR= riak
+
+PLIST= ${WRKDIR}/pkg-plist
+PLIST_SUB+= GROUPS=${GROUPS} \
+ RIAK_CONFDIR=${RIAK_CONFDIR} \
+ RIAK_DBDIR=${RIAK_DBDIR} \
+ RIAK_HOMEDIR=${RIAK_HOMEDIR} \
+ RIAK_LIBDIR=${RIAK_LIBDIR} \
+ RIAK_LOGDIR=${RIAK_LOGDIR} \
+ USERS=${USERS}
+
+USERS= riak
+GROUPS= riak
+
+RIAK_CONFDIR?= ${PREFIX}/etc/${PORTNAME}
+RIAK_LOGDIR?= /var/log/${PORTNAME}
+RIAK_DBDIR?= /var/db/${PORTNAME}
+RIAK_LIBDIR?= ${PREFIX}/lib/${PORTNAME}/lib
+RIAK_HOMEDIR?= ${PREFIX}/lib/${PORTNAME}
+
+ALL_TARGET= rel
+MAKE_ENV= PATH=${LOCALBASE}/lib/erlang15/bin:${PATH}
+
+.include <bsd.port.pre.mk>
+
+post-patch:
+ @${REINPLACE_CMD} 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/rel/vars.config
+
+pre-install:
+ ${RM} ${PLIST}
+ ${CAT} ${PKGDIR}/pkg-plist >> ${PLIST}
+ (cd ${WRKSRC}/rel/${PORTNAME}; ${FIND} releases -type f \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn | ${SED} -e 's/^/lib\//' \
+ | ${AWK} '{print "lib/riak/"$$2 }' >> ${PLIST})
+ (cd ${WRKSRC}/rel/${PORTNAME}; ${FIND} erts-* -type f \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print "lib/riak/"$$2 }' >> ${PLIST})
+ (cd ${WRKSRC}/rel; ${FIND} ${PORTNAME}/lib -type f \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn | ${SED} -e 's/^/lib\//' \
+ | ${AWK} '{print "lib/"$$2 }' >> ${PLIST})
+ ${ECHO} "@owner" >> ${PLIST}
+ ${ECHO} "@group" >> ${PLIST}
+
+do-install:
+.for d in ${RIAK_CONFDIR} ${RIAK_LOGDIR} ${RIAK_DBDIR} ${RIAK_LIBDIR} ${RIAK_HOMEDIR}
+ ${MKDIR} ${STAGEDIR}${d}
+.endfor
+ ${INSTALL_DATA} ${WRKSRC}/rel/riak/etc/vm.args ${STAGEDIR}${RIAK_CONFDIR}/vm.args.sample
+ ${INSTALL_DATA} ${WRKSRC}/rel/riak/etc/app.config ${STAGEDIR}${RIAK_CONFDIR}/app.config.sample
+ ${INSTALL_DATA} ${WRKSRC}/rel/riak/etc/cert.pem ${STAGEDIR}${RIAK_CONFDIR}/cert.pem.sample
+ ${INSTALL_DATA} ${WRKSRC}/rel/riak/etc/key.pem ${STAGEDIR}${RIAK_CONFDIR}/key.pem.sample
+ (cd ${WRKSRC}/rel/riak/lib/ && ${COPYTREE_BIN} . ${STAGEDIR}${RIAK_LIBDIR})
+ (cd ${WRKSRC}/rel/riak/bin/ && ${COPYTREE_BIN} . ${STAGEDIR}${PREFIX}/sbin/)
+ (cd ${WRKSRC}/rel/riak/lib/basho-patches && ${COPYTREE_SHARE} . ${STAGEDIR}${RIAK_LIBDIR}/basho-patches)
+ (cd ${WRKSRC}/rel/riak/releases && ${COPYTREE_SHARE} . ${STAGEDIR}${RIAK_HOMEDIR}/releases)
+ ${CP} -R ${WRKSRC}/rel/riak/erts-* ${STAGEDIR}${RIAK_HOMEDIR}
+ ${INSTALL_MAN} ${WRKSRC}/doc/man/man1/riak.1.gz ${STAGEDIR}${MANPREFIX}/man/man1/
+ ${INSTALL_MAN} ${WRKSRC}/doc/man/man1/riak-admin.1.gz ${STAGEDIR}${MANPREFIX}/man/man1/
+ ${INSTALL_MAN} ${WRKSRC}/doc/man/man1/riak-debug.1.gz ${STAGEDIR}${MANPREFIX}/man/man1/
+ ${INSTALL_MAN} ${WRKSRC}/doc/man/man1/search-cmd.1.gz ${STAGEDIR}${MANPREFIX}/man/man1/
+
+.include <bsd.port.post.mk>
diff --git a/databases/riak/distinfo b/databases/riak/distinfo
new file mode 100644
index 000000000000..3ac05542d6e3
--- /dev/null
+++ b/databases/riak/distinfo
@@ -0,0 +1,2 @@
+SHA256 (riak-1.4.12.tar.gz) = 2ae63ba183ce457399a21542c75aa6149481c972ebac739a1599e93e81982c91
+SIZE (riak-1.4.12.tar.gz) = 13821609
diff --git a/databases/riak/files/patch-deps-eleveldb-c_src-leveldb-build_detect_platform b/databases/riak/files/patch-deps-eleveldb-c_src-leveldb-build_detect_platform
new file mode 100644
index 000000000000..91c1596839e0
--- /dev/null
+++ b/databases/riak/files/patch-deps-eleveldb-c_src-leveldb-build_detect_platform
@@ -0,0 +1,29 @@
+--- deps/eleveldb/c_src/leveldb/build_detect_platform.orig 2014-12-04 17:57:13 UTC
++++ deps/eleveldb/c_src/leveldb/build_detect_platform
+@@ -134,7 +134,7 @@ if [ "$CROSS_COMPILE" = "true" ]; then
+ true
+ else
+ # If -std=c++0x works, use <cstdatomic>. Otherwise use port_posix.h.
+- $CXX $CFLAGS -std=c++0x -x c++ - -o /dev/null 2>/dev/null <<EOF
++ $CXX $CFLAGS -std=c++0x -x c++ - 2>/dev/null <<EOF
+ #include <cstdatomic>
+ int main() {}
+ EOF
+@@ -147,7 +147,7 @@ EOF
+
+ # Test whether Snappy library is installed
+ # http://code.google.com/p/snappy/
+- $CXX $CFLAGS -x c++ - -o /dev/null 2>/dev/null <<EOF
++ $CXX $CFLAGS -x c++ - 2>/dev/null <<EOF
+ #include <snappy.h>
+ int main() {}
+ EOF
+@@ -157,7 +157,7 @@ EOF
+ fi
+
+ # Test whether tcmalloc is available
+- $CXX $CFLAGS -x c++ - -o /dev/null -ltcmalloc 2>/dev/null <<EOF
++ $CXX $CFLAGS -x c++ - -ltcmalloc 2>/dev/null <<EOF
+ int main() {}
+ EOF
+ if [ "$?" = 0 ]; then
diff --git a/databases/riak/files/patch-deps-eleveldb-c_src-leveldb-db-version_set.cc b/databases/riak/files/patch-deps-eleveldb-c_src-leveldb-db-version_set.cc
new file mode 100644
index 000000000000..6fffbb8345f8
--- /dev/null
+++ b/databases/riak/files/patch-deps-eleveldb-c_src-leveldb-db-version_set.cc
@@ -0,0 +1,36 @@
+--- deps/eleveldb/c_src/leveldb/db/version_set.cc.orig 2014-12-04 17:57:13 UTC
++++ deps/eleveldb/c_src/leveldb/db/version_set.cc
+@@ -2,10 +2,12 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
+
++#define __STDC_CONSTANT_MACROS
+ #include "db/version_set.h"
+
+ #include <algorithm>
+ #include <stdio.h>
++#include <stdint.h>
+ #include "db/filename.h"
+ #include "db/log_reader.h"
+ #include "db/log_writer.h"
+@@ -56,13 +58,13 @@ static struct
+
+ // WARNING: m_OverlappedFiles flags need to match config::kNumOverlapFiles ... until unified
+ {
+- {10485760, 262144000, 57671680, 209715200, 0, 300000000, true},
+- {10485760, 82914560, 57671680, 419430400, 0, 209715200, true},
+- {10485760, 314572800, 57671680, 1006632960, 200000000, 314572800, false},
+- {10485760, 419430400, 57671680, 4094304000ULL, 3355443200ULL, 419430400, false},
+- {10485760, 524288000, 57671680, 41943040000ULL, 33554432000ULL, 524288000, false},
+- {10485760, 629145600, 57671680, 419430400000ULL, 335544320000ULL, 629145600, false},
+- {10485760, 734003200, 57671680, 4194304000000ULL, 3355443200000ULL, 734003200, false}
++ {UINT64_C(10485760), UINT64_C(262144000), INT64_C(57671680), UINT64_C( 209715200), UINT64_C( 0), UINT64_C(300000000), true},
++ {UINT64_C(10485760), UINT64_C( 82914560), INT64_C(57671680), UINT64_C( 419430400), UINT64_C( 0), UINT64_C(209715200), true},
++ {UINT64_C(10485760), UINT64_C(314572800), INT64_C(57671680), UINT64_C( 1006632960), UINT64_C( 200000000), UINT64_C(314572800), false},
++ {UINT64_C(10485760), UINT64_C(419430400), INT64_C(57671680), UINT64_C( 4094304000), UINT64_C( 3355443200), UINT64_C(419430400), false},
++ {UINT64_C(10485760), UINT64_C(524288000), INT64_C(57671680), UINT64_C( 41943040000), UINT64_C( 33554432000), UINT64_C(524288000), false},
++ {UINT64_C(10485760), UINT64_C(629145600), INT64_C(57671680), UINT64_C( 419430400000), UINT64_C( 335544320000), UINT64_C(629145600), false},
++ {UINT64_C(10485760), UINT64_C(734003200), INT64_C(57671680), UINT64_C(4194304000000), UINT64_C(3355443200000), UINT64_C(734003200), false}
+ };
+
+ /// ULL above needed to compile on OSX 10.7.3
diff --git a/databases/riak/files/patch-deps-erlang_js-c_src-patches-js-src-config-FreeBSD.mk.patch b/databases/riak/files/patch-deps-erlang_js-c_src-patches-js-src-config-FreeBSD.mk.patch
new file mode 100644
index 000000000000..c34773ac485f
--- /dev/null
+++ b/databases/riak/files/patch-deps-erlang_js-c_src-patches-js-src-config-FreeBSD.mk.patch
@@ -0,0 +1,18 @@
+--- deps/erlang_js/c_src/patches/js-src-config-FreeBSD.mk.patch.orig 2013-01-29 20:13:01 UTC
++++ deps/erlang_js/c_src/patches/js-src-config-FreeBSD.mk.patch
+@@ -1,6 +1,6 @@
+ --- c_src.orig/js/src/config/FreeBSD.mk 1969-12-31 19:00:00.000000000 -0500
+ +++ c_src/js/src/config/FreeBSD.mk 2011-03-30 20:12:51.000000000 -0400
+-@@ -0,0 +1,99 @@
++@@ -0,0 +1,100 @@
+ +# -*- Mode: makefile -*-
+ +#
+ +# ***** BEGIN LICENSE BLOCK *****
+@@ -46,6 +46,7 @@
+ +
+ +CC ?= gcc
+ +CCC ?= g++
+++LD = $(CC)
+ +CFLAGS += -Wall -Wno-format
+ +OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R
+ +
diff --git a/databases/riak/files/patch-deps-erlang_js-c_src-patches-nspr-src-ptsynch.c.patch b/databases/riak/files/patch-deps-erlang_js-c_src-patches-nspr-src-ptsynch.c.patch
new file mode 100644
index 000000000000..cd0e95d6aef4
--- /dev/null
+++ b/databases/riak/files/patch-deps-erlang_js-c_src-patches-nspr-src-ptsynch.c.patch
@@ -0,0 +1,15 @@
+--- deps/erlang_js/c_src/patches/nspr-src-ptsynch.c.patch 1970-01-01 03:00:00 UTC
++++ deps/erlang_js/c_src/patches/nspr-src-ptsynch.c.patch
+@@ -0,0 +1,12 @@
++--- c_src/nsprpub/pr/src/pthreads/ptsynch.c.orig 2009-03-19 00:29:32.000000000 +0300
+++++ c_src/nsprpub/pr/src/pthreads/ptsynch.c 2018-07-10 14:59:52.818165000 +0300
++@@ -828,7 +828,8 @@
++ * From the semctl(2) man page in glibc 2.0
++ */
++ #if (defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)) \
++- || defined(FREEBSD) || defined(OPENBSD) || defined(BSDI) \
+++ || (defined(FREEBSD) && __FreeBSD_version < 1200059) \
+++ || defined(OPENBSD) || defined(BSDI) \
++ || defined(DARWIN) || defined(SYMBIAN)
++ /* union semun is defined by including <sys/sem.h> */
++ #else
diff --git a/databases/riak/files/patch-deps-node_package-priv-base-env.sh b/databases/riak/files/patch-deps-node_package-priv-base-env.sh
new file mode 100644
index 000000000000..75c35f00088e
--- /dev/null
+++ b/databases/riak/files/patch-deps-node_package-priv-base-env.sh
@@ -0,0 +1,28 @@
+--- deps/node_package/priv/base/env.sh.orig 2013-11-08 18:56:54 UTC
++++ deps/node_package/priv/base/env.sh
+@@ -100,7 +100,7 @@ ping_node() {
+ # read/write/delete .pid files during startup/shutdown
+ create_pid_dir() {
+ # Validate RUNNER_USER is set and they have permissions to write to /var/run
+- # Don't continue if we've already sudo'd to RUNNER_USER
++ # Don't continue if we've already su'd to RUNNER_USER
+ if ([ "$RUNNER_USER" ] && [ "x$WHOAMI" != "x$RUNNER_USER" ]); then
+ if [ -w $RUN_DIR ]; then
+ mkdir -p $PID_DIR
+@@ -161,12 +161,13 @@ check_user() {
+ # Validate that the user running the script is the owner of the
+ # RUN_DIR.
+ if ([ "$RUNNER_USER" ] && [ "x$WHOAMI" != "x$RUNNER_USER" ]); then
+- type sudo > /dev/null 2>&1
++ type su > /dev/null 2>&1
+ if [ "$?" -ne 0 ]; then
+- echoerr "sudo doesn't appear to be installed and your EUID isn't $RUNNER_USER" 1>&2
++ echoerr "su doesn't appear to be installed and your EUID isn't $RUNNER_USER" 1>&2
+ exit 1
+ fi
+- exec sudo -H -u $RUNNER_USER -i $RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT $@
++ ESCAPED_ARGS=`echo "$@" | sed -e 's/\([{}"]\)/\\\\\1/g'`
++ exec su - $RUNNER_USER -c "$RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT $ESCAPED_ARGS"
+ fi
+ }
+
diff --git a/databases/riak/files/patch-rel-reltool.config b/databases/riak/files/patch-rel-reltool.config
new file mode 100644
index 000000000000..a942dad4974f
--- /dev/null
+++ b/databases/riak/files/patch-rel-reltool.config
@@ -0,0 +1,16 @@
+--- rel/reltool.config.orig 2014-12-04 17:55:03 UTC
++++ rel/reltool.config
+@@ -37,8 +37,12 @@
+ {boot_rel, "riak"},
+ {profile, embedded},
+ {excl_sys_filters, ["^bin/.*",
+- "^erts.*/bin/(dialyzer|typer)"]},
++ "^erts.*/bin/(dialyzer|typer)",
++ "^erts.*/bin/(dialyzer|typer)",
++ "^erts.*/doc",
++ "^erts.*/man"]},
+ {excl_archive_filters, [".*"]},
++ {app, mnesia, [{incl_app_filters, ["ebin/*"]}]},
+ {app, cluster_info, [{incl_cond, include}]},
+ {app, erlang_js, [{incl_cond, include}]},
+ {app, ebloom, []},
diff --git a/databases/riak/files/patch-rel-vars.config b/databases/riak/files/patch-rel-vars.config
new file mode 100644
index 000000000000..a08de22f5f7d
--- /dev/null
+++ b/databases/riak/files/patch-rel-vars.config
@@ -0,0 +1,41 @@
+--- rel/vars.config.orig 2014-12-04 17:55:03 UTC
++++ rel/vars.config
+@@ -2,11 +2,12 @@
+ %% ex: ft=erlang ts=4 sw=4 et
+
+ %% Platform-specific installation paths
+-{platform_bin_dir, "./bin"}.
+-{platform_data_dir, "./data"}.
+-{platform_etc_dir, "./etc"}.
+-{platform_lib_dir, "./lib"}.
+-{platform_log_dir, "./log"}.
++{platform_bin_dir, "/usr/local/sbin"}.
++{platform_data_dir, "/var/db/riak"}.
++{platform_etc_dir, "/usr/local/etc/riak"}.
++{platform_base_dir, "/usr/local/lib/riak"}.
++{platform_lib_dir, "/usr/local/lib/riak/lib"}.
++{platform_log_dir, "/var/log/riak"}.
+
+ %%
+ %% etc/app.config
+@@ -47,12 +48,12 @@
+ %%
+ %% bin/riak
+ %%
+-{runner_script_dir, "$(cd ${0%/*} && pwd)"}.
+-{runner_base_dir, "{{runner_script_dir}}/.."}.
+-{runner_etc_dir, "$RUNNER_BASE_DIR/etc"}.
+-{runner_log_dir, "$RUNNER_BASE_DIR/log"}.
+-{runner_lib_dir, "$RUNNER_BASE_DIR/lib"}.
+-{runner_patch_dir, "$RUNNER_BASE_DIR/lib/basho-patches"}.
+-{pipe_dir, "/tmp/$RUNNER_BASE_DIR/"}.
+-{runner_user, ""}.
++{runner_script_dir, "{{platform_bin_dir}}"}.
++{runner_base_dir, "{{platform_base_dir}}"}.
++{runner_etc_dir, "{{platform_etc_dir}}"}.
++{runner_log_dir, "{{platform_log_dir}}"}.
++{runner_lib_dir, "{{platform_lib_dir}}"}.
++{runner_patch_dir, "{{platform_lib_dir}}/basho-patches"}.
++{pipe_dir, "/tmp/riak"}.
++{runner_user, "riak"}.
+ {runner_wait_process, "riak_core_node_watcher"}.
diff --git a/databases/riak/files/riak.in b/databases/riak/files/riak.in
new file mode 100644
index 000000000000..2ab086f60959
--- /dev/null
+++ b/databases/riak/files/riak.in
@@ -0,0 +1,84 @@
+#!/bin/sh
+# $FreeBSD$
+
+# PROVIDE: riak
+# REQUIRE: LOGIN cleanvar
+# KEYWORD: shutdown
+
+#
+# Add the following lines to /etc/rc.conf to enable riak:
+# riak_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable riak on boot.
+#
+
+. /etc/rc.subr
+
+name="riak"
+rcvar=riak_enable
+
+pidfile=/var/run/riak/riak.pid
+
+start_cmd="riak_start"
+stop_cmd="riak_stop"
+restart_cdm="riak_restart"
+status_cmd="riak_status"
+command="%%PREFIX%%/sbin/riak"
+
+load_rc_config $name
+
+# Read rc.d config and set defaults
+load_rc_config "$name"
+: ${riak_enable="NO"}
+
+riak_start()
+{
+ echo "Starting Riak."
+ %%PREFIX%%/sbin/riak start
+ return 0
+}
+
+riak_stop()
+{
+ echo "Stopping Riak processes"
+ %%PREFIX%%/sbin/riak stop
+ killall -9 epmd
+ return 0
+}
+
+riak_restart()
+{
+ riak_stop
+ riak_start
+ return 0
+}
+
+riak_status()
+{
+ if riak_running; then
+ echo "Riak is running."
+ return 0
+ else
+ echo "Riak is not running"
+ return 1
+ fi
+}
+
+riak_running()
+{
+ local pid result ps
+ pid=`%%PREFIX%%/sbin/riak getpid`
+ result=`echo $?`
+ if [ "$result" == 0 ]; then
+ ps=`ps -waux | grep ${pid} | grep riak`
+ result=`echo $?`
+ if [ "$result" ]; then
+ return 0
+ else
+ return 1
+ fi
+ else
+ return 1
+ fi
+}
+
+run_rc_command "$1"
diff --git a/databases/riak/pkg-descr b/databases/riak/pkg-descr
new file mode 100644
index 000000000000..ceddb0d6acec
--- /dev/null
+++ b/databases/riak/pkg-descr
@@ -0,0 +1,6 @@
+Riak is a distributed database designed for maximum availability:
+so long as your client can reach one server, it should be able to
+write data. In most failure scenarios the data you want to read
+should be available, albeit possibly stale.
+
+WWW: http://basho.com/products/riak-kv/
diff --git a/databases/riak/pkg-plist b/databases/riak/pkg-plist
new file mode 100644
index 000000000000..85c203663bd8
--- /dev/null
+++ b/databases/riak/pkg-plist
@@ -0,0 +1,19 @@
+sbin/riak
+sbin/riak-admin
+sbin/riak-debug
+sbin/search-cmd
+man/man1/riak-admin.1.gz
+man/man1/riak-debug.1.gz
+man/man1/riak.1.gz
+man/man1/search-cmd.1.gz
+@sample %%ETCDIR%%/vm.args.sample
+@sample %%ETCDIR%%/app.config.sample
+@sample %%ETCDIR%%/cert.pem.sample
+@sample %%ETCDIR%%/key.pem.sample
+@dir %%RIAK_CONFDIR%%
+@owner %%USERS%%
+@group %%GROUPS%%
+@dir %%RIAK_DBDIR%%
+@dir %%RIAK_HOMEDIR%%
+@dir %%RIAK_LIBDIR%%
+@dir %%RIAK_LOGDIR%%