git: e2324e762f62 - main - databases/tkrzw: new port: Set of implementations of DBM, successor of Kyoto Cabinet

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Wed, 08 Oct 2025 22:17:28 UTC
The branch main has been updated by tagattie:

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

commit e2324e762f629275e454f01ec3822da22b0fb3ef
Author:     Paavo-Einari Kaipila <pkaipila@gmail.com>
AuthorDate: 2025-10-08 12:34:34 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2025-10-08 22:12:08 +0000

    databases/tkrzw: new port: Set of implementations of DBM, successor of Kyoto Cabinet
    
    Tkrzw is a C++ library implementing DBM with various algorithms. It
    features high degrees of performance, concurrency, scalability and
    durability.
    
    Tkrzw is a successor of Kyoto Cabinet.
    
    WWW: https://dbmx.net/tkrzw/
    
    PR:             289951
    Reported by:    Paavo-Einari Kaipila <pkaipila@gmail.com> (new maintainer)
---
 databases/Makefile        |  1 +
 databases/tkrzw/Makefile  | 39 ++++++++++++++++++++++++++++++++++++++
 databases/tkrzw/distinfo  |  3 +++
 databases/tkrzw/pkg-descr |  5 +++++
 databases/tkrzw/pkg-plist | 48 +++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 96 insertions(+)

diff --git a/databases/Makefile b/databases/Makefile
index 44c684d221db..bf80773123d0 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -1121,6 +1121,7 @@
     SUBDIR += timescaledb-backup
     SUBDIR += timescaledb-tune
     SUBDIR += tinycdb
+    SUBDIR += tkrzw
     SUBDIR += tokyocabinet
     SUBDIR += tokyotyrant
     SUBDIR += trilogy
diff --git a/databases/tkrzw/Makefile b/databases/tkrzw/Makefile
new file mode 100644
index 000000000000..b6556841d061
--- /dev/null
+++ b/databases/tkrzw/Makefile
@@ -0,0 +1,39 @@
+PORTNAME=	tkrzw
+DISTVERSION=	1.0.32
+CATEGORIES=	databases
+MASTER_SITES=	https://dbmx.net/${PORTNAME}/pkg/
+
+MAINTAINER=	pkaipila@gmail.com
+COMMENT=	Set of implementations of DBM, successor of Kyoto Cabinet
+WWW=		https://dbmx.net/tkrzw/
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+USES=		gmake localbase
+
+GNU_CONFIGURE=		yes
+CONFIGURE_ARGS+=	--enable-lzma --enable-zlib
+
+SHLIB_VER=		1.75.0
+SHLIB_VER_MAJOR=	1
+PLIST_SUB+=		SHLIB_VER=${SHLIB_VER} \
+			SHLIB_VER_MAJOR=${SHLIB_VER_MAJOR}
+
+OPTIONS_DEFINE=		CPU_OPTS LZ4 ZSTD
+OPTIONS_DEFAULT=	LZ4 ZSTD
+
+CPU_OPTS_DESC=		Use CPU-specific optimizations
+CPU_OPTS_CONFIGURE_ON=	--enable-opt-native
+
+LZ4_LIB_DEPENDS=	liblz4.so:archivers/liblz4
+LZ4_CONFIGURE_ON=	--enable-lz4
+
+ZSTD_LIB_DEPENDS=	libzstd.so:archivers/zstd
+ZSTD_CONFIGURE_ON=	--enable-zstd
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/tkrzw*
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libtkrzw*
+
+.include <bsd.port.mk>
diff --git a/databases/tkrzw/distinfo b/databases/tkrzw/distinfo
new file mode 100644
index 000000000000..29ceee97f1cc
--- /dev/null
+++ b/databases/tkrzw/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1759307425
+SHA256 (tkrzw-1.0.32.tar.gz) = d3404dfac6898632b69780c0f0994c5f6ba962191a61c9b0f4b53ba8bb27731c
+SIZE (tkrzw-1.0.32.tar.gz) = 720675
diff --git a/databases/tkrzw/pkg-descr b/databases/tkrzw/pkg-descr
new file mode 100644
index 000000000000..d00c289cc057
--- /dev/null
+++ b/databases/tkrzw/pkg-descr
@@ -0,0 +1,5 @@
+Tkrzw is a C++ library implementing DBM with various algorithms. It
+features high degrees of performance, concurrency, scalability and
+durability.
+
+Tkrzw is a successor of Kyoto Cabinet.
diff --git a/databases/tkrzw/pkg-plist b/databases/tkrzw/pkg-plist
new file mode 100644
index 000000000000..17a57d3f3b75
--- /dev/null
+++ b/databases/tkrzw/pkg-plist
@@ -0,0 +1,48 @@
+bin/tkrzw_build_util
+bin/tkrzw_dbm_perf
+bin/tkrzw_dbm_tran
+bin/tkrzw_dbm_util
+bin/tkrzw_file_perf
+bin/tkrzw_langc_check
+bin/tkrzw_str_perf
+bin/tkrzw_ulog_util
+lib/libtkrzw.a
+lib/libtkrzw.so
+lib/libtkrzw.so.%%SHLIB_VER_MAJOR%%
+lib/libtkrzw.so.%%SHLIB_VER%%
+libdata/pkgconfig/tkrzw.pc
+include/tkrzw_cmd_util.h
+include/tkrzw_compress.h
+include/tkrzw_containers.h
+include/tkrzw_dbm.h
+include/tkrzw_dbm_async.h
+include/tkrzw_dbm_baby.h
+include/tkrzw_dbm_cache.h
+include/tkrzw_dbm_common_impl.h
+include/tkrzw_dbm_hash.h
+include/tkrzw_dbm_hash_impl.h
+include/tkrzw_dbm_poly.h
+include/tkrzw_dbm_shard.h
+include/tkrzw_dbm_skip.h
+include/tkrzw_dbm_skip_impl.h
+include/tkrzw_dbm_std.h
+include/tkrzw_dbm_tiny.h
+include/tkrzw_dbm_tree.h
+include/tkrzw_dbm_tree_impl.h
+include/tkrzw_dbm_ulog.h
+include/tkrzw_file.h
+include/tkrzw_file_mmap.h
+include/tkrzw_file_poly.h
+include/tkrzw_file_pos.h
+include/tkrzw_file_std.h
+include/tkrzw_file_util.h
+include/tkrzw_hash_util.h
+include/tkrzw_index.h
+include/tkrzw_key_comparators.h
+include/tkrzw_langc.h
+include/tkrzw_lib_common.h
+include/tkrzw_logger.h
+include/tkrzw_message_queue.h
+include/tkrzw_str_util.h
+include/tkrzw_thread_util.h
+include/tkrzw_time_util.h