freebsd-ports/databases/redis/Makefile
Sergey A. Osokin b4bbd9ad05 Update from 5.0.8 to 5.0.9.
<ChangeLog>

Upgrade urgency:CRITICAL if you use Streams with AOF ore replicas.
                Otherwise the upgrade urgency is LOW.

This release has a speed improvement and a critical fix:

* FIX: XREADGROUP when fetching data in a blocking way, would not
       emit the XCLAIM in the AOF file and to replicas. This means
       that the last ID is not updated, and that restarting the server
       will have the effect of reprocessing some entries.
* NEW: Clients blocked on the same key are now unblocked on
       O(1) time. Backported from Redis 6.

</ChangeLog>
2020-04-18 15:39:22 +00:00

128 lines
3.3 KiB
Makefile

# Created by: Sergey Skvortsov <skv@protey.ru>
# $FreeBSD$
PORTNAME= redis
PORTVERSION= 5.0.9
CATEGORIES= databases
MASTER_SITES= http://download.redis.io/releases/
MAINTAINER= osa@FreeBSD.org
COMMENT= Persistent key-value database with built-in net interface
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/COPYING
OPTIONS_DEFINE= JEMALLOC TESTS 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-openjit instead of builtin lua
TESTS_DESC= Install lang/tcl for redis unit tests
TRIB_DESC= Install redis-trib.rb (lang/ruby req.)
USES+= compiler:c11 gmake
MAKE_ENV= "V=yo"
.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:MJEMALLOC}
MAKE_ENV+= "USE_JEMALLOC=yes"
.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:MLUAJITOR}
LIB_DEPENDS+= libluajit-5.1.so:lang/luajit-openresty
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-src-Makefile.luajit-or \
${PATCHDIR}/extra-patch-deps_lua_src_lua__cjson.c
.endif
.if ${PORT_OPTIONS:MLUA} || ${PORT_OPTIONS:MLUAJIT} || ${PORT_OPTIONS:MLUAJITOR}
CFLAGS+= -fPIC
LDFLAGS+= -Wl,-E
.endif
.if ${PORT_OPTIONS:MTESTS}
USES+= tcl:build
.endif
LDFLAGS+= -lpthread -lm -lexecinfo
CONFLICTS?= redis4-4.* redis-devel-5.*
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}
.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} || ${PORT_OPTIONS:MLUAJITOR}
@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.post.mk>