[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