diff --git a/.gitignore b/.gitignore index 1c7d39299fdb1c51e2502e9a420be7b47de2519b..9165f52aa357e8338c6baca5faf510291ef9ad55 100644 --- a/.gitignore +++ b/.gitignore @@ -62,6 +62,7 @@ third_party/luajit/src/lj_libdef.h third_party/luajit/src/lj_recdef.h third_party/luajit/src/lj_vm.s VERSION +!FreeBSD/databases/tarantool/Makefile src/00000000000000000001.snap doc/sphinx/_build/* diff --git a/FreeBSD/databases/tarantool/Makefile b/FreeBSD/databases/tarantool/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..436b5d41626ba63648536e62ecc31afe9403cea2 --- /dev/null +++ b/FreeBSD/databases/tarantool/Makefile @@ -0,0 +1,70 @@ +# Created by: Veniamin Gvozdikov <vg@FreeBSD.org> +# $FreeBSD$ + +PORTNAME= tarantool +PORTVERSION= 1.6.5 +CATEGORIES= databases +MASTER_SITES= http://tarantool.org/dist/master/ +DISTNAME= ${PORTNAME}-${PORTVERSION}-${TR_REV}-src + +MAINTAINER= vg@FreeBSD.org +COMMENT= High performance key/value storage server + +LICENSE= BSD2CLAUSE + +TR_REV= 212-g49781b3 +MAKE_JOBS_UNSAFE=yes +USES= cmake compiler:c++11-lang gmake perl5 readline +USE_GCC= 4.9+ +USE_LDCONFIG= yes +USE_RC_SUBR= ${PORTNAME} +SUB_FILES= pkg-message + +TT_DATADIR?= /var/db/tarantool +TT_RUNDIR?= /var/run/tarantool +TT_LOGDIR?= /var/log/tarantool + +CMAKE_ARGS= -DCMAKE_INSTALL_MANDIR=man \ + -DCMAKE_INSTALL_SYSCONFDIR=${ETCDIR} \ + -DCMAKE_LOCALSTATE_DIR=${DATADIR} \ + -DTARANTOOL_DATADIR="${TT_DATADIR}" + +USERS= tarantool +GROUPS= tarantool + +SUB_LIST+= PORTNAME=${PORTNAME} \ + TT_USER=${USERS} \ + TT_DATADIR=${TT_DATADIR} \ + TT_LOGDIR=${TT_LOGDIR} \ + TT_RUNDIR=${TT_RUNDIR} + +PLIST_SUB+= TT_USER=${USERS} \ + TT_GROUP=${GROUPS} \ + TT_LOGDIR=${TT_LOGDIR} \ + TT_DATADIR=${TT_DATADIR} \ + TT_RUNDIR=${TT_RUNDIR} + +OPTIONS_DEFINE= DEBUG +DEBUG_DESC= Enable debug + +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MDEBUG} +CMAKE_BUILD_TYPE= RelWithDebugInfo +CMAKE_ARGS+= -DENABLE_BACKTRACE=ON +.else +CMAKE_BUILD_TYPE= Rel +CMAKE_ARGS+= -DENABLE_BACKTRACE=OFF +.endif + +.if ${OSVERSION} < 900000 +BROKEN= Does not build on FreeBSD < 9.0 +.endif + +post-install: + ${MKDIR} ${STAGEDIR}${TT_LOGDIR} \ + ${STAGEDIR}${TT_DATADIR} \ + ${STAGEDIR}${TT_RUNDIR} \ + ${STAGEDIR}${ETCDIR}/instances.enabled + +.include <bsd.port.mk> diff --git a/FreeBSD/databases/tarantool/distinfo b/FreeBSD/databases/tarantool/distinfo index 4ff5f33476ccf4cf55003241a161cbb3021f623e..688970297f08d63de6c5f73b3b679bf9143dcd25 100644 --- a/FreeBSD/databases/tarantool/distinfo +++ b/FreeBSD/databases/tarantool/distinfo @@ -1,2 +1,2 @@ -SHA256 (tarantool-1.4.9-45-g2f7b3f9-src.tar.gz) = 45c37824c0f2cef8746523347ba727ced98e8c21eec17e11729d6ff38d1f7bbd -SIZE (tarantool-1.4.9-45-g2f7b3f9-src.tar.gz) = 2772012 +SHA256 (tarantool-1.6.5-212-g49781b3-src.tar.gz) = 922c38bfca523f27696ed64e6aaeb100224a92709057c567e840059188e109a0 +SIZE (tarantool-1.6.5-212-g49781b3-src.tar.gz) = 3671835 diff --git a/FreeBSD/databases/tarantool/files/pkg-message.in b/FreeBSD/databases/tarantool/files/pkg-message.in index fa50213a377e1ea244009551b0ba079bd887d9c9..1d5a808cd5b01e6c52b5770a89e112eba917d414 100644 --- a/FreeBSD/databases/tarantool/files/pkg-message.in +++ b/FreeBSD/databases/tarantool/files/pkg-message.in @@ -3,11 +3,12 @@ # # After install you'll need: # -# Edit example config: -# %%ETCDIR%%/tarantool.cfg.sample -# Init storage: -# %%PREFIX%%/bin/tarantool_box --init-storage \ -# -c %%ETCDIR%%/tarantool.cfg +# Configuration at /etc/rc.conf: +# +# * Enable tarantool on startup: +# tarantool_enable="YES" +# * Path to storage instances: +# tarantool_instances="%%ETCDIR%%/instances.enabled" # # ######################################################### diff --git a/FreeBSD/databases/tarantool/files/tarantool.in b/FreeBSD/databases/tarantool/files/tarantool.in old mode 100755 new mode 100644 index 993869385d8f8b87e9b468f2e4d713567635b955..98ea8dd888d33a52af8c5167676a0975f87b6117 --- a/FreeBSD/databases/tarantool/files/tarantool.in +++ b/FreeBSD/databases/tarantool/files/tarantool.in @@ -1,13 +1,13 @@ #!/bin/sh # -# $FreeBSD: databases/tarantool/files/tarantool.in 308708 2012-12-11 20:00:36Z rm $ +# $FreeBSD$ # PROVIDE: tarantool # REQUIRE: LOGIN # KEYWORD: shutdown # # tarantool_enable="YES" -# tarantool_config="" +# tarantool_instances="" # . /etc/rc.subr @@ -18,10 +18,38 @@ rcvar=tarantool_enable load_rc_config "$name" tarantool_enable=${tarantool_enable:-"NO"} -tarantool_config=${tarantool_config:-"%%ETCDIR%%/$name.cfg"} +tarantool_instances=${tarantool_instances:-"%%ETCDIR%%/instances.enabled"} -command="%%PREFIX%%/bin/tarantool_box" -command_args="--daemonize --config ${tarantool_config}" -pidfile="/var/run/$name.pid" +start_cmd="${name}_start" +stop_cmd="${name}_stop" +restart_cmd="${name}_restart" + +INSTANCES=$(find ${tarantool_instances} -type f -name '*.lua') +TDAEMON=%%PREFIX%%/bin/tarantool +TCTL=%%PREFIX%%/bin/tarantoolctl + +tarantool_start() +{ + echo "tarantool: Starting instances" + for inst in ${INSTANCES} + do + ${TDAEMON} ${TCTL} start $(basename ${inst} .lua) + done +} + +tarantool_stop() +{ + echo "tarantool: Stopping instances" + for inst in ${INSTANCES} + do + ${TDAEMON} ${TCTL} stop $(basename ${inst} .lua) + done +} + +tarantool_restart() +{ + tarantool_stop + tarantool_start +} run_rc_command "$1" diff --git a/FreeBSD/databases/tarantool/pkg-plist b/FreeBSD/databases/tarantool/pkg-plist index 5089168473c466bfaeb225194ed9c9f2de82d3eb..fd3258d46fd1a09d051b363f457031505e22d468 100644 --- a/FreeBSD/databases/tarantool/pkg-plist +++ b/FreeBSD/databases/tarantool/pkg-plist @@ -1,54 +1,18 @@ -bin/tarantool_box -bin/tarancheck -%%CLIENT%%bin/tarantool -etc/tarantool.cfg.sample -include/tarantool/tnt.h -include/tarantool/tnt_buf.h -include/tarantool/tnt_call.h -include/tarantool/tnt_delete.h -include/tarantool/tnt_dir.h -include/tarantool/tnt_enc.h -include/tarantool/tnt_insert.h -include/tarantool/tnt_io.h -include/tarantool/tnt_iob.h -include/tarantool/tnt_iter.h -include/tarantool/tnt_lex.h -include/tarantool/tnt_log.h -include/tarantool/tnt_mem.h -include/tarantool/tnt_net.h -include/tarantool/tnt_opt.h -include/tarantool/tnt_ping.h -include/tarantool/tnt_proto.h -include/tarantool/tnt_queue.h -include/tarantool/tnt_reply.h -include/tarantool/tnt_request.h -include/tarantool/tnt_rpl.h -include/tarantool/tnt_select.h -include/tarantool/tnt_snapshot.h -include/tarantool/tnt_sql.h -include/tarantool/tnt_stream.h -include/tarantool/tnt_tuple.h -include/tarantool/tnt_update.h -include/tarantool/tnt_utf8.h -include/tarantool/tnt_xlog.h -lib/libtarantoolnet.so.1.1 -lib/libtarantoolrpl.so.1 -lib/libtarantoolnet.a -lib/libtarantoolnet.so -lib/libtarantool.a -lib/libtarantoolnet.so.1 -lib/libtarantoolrpl.so -lib/libtarantoolsql.so.1.1 -lib/libtarantoolsql.a -lib/libtarantoolsql.so.1 -lib/libtarantoolrpl.so.1.1 -lib/libtarantool.so.1 -lib/libtarantoolsql.so -lib/libtarantool.so.1.1 -lib/libtarantoolrpl.a -lib/libtarantool.so -%%DOCSDIR%%/README.md -%%DOCSDIR%%/box-protocol.txt -%%DOCSDIR%%/LICENSE -@dirrm %%DOCSDIR%% -@dirrm include/tarantool +bin/tarantool +bin/tarantoolctl +%%ETCDIR%%/default/tarantool +include/tarantool/lauxlib.h +include/tarantool/lua.h +include/tarantool/lua.hpp +include/tarantool/luaconf.h +include/tarantool/luajit.h +include/tarantool/lualib.h +include/tarantool/tarantool.h +man/man1/tarantool.1.gz +man/man1/tarantoolctl.1.gz +%%PORTDOCS%%%%DOCSDIR%%/LICENSE +%%PORTDOCS%%%%DOCSDIR%%/README.md +@dir %%ETCDIR%%/instances.enabled +@dir(%%TT_USER%%,%%TT_GROUP%%,) %%TT_DATADIR%% +@dir(%%TT_USER%%,%%TT_GROUP%%,) %%TT_LOGDIR%% +@dir(%%TT_USER%%,%%TT_GROUP%%,) %%TT_RUNDIR%% diff --git a/extra/dist/CMakeLists.txt b/extra/dist/CMakeLists.txt index 848aaa80612ba514aad94639b19125eefbbbe3a5..23948b4adaeee90841f18de92369e7a470453fb9 100644 --- a/extra/dist/CMakeLists.txt +++ b/extra/dist/CMakeLists.txt @@ -1,6 +1,13 @@ # Scripts for a tarantoolctl packaging set(SYSV_INITD_PATH ${CMAKE_INSTALL_LIBDIR}/tarantool/tarantool.init) +# Default path to data in default/tarantool +if (NOT TARANTOOL_DATADIR) + set(TARANTOOL_DATADIR "/var/lib/tarantool") +endif() +message (STATUS "TARANTOOL_DATADIR: ${TARANTOOL_DATADIR}") + configure_file("tarantool.service.in" "tarantool.service") +configure_file(default/tarantool.in default/tarantool) if (ENABLE_RPM) # chmod +x 655 diff --git a/extra/dist/default/tarantool b/extra/dist/default/tarantool deleted file mode 100644 index a861bdf5f135e95405a28eab718517f5992537d6..0000000000000000000000000000000000000000 --- a/extra/dist/default/tarantool +++ /dev/null @@ -1,13 +0,0 @@ --- Options for Tarantool -default_cfg = { - pid_file = "/var/run/tarantool", -- will become pid_file .. instance .. '.pid' - wal_dir = "/var/lib/tarantool", -- will become wal_dir/instance/ - snap_dir = "/var/lib/tarantool", -- snap_dir/instance/ - sophia_dir = "/var/lib/tarantool", -- will become sophia_dir/sophia/instance/ - logger = "/var/log/tarantool", -- logger/instance .. '.log' - username = "tarantool", -} - -instance_dir = "/etc/tarantool/instances.enabled" - --- vim: set ft=lua : diff --git a/extra/dist/default/tarantool.in b/extra/dist/default/tarantool.in new file mode 100644 index 0000000000000000000000000000000000000000..a2220088493e0e5d3f7aab85b0f79d9ed3515c30 --- /dev/null +++ b/extra/dist/default/tarantool.in @@ -0,0 +1,13 @@ +-- Options for Tarantool +default_cfg = { + pid_file = "/var/run/tarantool", -- will become pid_file .. instance .. '.pid' + wal_dir = "@TARANTOOL_DATADIR@", -- will become wal_dir/instance/ + snap_dir = "@TARANTOOL_DATADIR@", -- snap_dir/instance/ + sophia_dir = "@TARANTOOL_DATADIR@", -- will become sophia_dir/sophia/instance/ + logger = "/var/log/tarantool", -- logger/instance .. '.log' + username = "tarantool", +} + +instance_dir = "@CMAKE_INSTALL_SYSCONFDIR@/tarantool/instances.enabled" + +-- vim: set ft=lua : diff --git a/extra/dist/tarantoolctl b/extra/dist/tarantoolctl index 9c97ab617fd016f50facdd5fa52f9ce81db6f522..ef78b4df4a4d0f178992778638030b7effd28a11 100755 --- a/extra/dist/tarantoolctl +++ b/extra/dist/tarantoolctl @@ -220,7 +220,7 @@ local function find_default_file() local config_list = { '/etc/sysconfig/tarantool', '/etc/default/tarantool', - '/usr/local/etc/tarantool/tarantool', + '/usr/local/etc/tarantool/default/tarantool', } for _, c in pairs(config_list) do if fio.stat(c) then