freebsd-ports/databases/redis-devel/Makefile

114 lines
2.8 KiB
Makefile
Raw Normal View History

# Created by: Sergey Skvortsov <skv@protey.ru>
# $FreeBSD$
PORTNAME= redis
DISTVERSION= 3.2.0-rc3
CATEGORIES= databases
MASTER_SITES= https://github.com/antirez/redis/archive/
PKGNAMESUFFIX= -devel
DISTNAME= ${DISTVERSION}
DIST_SUBDIR= ${PORTNAME}
MAINTAINER= osa@FreeBSD.org
COMMENT= Persistent key-value database with built-in net interface
Upgrade from 3.0.0-beta2 to 3.0.0-beta5. Fix lua/luajit-specific extra patches. Stagefy. <ChangeLog> --[ Redis 3.0.0 Beta 5 (version 2.9.54) ] Release date: 26 may 2014 This is the 5th beta of Redis 3.0.0. It does not include any real worthwhile change (just three days passed since the previous beta), but fixes two stupid bugs preventing cluster tests to pass. --[ Redis 3.0.0 Beta 4 (version 2.9.53) ] Release date: 23 may 2014 This is the fourth beta of Redis 3.0.0. >> General changes * [NEW] Scripting engine performances improvements. * [NEW] Log format slightly changed to report current node role. * [FIX] Correct the HyperLogLog stale cache flag to prevent unnecessary computation. >> Cluster changes * [NEW] redis-trib: ability to import data from standalone Redis instances. * [NEW] redis-trib: "fix" subcommand much better at fixing errors. * [NEW] CLUSTER FAILOVER FORCE implemented. * [NEW] CLUSTER RESET implemented, it is now possible to completely reset nodes and create a new cluster without restarting anything. * [NEW] Slave validity factor (max estimated data age to still failover) is now under the control of the user, and can be configured via redis.conf or CONFIG SET. Option name cluster-slave-validity-factor. * [NEW] Cluster test: failure detection and failover initial tests. * [NEW] CLUSTER MEET: better error messages when address is invalid. * [NEW] Bulk-accept new Cluster nodes in the Cluster bus instead of performing just a single accept() per event fired. * [FIX] Bypass data_age check for manual failovers. * [FIX] Fixed data_age computation / check integer overflow. * [FIX] Various fixes to Tcl client.tcl Redis Cluster client used in tests. * [FIX] Better handling of stolen slots. * [FIX] Don't accept cluster bus connections during startup. >> Sentinel changes * [NEW] Generate +config-update-from event when a new config is received. * [NEW] Log when a failover will be re-attempted again. * [FIX] Sentinel: Add "dir /tmp" directive in example sentinel.conf. --[ Redis 3.0.0 Beta 3 (version 2.9.52) ] Release date: 5 may 2014 This is the third beta of Redis 3.0.0. >> General changes * [NEW] New data structure: the HyperLogLog (see 2.8 release notes). * [NEW] Lexicograhical range queries in sorted sets (see 2.8 release notes). * [NEW] LRU algorithm precision greatly improved. * [FIX] Redis is now much more responsive to reply with LOADING / BUSY errors. >> Cluster changes * [NEW] Cluster testing framework and initial tests. * [NEW] Cluster epochs collision resolution (make Redis Cluster more resilient to admin and programming errors). * [NEW] Persist / fsync some global state to ensure correct crash-recovery semantics. * [NEW] New command introduced: CLUSTER SET-CONFIG-EPOCH, still not used by redis-trib. Will be used to speedup the assignment of unique epochs to different nodes at cluster creation time. For now this is handled as a side effect of the cluster epochs collision resolution. * [FIX] Different fixes to redis-trib cluster creation. * [FIX] Fix an error in the CLUSTER NODES output for nodes slots. >> Sentinel changes * [NEW] Sentinels are now able to send update messages in a peer-to-peer fashion even if no Redis instances are available. Now the Sentinel liveness property that the most updated configuration in a given partition is propagated to all the Sentinels is extended to partitions without reachable instances. * [NEW] Sentinel safety properties are now ensured in a crash-recovery system model since some state is persisted on disk before replying to other nodes, and reloaded at startup. * [NEW] Sentinel now uses CLIENT SETNAME so that it is easy to identify Sentinels using CLIENT LIST among other clients. * [NEW] Sentinel failure detection and reconnection code improved. </ChangeLog>
2014-06-02 03:42:11 +02:00
LICENSE= BSD3CLAUSE
2012-08-03 06:21:19 +02:00
2014-08-05 08:36:06 +02:00
USES= execinfo
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.)
WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MTRIB}
CATEGORIES+= ruby
USE_RUBY= yes
RUN_DEPENDS= rubygem-redis>=2.2:${PORTSDIR}/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:${PORTSDIR}/lang/luajit
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-src-Makefile.luajit
Upgrade from 3.0.0-beta6 to 3.0.0-beta8. <ChangeLog> --[ Redis 3.0.0 Beta 8 (version 2.9.57) ] Release date: 29 jul 2014 This is the 8th beta of Redis 3.0.0. >> General changes * [FIX] Solaris compilation issues. (Matt Stancliff, Salvatore Sanfilippo) * [FIX] Allow shared integer objects if maxmemory policy is not LRU based. (Salvatore Sanfilippo) * [FIX] PFSELFTEST: less false positives. (Salvatore Sanfilippo) * [FIX] Fail SYNC if background save child aborted due to a signal. (Yossi Gottlieb) * [NEW] Latency framework backported from unstable branch. (Salvatore Sanfilippo) * [NEW] AOF rewrite improved for latency. (Salvatore Sanfilippo) * [NEW] Pub/Sub PING. (Salvatore Sanfilippo) * [NEW] Much faster ZUNIONSTORE. (Kyle Hubert, Salvatore Sanfilippo) * [NEW] Faster ll2string() implementation. (Salvatore Sanfilippo) >> Cluster changes * [FIX] CLUSTER RESET: Flush slave dataset on reset. (Salvatore Sanfilippo) * [FIX] Replica migration: don't migrate to masters that never had slaves in the past, but only to masters that remained orphaned after failure events. (Salvatore Sanfilippo) * [NEW] redis-trib: allow to reshard in non-interactive way. (Salvatore Sanfilippo) * [NEW] Cluster test: unit 04, check consistency during resharding. (Salvatore Sanfilippo) * [NEW] Cluster test: unit 05, slave selection. (Salvatore Sanfilippo) * [NEW] Cluster test: unit 06, slaves with stale data can't failover. (Salvatore Sanfilippo) * [NEW] Cluster test: unit 07, replicas migration. (Salvatore Sanfilippo) >> Sentinel changes * No Sentinel changes in this release. --[ Redis 3.0.0 Beta 7 (version 2.9.56) ] Release date: 30 jun 2014 This is the 7th beta of Redis 3.0.0. >> General changes * [FIX] Scripting fixes backported from unstable, see Redis 2.8.12 changelog for more info. (Salvatore Sanfilippo) * [FIX] Cancel SHUTDOWN if initial AOF is being written. (Matt Stancliff) * [NEW] New command: COMMAND, for commands introspection (Matt Stancliff & Salvatore Sanfilippo) * [NEW] hiredis: Update to latest version. (Matt Stancliff) * [NEW] Jemalloc updated to 3.6.0. (Salvatore Sanfilippo) >> Cluster changes * [FIX] Cluster: clear NOADDR flag when updating node address. (Salvatore Sanfilippo) * [NEW] New CLUSTER SLOTS command to simplify Cluster clients operations. (Matt Stancliff) * [NEW] More Cluster tests. (Salvatore Sanfilippo) * [NEW] Log when failover authorization are granted / denied. (Salvatore Sanfilippo) >> Sentinel changes * [FIX] A few Sentinel bugs fixed and improvements, see Redis 2.8.12 changelog for more info. (Salvatore Sanfilippo & Matt Stancliff) * [NEW] New Sentinel-Client handshake protocol, ROLE command, CLIENT KILL, all backported to 3.0 branch. (Salvatore Sanfilippo) </ChangeLog>
2014-09-10 00:38:00 +02:00
.endif
.if ${PORT_OPTIONS:MLUA} || ${PORT_OPTIONS:MLUAJIT}
CFLAGS+= -fPIC
LDFLAGS+= -Wl,-E
.endif
.if ${PORT_OPTIONS:MTESTS}
2014-02-17 14:22:56 +01:00
USES+= tcl:build
.endif
CFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib -lpthread -lm -lexecinfo
Upgrade from 3.0.0-rc4 to 3.0.0. <ChangeLog> --[ Redis 3.0.0 ] Release date: 1 Apr 2015 Changes between RC6 and 3.0.0 stable: >> General changes * Fixes to diskless replication. (Oran Agra) * Test for BLPOP replication on role change. (Salvatore Sanfilippo) * prepareClientToWrite() error handling improvements. (Salvatore Sanfilippo) * Remove dict.c no longer used function. (Salvatore Sanfilippo) >> Cluster changes None >> Sentinel changes None --[ Redis 3.0.0 RC6 (version 2.9.106) ] Release date: 24 mar 2015 Upgrade urgency: HIGH because of bugs related to Redis Custer and replication. This is the 6th release candidate of Redis 3.0.0. This release fixes important issues discovered during stress testing, and implements safest behavior for blocking operations during clients reshardings, and a new much needed functionality of Redis Cluster manual failovers. In order to fix certain bugs quite a bit of refactoring was needed which is usually non advisabble in a Release Candidate, but needed in order to end with a clean fix. >> General changes * [FIX] Redis (non clustered & clustered) replication bug involving blocking operations: see issue #2473. (Salvatore Sanfilippo) >> Cluster changes * [FIX] clientsArePaused() fix crashing the old master during manual failover. (Salvatore Sanfilippo) * [FIX] Lua scripts replication in Redis Cluster was totally broken. (Salvatore Sanfilippo) * [FIX] Redirect clients blocked into list operations when the hash slot they are blocked into is migrated to another instance or the cluster state turns into "fail". (Salvatore Sanfilippo) * [NEW] TAKEOVER option for CLUSTER FAILOVER implemented. It is now possible to fix a cluster manually in the minority side of the partition, for example in order to allow for multi DC setups & recovery. (Salvatore Sanfilippo) >> Sentinel changes No changes in Sentinel. --[ Redis 3.0.0 RC5 (version 2.9.105) ] Release date: 20 mar 2015 Upgrade urgency: Moderate for Redis Cluster users, low otherwise. This is the 5th release candidate of Redis 3.0.0, released in order to fix a moderate bug in Redis Cluster. This RC does not shift in the future the Redis 3.0.0 final release which is scheduled in a few days (we are in the process of finishing the documentation for Redis Cluster). >> General changes * [FIX] Fix LATENCY command crash. (Salvatore Sanfilippo, thx to Ingmar) * [FIX] Config: missing activerehashing option support in CONFIG SET added. (Salvatore Sanfilippo, thx to Bill Anderson) * [FIX] Fix for backtrace generation issue. (Mariano Pérez Rodríguez, Matt Stancliff, Salvatore Sanfilippo) * [NEW] Redis-cli --latency-dist backported from unstable. (Salvatore Sanfilippo) >> Cluster changes * [FIX] Avoid redundant SELECT in MIGRATE. (Tommy Wang, Salvatore Sanfilippo) * [FIX] More robust slave check in CLUSTER REPLICATE. (Salvatore Sanfilippo) * [FIX] Fixed possible Redis Cluster node crash due to wrong separation of concerns between getNodeByQuery() and Cluster global state update fnuction. (Salvatore Sanfilippo, thx to Ingmar) * [NEW] Add command CLUSTER MYID to easily featch instance ID. (Michel Martens) >> Sentinel changes * [NEW] Support for CLIENT command added. It was missing in the command table. (Leandro López) </ChangeLog>
2015-04-08 00:14:16 +02:00
CONFLICTS?= redis-3.*
2014-02-17 14:22:56 +01:00
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
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} 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:
Upgrade from 3.0.0-beta2 to 3.0.0-beta5. Fix lua/luajit-specific extra patches. Stagefy. <ChangeLog> --[ Redis 3.0.0 Beta 5 (version 2.9.54) ] Release date: 26 may 2014 This is the 5th beta of Redis 3.0.0. It does not include any real worthwhile change (just three days passed since the previous beta), but fixes two stupid bugs preventing cluster tests to pass. --[ Redis 3.0.0 Beta 4 (version 2.9.53) ] Release date: 23 may 2014 This is the fourth beta of Redis 3.0.0. >> General changes * [NEW] Scripting engine performances improvements. * [NEW] Log format slightly changed to report current node role. * [FIX] Correct the HyperLogLog stale cache flag to prevent unnecessary computation. >> Cluster changes * [NEW] redis-trib: ability to import data from standalone Redis instances. * [NEW] redis-trib: "fix" subcommand much better at fixing errors. * [NEW] CLUSTER FAILOVER FORCE implemented. * [NEW] CLUSTER RESET implemented, it is now possible to completely reset nodes and create a new cluster without restarting anything. * [NEW] Slave validity factor (max estimated data age to still failover) is now under the control of the user, and can be configured via redis.conf or CONFIG SET. Option name cluster-slave-validity-factor. * [NEW] Cluster test: failure detection and failover initial tests. * [NEW] CLUSTER MEET: better error messages when address is invalid. * [NEW] Bulk-accept new Cluster nodes in the Cluster bus instead of performing just a single accept() per event fired. * [FIX] Bypass data_age check for manual failovers. * [FIX] Fixed data_age computation / check integer overflow. * [FIX] Various fixes to Tcl client.tcl Redis Cluster client used in tests. * [FIX] Better handling of stolen slots. * [FIX] Don't accept cluster bus connections during startup. >> Sentinel changes * [NEW] Generate +config-update-from event when a new config is received. * [NEW] Log when a failover will be re-attempted again. * [FIX] Sentinel: Add "dir /tmp" directive in example sentinel.conf. --[ Redis 3.0.0 Beta 3 (version 2.9.52) ] Release date: 5 may 2014 This is the third beta of Redis 3.0.0. >> General changes * [NEW] New data structure: the HyperLogLog (see 2.8 release notes). * [NEW] Lexicograhical range queries in sorted sets (see 2.8 release notes). * [NEW] LRU algorithm precision greatly improved. * [FIX] Redis is now much more responsive to reply with LOADING / BUSY errors. >> Cluster changes * [NEW] Cluster testing framework and initial tests. * [NEW] Cluster epochs collision resolution (make Redis Cluster more resilient to admin and programming errors). * [NEW] Persist / fsync some global state to ensure correct crash-recovery semantics. * [NEW] New command introduced: CLUSTER SET-CONFIG-EPOCH, still not used by redis-trib. Will be used to speedup the assignment of unique epochs to different nodes at cluster creation time. For now this is handled as a side effect of the cluster epochs collision resolution. * [FIX] Different fixes to redis-trib cluster creation. * [FIX] Fix an error in the CLUSTER NODES output for nodes slots. >> Sentinel changes * [NEW] Sentinels are now able to send update messages in a peer-to-peer fashion even if no Redis instances are available. Now the Sentinel liveness property that the most updated configuration in a given partition is propagated to all the Sentinels is extended to partitions without reachable instances. * [NEW] Sentinel safety properties are now ensured in a crash-recovery system model since some state is persisted on disk before replying to other nodes, and reloaded at startup. * [NEW] Sentinel now uses CLIENT SETNAME so that it is easy to identify Sentinels using CLIENT LIST among other clients. * [NEW] Sentinel failure detection and reconnection code improved. </ChangeLog>
2014-06-02 03:42:11 +02:00
${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
Upgrade from 3.0.0-beta2 to 3.0.0-beta5. Fix lua/luajit-specific extra patches. Stagefy. <ChangeLog> --[ Redis 3.0.0 Beta 5 (version 2.9.54) ] Release date: 26 may 2014 This is the 5th beta of Redis 3.0.0. It does not include any real worthwhile change (just three days passed since the previous beta), but fixes two stupid bugs preventing cluster tests to pass. --[ Redis 3.0.0 Beta 4 (version 2.9.53) ] Release date: 23 may 2014 This is the fourth beta of Redis 3.0.0. >> General changes * [NEW] Scripting engine performances improvements. * [NEW] Log format slightly changed to report current node role. * [FIX] Correct the HyperLogLog stale cache flag to prevent unnecessary computation. >> Cluster changes * [NEW] redis-trib: ability to import data from standalone Redis instances. * [NEW] redis-trib: "fix" subcommand much better at fixing errors. * [NEW] CLUSTER FAILOVER FORCE implemented. * [NEW] CLUSTER RESET implemented, it is now possible to completely reset nodes and create a new cluster without restarting anything. * [NEW] Slave validity factor (max estimated data age to still failover) is now under the control of the user, and can be configured via redis.conf or CONFIG SET. Option name cluster-slave-validity-factor. * [NEW] Cluster test: failure detection and failover initial tests. * [NEW] CLUSTER MEET: better error messages when address is invalid. * [NEW] Bulk-accept new Cluster nodes in the Cluster bus instead of performing just a single accept() per event fired. * [FIX] Bypass data_age check for manual failovers. * [FIX] Fixed data_age computation / check integer overflow. * [FIX] Various fixes to Tcl client.tcl Redis Cluster client used in tests. * [FIX] Better handling of stolen slots. * [FIX] Don't accept cluster bus connections during startup. >> Sentinel changes * [NEW] Generate +config-update-from event when a new config is received. * [NEW] Log when a failover will be re-attempted again. * [FIX] Sentinel: Add "dir /tmp" directive in example sentinel.conf. --[ Redis 3.0.0 Beta 3 (version 2.9.52) ] Release date: 5 may 2014 This is the third beta of Redis 3.0.0. >> General changes * [NEW] New data structure: the HyperLogLog (see 2.8 release notes). * [NEW] Lexicograhical range queries in sorted sets (see 2.8 release notes). * [NEW] LRU algorithm precision greatly improved. * [FIX] Redis is now much more responsive to reply with LOADING / BUSY errors. >> Cluster changes * [NEW] Cluster testing framework and initial tests. * [NEW] Cluster epochs collision resolution (make Redis Cluster more resilient to admin and programming errors). * [NEW] Persist / fsync some global state to ensure correct crash-recovery semantics. * [NEW] New command introduced: CLUSTER SET-CONFIG-EPOCH, still not used by redis-trib. Will be used to speedup the assignment of unique epochs to different nodes at cluster creation time. For now this is handled as a side effect of the cluster epochs collision resolution. * [FIX] Different fixes to redis-trib cluster creation. * [FIX] Fix an error in the CLUSTER NODES output for nodes slots. >> Sentinel changes * [NEW] Sentinels are now able to send update messages in a peer-to-peer fashion even if no Redis instances are available. Now the Sentinel liveness property that the most updated configuration in a given partition is propagated to all the Sentinels is extended to partitions without reachable instances. * [NEW] Sentinel safety properties are now ensured in a crash-recovery system model since some state is persisted on disk before replying to other nodes, and reloaded at startup. * [NEW] Sentinel now uses CLIENT SETNAME so that it is easy to identify Sentinels using CLIENT LIST among other clients. * [NEW] Sentinel failure detection and reconnection code improved. </ChangeLog>
2014-06-02 03:42:11 +02:00
${INSTALL_DATA} ${WRKDIR}/redis.conf ${STAGEDIR}${PREFIX}/etc/redis.conf.sample
${INSTALL_DATA} ${WRKSRC}/sentinel.conf ${STAGEDIR}${PREFIX}/etc/sentinel.conf.sample
2014-10-20 12:41:12 +02:00
${MKDIR} ${STAGEDIR}${REDIS_LOGDIR} \
${STAGEDIR}${REDIS_DBDIR} \
${STAGEDIR}${REDIS_RUNDIR}
Update from 2.6.11 to 2.6.13. PR: 178124 <ChangeLog> [ Redis 2.6.13 ] UPGRADE URGENCY: MODERATE, nothing very critical but upgrading is suggested if you experienced: 1) Strange issues with Lua scripting. 2) Not reconfigured reappearing master using Sentinel. 3) Server continusly trying to save on save error. This version of Redis may also help with AOF and slow / busy disks and latency issues. * [FIX] Throttle BGSAVE attempt on saving error. * [FIX] redis-cli: raise error on bad command line switch. * [FIX] Redis/Jemalloc Gitignore were too aggressive. * [FIX] Test: fix RDB test checking file permissions. * [FIX] Sentinel: always redirect on master->slave transition. * [FIX] Lua updated to version 5.1.5. Fixes rare scripting issues. * [NEW] AOF: improved latency figures with slow/busy disks. * [NEW] Sentinel: turn old master into a slave when it comes back. * [NEW] More explicit panic message on out of memory. * [NEW] redis-cli: --latency-history mode implemented. [ Redis 2.6.12 ] UPGRADE URGENCY: MODERATE, nothing very critical but a few non trivial bugs. * [BUGFIX] redis-cli --bigkeys: don't crash with empty DB. * [BUGFIX] stop-writes-on-bgsave-error now works in redis.conf * [BUGFIX] Don't crash at startup if RDB is there but can't be opened. * [BUGFIX] Initial value for master_link_down_since_seconds is now huge. * [BUGFIX] Allow SELECT while loading the DB. * [BUGFIX] Don't replicate/AOF an empty MULTI/EXEC if the transaction is empty or containing just read-only commands. * [BUGFIX] EXPIRE should not be able to resurrect keys (see issue #1026). * [IMPROVED] Extended SET back ported from Redis 2.8 / unstable See http://redis.io/commands/set for more information. * [IMPROVED] Test suite improved. </ChangeLog>
2013-05-03 19:38:24 +02:00
regression-test: build
@cd ${WRKSRC} && ${TCLSH} tests/test_helper.tcl
.include <bsd.port.mk>