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.nix86
-rw-r--r--nixpkgs/pkgs/servers/nosql/eventstore/default.nix49
-rw-r--r--nixpkgs/pkgs/servers/nosql/influxdb/default.nix30
-rw-r--r--nixpkgs/pkgs/servers/nosql/influxdb/deps.nix840
-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.nix39
-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.nix70
-rw-r--r--nixpkgs/pkgs/servers/nosql/riak-cs/stanchion.nix65
-rw-r--r--nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix98
21 files changed, 1670 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..d165a34d5f62
--- /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.10.0";
+    name="${baseName}-${version}";
+    url="http://archive.apache.org/dist/jena/binaries/apache-jena-fuseki-${version}.tar.gz";
+    sha256 = "0v7srssivhx0bswvbr8ifaahcknlajwqqhr449v5zzi6nbyc613a";
+  };
+  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..eaa85e69bec0
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchurl, python, makeWrapper, gawk, bash, getopt, procps
+, which, jre, version, sha256, coreutils, ...
+}:
+
+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/sstablescrub \
+               bin/sstableupgrade \
+               bin/sstableutil \
+               bin/sstableverify \
+               tools/bin/cassandra-stress \
+               tools/bin/cassandra-stressd \
+               tools/bin/sstabledump \
+               tools/bin/sstableexpiredblockers \
+               tools/bin/sstablelevelreset \
+               tools/bin/sstablemetadata \
+               tools/bin/sstableofflinerelevel \
+               tools/bin/sstablerepairedset \
+               tools/bin/sstablesplit \
+               tools/bin/token-generator; do
+
+      # check if file exists because some bin tools don't exist across all
+      # cassandra versions
+      if [ -f $out/$cmd ]; then
+        makeWrapper $out/$cmd $out/bin/$(${coreutils}/bin/basename "$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..7880c6db7fd9
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/eventstore/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, git, mono, v8, runtimeShell }:
+
+# 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
+    #!${runtimeShell}
+    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..1bbdc6789529
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/influxdb/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildGoPackage, fetchFromGitHub, }:
+
+buildGoPackage rec {
+  pname = "influxdb";
+  version = "1.7.5";
+
+  src = fetchFromGitHub {
+    owner = "influxdata";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0gwivazjvxw6fflf2637qn0crq564fjzhncsl3agph5ciqyv48gx";
+  };
+
+  buildFlagsArray = [ ''-ldflags=
+    -X main.version=${version}
+  '' ];
+
+  goPackagePath = "github.com/influxdata/influxdb";
+
+  excludedPackages = "test";
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "An open-source distributed time series database";
+    license = licenses.mit;
+    homepage = https://influxdata.com/;
+    maintainers = with maintainers; [ offline zimbatm ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nosql/influxdb/deps.nix b/nixpkgs/pkgs/servers/nosql/influxdb/deps.nix
new file mode 100644
index 000000000000..e00a985fd8d3
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/influxdb/deps.nix
@@ -0,0 +1,840 @@
+# 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/Masterminds/semver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/semver";
+      rev =  "c7af12943936e8c39859482e61f0574c2fd7fc75";
+      sha256 = "0k2fpk2x8jbvqkqxx5hkx1ygrsppzmzypqb90i1r33yq7ac7zlxj";
+    };
+  }
+  {
+    goPackagePath  = "github.com/RoaringBitmap/roaring";
+    fetch = {
+      type = "git";
+      url = "https://github.com/RoaringBitmap/roaring";
+      rev =  "3d677d3262197ee558b85029301eb69b8239f91a";
+      sha256 = "0v5jbqr7m4x7n8rxcyizhs21ndyinn8kil9hd6y2bifx9b9g6gv9";
+    };
+  }
+  {
+    goPackagePath  = "github.com/alecthomas/kingpin";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/kingpin";
+      rev =  "947dcec5ba9c011838740e680966fd7087a71d0d";
+      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/alecthomas/template";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/template";
+      rev =  "a0175ee3bccc567396460bf5acd36800cb10c49c";
+      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+    };
+  }
+  {
+    goPackagePath  = "github.com/alecthomas/units";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/units";
+      rev =  "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
+      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+    };
+  }
+  {
+    goPackagePath  = "github.com/apache/arrow";
+    fetch = {
+      type = "git";
+      url = "https://github.com/apache/arrow";
+      rev =  "f5df77359953ed06e1dce47edffc03340e2ff3ea";
+      sha256 = "12lygmhrchpf46jzyf0gnbfq3bf9ha68iajbnzflqf6k78jf6dj7";
+    };
+  }
+  {
+    goPackagePath  = "github.com/apex/log";
+    fetch = {
+      type = "git";
+      url = "https://github.com/apex/log";
+      rev =  "941dea75d3ebfbdd905a5d8b7b232965c5e5c684";
+      sha256 = "0cavvljwrxhxpsf6wdfncswamsqvpkah2pmnm6g94iq6l16lkbix";
+    };
+  }
+  {
+    goPackagePath  = "github.com/aws/aws-sdk-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aws/aws-sdk-go";
+      rev =  "dd947f47decb37a7c3bee72501bfc790701ab5ad";
+      sha256 = "1l4lxxlw0x2lkkr2m78p67ncr7dbv9a5ij8ahwa8hqm2sv0zsc5d";
+    };
+  }
+  {
+    goPackagePath  = "github.com/beorn7/perks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/beorn7/perks";
+      rev =  "3a771d992973f24aa725d07868b467d1ddfceafb";
+      sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/blakesmith/ar";
+    fetch = {
+      type = "git";
+      url = "https://github.com/blakesmith/ar";
+      rev =  "8bd4349a67f2533b078dbc524689d15dba0f4659";
+      sha256 = "1rdbn3v9vv3cs6indgrf9agydcbaspyc21fi0mpxlksva1sci99j";
+    };
+  }
+  {
+    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/c-bata/go-prompt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/c-bata/go-prompt";
+      rev =  "e99fbc797b795e0a7a94affc8d44f6a0350d85f0";
+      sha256 = "00i8wfi51hzla59qgkdlijnvad4h1p1si9jaaw3jzchm7g7ryrlj";
+    };
+  }
+  {
+    goPackagePath  = "github.com/caarlos0/ctrlc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/caarlos0/ctrlc";
+      rev =  "70dc48d5d792f20f684a8f1d29bbac298f4b2ef4";
+      sha256 = "1xqlagjzwvfls17vn5zlmw58g4ha60hvpjpj7nbd9mn87yd2h22j";
+    };
+  }
+  {
+    goPackagePath  = "github.com/campoy/unique";
+    fetch = {
+      type = "git";
+      url = "https://github.com/campoy/unique";
+      rev =  "88950e537e7e644cd746a3102037b5d2b723e9f5";
+      sha256 = "1cf0mfdxx68ak8i3x5z50nhr29ivpssg2sg73krdpxs2qjzwji90";
+    };
+  }
+  {
+    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 =  "3522498ce2c8ea06df73e55df58edfbfb33cfdd6";
+      sha256 = "1lr0qjdddxdiwfs530saglk4q5395i4n3w8h8k5j8nsjj8k3na7f";
+    };
+  }
+  {
+    goPackagePath  = "github.com/fatih/color";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/color";
+      rev =  "570b54cabe6b8eb0bc2dfce68d964677d63b5260";
+      sha256 = "1hw9hgkfzbzqjhy29pqpk20xggxaqjv45wx8yn69488mw5ph7khh";
+    };
+  }
+  {
+    goPackagePath  = "github.com/glycerine/go-unsnap-stream";
+    fetch = {
+      type = "git";
+      url = "https://github.com/glycerine/go-unsnap-stream";
+      rev =  "9f0cb55181dd3a0a4c168d3dbc72d4aca4853126";
+      sha256 = "1v10z30y9qc8dl34x0s8lr773g6raxilfdxbmzd1176pspzcmm9n";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-ini/ini";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-ini/ini";
+      rev =  "7b294651033cd7d9e7f0d9ffa1b75ed1e198e737";
+      sha256 = "0y6qzla90zd6dhs04vclrg46rwlsy9zlqi0y6y2k1pdxn2cbblhb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-sql-driver/mysql";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-sql-driver/mysql";
+      rev =  "d523deb1b23d913de5bdada721a6071e71283618";
+      sha256 = "1jwz2j3vd5hlzmnkh20d4276yd8cxy7pac3x3dfi52jkm82ms99n";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gogo/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gogo/protobuf";
+      rev =  "636bf0302bc95575d69441b25a2603156ffdddf1";
+      sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "b4deda0973fb4c70b50d226b1af49f3da59f5265";
+      sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq";
+    };
+  }
+  {
+    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/google/go-github";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-github";
+      rev =  "dd29b543e14c33e6373773f2c5ea008b29aeac95";
+      sha256 = "0sk67d9zdn420h2g4l3wib28zqr3ihbg6dj382cwmns7yska58lp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/go-querystring";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-querystring";
+      rev =  "44c6ddd0a2342c386950e880b658017258da92fc";
+      sha256 = "0xl12bqyvmn4xcnf8p9ksj9rmnr7s40pvppsdmy8n9bzw1db0iwz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/goreleaser/goreleaser";
+    fetch = {
+      type = "git";
+      url = "https://github.com/goreleaser/goreleaser";
+      rev =  "f99940ff5397b099bf606cf1323c00c63afcd153";
+      sha256 = "1mh4j0vdyxhr7fmwva59p0wrsrk318c2fbgzf1vqbgs8iwibs739";
+    };
+  }
+  {
+    goPackagePath  = "github.com/goreleaser/nfpm";
+    fetch = {
+      type = "git";
+      url = "https://github.com/goreleaser/nfpm";
+      rev =  "de75d679901371e3ed0c0a606e160539d5a4b45e";
+      sha256 = "1dbw458xndgj9k5dvffrqkz7cq6rcmflvsvzd8adsg24a3mk3qgy";
+    };
+  }
+  {
+    goPackagePath  = "github.com/imdario/mergo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/imdario/mergo";
+      rev =  "9f23e2d6bd2a77f959b2bf6acdbefd708a83a4a4";
+      sha256 = "1lbzy8p8wv439sqgf0n21q52flf2wbamp6qa1jkyv6an0nc952q7";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/flux";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/flux";
+      rev =  "8c9d0ad49204d3bbb171e96d872cf663ee7f1b4d";
+      sha256 = "0yamrzqjs6giwqq0ljf2dscarqw6851cw3iya8cya0x5plyd810c";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/influxql";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/influxql";
+      rev =  "c661ab7db8ad858626cc7a2114e786f4e7463564";
+      sha256 = "1j73aj312laqmi20fbinx0aal82ncpqbj5dgs41br0j7fkvi6873";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/line-protocol";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/line-protocol";
+      rev =  "32c6aa80de5eb09d190ad284a8214a531c6bce57";
+      sha256 = "0wvd6lplbvmz2lznvy4zz3fmxiqc43cgr4vppp1xi38j1iwq0349";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/platform";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/platform";
+      rev =  "0f79e4ea3248354c789cba274542e0a8e55971db";
+      sha256 = "16d9g7vgy30zahhj066kz7akahvpknq3ljk2fzvczjsm59ih8rjk";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/roaring";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/roaring";
+      rev =  "fc520f41fab6dcece280e8d4853d87a09a67f9e0";
+      sha256 = "0jr9r5q4s5bz4kbqndrlm5aikls4kqbl955qbsh6bpbmxdsamcsr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/tdigest";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/tdigest";
+      rev =  "a7d76c6f093a59b94a01c6c2b8429122d444a8cc";
+      sha256 = "02jxrb2d1n6zflwa7jhgid5344l6zj4gxg4kis20v7xa6iqrj1ni";
+    };
+  }
+  {
+    goPackagePath  = "github.com/influxdata/usage-client";
+    fetch = {
+      type = "git";
+      url = "https://github.com/influxdata/usage-client";
+      rev =  "6d3895376368aa52a3a81d2a16e90f0f52371967";
+      sha256 = "0a5adnid42f9vpckgcpkj7v60fh147j7zlg1rhxcpq5vkw698ifl";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jmespath/go-jmespath";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jmespath/go-jmespath";
+      rev =  "0b12d6b5";
+      sha256 = "1vv6hph8j6xgv7gwl9vvhlsaaqsm22sxxqmgmldi4v11783pc1ld";
+    };
+  }
+  {
+    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/kevinburke/go-bindata";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kevinburke/go-bindata";
+      rev =  "06af60a4461b70d84a2b173d92f9f425d78baf55";
+      sha256 = "0k9bpx6vqsr53bzj7k78rjalybpwbs86zdks6v7jqkwsrx4j7a07";
+    };
+  }
+  {
+    goPackagePath  = "github.com/kisielk/gotool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kisielk/gotool";
+      rev =  "80517062f582ea3340cd4baf70e86d539ae7d84d";
+      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+    };
+  }
+  {
+    goPackagePath  = "github.com/klauspost/compress";
+    fetch = {
+      type = "git";
+      url = "https://github.com/klauspost/compress";
+      rev =  "b939724e787a27c0005cabe3f78e7ed7987ac74f";
+      sha256 = "1y7951q0ji894d111lqqbacq64cxyi2dxsni5sqi9488zsasgw8s";
+    };
+  }
+  {
+    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/lib/pq";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lib/pq";
+      rev =  "4ded0e9383f75c197b3a2aaa6d590ac52df6fd79";
+      sha256 = "1zqnnyczaf00xi6xh53vq758v5bdlf0iz7kf22l02cal4i6px47i";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-colorable";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-colorable";
+      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
+      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev =  "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
+      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev =  "9e777a8366cce605130a531d2cd6363d07ad7317";
+      sha256 = "0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-tty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-tty";
+      rev =  "13ff1204f104d52c3f7645ec027ecbcf9026429e";
+      sha256 = "1c9vzrq7r5skq0cz9alkix9n1cp6h7wybdwrg0f1vzvxj26qr7yq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-zglob";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-zglob";
+      rev =  "2ea3427bfa539cca900ca2768d8663ecc8a708c1";
+      sha256 = "1sncdyq5fbd42al4amyy91h7vlzm3wm6c9vl8za2pjgfgsd581fz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/matttproud/golang_protobuf_extensions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/matttproud/golang_protobuf_extensions";
+      rev =  "c12348ce28de40eed0136aa2b644d0ee0650e56c";
+      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mitchellh/go-homedir";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-homedir";
+      rev =  "ae18d6b8b3205b561c79e8e5f69bff09736185f4";
+      sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mna/pigeon";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mna/pigeon";
+      rev =  "9df264905d4734c0133161d8c67828ff522b154a";
+      sha256 = "120m90lig5984wd2k7x2fclx5vb64lxmx4j3065pp0q1fqjif87z";
+    };
+  }
+  {
+    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 =  "bd9c3193394760d98b2fa6ebb2291f0cd1d06a7d";
+      sha256 = "11ad6yhi1fi7ybg6jj18kw5pl12zhvvcrkjqbz6rspawb5qrlq1g";
+    };
+  }
+  {
+    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 =  "8c1271fcf47f341a9e6771872262870e1ad7650c";
+      sha256 = "15swk6y173sdav3gzxk0rj2z17khsyc8wljk6gk3w4fq9wnziggd";
+    };
+  }
+  {
+    goPackagePath  = "github.com/philhofer/fwd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/philhofer/fwd";
+      rev =  "bb6d471dc95d4fe11e432687f8b70ff496cf3136";
+      sha256 = "1pg84khadh79v42y8sjsdgfb54vw2kzv7hpapxkifgj0yvcp30g2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/term";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/term";
+      rev =  "bffc007b7fd5a70e20e28f5b7649bb84671ef436";
+      sha256 = "0c9xnx7dyw7j890nm9av5fjpqjb129z7vbg3lw554vwnckc84x54";
+    };
+  }
+  {
+    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 =  "5c3871d89910bfb32f5fcab2aa4b9ec68e65a99f";
+      sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/common";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/common";
+      rev =  "7600349dcfe1abd18d72d3a1770870d9800a7801";
+      sha256 = "0lsp94dqpj35dny4m4x15kg4wgwawlm3in7cnpajkkacgyxagk5f";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/procfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/procfs";
+      rev =  "ae68e2d4c00fed4943b5f6698d504a5fe083da8a";
+      sha256 = "04sar4k99w8nvq3kwx6chz0mbp4s6xfjfxww7aqfd950xgs2jv5f";
+    };
+  }
+  {
+    goPackagePath  = "github.com/retailnext/hllpp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/retailnext/hllpp";
+      rev =  "101a6d2f8b52abfc409ac188958e7e7be0116331";
+      sha256 = "1dyyjyrscd3d22jhh2pbn67c6nzva0v069215sjjmj313k1xzmj3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/satori/go.uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/satori/go.uuid";
+      rev =  "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3";
+      sha256 = "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/segmentio/kafka-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/segmentio/kafka-go";
+      rev =  "c6db9435477f3cb658e2dd0fa93e02118c870251";
+      sha256 = "17zdj0i429a0wmwj8rm4j0hmxsv8kbql67s5iv78hac6rcys7bj2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/cast";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/cast";
+      rev =  "8c9545af88b134710ab1cd196795e7f2388358d7";
+      sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
+    };
+  }
+  {
+    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 =  "d6fb6747feb6e7cfdc44682a024bddf87ef07ec2";
+      sha256 = "1ln6p8va53sxrhyy0gfanskzzc30c55l6nk1f0bin91jlr2mxn4n";
+    };
+  }
+  {
+    goPackagePath  = "go.uber.org/atomic";
+    fetch = {
+      type = "git";
+      url = "https://github.com/uber-go/atomic";
+      rev =  "1ea20fb1cbb1cc08cbd0d913a96dead89aa18289";
+      sha256 = "11pzvjys5ddjjgrv94pgk9pnip9yyb54z7idf33zk7p7xylpnsv6";
+    };
+  }
+  {
+    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 =  "4d45f9617f7d90f7a663ff21c7a4321dbe78098b";
+      sha256 = "0fpgcbqv8inx70jmnrv0zay7mjj8rwwcvd3ivqwy1wmrmkm8jjmj";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "a2144134853fc9a27a7b1e3eb4f19f1a76df13c9";
+      sha256 = "0hjjk6k9dq7zllwsw9icdfbli12ii379q2lajd6l7lyw72wy28by";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "a680a1efc54dd51c040b3b5ce4939ea3cf2ea0d1";
+      sha256 = "018zmn4kmg2mbngcciqal54slc3pl4ry5vlv0bw36fcxvnazxnbp";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/oauth2";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/oauth2";
+      rev =  "c57b0facaced709681d9f90397429b9430a74754";
+      sha256 = "044rx9vkkwpp7d23gdk3k4yb7k28kcy34y83pjb1gwndhhh019w1";
+    };
+  }
+  {
+    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 =  "ac767d655b305d4e9612f5f6e33120b9176c4ad4";
+      sha256 = "1ds29n5lh4j21hmzxz7vk7hv1k6sixc7f0zsdc9xqdg0j7d212zm";
+    };
+  }
+  {
+    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 =  "fbb02b2291d28baffd63558aa44b4b56f178d650";
+      sha256 = "0jjqcv6rzihlgg4i797q80g1f6ch5diz2kxqh6488gwkb6nds4h4";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev =  "45ff765b4815d34d8b80220fd05c79063b185ce1";
+      sha256 = "0pirpy0xcks294zd629x6p5yxwcpz1xbxbg6hy5xpxqq2v24nxqr";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/appengine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/appengine";
+      rev =  "ae0ab99deb4dc413a2b4bd6c8bdd0eb67f1e4d06";
+      sha256 = "1iabxnqgxvvn1239i6fvfl375vlbvhfrc03m1x2rvalmx4d6w9c7";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/genproto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-genproto";
+      rev =  "fedd2861243fd1a8152376292b921b394c7bef7e";
+      sha256 = "08324j170skzacglhjmpkpsivp9gwcvmljx1nq6a2d2h2qksfdbp";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/grpc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/grpc/grpc-go";
+      rev =  "168a6198bcb0ef175f7dacec0b8691fc141dc9b8";
+      sha256 = "0d8vj372ri55mrqfc0rhjl3albp5ykwfjhda1s5cgm5n40v70pr3";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
+  {
+    goPackagePath  = "honnef.co/go/tools";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dominikh/go-tools";
+      rev =  "d73ab98e7c39fdcf9ba65062e43d34310f198353";
+      sha256 = "1khl6szjj0skkfqp234p9rf3icik7fw2pk2x0wbj3wa9q3f84hb7";
+    };
+  }
+]
\ 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..b1d9154a7475
--- /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 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..73ec5038fe3d
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, makeWrapper, jre8, which, gawk }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "neo4j-${version}";
+  version = "3.5.4";
+
+  src = fetchurl {
+    url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz";
+    sha256 = "0fqp3k0gr5qb2a7ck093fw581db9fmfvhsich740d588ik749jbh";
+  };
+
+  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 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..16f21391dee1
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/redis/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, lua }:
+
+stdenv.mkDerivation rec {
+  version = "5.0.4";
+  name = "redis-${version}";
+
+  src = fetchurl {
+    url = "http://download.redis.io/releases/${name}.tar.gz";
+    sha256 = "1pc7r4lbvhiyln7y529798nv8lxasky6sgspw49hkxi3bbzwxs9w";
+  };
+
+  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..36b29b57bf97
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/riak-cs/2.1.1.nix
@@ -0,0 +1,70 @@
+{ 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 ];
+    knownVulnerabilities = [ "CVE-2017-3163 - see https://github.com/NixOS/nixpkgs/issues/33876" ];
+  };
+}
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..170b0d5f22f9
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix
@@ -0,0 +1,98 @@
+{ 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;
+    knownVulnerabilities = [ "CVE-2017-3163 - see https://github.com/NixOS/nixpkgs/issues/33876" ];
+  };
+}