about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/nosql
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/nosql')
-rw-r--r--nixpkgs/pkgs/servers/nosql/aerospike/default.nix36
-rw-r--r--nixpkgs/pkgs/servers/nosql/apache-jena/binary.nix38
-rw-r--r--nixpkgs/pkgs/servers/nosql/apache-jena/fuseki-binary.nix41
-rw-r--r--nixpkgs/pkgs/servers/nosql/apache-jena/fuseki-binary.upstream4
-rw-r--r--nixpkgs/pkgs/servers/nosql/arangodb/default.nix39
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/2.1.nix6
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/2.2.nix6
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/3.0.nix6
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/3.11.nix6
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/generic.nix72
-rw-r--r--nixpkgs/pkgs/servers/nosql/eventstore/default.nix49
-rw-r--r--nixpkgs/pkgs/servers/nosql/influxdb/default.nix31
-rw-r--r--nixpkgs/pkgs/servers/nosql/influxdb/deps-1.4.1.nix227
-rw-r--r--nixpkgs/pkgs/servers/nosql/influxdb/deps-1.6.3.nix444
-rw-r--r--nixpkgs/pkgs/servers/nosql/mongodb/default.nix103
-rw-r--r--nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch17
-rw-r--r--nixpkgs/pkgs/servers/nosql/neo4j/default.nix38
-rw-r--r--nixpkgs/pkgs/servers/nosql/redis/default.nix26
-rw-r--r--nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix65
-rw-r--r--nixpkgs/pkgs/servers/nosql/riak-cs/2.1.1.nix69
-rw-r--r--nixpkgs/pkgs/servers/nosql/riak-cs/stanchion.nix65
-rw-r--r--nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix97
22 files changed, 1485 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/nosql/aerospike/default.nix b/nixpkgs/pkgs/servers/nosql/aerospike/default.nix
new file mode 100644
index 000000000000..c5290709b625
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/aerospike/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, openssl, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "aerospike-server-${version}";
+  version = "4.2.0.4";
+
+  src = fetchFromGitHub {
+    owner = "aerospike";
+    repo = "aerospike-server";
+    rev = version;
+    sha256 = "1vqi3xir4l57v62q1ns3713vajxffs6crss8fpvbcs57p7ygx3s7";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ autoconf automake libtool ];
+  buildInputs = [ openssl zlib ];
+
+  preBuild = ''
+    patchShebangs build/gen_version
+    substituteInPlace build/gen_version --replace 'git describe' 'echo ${version}'
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/udf
+    cp      target/Linux-x86_64/bin/asd $out/bin/asd
+    cp -dpR modules/lua-core/src        $out/share/udf/lua
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Flash-optimized, in-memory, NoSQL database";
+    homepage = http://aerospike.com/;
+    license = licenses.agpl3;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/apache-jena/binary.nix b/nixpkgs/pkgs/servers/nosql/apache-jena/binary.nix
new file mode 100644
index 000000000000..f3d5d121c387
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/apache-jena/binary.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, java, makeWrapper}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="apache-jena";
+    version = "3.7.0";
+    name="${baseName}-${version}";
+    url="http://archive.apache.org/dist/jena/binaries/apache-jena-${version}.tar.gz";
+    sha256 = "12w125hlhcib23cckk77cx7p9rzs57dbmmn90f7v8107d437j4mq";
+  };
+  buildInputs = [
+    makeWrapper
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  installPhase = ''
+    cp -r . "$out"
+    for i in "$out"/bin/*; do
+      wrapProgram "$i" --prefix "PATH" : "${java}/bin/"
+    done
+  '';
+  meta = {
+    inherit (s) version;
+    description = ''RDF database'';
+    license = stdenv.lib.licenses.asl20;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = http://jena.apache.org;
+    downloadPage = "http://archive.apache.org/dist/jena/binaries/";
+    updateWalker = true;
+    downloadURLRegexp = "apache-jena-.*[.]tar[.]gz\$";
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/apache-jena/fuseki-binary.nix b/nixpkgs/pkgs/servers/nosql/apache-jena/fuseki-binary.nix
new file mode 100644
index 000000000000..63b222529a86
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/apache-jena/fuseki-binary.nix
@@ -0,0 +1,41 @@
+{stdenv, fetchurl, java, makeWrapper}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="apache-jena-fuseki";
+    version = "3.9.0";
+    name="${baseName}-${version}";
+    url="http://archive.apache.org/dist/jena/binaries/apache-jena-fuseki-${version}.tar.gz";
+    sha256 = "1kf524j7wmvbjrr3grrhfddv3c3niddhj2f6m7hz9pqvf7nykvi4";
+  };
+  buildInputs = [
+    makeWrapper
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  installPhase = ''
+    cp -r . "$out"
+    ln -s "$out"/{fuseki-server,fuseki} "$out/bin"
+    for i in "$out"/bin/*; do
+      wrapProgram "$i" \
+        --prefix "PATH" : "${java}/bin/" \
+        --set-default "FUSEKI_HOME" "$out" \
+        ;
+    done
+  '';
+  meta = {
+    inherit (s) version;
+    description = ''SPARQL server'';
+    license = stdenv.lib.licenses.asl20;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = http://jena.apache.org;
+    downloadPage = "http://archive.apache.org/dist/jena/binaries/";
+    downloadURLRegexp = "apache-jena-fuseki-.*[.]tar[.]gz\$";
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/apache-jena/fuseki-binary.upstream b/nixpkgs/pkgs/servers/nosql/apache-jena/fuseki-binary.upstream
new file mode 100644
index 000000000000..a18675347d58
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/apache-jena/fuseki-binary.upstream
@@ -0,0 +1,4 @@
+name apache-jena-fuseki
+attribute apache-jena-fuseki
+target fuseki-binary.nix
+minimize_overwrite
diff --git a/nixpkgs/pkgs/servers/nosql/arangodb/default.nix b/nixpkgs/pkgs/servers/nosql/arangodb/default.nix
new file mode 100644
index 000000000000..12684eab551a
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/arangodb/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub
+, openssl, zlib, readline, cmake, python }:
+
+let
+in stdenv.mkDerivation rec {
+  version = "3.3.19";
+  name    = "arangodb-${version}";
+
+  src = fetchFromGitHub {
+    repo = "arangodb";
+    owner = "arangodb";
+    rev = "v${version}";
+    sha256 = "1qg4lqnn5x0xsmkq41mjj301mfh76r8ys1rkzhinxlq30jld3155";
+  };
+
+  buildInputs = [
+    openssl zlib readline python
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  postPatch = ''
+    sed -ie 's!/bin/echo!echo!' 3rdParty/V8/v*/gypfiles/*.gypi
+  '';
+
+  configureFlagsArray = [ "--with-openssl-lib=${openssl.out}/lib" ];
+
+  NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/arangodb/arangodb;
+    description = "A native multi-model database with flexible data models for documents, graphs, and key-values";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.flosse ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/2.1.nix b/nixpkgs/pkgs/servers/nosql/cassandra/2.1.nix
new file mode 100644
index 000000000000..d73e242a9422
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/2.1.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "2.1.20";
+  sha256 = "0ik7a4jg3s3xnyrj1sa0rvbh066fv1y2202l7cv6nbca72pgyl6a";
+})
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/2.2.nix b/nixpkgs/pkgs/servers/nosql/cassandra/2.2.nix
new file mode 100644
index 000000000000..88c361e6a91f
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/2.2.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "2.2.13";
+  sha256 = "19jryhjkh5jsgp6jlz2v28vwm5dks8i7mshsv3s2fpnl6147paaq";
+})
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/3.0.nix b/nixpkgs/pkgs/servers/nosql/cassandra/3.0.nix
new file mode 100644
index 000000000000..a1aad75ce3f6
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/3.0.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "3.0.17";
+  sha256 = "0568r5xdy78pl29zby5g4m9qngf29cb9222sc1q1wisapb7zkl2p";
+})
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/3.11.nix b/nixpkgs/pkgs/servers/nosql/cassandra/3.11.nix
new file mode 100644
index 000000000000..5ca268166e03
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/3.11.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "3.11.3";
+  sha256 = "1fp2sm8v7dpp7iym39c7dh1fmi25x462amgzizl93c21rdq0cbnq";
+})
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix b/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix
new file mode 100644
index 000000000000..6ac087241ce0
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, python, makeWrapper, gawk, bash, getopt, procps
+, which, jre, version, sha256, ...
+}:
+
+let
+  libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc ];
+  binPath = with stdenv.lib; makeBinPath ([
+    bash
+    getopt
+    gawk
+    which
+    jre
+    procps
+  ]);
+in
+
+stdenv.mkDerivation rec {
+  name = "cassandra-${version}";
+  inherit version;
+
+  src = fetchurl {
+    inherit sha256;
+    url = "mirror://apache/cassandra/${version}/apache-${name}-bin.tar.gz";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir $out
+    mv * $out
+
+    # Clean up documentation.
+    mkdir -p $out/share/doc/${name}
+    mv $out/CHANGES.txt \
+       $out/LICENSE.txt \
+       $out/NEWS.txt \
+       $out/NOTICE.txt \
+       $out/javadoc \
+       $out/share/doc/${name}
+
+    if [[ -d $out/doc ]]; then
+      mv "$out/doc/"* $out/share/doc/${name}
+      rmdir $out/doc
+    fi
+
+    for cmd in bin/cassandra bin/nodetool bin/sstablekeys \
+      bin/sstableloader bin/sstableupgrade \
+      tools/bin/cassandra-stress tools/bin/cassandra-stressd \
+      tools/bin/sstablemetadata tools/bin/sstableofflinerelevel \
+      tools/bin/token-generator tools/bin/sstablelevelreset; do
+
+      # check if file exists because some bin tools don't exist across all
+      # cassandra versions
+      if [ -f $out/$cmd ]; then
+        wrapProgram $out/$cmd \
+          --suffix-each LD_LIBRARY_PATH : ${libPath} \
+          --prefix PATH : ${binPath} \
+          --set JAVA_HOME ${jre}
+      fi
+    done
+
+    wrapProgram $out/bin/cqlsh --prefix PATH : ${python}/bin
+    '';
+
+  meta = with stdenv.lib; {
+    homepage = http://cassandra.apache.org/;
+    description = "A massively scalable open source NoSQL database";
+    platforms = platforms.unix;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cransom ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/eventstore/default.nix b/nixpkgs/pkgs/servers/nosql/eventstore/default.nix
new file mode 100644
index 000000000000..1d3240fae716
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/eventstore/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, git, mono, v8 }:
+
+# There are some similarities with the pinta derivation. We should
+# have a helper to make it easy to package these Mono apps.
+
+stdenv.mkDerivation rec {
+  name = "EventStore-${version}";
+  version = "4.1.1";
+  src = fetchFromGitHub {
+    owner  = "EventStore";
+    repo   = "EventStore";
+    rev    = "oss-v${version}";
+    sha256 = "1069ncb9ps1wi71yw1fzkfd9rfsavccw8xj3a3miwd9x72w8636f";
+  };
+
+  buildPhase = ''
+    mkdir -p src/libs/x64/nixos
+    pushd src/EventStore.Projections.v8Integration
+    cc -o ../libs/x64/nixos/libjs1.so -fPIC -lv8 -shared -std=c++0x *.cpp
+    popd
+
+    patchShebangs build.sh
+    ./build.sh ${version} release nixos
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,lib/eventstore/clusternode}
+    cp -r bin/clusternode/* $out/lib/eventstore/clusternode/
+    cat > $out/bin/clusternode << EOF
+    #!${stdenv.shell}
+    exec ${mono}/bin/mono $out/lib/eventstore/clusternode/EventStore.ClusterNode.exe "\$@"
+    EOF
+    chmod +x $out/bin/clusternode
+  '';
+
+  nativeBuildInputs = [ git ];
+  buildInputs = [ v8 mono ];
+
+  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
+  dontStrip = true;
+
+  meta = {
+    homepage = https://geteventstore.com/;
+    description = "Event sourcing database with processing logic in JavaScript";
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ puffnfresh ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/influxdb/default.nix b/nixpkgs/pkgs/servers/nosql/influxdb/default.nix
new file mode 100644
index 000000000000..a47553b975e3
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/influxdb/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoPackage, fetchFromGitHub, }:
+
+buildGoPackage rec {
+  name = "influxdb-${version}";
+  version = "1.6.3";
+
+  src = fetchFromGitHub {
+    owner = "influxdata";
+    repo = "influxdb";
+    rev = "v${version}";
+    sha256 = "0xf16liapllk8qnw0vsy1ja4if1xlazwwaa4p0r5j7bny5lxm7zy";
+  };
+
+  buildFlagsArray = [ ''-ldflags=
+    -X main.version=${version}
+  '' ];
+
+  goPackagePath = "github.com/influxdata/influxdb";
+
+  excludedPackages = "test";
+
+  # Generated with dep2nix (for 1.6.3) / nix2go (for 1.4.1).
+  goDeps = ./. + "/deps-${version}.nix";
+
+  meta = with lib; {
+    description = "An open-source distributed time series database";
+    license = licenses.mit;
+    homepage = https://influxdb.com/;
+    maintainers = with maintainers; [ offline zimbatm ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/influxdb/deps-1.4.1.nix b/nixpkgs/pkgs/servers/nosql/influxdb/deps-1.4.1.nix
new file mode 100644
index 000000000000..edda6ff7c7dc
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/influxdb/deps-1.4.1.nix
@@ -0,0 +1,227 @@
+[
+    {
+        goPackagePath = "collectd.org";
+        fetch = {
+            type = "git";
+            url = "https://github.com/collectd/go-collectd";
+            rev = "e84e8af5356e7f47485bbc95c96da6dd7984a67e";
+            sha256 = "0cfxg8iz7bdy3d74cqjns7x7lyrma5lkrqqpqk79a2gk0g2bhmnd";
+        };
+    }
+    {
+        goPackagePath = "github.com/bmizerany/pat";
+        fetch = {
+            type = "git";
+            url = "https://github.com/bmizerany/pat";
+            rev = "c068ca2f0aacee5ac3681d68e4d0a003b7d1fd2c";
+            sha256 = "02ayddkp2b22rixw5jldw3kb6762zzkg5zhxwcv9v9yp0x39qw6r";
+        };
+    }
+    {
+        goPackagePath = "github.com/boltdb/bolt";
+        fetch = {
+            type = "git";
+            url = "https://github.com/boltdb/bolt";
+            rev = "4b1ebc1869ad66568b313d0dc410e2be72670dda";
+            sha256 = "1narpch9fc2f4yj8asb981gyq7b3z6p41xb635xh2k75yv5g024w";
+        };
+    }
+    {
+        goPackagePath = "github.com/BurntSushi/toml";
+        fetch = {
+            type = "git";
+            url = "https://github.com/BurntSushi/toml";
+            rev = "a368813c5e648fee92e5f6c30e3944ff9d5e8895";
+            sha256 = "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5";
+        };
+    }
+    {
+        goPackagePath = "github.com/cespare/xxhash";
+        fetch = {
+            type = "git";
+            url = "https://github.com/cespare/xxhash";
+            rev = "1b6d2e40c16ba0dfce5c8eac2480ad6e7394819b";
+            sha256 = "1h7dym9fmk7rwrrc26lcwi7wmf4y4rxgg7byivg55yia9wlhy00m";
+        };
+    }
+    {
+        goPackagePath = "github.com/dgrijalva/jwt-go";
+        fetch = {
+            type = "git";
+            url = "https://github.com/dgrijalva/jwt-go";
+            rev = "24c63f56522a87ec5339cc3567883f1039378fdb";
+            sha256 = "1xjb3cj9qa66dk6sfrlggfm4a66qirqrp4qds90xzjj5sx51j4zk";
+        };
+    }
+  {
+        goPackagePath = "github.com/dgryski/go-bits";
+        fetch = {
+            type = "git";
+            url = "https://github.com/dgryski/go-bits";
+            rev = "2ad8d707cc05b1815ce6ff2543bb5e8d8f9298ef";
+            sha256 = "08mxwa4c77dgpvz2ygwd0pc929qxwff95y680mjjgbvj8yifiag2";
+        };
+    }
+    {
+        goPackagePath = "github.com/dgryski/go-bitstream";
+        fetch = {
+            type = "git";
+            url = "https://github.com/dgryski/go-bitstream";
+            rev = "7d46cd22db7004f0cceb6f7975824b560cf0e486";
+            sha256 = "1k9l16y7l2mkfvnp2ydv9cqly8179wqd20am4zy0q77qcsawkksx";
+        };
+    }
+    {
+        goPackagePath = "github.com/gogo/protobuf";
+        fetch = {
+            type = "git";
+            url = "https://github.com/gogo/protobuf";
+            rev = "1c2b16bc280d6635de6c52fc1471ab962dc36ec9";
+            sha256 = "0h9vkfy3ydz0d6x72853yg49r9k54cgjnlv6a7v12gzqw47p941i";
+        };
+    }
+    {
+        goPackagePath = "github.com/golang/snappy";
+        fetch = {
+            type = "git";
+            url = "https://github.com/golang/snappy";
+            rev = "d9eb7a3d35ec988b8585d4a0068e462c27d28380";
+            sha256 = "0wynarlr1y8sm9y9l29pm9dgflxriiialpwn01066snzjxnpmbyn";
+        };
+    }
+    {
+        goPackagePath = "github.com/influxdata/influxql";
+        fetch = {
+            type = "git";
+            url = "https://github.com/influxdata/influxql";
+            rev = "3921ab7858b6af8443fe0bef06b52608be72852c";
+            sha256 = "182ja5a9njlklavh5hzf7p06913pznp7j3chkrp0qwxj3jxysi2d";
+        };
+    }
+    {
+        goPackagePath = "github.com/influxdata/usage-client";
+        fetch = {
+            type = "git";
+            url = "https://github.com/influxdata/usage-client";
+            rev = "6d3895376368aa52a3a81d2a16e90f0f52371967";
+            sha256 = "0a5adnid42f9vpckgcpkj7v60fh147j7zlg1rhxcpq5vkw698ifl";
+        };
+    }
+    {
+        goPackagePath = "github.com/influxdata/yamux";
+        fetch = {
+            type = "git";
+            url = "https://github.com/influxdata/yamux";
+            rev = "1f58ded512de5feabbe30b60c7d33a7a896c5f16";
+            sha256 = "08y1lgcyyaa8zrg24ck64b5dfassgb2pp1fb9x5lw9q16fb170bx";
+        };
+    }
+    {
+        goPackagePath = "github.com/influxdata/yarpc";
+        fetch = {
+            type = "git";
+            url = "https://github.com/influxdata/yarpc";
+            rev = "036268cdec22b7074cd6d50cc6d7315c667063c7";
+            sha256 = "12xxwr451ya5h7kv7lg6lnwk04xazyxzv2g7bcgx9zifafxlhpxf";
+        };
+    }
+    {
+        goPackagePath = "github.com/jwilder/encoding";
+        fetch = {
+            type = "git";
+            url = "https://github.com/jwilder/encoding";
+            rev = "27894731927e49b0a9023f00312be26733744815";
+            sha256 = "0g4sdc5wj50js2hhrdcb7iik3wpd87gc0ivy4gwn49m8nxlpl7w3";
+        };
+    }
+    {
+        goPackagePath = "github.com/peterh/liner";
+        fetch = {
+            type = "git";
+            url = "https://github.com/peterh/liner";
+            rev = "88609521dc4b6c858fd4c98b628147da928ce4ac";
+            sha256 = "0jacb2fqgiccb98v1875j5xvj01l1z2laga1kgr8lhd0nl22r96k";
+        };
+    }
+    {
+        goPackagePath = "github.com/philhofer/fwd";
+        fetch = {
+            type = "git";
+            url = "https://github.com/philhofer/fwd";
+            rev = "1612a298117663d7bc9a760ae20d383413859798";
+            sha256 = "155l0nvvblpx0fy683q6bzins7csh8fw7yf64hbia8hc7wh0gjdl";
+        };
+    }
+    {
+        goPackagePath = "github.com/retailnext/hllpp";
+        fetch = {
+            type = "git";
+            url = "https://github.com/retailnext/hllpp";
+            rev = "38a7bb71b483e855d35010808143beaf05b67f9d";
+            sha256 = "0zpq5yjqprzdw9ll6g9sqp8nzwkhjh4ngzhx5mxahmpajgnzz7a8";
+        };
+    }
+    {
+        goPackagePath = "github.com/tinylib/msgp";
+        fetch = {
+            type = "git";
+            url = "https://github.com/tinylib/msgp";
+            rev = "ad0ff2e232ad2e37faf67087fb24bf8d04a8ce20";
+            sha256 = "1j3sqsmq8v40dp1qcv2dsy3aq3yl088hpd4fnrrnnl53g3a18p4d";
+        };
+    }
+    {
+        goPackagePath = "github.com/uber-go/atomic";
+        fetch = {
+            type = "git";
+            url = "https://github.com/uber-go/atomic";
+            rev = "74ca5ec650841aee9f289dce76e928313a37cbc6";
+            sha256 = "14a4k5z4p2iig6sf7as5ps1frdyzcr67b9bff0by4z1vg4nrxi7h";
+        };
+    }
+    {
+        goPackagePath = "github.com/uber-go/zap";
+        fetch = {
+            type = "git";
+            url = "https://github.com/uber-go/zap";
+            rev = "fbae0281ffd546fa6d1959fec6075ac5da7fb577";
+            sha256 = "0ys6cb2h3r0vbly36v8zqkqsfc5y7fjsw2qmvx5fvjh35ih4w738";
+        };
+    }
+    {
+        goPackagePath = "github.com/xlab/treeprint";
+        fetch = {
+            type = "git";
+            url = "https://github.com/xlab/treeprint";
+            rev = "06dfc6fa17cdde904617990a0c2d89e3e332dbb3";
+            sha256 = "04v2glr8wsgs8gr5qbcxyqn9s6569lmgqb7rcs6bkmdnr79xpwl5";
+        };
+    }
+    {
+        goPackagePath = "golang.org/x/crypto";
+        fetch = {
+            type = "git";
+            url = "https://go.googlesource.com/crypto";
+            rev = "9477e0b78b9ac3d0b03822fd95422e2fe07627cd";
+            sha256 = "1qcqai6nf1q50z9ga7r4ljnrh1qz49kwlcqpri4bknx732lqq0v5";
+        };
+    }
+    {
+        goPackagePath = "golang.org/x/sys";
+        fetch = {
+            type = "git";
+            url = "https://go.googlesource.com/sys";
+            rev = "1e2299c37cc91a509f1b12369872d27be0ce98a6";
+            sha256 = "1nh8v330pcwgk3h6nvfi12rlydl16v9ajv4s1giyx8wnfq8h6fm1";
+        };
+    }
+    {
+        goPackagePath = "golang.org/x/text";
+        fetch = {
+            type = "git";
+            url = "https://go.googlesource.com/text";
+            rev = "a71fd10341b064c10f4a81ceac72bcf70f26ea34";
+            sha256 = "1igxqrgnnb6983fl0yck0xal2hwnkcgbslr7cxyrg7a65vawd0q1";
+        };
+    }
+]
diff --git a/nixpkgs/pkgs/servers/nosql/influxdb/deps-1.6.3.nix b/nixpkgs/pkgs/servers/nosql/influxdb/deps-1.6.3.nix
new file mode 100644
index 000000000000..a2f4dfaeb8d6
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/influxdb/deps-1.6.3.nix
@@ -0,0 +1,444 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "collectd.org";
+    fetch = {
+      type = "git";
+      url = "https://github.com/collectd/go-collectd";
+      rev =  "2ce144541b8903101fb8f1483cc0497a68798122";
+      sha256 = "0rr9rnc777jk27a7yxhdb7vgkj493158a8k6q44x51s30dkp78x3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev =  "a368813c5e648fee92e5f6c30e3944ff9d5e8895";
+      sha256 = "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/RoaringBitmap/roaring";
+    fetch = {
+      type = "git";
+      url = "https://github.com/RoaringBitmap/roaring";
+      rev =  "d6540aab65a17321470b1661bfc52da1823871e9";
+      sha256 = "1lsrz7j55blalpp95vgz214b35sjf8nfmrw3fxybdl4xipk2ssdj";
+    };
+  }
+  {
+    goPackagePath  = "github.com/beorn7/perks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/beorn7/perks";
+      rev =  "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9";
+      sha256 = "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y";
+    };
+  }
+  {
+    goPackagePath  = "github.com/bmizerany/pat";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bmizerany/pat";
+      rev =  "6226ea591a40176dd3ff9cd8eff81ed6ca721a00";
+      sha256 = "0qjkm7169y6pybwh0s02fjjk251isa2b367xqfzrwvl6cy4yzfxp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/boltdb/bolt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/boltdb/bolt";
+      rev =  "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8";
+      sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cespare/xxhash";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cespare/xxhash";
+      rev =  "5c37fe3735342a2e0d01c87a907579987c8936cc";
+      sha256 = "02aii7z46sasagw816zz3v0gzax1z5d1hkjslz7ng25386p0gzk1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "346938d642f2ec3594ed81d874461961cd0faa76";
+      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
+    };
+  }
+  {
+    goPackagePath  = "github.com/dgrijalva/jwt-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dgrijalva/jwt-go";
+      rev =  "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e";
+      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/dgryski/go-bitstream";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dgryski/go-bitstream";
+      rev =  "9f22ccc24718d9643ac427c8c897ae1a01575783";
+      sha256 = "0x3hbsrn7qafhhjz6lgyc1pd1p5kgkrkbccvsr6yygkl785h5lhn";
+    };
+  }
+  {
+    goPackagePath  = "github.com/glycerine/go-unsnap-stream";
+    fetch = {
+      type = "git";
+      url = "https://github.com/glycerine/go-unsnap-stream";
+      rev =  "62a9a9eb44fd8932157b1a8ace2149eff5971af6";
+      sha256 = "1ray7p4q3vv5zn9w5xs7m9kjh68b2ck98nh25mxhfiwl9jxkabrc";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gogo/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gogo/protobuf";
+      rev =  "1adfc126b41513cc696b209667c8656ea7aac67c";
+      sha256 = "1j7azzlnihcvnd1apw5zr0bz30h7n0gyimqqkgc76vzb1n5dpi7m";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "925541529c1fa6821df4e44ce2723319eb2be768";
+      sha256 = "1d3zjvhl115l23xakj0014qpjchivlg098h10v5nfirkk1i9f9sa";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/snappy";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/snappy";
+      rev =  "d9eb7a3d35ec988b8585d4a0068e462c27d28380";
+      sha256 = "0wynarlr1y8sm9y9l29pm9dgflxriiialpwn01066snzjxnpmbyn";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/go-cmp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-cmp";
+      rev =  "3af367b6b30c263d47e8895973edcca9a49cf029";
+      sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/influxql";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/influxql";
+      rev =  "a7267bff5327e316e54c54342b0bc9598753e3d5";
+      sha256 = "0mqc9xki5l9yfbb0dqjb417cmv3pca1bj71m90dkshladr2wlcg3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/usage-client";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/usage-client";
+      rev =  "6d3895376368aa52a3a81d2a16e90f0f52371967";
+      sha256 = "0a5adnid42f9vpckgcpkj7v60fh147j7zlg1rhxcpq5vkw698ifl";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/yamux";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/yamux";
+      rev =  "1f58ded512de5feabbe30b60c7d33a7a896c5f16";
+      sha256 = "08y1lgcyyaa8zrg24ck64b5dfassgb2pp1fb9x5lw9q16fb170bx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/yarpc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/yarpc";
+      rev =  "f0da2db138cad2fb425541938fc28dd5a5bc6918";
+      sha256 = "1g71flc8s8xas7vmaiwv0425paii1akc7jsdqsgxkhyfxx2gvib0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jsternberg/zap-logfmt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jsternberg/zap-logfmt";
+      rev =  "ac4bd917e18a4548ce6e0e765b29a4e7f397b0b6";
+      sha256 = "0pqp2nsqvsq8kqc7l14340lrvl03715s12bag63kdbi25s8fcdkx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jwilder/encoding";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jwilder/encoding";
+      rev =  "b4e1701a28efcc637d9afcca7d38e495fe909a09";
+      sha256 = "195js5njz86k096p3ggglgpc7rw3801mpqzdfwfr3miflhnp7nwg";
+    };
+  }
+  {
+    goPackagePath  = "github.com/klauspost/compress";
+    fetch = {
+      type = "git";
+      url = "https://github.com/klauspost/compress";
+      rev =  "6c8db69c4b49dd4df1fff66996cf556176d0b9bf";
+      sha256 = "00h2lpqcyc3pg2xk3q4a9cgyv0vkn15bx0hb725j5zbkr9vah23x";
+    };
+  }
+  {
+    goPackagePath  = "github.com/klauspost/cpuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/klauspost/cpuid";
+      rev =  "ae7887de9fa5d2db4eaa8174a7eff2c1ac00f2da";
+      sha256 = "178apw89g8nsd7w6mbdylxn956h3iig6rbw3bkivp6lplhb5dvq4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/klauspost/crc32";
+    fetch = {
+      type = "git";
+      url = "https://github.com/klauspost/crc32";
+      rev =  "cb6bfca970f6908083f26f39a79009d608efd5cd";
+      sha256 = "0q4yr4isgmph1yf1vq527lpmid7vqv56q7vxh3gkp5679fb90q6n";
+    };
+  }
+  {
+    goPackagePath  = "github.com/klauspost/pgzip";
+    fetch = {
+      type = "git";
+      url = "https://github.com/klauspost/pgzip";
+      rev =  "0bf5dcad4ada2814c3c00f996a982270bb81a506";
+      sha256 = "0dgp2iljvhibzxia1g3lsfg4bjmfh4kf0bfrmfi7sd49hwhrvk7s";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev =  "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
+      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
+    };
+  }
+  {
+    goPackagePath  = "github.com/matttproud/golang_protobuf_extensions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/matttproud/golang_protobuf_extensions";
+      rev =  "3247c84500bff8d9fb6d579d800f20b3e091582c";
+      sha256 = "12hcych25wf725zxdkpnyx4wa0gyxl8v4m8xmhdmmaki9bbmqd0d";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mschoch/smat";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mschoch/smat";
+      rev =  "90eadee771aeab36e8bf796039b8c261bebebe4f";
+      sha256 = "141saq6d4z3c7v3jw45zy4gn6wwjlyralqygjff1fzvz1gkvimk3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/opentracing/opentracing-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/opentracing/opentracing-go";
+      rev =  "328fceb7548c744337cd010914152b74eaf4c4ab";
+      sha256 = "1w6s42n9glqwif6awyiapr7sh1wjvkxan41qhc1yi555byyw200k";
+    };
+  }
+  {
+    goPackagePath  = "github.com/paulbellamy/ratecounter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/paulbellamy/ratecounter";
+      rev =  "524851a93235ac051e3540563ed7909357fe24ab";
+      sha256 = "0z4c61ac6v8mpnr9z37d91h1cf8v9psja5jfdxmsf69r1b7qr4f9";
+    };
+  }
+  {
+    goPackagePath  = "github.com/peterh/liner";
+    fetch = {
+      type = "git";
+      url = "https://github.com/peterh/liner";
+      rev =  "6106ee4fe3e8435f18cd10e34557e5e50f0e792a";
+      sha256 = "178s1amw5r60lywgmh24pd2ljim0b05fdfsm4c8px22fkycmn1qr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/philhofer/fwd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/philhofer/fwd";
+      rev =  "bb6d471dc95d4fe11e432687f8b70ff496cf3136";
+      sha256 = "1pg84khadh79v42y8sjsdgfb54vw2kzv7hpapxkifgj0yvcp30g2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/client_golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_golang";
+      rev =  "661e31bf844dfca9aeba15f27ea8aa0d485ad212";
+      sha256 = "0r9sr3m57ks7rc5bbghl0gy9wxlznzmz331xdp42zlgk6g774xcn";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/client_model";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_model";
+      rev =  "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c";
+      sha256 = "19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/common";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/common";
+      rev =  "e4aa40a9169a88835b849a6efb71e05dc04b88f0";
+      sha256 = "0m1n616d694jca0qjwjn5ci7scfgm2jpi94dhi356arm9lhda4jc";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/procfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/procfs";
+      rev =  "54d17b57dd7d4a3aa092476596b3f8a933bde349";
+      sha256 = "1b5218hi6k9i637k6xc7ynpll577zbnrhjm9jr2iczy3j0rr4rvr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/retailnext/hllpp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/retailnext/hllpp";
+      rev =  "101a6d2f8b52abfc409ac188958e7e7be0116331";
+      sha256 = "1dyyjyrscd3d22jhh2pbn67c6nzva0v069215sjjmj313k1xzmj3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/tinylib/msgp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/tinylib/msgp";
+      rev =  "b2b6a672cf1e5b90748f79b8b81fc8c5cf0571a1";
+      sha256 = "0pypfknghg1hcjjrqz3f1riaylk6hcxn9h0qyzynb74rp0qmlxjc";
+    };
+  }
+  {
+    goPackagePath  = "github.com/willf/bitset";
+    fetch = {
+      type = "git";
+      url = "https://github.com/willf/bitset";
+      rev =  "d860f346b89450988a379d7d705e83c58d1ea227";
+      sha256 = "18419ip5mnblnyx2rjixad90dhjb1x2kaiidr7zk9b3qci799rh0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/xlab/treeprint";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xlab/treeprint";
+      rev =  "f3a15cfd24bf976c724324cb6846a8b54b88b639";
+      sha256 = "0fgbdyk2mfj5vh8902sga33w5gw7q0f1if4nqx631ca33fd6pfbn";
+    };
+  }
+  {
+    goPackagePath  = "go.uber.org/atomic";
+    fetch = {
+      type = "git";
+      url = "https://github.com/uber-go/atomic";
+      rev =  "8474b86a5a6f79c443ce4b2992817ff32cf208b8";
+      sha256 = "166shnjw8rvjvksymi2gqw1ygsbxlq15xb10j2dx5rwy4y4asq8x";
+    };
+  }
+  {
+    goPackagePath  = "go.uber.org/multierr";
+    fetch = {
+      type = "git";
+      url = "https://github.com/uber-go/multierr";
+      rev =  "3c4937480c32f4c13a875a1829af76c98ca3d40a";
+      sha256 = "1slfc6syvw8cvr6rbrjsy6ja5w8gsx0f8aq8qm16rp2x5c2pj07w";
+    };
+  }
+  {
+    goPackagePath  = "go.uber.org/zap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/uber-go/zap";
+      rev =  "35aad584952c3e7020db7b839f6b102de6271f89";
+      sha256 = "0n79ir7jcr7s51j85swji7an0jgy1w5dxg1g68j722rmpbvsagwv";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "c3a3ad6d03f7a915c0f7e194b7152974bb73d287";
+      sha256 = "0x18275g5xlaw55bpx8hdna66d2hpbcw6hs0pxf1kmvfds6gzn6n";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "92b859f39abd2d91a854c9f9c4621b2f5054a92d";
+      sha256 = "1nzbay48k53pxa1sh102v571k6pa57540p0bzcil4qgan47yxba6";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev =  "1d60e4601c6fd243af51cc01ddf169918a5407ca";
+      sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "d8e400bc7db4870d786864138af681469693d18c";
+      sha256 = "08d23f9gjarp63dw0wj54nlqh3x2lqnchzkw8n5d7ik3wy7qy4yf";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev =  "f21a4dfb5e38f5895301dc265a8def02365cc3d0";
+      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/time";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/time";
+      rev =  "26559e0f760e39c24d730d3224364aef164ee23f";
+      sha256 = "00fx6m59cjbi7y0ri4a57q1zs6r310xbg5yqns5kfm2cax0dkmnf";
+    };
+  }
+]
\ No newline at end of file
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/default.nix b/nixpkgs/pkgs/servers/nosql/mongodb/default.nix
new file mode 100644
index 000000000000..55b4b641d153
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/mongodb/default.nix
@@ -0,0 +1,103 @@
+{ stdenv, fetchurl, fetchpatch, scons, boost, gperftools, pcre-cpp, snappy
+, zlib, libyamlcpp, sasl, openssl, libpcap, Security
+}:
+
+# Note:
+# The command line tools are written in Go as part of a different package (mongodb-tools)
+
+with stdenv.lib;
+
+let version = "3.4.10";
+    system-libraries = [
+      "pcre"
+      #"asio" -- XXX use package?
+      #"wiredtiger"
+      "boost"
+      "snappy"
+      "zlib"
+      #"valgrind" -- mongodb only requires valgrind.h, which is vendored in the source.
+      #"stemmer"  -- not nice to package yet (no versioning, no makefile, no shared libs).
+      "yaml"
+    ] ++ optionals stdenv.isLinux [ "tcmalloc" ];
+
+in stdenv.mkDerivation rec {
+  name = "mongodb-${version}";
+
+  src = fetchurl {
+    url = "https://fastdl.mongodb.org/src/mongodb-src-r${version}.tar.gz";
+    sha256 = "1wz2mhl9z0b1bdkg6m8v8mvw9k60mdv5ybq554xn3yjj9z500f24";
+  };
+
+  nativeBuildInputs = [ scons ];
+  buildInputs = [
+    sasl boost gperftools pcre-cpp snappy
+    zlib libyamlcpp sasl openssl.dev openssl.out libpcap
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+  patches =
+    [
+      # MongoDB keeps track of its build parameters, which tricks nix into
+      # keeping dependencies to build inputs in the final output.
+      # We remove the build flags from buildInfo data.
+      ./forget-build-dependencies.patch
+      (fetchpatch {
+        url = https://projects.archlinux.org/svntogit/community.git/plain/trunk/boost160.patch?h=packages/mongodb;
+        name = "boost160.patch";
+        sha256 = "0bvsf3499zj55pzamwjmsssr6x63w434944w76273fr5rxwzcmh8";
+      })
+    ];
+
+  postPatch = ''
+    # fix environment variable reading
+    substituteInPlace SConstruct \
+        --replace "env = Environment(" "env = Environment(ENV = os.environ,"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+
+    substituteInPlace src/third_party/s2/s1angle.cc --replace drem remainder
+    substituteInPlace src/third_party/s2/s1interval.cc --replace drem remainder
+    substituteInPlace src/third_party/s2/s2cap.cc --replace drem remainder
+    substituteInPlace src/third_party/s2/s2latlng.cc --replace drem remainder
+    substituteInPlace src/third_party/s2/s2latlngrect.cc --replace drem remainder
+  '' + stdenv.lib.optionalString stdenv.isi686 ''
+
+    # don't fail by default on i686
+    substituteInPlace src/mongo/db/storage/storage_options.h \
+      --replace 'engine("wiredTiger")' 'engine("mmapv1")'
+  '';
+
+  NIX_CFLAGS_COMPILE = stdenv.lib.optional stdenv.cc.isClang "-Wno-unused-command-line-argument";
+
+  sconsFlags = [
+    "--release"
+    "--ssl"
+    #"--rocksdb" # Don't have this packaged yet
+    "--wiredtiger=${if stdenv.is64bit then "on" else "off"}"
+    "--js-engine=mozjs"
+    "--use-sasl-client"
+    "--disable-warnings-as-errors"
+    "VARIANT_DIR=nixos" # Needed so we don't produce argument lists that are too long for gcc / ld
+  ] ++ map (lib: "--use-system-${lib}") system-libraries;
+
+  preBuild = ''
+    sconsFlags+=" CC=$CC"
+    sconsFlags+=" CXX=$CXX"
+  '';
+
+  preInstall = ''
+    mkdir -p $out/lib
+  '';
+  prefixKey = "--prefix=";
+
+  enableParallelBuilding = true;
+
+  hardeningEnable = [ "pie" ];
+
+  meta = {
+    description = "A scalable, high-performance, open source NoSQL database";
+    homepage = http://www.mongodb.org;
+    license = licenses.agpl3;
+
+    maintainers = with maintainers; [ bluescreen303 offline wkennington cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch b/nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch
new file mode 100644
index 000000000000..ca2c043deb2d
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch
@@ -0,0 +1,17 @@
+--- a/site_scons/mongo_scons_utils.py
++++ b/site_scons/mongo_scons_utils.py
+@@ -84,14 +84,11 @@
+ def default_buildinfo_environment_data():
+     return (
+         ('distmod', '$MONGO_DISTMOD', True, True,),
+         ('distarch', '$MONGO_DISTARCH', True, True,),
+         ('cc', '$CC_VERSION', True, False,),
+-        ('ccflags', '$CCFLAGS', True, False,),
+         ('cxx', '$CXX_VERSION', True, False,),
+-        ('cxxflags', '$CXXFLAGS', True, False,),
+-        ('linkflags', '$LINKFLAGS', True, False,),
+         ('target_arch', '$TARGET_ARCH', True, True,),
+         ('target_os', '$TARGET_OS', True, False,),
+     )
+ 
+ # If you want buildInfo and --version to be relatively empty, set
diff --git a/nixpkgs/pkgs/servers/nosql/neo4j/default.nix b/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
new file mode 100644
index 000000000000..dd84ae5732d0
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, makeWrapper, jre8, which, gawk }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "neo4j-${version}";
+  version = "3.4.10";
+
+  src = fetchurl {
+    url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz";
+    sha256 = "0wxcwsnnwk08w3zaz67aa93ysrl61lsy41xynq1sy6z31a7gx9jr";
+  };
+
+  buildInputs = [ makeWrapper jre8 which gawk ];
+
+  installPhase = ''
+    mkdir -p "$out/share/neo4j"
+    cp -R * "$out/share/neo4j"
+
+    mkdir -p "$out/bin"
+    for NEO4J_SCRIPT in neo4j neo4j-admin neo4j-import neo4j-shell cypher-shell
+    do
+        makeWrapper "$out/share/neo4j/bin/$NEO4J_SCRIPT" \
+            "$out/bin/$NEO4J_SCRIPT" \
+            --prefix PATH : "${stdenv.lib.makeBinPath [ jre8 which gawk ]}" \
+            --set JAVA_HOME "$jre8"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A highly scalable, robust (fully ACID) native graph database";
+    homepage = http://www.neo4j.org/;
+    license = licenses.gpl3;
+
+    maintainers = [ maintainers.offline ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/redis/default.nix b/nixpkgs/pkgs/servers/nosql/redis/default.nix
new file mode 100644
index 000000000000..d6cade72a87e
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/redis/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, lua }:
+
+stdenv.mkDerivation rec {
+  version = "5.0.3";
+  name = "redis-${version}";
+
+  src = fetchurl {
+    url = "http://download.redis.io/releases/${name}.tar.gz";
+    sha256 = "00iyv4ybcgm5xxcm85lg1p99q7xijm05cpadlxa65chpz3fv9472";
+  };
+
+  buildInputs = [ lua ];
+  makeFlags = "PREFIX=$(out)";
+
+  enableParallelBuilding = true;
+
+  doCheck = false; # needs tcl
+
+  meta = with stdenv.lib; {
+    homepage = https://redis.io;
+    description = "An open source, advanced key-value store";
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.berdario ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix b/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
new file mode 100644
index 000000000000..d6ee407e3418
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchurl, which, m4
+, protobuf, boost, zlib, curl, openssl, icu, jemalloc, libtool
+, python2Packages, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  name = "rethinkdb-${version}";
+  version = "2.3.6";
+
+  src = fetchurl {
+    url = "https://download.rethinkdb.com/dist/${name}.tgz";
+    sha256 = "0a6wlgqa2flf87jrp4fq4y9aihwyhgwclmss56z03b8hd5k5j8f4";
+  };
+
+  patches = [
+    (fetchurl {
+        url = "https://github.com/rethinkdb/rethinkdb/commit/871bd3705a1f29c4ab07a096d562a4b06231a97c.patch";
+        sha256 = "05nagixlwnq3x7441fhll5vs70pxppbsciw8qjqp660bdb5m4jm1";
+    })
+  ];
+
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    sed -i 's/raise.*No Xcode or CLT version detected.*/version = "7.0.0"/' external/v8_3.30.33.16/build/gyp/pylib/gyp/xcode_emulation.py
+
+    # very meta
+    substituteInPlace mk/support/pkg/re2.sh --replace "-i '''" "-i"
+  '';
+
+  preConfigure = ''
+    export ALLOW_WARNINGS=1
+    patchShebangs .
+  '';
+
+  configureFlags = stdenv.lib.optionals (!stdenv.isDarwin) [
+    "--with-jemalloc"
+    "--lib-path=${jemalloc}/lib"
+  ];
+
+  buildInputs = [ protobuf boost zlib curl openssl icu makeWrapper ]
+    ++ stdenv.lib.optional (!stdenv.isDarwin) jemalloc
+    ++ stdenv.lib.optional stdenv.isDarwin libtool;
+
+  nativeBuildInputs = [ which m4 python2Packages.python ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    wrapProgram $out/bin/rethinkdb \
+      --prefix PATH ":" "${python2Packages.rethinkdb}/bin"
+  '';
+
+  meta = {
+    description = "An open-source distributed database built with love";
+    longDescription = ''
+      RethinkDB is built to store JSON documents, and scale to
+      multiple machines with very little effort. It has a pleasant
+      query language that supports really useful queries like table
+      joins and group by, and is easy to setup and learn.
+    '';
+    homepage    = http://www.rethinkdb.com;
+    license     = stdenv.lib.licenses.agpl3;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice bluescreen303 ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/riak-cs/2.1.1.nix b/nixpkgs/pkgs/servers/nosql/riak-cs/2.1.1.nix
new file mode 100644
index 000000000000..cf807e70596d
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/riak-cs/2.1.1.nix
@@ -0,0 +1,69 @@
+{ stdenv, lib, fetchurl, unzip, erlang, git, wget, which, pam
+, Carbon ? null, Cocoa ? null }:
+
+stdenv.mkDerivation rec {
+  name = "riak_cs-2.1.1";
+
+  buildInputs = [
+    which unzip erlang git wget
+  ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ]
+    ++ lib.optional stdenv.isLinux [ pam ];
+
+  src = fetchurl {
+    url = "https://s3.amazonaws.com/downloads.basho.com/riak-cs/2.1/2.1.1/riak-cs-2.1.1.tar.gz";
+    sha256 = "115cac127aac6d759c1b429a52e0d18e491c0719a6530b1b88aa52c4efdbedd5";
+  };
+
+
+  postPatch = ''
+    sed -i deps/node_package/priv/base/env.sh \
+      -e 's@{{platform_data_dir}}@''${RIAK_DATA_DIR:-/var/db/riak-cs}@' \
+      -e 's@^RUNNER_SCRIPT_DIR=.*@RUNNER_SCRIPT_DIR='$out'/bin@' \
+      -e 's@^RUNNER_BASE_DIR=.*@RUNNER_BASE_DIR='$out'@' \
+      -e 's@^RUNNER_ETC_DIR=.*@RUNNER_ETC_DIR=''${RIAK_ETC_DIR:-/etc/riak-cs}@' \
+      -e 's@^RUNNER_LOG_DIR=.*@RUNNER_LOG_DIR=''${RIAK_LOG_DIR:-/var/log}@'
+
+    sed -i ./Makefile \
+      -e 's@rel: deps compile@rel: deps compile-src@'
+  '';
+
+  preBuild = ''
+    patchShebangs .
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    make locked-deps
+    make rel
+
+    runHook postBuild
+  '';
+
+  doCheck = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir $out
+    mv rel/riak-cs/etc rel/riak-cs/riak-etc
+    mkdir -p rel/riak-cs/etc
+    mv rel/riak-cs/riak-etc rel/riak-cs/etc/riak-cs
+    mv rel/riak-cs/* $out
+
+    for prog in $out/bin/*; do
+      substituteInPlace $prog \
+        --replace '. "`cd \`dirname $0\` && /bin/pwd`/../lib/env.sh"' \
+                  ". $out/lib/env.sh"
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Dynamo inspired NoSQL DB by Basho with S3 compatibility";
+    platforms   = [ "x86_64-linux" "x86_64-darwin" ];
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ mdaiter ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/riak-cs/stanchion.nix b/nixpkgs/pkgs/servers/nosql/riak-cs/stanchion.nix
new file mode 100644
index 000000000000..1524ca207009
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/riak-cs/stanchion.nix
@@ -0,0 +1,65 @@
+{ stdenv, lib, fetchurl, unzip, erlang, git, wget, which, pam 
+, Carbon ? null, Cocoa ? null }:
+
+stdenv.mkDerivation rec {
+  name = "stanchion-2.1.1";
+
+  buildInputs = [
+    which unzip erlang git wget
+  ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ]
+    ++ lib.optional stdenv.isLinux [ pam ];
+
+  src = fetchurl {
+    url = "https://s3.amazonaws.com/downloads.basho.com/stanchion/2.1/2.1.1/stanchion-2.1.1.tar.gz";
+    sha256 = "1443arwgg7qvlx3msyg99qvvhck7qxphdjslcp494i60fhr2g8ja";
+  };
+
+
+  postPatch = ''
+    sed -i deps/node_package/priv/base/env.sh \
+      -e 's@{{platform_data_dir}}@''${RIAK_DATA_DIR:-/var/db/stanchion}@' \
+      -e 's@^RUNNER_SCRIPT_DIR=.*@RUNNER_SCRIPT_DIR='$out'/bin@' \
+      -e 's@^RUNNER_BASE_DIR=.*@RUNNER_BASE_DIR='$out'@' \
+      -e 's@^RUNNER_ETC_DIR=.*@RUNNER_ETC_DIR=''${RIAK_ETC_DIR:-/etc/stanchion}@' \
+      -e 's@^RUNNER_LOG_DIR=.*@RUNNER_LOG_DIR=''${RIAK_LOG_DIR:-/var/log}@'
+  '';
+
+  preBuild = ''
+    patchShebangs .
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    make rel
+
+    runHook postBuild
+  '';
+
+  doCheck = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir $out
+    mv rel/stanchion/etc rel/stanchion/riak-etc
+    mkdir -p rel/stanchion/etc
+    mv rel/stanchion/riak-etc rel/stanchion/etc/stanchion
+    mv rel/stanchion/* $out
+
+    for prog in $out/bin/*; do
+      substituteInPlace $prog \
+        --replace '. "`cd \`dirname $0\` && /bin/pwd`/../lib/env.sh"' \
+                  ". $out/lib/env.sh"
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    maintainers = with maintainers; [ mdaiter ];
+    description = "Manager for Riak CS";
+    platforms   = [ "x86_64-linux" "x86_64-darwin" ];
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix b/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix
new file mode 100644
index 000000000000..a09b4543cbbe
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix
@@ -0,0 +1,97 @@
+{ stdenv, lib, fetchurl, unzip, erlang, which, pam }:
+
+let
+  solrName = "solr-4.10.4-yz-2.tgz";
+  yokozunaJarName = "yokozuna-3.jar";
+  yzMonitorJarName = "yz_monitor-1.jar";
+
+  srcs = {
+    riak = fetchurl {
+      url = "https://s3.amazonaws.com/downloads.basho.com/riak/2.2/2.2.0/riak-2.2.0.tar.gz";
+      sha256 = "0kl28bpyzajcllybili46jfr1schl45w5ysii187jr0ssgls2c9p";
+    };
+    solr = fetchurl {
+      url = "http://s3.amazonaws.com/files.basho.com/solr/${solrName}";
+      sha256 = "0fy5slnldn628gmr2kilyx606ph0iykf7pz6j0xjcc3wqvrixa2a";
+    };
+    yokozunaJar = fetchurl {
+      url = "http://s3.amazonaws.com/files.basho.com/yokozuna/${yokozunaJarName}";
+      sha256 = "17n6m100fz8affdcxsn4niw2lrpnswgfnd6aszgzipffwbg7v8v5";
+    };
+    yzMonitorJar = fetchurl {
+      url = "http://s3.amazonaws.com/files.basho.com/yokozuna/${yzMonitorJarName}";
+      sha256 = "0kb97d1a43vw759j1h5qwbhx455pidn2pi7sfxijqic37h81ri1m";
+    };
+  };
+in
+
+stdenv.mkDerivation rec {
+  name = "riak-2.2.0";
+
+  buildInputs = [
+    which unzip erlang pam
+  ];
+
+  src = srcs.riak;
+
+  hardeningDisable = [ "format" ];
+
+  postPatch = ''
+    sed -i deps/node_package/priv/base/env.sh \
+      -e 's@{{platform_data_dir}}@''${RIAK_DATA_DIR:-/var/db/riak}@' \
+      -e 's@^RUNNER_SCRIPT_DIR=.*@RUNNER_SCRIPT_DIR='$out'/bin@' \
+      -e 's@^RUNNER_BASE_DIR=.*@RUNNER_BASE_DIR='$out'@' \
+      -e 's@^RUNNER_ETC_DIR=.*@RUNNER_ETC_DIR=''${RIAK_ETC_DIR:-/etc/riak}@' \
+      -e 's@^RUNNER_LOG_DIR=.*@RUNNER_LOG_DIR=''${RIAK_LOG_DIR:-/var/log}@'
+  '';
+
+  preBuild = ''
+    mkdir solr-pkg
+    cp ${srcs.solr} solr-pkg/${solrName}
+    export SOLR_PKG_DIR=$(readlink -f solr-pkg)
+
+    mkdir -p deps/yokozuna/priv/java_lib
+    cp ${srcs.yokozunaJar} deps/yokozuna/priv/java_lib/${yokozunaJarName}
+
+    mkdir -p deps/yokozuna/priv/solr/lib/ext
+    cp ${srcs.yzMonitorJar} deps/yokozuna/priv/solr/lib/ext/${yzMonitorJarName}
+
+    patchShebangs .
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    make locked-deps
+    make rel
+
+    runHook postBuild
+  '';
+
+  doCheck = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir $out
+    mv rel/riak/etc rel/riak/riak-etc
+    mkdir -p rel/riak/etc
+    mv rel/riak/riak-etc rel/riak/etc/riak
+    mv rel/riak/* $out
+
+    for prog in $out/bin/*; do
+      substituteInPlace $prog \
+        --replace '. "`cd \`dirname $0\` && /bin/pwd`/../lib/env.sh"' \
+                  ". $out/lib/env.sh"
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    maintainers = with maintainers; [ cstrahan mdaiter ];
+    description = "Dynamo inspired NoSQL DB by Basho";
+    platforms   = [ "x86_64-linux" ];
+    license     = licenses.asl20;
+  };
+}