[riak] Initial commit (see rhbz #652682)

Peter Lemenkov peter at fedoraproject.org
Wed Aug 15 11:12:00 UTC 2012


commit cd85fcd7b41fcb4b201e63ec5d740db8e789f803
Author: Fedora Build <lemenkov at gmail.com>
Date:   Wed Aug 15 15:11:48 2012 +0400

    Initial commit (see rhbz #652682)
    
    Signed-off-by: Fedora Build <lemenkov at gmail.com>

 .gitignore                                         |    1 +
 ...-OTP-version-R15-to-allowed-version-regex.patch |   24 ++
 ...o-install-dependencies-Fedora-EPEL-specif.patch |   42 +++
 riak-0003-Rename-basho-patches-directory.patch     |   27 ++
 riak.init                                          |   94 +++++++
 riak.service                                       |   20 ++
 riak.spec                                          |  265 ++++++++++++++++++++
 riak.tmpfiles.conf                                 |    1 +
 sources                                            |    1 +
 9 files changed, 475 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..f724bf2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/basho-riak-riak-1.1.4-0-g95c5cb6.tar.gz
diff --git a/riak-0001-Add-OTP-version-R15-to-allowed-version-regex.patch b/riak-0001-Add-OTP-version-R15-to-allowed-version-regex.patch
new file mode 100644
index 0000000..2134249
--- /dev/null
+++ b/riak-0001-Add-OTP-version-R15-to-allowed-version-regex.patch
@@ -0,0 +1,24 @@
+From a877d803b1965115018587da220b1e12e0dbb014 Mon Sep 17 00:00:00 2001
+From: Jared Morrow <jared at basho.com>
+Date: Fri, 11 May 2012 11:27:19 -0600
+Subject: [PATCH 1/3] Add OTP version R15 to allowed version regex
+
+---
+ rebar.config | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rebar.config b/rebar.config
+index c220548..540ffb5 100644
+--- a/rebar.config
++++ b/rebar.config
+@@ -1,6 +1,6 @@
+ {sub_dirs, ["rel"]}.
+ 
+-{require_otp_vsn, "R14B0[234]"}.
++{require_otp_vsn, "R14B0[234]|R15"}.
+ 
+ {cover_enabled, true}.
+ 
+-- 
+1.7.11.2
+
diff --git a/riak-0002-Don-t-try-to-install-dependencies-Fedora-EPEL-specif.patch b/riak-0002-Don-t-try-to-install-dependencies-Fedora-EPEL-specif.patch
new file mode 100644
index 0000000..1f5ae32
--- /dev/null
+++ b/riak-0002-Don-t-try-to-install-dependencies-Fedora-EPEL-specif.patch
@@ -0,0 +1,42 @@
+From ea508be7c7422e91b4cff568e192068cb7745c44 Mon Sep 17 00:00:00 2001
+From: Fedora Build <lemenkov at gmail.com>
+Date: Fri, 10 Aug 2012 18:52:31 +0400
+Subject: [PATCH 2/3] Don't try to install dependencies (Fedora/EPEL-specific)
+
+Signed-off-by: Fedora Build <lemenkov at gmail.com>
+---
+ rebar.config       | 8 --------
+ rel/reltool.config | 1 -
+ 2 files changed, 9 deletions(-)
+
+diff --git a/rebar.config b/rebar.config
+index 540ffb5..7055a42 100644
+--- a/rebar.config
++++ b/rebar.config
+@@ -7,11 +7,3 @@
+ {lib_dirs, ["deps", "deps/riak_search/apps/"]}.
+ 
+ {erl_opts, [debug_info, fail_on_warning]}.
+-
+-{deps, [
+-       {cluster_info, "1.2.1", {git, "git://github.com/basho/cluster_info", {tag, "1.2.1"}}},
+-       {riak_kv, "1.1.4", {git, "git://github.com/basho/riak_kv", {tag, "1.1.4"}}},
+-       {riak_search, "1.1.2", {git, "git://github.com/basho/riak_search",
+-                                {tag, "1.1.4"}}},
+-       {riak_control, "0.1.0", {git, "git://github.com/basho/riak_control", {tag, "0.1.2"}}}
+-       ]}.
+diff --git a/rel/reltool.config b/rel/reltool.config
+index 66c367c..3b581ac 100644
+--- a/rel/reltool.config
++++ b/rel/reltool.config
+@@ -1,7 +1,6 @@
+ %% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*-
+ %% ex: ft=erlang ts=4 sw=4 et
+ {sys, [
+-       {lib_dirs, ["../deps", "../deps/riak_search/apps"]},
+        {rel, "riak", "1.1.4",
+         [
+          kernel,
+-- 
+1.7.11.2
+
diff --git a/riak-0003-Rename-basho-patches-directory.patch b/riak-0003-Rename-basho-patches-directory.patch
new file mode 100644
index 0000000..00fe680
--- /dev/null
+++ b/riak-0003-Rename-basho-patches-directory.patch
@@ -0,0 +1,27 @@
+From 1c884bf9e89ab974dea4cf4879b9f1d5d19ca8b9 Mon Sep 17 00:00:00 2001
+From: Fedora Build <lemenkov at gmail.com>
+Date: Mon, 13 Aug 2012 14:57:19 +0400
+Subject: [PATCH 3/3] Rename basho-patches directory
+
+Signed-off-by: Fedora Build <lemenkov at gmail.com>
+---
+ rel/reltool.config | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/rel/reltool.config b/rel/reltool.config
+index 3b581ac..afa2879 100644
+--- a/rel/reltool.config
++++ b/rel/reltool.config
+@@ -70,7 +70,7 @@
+            {template, "files/vm.args", "etc/vm.args"},
+            {template, "files/cert.pem", "etc/cert.pem"},
+            {template, "files/key.pem", "etc/key.pem"},
+-           {mkdir, "lib/basho-patches"},
+-           {copy, "../ebin/etop_txt.beam", "lib/basho-patches"}
++           {mkdir, "lib/riak-1.1.4/ebin"},
++           {copy, "../ebin/etop_txt.beam", "lib/riak-1.1.4/ebin"}
+           ]}.
+ 
+-- 
+1.7.11.2
+
diff --git a/riak.init b/riak.init
new file mode 100644
index 0000000..6c22be9
--- /dev/null
+++ b/riak.init
@@ -0,0 +1,94 @@
+#!/bin/bash
+#
+# Riak Distributed Data Store
+#
+# chkconfig: 2345 80 30
+# description: Riak is a distributed data store.
+# processname: beam 
+# config: /etc/riak/app.config
+# config: /etc/riak/vm.args
+#
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+DESC="a distributed key value store"
+NAME=riak
+DAEMON=/usr/bin/$NAME
+
+
+start() {
+    #Check if Riak is running
+    RETVAL=`su - riak -c "$DAEMON ping"`
+    [ "$RETVAL" = "pong" ] && echo "Riak is already running" && return 1
+
+    # Start daemons.
+    echo -n $"Starting Riak: "
+    su - riak -c "$DAEMON start" && success || failure $"$NAME start"
+    RETVAL=$?
+    [ $RETVAL -eq 0 ]
+    echo
+    return $RETVAL
+}
+
+stop() {
+    # Stop daemon.
+    echo -n $"Stopping Riak: "
+    RETVAL=`su - riak -c "$DAEMON ping"`
+    [ "$RETVAL" = "pong" ] && su - riak -c "$DAEMON stop 2>/dev/null 1>&2" 
+    sleep 2
+    RETVAL=`pidof beam.smp`
+    [ "$RETVAL" = "" ] && success && echo && return 0 || failure $"$NAME stop"
+    sleep 10
+    RETVAL=`pidof beam.smp`
+    [ "$RETVAL" = "" ] && success && echo && return 0 || failure $"$NAME failed to stop"
+    echo
+    return 1
+}
+
+reload() {
+    # Restart the VM without exiting the process
+    echo -n $"Reloading Riak: "
+    RETVAL=`su - riak -c "$DAEMON ping"`
+    [ "$RETVAL" = "pong" ] && su - riak -c "$DAEMON restart 2>/dev/null 1>&2" \
+        && success && echo && return 0 || failure $"$NAME restart" 
+    echo
+    return $RETVAL
+}
+
+status() {
+    RETVAL=`su - riak -c "$DAEMON ping"`
+    [ "$RETVAL" = "pong" ] && echo $"$NAME is running..." && return 0
+    echo $"$NAME is stopped"
+    return 3
+}
+
+# See how we were called.
+case "$1" in
+  start)
+        start
+        ;;
+  stop)
+        stop
+	;;
+  restart)
+        stop
+	start
+	;;
+  reload)
+	reload
+	;;
+  status)
+	status
+	;;
+  ping)
+        su - riak -c "$DAEMON ping" || exit $?
+        ;;
+  *)
+        echo $"Usage: $0 {start|stop|reload|restart|ping}"
+	exit 2
+esac
+
+exit $?
diff --git a/riak.service b/riak.service
new file mode 100644
index 0000000..691718b
--- /dev/null
+++ b/riak.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Riak Distributed Data Store
+After=network.target
+
+[Service]
+User=riak
+Group=riak
+Type=forking
+StandardOutput=journal
+StandardError=journal
+#Restart=always
+#StartLimitInterval=10
+#StartLimitBurst=5
+TimeoutStopSec=2
+ExecStart=/usr/bin/riak start
+ExecReload=/usr/bin/riak restart
+ExecStop=/usr/bin/riak stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/riak.spec b/riak.spec
new file mode 100644
index 0000000..3d95645
--- /dev/null
+++ b/riak.spec
@@ -0,0 +1,265 @@
+%global realname riak
+%global upstream basho
+%global debug_package %{nil}
+%global git_tag 95c5cb6
+%global patchnumber 0
+
+
+Name:		%{realname}
+Version:	1.1.4
+Release:	2%{?dist}
+Summary:	Dynamo-inspired key/value store
+Group:		Applications/Databases
+License:	ASL 2.0
+URL:		http://wiki.basho.com/Riak.html
+# wget --content-disposition https://github.com/basho/riak/tarball/riak-1.1.4
+Source0:	%{upstream}-%{realname}-%{realname}-%{version}-%{patchnumber}-g%{git_tag}.tar.gz
+Source1:	%{name}.tmpfiles.conf
+Source2:	%{name}.init
+Source3:	%{name}.service
+Patch1:		riak-0001-Add-OTP-version-R15-to-allowed-version-regex.patch
+Patch2:		riak-0002-Don-t-try-to-install-dependencies-Fedora-EPEL-specif.patch
+Patch3:		riak-0003-Rename-basho-patches-directory.patch
+BuildRequires:	erlang-rebar
+BuildRequires:	erlang-cluster_info
+BuildRequires:	erlang-eper
+BuildRequires:	erlang-riak_control
+BuildRequires:	erlang-riak_kv
+BuildRequires:	erlang-riak_search
+
+Requires:	erlang-cluster_info
+Requires:	erlang-eper
+Requires:	erlang-riak_control
+Requires:	erlang-riak_kv
+Requires:	erlang-riak_search
+# FIXME - I'll add luwak backend later
+#Requires:	erlang-luwak
+
+#Initscripts
+%if 0%{?fedora}
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
+%else
+Requires(post): chkconfig
+Requires(preun): chkconfig initscripts
+%endif
+
+# Users and groups
+Requires(pre): shadow-utils
+
+
+%description
+Riak is a Dynamo-inspired key/value store that scales predictably and easily.
+Riak also simplifies development by giving developers the ability to quickly
+prototype, test, and deploy their applications.
+
+A truly fault-tolerant system, Riak has no single point of failure. No machines
+are special or central in Riak, so developers and operations professionals can
+decide exactly how fault-tolerant they want and need their applications to be.
+
+
+%prep
+echo "WM " %{webmachinever}
+%setup -q -n %{upstream}-%{realname}-83ec281
+%patch1 -p1 -b .r15b
+%patch2 -p1 -b .nodeps
+%patch3 -p1 -b .basho-patches-rename
+
+gzip -d doc/man/man1/*.1.gz
+sed -i -e "s,\\\n,,g" doc/man/man1/riak-admin.1
+
+# Override the default vars.config with platform specific settings
+cat > rel/vars.config <<EOF
+% Platform-specific installation paths
+{platform_bin_dir,	"%{_bindir}"}.
+{platform_data_dir,	"%{_localstatedir}/lib/%{name}"}.
+{platform_etc_dir,	"%{_sysconfdir}/%{name}"}.
+{platform_lib_dir,	"%{_libdir}/%{name}"}.
+{platform_log_dir,	"%{_localstatedir}/log/%{name}"}.
+
+%%
+%% etc/app.config
+%%
+{web_ip,		"127.0.0.1"}.
+{web_port,		8098}.
+{handoff_port,		8099}.
+{pb_ip,			"127.0.0.1"}.
+{pb_port,		8087}.
+{ring_state_dir,	"%{_localstatedir}/lib/%{name}/ring"}.
+{bitcask_data_root,	"%{_localstatedir}/lib/%{name}/bitcask"}.
+{leveldb_data_root,	"%{_localstatedir}/lib/%{name}/leveldb"}.
+{sasl_error_log,	"%{_localstatedir}/log/%{name}/sasl-error.log"}.
+{sasl_log_dir,		"%{_localstatedir}/log/%{name}/sasl"}.
+{mapred_queue_dir,	"%{_localstatedir}/lib/%{name}/mr_queue"}.
+
+%% riak_search
+{merge_index_data_root,	"%{_localstatedir}/lib/%{name}/merge_index"}.
+
+%% Javascript VMs
+{map_js_vms,	8}.
+{reduce_js_vms,	6}.
+{hook_js_vms,	2}.
+
+%%
+%% etc/vm.args
+%%
+{node,		"riak at 127.0.0.1"}.
+{crash_dump,	"%{_localstatedir}/log/%{name}/erl_crash.dump"}.
+
+%%
+%% bin/riak
+%%
+{runner_script_dir,	"%{_bindir}"}.
+{runner_base_dir,	"%{_libdir}/%{name}"}.
+{runner_etc_dir,	"%{_sysconfdir}/%{name}"}.
+{runner_log_dir,	"%{_localstatedir}/log/%{name}"}.
+{pipe_dir,		"%{_localstatedir}/run/%{name}/"}.
+{runner_user,		"%{name}"}.
+EOF
+
+
+%build
+rebar compile generate -v
+
+
+%install
+# Install Erlang VM config files
+mkdir -p %{buildroot}%{_sysconfdir}/%{name}
+install -D -p -m 0644 rel/riak/etc/app.config %{buildroot}%{_sysconfdir}/%{name}/app.config
+install -D -p -m 0644 rel/riak/etc/vm.args %{buildroot}%{_sysconfdir}/%{name}/vm.args
+
+# Install init-script or systemd-service
+%if 0%{?fedora}
+install -D -p -m 644 %{SOURCE1} %{buildroot}/usr/lib/tmpfiles.d/%{name}.conf
+install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}.service
+%else
+install -D -p -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/%{name}
+%endif
+
+# Install runtime scripts
+install -p -m 0755 -D  rel/riak/bin/%{name} %{buildroot}%{_bindir}/%{name}
+install -p -m 0755 -D  rel/riak/bin/%{name}-admin %{buildroot}%{_bindir}/%{name}-admin
+install -p -m 0755 -D  rel/riak/bin/search-cmd %{buildroot}%{_bindir}/search-cmd
+
+# Install man-pages
+install -d %{buildroot}%{_mandir}/man1/
+install -p -m 0644 doc/man/man1/%{name}.1 %{buildroot}%{_mandir}/man1/
+install -p -m 0644 doc/man/man1/%{name}-admin.1 %{buildroot}%{_mandir}/man1/
+install -p -m 0644 doc/man/man1/search-cmd.1 %{buildroot}%{_mandir}/man1/
+
+# Install remaining Erlang files
+mkdir -p %{buildroot}%{_libdir}/erlang/lib/%{name}-%{version}/ebin
+install -p -m 0644 ebin/%{name}.app %{buildroot}%{_libdir}/erlang/lib/%{name}-%{version}/ebin/
+install -p -m 0644 ebin/etop_txt.beam %{buildroot}%{_libdir}/erlang/lib/%{name}-%{version}/ebin/
+
+# Make room for temporary files, logs, and data
+mkdir -p %{buildroot}/%{_localstatedir}/lib/%{name}/
+mkdir -p %{buildroot}/%{_localstatedir}/lib/%{name}/bitcask/
+mkdir -p %{buildroot}/%{_localstatedir}/lib/%{name}/dets/
+mkdir -p %{buildroot}/%{_localstatedir}/lib/%{name}/leveldb/
+mkdir -p %{buildroot}/%{_localstatedir}/lib/%{name}/merge_index/
+mkdir -p %{buildroot}/%{_localstatedir}/lib/%{name}/mr_queue/
+mkdir -p %{buildroot}/%{_localstatedir}/lib/%{name}/ring/
+mkdir -p %{buildroot}/%{_localstatedir}/log/%{name}/
+mkdir -p %{buildroot}/%{_localstatedir}/log/%{name}/sasl/
+mkdir -p %{buildroot}/%{_localstatedir}/run/%{name}/
+
+# Install Erlang release binary data
+mkdir -p %{buildroot}/%{_libdir}/%{name}/releases/%{version}/
+install -m 644 rel/riak/releases/RELEASES %{buildroot}/%{_libdir}/%{name}/releases/
+install -m 644 rel/riak/releases/start_erl.data %{buildroot}/%{_libdir}/%{name}/releases/
+install -m 644 rel/riak/releases/1.1.4/riak.boot %{buildroot}/%{_libdir}/%{name}/releases/%{version}/
+install -m 644 rel/riak/releases/1.1.4/riak.rel %{buildroot}/%{_libdir}/%{name}/releases/%{version}/
+install -m 644 rel/riak/releases/1.1.4/riak.script %{buildroot}/%{_libdir}/%{name}/releases/%{version}/
+install -m 644 rel/riak/releases/1.1.4/start_clean.boot %{buildroot}/%{_libdir}/%{name}/releases/%{version}/
+install -m 644 rel/riak/releases/1.1.4/start_clean.rel %{buildroot}/%{_libdir}/%{name}/releases/%{version}/
+install -m 644 rel/riak/releases/1.1.4/start_clean.script %{buildroot}/%{_libdir}/%{name}/releases/%{version}/
+
+# Install nodetool
+install -D -p -m 755 rel/riak/erts-5.9.1/bin/nodetool %{buildroot}/%{_libdir}/erlang/erts-5.9.1/bin/nodetool
+
+# Make compat symlinks
+cd %{buildroot}/%{_libdir}/%{name}
+ln -s %{_libdir}/erlang/lib lib
+ln -s %{_libdir}/erlang/erts-5.9.1 erts-5.9.1
+
+
+%pre
+getent group %{name} >/dev/null || groupadd -r %{name}
+getent passwd %{name} >/dev/null || \
+useradd -r -g %{name} -d %{_localstatedir}/run/%{name} -s /sbin/nologin \
+-c "Riak - a dynamo-inspired key/value store" %{name} 2>/dev/null || :
+
+
+%post
+%if 0%{?fedora}
+if [ $1 -eq 1 ] ; then
+    # Initial installation
+    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+fi
+%else
+/sbin/chkconfig --add %{name}
+%endif
+
+
+%preun
+%if 0%{?fedora}
+if [ $1 -eq 0 ] ; then
+    # Package removal, not upgrade
+    /bin/systemctl --no-reload disable %{name}.service > /dev/null 2>&1 || :
+    /bin/systemctl stop %{name}.service > /dev/null 2>&1 || :
+fi
+%else
+if [ $1 = 0 ]; then
+ /sbin/service %{name} stop > /dev/null 2>&1
+ /sbin/chkconfig --del %{name}
+fi
+%endif
+
+
+%files
+%doc doc/[abdr]* releasenotes/ LICENSE NOTICE README.org RELEASE-NOTES.org THANKS
+%if 0%{?fedora}
+/usr/lib/tmpfiles.d/%{name}.conf
+%{_unitdir}/%{name}.service
+%else
+%{_initrddir}/%{name}
+%endif
+%dir %{_sysconfdir}/%{name}
+%config(noreplace) %{_sysconfdir}/%{name}/app.config
+%config(noreplace) %{_sysconfdir}/%{name}/vm.args
+%{_bindir}/%{name}
+%{_bindir}/%{name}-admin
+%{_bindir}/search-cmd
+%dir %{_libdir}/erlang/lib/%{name}-%{version}
+%dir %{_libdir}/erlang/lib/%{name}-%{version}/ebin
+%{_libdir}/erlang/lib/%{name}-%{version}/ebin/%{name}.app
+%{_libdir}/erlang/lib/%{name}-%{version}/ebin/etop_txt.beam
+%{_mandir}/man1/%{name}.1.gz
+%{_mandir}/man1/%{name}-admin.1.gz
+%{_mandir}/man1/search-cmd.1.gz
+%{_libdir}/%{name}/
+%{_libdir}/erlang/erts-5.9.1/bin/nodetool
+%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/lib/%{name}/
+%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/lib/%{name}/bitcask/
+%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/lib/%{name}/dets/
+%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/lib/%{name}/leveldb/
+%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/lib/%{name}/merge_index/
+%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/lib/%{name}/mr_queue/
+%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/lib/%{name}/ring/
+%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/log/%{name}/
+%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/log/%{name}/sasl/
+%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/run/%{name}/
+
+
+%changelog
+* Tue Aug 14 2012 Peter Lemenkov <lemenkov at gmail.com> - 1.1.4-2
+- Fixed lots of packaging issues (thanks to Ankur Sinha for noticing them)
+
+* Fri Jul 20 2012 Peter Lemenkov <lemenkov at gmail.com> - 1.1.4-1
+- Ver. 1.1.4
+
+* Wed Oct 13 2010 Peter Lemenkov <lemenkov at gmail.com> - 0.13.0-1
+- Initial build
+
diff --git a/riak.tmpfiles.conf b/riak.tmpfiles.conf
new file mode 100644
index 0000000..0cb1e79
--- /dev/null
+++ b/riak.tmpfiles.conf
@@ -0,0 +1 @@
+d /var/run/riak 0755 riak riak
diff --git a/sources b/sources
index e69de29..406491d 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+5bfc5b77f520adc48eff426bc8f4db95  basho-riak-riak-1.1.4-0-g95c5cb6.tar.gz


More information about the scm-commits mailing list