freebsd-ports/databases/redis/Makefile
Sergey A. Osokin fd0951a387 Upgrade from 2.6.15 to 2.6.16.
<ChangeLog>

UPGRADE URGENCY: MODERATE.

* [FIX] Stop writes when fork() fails when trying to BGSAVE. BGSAVE errors
        were trapped only in the case the saving child failed, so the fork()
        error was no trapped as no child is created at all.
* [FIX] Fix a serious memory efficiency regression, Redis 2.6.16 is
        significantly better with large values (>= a few kbytes) and will
        be able to store two times the amount of data compared to Redis 2.6.15
        when values are in that range.
* [FIX] Fixed an issue with Table conversion in the lua-cmsgpack library exposed
        by the Redis scripting engine.
* [NEW] DEBUG SDSLEN was introduced to debug memory inefficiencies due to
        SDS allocation more easily.

</ChangeLog>
2013-08-29 17:56:43 +00:00

99 lines
2.4 KiB
Makefile

# Created by: Sergey Skvortsov <skv@protey.ru>
# $FreeBSD$
PORTNAME= redis
DISTVERSION= 2.6.16
CATEGORIES= databases
MASTER_SITES= http://download.redis.io/releases/
MAINTAINER= osa@FreeBSD.org
COMMENT= A persistent key-value database with built-in net interface
LICENSE= BSD
LIB_DEPENDS= execinfo:${PORTSDIR}/devel/libexecinfo
OPTIONS_DEFINE= TESTS
OPTIONS_RADIO= EXTLUA
OPTIONS_RADIO_EXTLUA= LUA LUAJIT
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
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MLUA}
USE_LUA?= 5.1
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-src-Makefile.lua
CFLAGS+= -fPIC
LDFLAGS+= -Wl,-E
.endif
.if ${PORT_OPTIONS:MLUAJIT}
LIB_DEPENDS+= luajit-5.1:${PORTSDIR}/lang/luajit
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-src-Makefile.luajit
CFLAGS+= -fPIC
LDFLAGS+= -Wl,-E
.endif
.if ${PORT_OPTIONS:MTESTS}
USE_TCL_BUILD= yes
.endif
CFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib ${PTHREAD_LIBS} -lm -lexecinfo
CONFLICTS?= redis-devel-2.6.*
USE_GMAKE= yes
MAKE_ENV= "V=yo"
USE_RC_SUBR= redis
BIN_FILES= redis-benchmark redis-check-aof redis-check-dump \
redis-cli redis-sentinel redis-server
PKGMESSAGE= ${WRKDIR}/pkg-message
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} 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/!} ${PREFIX}/bin/
${INSTALL_DATA} ${WRKDIR}/redis.conf ${PREFIX}/etc/redis.conf.sample
${INSTALL_DATA} ${WRKSRC}/sentinel.conf ${PREFIX}/etc/sentinel.conf.sample
post-install:
.for d in ${REDIS_LOGDIR} ${REDIS_RUNDIR} ${REDIS_DBDIR}
[ -d ${d} ] || ${MKDIR} ${d} && ${CHOWN} ${USERS}:${GROUPS} ${d}
.endfor
regression-test: build
@cd ${WRKSRC} && ${TCLSH} tests/test_helper.tcl
.include <bsd.port.mk>