aboutsummaryrefslogtreecommitdiff
path: root/databases
diff options
context:
space:
mode:
authorJun Kuriyama <kuriyama@FreeBSD.org>2010-01-19 03:52:31 +0000
committerJun Kuriyama <kuriyama@FreeBSD.org>2010-01-19 03:52:31 +0000
commitae4d8268eae817bf4d05ea7b614306957dca6675 (patch)
treecaf489f8ed3aeddefa506fae257e462ed710c0b6 /databases
parent58ea3885ec8465def118ea4d3476d872f063c3aa (diff)
Notes
Diffstat (limited to 'databases')
-rw-r--r--databases/Makefile1
-rw-r--r--databases/kumofs/Makefile43
-rw-r--r--databases/kumofs/distinfo3
-rw-r--r--databases/kumofs/files/patch-framework.cc11
-rw-r--r--databases/kumofs/files/patch-kazuhiki.cc29
-rw-r--r--databases/kumofs/files/patch-mod_replace_stream.cc28
-rw-r--r--databases/kumofs/pkg-descr3
-rw-r--r--databases/kumofs/pkg-plist9
8 files changed, 127 insertions, 0 deletions
diff --git a/databases/Makefile b/databases/Makefile
index bf4f8d99dbca..bc5972564d62 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -123,6 +123,7 @@
SUBDIR += kpogre
SUBDIR += ksqlanalyzer
SUBDIR += ksqlshell
+ SUBDIR += kumofs
SUBDIR += libdbi
SUBDIR += libdbi-drivers
SUBDIR += libgda
diff --git a/databases/kumofs/Makefile b/databases/kumofs/Makefile
new file mode 100644
index 000000000000..814e9207dbc1
--- /dev/null
+++ b/databases/kumofs/Makefile
@@ -0,0 +1,43 @@
+# New ports collection makefile for: msgpack
+# Date created: 18 Jan 2010
+# Whom: Jun Kuriyama <kuriyama@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= kumofs
+PORTVERSION= 0.3.0
+CATEGORIES= databases
+MASTER_SITES= ${MASTER_SITE_LOCAL}
+MASTER_SITE_SUBDIR= kuriyama
+DISTNAME= kumofs-${GIT_REVISION}
+
+MAINTAINER= kuriyama@FreeBSD.org
+COMMENT= Scalabe and highly available distributed key-value store
+
+LIB_DEPENDS= msgpack:${PORTSDIR}/devel/msgpack \
+ tokyocabinet:${PORTSDIR}/databases/tokyocabinet
+RUN_DEPENDS= rubygem-msgpack>0:${PORTSDIR}/devel/rubygem-msgpack
+
+WRKSRC= ${WRKDIR}/etolabo-kumofs-${GIT_REVISION}
+USE_AUTOTOOLS= libtool:22 autoheader:262 autoconf:262 automake:110 aclocal:110
+ACLOCAL_ARGS= # empty
+AUTOMAKE_ARGS= --add-missing --copy
+CONFIGURE_ARGS= --with-msgpack=${LOCALBASE}
+USE_GMAKE= yes
+USE_RUBY= yes
+
+GIT_REVISION= 2a0c402
+
+MAN1= kumoctl.1 \
+ kumohash.1 \
+ kumolog.1 \
+ kumomergedb.1 \
+ kumostat.1 \
+ kumotop.1
+
+pre-configure:
+ cd ${WRKSRC}; ${TOUCH} README
+ cd ${WRKSRC}; ${LIBTOOLIZE} --force --copy
+
+.include <bsd.port.mk>
diff --git a/databases/kumofs/distinfo b/databases/kumofs/distinfo
new file mode 100644
index 000000000000..bb918c3152f2
--- /dev/null
+++ b/databases/kumofs/distinfo
@@ -0,0 +1,3 @@
+MD5 (kumofs-2a0c402.tar.gz) = 1c28fc033edb95bff48fa7b4b865561a
+SHA256 (kumofs-2a0c402.tar.gz) = dd453c6eb6d0e1b794df368308c588af772960db7c1f450ffae9c27c2e848b21
+SIZE (kumofs-2a0c402.tar.gz) = 158931
diff --git a/databases/kumofs/files/patch-framework.cc b/databases/kumofs/files/patch-framework.cc
new file mode 100644
index 000000000000..ae6e5fa5722a
--- /dev/null
+++ b/databases/kumofs/files/patch-framework.cc
@@ -0,0 +1,11 @@
+--- src/logic/manager/framework.cc.orig 2010-01-19 12:35:26.982220174 +0900
++++ src/logic/manager/framework.cc 2010-01-19 12:35:39.546813770 +0900
+@@ -66,7 +66,7 @@
+
+ void framework::new_node(address addr, role_type id, shared_node n)
+ {
+- LOG_WARN("new node ",id," ",addr);
++ LOG_WARN("new node ",(uint16_t)id," ",addr);
+ if(id == ROLE_MANAGER) {
+ if(addr != share->partner()) {
+ TLOGPACK("eP",3,
diff --git a/databases/kumofs/files/patch-kazuhiki.cc b/databases/kumofs/files/patch-kazuhiki.cc
new file mode 100644
index 000000000000..d08ab1844f75
--- /dev/null
+++ b/databases/kumofs/files/patch-kazuhiki.cc
@@ -0,0 +1,29 @@
+--- src/kazuhiki/kazuhiki.cc.orig 2010-01-18 06:06:16.000000000 +0900
++++ src/kazuhiki/kazuhiki.cc 2010-01-19 11:56:44.907400335 +0900
+@@ -330,12 +330,16 @@
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = UseIPv6 ? AF_UNSPEC : AF_INET;
+ hints.ai_socktype = SOCK_STREAM; // FIXME
++#ifdef __FreeBSD__
++ hints.ai_flags = AI_ADDRCONFIG;
++#else
+ hints.ai_flags = AI_V4MAPPED | AI_ADDRCONFIG;
++#endif
+
+ addrinfo *res = NULL;
+ int err;
+ if( (err=getaddrinfo(host, NULL, &hints, &res)) != 0 ) {
+- parser::raise("can't resolve host name: %s", host);
++ parser::raise("can't resolve host name (%s): %s", gai_strerror(err), host);
+ }
+
+ for(addrinfo* rp=res; rp; rp = rp->ai_next) {
+@@ -349,7 +353,7 @@
+ }
+ }
+
+- parser::raise("can't resolve host name: %s", host);
++ parser::raise("can't resolve host name (no suitable family): %s", host);
+ }
+
+ void addr_any(unsigned short port, bool dummy)
diff --git a/databases/kumofs/files/patch-mod_replace_stream.cc b/databases/kumofs/files/patch-mod_replace_stream.cc
new file mode 100644
index 000000000000..6da66956eaa8
--- /dev/null
+++ b/databases/kumofs/files/patch-mod_replace_stream.cc
@@ -0,0 +1,28 @@
+--- src/logic/server/mod_replace_stream.cc.orig 2010-01-18 23:49:40.347505120 +0900
++++ src/logic/server/mod_replace_stream.cc 2010-01-18 23:49:59.399149969 +0900
+@@ -277,6 +277,17 @@
+ size -= rl;
+ }
+ #else
++#ifdef __FreeBSD__
++ size_t sent = 0;
++ while(sent < size) {
++ size_t len = size - sent;
++ off_t sbytes = 0;
++ if(::sendfile(m_fd.get(), sock, sent, len, NULL, &sbytes, 0) < 0) {
++ throw mp::system_error(errno, "offer send error");
++ }
++ sent += sbytes;
++ }
++#else
+ off_t sent = 0;
+ while(sent < size) {
+ off_t len = size - sent;
+@@ -286,6 +297,7 @@
+ sent += len;
+ }
+ #endif
++#endif
+ }
+
+
diff --git a/databases/kumofs/pkg-descr b/databases/kumofs/pkg-descr
new file mode 100644
index 000000000000..dc689a035939
--- /dev/null
+++ b/databases/kumofs/pkg-descr
@@ -0,0 +1,3 @@
+kumofs is a scalabe and highly available distributed key-value store.
+
+WWW: http://github.com/etolabo/kumofs
diff --git a/databases/kumofs/pkg-plist b/databases/kumofs/pkg-plist
new file mode 100644
index 000000000000..77052ef507f4
--- /dev/null
+++ b/databases/kumofs/pkg-plist
@@ -0,0 +1,9 @@
+bin/kumo-gateway
+bin/kumo-manager
+bin/kumo-server
+bin/kumoctl
+bin/kumohash
+bin/kumolog
+bin/kumomergedb
+bin/kumostat
+bin/kumotop