Browse Source

new package

master
parent
commit
cdbffee55a
  1. 56
      dalmatinerdb/dalmatinerdb.patch
  2. 158
      dalmatinerdb/dalmatinerdb.spec
  3. 3
      dalmatinerdb/ddb-rules.ot
  4. 98
      dalmatinerdb/ddb.conf
  5. 56
      dalmatinerdb/rc.dalmatinerdb

56
dalmatinerdb/dalmatinerdb.patch

@ -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)))

158
dalmatinerdb/dalmatinerdb.spec

@ -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

3
dalmatinerdb/ddb-rules.ot

@ -0,0 +1,3 @@
none() -> drop.

98
dalmatinerdb/ddb.conf

@ -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

56
dalmatinerdb/rc.dalmatinerdb

@ -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…
Cancel
Save