From 82227773e91290846f075e6f80198e6bb5fe3a95 Mon Sep 17 00:00:00 2001
From: Veniamin Gvozdikov <vgvozdikov@tarantool.org>
Date: Mon, 6 Jul 2015 21:57:17 +0300
Subject: [PATCH] Updated FreeBSD ports files

---
 .gitignore                                    |  1 +
 FreeBSD/databases/tarantool/Makefile          | 43 ++++++++++++
 FreeBSD/databases/tarantool/distinfo          |  4 +-
 .../databases/tarantool/files/pkg-message.in  | 14 ++--
 .../databases/tarantool/files/tarantool.in    | 30 +++++++-
 FreeBSD/databases/tarantool/pkg-plist         | 68 ++++---------------
 6 files changed, 97 insertions(+), 63 deletions(-)
 create mode 100644 FreeBSD/databases/tarantool/Makefile

diff --git a/.gitignore b/.gitignore
index 1c7d39299f..9165f52aa3 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 0000000000..983586be85
--- /dev/null
+++ b/FreeBSD/databases/tarantool/Makefile
@@ -0,0 +1,43 @@
+# 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
+CMAKE_ARGS=	-DCMAKE_INSTALL_MANDIR=man \
+		-DCMAKE_INSTALL_SYSCONFDIR=${ETCDIR} \
+		-DCMAKE_LOCALSTATE_DIR=${DATADIR}
+
+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
+
+.include <bsd.port.mk>
diff --git a/FreeBSD/databases/tarantool/distinfo b/FreeBSD/databases/tarantool/distinfo
index 4ff5f33476..688970297f 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 fa50213a37..c793ccc58b 100644
--- a/FreeBSD/databases/tarantool/files/pkg-message.in
+++ b/FreeBSD/databases/tarantool/files/pkg-message.in
@@ -3,11 +3,15 @@
 #
 #        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"
+#   * Change config (Default %%ETCDIR%%/default/tarantool):
+#      tarantool_config="%%ETCDIR%%/default/tarantool"
+#   * Path to storage, depended by option work_dir at:
+#     %%ETCDIR%%/default/tarantool
+#      tarantool_data="/var/db/tarantool"
 #
 #
 #########################################################
diff --git a/FreeBSD/databases/tarantool/files/tarantool.in b/FreeBSD/databases/tarantool/files/tarantool.in
index 993869385d..12500db02a 100755
--- a/FreeBSD/databases/tarantool/files/tarantool.in
+++ b/FreeBSD/databases/tarantool/files/tarantool.in
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $FreeBSD: databases/tarantool/files/tarantool.in 308708 2012-12-11 20:00:36Z rm $
+# $FreeBSD$
 
 # PROVIDE: tarantool
 # REQUIRE: LOGIN
@@ -8,6 +8,7 @@
 #
 # tarantool_enable="YES"
 # tarantool_config=""
+# tarantool_data="/var/db/tarantool"
 #
 
 . /etc/rc.subr
@@ -19,9 +20,34 @@ load_rc_config "$name"
 
 tarantool_enable=${tarantool_enable:-"NO"}
 tarantool_config=${tarantool_config:-"%%ETCDIR%%/$name.cfg"}
+tarantool_data=${tarantool_data:-"/var/db/tarantool"}
 
 command="%%PREFIX%%/bin/tarantool_box"
-command_args="--daemonize --config ${tarantool_config}"
+command_args="--config=${tarantool_config} --background"
 pidfile="/var/run/$name.pid"
 
+start_precmd="${name}_prestart"
+
+tarantool_prestart()
+{
+	if ! [ -d ${tarantool_data} ]
+	then
+		eval mkdir -p ${tarantool_data}
+	fi
+
+	if ! [ -f "${tarantool_data}/00000000000000000001.snap" ]
+	then
+		if ! [ -f ${tarantool_config} ]
+		then
+			echo "===> Install default config file."
+			eval cp "%%ETCDIR%%/tarantool.cfg.sample" ${tarantool_config}
+			echo "===> Install default snapshot."
+			eval cp "%%DATADIR%%/00000000000000000001.snap" ${tarantool_data}
+		else
+			echo "===> Init tarantool storage by ${tarantool_config}"
+			eval ${command} --config=${tarantool_config} --init-storage
+		fi
+	fi
+}
+
 run_rc_command "$1"
diff --git a/FreeBSD/databases/tarantool/pkg-plist b/FreeBSD/databases/tarantool/pkg-plist
index 5089168473..4e325383e4 100644
--- a/FreeBSD/databases/tarantool/pkg-plist
+++ b/FreeBSD/databases/tarantool/pkg-plist
@@ -1,54 +1,14 @@
-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
-- 
GitLab