lang/io: update to 2017.09.06

This commit is contained in:
Pietro Cerutti 2017-09-13 11:46:23 +00:00
parent a45b58fe47
commit 9af2635d2c
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=449774
9 changed files with 448 additions and 632 deletions

View File

@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= io
PORTVERSION= 2015.11.11
PORTREVISION= 7
PORTVERSION= 2017.09.06
CATEGORIES= lang
MAINTAINER= gahr@FreeBSD.org
@ -13,11 +12,11 @@ LICENSE= BSD3CLAUSE
BROKEN_armv6= fails to compile: ucontext.h: expected parameter declarator
USES= cmake:outsource,noninja compiler:c11 ssl
USE_GITHUB= yes
GH_ACCOUNT= stevedekorte
GH_TAGNAME= 23afbcc
USES= cmake:outsource,noninja compiler:c11
MAKE_JOBS_UNSAFE=yes
USE_LDCONFIG= yes
@ -48,4 +47,8 @@ post-install:
${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
cd ${WRKSRC}/samples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}
do-test:
cd ${BUILD_WRKSRC} && \
./_build/binaries/io ${WRKSRC}/libs/iovm/tests/correctness/run.io
.include <bsd.port.mk>

View File

@ -17,6 +17,7 @@ DEFAULT_ADDONS= AsyncRequest \
Loki \
MD5 \
NotificationCenter \
Oauth \
Obsidian \
Random \
Range \
@ -39,6 +40,7 @@ DEFAULT_ADDONS= AsyncRequest \
#
OPTIONAL_ADDONS=BigNum \
CFFI \
Cairo \
Clutter \
DBI \
EditLine \
@ -72,6 +74,7 @@ OPTIONS_GROUP_ADDONS=${OPTIONAL_ADDONS}
BigNum_LIB_DEPENDS= libgmp.so:math/gmp
CFFI_LIB_DEPENDS= libffi.so:devel/libffi
Cairo_USE= GNOME=cairo
Clutter_LIB_DEPENDS= libclutter-glx-1.0.so:graphics/clutter
DBI_LIB_DEPENDS= libdbi.so:databases/libdbi
EditLine_USES= libedit
@ -92,7 +95,7 @@ MySQL_USES= mysql:client
Ogg_LIB_DEPENDS= libogg.so:audio/libogg
OpenGL_USE= GL=glut XORG=xmu
PostgreSQL_USES= pgsql
Python_USES= python
Python_USES= python:3.3+
QDBM_LIB_DEPENDS= libqdbm.so:databases/qdbm
ReadLine_USES= readline:port
Regex_LIB_DEPENDS= libpcre.so:devel/pcre

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1467100370
SHA256 (stevedekorte-io-2015.11.11-23afbcc_GH0.tar.gz) = d66a085288c278c3641c6c7360967ace54e5469b751659fca4e31fef7987975a
SIZE (stevedekorte-io-2015.11.11-23afbcc_GH0.tar.gz) = 9212486
TIMESTAMP = 1505299993
SHA256 (stevedekorte-io-2017.09.06_GH0.tar.gz) = 9ac5cd94bbca65c989cd254be58a3a716f4e4f16480f0dc81070457aa353c217
SIZE (stevedekorte-io-2017.09.06_GH0.tar.gz) = 9153588

View File

@ -1,12 +0,0 @@
--- addons/SQLite3/CMakeLists.txt.orig 2012-10-02 16:24:59.000000000 +0200
+++ addons/SQLite3/CMakeLists.txt 2012-10-02 16:25:24.000000000 +0200
@@ -20,6 +20,9 @@
# Additional include directories
include_directories(${SQLITE_INCLUDE_DIRS})
+ # Additional link directories
+ link_directories(${SQLITE_LIBRARY_DIRS})
+
# Generate the IoSQLite3Init.c file.
# Argument SHOULD ALWAYS be the exact name of the addon, case is
# important.

View File

@ -0,0 +1,13 @@
--- addons/Oauth/source/Oauth/http.c.orig 2017-09-13 10:44:59 UTC
+++ addons/Oauth/source/Oauth/http.c
@@ -6,7 +6,10 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/socket.h>
#include <sys/select.h>
+#include <netinet/in.h>
#include <netdb.h>
#include <fcntl.h>
#include <errno.h>

View File

@ -1,93 +0,0 @@
From fd6795035e4bcd1d2606f4f8f69c104bfbf5d5ff Mon Sep 17 00:00:00 2001
From: Charles Ellis <hamled@gmail.com>
Date: Sun, 20 May 2012 23:20:33 -0700
Subject: [PATCH] Memcached stats method compatiblity fix
The stats method of Memcached is now compatible with libmemcached 1.0+.
---
addons/Memcached/source/IoMemcached.c | 41 +++++++++++++++++++++--------------
modules/FindLibMemcached.cmake | 2 +-
2 files changed, 26 insertions(+), 17 deletions(-)
diff --git a/addons/Memcached/source/IoMemcached.c b/addons/Memcached/source/IoMemcached.c
index c1be9ff..aa3fe67 100644
--- addons/Memcached/source/IoMemcached.c
+++ addons/Memcached/source/IoMemcached.c
@@ -472,39 +472,48 @@ values are maps with actual stats.
IoObject *IoMemcached_stats(IoMemcached *self, IoObject *locals, IoMessage *m)
{
IoMap *results_map = IoMap_new(IOSTATE);
+ memcached_st *mc = DATA(self)->mc;
- int i;
- for(i = 0; i < memcached_server_list_count(DATA(self)->mc->servers); i++) {
- memcached_server_st *server = DATA(self)->mc->servers + i;
+ uint32_t pos = 0;
+ while(pos < memcached_server_count(mc)) {
+ memcached_server_instance_st server = memcached_server_instance_by_position(mc, pos);
+ if(server == NULL)
+ continue;
+
+ const char *hostname = memcached_server_name(server);
+ const in_port_t port = memcached_server_port(server);
memcached_stat_st stats;
- if(memcached_stat_servername(&stats, "", server->hostname, server->port) != 0)
+ memcached_return_t rc = memcached_stat_servername(&stats, "", hostname, port);
+ if(rc != MEMCACHED_SUCCESS)
continue;
- memcached_return rc;
- char **ckeys = memcached_stat_get_keys(DATA(self)->mc, &stats, &rc);
-
- int ckeys_count = 0;
- while(ckeys[ckeys_count] != NULL)
- ckeys_count++;
+ char **ckeys = memcached_stat_get_keys(mc, &stats, &rc);
+ if(rc != MEMCACHED_SUCCESS)
+ continue;
IoMap *per_server_map = IoMap_new(IOSTATE);
- int k;
- for(k = 0; k < ckeys_count; k++) {
- char *ckey = ckeys[k];
- char *cvalue = memcached_stat_get_value(DATA(self)->mc, &stats, ckey, &rc);
+ char *ckey = *ckeys;
+ while(ckey != NULL) {
+ char *cvalue = memcached_stat_get_value(mc, &stats, ckey, &rc);
+ if(rc != MEMCACHED_SUCCESS)
+ continue;
+
IoMap_rawAtPut(per_server_map, IOSYMBOL(ckey), IOSYMBOL(cvalue));
free(cvalue);
+ ckey++;
}
free(ckeys);
// "127.0.0.1:11211"
- char *server_key = (char *) malloc((strlen(server->hostname) + 1 + 5 + 1) * sizeof(char));
- sprintf(server_key, "%s:%d", server->hostname, server->port);
+ char *server_key = (char *) malloc((strlen(hostname) + 1 + 5 + 1) * sizeof(char));
+ sprintf(server_key, "%s:%d", hostname, port);
IoMap_rawAtPut(results_map, IOSYMBOL(server_key), per_server_map);
free(server_key);
+
+ pos++;
}
return results_map;
diff --git a/modules/FindLibMemcached.cmake b/modules/FindLibMemcached.cmake
index 46bf5e5..07ee3bb 100644
--- modules/FindLibMemcached.cmake
+++ modules/FindLibMemcached.cmake
@@ -6,7 +6,7 @@
FIND_PATH(LIBMEMCACHED_INCLUDE_DIR libmemcached/memcached.h)
-FIND_LIBRARY(LIBMEMCACHED_LIBRARY NAMES memcached PATH /usr/lib /usr/local/lib)
+FIND_LIBRARY(LIBMEMCACHED_LIBRARY NAMES memcached libmemcached PATH /usr/lib /usr/local/lib)
IF(LIBMEMCACHED_INCLUDE_DIR AND LIBMEMCACHED_LIBRARY)
SET(LIBMEMCACHED_FOUND 1)

View File

@ -1,180 +0,0 @@
From b53b3d8e66d3e4f173500f70ce2df45763b2e0b2 Mon Sep 17 00:00:00 2001
From: Charles Ellis <hamled@gmail.com>
Date: Mon, 21 May 2012 00:01:35 -0700
Subject: [PATCH] Further Memcached compatibility fixes
The Memcached addon is now compatible with the API for libmemcached 1.0
throughout. The stats method also sets the error state if errors were
encountered.
---
addons/Memcached/source/IoMemcached.c | 49 +++++++++++++++++++++--------------
1 file changed, 29 insertions(+), 20 deletions(-)
diff --git a/addons/Memcached/source/IoMemcached.c b/addons/Memcached/source/IoMemcached.c
index aa3fe67..0d0dfb4 100644
--- addons/Memcached/source/IoMemcached.c
+++ addons/Memcached/source/IoMemcached.c
@@ -105,7 +105,7 @@ Returns self.
*/
IoObject *IoMemcached_addServer(IoMemcached *self, IoObject *locals, IoMessage *m)
{
- memcached_server_st *server;
+ memcached_server_list_st server;
server = memcached_servers_parse(IoMessage_locals_cStringArgAt_(m, locals, 0));
memcached_server_push(DATA(self)->mc, server);
@@ -132,7 +132,7 @@ IoObject *IoMemcached_set(IoMemcached *self, IoObject *locals, IoMessage *m)
size_t size;
char *cvalue = IoMemcached_serialize(self, locals, value, &size, &flags);
- memcached_return rc;
+ memcached_return_t rc;
rc = memcached_set(DATA(self)->mc,
CSTRING(key), IOSEQ_LENGTH(key),
cvalue, size,
@@ -164,7 +164,7 @@ IoObject *IoMemcached_add(IoMemcached *self, IoObject *locals, IoMessage *m)
size_t size;
char *cvalue = IoMemcached_serialize(self, locals, value, &size, &flags);
- memcached_return rc;
+ memcached_return_t rc;
rc = memcached_add(DATA(self)->mc,
CSTRING(key), IOSEQ_LENGTH(key),
cvalue, size,
@@ -200,7 +200,7 @@ IoObject *IoMemcached_replace(IoMemcached *self, IoObject *locals, IoMessage *m)
size_t size;
char *cvalue = IoMemcached_serialize(self, locals, value, &size, &flags);
- memcached_return rc;
+ memcached_return_t rc;
rc = memcached_replace(DATA(self)->mc,
CSTRING(key), IOSEQ_LENGTH(key),
cvalue, size,
@@ -230,7 +230,7 @@ IoObject *IoMemcached_append(IoMemcached *self, IoObject *locals, IoMessage *m)
IoSeq *key = IoMessage_locals_seqArgAt_(m, locals, 0);
IoSeq *value = IoMessage_locals_seqArgAt_(m, locals, 1);
- memcached_return rc;
+ memcached_return_t rc;
rc = memcached_append(DATA(self)->mc,
CSTRING(key), IOSEQ_LENGTH(key),
CSTRING(value), IOSEQ_LENGTH(value),
@@ -254,7 +254,7 @@ IoObject *IoMemcached_prepend(IoMemcached *self, IoObject *locals, IoMessage *m)
IoSeq *key = IoMessage_locals_seqArgAt_(m, locals, 0);
IoSeq *value = IoMessage_locals_seqArgAt_(m, locals, 1);
- memcached_return rc;
+ memcached_return_t rc;
rc = memcached_prepend(DATA(self)->mc,
CSTRING(key), IOSEQ_LENGTH(key),
CSTRING(value), IOSEQ_LENGTH(value),
@@ -279,7 +279,7 @@ IoObject *IoMemcached_get(IoMemcached *self, IoObject *locals, IoMessage *m)
size_t size;
uint32_t flags;
- memcached_return rc;
+ memcached_return_t rc;
char *cvalue;
cvalue = memcached_get(DATA(self)->mc,
@@ -322,7 +322,7 @@ IoObject *IoMemcached_getMulti(IoMemcached *self, IoObject *locals, IoMessage *m
IOASSERT(IOSEQ_LENGTH(key) < MEMCACHED_MAX_KEY, "key is too long");
}
- char **ckeys = (char **) malloc(sizeof(char *) * keys_list_size);
+ const char **ckeys = (const char **) malloc(sizeof(const char *) * keys_list_size);
size_t *ckey_lengths = (size_t *) malloc(sizeof(size_t) * keys_list_size);
for(i = 0; i < keys_list_size; i++) {
@@ -330,7 +330,7 @@ IoObject *IoMemcached_getMulti(IoMemcached *self, IoObject *locals, IoMessage *m
ckey_lengths[i] = strlen(ckeys[i]);
}
- memcached_return rc = memcached_mget(DATA(self)->mc, ckeys, ckey_lengths, keys_list_size);
+ memcached_return_t rc = memcached_mget(DATA(self)->mc, ckeys, ckey_lengths, keys_list_size);
free(ckeys);
free(ckey_lengths);
@@ -377,7 +377,7 @@ IoObject *IoMemcached_delete(IoMemcached *self, IoObject *locals, IoMessage *m)
time_t time = IoMessage_argCount(m) == 2 ? IoMessage_locals_intArgAt_(m, locals, 1) : 0;
- memcached_return rc;
+ memcached_return_t rc;
rc = memcached_delete(DATA(self)->mc,
CSTRING(key), IOSEQ_LENGTH(key),
time
@@ -423,7 +423,7 @@ IoObject *IoMemcached_incr(IoMemcached *self, IoObject *locals, IoMessage *m)
uint64_t new_value;
- memcached_return rc;
+ memcached_return_t rc;
rc = memcached_increment(DATA(self)->mc,
CSTRING(key), IOSEQ_LENGTH(key),
offset, &new_value
@@ -451,7 +451,7 @@ IoObject *IoMemcached_decr(IoMemcached *self, IoObject *locals, IoMessage *m)
uint64_t new_value;
- memcached_return rc;
+ memcached_return_t rc;
rc = memcached_decrement(DATA(self)->mc,
CSTRING(key), IOSEQ_LENGTH(key),
offset, &new_value
@@ -472,11 +472,11 @@ values are maps with actual stats.
IoObject *IoMemcached_stats(IoMemcached *self, IoObject *locals, IoMessage *m)
{
IoMap *results_map = IoMap_new(IOSTATE);
- memcached_st *mc = DATA(self)->mc;
+ int errors = 0;
uint32_t pos = 0;
- while(pos < memcached_server_count(mc)) {
- memcached_server_instance_st server = memcached_server_instance_by_position(mc, pos);
+ while(pos < memcached_server_count(DATA(self)->mc)) {
+ memcached_server_instance_st server = memcached_server_instance_by_position(DATA(self)->mc, pos);
if(server == NULL)
continue;
@@ -485,19 +485,25 @@ IoObject *IoMemcached_stats(IoMemcached *self, IoObject *locals, IoMessage *m)
memcached_stat_st stats;
memcached_return_t rc = memcached_stat_servername(&stats, "", hostname, port);
- if(rc != MEMCACHED_SUCCESS)
+ if(rc != MEMCACHED_SUCCESS) {
+ errors++;
continue;
+ }
- char **ckeys = memcached_stat_get_keys(mc, &stats, &rc);
- if(rc != MEMCACHED_SUCCESS)
+ char **ckeys = memcached_stat_get_keys(DATA(self)->mc, &stats, &rc);
+ if(rc != MEMCACHED_SUCCESS) {
+ errors++;
continue;
+ }
IoMap *per_server_map = IoMap_new(IOSTATE);
char *ckey = *ckeys;
while(ckey != NULL) {
- char *cvalue = memcached_stat_get_value(mc, &stats, ckey, &rc);
- if(rc != MEMCACHED_SUCCESS)
+ char *cvalue = memcached_stat_get_value(DATA(self)->mc, &stats, ckey, &rc);
+ if(rc != MEMCACHED_SUCCESS) {
+ errors++;
continue;
+ }
IoMap_rawAtPut(per_server_map, IOSYMBOL(ckey), IOSYMBOL(cvalue));
free(cvalue);
@@ -516,6 +522,9 @@ IoObject *IoMemcached_stats(IoMemcached *self, IoObject *locals, IoMessage *m)
pos++;
}
+ if(errors > 0)
+ IoState_error_(IOSTATE, m, memcached_strerror(DATA(self)->mc, MEMCACHED_SOME_ERRORS));
+
return results_map;
}

View File

@ -1,25 +0,0 @@
From 0b4f7e75e80bf25d382901f098b60c724e0dd6b3 Mon Sep 17 00:00:00 2001
From: Kyle Marek-Spartz <zeckalpha@gmail.com>
Date: Sat, 1 Feb 2014 09:23:43 -0600
Subject: [PATCH] Changed type to get memcached >= 1.0.17 to compile. Still
gives warning for: io/addons/Memcached/source/IoMemcached.c:46:2: warning:
implicit declaration of function IoState_registerProtoWithFunc_ is invalid in
C99
---
addons/Memcached/source/IoMemcached.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/Memcached/source/IoMemcached.c b/addons/Memcached/source/IoMemcached.c
index 0d0dfb4..a4f3901 100644
--- addons/Memcached/source/IoMemcached.c
+++ addons/Memcached/source/IoMemcached.c
@@ -476,7 +476,7 @@ IoObject *IoMemcached_stats(IoMemcached *self, IoObject *locals, IoMessage *m)
int errors = 0;
uint32_t pos = 0;
while(pos < memcached_server_count(DATA(self)->mc)) {
- memcached_server_instance_st server = memcached_server_instance_by_position(DATA(self)->mc, pos);
+ const memcached_instance_st *server = memcached_server_instance_by_position(DATA(self)->mc, pos);
if(server == NULL)
continue;

File diff suppressed because it is too large Load Diff