git: 8dbbacc797c9 - main - databases/tarantool: Update to 3.0.0

From: Gleb Popov <arrowd_at_FreeBSD.org>
Date: Fri, 29 Dec 2023 20:11:10 UTC
The branch main has been updated by arrowd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8dbbacc797c9416640300b22cb5694a0338d3c40

commit 8dbbacc797c9416640300b22cb5694a0338d3c40
Author:     Pavel Balaev <mail@void.so>
AuthorDate: 2023-12-29 11:45:29 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2023-12-29 20:10:53 +0000

    databases/tarantool: Update to 3.0.0
    
    New major release:
    https://github.com/tarantool/tarantool/releases/tag/3.0.0
    
    Signed-off-by: Pavel Balaev <mail@void.so>
---
 databases/tarantool/Makefile                       |  60 +++++++++++
 databases/tarantool/distinfo                       |   3 +
 .../tarantool/files/patch-include-order.cmake      |  11 ++
 ...patch-third_party-luajit-cmake-SetVersion.cmake |  11 ++
 databases/tarantool/files/pkg-message.in           |  14 +++
 databases/tarantool/files/tarantool.in             |  53 ++++++++++
 databases/tarantool/pkg-descr                      |  16 +++
 databases/tarantool/pkg-plist                      | 111 +++++++++++++++++++++
 databases/tarantool2/Makefile                      |   2 +
 9 files changed, 281 insertions(+)

diff --git a/databases/tarantool/Makefile b/databases/tarantool/Makefile
new file mode 100644
index 000000000000..733736c83303
--- /dev/null
+++ b/databases/tarantool/Makefile
@@ -0,0 +1,60 @@
+PORTNAME=	tarantool
+PORTVERSION=	3.0.0
+CATEGORIES=	databases
+MASTER_SITES=	https://download.tarantool.org/tarantool/src/
+
+MAINTAINER=	balaev@tarantool.org
+COMMENT=	NoSQL database running in a Lua application server
+WWW=		https://tarantool.io/
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+NOT_FOR_ARCHS=		armv6 i386 powerpc64 sparc64
+NOT_FOR_ARCHS_REASON=	fails to build: Unsupported architecture
+
+BUILD_DEPENDS=	gsed:textproc/gsed \
+		msgpuck>=2.0_6:devel/msgpuck \
+		curl>=8.4.0:ftp/curl
+LIB_DEPENDS=	libcurl.so:ftp/curl \
+		libicui18n.so:devel/icu \
+		libmsgpuck.so:devel/msgpuck \
+		libyaml.so:textproc/libyaml \
+		libzstd.so:archivers/zstd
+
+USES=		cmake:noninja compiler:c++11-lang cpe gettext-runtime gmake iconv perl5 readline ssl
+USE_PERL5=	build
+
+CONFLICTS_INSTALL=	tarantool2
+
+BINARY_ALIAS=	sed=${LOCALBASE}/bin/gsed
+CMAKE_ARGS=	-DCMAKE_INSTALL_FULL_SYSCONFDIR=${ETCDIR} \
+		-DCMAKE_INSTALL_LOCALSTATEDIR=/var \
+		-DCMAKE_INSTALL_MANDIR=${PREFIX}/share/man
+CMAKE_OFF=	ENABLE_BUNDLED_LIBCURL \
+		ENABLE_BUNDLED_LIBYAML \
+		ENABLE_BUNDLED_MSGPUCK \
+		ENABLE_BUNDLED_ZSTD
+CMAKE_ON=	ENABLE_DIST
+MAKE_JOBS_UNSAFE=	yes
+USE_LDCONFIG=	yes
+USE_RC_SUBR=	tarantool
+
+USERS=		tarantool
+GROUPS=		tarantool
+
+PLIST_SUB=	TT_DATADIR=${TT_DATADIR} \
+		TT_LOGDIR=${TT_LOGDIR}
+SUB_FILES=	pkg-message
+
+TT_DATADIR?=	/var/db/tarantool
+TT_LOGDIR?=	/var/log/tarantool
+TT_RUNDIR?=	/var/run/tarantool
+
+post-patch:
+	@${ECHO_CMD} ${PORTVERSION}-0 > ${WRKSRC}/VERSION
+
+post-install:
+	@${RMDIR} ${STAGEDIR}${PREFIX}/lib/tarantool/
+
+.include <bsd.port.mk>
diff --git a/databases/tarantool/distinfo b/databases/tarantool/distinfo
new file mode 100644
index 000000000000..0004384a9081
--- /dev/null
+++ b/databases/tarantool/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1703671142
+SHA256 (tarantool-3.0.0.tar.gz) = 41dee7d752839e47b55dafeca424937e15be2d72d5a002ccc3b7f23dc8dbee3f
+SIZE (tarantool-3.0.0.tar.gz) = 43019938
diff --git a/databases/tarantool/files/patch-include-order.cmake b/databases/tarantool/files/patch-include-order.cmake
new file mode 100644
index 000000000000..2980c7efb21b
--- /dev/null
+++ b/databases/tarantool/files/patch-include-order.cmake
@@ -0,0 +1,11 @@
+--- src/CMakeLists.txt.orig	2023-12-27 13:53:12.178934000 +0000
++++ src/CMakeLists.txt	2023-12-27 13:53:23.287048000 +0000
+@@ -10,7 +10,7 @@
+ include_directories(${READLINE_INCLUDE_DIRS})
+ include_directories(${LIBYAML_INCLUDE_DIRS})
+ include_directories(${MSGPUCK_INCLUDE_DIRS})
+-include_directories(BEFORE ${CURL_INCLUDE_DIRS})
++include_directories(${CURL_INCLUDE_DIRS})
+ include_directories(${ICU_INCLUDE_DIRS})
+ include_directories(${ICONV_INCLUDE_DIRS})
+ include_directories(${DECNUMBER_INCLUDE_DIR})
diff --git a/databases/tarantool/files/patch-third_party-luajit-cmake-SetVersion.cmake b/databases/tarantool/files/patch-third_party-luajit-cmake-SetVersion.cmake
new file mode 100644
index 000000000000..0b0c0b39bbd3
--- /dev/null
+++ b/databases/tarantool/files/patch-third_party-luajit-cmake-SetVersion.cmake
@@ -0,0 +1,11 @@
+--- third_party/luajit/cmake/SetVersion.cmake.orig	2021-04-19 14:24:28 UTC
++++ third_party/luajit/cmake/SetVersion.cmake
+@@ -4,7 +4,7 @@
+ # Copyright (C) 2015-2020 IPONWEB Ltd.
+ 
+ function(SetVersion version majver minver patchver tweakver prerel)
+-  find_package(Git QUIET REQUIRED)
++  find_package(Git QUIET)
+   if(EXISTS ${CMAKE_SOURCE_DIR}/.git AND Git_FOUND)
+     # Read version from the project's VCS and store the result
+     # into version.
diff --git a/databases/tarantool/files/pkg-message.in b/databases/tarantool/files/pkg-message.in
new file mode 100644
index 000000000000..7f0d47f82080
--- /dev/null
+++ b/databases/tarantool/files/pkg-message.in
@@ -0,0 +1,14 @@
+[
+{ type: install
+  message: <<EOM
+  After install, you'll need:
+
+  Configuration at /etc/rc.conf:
+
+  * Enable tarantool on startup:
+      tarantool_enable="yes"
+  * Path to storage link files of instances:
+      tarantool_instances="%%ETCDIR%%/instances.enabled"
+EOM
+}
+]
diff --git a/databases/tarantool/files/tarantool.in b/databases/tarantool/files/tarantool.in
new file mode 100644
index 000000000000..19a793b2c96a
--- /dev/null
+++ b/databases/tarantool/files/tarantool.in
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# PROVIDE: tarantool
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# tarantool_enable="YES"
+# tarantool_instances=""
+#
+
+. /etc/rc.subr
+
+name="tarantool"
+rcvar=tarantool_enable
+
+load_rc_config "$name"
+
+tarantool_enable=${tarantool_enable:-"NO"}
+tarantool_instances=${tarantool_instances:-"%%ETCDIR%%/instances.enabled"}
+
+start_cmd="${name}_start"
+stop_cmd="${name}_stop"
+restart_cmd="${name}_restart"
+
+INSTANCES=$(find ${tarantool_instances} -type l -name '*.lua' 2>/dev/null)
+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/databases/tarantool/pkg-descr b/databases/tarantool/pkg-descr
new file mode 100644
index 000000000000..83e64c66b137
--- /dev/null
+++ b/databases/tarantool/pkg-descr
@@ -0,0 +1,16 @@
+Tarantool is an in-memory database and application server.
+
+Key features of the application server:
+- 100% compatible drop-in replacement for Lua 5.1, based on LuaJIT 2.1. Simply
+  use #!/usr/bin/tarantool instead of #!/usr/bin/lua in your script.
+- full support for Lua modules and a rich set of own modules, including
+  cooperative multitasking, non-blocking I/O, access to external databases, etc
+
+Key features of the database:
+- MsgPack data format and MsgPack based client-server protocol
+- two data engines: 100% in-memory with optional persistence and a 2-level
+  disk-based B-tree, to use with large data sets
+- multiple index types: HASH, TREE, RTREE, BITSET
+- asynchronous master-master replication
+- authentication and access control
+- the database is just a C extension to the app server and can be turned off
diff --git a/databases/tarantool/pkg-plist b/databases/tarantool/pkg-plist
new file mode 100644
index 000000000000..a2407ad3e082
--- /dev/null
+++ b/databases/tarantool/pkg-plist
@@ -0,0 +1,111 @@
+bin/tarantool
+bin/tarantoolctl
+etc/tarantool/default/tarantool
+etc/tarantool/instances.available/example.lua
+include/tarantool/lauxlib.h
+include/tarantool/lmisclib.h
+include/tarantool/lua.h
+include/tarantool/lua.hpp
+include/tarantool/luaconf.h
+include/tarantool/luajit.h
+include/tarantool/lualib.h
+include/tarantool/module.h
+share/man/man1/tarantool.1.gz
+share/man/man1/tarantoolctl.1.gz
+%%DATADIR%%/luarocks/admin/cache.lua
+%%DATADIR%%/luarocks/admin/cmd/add.lua
+%%DATADIR%%/luarocks/admin/cmd/make_manifest.lua
+%%DATADIR%%/luarocks/admin/cmd/refresh_cache.lua
+%%DATADIR%%/luarocks/admin/cmd/remove.lua
+%%DATADIR%%/luarocks/admin/index.lua
+%%DATADIR%%/luarocks/argparse.lua
+%%DATADIR%%/luarocks/build.lua
+%%DATADIR%%/luarocks/build/builtin.lua
+%%DATADIR%%/luarocks/build/cmake.lua
+%%DATADIR%%/luarocks/build/command.lua
+%%DATADIR%%/luarocks/build/make.lua
+%%DATADIR%%/luarocks/cmd.lua
+%%DATADIR%%/luarocks/cmd/build.lua
+%%DATADIR%%/luarocks/cmd/config.lua
+%%DATADIR%%/luarocks/cmd/doc.lua
+%%DATADIR%%/luarocks/cmd/download.lua
+%%DATADIR%%/luarocks/cmd/init.lua
+%%DATADIR%%/luarocks/cmd/install.lua
+%%DATADIR%%/luarocks/cmd/lint.lua
+%%DATADIR%%/luarocks/cmd/list.lua
+%%DATADIR%%/luarocks/cmd/make.lua
+%%DATADIR%%/luarocks/cmd/new_version.lua
+%%DATADIR%%/luarocks/cmd/pack.lua
+%%DATADIR%%/luarocks/cmd/path.lua
+%%DATADIR%%/luarocks/cmd/purge.lua
+%%DATADIR%%/luarocks/cmd/remove.lua
+%%DATADIR%%/luarocks/cmd/search.lua
+%%DATADIR%%/luarocks/cmd/show.lua
+%%DATADIR%%/luarocks/cmd/test.lua
+%%DATADIR%%/luarocks/cmd/unpack.lua
+%%DATADIR%%/luarocks/cmd/upload.lua
+%%DATADIR%%/luarocks/cmd/which.lua
+%%DATADIR%%/luarocks/cmd/write_rockspec.lua
+%%DATADIR%%/luarocks/core/cfg.lua
+%%DATADIR%%/luarocks/core/dir.lua
+%%DATADIR%%/luarocks/core/hardcoded.lua
+%%DATADIR%%/luarocks/core/manif.lua
+%%DATADIR%%/luarocks/core/path.lua
+%%DATADIR%%/luarocks/core/persist.lua
+%%DATADIR%%/luarocks/core/sysdetect.lua
+%%DATADIR%%/luarocks/core/util.lua
+%%DATADIR%%/luarocks/core/vers.lua
+%%DATADIR%%/luarocks/deplocks.lua
+%%DATADIR%%/luarocks/deps.lua
+%%DATADIR%%/luarocks/dir.lua
+%%DATADIR%%/luarocks/download.lua
+%%DATADIR%%/luarocks/fetch.lua
+%%DATADIR%%/luarocks/fetch/cvs.lua
+%%DATADIR%%/luarocks/fetch/git.lua
+%%DATADIR%%/luarocks/fetch/git_file.lua
+%%DATADIR%%/luarocks/fetch/git_http.lua
+%%DATADIR%%/luarocks/fetch/git_https.lua
+%%DATADIR%%/luarocks/fetch/git_ssh.lua
+%%DATADIR%%/luarocks/fetch/hg.lua
+%%DATADIR%%/luarocks/fetch/hg_http.lua
+%%DATADIR%%/luarocks/fetch/hg_https.lua
+%%DATADIR%%/luarocks/fetch/hg_ssh.lua
+%%DATADIR%%/luarocks/fetch/sscm.lua
+%%DATADIR%%/luarocks/fetch/svn.lua
+%%DATADIR%%/luarocks/fs.lua
+%%DATADIR%%/luarocks/fs/lua.lua
+%%DATADIR%%/luarocks/fs/tools.lua
+%%DATADIR%%/luarocks/fs/macosx.lua
+%%DATADIR%%/luarocks/fs/unix.lua
+%%DATADIR%%/luarocks/fs/unix/tools.lua
+%%DATADIR%%/luarocks/fs/win32.lua
+%%DATADIR%%/luarocks/fs/win32/tools.lua
+%%DATADIR%%/luarocks/fun.lua
+%%DATADIR%%/luarocks/loader.lua
+%%DATADIR%%/luarocks/manif.lua
+%%DATADIR%%/luarocks/manif/writer.lua
+%%DATADIR%%/luarocks/pack.lua
+%%DATADIR%%/luarocks/path.lua
+%%DATADIR%%/luarocks/persist.lua
+%%DATADIR%%/luarocks/queries.lua
+%%DATADIR%%/luarocks/remove.lua
+%%DATADIR%%/luarocks/repos.lua
+%%DATADIR%%/luarocks/require.lua
+%%DATADIR%%/luarocks/results.lua
+%%DATADIR%%/luarocks/rockspecs.lua
+%%DATADIR%%/luarocks/search.lua
+%%DATADIR%%/luarocks/signing.lua
+%%DATADIR%%/luarocks/test.lua
+%%DATADIR%%/luarocks/test/busted.lua
+%%DATADIR%%/luarocks/test/command.lua
+%%DATADIR%%/luarocks/tools/patch.lua
+%%DATADIR%%/luarocks/tools/tar.lua
+%%DATADIR%%/luarocks/tools/zip.lua
+%%DATADIR%%/luarocks/type/manifest.lua
+%%DATADIR%%/luarocks/type/rockspec.lua
+%%DATADIR%%/luarocks/type_check.lua
+%%DATADIR%%/luarocks/upload/api.lua
+%%DATADIR%%/luarocks/upload/multipart.lua
+%%DATADIR%%/luarocks/util.lua
+@dir(tarantool,tarantool,) %%TT_DATADIR%%
+@dir(tarantool,tarantool,) %%TT_LOGDIR%%
diff --git a/databases/tarantool2/Makefile b/databases/tarantool2/Makefile
index c674219f134d..1e1f574f5117 100644
--- a/databases/tarantool2/Makefile
+++ b/databases/tarantool2/Makefile
@@ -27,6 +27,8 @@ LIB_DEPENDS=	libcurl.so:ftp/curl \
 USES=		cmake:noninja compiler:c++11-lang cpe gettext-runtime gmake iconv perl5 readline ssl
 USE_PERL5=	build
 
+CONFLICTS_INSTALL=	tarantool
+
 BINARY_ALIAS=	sed=${LOCALBASE}/bin/gsed
 CMAKE_ARGS=	-DCMAKE_INSTALL_FULL_SYSCONFDIR=${ETCDIR} \
 		-DCMAKE_INSTALL_LOCALSTATEDIR=/var \