summary refs log tree commit diff
diff options
context:
space:
mode:
authorWilliam A. Kennington III <william@wkennington.com>2015-05-18 15:38:27 -0700
committerWilliam A. Kennington III <william@wkennington.com>2015-05-18 19:45:19 -0700
commit414b3f2909a0a912cb7fb4a5890b7cd31867d8f1 (patch)
tree3258acfb3873c9b135c59b74721abbd3bf628ab7
parent1dbd67ee820159c3829f04b2aba66451c43109e9 (diff)
downloadnixpkgs-414b3f2909a0a912cb7fb4a5890b7cd31867d8f1.tar
nixpkgs-414b3f2909a0a912cb7fb4a5890b7cd31867d8f1.tar.gz
nixpkgs-414b3f2909a0a912cb7fb4a5890b7cd31867d8f1.tar.bz2
nixpkgs-414b3f2909a0a912cb7fb4a5890b7cd31867d8f1.tar.lz
nixpkgs-414b3f2909a0a912cb7fb4a5890b7cd31867d8f1.tar.xz
nixpkgs-414b3f2909a0a912cb7fb4a5890b7cd31867d8f1.tar.zst
nixpkgs-414b3f2909a0a912cb7fb4a5890b7cd31867d8f1.zip
consul: Move into the go-packages framework
-rw-r--r--pkgs/development/go-modules/generic/default.nix4
-rw-r--r--pkgs/servers/consul/default.nix63
-rw-r--r--pkgs/servers/consul/ui.nix39
-rw-r--r--pkgs/top-level/all-packages.nix6
-rw-r--r--pkgs/top-level/go-packages.nix367
5 files changed, 359 insertions, 120 deletions
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index 5860176ecad..17341238dea 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -1,6 +1,6 @@
 { go, govers, lib }:
 
-{ name, buildInputs ? []
+{ name, buildInputs ? [], passthru ? {}
 
 # Disabled flag
 , disabled ? false
@@ -126,7 +126,7 @@ go.stdenv.mkDerivation (
     runHook postInstall
   '';
 
-  passthru = lib.optionalAttrs (goPackageAliases != []) { inherit goPackageAliases; };
+  passthru = passthru // lib.optionalAttrs (goPackageAliases != []) { inherit goPackageAliases; };
 
   meta = meta // {
     # add an extra maintainer to every package
diff --git a/pkgs/servers/consul/default.nix b/pkgs/servers/consul/default.nix
deleted file mode 100644
index b299981bee2..00000000000
--- a/pkgs/servers/consul/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv, lib, go, fetchgit, fetchhg, fetchbzr, fetchFromGitHub , ruby , nodejs
-, bundlerEnv }:
-
-let
-  version = "0.5.0";
-  # `sass` et al
-  gems = bundlerEnv {
-    name = "consul-deps";
-    gemfile = ./Gemfile;
-    lockfile = ./Gemfile.lock;
-    gemset = ./gemset.nix;
-  };
-in
-
-with lib;
-stdenv.mkDerivation {
-  name = "consul-${version}";
-
-  src = import ./deps.nix {
-    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
-  };
-
-  buildInputs = [ go ruby gems nodejs ];
-
-  buildPhase = ''
-    # Build consul binary
-    export GOPATH=$src
-    go build -v -o consul github.com/hashicorp/consul
-
-    # Build ui static files
-    ({
-      cp -r src/github.com/hashicorp/consul/ui .
-      cd ui
-      chmod -R u+w .
-      make dist
-    })
-  '';
-
-  outputs = [ "out" "ui" ];
-
-  installPhase = ''
-    # Fix references to go-deps in the binary
-    hash=$(echo $src | sed 's,.*/\([^/-]*\).*,\1,g')
-    xs=$(printf 'x%.0s' $(seq 2 $(echo $hash | wc -c)))
-    sed -i "s,$hash,$xs,g" consul
-
-    # Install consul binary
-    mkdir -p $out/bin
-    cp consul $out/bin
-
-    # Install ui static files
-    mkdir -p $ui
-    mv ui/dist/* $ui
-  '';
-
-  meta = with lib; {
-    homepage    = http://www.consul.io/;
-    description = "A tool for service discovery, monitoring and configuration";
-    maintainers = with maintainers; [ cstrahan wkennington ];
-    license     = licenses.mpl20 ;
-    platforms   = platforms.unix;
-  };
-}
diff --git a/pkgs/servers/consul/ui.nix b/pkgs/servers/consul/ui.nix
new file mode 100644
index 00000000000..eb7093ec615
--- /dev/null
+++ b/pkgs/servers/consul/ui.nix
@@ -0,0 +1,39 @@
+{ stdenv, goPackages, ruby , nodejs, bundlerEnv }:
+
+let
+  # `sass` et al
+  gems = bundlerEnv {
+    name = "consul-ui-deps";
+    gemfile = ./Gemfile;
+    lockfile = ./Gemfile.lock;
+    gemset = ./gemset.nix;
+  };
+in
+
+stdenv.mkDerivation {
+  name = "consul-ui-${goPackages.consul.rev}";
+
+  src = goPackages.consul.src;
+
+  buildInputs = [ ruby gems nodejs ];
+
+  buildPhase = ''
+    # Build ui static files
+    cd ui
+    make dist
+  '';
+
+  installPhase = ''
+    # Install ui static files
+    mkdir -p $out
+    mv dist/* $out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage    = http://www.consul.io/;
+    description = "A tool for service discovery, monitoring and configuration";
+    maintainers = with maintainers; [ cstrahan wkennington ];
+    license     = licenses.mpl20 ;
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 40a77f8a623..bc2b7ee5b31 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -758,11 +758,9 @@ let
 
   cloud-init = callPackage ../tools/virtualization/cloud-init { };
 
-  consul = callPackage ../servers/consul {
-   # inherit ruby;
-  };
+  consul = goPackages.consul;
 
-  consul_ui = consul.ui;
+  consul-ui = callPackage ../servers/consul/ui.nix { };
 
   consul-alerts = callPackage ../servers/consul/alerts.nix { };
 
diff --git a/pkgs/top-level/go-packages.nix b/pkgs/top-level/go-packages.nix
index 7fd57bb74ef..ae84dd69117 100644
--- a/pkgs/top-level/go-packages.nix
+++ b/pkgs/top-level/go-packages.nix
@@ -57,7 +57,10 @@ let
     rev = "d1d694760b7a3a9fa32e4d1c49e08b2d672221d8";
     name = "net-${stdenv.lib.strings.substring 0 7 rev}";
     goPackagePath = "golang.org/x/net";
-    goPackageAliases = [ "code.google.com/p/go.net" ];
+    goPackageAliases = [
+      "code.google.com/p/go.net"
+      "github.com/hashicorp/go.net"
+    ];
 
     src = fetchFromGitHub {
       inherit rev;
@@ -214,6 +217,19 @@ let
     };
   };
 
+  bolt = buildGoPackage rec {
+    rev = "957d850b5158a4eebf915476058e720f43459584";
+    name = "bolt-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/boltdb/bolt";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "boltdb";
+      repo = "bolt";
+      sha256 = "193adhhsqdy0kyq1l1fi8pg2n6pwyrw4h607qm78qyi26f8i7vzf";
+    };
+  };
+
   bufio = buildGoPackage rec {
     rev = "24e7e48f60fc2d9e99e43c07485d9fff42051e66";
     name = "bufio-${stdenv.lib.strings.substring 0 7 rev}";
@@ -241,6 +257,7 @@ let
     rev = "f092b4f207b6e5cce0569056fba9e1a2735cb6cf";
     name = "circbuf-${stdenv.lib.strings.substring 0 7 rev}";
     goPackagePath = "github.com/armon/circbuf";
+
     src = fetchFromGitHub {
       inherit rev;
       owner = "armon";
@@ -250,15 +267,18 @@ let
   };
 
   cli = buildGoPackage rec {
-    rev = "8262fe3f76f0da53b5674eb35c8c6436430794c3";
+    rev = "6cc8bc522243675a2882b81662b0b0d2e04b99c9";
     name = "cli-${stdenv.lib.strings.substring 0 7 rev}";
     goPackagePath = "github.com/mitchellh/cli";
+
     src = fetchFromGitHub {
       inherit rev;
       owner = "mitchellh";
       repo = "cli";
-      sha256 = "0pqkxh1q49kkxihggrfjs8174d927g4c5qqx00ggw8sqqsgrw6vn";
+      sha256 = "05w9ypliva9lyn3h4rahznj04mh0fws7vaqlwhxfs5nnd5g03dma";
     };
+
+    propagatedBuildInputs = [ crypto ];
   };
 
   cobra = buildGoPackage rec {
@@ -275,14 +295,15 @@ let
   };
 
   columnize = buildGoPackage rec {
-    rev = "785d943a7b6886e0bb2f139a60487b823dd8d9de";
+    rev = "44cb4788b2ec3c3d158dd3d1b50aba7d66f4b59a";
     name = "columnize-${stdenv.lib.strings.substring 0 7 rev}";
     goPackagePath = "github.com/ryanuber/columnize";
+
     src = fetchFromGitHub {
       inherit rev;
       owner = "ryanuber";
       repo = "columnize";
-      sha256 = "1h3sxzhiwz65vf3cvclirlf6zhdr97v01dpn5cmf3m09rxxpnp3f";
+      sha256 = "1qrqr76cw58x2hkjic6h88na5ihgvkmp8mqapj8kmjcjzdxkzhr9";
     };
   };
 
@@ -300,6 +321,44 @@ let
     subPackages = [ "./" ];
   };
 
+  consul = buildGoPackage rec {
+    rev = "v0.5.1";
+    name = "consul-${rev}";
+    goPackagePath = "github.com/hashicorp/consul";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "hashicorp";
+      repo = "consul";
+      sha256 = "0glmvw52mgf3gwqr0f8v19ip5i6csiimv25jh30ilkig29k7027k";
+    };
+
+    buildInputs = [
+      circbuf armon.go-metrics go-radix gomdb bolt consul-migrate go-checkpoint
+      ugorji.go go-multierror go-syslog golang-lru hcl logutils memberlist
+      net-rpc-msgpackrpc raft raft-boltdb raft-mdb scada-client serf yamux
+      muxado dns cli mapstructure columnize crypto
+    ];
+
+    # Keep consul.ui for backward compatability
+    passthru.ui = pkgs.consul-ui;
+  };
+
+  consul-migrate = buildGoPackage rec {
+    rev = "4977886fc950a0db1a6f0bbadca56dfabf170f9c";
+    name = "consul-migrate-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/consul-migrate";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "hashicorp";
+      repo = "consul-migrate";
+      sha256 = "0kjziwhz1ifj4wpy5viba6z17sfgjjibdhnn73ffp7q5q8abg8w3";
+    };
+
+    buildInputs = [ raft raft-boltdb raft-mdb ];
+  };
+
   dbus = buildGoPackage rec {
     rev = "88765d85c0fdadcd98a54e30694fa4e4f5b51133";
     name = "dbus-${stdenv.lib.strings.substring 0 7 rev}";
@@ -317,14 +376,15 @@ let
   };
 
   dns = buildGoPackage rec {
-    rev = "fd694e564b3ceaf34a8bbe9ef18f65c64df8ed03";
+    rev = "bb1103f648f811d2018d4bedcb2d4b2bce34a0f1";
     name = "dns-${stdenv.lib.strings.substring 0 7 rev}";
     goPackagePath = "github.com/miekg/dns";
+
     src = fetchFromGitHub {
       inherit rev;
       owner = "miekg";
       repo = "dns";
-      sha256 = "1g15l00jypjac0fd2j39lifw1j3md49vk6fq35mv8kc8ighhvxaq";
+      sha256 = "1c1gasvzlcmgwyqhksm656p03nc76kxjxllbcw9bwfy5v7p9w7qq";
     };
   };
 
@@ -403,6 +463,20 @@ let
     };
   };
 
+  ugorji.go = buildGoPackage rec {
+    rev = "821cda7e48749cacf7cad2c6ed01e96457ca7e9d";
+    name = "ugorji-go-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/ugorji/go";
+    goPackageAliases = [ "github.com/hashicorp/go-msgpack" ];
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "ugorji";
+      repo = "go";
+      sha256 = "1ay1l6gijxjgc7j0093drp5mjm93fmrp7r20qbqz4k05l43mqb3j";
+    };
+  };
+
   goamz = buildGoPackage rec {
     rev = "2a8fed5e89ab9e16210fc337d1aac780e8c7bbb7";
     name = "goamz-${rev}";
@@ -455,6 +529,19 @@ let
     doCheck = false; # please check again
   };
 
+  gomdb = buildGoPackage rec {
+    rev = "151f2e08ef45cb0e57d694b2562f351955dff572";
+    name = "gomdb-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/armon/gomdb";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "armon";
+      repo = "gomdb";
+      sha256 = "02wdhgfarmmwfbc75snd1dh6p9k9c1y2135apdm6mkr062qlxx61";
+    };
+  };
+
   govers = buildGoPackage rec {
     rev = "3b5f175f65d601d06f48d78fcbdb0add633565b9";
     name = "govers-${stdenv.lib.strings.substring 0 7 rev}";
@@ -468,6 +555,19 @@ let
     };
   };
 
+  golang-lru = buildGoPackage rec {
+    rev = "995efda3e073b6946b175ed93901d729ad47466a";
+    name = "golang-lru-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/golang-lru";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "hashicorp";
+      repo = "golang-lru";
+      sha256 = "0ilnzg9qq2pfa8qb9yd25s5afi0fvsm78kqzqy39kgg8zsx70xyj";
+    };
+  };
+
   golang_protobuf_extensions = buildGoPackage rec {
     rev = "fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a";
     name = "golang-protobuf-extensions-${stdenv.lib.strings.substring 0 7 rev}";
@@ -611,15 +711,16 @@ let
     };
   };
 
-  go-codec = buildGoPackage rec {
-    rev = "71c2886f5a673a35f909803f38ece5810165097b";
-    name = "go-codec-${stdenv.lib.strings.substring 0 7 rev}";
-    goPackagePath = "github.com/ugorji/go";
+  go-checkpoint = buildGoPackage rec {
+    rev = "88326f6851319068e7b34981032128c0b1a6524d";
+    name = "go-checkpoint-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/go-checkpoint";
+
     src = fetchFromGitHub {
       inherit rev;
-      owner = "ugorji";
-      repo = "go";
-      sha256 = "157f24xnkhclrjwwa1b7lmpj112ynlbf7g1cfw0c657iqny5720j";
+      owner = "hashicorp";
+      repo = "go-checkpoint";
+      sha256 = "1npasn9lmvx57nw3wkswwvl5k0wmn01jpalbwv832x5wq4r0nsz4";
     };
   };
 
@@ -725,22 +826,6 @@ let
     buildInputs = [ go-systemd osext ];
   };
 
-  gucumber = buildGoPackage rec {
-    rev = "fba94dc5a9077fa81eb85199fa9dfdaa8af82ab5";
-    name = "gucumber-${stdenv.lib.strings.substring 0 7 rev}";
-    goPackagePath = "github.com/lsegal/gucumber";
-
-    src = fetchFromGitHub {
-      inherit rev;
-      owner = "lsegal";
-      repo = "gucumber";
-      sha256 = "028wczwpicwmggk3221pz8ffzh30l47x8217gvdzcqq6h9iiaczr";
-    };
-
-    buildInputs = [ testify ];
-    propagatedBuildInputs = [ ansicolor ];
-  };
-
   rcrowley.go-metrics = buildGoPackage rec {
     rev = "f770e6f5e91a8770cecee02d5d3f7c00b023b4df";
     name = "rcrowley.go-metrics-${stdenv.lib.strings.substring 0 7 rev}";
@@ -770,15 +855,16 @@ let
     buildInputs = [ prometheus.client_golang ];
   };
 
-  go-msgpack = buildGoPackage rec {
-    rev = "75092644046c5e38257395b86ed26c702dc95b92";
-    name = "go-msgpack-${stdenv.lib.strings.substring 0 7 rev}";
-    goPackagePath = "github.com/ugorji/go-msgpack";
+  go-multierror = buildGoPackage rec {
+    rev = "fcdddc395df1ddf4247c69bd436e84cfa0733f7e";
+    name = "go-multierror-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/go-multierror";
+
     src = fetchFromGitHub {
       inherit rev;
-      owner = "ugorji";
-      repo = "go-msgpack";
-      sha256 = "1bmqi16bfiqw7qhb3d5hbh0dfzhx2bbq1g15nh2pxwxckwh80x98";
+      owner = "hashicorp";
+      repo = "go-multierror";
+      sha256 = "1gvrm2bqi425mfg55m01z9gppfd7v4ljz1z8bykmh2sc82fj25jz";
     };
   };
 
@@ -871,14 +957,15 @@ let
   };
 
   go-syslog = buildGoPackage rec {
-    rev = "ac3963b72ac367e48b1e68a831e62b93fb69091c";
+    rev = "42a2b573b664dbf281bd48c3cc12c086b17a39ba";
     name = "go-syslog-${stdenv.lib.strings.substring 0 7 rev}";
     goPackagePath = "github.com/hashicorp/go-syslog";
+
     src = fetchFromGitHub {
       inherit rev;
       owner = "hashicorp";
       repo = "go-syslog";
-      sha256 = "1r9s1gsa4azcs05gx1179ixk7qvrkrik3v92wr4s8gwm00m0gf81";
+      sha256 = "1j53m2wjyczm9m55znfycdvm4c8vfniqgk93dvzwy8vpj5gm6sb3";
     };
   };
 
@@ -952,6 +1039,37 @@ let
     propagatedBuildInputs = [ http2 glog net protobuf oauth2 ];
   };
 
+  gucumber = buildGoPackage rec {
+    rev = "fba94dc5a9077fa81eb85199fa9dfdaa8af82ab5";
+    name = "gucumber-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/lsegal/gucumber";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "lsegal";
+      repo = "gucumber";
+      sha256 = "028wczwpicwmggk3221pz8ffzh30l47x8217gvdzcqq6h9iiaczr";
+    };
+
+    buildInputs = [ testify ];
+    propagatedBuildInputs = [ ansicolor ];
+  };
+
+  hcl = buildGoPackage rec {
+    rev  = "513e04c400ee2e81e97f5e011c08fb42c6f69b84";
+    name = "hcl-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/hcl";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner  = "hashicorp";
+      repo   = "hcl";
+      sha256 = "041js0k8bj7qsgr79p207m6r3nkpw7839gq31747618sap6w3g8c";
+    };
+
+    buildInputs = [ go-multierror ];
+  };
+
   hologram = buildGoPackage rec {
     rev  = "2bf08f0edee49297358bd06a0c9bf44ba9051e9c";
     name = "hologram-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1068,55 +1186,59 @@ let
   };
 
   logutils = buildGoPackage rec {
-    rev = "8e0820fe7ac5eb2b01626b1d99df47c5449eb2d8";
+    rev = "367a65d59043b4f846d179341d138f01f988c186";
     name = "logutils-${stdenv.lib.strings.substring 0 7 rev}";
     goPackagePath = "github.com/hashicorp/logutils";
+
     src = fetchFromGitHub {
       inherit rev;
       owner = "hashicorp";
       repo = "logutils";
-      sha256 = "033rbkc066g657r0dnzysigjz2bs4biiz0kmiypd139d34jvslwz";
+      sha256 = "0rjag8c6fn3f51nysrq62r46ma6gzyvijxba47q7cdfjq35mydb8";
     };
   };
 
   mapstructure = buildGoPackage rec {
-    rev = "6fb2c832bcac61d01212ab1d172f7a14a8585b07";
+    rev = "f7d28d5aeab42b9b95d2e6d6b956f73a290077fc";
     name = "mapstructure-${stdenv.lib.strings.substring 0 7 rev}";
     goPackagePath = "github.com/mitchellh/mapstructure";
+
     src = fetchFromGitHub {
       inherit rev;
       owner = "mitchellh";
       repo = "mapstructure";
-      sha256 = "0mx855lwhv0rk461wmbnbzbpkhmq5p2ipmrm5bhzimagrr1w17hw";
+      sha256 = "1l9bxx0lrxdb75bxgy3jq2f6sgin2xd5ll70z5797vi96mlz8ydb";
     };
   };
 
   mdns = buildGoPackage rec {
-    rev = "70462deb060d44247356ee238ebafd7699ddcffe";
+    rev = "2b439d37011456df8ff83a70ffd1cd6046410113";
     name = "mdns-${stdenv.lib.strings.substring 0 7 rev}";
-    goPackagePath = "github.com/armon/mdns";
+    goPackagePath = "github.com/hashicorp/mdns";
+
     src = fetchFromGitHub {
       inherit rev;
-      owner = "armon";
+      owner = "hashicorp";
       repo = "mdns";
-      sha256 = "0xkm3d0hsixdm1yrkx9c39723kfjkb3wvrzrmx3np9ylcwn6h5p5";
+      sha256 = "17zwk212zmyramnjylpvvrvbbsz0qb5crkhly6yiqkyll3qzpb96";
     };
 
-    propagatedBuildInputs = [ dns net ];
+    propagatedBuildInputs = [ net dns ];
   };
 
   memberlist = buildGoPackage rec {
-    rev = "17d39b695094be943bfb98442a80b082e6b9ac47";
+    rev = "6025015f2dc659ca2c735112d37e753bda6e329d";
     name = "memberlist-${stdenv.lib.strings.substring 0 7 rev}";
     goPackagePath = "github.com/hashicorp/memberlist";
+
     src = fetchFromGitHub {
       inherit rev;
       owner = "hashicorp";
       repo = "memberlist";
-      sha256 = "0nvgjnwmfqhv2wvr77d2q5mq1bfw4xbpil6wgyj4fyrmhsfzrv3g";
+      sha256 = "01s2gwnbgvwz4wshz9d4za0p12ji4fnapnlmz3jwfcmcwjpyqfb7";
     };
 
-    propagatedBuildInputs = [ go-codec armon.go-metrics ];
+    propagatedBuildInputs = [ ugorji.go armon.go-metrics ];
   };
 
   mesos-stats = buildGoPackage rec {
@@ -1171,6 +1293,19 @@ let
     };
   };
 
+  muxado = buildGoPackage rec {
+    rev = "f693c7e88ba316d1a0ae3e205e22a01aa3ec2848";
+    name = "muxado-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/inconshreveable/muxado";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "inconshreveable";
+      repo = "muxado";
+      sha256 = "1vgiwwxhgx9c899f6ikvrs0w6vfsnypzalcqyr0mqm2w816r9hhs";
+    };
+  };
+
   mysql = buildGoPackage rec {
     rev = "0cc29e9fe8e25c2c58cf47bcab566e029bbaa88b";
     name = "mysql-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1184,6 +1319,21 @@ let
     };
   };
 
+  net-rpc-msgpackrpc = buildGoPackage rec {
+    rev = "d377902b7aba83dd3895837b902f6cf3f71edcb2";
+    name = "net-rpc-msgpackrpc-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/net-rpc-msgpackrpc";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "hashicorp";
+      repo = "net-rpc-msgpackrpc";
+      sha256 = "05q8qlf42ygafcp8zdyx7y7kv9vpjrxnp8ak4qcszz9kgl2cg969";
+    };
+
+    propagatedBuildInputs = [ ugorji.go ];
+  };
+
   ntp = buildGoPackage rec {
     rev = "0a5264e2563429030eb922f258229ae3fee5b5dc";
     name = "ntp-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1396,6 +1546,51 @@ let
     };
   };
 
+  raft = buildGoPackage rec {
+    rev = "a8065f298505708bf60f518c09178149f3c06f21";
+    name = "raft-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/raft";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner  = "hashicorp";
+      repo   = "raft";
+      sha256 = "122mjijphas7ybbvssxv1r36sb8i907gdr9kvplnx6yg9w52j3mn";
+    };
+
+    propagatedBuildInputs = [ armon.go-metrics ugorji.go ];
+  };
+
+  raft-boltdb = buildGoPackage rec {
+    rev = "d1e82c1ec3f15ee991f7cc7ffd5b67ff6f5bbaee";
+    name = "raft-boltdb-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/raft-boltdb";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner  = "hashicorp";
+      repo   = "raft-boltdb";
+      sha256 = "0p609w6x0h6bapx4b0d91dxnp2kj7dv0534q4blyxp79shv2a8ia";
+    };
+
+    propagatedBuildInputs = [ bolt ugorji.go raft ];
+  };
+
+  raft-mdb = buildGoPackage rec {
+    rev = "4ec3694ffbc74d34f7532e70ef2e9c3546a0c0b0";
+    name = "raft-mdb-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/raft-mdb";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner  = "hashicorp";
+      repo   = "raft-mdb";
+      sha256 = "15l4n6zygwn3h118m2945h9jxkryaxxcgy8xij2rxjhzrzpfyj3i";
+    };
+
+    propagatedBuildInputs = [ gomdb ugorji.go raft ];
+  };
+
   raw = buildGoPackage rec {
     rev = "724aedf6e1a5d8971aafec384b6bde3d5608fba4";
     name = "raw-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1420,6 +1615,39 @@ let
     };
   };
 
+  scada-client = buildGoPackage rec {
+    rev = "c26580cfe35393f6f4bf1b9ba55e6afe33176bae";
+    name = "scada-client-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/scada-client";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner  = "hashicorp";
+      repo   = "scada-client";
+      sha256 = "0s8xg49fa7d2d0vv8pi37f43rjrgkb7w6x6ydkikz1v8ccg05p3b";
+    };
+
+    buildInputs = [ armon.go-metrics net-rpc-msgpackrpc yamux ];
+  };
+
+  serf = buildGoPackage rec {
+    rev = "668982d8f90f5eff4a766583c1286393c1d27f68";
+    name = "serf-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/serf";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner  = "hashicorp";
+      repo   = "serf";
+      sha256 = "1h05h5xhaj27r1mh5zshnykax29lqjhfc0bx4v9swiwb873c24qk";
+    };
+
+    buildInputs = [
+      circbuf armon.go-metrics ugorji.go go-syslog logutils mdns memberlist
+      cli mapstructure columnize
+    ];
+  };
+
   sets = buildGoPackage rec {
     rev = "6c54cb57ea406ff6354256a4847e37298194478f";
     name = "sets-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1561,6 +1789,30 @@ let
     buildInputs = [ pkgconfig libusb ];
   };
 
+  vault = buildGoPackage rec {
+    rev = "v0.1.2";
+    name = "vault-${rev}";
+    goPackagePath = "github.com/hashicorp/vault";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "hashicorp";
+      repo = "vault";
+      sha256 = "0q6wlw0s9dig11mzcfg25fh2wz7g70zxkqm7c5f58fncxdby2nqj";
+    };
+
+    extraSrcs = [
+      { inherit (consul) src goPackagePath; }
+    ];
+
+    buildInputs = [
+      armon.go-metrics go-radix mysql go-querystring aws-sdk-go errwrap
+      go-multierror go-syslog golang-lru hcl logutils pq cli copystructure
+      go-homedir mapstructure reflectwalk columnize go-zookeeper asn1-ber ldap
+      go-ini crypto net oauth2
+    ];
+  };
+
   vulcand = buildGoPackage rec {
     rev = "v0.8.0-beta.3";
     name = "vulcand-${rev}";
@@ -1599,4 +1851,17 @@ let
     };
   };
 
+  yamux = buildGoPackage rec {
+    rev = "b2e55852ddaf823a85c67f798080eb7d08acd71d";
+    name = "yamux-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/hashicorp/yamux";
+
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "hashicorp";
+      repo = "yamux";
+      sha256 = "0mr87my5m8lgc0byjcddlclxg34d07cpi9p78ps3rhzq7p37g533";
+    };
+  };
+
 }; in self