nixpkgs/pkgs/servers/nosql/redis/default.nix
Jamie McClymont 68a09ca2d4 redis: 6.0.1 -> 6.0.3
================================================================================
Redis 6.0.3     Released Sat May 16 18:10:21 CEST 2020
================================================================================

Upgrade urgency CRITICAL: a crash introduced in 6.0.2 is now fixed.

1eab62f7e Remove the client from CLOSE_ASAP list before caching the master.

================================================================================
Redis 6.0.2     Released Fri May 15 22:24:36 CEST 2020
================================================================================

Upgrade urgency MODERATE: many not critical bugfixes in different areas.
                          Critical fix to client side caching when
                          keys are evicted from the tracking table but
                          no notifications are sent.

The following are the most serious fix:

* XPENDING should not update consumer's seen-time
* optimize memory usage of deferred replies - fixed
* Fix CRC64 initialization outside the Redis server itself.
* stringmatchlen() should not expect null terminated strings.
* Cluster nodes availability checks improved when there is
  high Pub/Sub load on the cluster bus.
* Redis Benchmark: Fix coredump because of double free
* Tracking: send eviction messages when evicting entries.
* rax.c updated from upstream antirez/rax.
* fix redis 6.0 not freeing closed connections during loading.

New features:

* Support setcpuaffinity on linux/bsd
* Client Side Caching: Add Tracking Prefix Number Stats in Server Info
* Add --user argument to redis-benchmark.c (ACL)
2020-05-17 21:14:52 +12:00

44 lines
1.7 KiB
Nix

{ stdenv, fetchurl, lua, pkgconfig, systemd, jemalloc, nixosTests }:
stdenv.mkDerivation rec {
version = "6.0.3";
pname = "redis";
src = fetchurl {
url = "http://download.redis.io/releases/${pname}-${version}.tar.gz";
sha256 = "0fmvbhbgkrw75kqzgpklasylzff4zd0sxy2cvsrgg4pyh776v95w";
};
# Cross-compiling fixes
configurePhase = ''
${stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
# This fixes hiredis, which has the AR awkwardly coded.
# Probably a good candidate for a patch upstream.
makeFlagsArray+=('STLIB_MAKE_CMD=${stdenv.cc.targetPrefix}ar rcs $(STLIBNAME)')
''}
'';
buildInputs = [ lua pkgconfig ] ++ stdenv.lib.optional (stdenv.isLinux) systemd;
# More cross-compiling fixes.
# Note: this enables libc malloc as a temporary fix for cross-compiling.
# Due to hardcoded configure flags in jemalloc, we can't cross-compile vendored jemalloc properly, and so we're forced to use libc allocator.
# It's weird that the build isn't failing because of failure to compile dependencies, it's from failure to link them!
makeFlags = [ "PREFIX=$(out)" ]
++ stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "AR=${stdenv.cc.targetPrefix}ar" "RANLIB=${stdenv.cc.targetPrefix}ranlib" "MALLOC=libc" ]
++ stdenv.lib.optional (stdenv.isLinux) ["USE_SYSTEMD=yes"];
enableParallelBuilding = true;
doCheck = false; # needs tcl
passthru.tests.redis = nixosTests.redis;
meta = with stdenv.lib; {
homepage = "https://redis.io";
description = "An open source, advanced key-value store";
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = with maintainers; [ berdario globin ];
};
}