svn commit: r467312 - in head/databases: . iowow iowow/files

Alexey Dokuchaev danfe at FreeBSD.org
Sat Apr 14 12:06:37 UTC 2018


Author: danfe
Date: Sat Apr 14 12:06:35 2018
New Revision: 467312
URL: https://svnweb.freebsd.org/changeset/ports/467312

Log:
  Add a port of IOWOW, persistent and fast key-value database engine based
  on skip list data structure.
  
  WWW: http://iowow.io/

Added:
  head/databases/iowow/
  head/databases/iowow/Makefile   (contents, props changed)
  head/databases/iowow/distinfo   (contents, props changed)
  head/databases/iowow/files/
  head/databases/iowow/files/patch-src_CMakeLists.txt   (contents, props changed)
  head/databases/iowow/files/patch-src_fs_iwfile.c   (contents, props changed)
  head/databases/iowow/files/patch-src_log_iwlog.c   (contents, props changed)
  head/databases/iowow/pkg-descr   (contents, props changed)
  head/databases/iowow/pkg-plist   (contents, props changed)
Modified:
  head/databases/Makefile

Modified: head/databases/Makefile
==============================================================================
--- head/databases/Makefile	Sat Apr 14 12:04:55 2018	(r467311)
+++ head/databases/Makefile	Sat Apr 14 12:06:35 2018	(r467312)
@@ -114,6 +114,7 @@
     SUBDIR += hsqldb
     SUBDIR += influxdb
     SUBDIR += innotop
+    SUBDIR += iowow
     SUBDIR += ip4r
     SUBDIR += ipa_sdb
     SUBDIR += iplike

Added: head/databases/iowow/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/iowow/Makefile	Sat Apr 14 12:06:35 2018	(r467312)
@@ -0,0 +1,27 @@
+# Created by: Alexey Dokuchaev <danfe at FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME=	iowow
+PORTVERSION=	1.0.5
+DISTVERSIONPREFIX=	v
+CATEGORIES=	databases
+
+MAINTAINER=	danfe at FreeBSD.org
+COMMENT=	Persistent key-value database engine
+
+LICENSE=	MIT
+
+ONLY_FOR_ARCHS=	amd64 i386
+ONLY_FOR_ARCHS_REASON=	invokes x86 assembler
+
+USES=		cmake:outsource compiler:c11
+USE_GITHUB=	yes
+GH_ACCOUNT=	Softmotions
+USE_LDCONFIG=	yes
+
+PORTDOCS=	Changelog README
+
+post-patch:
+	@${REINPLACE_CMD} -e '/sizeof(size_t)/d' ${WRKSRC}/src/kv/iwkv.c
+
+.include <bsd.port.mk>

Added: head/databases/iowow/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/iowow/distinfo	Sat Apr 14 12:06:35 2018	(r467312)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1523540906
+SHA256 (Softmotions-iowow-v1.0.5_GH0.tar.gz) = e30556b3c16952f68c0ecbee3f49a1c72412ca78d2a634babe71ba4cd8f703f0
+SIZE (Softmotions-iowow-v1.0.5_GH0.tar.gz) = 170856

Added: head/databases/iowow/files/patch-src_CMakeLists.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/iowow/files/patch-src_CMakeLists.txt	Sat Apr 14 12:06:35 2018	(r467312)
@@ -0,0 +1,36 @@
+--- src/CMakeLists.txt.orig	2018-04-12 13:48:26 UTC
++++ src/CMakeLists.txt
+@@ -121,14 +121,12 @@ if (NOT WIN32) ## todo review
+     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+ endif()
+ 
+-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"'")
+-
+ if (ASAN)
+   set(CMAKE_C_ASAN "-fsanitize=address -fno-omit-frame-pointer")
+ endif()
+ 
+ set(CMAKE_C_FLAGS_DEBUG "-O0 -g -ggdb -Werror -DDEBUG -D_DEBUG -UNDEBUG -Wno-unused-variable ${CMAKE_C_ASAN}")
+-set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG ${CMAKE_C_ASAN}")
++set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG ${CMAKE_C_ASAN}")
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} -g")
+ 
+ 
+@@ -151,7 +149,7 @@ file(GLOB PROJECT_GENERATED_HDRS ${PROJECT_GENERATED_D
+ list(APPEND ALL_HDRS ${PROJECT_GENERATED_HDRS})
+ 
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tmpl/libiowow.pc.in ${PROJECT_GENERATED_DIR}/libiowow.pc @ONLY)
+-install(FILES ${PROJECT_GENERATED_DIR}/libiowow.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
++install(FILES ${PROJECT_GENERATED_DIR}/libiowow.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}data/pkgconfig)
+ 
+ foreach(MODULE IN LISTS MODULES)
+     if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}/CMakeLists.txt)
+@@ -216,8 +214,6 @@ endif()
+ 
+ 
+ install(FILES
+-        ${CMAKE_SOURCE_DIR}/LICENSE
+-        ${CMAKE_SOURCE_DIR}/INSTALL
+         ${CMAKE_SOURCE_DIR}/Changelog
+         DESTINATION ${CMAKE_INSTALL_DOCDIR})
+ install(FILES

Added: head/databases/iowow/files/patch-src_fs_iwfile.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/iowow/files/patch-src_fs_iwfile.c	Sat Apr 14 12:06:35 2018	(r467312)
@@ -0,0 +1,11 @@
+--- src/fs/iwfile.c.orig	2018-04-12 13:48:26 UTC
++++ src/fs/iwfile.c
+@@ -92,7 +92,7 @@ static iwrc _iwfs_sync(struct IWFS_FILE *f, iwfs_sync_
+     if (fcntl(wf->fh, F_FULLFSYNC) == -1) {
+       return iwrc_set_errno(IW_ERROR_IO_ERRNO, errno);
+     }
+-#else
++#elif defined(__FreeBSD_version) && __FreeBSD_version > 1100501
+     if (fdatasync(wf->fh) == -1) {
+       return iwrc_set_errno(IW_ERROR_IO_ERRNO, errno);
+     }

Added: head/databases/iowow/files/patch-src_log_iwlog.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/iowow/files/patch-src_log_iwlog.c	Sat Apr 14 12:06:35 2018	(r467312)
@@ -0,0 +1,19 @@
+--- src/log/iwlog.c.orig	2018-04-12 13:48:26 UTC
++++ src/log/iwlog.c
+@@ -383,16 +383,9 @@ static iwrc _default_logfn(locale_t locale,
+     ecode_msg = _ecode_explained(locale, ecode);
+   }
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__)
+-  char bfile[MAXPATHLEN];
+   if (file && line > 0) {
+-    file = basename_r(file, bfile);
+-  }
+-#else
+-  if (file && line > 0) {
+     file = basename(file);
+   }
+-#endif
+ 
+   if (ecode || errno_code || werror_code) {
+     if (file && line > 0) {

Added: head/databases/iowow/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/iowow/pkg-descr	Sat Apr 14 12:06:35 2018	(r467312)
@@ -0,0 +1,14 @@
+IOWOW is persistent key-value database engine based on skip list data
+structure.  Its features and imitations are:
+
+  - Support of multiple key-value databases within a single file
+  - Native support of integer keys
+  - Support of record values represented as sorted array of integers
+  - Ultra-fast traversal of database records
+  - Good performance comparing its main competitors (LMDB, LevelDB,
+    Kyoto Cabinet)
+  - Tiny C11 library (150 KB), easily embeddable into any software
+  - Maximum storage file size: 255 GB, maximum size of a single
+    key+value record 255 MB
+
+WWW: http://iowow.io/

Added: head/databases/iowow/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/iowow/pkg-plist	Sat Apr 14 12:06:35 2018	(r467312)
@@ -0,0 +1,22 @@
+include/iowow/basedefs.h
+include/iowow/iowow.h
+include/iowow/iwarr.h
+include/iowow/iwbits.h
+include/iowow/iwconv.h
+include/iowow/iwexfile.h
+include/iowow/iwfile.h
+include/iowow/iwfsmfile.h
+include/iowow/iwkv.h
+include/iowow/iwlog.h
+include/iowow/iwp.h
+include/iowow/iwpool.h
+include/iowow/iwutils.h
+include/iowow/iwxstr.h
+lib/libiowow-1.a
+lib/libiowow.so
+lib/libiowow.so.1
+lib/libiowow.so.1.0.5
+libdata/pkgconfig/libiowow.pc
+man/man3/iowow.3.gz
+%%DATADIR%%/iowow-exports-%%CMAKE_BUILD_TYPE%%.cmake
+%%DATADIR%%/iowow-exports.cmake


More information about the svn-ports-head mailing list