aboutsummaryrefslogtreecommitdiffstats
path: root/databases
diff options
context:
space:
mode:
authorosa <osa@FreeBSD.org>2019-11-22 03:27:39 +0800
committerosa <osa@FreeBSD.org>2019-11-22 03:27:39 +0800
commitc978521522fe859917fff515b9f95a1363e10b70 (patch)
treef097f4a4a9b81f0cf39752ffc85ef362a0176797 /databases
parentd702ad281e966196d7a67765fd6fcd24fa7ea39c (diff)
downloadfreebsd-ports-gnome-c978521522fe859917fff515b9f95a1363e10b70.tar.gz
freebsd-ports-gnome-c978521522fe859917fff515b9f95a1363e10b70.tar.zst
freebsd-ports-gnome-c978521522fe859917fff515b9f95a1363e10b70.zip
Repocopy the databases/redis to the databases/redis4 to update
the databases/redis port to the latest stable version, 5.0.6. PR: 241526 Reviewed by: portmgr (adamw) Approved by: portmgr (adamw) Differential Revision: https://reviews.freebsd.org/D22336
Diffstat (limited to 'databases')
-rw-r--r--databases/Makefile1
-rw-r--r--databases/p5-AnyEvent-Redis/Makefile2
-rw-r--r--databases/p5-Redis-Fast/Makefile1
-rw-r--r--databases/py-redis/Makefile1
-rw-r--r--databases/py-redis2/Makefile1
-rw-r--r--databases/redis-devel/Makefile3
-rw-r--r--databases/redis/Makefile29
-rw-r--r--databases/redis/distinfo6
-rw-r--r--databases/redis/files/extra-patch-src-Makefile.lua10
-rw-r--r--databases/redis/files/extra-patch-src-Makefile.luajit10
-rw-r--r--databases/redis/files/patch-deps-Makefile8
-rw-r--r--databases/redis/files/patch-deps-hiredis-Makefile16
-rw-r--r--databases/redis/files/patch-deps-hiredis-net.c12
-rw-r--r--databases/redis/files/patch-deps-linenoise-Makefile4
-rw-r--r--databases/redis/files/patch-redis.conf12
-rw-r--r--databases/redis/files/patch-src-Makefile26
-rw-r--r--databases/redis/files/patch-src-mkreleasehdr.sh8
-rw-r--r--databases/redis4/Makefile111
-rw-r--r--databases/redis4/distinfo3
-rw-r--r--databases/redis4/files/extra-patch-src-Makefile.lua58
-rw-r--r--databases/redis4/files/extra-patch-src-Makefile.luajit58
-rw-r--r--databases/redis4/files/patch-deps-Makefile20
-rw-r--r--databases/redis4/files/patch-deps-hiredis-Makefile41
-rw-r--r--databases/redis4/files/patch-deps-hiredis-net.c64
-rw-r--r--databases/redis4/files/patch-deps-linenoise-Makefile15
-rw-r--r--databases/redis4/files/patch-redis.conf38
-rw-r--r--databases/redis4/files/patch-src-Makefile39
-rw-r--r--databases/redis4/files/patch-src-config.h (renamed from databases/redis/files/patch-src-config.h)0
-rw-r--r--databases/redis4/files/patch-src-lua_cjson.c (renamed from databases/redis/files/patch-src-lua_cjson.c)0
-rw-r--r--databases/redis4/files/patch-src-mkreleasehdr.sh11
-rw-r--r--databases/redis4/files/pkg-message.in11
-rw-r--r--databases/redis4/files/redis.in70
-rw-r--r--databases/redis4/files/sentinel.in42
-rw-r--r--databases/redis4/pkg-descr19
-rw-r--r--databases/redis4/pkg-plist12
-rw-r--r--databases/rubygem-hiredis/Makefile2
36 files changed, 697 insertions, 67 deletions
diff --git a/databases/Makefile b/databases/Makefile
index df2bdc415887..61c6a8ba995c 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -890,6 +890,7 @@
SUBDIR += recutils
SUBDIR += redis
SUBDIR += redis-devel
+ SUBDIR += redis4
SUBDIR += redis_exporter
SUBDIR += redisdesktopmanager
SUBDIR += retcl
diff --git a/databases/p5-AnyEvent-Redis/Makefile b/databases/p5-AnyEvent-Redis/Makefile
index f42f1b7a5ffa..1bb17df0265b 100644
--- a/databases/p5-AnyEvent-Redis/Makefile
+++ b/databases/p5-AnyEvent-Redis/Makefile
@@ -3,7 +3,7 @@
PORTNAME= AnyEvent-Redis
PORTVERSION= 0.24
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= databases perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= CPAN:DGL
diff --git a/databases/p5-Redis-Fast/Makefile b/databases/p5-Redis-Fast/Makefile
index a988cd8fe353..5b17c432ace8 100644
--- a/databases/p5-Redis-Fast/Makefile
+++ b/databases/p5-Redis-Fast/Makefile
@@ -2,6 +2,7 @@
PORTNAME= Redis-Fast
PORTVERSION= 0.25
+PORTREVISION= 1
CATEGORIES= databases perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
diff --git a/databases/py-redis/Makefile b/databases/py-redis/Makefile
index f61773696234..d250e6d4429d 100644
--- a/databases/py-redis/Makefile
+++ b/databases/py-redis/Makefile
@@ -3,6 +3,7 @@
PORTNAME= redis
PORTVERSION= 3.2.1
+PORTREVISION= 1
CATEGORIES= databases python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/databases/py-redis2/Makefile b/databases/py-redis2/Makefile
index 30ed2a7aed06..eb07e32929f7 100644
--- a/databases/py-redis2/Makefile
+++ b/databases/py-redis2/Makefile
@@ -3,6 +3,7 @@
PORTNAME= redis
PORTVERSION= 2.10.6
+PORTREVISION= 1
CATEGORIES= databases python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
PKGNAMESUFFIX= 2
diff --git a/databases/redis-devel/Makefile b/databases/redis-devel/Makefile
index 7108890743db..7a5b72f84605 100644
--- a/databases/redis-devel/Makefile
+++ b/databases/redis-devel/Makefile
@@ -3,6 +3,7 @@
PORTNAME= redis
DISTVERSION= 5.0.6
+PORTREVISION= 1
CATEGORIES= databases
MASTER_SITES= http://download.redis.io/releases/
PKGNAMESUFFIX= -devel
@@ -64,7 +65,7 @@ USES+= tcl:build
LDFLAGS+= -lpthread -lm -lexecinfo
-CONFLICTS?= redis-4.*
+CONFLICTS?= redis4-4.* redis-5.*
USE_RC_SUBR= redis sentinel
BIN_FILES= redis-benchmark redis-check-aof redis-check-rdb \
diff --git a/databases/redis/Makefile b/databases/redis/Makefile
index 599e28b867b4..5a9b366cd1fa 100644
--- a/databases/redis/Makefile
+++ b/databases/redis/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= redis
-DISTVERSION= 4.0.14
-PORTREVISION= 1
+PORTVERSION= 5.0.6
CATEGORIES= databases
MASTER_SITES= http://download.redis.io/releases/
@@ -12,15 +11,19 @@ COMMENT= Persistent key-value database with built-in net interface
LICENSE= BSD3CLAUSE
-OPTIONS_DEFINE= TESTS TRIB
+OPTIONS_DEFINE= JEMALLOC TESTS TRIB
OPTIONS_RADIO= EXTLUA
OPTIONS_RADIO_EXTLUA= LUA LUAJIT
OPTIONS_SUB= yes
+JEMALLOC_DESC= Use jemalloc
LUA_DESC= Use lang/lua instead of builtin lua
LUAJIT_DESC= Use lang/luajit instead of builtin lua
TESTS_DESC= Install lang/tcl for redis unit tests
TRIB_DESC= Install redis-trib.rb (lang/ruby req.)
+USES+= compiler gmake
+MAKE_ENV= "V=yo"
+
.include <bsd.port.options.mk>
.if ${ARCH} == i386 && ! ${CFLAGS:M-march=*}
@@ -29,6 +32,10 @@ USE_GCC= yes
CFLAGS+= -march=i586
.endif
+.if ${PORT_OPTIONS:MJEMALLOC}
+MAKE_ENV+= "USE_JEMALLOC=yes"
+.endif
+
.if ${PORT_OPTIONS:MTRIB}
CATEGORIES+= ruby
USE_RUBY= yes
@@ -56,10 +63,8 @@ USES+= tcl:build
LDFLAGS+= -lpthread -lm -lexecinfo
-CONFLICTS?= redis-devel-5.*
+CONFLICTS?= redis4-4.* redis-devel-5.*
-USES+= gmake
-MAKE_ENV= "V=yo"
USE_RC_SUBR= redis sentinel
BIN_FILES= redis-benchmark redis-check-aof redis-check-rdb \
redis-cli redis-sentinel redis-server
@@ -84,10 +89,18 @@ PLIST_SUB+= REDIS_USER=${USERS} \
REDIS_DBDIR=${REDIS_DBDIR} \
REDIS_RUNDIR=${REDIS_RUNDIR}
-.if ${PORT_OPTIONS:MLUAJIT} || ${PORT_OPTIONS:MLUA}
+.include <bsd.port.pre.mk>
+
post-patch:
+.if ${PORT_OPTIONS:MJEMALLOC}
+ @${REINPLACE_CMD} '35s!Linux!FreeBSD!g' ${WRKSRC}/src/Makefile
+.endif
+.if ${PORT_OPTIONS:MLUA} || ${PORT_OPTIONS:MLUAJIT}
@cd ${WRKSRC}/deps/lua/src && ${CP} fpconv.* lua_* strbuf.* ${WRKSRC}/src/
.endif
+.if ${CHOSEN_COMPILER_TYPE} == gcc && ${COMPILER_VERSION} <= 42
+ ${REINPLACE_CMD} -e '/pragma/d' ${WRKSRC}/src/lzf_d.c
+.endif
post-build:
${SED} ${SUB_LIST:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
@@ -107,4 +120,4 @@ do-install:
do-test:
@cd ${WRKSRC} && ${TCLSH} tests/test_helper.tcl
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/databases/redis/distinfo b/databases/redis/distinfo
index 521076765de6..7e271b43b140 100644
--- a/databases/redis/distinfo
+++ b/databases/redis/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1553045896
-SHA256 (redis-4.0.14.tar.gz) = 1e1e18420a86cfb285933123b04a82e1ebda20bfb0a289472745a087587e93a7
-SIZE (redis-4.0.14.tar.gz) = 1740967
+TIMESTAMP = 1572268200
+SHA256 (redis-5.0.6.tar.gz) = 6624841267e142c5d5d5be292d705f8fb6070677687c5aad1645421a936d22b3
+SIZE (redis-5.0.6.tar.gz) = 1979873
diff --git a/databases/redis/files/extra-patch-src-Makefile.lua b/databases/redis/files/extra-patch-src-Makefile.lua
index 02d59f386ffa..17c3d23b74b5 100644
--- a/databases/redis/files/extra-patch-src-Makefile.lua
+++ b/databases/redis/files/extra-patch-src-Makefile.lua
@@ -1,5 +1,5 @@
---- src/Makefile.orig 2017-08-06 10:42:53.992510000 -0400
-+++ src/Makefile 2017-08-06 10:44:57.344366000 -0400
+--- src/Makefile.orig 2018-10-18 18:09:43.930566000 -0400
++++ src/Makefile 2018-10-18 18:10:32.562125000 -0400
@@ -16,7 +16,7 @@
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
@@ -30,7 +30,7 @@
ifeq ($(MALLOC),tcmalloc)
FINAL_CFLAGS+= -DUSE_TCMALLOC
@@ -130,6 +130,9 @@
- FINAL_LIBS+= ../deps/jemalloc/lib/libjemalloc.a
+ FINAL_LIBS := ../deps/jemalloc/lib/libjemalloc.a $(FINAL_LIBS)
endif
+FINAL_CFLAGS+=-I${PREFIX}/include/lua51
@@ -42,10 +42,10 @@
@@ -150,6 +153,7 @@
REDIS_SERVER_NAME=redis-server
REDIS_SENTINEL_NAME=redis-sentinel
- REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o
+ REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o t_stream.o listpack.o localtime.o lolwut.o lolwut5.o
+REDIS_SERVER_OBJ+=fpconv.o lua_bit.o lua_cjson.o lua_cmsgpack.o lua_struct.o strbuf.o
REDIS_CLI_NAME=redis-cli
- REDIS_CLI_OBJ=anet.o adlist.o redis-cli.o zmalloc.o release.o anet.o ae.o crc64.o
+ REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o anet.o ae.o crc64.o siphash.o crc16.o
REDIS_BENCHMARK_NAME=redis-benchmark
@@ -201,7 +205,7 @@
diff --git a/databases/redis/files/extra-patch-src-Makefile.luajit b/databases/redis/files/extra-patch-src-Makefile.luajit
index 48da60aa531d..a0cc15f0f22a 100644
--- a/databases/redis/files/extra-patch-src-Makefile.luajit
+++ b/databases/redis/files/extra-patch-src-Makefile.luajit
@@ -1,5 +1,5 @@
---- src/Makefile.orig 2017-08-06 10:48:29.559222000 -0400
-+++ src/Makefile 2017-08-06 10:50:45.155432000 -0400
+--- src/Makefile.orig 2018-10-18 18:11:24.649811000 -0400
++++ src/Makefile 2018-10-18 18:11:35.160523000 -0400
@@ -16,7 +16,7 @@
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
@@ -30,7 +30,7 @@
ifeq ($(MALLOC),tcmalloc)
FINAL_CFLAGS+= -DUSE_TCMALLOC
@@ -130,6 +130,9 @@
- FINAL_LIBS+= ../deps/jemalloc/lib/libjemalloc.a
+ FINAL_LIBS := ../deps/jemalloc/lib/libjemalloc.a $(FINAL_LIBS)
endif
+FINAL_CFLAGS+=-I${PREFIX}/include/luajit-2.0
@@ -42,10 +42,10 @@
@@ -150,6 +153,7 @@
REDIS_SERVER_NAME=redis-server
REDIS_SENTINEL_NAME=redis-sentinel
- REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o
+ REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o t_stream.o listpack.o localtime.o lolwut.o lolwut5.o
+REDIS_SERVER_OBJ+=fpconv.o lua_bit.o lua_cjson.o lua_cmsgpack.o lua_struct.o strbuf.o
REDIS_CLI_NAME=redis-cli
- REDIS_CLI_OBJ=anet.o adlist.o redis-cli.o zmalloc.o release.o anet.o ae.o crc64.o
+ REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o anet.o ae.o crc64.o siphash.o crc16.o
REDIS_BENCHMARK_NAME=redis-benchmark
@@ -201,7 +205,7 @@
diff --git a/databases/redis/files/patch-deps-Makefile b/databases/redis/files/patch-deps-Makefile
index e252c929c246..385f0a116c6d 100644
--- a/databases/redis/files/patch-deps-Makefile
+++ b/databases/redis/files/patch-deps-Makefile
@@ -1,6 +1,6 @@
---- deps/Makefile.orig 2016-02-02 19:38:43.438304000 -0500
-+++ deps/Makefile 2016-02-02 19:40:05.911356000 -0500
-@@ -59,7 +59,7 @@
+--- deps/Makefile.orig 2019-09-25 10:40:18 UTC
++++ deps/Makefile
+@@ -58,7 +58,7 @@ ifeq ($(uname_S),SunOS)
LUA_CFLAGS= -D__C99FEATURES__=1
endif
@@ -9,7 +9,7 @@
LUA_LDFLAGS+= $(LDFLAGS)
# lua's Makefile defines AR="ar rcu", which is unusual, and makes it more
# challenging to cross-compile lua (and redis). These defines make it easier
-@@ -69,7 +69,7 @@
+@@ -68,7 +68,7 @@ ARFLAGS=rcu
lua: .make-prerequisites
@printf '%b %b\n' $(MAKECOLOR)MAKE$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR)
diff --git a/databases/redis/files/patch-deps-hiredis-Makefile b/databases/redis/files/patch-deps-hiredis-Makefile
index 705bc2fb97e0..a74d7b4cc81c 100644
--- a/databases/redis/files/patch-deps-hiredis-Makefile
+++ b/databases/redis/files/patch-deps-hiredis-Makefile
@@ -1,6 +1,6 @@
---- deps/hiredis/Makefile.orig 2017-05-01 19:46:31.733229000 -0400
-+++ deps/hiredis/Makefile 2017-05-01 19:48:37.150358000 -0400
-@@ -15,7 +15,7 @@
+--- deps/hiredis/Makefile.orig 2019-09-25 10:40:18 UTC
++++ deps/hiredis/Makefile
+@@ -15,7 +15,7 @@ HIREDIS_PATCH=$(shell grep HIREDIS_PATCH hiredis.h | a
HIREDIS_SONAME=$(shell grep HIREDIS_SONAME hiredis.h | awk '{print $$3}')
# Installation related variables and target
@@ -9,7 +9,7 @@
INCLUDE_PATH?=include/hiredis
LIBRARY_PATH?=lib
PKGCONF_PATH?=pkgconfig
-@@ -38,10 +38,10 @@
+@@ -38,10 +38,10 @@ export REDIS_TEST_CONFIG
# Fallback to gcc when $CC is not in $PATH.
CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
CXX:=$(shell sh -c 'type $(CXX) >/dev/null 2>/dev/null && echo $(CXX) || echo g++')
@@ -23,10 +23,11 @@
REAL_LDFLAGS=$(LDFLAGS) $(ARCH)
DYLIBSUFFIX=so
-@@ -60,6 +60,15 @@
+@@ -59,6 +59,15 @@ ifeq ($(uname_S),SunOS)
+ REAL_LDFLAGS+= -ldl -lnsl -lsocket
DYLIB_MAKE_CMD=$(CC) -G -o $(DYLIBNAME) -h $(DYLIB_MINOR_NAME) $(LDFLAGS)
INSTALL= cp -r
- endif
++endif
+ifeq ($(uname_S),FreeBSD)
+ CFLAGS?=$(CFLAGS)
+ CCLINK?=-pthread
@@ -35,7 +36,6 @@
+ DYLIB_MAKE_CMD?=$(CC) -o ${DYLIBNAME} ${OBJ}
+ STLIBNAME?=libhiredis.a
+ STLIB_MAKE_CMD?=ar rcs ${STLIBNAME} ${OBJ}
-+endif
+ endif
ifeq ($(uname_S),Darwin)
DYLIBSUFFIX=dylib
- DYLIB_MINOR_NAME=$(LIBNAME).$(HIREDIS_SONAME).$(DYLIBSUFFIX)
diff --git a/databases/redis/files/patch-deps-hiredis-net.c b/databases/redis/files/patch-deps-hiredis-net.c
index b230b0b91e4c..dc390fab3057 100644
--- a/databases/redis/files/patch-deps-hiredis-net.c
+++ b/databases/redis/files/patch-deps-hiredis-net.c
@@ -1,6 +1,6 @@
---- deps/hiredis/net.c.orig 2017-04-22 07:23:27.000000000 -0400
-+++ deps/hiredis/net.c 2017-05-05 20:02:09.292479000 -0400
-@@ -135,13 +135,12 @@
+--- deps/hiredis/net.c.orig 2019-09-25 10:40:18 UTC
++++ deps/hiredis/net.c
+@@ -135,13 +135,12 @@ int redisKeepAlive(redisContext *c, int interval) {
val = interval;
@@ -16,7 +16,7 @@
val = interval;
if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &val, sizeof(val)) < 0) {
__redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
-@@ -160,6 +159,27 @@
+@@ -160,6 +159,27 @@ int redisKeepAlive(redisContext *c, int interval) {
__redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
return REDIS_ERR;
}
@@ -44,7 +44,7 @@
#endif
#endif
-@@ -431,7 +451,7 @@
+@@ -431,7 +451,7 @@ int redisContextConnectUnix(redisContext *c, const cha
struct sockaddr_un sa;
long timeout_msec = -1;
@@ -53,7 +53,7 @@
return REDIS_ERR;
if (redisSetBlocking(c,0) != REDIS_OK)
return REDIS_ERR;
-@@ -456,7 +476,7 @@
+@@ -456,7 +476,7 @@ int redisContextConnectUnix(redisContext *c, const cha
if (redisContextTimeoutMsec(c,&timeout_msec) != REDIS_OK)
return REDIS_ERR;
diff --git a/databases/redis/files/patch-deps-linenoise-Makefile b/databases/redis/files/patch-deps-linenoise-Makefile
index 8f39994aa201..aef0f10966af 100644
--- a/databases/redis/files/patch-deps-linenoise-Makefile
+++ b/databases/redis/files/patch-deps-linenoise-Makefile
@@ -1,5 +1,5 @@
---- deps/linenoise/Makefile.orig 2015-01-17 22:13:25.000000000 +0300
-+++ deps/linenoise/Makefile 2015-01-17 22:13:45.000000000 +0300
+--- deps/linenoise/Makefile.orig 2019-09-25 10:40:18 UTC
++++ deps/linenoise/Makefile
@@ -1,10 +1,10 @@
STD=
WARN= -Wall
diff --git a/databases/redis/files/patch-redis.conf b/databases/redis/files/patch-redis.conf
index 5e8d12a9e10b..187a9dfd5d20 100644
--- a/databases/redis/files/patch-redis.conf
+++ b/databases/redis/files/patch-redis.conf
@@ -1,6 +1,6 @@
---- redis.conf.orig 2016-06-17 09:15:21.000000000 -0400
-+++ redis.conf 2016-06-18 11:58:19.871082000 -0400
-@@ -125,7 +125,7 @@
+--- redis.conf.orig 2019-09-25 10:40:18 UTC
++++ redis.conf
+@@ -133,7 +133,7 @@ tcp-keepalive 300
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
@@ -9,7 +9,7 @@
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
-@@ -147,7 +147,7 @@
+@@ -155,7 +155,7 @@ supervised no
#
# Creating a pid file is best effort: if Redis is not able to create it
# nothing bad happens, the server will start and run normally.
@@ -18,7 +18,7 @@
# Specify the server verbosity level.
# This can be one of:
-@@ -160,7 +160,7 @@
+@@ -168,7 +168,7 @@ loglevel notice
# Specify the log file name. Also the empty string can be used to force
# Redis to log on the standard output. Note that if you use standard
# output for logging but daemonize, logs will be sent to /dev/null
@@ -27,7 +27,7 @@
# To enable logging to the system logger, just set 'syslog-enabled' to yes,
# and optionally update the other syslog parameters to suit your needs.
-@@ -244,7 +244,7 @@
+@@ -260,7 +260,7 @@ dbfilename dump.rdb
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
diff --git a/databases/redis/files/patch-src-Makefile b/databases/redis/files/patch-src-Makefile
index bfbe89b2d241..039f8f0dbe1e 100644
--- a/databases/redis/files/patch-src-Makefile
+++ b/databases/redis/files/patch-src-Makefile
@@ -1,7 +1,7 @@
---- src/Makefile.orig 2015-04-01 17:01:44.000000000 +0300
-+++ src/Makefile 2015-04-07 21:30:22.464962000 +0300
-@@ -22,7 +22,7 @@
- WARN=-Wall -W
+--- src/Makefile.orig 2019-09-25 10:40:18 UTC
++++ src/Makefile
+@@ -29,7 +29,7 @@ endif
+ WARN=-Wall -W -Wno-missing-field-initializers
OPT=$(OPTIMIZATION)
-PREFIX?=/usr/local
@@ -9,7 +9,7 @@
INSTALL_BIN=$(PREFIX)/bin
INSTALL=install
-@@ -52,7 +52,6 @@
+@@ -75,7 +75,6 @@ endif
FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
FINAL_LIBS=-lm
@@ -17,9 +17,9 @@
ifeq ($(uname_S),SunOS)
# SunOS
-@@ -63,6 +62,11 @@
- ifeq ($(uname_S),Darwin)
- # Darwin (nothing to do)
+@@ -94,6 +93,11 @@ ifeq ($(uname_S),Darwin)
+ # Darwin
+ FINAL_LIBS+= -ldl
else
+ifeq ($(uname_S),FreeBSD)
+ # FreeBSD
@@ -29,11 +29,11 @@
ifeq ($(uname_S),AIX)
# AIX
FINAL_LDFLAGS+= -Wl,-bexpall
-@@ -75,6 +79,7 @@
+@@ -120,6 +124,7 @@ else
+ # All the other OSes (notably Linux)
+ FINAL_LDFLAGS+= -rdynamic
+ FINAL_LIBS+=-ldl -pthread -lrt
++endif
endif
endif
endif
-+endif
- # Include paths to dependencies
- FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src
-
diff --git a/databases/redis/files/patch-src-mkreleasehdr.sh b/databases/redis/files/patch-src-mkreleasehdr.sh
index 898eca80bfdb..05176402b0c0 100644
--- a/databases/redis/files/patch-src-mkreleasehdr.sh
+++ b/databases/redis/files/patch-src-mkreleasehdr.sh
@@ -1,5 +1,5 @@
---- src/mkreleasehdr.sh.orig 2013-08-13 15:39:40.000000000 +0400
-+++ src/mkreleasehdr.sh 2013-08-13 15:39:55.000000000 +0400
+--- src/mkreleasehdr.sh.orig 2019-09-25 10:40:18 UTC
++++ src/mkreleasehdr.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-GIT_SHA1=`(git show-ref --head --hash=8 2> /dev/null || echo 00000000) | head -n1`
@@ -7,5 +7,5 @@
+GIT_SHA1="00000000"
+GIT_DIRTY="0"
BUILD_ID=`uname -n`"-"`date +%s`
- test -f release.h || touch release.h
- (cat release.h | grep SHA1 | grep $GIT_SHA1) && \
+ if [ -n "$SOURCE_DATE_EPOCH" ]; then
+ BUILD_ID=$(date -u -d "@$SOURCE_DATE_EPOCH" +%s 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" +%s 2>/dev/null || date -u %s)
diff --git a/databases/redis4/Makefile b/databases/redis4/Makefile
new file mode 100644
index 000000000000..a627d00a9b2d
--- /dev/null
+++ b/databases/redis4/Makefile
@@ -0,0 +1,111 @@
+# Created by: Sergey Skvortsov <skv@protey.ru>
+# $FreeBSD$
+
+PORTNAME= redis4
+PORTVERSION= 4.0.14
+PORTREVISION= 1
+CATEGORIES= databases
+MASTER_SITES= http://download.redis.io/releases/
+DISTNAME= redis-${PORTVERSION}
+
+MAINTAINER= osa@FreeBSD.org
+COMMENT= Persistent key-value database with built-in net interface
+
+LICENSE= BSD3CLAUSE
+
+OPTIONS_DEFINE= TESTS TRIB
+OPTIONS_RADIO= EXTLUA
+OPTIONS_RADIO_EXTLUA= LUA LUAJIT
+OPTIONS_SUB= yes
+LUA_DESC= Use lang/lua instead of builtin lua
+LUAJIT_DESC= Use lang/luajit instead of builtin lua
+TESTS_DESC= Install lang/tcl for redis unit tests
+TRIB_DESC= Install redis-trib.rb (lang/ruby req.)
+
+.include <bsd.port.options.mk>
+
+.if ${ARCH} == i386 && ! ${CFLAGS:M-march=*}
+# Needed for __atomic_fetch_add_8
+USE_GCC= yes
+CFLAGS+= -march=i586
+.endif
+
+.if ${PORT_OPTIONS:MTRIB}
+CATEGORIES+= ruby
+USE_RUBY= yes
+RUN_DEPENDS= rubygem-redis>=2.2:databases/rubygem-redis
+.endif
+
+.if ${PORT_OPTIONS:MLUA}
+USES+= lua:51
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-src-Makefile.lua
+.endif
+
+.if ${PORT_OPTIONS:MLUAJIT}
+LIB_DEPENDS+= libluajit-5.1.so:lang/luajit
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-src-Makefile.luajit
+.endif
+
+.if ${PORT_OPTIONS:MLUA} || ${PORT_OPTIONS:MLUAJIT}
+CFLAGS+= -fPIC
+LDFLAGS+= -Wl,-E
+.endif
+
+.if ${PORT_OPTIONS:MTESTS}
+USES+= tcl:build
+.endif
+
+LDFLAGS+= -lpthread -lm -lexecinfo
+
+CONFLICTS?= redis-5.* redis-devel-5.*
+
+USES+= gmake
+MAKE_ENV= "V=yo"
+USE_RC_SUBR= redis sentinel
+BIN_FILES= redis-benchmark redis-check-aof redis-check-rdb \
+ redis-cli redis-sentinel redis-server
+
+USERS= redis
+GROUPS= redis
+
+REDIS_DBDIR?= /var/db/redis
+REDIS_RUNDIR?= /var/run/redis
+REDIS_LOGDIR?= /var/log/redis
+
+SUB_FILES= pkg-message
+SUB_LIST+= PORTNAME=${PORTNAME} \
+ REDIS_USER=${USERS} \
+ REDIS_DBDIR=${REDIS_DBDIR} \
+ REDIS_LOGDIR=${REDIS_LOGDIR} \
+ REDIS_RUNDIR=${REDIS_RUNDIR}
+
+PLIST_SUB+= REDIS_USER=${USERS} \
+ REDIS_GROUP=${GROUPS} \
+ REDIS_LOGDIR=${REDIS_LOGDIR} \
+ REDIS_DBDIR=${REDIS_DBDIR} \
+ REDIS_RUNDIR=${REDIS_RUNDIR}
+
+.if ${PORT_OPTIONS:MLUAJIT} || ${PORT_OPTIONS:MLUA}
+post-patch:
+ @cd ${WRKSRC}/deps/lua/src && ${CP} fpconv.* lua_* strbuf.* ${WRKSRC}/src/
+.endif
+
+post-build:
+ ${SED} ${SUB_LIST:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
+ ${WRKSRC}/redis.conf > ${WRKDIR}/redis.conf
+
+do-install:
+ ${INSTALL_PROGRAM} ${BIN_FILES:C!^!${WRKSRC}/src/!} ${STAGEDIR}${PREFIX}/bin/
+.if ${PORT_OPTIONS:MTRIB}
+ ${INSTALL_SCRIPT} ${WRKSRC}/src/redis-trib.rb ${STAGEDIR}${PREFIX}/bin/
+.endif
+ ${INSTALL_DATA} ${WRKDIR}/redis.conf ${STAGEDIR}${PREFIX}/etc/redis.conf.sample
+ ${INSTALL_DATA} ${WRKSRC}/sentinel.conf ${STAGEDIR}${PREFIX}/etc/sentinel.conf.sample
+ ${MKDIR} ${STAGEDIR}${REDIS_LOGDIR} \
+ ${STAGEDIR}${REDIS_DBDIR} \
+ ${STAGEDIR}${REDIS_RUNDIR}
+
+do-test:
+ @cd ${WRKSRC} && ${TCLSH} tests/test_helper.tcl
+
+.include <bsd.port.mk>
diff --git a/databases/redis4/distinfo b/databases/redis4/distinfo
new file mode 100644
index 000000000000..521076765de6
--- /dev/null
+++ b/databases/redis4/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1553045896
+SHA256 (redis-4.0.14.tar.gz) = 1e1e18420a86cfb285933123b04a82e1ebda20bfb0a289472745a087587e93a7
+SIZE (redis-4.0.14.tar.gz) = 1740967
diff --git a/databases/redis4/files/extra-patch-src-Makefile.lua b/databases/redis4/files/extra-patch-src-Makefile.lua
new file mode 100644
index 000000000000..02d59f386ffa
--- /dev/null
+++ b/databases/redis4/files/extra-patch-src-Makefile.lua
@@ -0,0 +1,58 @@
+--- src/Makefile.orig 2017-08-06 10:42:53.992510000 -0400
++++ src/Makefile 2017-08-06 10:44:57.344366000 -0400
+@@ -16,7 +16,7 @@
+ uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
+ uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
+ OPTIMIZATION?=-O2
+-DEPENDENCY_TARGETS=hiredis linenoise lua
++DEPENDENCY_TARGETS=hiredis linenoise
+ NODEPS:=clean distclean
+
+ # Default settings
+@@ -63,8 +63,8 @@
+ # Override default settings if possible
+ -include .make-settings
+
+-FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
+-FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
++FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS)
++FINAL_LDFLAGS=$(LDFLAGS) $(DEBUG)
+ FINAL_LIBS=-lm
+
+ ifeq ($(uname_S),SunOS)
+@@ -112,7 +112,7 @@
+ endif
+ endif
+ # Include paths to dependencies
+-FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src
++FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise
+
+ ifeq ($(MALLOC),tcmalloc)
+ FINAL_CFLAGS+= -DUSE_TCMALLOC
+@@ -130,6 +130,9 @@
+ FINAL_LIBS+= ../deps/jemalloc/lib/libjemalloc.a
+ endif
+
++FINAL_CFLAGS+=-I${PREFIX}/include/lua51
++FINAL_LIBS+= -L${PREFIX}/lib -llua-5.1
++
+ REDIS_CC=$(QUIET_CC)$(CC) $(FINAL_CFLAGS)
+ REDIS_LD=$(QUIET_LINK)$(CC) $(FINAL_LDFLAGS)
+ REDIS_INSTALL=$(QUIET_INSTALL)$(INSTALL)
+@@ -150,6 +153,7 @@
+ REDIS_SERVER_NAME=redis-server
+ REDIS_SENTINEL_NAME=redis-sentinel
+ REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o
++REDIS_SERVER_OBJ+=fpconv.o lua_bit.o lua_cjson.o lua_cmsgpack.o lua_struct.o strbuf.o
+ REDIS_CLI_NAME=redis-cli
+ REDIS_CLI_OBJ=anet.o adlist.o redis-cli.o zmalloc.o release.o anet.o ae.o crc64.o
+ REDIS_BENCHMARK_NAME=redis-benchmark
+@@ -201,7 +205,7 @@
+
+ # redis-server
+ $(REDIS_SERVER_NAME): $(REDIS_SERVER_OBJ)
+- $(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a ../deps/lua/src/liblua.a $(FINAL_LIBS)
++ $(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a $(FINAL_LIBS)
+
+ # redis-sentinel
+ $(REDIS_SENTINEL_NAME): $(REDIS_SERVER_NAME)
diff --git a/databases/redis4/files/extra-patch-src-Makefile.luajit b/databases/redis4/files/extra-patch-src-Makefile.luajit
new file mode 100644
index 000000000000..48da60aa531d
--- /dev/null
+++ b/databases/redis4/files/extra-patch-src-Makefile.luajit
@@ -0,0 +1,58 @@
+--- src/Makefile.orig 2017-08-06 10:48:29.559222000 -0400
++++ src/Makefile 2017-08-06 10:50:45.155432000 -0400
+@@ -16,7 +16,7 @@
+ uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
+ uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
+ OPTIMIZATION?=-O2
+-DEPENDENCY_TARGETS=hiredis linenoise lua
++DEPENDENCY_TARGETS=hiredis linenoise
+ NODEPS:=clean distclean
+
+ # Default settings
+@@ -63,8 +63,8 @@
+ # Override default settings if possible
+ -include .make-settings
+
+-FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
+-FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
++FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS)
++FINAL_LDFLAGS=$(LDFLAGS) $(DEBUG)
+ FINAL_LIBS=-lm
+
+ ifeq ($(uname_S),SunOS)
+@@ -112,7 +112,7 @@
+ endif
+ endif
+ # Include paths to dependencies
+-FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src
++FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise
+
+ ifeq ($(MALLOC),tcmalloc)
+ FINAL_CFLAGS+= -DUSE_TCMALLOC
+@@ -130,6 +130,9 @@
+ FINAL_LIBS+= ../deps/jemalloc/lib/libjemalloc.a
+ endif
+
++FINAL_CFLAGS+=-I${PREFIX}/include/luajit-2.0
++FINAL_LIBS+= -L${PREFIX}/lib -lluajit-5.1
++
+ REDIS_CC=$(QUIET_CC)$(CC) $(FINAL_CFLAGS)
+ REDIS_LD=$(QUIET_LINK)$(CC) $(FINAL_LDFLAGS)
+ REDIS_INSTALL=$(QUIET_INSTALL)$(INSTALL)
+@@ -150,6 +153,7 @@
+ REDIS_SERVER_NAME=redis-server
+ REDIS_SENTINEL_NAME=redis-sentinel
+ REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o
++REDIS_SERVER_OBJ+=fpconv.o lua_bit.o lua_cjson.o lua_cmsgpack.o lua_struct.o strbuf.o
+ REDIS_CLI_NAME=redis-cli
+ REDIS_CLI_OBJ=anet.o adlist.o redis-cli.o zmalloc.o release.o anet.o ae.o crc64.o
+ REDIS_BENCHMARK_NAME=redis-benchmark
+@@ -201,7 +205,7 @@
+
+ # redis-server
+ $(REDIS_SERVER_NAME): $(REDIS_SERVER_OBJ)
+- $(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a ../deps/lua/src/liblua.a $(FINAL_LIBS)
++ $(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a $(FINAL_LIBS)
+
+ # redis-sentinel
+ $(REDIS_SENTINEL_NAME): $(REDIS_SERVER_NAME)
diff --git a/databases/redis4/files/patch-deps-Makefile b/databases/redis4/files/patch-deps-Makefile
new file mode 100644
index 000000000000..e252c929c246
--- /dev/null
+++ b/databases/redis4/files/patch-deps-Makefile
@@ -0,0 +1,20 @@
+--- deps/Makefile.orig 2016-02-02 19:38:43.438304000 -0500
++++ deps/Makefile 2016-02-02 19:40:05.911356000 -0500
+@@ -59,7 +59,7 @@
+ LUA_CFLAGS= -D__C99FEATURES__=1
+ endif
+
+-LUA_CFLAGS+= -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' $(CFLAGS)
++LUA_CFLAGS+= -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' $(CFLAGS)
+ LUA_LDFLAGS+= $(LDFLAGS)
+ # lua's Makefile defines AR="ar rcu", which is unusual, and makes it more
+ # challenging to cross-compile lua (and redis). These defines make it easier
+@@ -69,7 +69,7 @@
+
+ lua: .make-prerequisites
+ @printf '%b %b\n' $(MAKECOLOR)MAKE$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR)
+- cd lua/src && $(MAKE) all CFLAGS="$(LUA_CFLAGS)" MYLDFLAGS="$(LUA_LDFLAGS)" AR="$(AR) $(ARFLAGS)"
++ cd lua/src && $(MAKE) all CC="$(CC)" CFLAGS="$(LUA_CFLAGS)" MYLDFLAGS="$(LUA_LDFLAGS)" AR="$(AR) $(ARFLAGS)"
+
+ .PHONY: lua
+
diff --git a/databases/redis4/files/patch-deps-hiredis-Makefile b/databases/redis4/files/patch-deps-hiredis-Makefile
new file mode 100644
index 000000000000..705bc2fb97e0
--- /dev/null
+++ b/databases/redis4/files/patch-deps-hiredis-Makefile
@@ -0,0 +1,41 @@
+--- deps/hiredis/Makefile.orig 2017-05-01 19:46:31.733229000 -0400
++++ deps/hiredis/Makefile 2017-05-01 19:48:37.150358000 -0400
+@@ -15,7 +15,7 @@
+ HIREDIS_SONAME=$(shell grep HIREDIS_SONAME hiredis.h | awk '{print $$3}')
+
+ # Installation related variables and target
+-PREFIX?=/usr/local
++PREFIX?=${PREFIX}
+ INCLUDE_PATH?=include/hiredis
+ LIBRARY_PATH?=lib
+ PKGCONF_PATH?=pkgconfig
+@@ -38,10 +38,10 @@
+ # Fallback to gcc when $CC is not in $PATH.
+ CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
+ CXX:=$(shell sh -c 'type $(CXX) >/dev/null 2>/dev/null && echo $(CXX) || echo g++')
+-OPTIMIZATION?=-O3
++#OPTIMIZATION?=-O3
+ WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings
+-DEBUG_FLAGS?= -g -ggdb
+-REAL_CFLAGS=$(OPTIMIZATION) -fPIC $(CFLAGS) $(WARNINGS) $(DEBUG_FLAGS) $(ARCH)
++#DEBUG_FLAGS?= -g -ggdb
++REAL_CFLAGS=$(OPTIMIZATION) -fPIC $(CFLAGS) $(WARNINGS) $(DEBUG_FLAGS)
+ REAL_LDFLAGS=$(LDFLAGS) $(ARCH)
+
+ DYLIBSUFFIX=so
+@@ -60,6 +60,15 @@
+ DYLIB_MAKE_CMD=$(CC) -G -o $(DYLIBNAME) -h $(DYLIB_MINOR_NAME) $(LDFLAGS)
+ INSTALL= cp -r
+ endif
++ifeq ($(uname_S),FreeBSD)
++ CFLAGS?=$(CFLAGS)
++ CCLINK?=-pthread
++ LDFLAGS?=-L. -Wl,-rpath,.
++ DYLIBNAME?=libhiredis.so
++ DYLIB_MAKE_CMD?=$(CC) -o ${DYLIBNAME} ${OBJ}
++ STLIBNAME?=libhiredis.a
++ STLIB_MAKE_CMD?=ar rcs ${STLIBNAME} ${OBJ}
++endif
+ ifeq ($(uname_S),Darwin)
+ DYLIBSUFFIX=dylib
+ DYLIB_MINOR_NAME=$(LIBNAME).$(HIREDIS_SONAME).$(DYLIBSUFFIX)
diff --git a/databases/redis4/files/patch-deps-hiredis-net.c b/databases/redis4/files/patch-deps-hiredis-net.c
new file mode 100644
index 000000000000..b230b0b91e4c
--- /dev/null
+++ b/databases/redis4/files/patch-deps-hiredis-net.c
@@ -0,0 +1,64 @@
+--- deps/hiredis/net.c.orig 2017-04-22 07:23:27.000000000 -0400
++++ deps/hiredis/net.c 2017-05-05 20:02:09.292479000 -0400
+@@ -135,13 +135,12 @@
+
+ val = interval;
+
+-#ifdef _OSX
++#if defined(_OSX)
+ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPALIVE, &val, sizeof(val)) < 0) {
+ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
+ return REDIS_ERR;
+ }
+-#else
+-#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__)
++#elif defined(__GLIBC__)
+ val = interval;
+ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &val, sizeof(val)) < 0) {
+ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
+@@ -160,6 +159,27 @@
+ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
+ return REDIS_ERR;
+ }
++#else
++#if !defined(__sun) && defined(TCP_KEEPIDLE) && defined(TCP_KEEPINTVL) && \
++ defined(TCP_KEEPCNT)
++ val = interval;
++ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &val, sizeof(val)) < 0) {
++ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
++ return REDIS_ERR;
++ }
++
++ val = interval/3;
++ if (val == 0) val = 1;
++ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, &val, sizeof(val)) < 0) {
++ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
++ return REDIS_ERR;
++ }
++
++ val = 3;
++ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT, &val, sizeof(val)) < 0) {
++ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
++ return REDIS_ERR;
++ }
+ #endif
+ #endif
+
+@@ -431,7 +451,7 @@
+ struct sockaddr_un sa;
+ long timeout_msec = -1;
+
+- if (redisCreateSocket(c,AF_LOCAL) < 0)
++ if (redisCreateSocket(c,AF_UNIX) < 0)
+ return REDIS_ERR;
+ if (redisSetBlocking(c,0) != REDIS_OK)
+ return REDIS_ERR;
+@@ -456,7 +476,7 @@
+ if (redisContextTimeoutMsec(c,&timeout_msec) != REDIS_OK)
+ return REDIS_ERR;
+
+- sa.sun_family = AF_LOCAL;
++ sa.sun_family = AF_UNIX;
+ strncpy(sa.sun_path,path,sizeof(sa.sun_path)-1);
+ if (connect(c->fd, (struct sockaddr*)&sa, sizeof(sa)) == -1) {
+ if (errno == EINPROGRESS && !blocking) {
diff --git a/databases/redis4/files/patch-deps-linenoise-Makefile b/databases/redis4/files/patch-deps-linenoise-Makefile
new file mode 100644
index 000000000000..8f39994aa201
--- /dev/null
+++ b/databases/redis4/files/patch-deps-linenoise-Makefile
@@ -0,0 +1,15 @@
+--- deps/linenoise/Makefile.orig 2015-01-17 22:13:25.000000000 +0300
++++ deps/linenoise/Makefile 2015-01-17 22:13:45.000000000 +0300
+@@ -1,10 +1,10 @@
+ STD=
+ WARN= -Wall
+-OPT= -Os
++#OPT= -Os
+
+ R_CFLAGS= $(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS)
+ R_LDFLAGS= $(LDFLAGS)
+-DEBUG= -g
++#DEBUG= -g
+
+ R_CC=$(CC) $(R_CFLAGS)
+ R_LD=$(CC) $(R_LDFLAGS)
diff --git a/databases/redis4/files/patch-redis.conf b/databases/redis4/files/patch-redis.conf
new file mode 100644
index 000000000000..5e8d12a9e10b
--- /dev/null
+++ b/databases/redis4/files/patch-redis.conf
@@ -0,0 +1,38 @@
+--- redis.conf.orig 2016-06-17 09:15:21.000000000 -0400
++++ redis.conf 2016-06-18 11:58:19.871082000 -0400
+@@ -125,7 +125,7 @@
+
+ # By default Redis does not run as a daemon. Use 'yes' if you need it.
+ # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
+-daemonize no
++daemonize yes
+
+ # If you run Redis from upstart or systemd, Redis can interact with your
+ # supervision tree. Options:
+@@ -147,7 +147,7 @@
+ #
+ # Creating a pid file is best effort: if Redis is not able to create it
+ # nothing bad happens, the server will start and run normally.
+-pidfile /var/run/redis_6379.pid
++pidfile %%REDIS_RUNDIR%%/redis.pid
+
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -160,7 +160,7 @@
+ # Specify the log file name. Also the empty string can be used to force
+ # Redis to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile %%REDIS_LOGDIR%%/redis.log
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+@@ -244,7 +244,7 @@
+ # The Append Only File will also be created inside this directory.
+ #
+ # Note that you must specify a directory here, not a file name.
+-dir ./
++dir %%REDIS_DBDIR%%/
+
+ ################################# REPLICATION #################################
+
diff --git a/databases/redis4/files/patch-src-Makefile b/databases/redis4/files/patch-src-Makefile
new file mode 100644
index 000000000000..bfbe89b2d241
--- /dev/null
+++ b/databases/redis4/files/patch-src-Makefile
@@ -0,0 +1,39 @@
+--- src/Makefile.orig 2015-04-01 17:01:44.000000000 +0300
++++ src/Makefile 2015-04-07 21:30:22.464962000 +0300
+@@ -22,7 +22,7 @@
+ WARN=-Wall -W
+ OPT=$(OPTIMIZATION)
+
+-PREFIX?=/usr/local
++PREFIX:=$(PREFIX)
+ INSTALL_BIN=$(PREFIX)/bin
+ INSTALL=install
+
+@@ -52,7 +52,6 @@
+ FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
+ FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
+ FINAL_LIBS=-lm
+-DEBUG=-g -ggdb
+
+ ifeq ($(uname_S),SunOS)
+ # SunOS
+@@ -63,6 +62,11 @@
+ ifeq ($(uname_S),Darwin)
+ # Darwin (nothing to do)
+ else
++ifeq ($(uname_S),FreeBSD)
++ # FreeBSD
++ FINAL_CFLAGS?= $(CFLAGS) $(REDIS_CFLAGS) -I${PREFIX}/include
++ FINAL_LDFLAGS= $(LDFLAGS) -pthread
++else
+ ifeq ($(uname_S),AIX)
+ # AIX
+ FINAL_LDFLAGS+= -Wl,-bexpall
+@@ -75,6 +79,7 @@
+ endif
+ endif
+ endif
++endif
+ # Include paths to dependencies
+ FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src
+
diff --git a/databases/redis/files/patch-src-config.h b/databases/redis4/files/patch-src-config.h
index 23666a862b96..23666a862b96 100644
--- a/databases/redis/files/patch-src-config.h
+++ b/databases/redis4/files/patch-src-config.h
diff --git a/databases/redis/files/patch-src-lua_cjson.c b/databases/redis4/files/patch-src-lua_cjson.c
index e4b95cb884ff..e4b95cb884ff 100644
--- a/databases/redis/files/patch-src-lua_cjson.c
+++ b/databases/redis4/files/patch-src-lua_cjson.c
diff --git a/databases/redis4/files/patch-src-mkreleasehdr.sh b/databases/redis4/files/patch-src-mkreleasehdr.sh
new file mode 100644
index 000000000000..898eca80bfdb
--- /dev/null
+++ b/databases/redis4/files/patch-src-mkreleasehdr.sh
@@ -0,0 +1,11 @@
+--- src/mkreleasehdr.sh.orig 2013-08-13 15:39:40.000000000 +0400
++++ src/mkreleasehdr.sh 2013-08-13 15:39:55.000000000 +0400
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+-GIT_SHA1=`(git show-ref --head --hash=8 2> /dev/null || echo 00000000) | head -n1`
+-GIT_DIRTY=`git diff --no-ext-diff 2> /dev/null | wc -l`
++GIT_SHA1="00000000"
++GIT_DIRTY="0"
+ BUILD_ID=`uname -n`"-"`date +%s`
+ test -f release.h || touch release.h
+ (cat release.h | grep SHA1 | grep $GIT_SHA1) && \
diff --git a/databases/redis4/files/pkg-message.in b/databases/redis4/files/pkg-message.in
new file mode 100644
index 000000000000..85a89529262a
--- /dev/null
+++ b/databases/redis4/files/pkg-message.in
@@ -0,0 +1,11 @@
+[
+{ type: install
+ message: <<EOM
+ To setup "%%PORTNAME%%" you need to edit the configuration file:
+ %%PREFIX%%/etc/%%PORTNAME%%.conf
+
+ To run redis from startup, add %%PORTNAME%%_enable="YES"
+ in your /etc/rc.conf.
+EOM
+}
+]
diff --git a/databases/redis4/files/redis.in b/databases/redis4/files/redis.in
new file mode 100644
index 000000000000..fb54f40bf2b3
--- /dev/null
+++ b/databases/redis4/files/redis.in
@@ -0,0 +1,70 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: redis
+# REQUIRE: LOGIN
+# BEFORE: securelevel
+# KEYWORD: shutdown
+
+# Add the following line to /etc/rc.conf to enable `redis':
+#
+#redis_enable="YES"
+#
+# Define profiles here to run separate redis instances:
+#
+#redis_profiles="foo bar" # Script uses %%PREFIX%%/etc/redis-NAME.conf respectively.
+# For correct script working please update pidfile entries in
+# redis-NAME.conf files.
+
+. /etc/rc.subr
+
+name="redis"
+rcvar="${name}_enable"
+
+extra_commands="reload"
+
+command="%%PREFIX%%/bin/redis-server"
+pidfile="%%REDIS_RUNDIR%%/$name.pid"
+
+# read configuration and set defaults
+load_rc_config "$name"
+: ${redis_enable="NO"}
+: ${redis_user="%%REDIS_USER%%"}
+: ${redis_config="%%PREFIX%%/etc/$name.conf"}
+
+command_args="${redis_config}"
+required_files="${redis_config}"
+
+_profile_exists() {
+ for _p in ${redis_profiles}; do
+ [ "${_p}" = "$1" ] && return 1;
+ done
+ return 0
+}
+
+if [ $# -eq 2 ]; then
+ _profile=$2
+ _profile_exists $_profile
+ _exists=$?
+ [ ${_exists} -ne 1 ] && {
+ echo "`basename %%PREFIX%%/etc/rc.d/redis`: no '$2' in 'redis_profiles'"
+ exit 1
+ };
+ echo "-- Profile: ${_profile} --"
+ config_file="%%PREFIX%%/etc/${name}-${_profile}.conf"
+ command_args="${config_file}"
+ pidfile="%%REDIS_RUNDIR%%/${_profile}.pid"
+ required_files="${config_file}"
+elif [ -n "${redis_profiles}" ]; then
+ _swap=$*; shift; _profiles=$*
+ _profiles=${_profiles:-${redis_profiles}}
+ set -- ${_swap}
+ for _profile in ${_profiles}; do
+ %%PREFIX%%/etc/rc.d/redis $1 ${_profile}
+ done
+ exit 0
+fi
+
+run_rc_command "$1"
diff --git a/databases/redis4/files/sentinel.in b/databases/redis4/files/sentinel.in
new file mode 100644
index 000000000000..b66ae1492b01
--- /dev/null
+++ b/databases/redis4/files/sentinel.in
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: sentinel
+# REQUIRE: LOGIN
+# BEFORE: securelevel
+# KEYWORD: shutdown
+
+# Add the following line to /etc/rc.conf to enable `sentinel':
+#
+#sentinel_enable="YES"
+#
+
+. /etc/rc.subr
+
+name="sentinel"
+rcvar="${name}_enable"
+
+command="/usr/local/bin/redis-sentinel"
+pidfile="/var/run/redis/$name.pid"
+
+# read configuration and set defaults
+load_rc_config "$name"
+: ${sentinel_enable="NO"}
+: ${sentinel_user="redis"}
+: ${sentinel_config="/usr/local/etc/$name.conf"}
+
+command_args="${sentinel_config} --daemonize yes --pidfile ${pidfile}"
+required_files="${sentinel_config}"
+start_precmd="${name}_checks"
+restart_precmd="${name}_checks"
+
+sentinel_checks()
+{
+ if [ x`id -u ${sentinel_user}` != x`stat -f %u ${sentinel_config}` ]; then
+ err 1 "${sentinel_config} must be owned by user ${sentinel_user}"
+ fi
+}
+
+run_rc_command "$1"
diff --git a/databases/redis4/pkg-descr b/databases/redis4/pkg-descr
new file mode 100644
index 000000000000..e034aa3723ba
--- /dev/null
+++ b/databases/redis4/pkg-descr
@@ -0,0 +1,19 @@
+Redis is an open source, advanced key-value store. It is often referred
+to as a data structure server since keys can contain strings, hashes,
+lists, sets and sorted sets.
+
+You can run atomic operations on these types, like appending to a string;
+incrementing the value in a hash; pushing to a list; computing set
+intersection, union and difference; or getting the member with highest
+ranking in a sorted set.
+
+In order to achieve its outstanding performance, Redis works with an
+in-memory dataset. Depending on your use case, you can persist it either
+by dumping the dataset to disk every once in a while, or by appending each
+command to a log.
+
+Redis also supports trivial-to-setup master-slave replication, with very
+fast non-blocking first synchronization, auto-reconnection on net split
+and so forth.
+
+WWW: http://redis.io/
diff --git a/databases/redis4/pkg-plist b/databases/redis4/pkg-plist
new file mode 100644
index 000000000000..7bc055909fdd
--- /dev/null
+++ b/databases/redis4/pkg-plist
@@ -0,0 +1,12 @@
+bin/redis-benchmark
+bin/redis-check-aof
+bin/redis-check-rdb
+bin/redis-cli
+bin/redis-sentinel
+bin/redis-server
+%%TRIB%%bin/redis-trib.rb
+@sample etc/redis.conf.sample
+@sample(%%REDIS_USER%%,%%REDIS_GROUP%%,) etc/sentinel.conf.sample
+@dir(%%REDIS_USER%%,%%REDIS_GROUP%%,) %%REDIS_DBDIR%%
+@dir(%%REDIS_USER%%,%%REDIS_GROUP%%,) %%REDIS_LOGDIR%%
+@dir(%%REDIS_USER%%,%%REDIS_GROUP%%,) %%REDIS_RUNDIR%%
diff --git a/databases/rubygem-hiredis/Makefile b/databases/rubygem-hiredis/Makefile
index 22e56e1cea2a..c30426c71835 100644
--- a/databases/rubygem-hiredis/Makefile
+++ b/databases/rubygem-hiredis/Makefile
@@ -3,7 +3,7 @@
PORTNAME= hiredis
PORTVERSION= 0.6.3
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= databases rubygems
MASTER_SITES= RG