5 changed files with 371 additions and 0 deletions
@ -0,0 +1,56 @@
|
||||
Index: _build/default/lib/eleveldb/c_src/build_deps.sh
|
||||
--- _build/default/lib/eleveldb/c_src/build_deps.sh.orig 2016-07-20 01:31:35.000000000 +0200
|
||||
+++ _build/default/lib/eleveldb/c_src/build_deps.sh 2017-12-26 00:55:46.772790000 +0100
|
||||
@@ -67,7 +67,8 @@
|
||||
*)
|
||||
if [ ! -d snappy-$SNAPPY_VSN ]; then
|
||||
tar -xzf snappy-$SNAPPY_VSN.tar.gz
|
||||
- (cd snappy-$SNAPPY_VSN && ./configure --prefix=$BASEDIR/system --libdir=$BASEDIR/system/lib --with-pic)
|
||||
+ patch -d snappy-$SNAPPY_VSN <snappy.patch
|
||||
+ (cd snappy-$SNAPPY_VSN && ./configure --prefix=$BASEDIR/system --libdir=$BASEDIR/system/lib --with-pic --disable-shared)
|
||||
fi
|
||||
|
||||
if [ ! -f system/lib/libsnappy.a ]; then
|
||||
Index: _build/default/lib/eleveldb/c_src/snappy.patch
|
||||
--- _build/default/lib/eleveldb/c_src/snappy.patch.orig 2017-12-26 00:55:46.772938000 +0100
|
||||
+++ _build/default/lib/eleveldb/c_src/snappy.patch 2017-12-26 00:55:46.772923000 +0100
|
||||
@@ -0,0 +1,14 @@
|
||||
+Index: Makefile.in
|
||||
+--- Makefile.in.orig 2011-03-18 18:15:18.000000000 +0100
|
||||
++++ Makefile.in 2011-03-23 19:37:27.000000000 +0100
|
||||
+@@ -37,8 +37,8 @@
|
||||
+ POST_UNINSTALL = :
|
||||
+ build_triplet = @build@
|
||||
+ host_triplet = @host@
|
||||
+-TESTS = snappy_unittest$(EXEEXT)
|
||||
+-noinst_PROGRAMS = $(am__EXEEXT_1)
|
||||
++TESTS =
|
||||
++noinst_PROGRAMS =
|
||||
+ subdir = .
|
||||
+ DIST_COMMON = README $(am__configure_deps) $(dist_doc_DATA) \
|
||||
+ $(include_HEADERS) $(noinst_HEADERS) $(srcdir)/Makefile.am \
|
||||
Index: _build/default/lib/mcache/rebar.config
|
||||
--- _build/default/lib/mcache/rebar.config.orig 2017-08-08 18:05:48.000000000 +0200
|
||||
+++ _build/default/lib/mcache/rebar.config 2017-12-26 00:55:46.773029000 +0100
|
||||
@@ -21,7 +21,7 @@
|
||||
{post, [{compile, {pc, compile}}]}
|
||||
]}.
|
||||
|
||||
-%{port_env, [{"CFLAGS", "$CFLAGS -g3 -std=c99 -Werror"}]}.
|
||||
+%{port_env, [{"CFLAGS", "$CFLAGS -g3 -std=c99"}]}.
|
||||
{port_env, [{"CFLAGS", "$CFLAGS -g3 -std=c99"}]}.
|
||||
|
||||
{port_specs, [
|
||||
Index: _build/default/lib/ranch/erlang.mk
|
||||
--- _build/default/lib/ranch/erlang.mk.orig 2015-07-02 16:06:33.000000000 +0200
|
||||
+++ _build/default/lib/ranch/erlang.mk 2017-12-26 00:58:30.288875000 +0100
|
||||
@@ -206,8 +206,7 @@
|
||||
|
||||
# Configuration.
|
||||
|
||||
-ERLC_OPTS ?= -Werror +debug_info +warn_export_all +warn_export_vars \
|
||||
- +warn_shadow_vars +warn_obsolete_guard # +bin_opt_info +warn_missing_spec
|
||||
+ERLC_OPTS ?= +debug_info
|
||||
COMPILE_FIRST ?=
|
||||
COMPILE_FIRST_PATHS = $(addprefix src/,$(addsuffix .erl,$(COMPILE_FIRST)))
|
||||
|
@ -0,0 +1,158 @@
|
||||
## |
||||
## dalmatinerdb.spec -- OpenPKG RPM Package Specification |
||||
## Copyright (c) 2000-2017 OpenPKG Foundation e.V. <http://openpkg.net/> |
||||
## |
||||
## Permission to use, copy, modify, and distribute this software for |
||||
## any purpose with or without fee is hereby granted, provided that |
||||
## the above copyright notice and this permission notice appear in all |
||||
## copies. |
||||
## |
||||
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
||||
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
||||
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
||||
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
||||
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
||||
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
||||
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
||||
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
||||
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
## SUCH DAMAGE. |
||||
## |
||||
|
||||
# package version |
||||
%define V_opkg 0.3.3 |
||||
%define V_dist 20171226 |
||||
|
||||
# package information |
||||
Name: dalmatinerdb |
||||
Summary: Distributed Time-Series Database |
||||
URL: http://dalmatinerdb.io/ |
||||
Vendor: Heinz N. Gies |
||||
Packager: OpenPKG Foundation e.V. |
||||
Distribution: OpenPKG Community |
||||
Class: EVAL |
||||
Group: Database |
||||
License: MIT |
||||
Version: %{V_opkg}.%{V_dist} |
||||
Release: 20171226 |
||||
|
||||
# list of sources |
||||
Source0: http://download.openpkg.org/components/versioned/dalmatinerdb/dalmatinerdb-%{V_dist}.tar.xz |
||||
Source1: rc.dalmatinerdb |
||||
Source2: ddb.conf |
||||
Source3: ddb-rules.ot |
||||
Patch0: dalmatinerdb.patch |
||||
|
||||
# build information |
||||
BuildPreReq: OpenPKG, openpkg >= 20160101, erlang19, gcc, gcc::with_cxx = yes |
||||
PreReq: OpenPKG, openpkg >= 20160101 |
||||
|
||||
%description |
||||
DalmatinerDB is a distributed Time-Series/Metric Database based on |
||||
the Riak Core platform and Erlang. It provides: a highly optimized |
||||
network protocol, sequential reads/writes for metrics and a |
||||
client-server model that takes as much load from the actual store as |
||||
possible. |
||||
|
||||
%track |
||||
prog dalmatinerdb:release = { |
||||
version = %{V_opkg} |
||||
url = https://github.com/dalmatinerdb/dalmatinerdb/releases |
||||
regex = (__VER__)\.tar\.gz |
||||
} |
||||
prog dalmatinerdb:snapshot = { |
||||
version = %{V_dist} |
||||
url = http://download.openpkg.org/components/versioned/dalmatinerdb/ |
||||
regex = dalmatinerdb-(__VER__)\.tar\.xz |
||||
} |
||||
|
||||
%prep |
||||
%setup -q -n dalmatinerdb |
||||
%patch -p0 |
||||
|
||||
%build |
||||
# build program |
||||
export CC="%{l_cc}" |
||||
export CXX="%{l_cxx}" |
||||
export CFLAGS="%{l_cflags -O} -Wno-unused-function -Wno-maybe-uninitialized" |
||||
export CXXFLAGS="%{l_cxxflags -O} -Wno-unused-function -Wno-maybe-uninitialized" |
||||
export CPPFLAGS="%{l_cppflags}" |
||||
export LDFLAGS="%{l_ldflags}" |
||||
export PATH=%{l_prefix}/lib/erlang19/erlang/bin:$PATH |
||||
export HOME=`pwd` |
||||
./rebar3 as smartos release |
||||
|
||||
%install |
||||
# create installation hierarchy |
||||
%{l_shtool} mkdir -f -p -m 755 \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/sbin \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/etc/dalmatinerdb \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/lib/dalmatinerdb \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/var/dalmatinerdb/db \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/var/dalmatinerdb/log \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/var/dalmatinerdb/run |
||||
|
||||
# install program |
||||
rm -rf _build/smartos/rel/ddb/lib/*/c_src |
||||
cp -rp _build/smartos/rel/ddb/* \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/lib/dalmatinerdb/ |
||||
for prog in ddb ddb-admin; do |
||||
( echo "#!/bin/sh" |
||||
echo "RUNNER_USER=\"\`id -u -n\`\"" |
||||
echo "export RUNNER_USER" |
||||
echo "RUNNER_ETC_DIR=%{l_prefix}/etc/dalmatinerdb" |
||||
echo "export RUNNER_ETC_DIR" |
||||
echo "RUNNER_LOG_DIR=%{l_prefix}/var/dalmatinerdb/log" |
||||
echo "export RUNNER_LOG_DIR" |
||||
echo "RUNNER_GEN_DIR=%{l_prefix}/var/dalmatinerdb/db" |
||||
echo "export RUNNER_GEN_DIR" |
||||
echo "exec %{l_prefix}/lib/dalmatinerdb/bin/$prog \${1+\"\$@\"}" |
||||
) >$RPM_BUILD_ROOT%{l_prefix}/sbin/$prog |
||||
chmod 755 $RPM_BUILD_ROOT%{l_prefix}/sbin/$prog |
||||
done |
||||
|
||||
# install default configuration |
||||
%{l_shtool} install -c -m 644 %{l_value -s -a} \ |
||||
%{SOURCE ddb.conf} \ |
||||
%{SOURCE ddb-rules.ot} \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/etc/dalmatinerdb/ |
||||
rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/dalmatinerdb/etc/ddb.conf |
||||
ln -s ../../../etc/dalmatinerdb/ddb.conf \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/lib/dalmatinerdb/etc/ |
||||
|
||||
# install run-command script |
||||
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
||||
%{SOURCE rc.dalmatinerdb} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ |
||||
|
||||
# determine installation files |
||||
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ |
||||
%{l_files_std} \ |
||||
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/dalmatinerdb' \ |
||||
'%config %attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/dalmatinerdb/*' \ |
||||
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/dalmatinerdb/*' |
||||
|
||||
%files -f files |
||||
|
||||
%clean |
||||
|
||||
%post |
||||
if [ $1 -eq 2 ]; then |
||||
# after upgrade, restart service |
||||
eval `%{l_rc} dalmatinerdb status 2>/dev/null` |
||||
[ ".$dalmatinerdb_active" = .yes ] && %{l_rc} dalmatinerdb restart |
||||
fi |
||||
exit 0 |
||||
|
||||
%preun |
||||
if [ $1 -eq 0 ]; then |
||||
# before erase, stop service and remove log files |
||||
%{l_rc} dalmatinerdb stop 2>/dev/null |
||||
rm -rf $RPM_INSTALL_PREFIX/var/dalmatinerdb/log/* >/dev/null 2>&1 || true |
||||
rm -rf $RPM_INSTALL_PREFIX/var/dalmatinerdb/run/* >/dev/null 2>&1 || true |
||||
rm -rf $RPM_INSTALL_PREFIX/var/dalmatinerdb/db/* >/dev/null 2>&1 || true |
||||
fi |
||||
exit 0 |
||||
|
@ -0,0 +1,98 @@
|
||||
## |
||||
## ddb.conf -- DalmatinerDB Server Configuration |
||||
## |
||||
|
||||
tcp_port = 5555 |
||||
tcp_listeners = 100 |
||||
tcp_max_connections = 1024 |
||||
tcp.max_batch_size = 500 |
||||
|
||||
async_workers = 5 |
||||
|
||||
handoff_max_chunk_size = 1KB |
||||
points_per_file = 604800 |
||||
lifetime = infinity |
||||
mstore.max_files = 2 |
||||
vacuum_interval = 1h |
||||
|
||||
n = 1 |
||||
r = 1 |
||||
w = 1 |
||||
|
||||
schema_dir = @l_prefix@/lib/dalmatinerdb/share/schema |
||||
self_monitor = on |
||||
metrics.transport_compression = snappy |
||||
|
||||
read_repair.delay = 1m |
||||
read_repair.partial_read_repair = on |
||||
|
||||
io.max_async = 20 |
||||
io.timeout = 30s |
||||
io.parallel_reads = off |
||||
io.parallel_reads.queue_size = 5 |
||||
io.parallel_reads.min_size = 1000 |
||||
io.parallel_reads.queue_strategy = fifo |
||||
|
||||
vnode.cache.size = 10MB |
||||
vnode.cache.buckets = 128 |
||||
vnode.cache.initial_entries = 2 |
||||
vnode.cache.initial_data = 32 |
||||
vnode.cache.age_cycle = 1000000 |
||||
vnode.cache.max_gap = 10 |
||||
|
||||
nodename = dalmatinerdb@127.0.0.1 |
||||
distributed_cookie = erlang |
||||
|
||||
erlang.async_threads = 64 |
||||
erlang.max_ports = 65536 |
||||
|
||||
anti_entropy = on |
||||
|
||||
anti_entropy.build_limit.number = 1 |
||||
anti_entropy.build_limit.per_timespan = 1h |
||||
anti_entropy.expire = 1w |
||||
anti_entropy.concurrency = 2 |
||||
anti_entropy.tick = 15s |
||||
anti_entropy.data_dir = @l_prefix@/var/dalmatinerdb/db/anti_entropy |
||||
anti_entropy.total_leveldb_mem_percent = 80 |
||||
anti_entropy.bloomfilter = on |
||||
|
||||
ring_size = 64 |
||||
transfer_limit = 2 |
||||
|
||||
#ssl.certfile = $(platform_etc_dir)/cert.pem |
||||
#ssl.keyfile = $(platform_etc_dir)/key.pem |
||||
#ssl.cacertfile = $(platform_etc_dir)/cacertfile.pem |
||||
|
||||
handoff.ip = 127.0.0.1 |
||||
handoff.inactivity_timeout = 1m |
||||
dtrace = off |
||||
|
||||
platform_etc_dir = @l_prefix@/etc/dalmatinerdb |
||||
platform_bin_dir = @l_prefix@/lib/dalmatinerdb/bin |
||||
platform_lib_dir = @l_prefix@/lib/dalmatinerdb/lib |
||||
platform_data_dir = @l_prefix@/var/dalmatinerdb/db |
||||
platform_log_dir = @l_prefix@/var/dalmatinerdb/log |
||||
|
||||
strong_consistency = on |
||||
worker.queue_strategy = fifo |
||||
|
||||
log.service = dalmatinerdb |
||||
log.console = file |
||||
log.console.level = info |
||||
log.console.file = @l_prefix@/var/dalmatinerdb/log/ddb.console.log |
||||
log.error.file = @l_prefix@/var/dalmatinerdb/log/ddb.error.log |
||||
log.syslog = off |
||||
log.error.redirect = on |
||||
log.error.messages_per_second = 100 |
||||
|
||||
otters.batch_interval = 100ms |
||||
otters.zapkin_url = http://127.0.0.1:9411/api/v1/spans |
||||
otters.host = 127.0.0.1:0 |
||||
otters.service = dalmatinerdb |
||||
otters.add_service_to_log = off |
||||
otters.add_service_to_tags = off |
||||
otters.default_key = lc |
||||
otters.default_value = v |
||||
otters.filter = @l_prefix@/etc/dalmatinerdb/ddb-rules.ot |
||||
|
@ -0,0 +1,56 @@
|
||||
#!@l_prefix@/bin/openpkg rc |
||||
## |
||||
## rc.dalmatinerdb -- Run-Commands |
||||
## |
||||
|
||||
%config |
||||
dalmatinerdb_enable="$openpkg_rc_def" |
||||
dalmatinerdb_flags="" |
||||
dalmatinerdb_log_prolog="true" |
||||
dalmatinerdb_log_epilog="true" |
||||
dalmatinerdb_log_numfiles="10" |
||||
dalmatinerdb_log_minsize="1M" |
||||
dalmatinerdb_log_complevel="9" |
||||
|
||||
%common |
||||
dalmatinerdb_pidfile="@l_prefix@/var/dalmatinerdb/run/dalmatinerdb.pid" |
||||
dalmatinerdb_logfile="@l_prefix@/var/dalmatinerdb/log/dalmatinerdb.console.log" |
||||
dalmatinerdb_signal () { |
||||
[ -f $dalmatinerdb_pidfile ] && kill -$1 `cat $dalmatinerdb_pidfile` |
||||
} |
||||
|
||||
%status -u @l_rusr@ -o |
||||
dalmatinerdb_usable="no" |
||||
dalmatinerdb_active="no" |
||||
rcService nats-board enable yes && \ |
||||
dalmatinerdb_signal 0 && dalmatinerdb_active="yes" |
||||
echo "dalmatinerdb_enable=\"$dalmatinerdb_enable\"" |
||||
echo "dalmatinerdb_usable=\"$dalmatinerdb_usable\"" |
||||
echo "dalmatinerdb_active=\"$dalmatinerdb_active\"" |
||||
|
||||
%start -u @l_rusr@ |
||||
rcService dalmatinerdb enable yes || exit 0 |
||||
rcService dalmatinerdb active yes && exit 0 |
||||
@l_prefix@/sbin/ddb start $dalmatinerdb_flags |
||||
@l_prefix@/sbin/ddb-admin wait-for-service metric |
||||
@l_prefix@/sbin/ddb-admin wait-for-service even |
||||
|
||||
%stop -u @l_rusr@ |
||||
rcService dalmatinerdb enable yes || exit 0 |
||||
rcService dalmatinerdb active no && exit 0 |
||||
@l_prefix@/sbin/ddb stop |
||||
|
||||
%restart -u @l_rusr@ |
||||
rcService dalmatinerdb enable yes || exit 0 |
||||
rcService dalmatinerdb active no && exit 0 |
||||
@l_prefix@/sbin/ddb restart |
||||
|
||||
%daily -u @l_rusr@ |
||||
rcService dalmatinerdb enable yes || exit 0 |
||||
shtool rotate -f \ |
||||
-n ${dalmatinerdb_log_numfiles} -s ${dalmatinerdb_log_minsize} -d \ |
||||
-z ${dalmatinerdb_log_complevel} -m 664 -o @l_rusr@ -g @l_rgrp@ \ |
||||
-P "${dalmatinerdb_log_prolog}" \ |
||||
-E "${dalmatinerdb_log_epilog}; rc dalmatinerdb restart" \ |
||||
$dalmatinerdb_logfile |
||||
|
Loading…
Reference in new issue