pkgsrc/databases/redis/Makefile
fhajny e8e964e8b9 Update databases/redis to 3.2.8.
================================================================================
Redis 3.2.8     Released Sun Feb 12 16:11:18 CET 2017
================================================================================

Two important bug fixes, the first of one is critical:

1. Apparently Jemalloc 4.4.0 may contain a deadlock under particular
   conditions. See https://github.com/antirez/redis/issues/3799.
   We reverted back to the previously used Jemalloc versions and plan
   to upgrade Jemalloc again after having more info about the
   cause of the bug.

2. MIGRATE could crash the server after a socket error. See for reference:
   https://github.com/antirez/redis/issues/3796.

================================================================================
Redis 3.2.7     Released Tue Jan 31 16:21:41 CET 2017
================================================================================

Main bugs fixes and improvements in this release:

1. MIGRATE could incorrectly move keys between Redis Cluster nodes by turning
   keys with an expire set into persisting keys. This bug was introduced with
   the multiple-keys migration recently. It is now fixed. Only applies to
   Redis Cluster users that use the resharding features of Redis Cluster.

2. As Redis 4.0 beta and the unstable branch already did (for some months at
   this point), Redis 3.2.7 also aliases the Host: and POST commands to QUIT
   avoiding to process the remaining pipeline if there are pending commands.
   This is a security protection against a "Cross Scripting" attack, that
   usually involves trying to feed Redis with HTTP in order to execute commands.
   Example: a developer is running a local copy of Redis for development
   purposes. She also runs a web browser in the same computer. The web browser
   could send an HTTP request to http://127.0.0.1:6379 in order to access the
   Redis instance, since a specially crafted HTTP requesta may also be partially
   valid Redis protocol. However if POST and Host: break the connection, this
   problem should be avoided. IMPORTANT: It is important to realize that it
   is not impossible that another way will be found to talk with a localhost
   Redis using a Cross Protocol attack not involving sending POST or Host: so
   this is only a layer of protection but not a definitive fix for this class
   of issues.

3. A ziplist bug that could cause data corruption, could crash the server and
   MAY ALSO HAVE SECURITY IMPLICATIONS was fixed. The bug looks complex to
   exploit, but attacks always get worse, never better (cit). The bug is very
   very hard to catch in practice, it required manual analysis of the ziplist
   code in order to be found. However it is also possible that rarely it
   happened in the wild. Upgrading is required if you use LINSERT and other
   in-the-middle list manipulation commands.

4. We upgraded to Jemalloc 4.4.0 since the version we used to ship with Redis
   was an early 4.0 release of Jemalloc. This version may have several
   improvements including the ability to better reclaim/use the memory of
   system.
2017-02-14 10:30:03 +00:00

71 lines
2.1 KiB
Makefile

# $NetBSD: Makefile,v 1.26 2017/02/14 10:30:03 fhajny Exp $
DISTNAME= redis-3.2.8
CATEGORIES= databases
MASTER_SITES= http://download.redis.io/releases/
MAINTAINER= filip@joyent.com
HOMEPAGE= http://redis.io/
COMMENT= Persistent key-value database with built-in net interface
LICENSE= modified-bsd
USE_LANGUAGES= c99
USE_TOOLS+= gmake pax
.include "../../mk/bsd.prefs.mk"
RCD_SCRIPTS+= redis
RCD_SCRIPT_SRC.redis= ${FILESDIR}/redis.sh
DOCDIR= share/doc/redis
DOCFILES+= 00-RELEASENOTES BUGS COPYING README.md
EGDIR= ${PREFIX}/share/examples/${PKGBASE}
INSTALLATION_DIRS+= bin ${DOCDIR} ${EGDIR} ${EGDIR}/utils ${EGDIR}/tests
CONF_FILES= ${EGDIR}/redis.conf.example ${PKG_SYSCONFDIR}/redis.conf
BUILD_DEFS+= VARBASE REDIS_USER REDIS_GROUP REDIS_DATADIR
BUILD_DEFS+= REDIS_LOGDIR REDIS_PIDDIR
REDIS_USER?= redis
REDIS_GROUP?= redis
REDIS_DATADIR?= ${VARBASE}/db/redis
REDIS_LOGDIR?= ${VARBASE}/log/redis
REDIS_PIDDIR?= ${VARBASE}/run
OWN_DIRS+= ${REDIS_DATADIR} ${REDIS_LOGDIR}
OWN_DIRS_PERMS+= ${REDIS_DATADIR} ${REDIS_USER} ${REDIS_GROUP} 0770
OWN_DIRS_PERMS+= ${REDIS_LOGDIR} ${REDIS_USER} ${REDIS_GROUP} 0770
PKG_GROUPS+= ${REDIS_GROUP}
PKG_USERS+= ${REDIS_USER}:${REDIS_GROUP}
PKG_GECOS.${REDIS_USER}= Redis daemon user
PKG_HOME.${REDIS_USER}= ${REDIS_DBDIR}
FILES_SUBST+= REDIS_USER=${REDIS_USER}
FILES_SUBST+= REDIS_GROUP=${REDIS_GROUP}
FILES_SUBST+= REDIS_DATADIR=${REDIS_DATADIR}
SUBST_CLASSES+= fix-paths
SUBST_STAGE.fix-paths= pre-configure
SUBST_MESSAGE.fix-paths= Fixing paths.
SUBST_FILES.fix-paths= redis.conf
SUBST_VARS.fix-paths= REDIS_DATADIR REDIS_LOGDIR REDIS_PIDDIR
CHECK_PORTABILITY_SKIP+= deps/jemalloc/configure
post-extract:
${CHMOD} -R g-w ${WRKSRC}
post-install:
${INSTALL_DATA} ${WRKSRC}/redis.conf ${DESTDIR}${EGDIR}/redis.conf.example
.for file in ${DOCFILES}
${INSTALL_DATA} ${WRKSRC}/${file} ${DESTDIR}${PREFIX}/${DOCDIR}/${file}
.endfor
cd ${WRKSRC}/utils && pax -rwpp . ${DESTDIR}${EGDIR}/utils/
cd ${WRKSRC}/tests && pax -rwpp . ${DESTDIR}${EGDIR}/tests/
do-test:
cd ${WRKSRC} && ${SH} runtest
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"