Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Aug 2021 22:03:32 GMT
From:      "Sergey A. Osokin" <osa@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 7ad2136d0760 - main - databases/redis6: create a copy before update databases/redis to 6.2
Message-ID:  <202108182203.17IM3WxT067789@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by osa:

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

commit 7ad2136d0760315c890e0126041e43ae24f13900
Author:     Sergey A. Osokin <osa@FreeBSD.org>
AuthorDate: 2021-08-18 22:01:46 +0000
Commit:     Sergey A. Osokin <osa@FreeBSD.org>
CommitDate: 2021-08-18 22:01:46 +0000

    databases/redis6: create a copy before update databases/redis to 6.2
---
 databases/redis6/Makefile                          | 124 +++++++++++++++++++++
 databases/redis6/distinfo                          |   3 +
 .../files/extra-patch-deps_lua_src_lua__cjson.c    |  11 ++
 .../redis6/files/extra-patch-src-Makefile.lua      |  58 ++++++++++
 .../redis6/files/extra-patch-src-Makefile.luajit   |  58 ++++++++++
 .../files/extra-patch-src-Makefile.luajit-or       |  58 ++++++++++
 databases/redis6/files/patch-deps-Makefile         |  20 ++++
 databases/redis6/files/patch-deps-hiredis-Makefile |  40 +++++++
 databases/redis6/files/patch-deps-hiredis-net.c    |  39 +++++++
 .../redis6/files/patch-deps-linenoise-Makefile     |  15 +++
 databases/redis6/files/patch-deps_Makefile         |  18 +++
 .../redis6/files/patch-deps_lua_src_lua__cjson.c   |  12 ++
 databases/redis6/files/patch-redis.conf            |  38 +++++++
 databases/redis6/files/patch-src-Makefile          |  39 +++++++
 databases/redis6/files/patch-src-mkreleasehdr.sh   |  11 ++
 databases/redis6/files/pkg-message.in              |  11 ++
 databases/redis6/files/redis.in                    |  67 +++++++++++
 databases/redis6/files/sentinel.in                 |  39 +++++++
 databases/redis6/pkg-descr                         |  19 ++++
 databases/redis6/pkg-plist                         |  12 ++
 20 files changed, 692 insertions(+)

diff --git a/databases/redis6/Makefile b/databases/redis6/Makefile
new file mode 100644
index 000000000000..373cae148c65
--- /dev/null
+++ b/databases/redis6/Makefile
@@ -0,0 +1,124 @@
+# Created by: Sergey Skvortsov <skv@protey.ru>
+
+PORTNAME=	redis6
+PORTVERSION=	6.0.15
+CATEGORIES=	databases
+MASTER_SITES=	https://download.redis.io/releases/
+DISTNAME=	redis-${PORTVERSION}
+
+MAINTAINER=	osa@FreeBSD.org
+COMMENT=	Persistent key-value database with built-in net interface
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+USES+=		compiler:c11 gmake
+
+OPTIONS_DEFINE=	JEMALLOC TESTS TLS TRIB
+OPTIONS_RADIO=	EXTLUA
+OPTIONS_RADIO_EXTLUA=	LUA LUAJIT LUAJITOR
+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
+LUAJITOR_DESC=	Use lang/luajit-openresty instead of builtin lua
+TLS_DESC=	Use TLS (openssl req.)
+TESTS_DESC=	Install lang/tcl for redis unit tests
+TRIB_DESC=	Install redis-trib.rb (lang/ruby req.)
+
+MAKE_ENV=	V=yo OPTIMIZATION=
+
+JEMALLOC_MAKE_ENV=	USE_JEMALLOC=yes
+
+LUA_USES=		lua:51
+LUA_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-src-Makefile.lua
+LUA_VARS=		_addflags=true
+
+LUAJIT_LIB_DEPENDS=	libluajit-5.1.so:lang/luajit
+LUAJIT_BUILD_DEPENDS=	${LOCALBASE}/include/luajit-2.0/lua.h:lang/luajit
+LUAJIT_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-src-Makefile.luajit
+LUAJIT_VARS=		_addflags=true
+
+LUAJITOR_LIB_DEPENDS=	libluajit-5.1.so:lang/luajit-openresty
+LUAJITOR_BUILD_DEPENDS=	${LOCALBASE}/include/luajit-2.1/lua.h:lang/luajit-openresty
+LUAJITOR_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-src-Makefile.luajit-or \
+			${PATCHDIR}/extra-patch-deps_lua_src_lua__cjson.c
+LUAJITOR_VARS=		_addflags=true
+
+TESTS_USES=	tcl:build
+
+TLS_USES=	ssl
+TLS_MAKE_ENV=	BUILD_TLS=yes
+
+TRIB_CATEGORIES=	ruby
+TRIB_USE=		ruby=yes
+TRIB_RUN_DEPENDS=	rubygem-redis>=2.2:databases/rubygem-redis
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == i386 && ! ${CFLAGS:M-march=*}
+# Needed for __atomic_fetch_add_8
+USE_GCC=	yes
+CFLAGS+=	-march=i586
+.endif
+
+.if defined(_addflags)
+CFLAGS=		-fPIC
+LDFLAGS=	-Wl,-E
+.endif
+
+LDFLAGS+=	-lpthread -lm -lexecinfo
+
+CONFLICTS?=	redis5-5.* redis-devel-6.*
+
+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}
+
+post-patch-JEMALLOC-on:
+	@${REINPLACE_CMD} '35s!Linux!FreeBSD!g' ${WRKSRC}/src/Makefile
+
+post-patch-LUA-on:
+	@cd ${WRKSRC}/deps/lua/src && ${CP} fpconv.* lua_* strbuf.* ${WRKSRC}/src/
+post-patch-LUAJIT-on:	post-patch-LUA-on
+post-patch-LUAJITOR-on:	post-patch-LUA-on
+
+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/
+	${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-install-TRIB-on:
+	${INSTALL_SCRIPT} ${WRKSRC}/src/redis-trib.rb ${STAGEDIR}${PREFIX}/bin/
+
+do-test:
+	@cd ${WRKSRC} && ${TCLSH} tests/test_helper.tcl
+
+.include <bsd.port.post.mk>
diff --git a/databases/redis6/distinfo b/databases/redis6/distinfo
new file mode 100644
index 000000000000..d8a3994a10b7
--- /dev/null
+++ b/databases/redis6/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1626937566
+SHA256 (redis-6.0.15.tar.gz) = 4bc295264a95bc94423c162a9eee66135a24a51eefe5f53f18fc9bde5c3a9f74
+SIZE (redis-6.0.15.tar.gz) = 2282471
diff --git a/databases/redis6/files/extra-patch-deps_lua_src_lua__cjson.c b/databases/redis6/files/extra-patch-deps_lua_src_lua__cjson.c
new file mode 100644
index 000000000000..847b70d25dea
--- /dev/null
+++ b/databases/redis6/files/extra-patch-deps_lua_src_lua__cjson.c
@@ -0,0 +1,11 @@
+--- deps/lua/src/lua_cjson.c.orig	2019-12-08 07:56:31.419672000 -0500
++++ deps/lua/src/lua_cjson.c	2019-12-08 07:56:52.389362000 -0500
+@@ -1299,7 +1299,7 @@
+  *
+  * luaL_setfuncs() is used to create a module table where the functions have
+  * json_config_t as their first upvalue. Code borrowed from Lua 5.2 source. */
+-static void luaL_setfuncs (lua_State *l, const luaL_Reg *reg, int nup)
++void luaL_setfuncs (lua_State *l, const luaL_Reg *reg, int nup)
+ {
+     int i;
+ 
diff --git a/databases/redis6/files/extra-patch-src-Makefile.lua b/databases/redis6/files/extra-patch-src-Makefile.lua
new file mode 100644
index 000000000000..bbcae4d3acc1
--- /dev/null
+++ b/databases/redis6/files/extra-patch-src-Makefile.lua
@@ -0,0 +1,58 @@
+--- src/Makefile.orig	2020-05-15 16:29:52.000000000 -0400
++++ src/Makefile	2020-05-16 12:20:46.728148000 -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
+@@ -73,8 +73,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
+ DEBUG=-g -ggdb
+ 
+@@ -149,7 +149,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
+ 
+ # Determine systemd support and/or build preference (defaulting to auto-detection)
+ BUILD_WITH_SYSTEMD=no
+@@ -197,6 +197,9 @@
+     FINAL_LIBS += ../deps/hiredis/libhiredis_ssl.a -lssl -lcrypto
+ 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)
+@@ -217,6 +220,7 @@
+ REDIS_SERVER_NAME=redis-server$(PROG_SUFFIX)
+ REDIS_SENTINEL_NAME=redis-sentinel$(PROG_SUFFIX)
+ 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 crcspeed.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 lolwut6.o acl.o gopher.o tracking.o connection.o tls.o sha256.o timeout.o setcpuaffinity.o mt19937-64.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$(PROG_SUFFIX)
+ REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o ae.o crcspeed.o crc64.o siphash.o crc16.o mt19937-64.o
+ REDIS_BENCHMARK_NAME=redis-benchmark$(PROG_SUFFIX)
+@@ -268,7 +272,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/redis6/files/extra-patch-src-Makefile.luajit b/databases/redis6/files/extra-patch-src-Makefile.luajit
new file mode 100644
index 000000000000..f81f2ac24c80
--- /dev/null
+++ b/databases/redis6/files/extra-patch-src-Makefile.luajit
@@ -0,0 +1,58 @@
+--- src/Makefile.orig	2020-05-15 16:29:52.000000000 -0400
++++ src/Makefile	2020-05-16 12:25:33.461058000 -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
+@@ -73,8 +73,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
+ DEBUG=-g -ggdb
+ 
+@@ -149,7 +149,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
+ 
+ # Determine systemd support and/or build preference (defaulting to auto-detection)
+ BUILD_WITH_SYSTEMD=no
+@@ -197,6 +197,9 @@
+     FINAL_LIBS += ../deps/hiredis/libhiredis_ssl.a -lssl -lcrypto
+ 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)
+@@ -217,6 +220,7 @@
+ REDIS_SERVER_NAME=redis-server$(PROG_SUFFIX)
+ REDIS_SENTINEL_NAME=redis-sentinel$(PROG_SUFFIX)
+ 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 crcspeed.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 lolwut6.o acl.o gopher.o tracking.o connection.o tls.o sha256.o timeout.o setcpuaffinity.o mt19937-64.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$(PROG_SUFFIX)
+ REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o ae.o crcspeed.o crc64.o siphash.o crc16.o mt19937-64.o
+ REDIS_BENCHMARK_NAME=redis-benchmark$(PROG_SUFFIX)
+@@ -268,7 +272,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/redis6/files/extra-patch-src-Makefile.luajit-or b/databases/redis6/files/extra-patch-src-Makefile.luajit-or
new file mode 100644
index 000000000000..916971af2a7e
--- /dev/null
+++ b/databases/redis6/files/extra-patch-src-Makefile.luajit-or
@@ -0,0 +1,58 @@
+--- src/Makefile.orig	2020-05-15 16:29:52.000000000 -0400
++++ src/Makefile	2020-05-16 12:22:56.630826000 -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
+@@ -73,8 +73,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
+ DEBUG=-g -ggdb
+ 
+@@ -149,7 +149,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
+ 
+ # Determine systemd support and/or build preference (defaulting to auto-detection)
+ BUILD_WITH_SYSTEMD=no
+@@ -197,6 +197,9 @@
+     FINAL_LIBS += ../deps/hiredis/libhiredis_ssl.a -lssl -lcrypto
+ endif
+ 
++FINAL_CFLAGS+=-I${PREFIX}/include/luajit-2.1
++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)
+@@ -217,6 +220,7 @@
+ REDIS_SERVER_NAME=redis-server$(PROG_SUFFIX)
+ REDIS_SENTINEL_NAME=redis-sentinel$(PROG_SUFFIX)
+ 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 crcspeed.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 lolwut6.o acl.o gopher.o tracking.o connection.o tls.o sha256.o timeout.o setcpuaffinity.o mt19937-64.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$(PROG_SUFFIX)
+ REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o ae.o crcspeed.o crc64.o siphash.o crc16.o mt19937-64.o
+ REDIS_BENCHMARK_NAME=redis-benchmark$(PROG_SUFFIX)
+@@ -268,7 +272,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/redis6/files/patch-deps-Makefile b/databases/redis6/files/patch-deps-Makefile
new file mode 100644
index 000000000000..385f0a116c6d
--- /dev/null
+++ b/databases/redis6/files/patch-deps-Makefile
@@ -0,0 +1,20 @@
+--- 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
+ 
+-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
+@@ -68,7 +68,7 @@ ARFLAGS=rcu
+ 
+ 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/redis6/files/patch-deps-hiredis-Makefile b/databases/redis6/files/patch-deps-hiredis-Makefile
new file mode 100644
index 000000000000..1b08c4514d3d
--- /dev/null
+++ b/databases/redis6/files/patch-deps-hiredis-Makefile
@@ -0,0 +1,40 @@
+--- deps/hiredis/Makefile.orig	2019-11-29 16:35:59 UTC
++++ deps/hiredis/Makefile
+@@ -21,7 +21,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
+-PREFIX?=/usr/local
++PREFIX?=${PREFIX}
+ INCLUDE_PATH?=include/hiredis
+ LIBRARY_PATH?=lib
+ PKGCONF_PATH?=pkgconfig
+@@ -44,10 +44,8 @@ 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++')
+-OPTIMIZATION?=-O3
+ WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers
+-DEBUG_FLAGS?= -g -ggdb
+-REAL_CFLAGS=$(OPTIMIZATION) -fPIC $(CPPFLAGS) $(CFLAGS) $(WARNINGS) $(DEBUG_FLAGS)
++REAL_CFLAGS=$(OPTIMIZATION) -fPIC $(CFLAGS) $(WARNINGS) $(DEBUG_FLAGS)
+ REAL_LDFLAGS=$(LDFLAGS)
+ 
+ DYLIBSUFFIX=so
+@@ -82,6 +80,16 @@ endif
+ ifeq ($(uname_S),SunOS)
+   REAL_LDFLAGS+= -ldl -lnsl -lsocket
+   DYLIB_MAKE_CMD=$(CC) -G -o $(DYLIBNAME) -h $(DYLIB_MINOR_NAME) $(LDFLAGS)
++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}
++  SSL_LDFLAGS+=	${OPENSSL_LDFLAGS}
+ endif
+ ifeq ($(uname_S),Darwin)
+   DYLIBSUFFIX=dylib
diff --git a/databases/redis6/files/patch-deps-hiredis-net.c b/databases/redis6/files/patch-deps-hiredis-net.c
new file mode 100644
index 000000000000..3fd2b5996f97
--- /dev/null
+++ b/databases/redis6/files/patch-deps-hiredis-net.c
@@ -0,0 +1,39 @@
+--- deps/hiredis/net.c.orig	2019-11-28 14:32:05.942453000 -0500
++++ deps/hiredis/net.c	2019-11-28 14:39:08.326408000 -0500
+@@ -178,14 +178,34 @@
+         __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
+         return REDIS_ERR;
+     }
+-#else
+-#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__)
++#elif defined(__GLIBC__)
+     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;
++    }
++#else
++#if !defined(__sun) && defined(TCP_KEEPIDLE) && defined(TCP_KEEPINTL) && \
++    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 = internal/3;
+     if (val == 0) val = 1;
+     if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, &val, sizeof(val)) < 0) {
+         __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
diff --git a/databases/redis6/files/patch-deps-linenoise-Makefile b/databases/redis6/files/patch-deps-linenoise-Makefile
new file mode 100644
index 000000000000..aef0f10966af
--- /dev/null
+++ b/databases/redis6/files/patch-deps-linenoise-Makefile
@@ -0,0 +1,15 @@
+--- deps/linenoise/Makefile.orig	2019-09-25 10:40:18 UTC
++++ deps/linenoise/Makefile
+@@ -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/redis6/files/patch-deps_Makefile b/databases/redis6/files/patch-deps_Makefile
new file mode 100644
index 000000000000..ab5b282c67f5
--- /dev/null
+++ b/databases/redis6/files/patch-deps_Makefile
@@ -0,0 +1,18 @@
+--- deps/Makefile.orig	2019-11-29 16:35:59 UTC
++++ deps/Makefile
+@@ -76,12 +76,12 @@ lua: .make-prerequisites
+ 
+ .PHONY: lua
+ 
+-JEMALLOC_CFLAGS= -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops $(CFLAGS)
++JEMALLOC_CFLAGS= -std=gnu99 -Wall -pipe -funroll-loops $(CFLAGS)
+ JEMALLOC_LDFLAGS= $(LDFLAGS)
+ 
+ jemalloc: .make-prerequisites
+ 	@printf '%b %b\n' $(MAKECOLOR)MAKE$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR)
+-	cd jemalloc && ./configure --with-version=5.1.0-0-g0 --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="$(JEMALLOC_CFLAGS)" LDFLAGS="$(JEMALLOC_LDFLAGS)"
+-	cd jemalloc && $(MAKE) CFLAGS="$(JEMALLOC_CFLAGS)" LDFLAGS="$(JEMALLOC_LDFLAGS)" lib/libjemalloc.a
++	cd jemalloc && ./configure --with-version=5.1.0-0-g0 --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="$(JEMALLOC_CFLAGS)" CXXFLAGS="$(JEMALLOC_CFLAGS)" LDFLAGS="$(JEMALLOC_LDFLAGS)"
++	cd jemalloc && $(MAKE) CFLAGS="$(JEMALLOC_CFLAGS)" CXXFLAGS="$(JEMALLOC_CFLAGS)" LDFLAGS="$(JEMALLOC_LDFLAGS)" lib/libjemalloc.a
+ 
+ .PHONY: jemalloc
diff --git a/databases/redis6/files/patch-deps_lua_src_lua__cjson.c b/databases/redis6/files/patch-deps_lua_src_lua__cjson.c
new file mode 100644
index 000000000000..0bb150504c67
--- /dev/null
+++ b/databases/redis6/files/patch-deps_lua_src_lua__cjson.c
@@ -0,0 +1,12 @@
+--- deps/lua/src/lua_cjson.c.orig	2019-09-25 10:40:18 UTC
++++ deps/lua/src/lua_cjson.c
+@@ -46,7 +46,9 @@
+ #include "strbuf.h"
+ #include "fpconv.h"
+ 
++#if defined(__sun)
+ #include "../../../src/solarisfixes.h"
++#endif
+ 
+ #ifndef CJSON_MODNAME
+ #define CJSON_MODNAME   "cjson"
diff --git a/databases/redis6/files/patch-redis.conf b/databases/redis6/files/patch-redis.conf
new file mode 100644
index 000000000000..e70b7e609ca1
--- /dev/null
+++ b/databases/redis6/files/patch-redis.conf
@@ -0,0 +1,38 @@
+--- redis.conf.orig	2019-11-22 16:54:22 UTC
++++ redis.conf
+@@ -203,7 +203,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.
+-daemonize no
++daemonize yes
+ 
+ # If you run Redis from upstart or systemd, Redis can interact with your
+ # supervision tree. Options:
+@@ -225,7 +225,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.
+-pidfile /var/run/redis_6379.pid
++pidfile %%REDIS_RUNDIR%%/redis.pid
+ 
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -238,7 +238,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
+-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.
+@@ -330,7 +330,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.
+-dir ./
++dir %%REDIS_DBDIR%%/
+ 
+ ################################# REPLICATION #################################
+ 
diff --git a/databases/redis6/files/patch-src-Makefile b/databases/redis6/files/patch-src-Makefile
new file mode 100644
index 000000000000..6b3ed47b68be
--- /dev/null
+++ b/databases/redis6/files/patch-src-Makefile
@@ -0,0 +1,39 @@
+--- src/Makefile.orig	2019-11-29 16:35:59 UTC
++++ src/Makefile
+@@ -29,7 +29,7 @@ endif
+ WARN=-Wall -W -Wno-missing-field-initializers
+ OPT=$(OPTIMIZATION)
+ 
+-PREFIX?=/usr/local
++PREFIX:=$(PREFIX)
+ INSTALL_BIN=$(PREFIX)/bin
+ INSTALL=install
+ 
+@@ -75,7 +75,6 @@ endif
+ FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
+ FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
+ FINAL_LIBS=-lm
+-DEBUG=-g -ggdb
+ 
+ # Linux ARM needs -latomic at linking time
+ ifneq (,$(filter aarch64 armv,$(uname_M)))
+@@ -105,6 +104,11 @@ ifeq ($(uname_S),Darwin)
+ 	OPENSSL_CFLAGS=-I/usr/local/opt/openssl/include
+ 	OPENSSL_LDFLAGS=-L/usr/local/opt/openssl/lib
+ 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
+@@ -131,6 +135,7 @@ else
+ 	# All the other OSes (notably Linux)
+ 	FINAL_LDFLAGS+= -rdynamic
+ 	FINAL_LIBS+=-ldl -pthread -lrt
++endif
+ endif
+ endif
+ endif
diff --git a/databases/redis6/files/patch-src-mkreleasehdr.sh b/databases/redis6/files/patch-src-mkreleasehdr.sh
new file mode 100644
index 000000000000..e48b3174d315
--- /dev/null
+++ b/databases/redis6/files/patch-src-mkreleasehdr.sh
@@ -0,0 +1,11 @@
+--- src/mkreleasehdr.sh.orig	2019-11-22 16:54:22 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`
+-GIT_DIRTY=`git diff --no-ext-diff 2> /dev/null | wc -l`
++GIT_SHA1="00000000"
++GIT_DIRTY="0"
+ BUILD_ID=`uname -n`"-"`date +%s`
+ 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/redis6/files/pkg-message.in b/databases/redis6/files/pkg-message.in
new file mode 100644
index 000000000000..85a89529262a
--- /dev/null
+++ b/databases/redis6/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/redis6/files/redis.in b/databases/redis6/files/redis.in
new file mode 100644
index 000000000000..d18063c3a504
--- /dev/null
+++ b/databases/redis6/files/redis.in
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# 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/redis6/files/sentinel.in b/databases/redis6/files/sentinel.in
new file mode 100644
index 000000000000..088f4382fc06
--- /dev/null
+++ b/databases/redis6/files/sentinel.in
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# 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/redis6/pkg-descr b/databases/redis6/pkg-descr
new file mode 100644
index 000000000000..15beb1c8d992
--- /dev/null
+++ b/databases/redis6/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: https://redis.io/
diff --git a/databases/redis6/pkg-plist b/databases/redis6/pkg-plist
new file mode 100644
index 000000000000..7bc055909fdd
--- /dev/null
+++ b/databases/redis6/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%%



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202108182203.17IM3WxT067789>