summary refs log tree commit diff
path: root/pkgs/development/tools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools')
-rw-r--r--pkgs/development/tools/alloy/default.nix39
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/coan/default.nix2
-rw-r--r--pkgs/development/tools/analysis/egypt/default.nix11
-rw-r--r--pkgs/development/tools/analysis/include-what-you-use/default.nix5
-rw-r--r--pkgs/development/tools/analysis/rr/default.nix4
-rw-r--r--pkgs/development/tools/backblaze-b2/default.nix31
-rw-r--r--pkgs/development/tools/boomerang/dlopen_path.patch13
-rw-r--r--pkgs/development/tools/build-managers/apache-ant/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/boot/builder.sh6
-rw-r--r--pkgs/development/tools/build-managers/boot/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/buildbot-slave/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/buildbot/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/cargo/common.nix3
-rw-r--r--pkgs/development/tools/build-managers/cargo/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/cargo/head.nix39
-rw-r--r--pkgs/development/tools/build-managers/cargo/snapshot.nix10
-rw-r--r--pkgs/development/tools/build-managers/cmake/2.8.11-cygwin.patch237
-rw-r--r--pkgs/development/tools/build-managers/cmake/cmake_find_openssl_for_openssl-1.0.1m_and_up.patch11
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/gnustep/make/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/gup/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/icmake/default.nix14
-rw-r--r--pkgs/development/tools/build-managers/leiningen/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/nant/default.nix69
-rw-r--r--pkgs/development/tools/build-managers/rebar3/default.nix34
-rw-r--r--pkgs/development/tools/build-managers/rebar3/hermetic-rebar3.patch108
-rw-r--r--pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix27
-rw-r--r--pkgs/development/tools/build-managers/scons/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/waf/default.nix31
-rw-r--r--pkgs/development/tools/compass/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/cide/Gemfile6
-rw-r--r--pkgs/development/tools/continuous-integration/cide/Gemfile.lock40
-rw-r--r--pkgs/development/tools/continuous-integration/cide/default.nix32
-rw-r--r--pkgs/development/tools/continuous-integration/cide/gemset.nix103
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/dcadec/default.nix24
-rw-r--r--pkgs/development/tools/devpi-client/default.nix2
-rw-r--r--pkgs/development/tools/electron/default.nix8
-rw-r--r--pkgs/development/tools/erlang/hex2nix/default.nix23
-rw-r--r--pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix24
-rw-r--r--pkgs/development/tools/flamegraph/default.nix27
-rw-r--r--pkgs/development/tools/galen/default.nix35
-rw-r--r--pkgs/development/tools/grabserial/default.nix4
-rw-r--r--pkgs/development/tools/guile/g-wrap/default.nix2
-rw-r--r--pkgs/development/tools/haskell/ihaskell/use-classy-prelude.patch34
-rw-r--r--pkgs/development/tools/icestorm/default.nix31
-rw-r--r--pkgs/development/tools/java/cfr/default.nix29
-rw-r--r--pkgs/development/tools/literate-programming/eweb/default.nix2
-rw-r--r--pkgs/development/tools/literate-programming/nuweb/default.nix2
-rw-r--r--pkgs/development/tools/mdk/default.nix21
-rw-r--r--pkgs/development/tools/misc/bin_replace_string/default.nix15
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix8
-rw-r--r--pkgs/development/tools/misc/ccache/default.nix26
-rw-r--r--pkgs/development/tools/misc/cl-launch/default.nix8
-rw-r--r--pkgs/development/tools/misc/ctags/default.nix3
-rw-r--r--pkgs/development/tools/misc/dialog/default.nix4
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix34
-rw-r--r--pkgs/development/tools/misc/elfutils/glibc-2.21.patch164
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix11
-rw-r--r--pkgs/development/tools/misc/global/default.nix4
-rw-r--r--pkgs/development/tools/misc/gnum4/default.nix3
-rw-r--r--pkgs/development/tools/misc/iozone/default.nix47
-rw-r--r--pkgs/development/tools/misc/kibana/default.nix5
-rw-r--r--pkgs/development/tools/misc/luarocks/default.nix8
-rw-r--r--pkgs/development/tools/misc/msitools/default.nix21
-rw-r--r--pkgs/development/tools/misc/nixbang/default.nix2
-rw-r--r--pkgs/development/tools/misc/patchelf/setup-hook.sh18
-rw-r--r--pkgs/development/tools/misc/pkgconfig/default.nix9
-rw-r--r--pkgs/development/tools/misc/premake/3.nix2
-rw-r--r--pkgs/development/tools/misc/rolespec/default.nix48
-rw-r--r--pkgs/development/tools/misc/strace/default.nix6
-rw-r--r--pkgs/development/tools/misc/tet/default.nix29
-rw-r--r--pkgs/development/tools/misc/texinfo/5.2.nix11
-rw-r--r--pkgs/development/tools/misc/texinfo/6.0.nix14
-rw-r--r--pkgs/development/tools/misc/ycmd/default.nix37
-rw-r--r--pkgs/development/tools/misc/yodl/default.nix6
-rw-r--r--pkgs/development/tools/nimble/default.nix43
-rw-r--r--pkgs/development/tools/ocaml/findlib/default.nix11
-rw-r--r--pkgs/development/tools/ocaml/findlib/install_topfind.patch9
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff11
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/default.nix20
-rw-r--r--pkgs/development/tools/ocaml/ocaml-top/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix2
-rw-r--r--pkgs/development/tools/ocaml/omake/default.nix2
-rw-r--r--pkgs/development/tools/omniorb/default.nix2
-rw-r--r--pkgs/development/tools/packer/default.nix2
-rw-r--r--pkgs/development/tools/packer/deps.nix536
-rw-r--r--pkgs/development/tools/parsing/flexc++/default.nix31
-rw-r--r--pkgs/development/tools/parsing/lemon/default.nix6
-rw-r--r--pkgs/development/tools/parsing/ragel/default.nix13
-rw-r--r--pkgs/development/tools/phantomjs2/default.nix82
-rw-r--r--pkgs/development/tools/profiling/gprof2dot/default.nix2
-rw-r--r--pkgs/development/tools/profiling/systemtap/default.nix74
-rw-r--r--pkgs/development/tools/profiling/systemtap/nixos-kernel-store-path.patch47
-rw-r--r--pkgs/development/tools/repository-managers/nexus/default.nix29
-rw-r--r--pkgs/development/tools/rust/racer/default.nix8
-rw-r--r--pkgs/development/tools/rust/rustfmt/default.nix10
-rw-r--r--pkgs/development/tools/sauce-connect/default.nix18
-rw-r--r--pkgs/development/tools/sunxi-tools/default.nix29
-rw-r--r--pkgs/development/tools/vagrant/default.nix9
-rw-r--r--pkgs/development/tools/watchman/default.nix7
-rw-r--r--pkgs/development/tools/winpdb/default.nix4
104 files changed, 1823 insertions, 946 deletions
diff --git a/pkgs/development/tools/alloy/default.nix b/pkgs/development/tools/alloy/default.nix
index cb559a128ab3..fbf784db0cc6 100644
--- a/pkgs/development/tools/alloy/default.nix
+++ b/pkgs/development/tools/alloy/default.nix
@@ -1,33 +1,14 @@
 { stdenv, fetchurl, jre, makeDesktopItem }:
 
-let version = "4.2_2015-02-22"; in
 stdenv.mkDerivation rec {
   name = "alloy-${version}";
+  version = "4.2_2015-02-22";
 
   src = fetchurl {
     sha256 = "0p93v8jwx9prijpikkgmfdzb9qn8ljmvga5d9wvrkxddccjx9k28";
     url = "http://alloy.mit.edu/alloy/downloads/alloy${version}.jar";
   };
 
-  meta = with stdenv.lib; {
-    inherit version;
-    description = "Language & tool for relational models";
-    longDescription = ''
-      Alloy is a language for describing structures and a tool for exploring
-      them. An Alloy model is a collection of constraints that describes a set
-      of structures, e.g. all the possible security configurations of a web
-      application, or all the possible topologies of a switching network. The
-      Alloy Analyzer is a solver that takes the constraints of a model and
-      finds structures that satisfy them. Structures are displayed graphically,
-      and their appearance can be customized for the domain at hand.
-    '';
-    homepage = http://alloy.mit.edu/;
-    downloadPage = http://alloy.mit.edu/alloy/download.html;
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ nckx ];
-  };
-
   desktopItem = makeDesktopItem rec {
     name = "alloy";
     exec = name;
@@ -57,4 +38,22 @@ stdenv.mkDerivation rec {
     install -Dm644 ${./icon.png} $out/share/pixmaps/alloy.png
     cp -r ${desktopItem}/share/applications $out/share
   '';
+
+  meta = with stdenv.lib; {
+    description = "Language & tool for relational models";
+    longDescription = ''
+      Alloy is a language for describing structures and a tool for exploring
+      them. An Alloy model is a collection of constraints that describes a set
+      of structures, e.g. all the possible security configurations of a web
+      application, or all the possible topologies of a switching network. The
+      Alloy Analyzer is a solver that takes the constraints of a model and
+      finds structures that satisfy them. Structures are displayed graphically,
+      and their appearance can be customized for the domain at hand.
+    '';
+    homepage = http://alloy.mit.edu/;
+    downloadPage = http://alloy.mit.edu/alloy/download.html;
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nckx ];
+  };
 }
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index a9cf08c4c3e9..168e9ce95be0 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "6.13";
+  version = "6.16";
   name = "checkstyle-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/checkstyle/${name}-bin.tar.gz";
-    sha256 = "0k53kj0mx0shypagny134yrhkjgawzs5yixaxv87br52ablcqdvx";
+    sha256 = "0kmddfzn7p6fads6crw4gnahvi36xwqyw35i7a2lplrdp8dn9xdd";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/coan/default.nix b/pkgs/development/tools/analysis/coan/default.nix
index bf749b694a2c..3ce5f23f6457 100644
--- a/pkgs/development/tools/analysis/coan/default.nix
+++ b/pkgs/development/tools/analysis/coan/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   name = "coan-${version}";
 
   src = fetchurl {
-    url = "http://downloads.sourceforge.net/project/coan2/v${version}/${name}.tar.gz";
+    url = "mirror://sourceforge/project/coan2/v${version}/${name}.tar.gz";
     sha256 = "1d041j0nd1hc0562lbj269dydjm4rbzagdgzdnmwdxr98544yw44";
   };
 
diff --git a/pkgs/development/tools/analysis/egypt/default.nix b/pkgs/development/tools/analysis/egypt/default.nix
index 1233c4ce15af..fc63247468c6 100644
--- a/pkgs/development/tools/analysis/egypt/default.nix
+++ b/pkgs/development/tools/analysis/egypt/default.nix
@@ -1,16 +1,19 @@
 { stdenv, fetchurl, buildPerlPackage }:
 
-let version = "1.10"; in
 buildPerlPackage rec {
   name = "egypt-${version}";
+  version = "1.10";
 
   src = fetchurl {
     sha256 = "0r0wj6v8z9fzlh9pb5617kyjdf92ppmlbzajaarrq729bbb6ln5m";
     url = "http://www.gson.org/egypt/download/${name}.tar.gz";
   };
 
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
   meta = with stdenv.lib; {
-    inherit version;
     description = "Tool for making call graphs of C programmes";
     longDescription = ''
       Egypt is a simple tool for creating call graphs of C programs. It neither
@@ -25,8 +28,4 @@ buildPerlPackage rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ nckx ];
   };
-
-  enableParallelBuilding = true;
-
-  doCheck = true;
 }
diff --git a/pkgs/development/tools/analysis/include-what-you-use/default.nix b/pkgs/development/tools/analysis/include-what-you-use/default.nix
index 75e4dba003bb..374f0fee3f11 100644
--- a/pkgs/development/tools/analysis/include-what-you-use/default.nix
+++ b/pkgs/development/tools/analysis/include-what-you-use/default.nix
@@ -1,9 +1,9 @@
 { stdenv, fetchurl, cmake, llvmPackages }:
 
-# Also bump llvmPackages in all-packages.nix to the supported version!
-let version = "0.5"; in
 stdenv.mkDerivation rec {
   name = "include-what-you-use-${version}";
+  # Also bump llvmPackages in all-packages.nix to the supported version!
+  version = "0.5";
 
   src = fetchurl {
     sha256 = "19pwhgwvfr86n8ks099p9r02v7zh8d3qs7g7snzkhpdgq1azww85";
@@ -18,7 +18,6 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
-    inherit version;
     description = "Analyze #includes in C/C++ source files with clang";
     longDescription = ''
       For every symbol (type, function variable, or macro) that you use in
diff --git a/pkgs/development/tools/analysis/rr/default.nix b/pkgs/development/tools/analysis/rr/default.nix
index 70d61bc4deb4..039cb7424633 100644
--- a/pkgs/development/tools/analysis/rr/default.nix
+++ b/pkgs/development/tools/analysis/rr/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, libpfm, zlib, python, pkgconfig, pythonPackages, which, procps }:
 
 stdenv.mkDerivation rec {
-  version = "4.0.0";
+  version = "4.0.3";
   name = "rr-${version}";
 
   src = fetchFromGitHub {
     owner = "mozilla";
     repo = "rr";
     rev = version;
-    sha256 = "02njg9riziyvgp0q39lhpyf32p1hjjk1wih5dvl74wrzy5anhbwk";
+    sha256 = "0k12r1hzkn5286kz5cg4mvii92m0prs58przchr495r9hfjcy276";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/tools/backblaze-b2/default.nix b/pkgs/development/tools/backblaze-b2/default.nix
new file mode 100644
index 000000000000..3c7d69bc1b40
--- /dev/null
+++ b/pkgs/development/tools/backblaze-b2/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchFromGitHub, pkgs }:
+
+stdenv.mkDerivation rec {
+  name = "backblaze-b2-0.3.10";
+
+  src = fetchFromGitHub {
+    owner = "Backblaze";
+    repo = "B2_Command_Line_Tool";
+    rev = "b097f0f04d3f88d7a372b50ee6db1f89a5249028";
+    sha256 = "1rcy8180476cpmrbls4424qbq8nyq7mxkfikd52a8skz7rd5ljc6";
+  };
+  
+  buildInputs = with pkgs; [ python2 ];
+
+  doCheck = true;
+  checkPhase = ''
+    python test_b2_command_line.py test
+  '';
+
+  installPhase = ''
+    install -Dm755 b2 "$out/bin/backblaze-b2"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Command-line tool for accessing the Backblaze B2 storage service";
+    homepage    = https://github.com/Backblaze/B2_Command_Line_Tool;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ kevincox ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/boomerang/dlopen_path.patch b/pkgs/development/tools/boomerang/dlopen_path.patch
deleted file mode 100644
index 1e4bf3c75a30..000000000000
--- a/pkgs/development/tools/boomerang/dlopen_path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/loader/BinaryFileFactory.cpp b/loader/BinaryFileFactory.cpp
-index 889a4ed..ca86765 100644
---- a/loader/BinaryFileFactory.cpp
-+++ b/loader/BinaryFileFactory.cpp
-@@ -109,7 +109,7 @@ BinaryFile* BinaryFileFactory::getInstanceFor( const char *sName ) {
- 	
- // Load the specific loader library
- #ifndef _WIN32		// Cygwin, Unix/Linux
--	libName = std::string("lib/lib") + libName;
-+	libName = std::string("lib") + libName;
- #ifdef	__CYGWIN__
- 	libName += ".dll";		// Cygwin wants .dll, but is otherwise like Unix
- #else
diff --git a/pkgs/development/tools/build-managers/apache-ant/default.nix b/pkgs/development/tools/build-managers/apache-ant/default.nix
index b15c9065e0ec..8816a005ca0f 100644
--- a/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -23,9 +23,14 @@ stdenv.mkDerivation {
       mv * $out/lib/ant/
 
       # Get rid of the manual (35 MiB).  Maybe we should put this in a
-      # separate output.  Also get rid of the Ant scripts since we
-      # provide our own.
+      # separate output.  Keep the antRun script since it's vanilla sh
+      # and needed for the <exec/> task (but since we set ANT_HOME to
+      # a weird value, we have to move antRun to a weird location).
+      # Get rid of the other Ant scripts since we provide our own.
+      mv $out/lib/ant/bin/antRun $out/bin/
       rm -rf $out/lib/ant/{manual,bin,WHATSNEW}
+      mkdir $out/lib/ant/bin
+      mv $out/bin/antRun $out/lib/ant/bin/
 
       # Install ant-contrib.
       unpackFile $contrib
diff --git a/pkgs/development/tools/build-managers/boot/builder.sh b/pkgs/development/tools/build-managers/boot/builder.sh
index a60733089204..c1481dc6a144 100644
--- a/pkgs/development/tools/build-managers/boot/builder.sh
+++ b/pkgs/development/tools/build-managers/boot/builder.sh
@@ -8,6 +8,6 @@ chmod -v 755 $boot_bin
 
 patchShebangs $boot_bin
 
-wrapProgram $boot_bin \
-            --set JAVA_HOME "${jdk}" \
-            --prefix PATH ":" "${jdk}/bin"
+sed -i \
+    -e "s;\${BOOT_JAVA_COMMAND:-java};\${BOOT_JAVA_COMMAND:-${jdk}/bin/java};g" \
+    $boot_bin
diff --git a/pkgs/development/tools/build-managers/boot/default.nix b/pkgs/development/tools/build-managers/boot/default.nix
index cd5cf5d070ae..6f9c2ce38a74 100644
--- a/pkgs/development/tools/build-managers/boot/default.nix
+++ b/pkgs/development/tools/build-managers/boot/default.nix
@@ -1,20 +1,18 @@
-{ stdenv, fetchurl, makeWrapper, jdk }:
+{ stdenv, fetchurl, jdk }:
 
 stdenv.mkDerivation rec {
-  version = "2.4.2";
+  version = "2.5.2";
   name = "boot-${version}";
 
   src = fetchurl {
     url = "https://github.com/boot-clj/boot-bin/releases/download/${version}/boot.sh";
-    sha256 = "18d7dks6vvpwpw30jffzy7qqpypw6vhlp2sj838i5rj2q0imh14c";
+    sha256 = "0brsimvmmpksxwc4l5c0x0cl5hhdjz76crd26yxphjvzyf7fypc9";
   };
 
   inherit jdk;
   
   builder = ./builder.sh;
 
-  buildInputs = [ makeWrapper ];
-
   propagatedBuildInputs = [ jdk ];
 
   meta = {
diff --git a/pkgs/development/tools/build-managers/buildbot-slave/default.nix b/pkgs/development/tools/build-managers/buildbot-slave/default.nix
index 715b009a17ef..30fbe056926e 100644
--- a/pkgs/development/tools/build-managers/buildbot-slave/default.nix
+++ b/pkgs/development/tools/build-managers/buildbot-slave/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, buildPythonPackage, fetchurl, coreutils, twisted }:
+{ stdenv, buildPythonApplication, fetchurl, coreutils, twisted }:
 
-buildPythonPackage (rec {
+buildPythonApplication (rec {
   name = "buildbot-slave-0.8.10";
   namePrefix = "";
 
diff --git a/pkgs/development/tools/build-managers/buildbot/default.nix b/pkgs/development/tools/build-managers/buildbot/default.nix
index a7c4fb89007b..99c1352b4fb6 100644
--- a/pkgs/development/tools/build-managers/buildbot/default.nix
+++ b/pkgs/development/tools/build-managers/buildbot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchurl, twisted, dateutil, jinja2
+{ stdenv, buildPythonApplication, fetchurl, twisted, dateutil, jinja2
 , sqlalchemy , sqlalchemy_migrate_0_7
 , enableDebugClient ? false, pygobject ? null, pyGtkGlade ? null
 }:
@@ -8,7 +8,7 @@
 
 assert enableDebugClient -> pygobject != null && pyGtkGlade != null;
 
-buildPythonPackage (rec {
+buildPythonApplication (rec {
   name = "buildbot-0.8.12";
   namePrefix = "";
 
diff --git a/pkgs/development/tools/build-managers/cargo/common.nix b/pkgs/development/tools/build-managers/cargo/common.nix
index 941fe8073075..110956ebf85d 100644
--- a/pkgs/development/tools/build-managers/cargo/common.nix
+++ b/pkgs/development/tools/build-managers/cargo/common.nix
@@ -12,7 +12,8 @@
        "$out/lib/rustlib/uninstall.sh" \
        "$out/lib/rustlib/manifest-cargo"
 
-     wrapProgram "$out/bin/cargo" --suffix PATH : "${rustc}/bin"
+     wrapProgram "$out/bin/cargo" --suffix PATH : "${rustc}/bin" \
+       ${stdenv.lib.optionalString stdenv.isDarwin ''--suffix DYLD_LIBRARY_PATH : "${rustc}/lib"''}
   '';
 
   platform = if stdenv.system == "i686-linux"
diff --git a/pkgs/development/tools/build-managers/cargo/default.nix b/pkgs/development/tools/build-managers/cargo/default.nix
index bdd6c18e92c7..e0094b4350a7 100644
--- a/pkgs/development/tools/build-managers/cargo/default.nix
+++ b/pkgs/development/tools/build-managers/cargo/default.nix
@@ -5,7 +5,7 @@ with rustPlatform;
 
 with ((import ./common.nix) {
   inherit stdenv rustc;
-  version = "0.6.0";
+  version = "0.8.0";
 });
 
 buildRustPackage rec {
@@ -15,10 +15,10 @@ buildRustPackage rec {
   src = fetchgit {
     url = "git://github.com/rust-lang/cargo";
     rev = "refs/tags/${version}";
-    sha256 = "1kxri32sz9ygnf4wlbj7hc7q9p6hmm5xrb9zzkx23wzkzbcpyjyz";
+    sha256 = "02z0b6hpygjjfbskg22ggrhdv2nasrgf8x1fd8y0qzg4krx2czlh";
   };
 
-  depsSha256 = "1m045yywv67sx75idbsny59d3dzbqnhr07k41jial5n5zwp87mb9";
+  depsSha256 = "1gwc5ygs3h8jxs506xmbj1xzaqpb3kmg3pkxg9j9yqy616jw6rcn";
 
   buildInputs = [ file curl pkgconfig python openssl cmake zlib makeWrapper ];
 
diff --git a/pkgs/development/tools/build-managers/cargo/head.nix b/pkgs/development/tools/build-managers/cargo/head.nix
new file mode 100644
index 000000000000..298177296a6c
--- /dev/null
+++ b/pkgs/development/tools/build-managers/cargo/head.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchgit, rustPlatform, file, curl, python, pkgconfig, openssl
+, cmake, zlib, makeWrapper }:
+
+with rustPlatform;
+
+with ((import ./common.nix) {
+  inherit stdenv rustc;
+  version = "2016-02-25";
+});
+
+buildRustPackage rec {
+  inherit name version meta passthru;
+
+  # Needs to use fetchgit instead of fetchFromGitHub to fetch submodules
+  src = fetchgit {
+    url = "git://github.com/rust-lang/cargo";
+    rev = "e7212896dc1b182493a0252a2a126db8be067153";
+    sha256 = "1qbic7gp7cpihi40kfv3kagja8zsngica8sq9jcm9czb6ba44dsa";
+  };
+
+  depsSha256 = "1xfpj1233p4314j6jmip0jjl5m3kj2wbac1ll3yvh7383zb83i1s";
+
+  buildInputs = [ file curl pkgconfig python openssl cmake zlib makeWrapper ];
+
+  configurePhase = ''
+    ./configure --enable-optimize --prefix=$out --local-cargo=${cargo}/bin/cargo
+  '';
+
+  buildPhase = "make";
+
+  # Disable check phase as there are lots of failures (some probably due to
+  # trying to access the network).
+  doCheck = false;
+
+  installPhase = ''
+    make install
+    ${postInstall}
+  '';
+}
diff --git a/pkgs/development/tools/build-managers/cargo/snapshot.nix b/pkgs/development/tools/build-managers/cargo/snapshot.nix
index ad07148815bb..6dbe1e727d31 100644
--- a/pkgs/development/tools/build-managers/cargo/snapshot.nix
+++ b/pkgs/development/tools/build-managers/cargo/snapshot.nix
@@ -34,6 +34,16 @@ stdenv.mkDerivation {
 
   dontStrip = true;
 
+  __propagatedImpureHostDeps = [
+    "/usr/lib/libiconv.2.dylib"
+    "/usr/lib/libssl.0.9.8.dylib"
+    "/usr/lib/libcurl.4.dylib"
+    "/System/Library/Frameworks/GSS.framework/GSS"
+    "/System/Library/Frameworks/GSS.framework/Versions/Current"
+    "/System/Library/PrivateFrameworks/Heimdal.framework/Heimdal"
+    "/System/Library/PrivateFrameworks/Heimdal.framework/Versions/Current"
+  ];
+
   installPhase = ''
     mkdir -p "$out"
     ./install.sh "--prefix=$out"
diff --git a/pkgs/development/tools/build-managers/cmake/2.8.11-cygwin.patch b/pkgs/development/tools/build-managers/cmake/2.8.11-cygwin.patch
deleted file mode 100644
index e16dab32632f..000000000000
--- a/pkgs/development/tools/build-managers/cmake/2.8.11-cygwin.patch
+++ /dev/null
@@ -1,237 +0,0 @@
---- cmake-2.8.10/Source/cmFileCommand.cxx	2012-10-31 10:32:06.000000000 -0500
-+++ cmake-2.8.10/Source/cmFileCommand.cxx	2013-03-16 22:55:11.306681100 -0500
-@@ -1002,7 +1002,7 @@ protected:
-   MatchProperties CollectMatchProperties(const char* file)
-     {
-     // Match rules are case-insensitive on some platforms.
--#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__)
-+#if defined(_WIN32) || defined(__APPLE__)
-     std::string lower = cmSystemTools::LowerCase(file);
-     const char* file_to_match = lower.c_str();
- #else
---- cmake-2.8.10/Source/cmInstallCommand.cxx	2012-10-31 10:32:06.000000000 -0500
-+++ cmake-2.8.10/Source/cmInstallCommand.cxx	2013-03-16 22:56:21.008667800 -0500
-@@ -1090,7 +1090,7 @@ cmInstallCommand::HandleDirectoryMode(st
-       {
-       literal_args += " REGEX \"";
-     // Match rules are case-insensitive on some platforms.
--#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__)
-+#if defined(_WIN32) || defined(__APPLE__)
-       std::string regex = cmSystemTools::LowerCase(args[i]);
- #else
-       std::string regex = args[i];
---- cmake-2.8.10/Source/kwsys/Glob.cxx	2012-10-31 10:32:06.000000000 -0500
-+++ cmake-2.8.10/Source/kwsys/Glob.cxx	2013-03-16 22:58:54.192429400 -0500
-@@ -37,7 +37,7 @@
- #include <string.h>
- namespace KWSYS_NAMESPACE
- {
--#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__)
-+#if defined(_WIN32) || defined(__APPLE__)
- // On Windows and apple, no difference between lower and upper case
- # define KWSYS_GLOB_CASE_INDEPENDENT
- #endif
---- cmake-2.8.11/Source/kwsys/SystemInformation.cxx	2013-05-15 12:38:13.000000000 -0500
-+++ cmake-2.8.11/Source/kwsys/SystemInformation.cxx	2013-07-08 01:57:31.216321800 -0500
-@@ -888,7 +888,7 @@ void SystemInformation::RunMemoryCheck()
- // Hide implementation details in an anonymous namespace.
- namespace {
- // *****************************************************************************
--#if defined(__linux) || defined(__APPLE__)
-+#if defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__)
- int LoadLines(
-       FILE *file,
-       kwsys_stl::vector<kwsys_stl::string> &lines)
-@@ -918,7 +918,7 @@ int LoadLines(
-   return nRead;
- }
- 
--# if defined(__linux)
-+# if defined(__linux) || defined(__CYGWIN__)
- // *****************************************************************************
- int LoadLines(
-       const char *fileName,
-@@ -957,7 +957,7 @@ int NameValue(
- }
- #endif
- 
--#if defined(__linux)
-+#if defined(__linux) || defined(__CYGWIN__)
- // ****************************************************************************
- template<typename T>
- int GetFieldsFromFile(
-@@ -2869,7 +2869,6 @@ bool SystemInformationImplementation::Re
-     pos = buffer.find("processor\t",pos+1);
-     }
- 
--#ifdef __linux
-   // Find the largest physical id.
-   int maxId = -1;
-   kwsys_stl::string idc =
-@@ -2893,14 +2892,6 @@ bool SystemInformationImplementation::Re
-   this->NumberOfPhysicalCPU=static_cast<unsigned int>(
-     numberOfCoresPerCPU*(maxId+1));
- 
--#else // __CYGWIN__
--  // does not have "physical id" entries, neither "cpu cores"
--  // this has to be fixed for hyper-threading.
--  kwsys_stl::string cpucount =
--    this->ExtractValueFromCpuInfoFile(buffer,"cpu count");
--  this->NumberOfPhysicalCPU=
--    this->NumberOfLogicalCPU = atoi(cpucount.c_str());
--#endif
-   // gotta have one, and if this is 0 then we get a / by 0n
-   // better to have a bad answer than a crash
-   if(this->NumberOfPhysicalCPU <= 0)
-@@ -3086,7 +3077,7 @@ SystemInformationImplementation::GetHost
-   GlobalMemoryStatusEx(&statex);
-   return statex.ullTotalPhys/1024;
- # endif
--#elif defined(__linux)
-+#elif defined(__linux) || defined(__CYGWIN__)
-   SystemInformation::LongLong memTotal=0;
-   int ierr=GetFieldFromFile("/proc/meminfo","MemTotal:",memTotal);
-   if (ierr)
-@@ -3217,7 +3208,7 @@ SystemInformationImplementation::GetHost
-   GlobalMemoryStatusEx(&statex);
-   return (statex.ullTotalPhys - statex.ullAvailPhys)/1024;
- # endif
--#elif defined(__linux)
-+#elif defined(__linux) || defined(__CYGWIN__)
-   const char *names[3]={"MemTotal:","MemFree:",NULL};
-   SystemInformation::LongLong values[2]={SystemInformation::LongLong(0)};
-   int ierr=GetFieldsFromFile("/proc/meminfo",names,values);
-@@ -3276,7 +3267,7 @@ SystemInformationImplementation::GetProc
-     return -2;
-     }
-   return pmc.WorkingSetSize/1024;
--#elif defined(__linux)
-+#elif defined(__linux) || defined(__CYGWIN__)
-   SystemInformation::LongLong memUsed=0;
-   int ierr=GetFieldFromFile("/proc/self/status","VmRSS:",memUsed);
-   if (ierr)
-@@ -3328,7 +3319,7 @@ SystemInformationImplementation::GetProc
- {
- #if defined(_WIN32)
-   return GetCurrentProcessId();
--#elif defined(__linux) || defined(__APPLE__)
-+#elif defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__)
-   return getpid();
- #else
-   return -1;
---- cmake-2.8.10/Source/kwsys/SystemTools.cxx	2012-10-31 10:32:06.000000000 -0500
-+++ cmake-2.8.10/Source/kwsys/SystemTools.cxx	2013-03-16 22:52:11.830415600 -0500
-@@ -75,19 +75,12 @@
- // Windows API.
- #if defined(_WIN32)
- # include <windows.h>
--#elif defined (__CYGWIN__)
--# include <windows.h>
--# undef _WIN32
- #endif
- 
- #if !KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H
- extern char **environ;
- #endif
- 
--#ifdef __CYGWIN__
--extern "C" void cygwin_conv_to_win32_path(const char *path, char *win32_path);
--#endif
--
- // getpwnam doesn't exist on Windows and Cray Xt3/Catamount
- // same for TIOCGWINSZ
- #if defined(_WIN32) || defined (__LIBCATAMOUNT__)
-@@ -1068,7 +1061,7 @@ bool SystemTools::SameFile(const char* f
- }
- 
- //----------------------------------------------------------------------------
--#if defined(_WIN32) || defined(__CYGWIN__)
-+#if defined(_WIN32)
- static bool WindowsFileExists(const char* filename)
- {
-   WIN32_FILE_ATTRIBUTE_DATA fd;
-@@ -1083,7 +1076,7 @@ bool SystemTools::FileExists(const char*
-     {
-     return false;
-     }
--#if defined(__CYGWIN__)
-+#if 0
-   // Convert filename to native windows path if possible.
-   char winpath[MAX_PATH];
-   if(SystemTools::PathCygwinToWin32(filename, winpath))
-@@ -1111,7 +1104,7 @@ bool SystemTools::FileExists(const char*
- }
- 
- //----------------------------------------------------------------------------
--#ifdef __CYGWIN__
-+#if 0
- bool SystemTools::PathCygwinToWin32(const char *path, char *win32_path)
- {
-   SystemToolsTranslationMap::iterator i =
-@@ -3894,7 +3887,7 @@ bool SystemTools::LocateFileInDir(const
- bool SystemTools::FileIsFullPath(const char* in_name)
- {
-   kwsys_stl::string name = in_name;
--#if defined(_WIN32) || defined(__CYGWIN__)
-+#if defined(_WIN32)
-   // On Windows, the name must be at least two characters long.
-   if(name.length() < 2)
-     {
-@@ -4712,9 +4705,6 @@ bool SystemTools::ParseURL( const kwsys_
- unsigned int SystemToolsManagerCount;
- SystemToolsTranslationMap *SystemTools::TranslationMap;
- SystemToolsTranslationMap *SystemTools::LongPathMap;
--#ifdef __CYGWIN__
--SystemToolsTranslationMap *SystemTools::Cyg2Win32Map;
--#endif
- 
- // SystemToolsManager manages the SystemTools singleton.
- // SystemToolsManager should be included in any translation unit
-@@ -4760,9 +4750,6 @@ void SystemTools::ClassInitialize()
-   // Allocate the translation map first.
-   SystemTools::TranslationMap = new SystemToolsTranslationMap;
-   SystemTools::LongPathMap = new SystemToolsTranslationMap;
--#ifdef __CYGWIN__
--  SystemTools::Cyg2Win32Map = new SystemToolsTranslationMap;
--#endif
- 
-   // Add some special translation paths for unix.  These are not added
-   // for windows because drive letters need to be maintained.  Also,
-@@ -4817,9 +4804,6 @@ void SystemTools::ClassFinalize()
- {
-   delete SystemTools::TranslationMap;
-   delete SystemTools::LongPathMap;
--#ifdef __CYGWIN__
--  delete SystemTools::Cyg2Win32Map;
--#endif
- }
- 
- 
---- cmake-2.8.10/Source/kwsys/SystemTools.hxx.in	2012-10-31 10:32:06.000000000 -0500
-+++ cmake-2.8.10/Source/kwsys/SystemTools.hxx.in	2013-03-16 23:10:30.185237900 -0500
-@@ -277,15 +277,6 @@ public:
-   static bool FileExists(const char* filename);
- 
-   /**
--   * Converts Cygwin path to Win32 path. Uses dictionary container for
--   * caching and calls to cygwin_conv_to_win32_path from Cygwin dll
--   * for actual translation.  Returns true on success, else false.
--   */
--#ifdef __CYGWIN__
--  static bool PathCygwinToWin32(const char *path, char *win32_path);
--#endif
--
--  /**
-    * Return file length
-    */
-   static unsigned long FileLength(const char *filename);
-@@ -887,9 +878,6 @@ private:
-    */
-   static SystemToolsTranslationMap *TranslationMap;
-   static SystemToolsTranslationMap *LongPathMap;
--#ifdef __CYGWIN__
--  static SystemToolsTranslationMap *Cyg2Win32Map;
--#endif
-   friend class SystemToolsManager;
- };
- 
diff --git a/pkgs/development/tools/build-managers/cmake/cmake_find_openssl_for_openssl-1.0.1m_and_up.patch b/pkgs/development/tools/build-managers/cmake/cmake_find_openssl_for_openssl-1.0.1m_and_up.patch
deleted file mode 100644
index 25bbd2a91ba1..000000000000
--- a/pkgs/development/tools/build-managers/cmake/cmake_find_openssl_for_openssl-1.0.1m_and_up.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./Modules/FindOpenSSL.cmake
-+++ ./Modules/FindOpenSSL.cmake
-@@ -264,7 +264,7 @@
-     set(OPENSSL_VERSION "${_OPENSSL_VERSION}")
-   elseif(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h")
-     file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str
--         REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")
-+         REGEX "^# *define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")
-
-     # The version number is encoded as 0xMNNFFPPS: major minor fix patch status
-     # The status gives if this is a developer or prerelease and is ignored here.
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index 09e54d3dfa63..c8ed91b96fb0 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -11,7 +11,7 @@ assert wantPS -> (ps != null);
 let
   os = stdenv.lib.optionalString;
   majorVersion = "3.4";
-  minorVersion = "0";
+  minorVersion = "3";
   version = "${majorVersion}.${minorVersion}";
 in
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz";
-    sha256 = "1shwim3gfdybjx9f11ykxz5l09rh58vmvz8ip76q3i76mkv2pf55";
+    sha256 = "1yl0z422gr7zfc638chifv343vx0ig5gasvrh7nzf7b15488qgxp";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/tools/build-managers/gnustep/make/default.nix b/pkgs/development/tools/build-managers/gnustep/make/default.nix
index 67fe60f2c0eb..a58273e6086e 100644
--- a/pkgs/development/tools/build-managers/gnustep/make/default.nix
+++ b/pkgs/development/tools/build-managers/gnustep/make/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
+let version = "2.6.7"; in
 stdenv.mkDerivation rec {
   name = "gnustep-make-${version}";
-  version = "1.0";
 
   src = fetchurl {
-    url = "http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-make-2.6.6.tar.gz";
-    sha256 = "07cqr8x17bia9w6clbmiv7ay6r9nplrjz2cyzinv4w7zfpc19vxw";
+    url = "http://ftpmain.gnustep.org/pub/gnustep/core/${name}.tar.gz";
+    sha256 = "1r2is23xdg4qirckb6bd4lynfwnnw5d9522wib3ndk1xgirmfaqi";
   };
 
   patchPhase = ''
@@ -18,6 +18,9 @@ stdenv.mkDerivation rec {
 
     substituteInPlace FilesystemLayouts/apple \
       --replace /usr/local ""
+
+    substituteInPlace configure \
+      --replace /Library/GNUstep "$out"
   '';
 
   installFlags = "DESTDIR=$(out)";
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index e451370c9ebb..82d0d4026988 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -35,11 +35,11 @@ rec {
   };
 
   gradleLatest = gradleGen rec {
-    name = "gradle-2.9";
+    name = "gradle-2.11";
 
     src = fetchurl {
       url = "http://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "c9159ec4362284c0a38d73237e224deae6139cbde0db4f0f44e1c7691dd3de2f";
+      sha256 = "1mhydg6mj9y7qr2s9bkdaijkjrq7nf6rqix415izvjan4c43fx4d";
     };
   };
 
diff --git a/pkgs/development/tools/build-managers/gup/default.nix b/pkgs/development/tools/build-managers/gup/default.nix
index dc6f1f8d0023..a907e6ace9e4 100644
--- a/pkgs/development/tools/build-managers/gup/default.nix
+++ b/pkgs/development/tools/build-managers/gup/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchgit, lib, python, which }:
 let
-  version = "0.5.1";
+  version = "0.5.4";
   src = fetchgit {
     url = "https://github.com/gfxmonk/gup.git";
-    rev = "f185052e2177ed5e46720e6c6cfb529b96cd17e2";
-    sha256 = "c2e27cdba2231017ceb4868f58f5c3b224be0491b81558b4e59bb08a952ad1a5";
+    rev = "b3980e529c860167b48e31634d2b479fc4d10274";
+    sha256 = "bb02ba0a7f1680ed5b9a8e8c9cc42aa07016329840f397d914b94744f9ed7c85";
   };
 in
 import ./build.nix
diff --git a/pkgs/development/tools/build-managers/icmake/default.nix b/pkgs/development/tools/build-managers/icmake/default.nix
index c0a886e3e48d..e4bad4f500c8 100644
--- a/pkgs/development/tools/build-managers/icmake/default.nix
+++ b/pkgs/development/tools/build-managers/icmake/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, gcc5 }:
 
-let version = "7.23.02"; in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "icmake-${version}";
+  version = "8.01.00";
 
   src = fetchFromGitHub {
-    sha256 = "0gp2f8bw9i7vccsbz878mri0k6fls2x8hklbbr6mayag397gr928";
+    sha256 = "1vgjywbc4w1agkakfndr2qf0z0ncxisihdv8sz9ipry9f170np39";
     rev = version;
     repo = "icmake";
     owner = "fbb-git";
@@ -13,13 +13,16 @@ stdenv.mkDerivation {
 
   sourceRoot = "icmake-${version}-src/icmake";
 
+  buildInputs = [ gcc5 ];
+
   preConfigure = ''
     patchShebangs ./
     substituteInPlace INSTALL.im --replace "usr/" ""
   '';
 
   buildPhase = ''
-    ./icm_bootstrap $out
+    ./icm_prepare $out
+    ./icm_bootstrap x
   '';
 
   installPhase = ''
@@ -27,7 +30,6 @@ stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    inherit version;
     description = "A program maintenance (make) utility using a C-like grammar";
     homepage = https://fbb-git.github.io/icmake/;
     license = licenses.gpl3;
diff --git a/pkgs/development/tools/build-managers/leiningen/default.nix b/pkgs/development/tools/build-managers/leiningen/default.nix
index f4f18dac487c..8a8ab9ba91f1 100644
--- a/pkgs/development/tools/build-managers/leiningen/default.nix
+++ b/pkgs/development/tools/build-managers/leiningen/default.nix
@@ -3,18 +3,18 @@
 
 stdenv.mkDerivation rec {
   pname = "leiningen";
-  version = "2.5.3";
+  version = "2.6.1";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://raw.github.com/technomancy/leiningen/${version}/bin/lein-pkg";
-    sha256 = "0xbfg6v6f3qyi99dbqragh3za2a0agrcq9c0qbkshvp5yd0fx4h1";
+    sha256 = "1ndirl36gbba12cs5vw22k2zrbpqdmnpi1gciwqb1zbib2s1akg8";
   };
 
   jarsrc = fetchurl {
     # NOTE: This is actually a .jar, Github has issues
     url = "https://github.com/technomancy/leiningen/releases/download/${version}/${name}-standalone.zip";
-    sha256 = "1p93j03v02mf1cnli6lv9qqnx7gwxr571g8z7y06p0d4nq31c32b";
+    sha256 = "1533msarx6gb3xc2sp2nmspllnqy7anpnv9a0ifl0psxm3xph06p";
   };
 
   patches = [ ./lein-fix-jar-path.patch ];
diff --git a/pkgs/development/tools/build-managers/nant/default.nix b/pkgs/development/tools/build-managers/nant/default.nix
new file mode 100644
index 000000000000..858fc5b48df3
--- /dev/null
+++ b/pkgs/development/tools/build-managers/nant/default.nix
@@ -0,0 +1,69 @@
+{ fetchurl, stdenv, fetchFromGitHub, pkgconfig, mono, makeWrapper
+, targetVersion ? "4.5" }:
+
+let
+   version = "2015-11-15";
+
+  src = fetchFromGitHub {
+    owner = "nant";
+    repo = "nant";
+    rev = "19bec6eca205af145e3c176669bbd57e1712be2a";
+    sha256 = "11l5y76csn686p8i3kww9s0sxy659ny9l64krlqg3y2nxaz0fk6l";
+  };
+
+  nant-bootstrapped = stdenv.mkDerivation {
+    name = "nant-bootstrapped-${version}";
+    inherit src;
+
+    buildInputs = [ pkgconfig mono makeWrapper ];
+
+    buildFlags = "bootstrap";
+
+    dontStrip = true;
+
+    installPhase = ''
+      mkdir -p $out/lib/nant-bootstrap
+      cp -r bootstrap/* $out/lib/nant-bootstrap
+
+      mkdir -p $out/bin
+      makeWrapper "${mono}/bin/mono" $out/bin/nant \
+        --add-flags "$out/lib/nant-bootstrap/NAnt.exe"
+    '';
+  };
+
+in stdenv.mkDerivation {
+  name = "nant-${version}";
+  inherit src;
+
+  buildInputs = [ pkgconfig mono makeWrapper nant-bootstrapped ];
+
+  dontStrip = true;
+
+  buildPhase = ''
+    nant -t:mono-${targetVersion}
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib/nant
+    cp -r build/mono-${targetVersion}.unix/nant-debug/bin/* $out/lib/nant/
+
+    mkdir -p $out/bin
+    makeWrapper "${mono}/bin/mono" $out/bin/nant \
+      --add-flags "$out/lib/nant/NAnt.exe"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://nant.sourceforge.net;
+    description = "NAnt is a free .NET build tool";
+
+    longDescription = ''
+      NAnt is a free .NET build tool. In theory it is kind of like make without
+      make's wrinkles. In practice it's a lot like Ant.
+    '';
+
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ zohl ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/pkgs/development/tools/build-managers/rebar3/default.nix b/pkgs/development/tools/build-managers/rebar3/default.nix
index c4e256d58737..ac3a5ac9e402 100644
--- a/pkgs/development/tools/build-managers/rebar3/default.nix
+++ b/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -1,13 +1,11 @@
-{ stdenv, fetchurl, fetchHex, erlang, tree, fetchFromGitHub }:
+{ stdenv, writeText, callPackage, fetchurl,
+  fetchHex, erlang, hermeticRebar3 ? true, rebar3-nix-bootstrap, tree, fetchFromGitHub }:
 
 
 let
   version = "3.0.0-beta.4";
-  registrySnapshot = import ./registrySnapshot.nix { inherit fetchFromGitHub; };
-  setupRegistry = ''
-    mkdir -p _build/default/{lib,plugins,packages}/ ./.cache/rebar3/hex/default/
-    zcat ${registrySnapshot}/registry.ets.gz > .cache/rebar3/hex/default/registry
-  '';
+  registrySnapshot = callPackage ./registrySnapshot.nix { };
+
   # TODO: all these below probably should go into nixpkgs.erlangModules.sources.*
   # {erlware_commons,     "0.16.0"},
   erlware_commons = fetchHex {
@@ -69,27 +67,36 @@ let
     version = "0.2.0";
     sha256 = "03kiszlbgzscfd2ns7na6bzbfzmcqdb5cx3p6qy3657jk2fai332";
   };
+  # {eunit_formatters,    "0.2.0"}
+  rebar3_hex = fetchHex {
+    pkg = "rebar3_hex";
+    version = "1.12.0";
+    sha256 = "45467e93ae8d776c6038fdaeaffbc55d8f2f097f300a54dab9b81c6d1cf21f73";
+  };
 
 in
 stdenv.mkDerivation {
   name = "rebar3-${version}";
+  inherit version;
 
   src = fetchurl {
     url = "https://github.com/rebar/rebar3/archive/${version}.tar.gz";
     sha256 = "0px66scjdia9aaa5z36qzxb848r56m0k98g0bxw065a2narsh4xy";
   };
 
-  patches = [ ./hermetic-bootstrap.patch ];
+  patches = if hermeticRebar3 == true
+  then  [ ./hermetic-bootstrap.patch ./hermetic-rebar3.patch ]
+  else [];
 
-  buildInputs = [ erlang
-                  tree
-                ];
-  inherit setupRegistry;
+  buildInputs = [ erlang tree  ];
+  propagatedBuildInputs = [ registrySnapshot rebar3-nix-bootstrap ];
 
   postPatch = ''
     echo postPatch
-    ${setupRegistry}
+    rebar3-nix-bootstrap registry-only
+    echo "$ERL_LIBS"
     mkdir -p _build/default/lib/
+    mkdir -p _build/default/plugins
     cp --no-preserve=mode -R ${erlware_commons} _build/default/lib/erlware_commons
     cp --no-preserve=mode -R ${providers} _build/default/lib/providers
     cp --no-preserve=mode -R ${getopt} _build/default/lib/getopt
@@ -100,6 +107,7 @@ stdenv.mkDerivation {
     cp --no-preserve=mode -R ${eunit_formatters} _build/default/lib/eunit_formatters
     cp --no-preserve=mode -R ${relx} _build/default/lib/relx
     cp --no-preserve=mode -R ${ssl_verify_hostname} _build/default/lib/ssl_verify_hostname
+    cp --no-preserve=mode -R ${rebar3_hex} _build/default/plugins/rebar3_hex
   '';
 
   buildPhase = ''
@@ -112,7 +120,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/rebar/rebar3";
-    description = "rebar 3.0 is an Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases.";
+    description = "rebar 3.0 is an Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
 
     longDescription = ''
       rebar is a self-contained Erlang script, so it's easy to distribute or
diff --git a/pkgs/development/tools/build-managers/rebar3/hermetic-rebar3.patch b/pkgs/development/tools/build-managers/rebar3/hermetic-rebar3.patch
new file mode 100644
index 000000000000..8da323ab8235
--- /dev/null
+++ b/pkgs/development/tools/build-managers/rebar3/hermetic-rebar3.patch
@@ -0,0 +1,108 @@
+diff --git a/src/rebar3.erl b/src/rebar3.erl
+index 2b73844..af1d871 100644
+--- a/src/rebar3.erl
++++ b/src/rebar3.erl
+@@ -282,9 +282,11 @@ start_and_load_apps(Caller) ->
+     ensure_running(crypto, Caller),
+     ensure_running(asn1, Caller),
+     ensure_running(public_key, Caller),
+-    ensure_running(ssl, Caller),
+-    inets:start(),
+-    inets:start(httpc, [{profile, rebar}]).
++    ensure_running(ssl, Caller).
++%%    Removed due to the hermicity requirements of Nix
++%%
++%%    inets:start(),
++%%    inets:start(httpc, [{profile, rebar}]).
+ 
+ ensure_running(App, Caller) ->
+     case application:start(App) of
+@@ -339,4 +341,4 @@ safe_define_test_macro(Opts) ->
+ test_defined([{d, 'TEST'}|_]) -> true;
+ test_defined([{d, 'TEST', true}|_]) -> true;
+ test_defined([_|Rest]) -> test_defined(Rest);
+-test_defined([]) -> false.
+\ No newline at end of file
++test_defined([]) -> false.
+diff --git a/src/rebar_hermicity.erl b/src/rebar_hermicity.erl
+new file mode 100644
+index 0000000..d814e2a
+--- /dev/null
++++ b/src/rebar_hermicity.erl
+@@ -0,0 +1,42 @@
++%% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*-
++%% ex: ts=4 sw=4 et
++%% -------------------------------------------------------------------
++%%
++%% rebar: Erlang Build Tools
++%%
++%% Copyright (c) 2016 Eric Merritt (eric@merritt.tech)
++%%
++%% Permission is hereby granted, free of charge, to any person obtaining a copy
++%% of this software and associated documentation files (the "Software"), to deal
++%% in the Software without restriction, including without limitation the rights
++%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++%% copies of the Software, and to permit persons to whom the Software is
++%% furnished to do so, subject to the following conditions:
++%%
++%% The above copyright notice and this permission notice shall be included in
++%% all copies or substantial portions of the Software.
++%%
++%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++%% THE SOFTWARE.
++%% -------------------------------------------------------------------
++-module(rebar_hermicity).
++
++-export([request/5]).
++
++-include("rebar.hrl").
++
++%% ====================================================================
++%% Public API
++%% ====================================================================
++
++request(Method, {Url, _Headers}, _HTTPOptions, _Options, _Profile) ->
++    ?ERROR("A request is being made that violates Nix hermicity "
++           "This request has been stopped. Details of the request "
++           "are as follows:", []),
++    ?ERROR("Requesnt: ~p ~s", [Method, Url]),
++    erlang:halt(1).
+diff --git a/src/rebar_pkg_resource.erl b/src/rebar_pkg_resource.erl
+index 4f55ad1..f76fd5d 100644
+--- a/src/rebar_pkg_resource.erl
++++ b/src/rebar_pkg_resource.erl
+@@ -100,10 +100,10 @@ make_vsn(_) ->
+     {error, "Replacing version of type pkg not supported."}.
+ 
+ request(Url, ETag) ->
+-    case httpc:request(get, {Url, [{"if-none-match", ETag} || ETag =/= false]},
+-                       [{ssl, ssl_opts(Url)}, {relaxed, true}],
+-                       [{body_format, binary}],
+-                       rebar) of
++    case rebar_hermicity:request(get, {Url, [{"if-none-match", ETag} || ETag =/= false]},
++                                 [{ssl, ssl_opts(Url)}, {relaxed, true}],
++                                 [{body_format, binary}],
++                                 rebar) of
+         {ok, {{_Version, 200, _Reason}, Headers, Body}} ->
+             ?DEBUG("Successfully downloaded ~s", [Url]),
+             {"etag", ETag1} = lists:keyfind("etag", 1, Headers),
+diff --git a/src/rebar_prv_update.erl b/src/rebar_prv_update.erl
+index 6637ebe..d82c1d8 100644
+--- a/src/rebar_prv_update.erl
++++ b/src/rebar_prv_update.erl
+@@ -44,8 +44,8 @@ do(State) ->
+         TmpFile = filename:join(TmpDir, "packages.gz"),
+ 
+         Url = rebar_state:get(State, rebar_packages_cdn, ?DEFAULT_HEX_REGISTRY),
+-        case httpc:request(get, {Url, []},
+-                           [], [{stream, TmpFile}, {sync, true}],
++        case rebar_hermicity:request(get, {Url, []},
++                                     [], [{stream, TmpFile}, {sync, true}],
+                            rebar) of
+             {ok, saved_to_file} ->
+                 {ok, Data} = file:read_file(TmpFile),
diff --git a/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix b/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix
index 8e9c2a292fd3..378fb382f952 100644
--- a/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix
+++ b/pkgs/development/tools/build-managers/rebar3/registrySnapshot.nix
@@ -1,8 +1,23 @@
-{ fetchFromGitHub }:
+{stdenv, writeText, fetchFromGitHub }:
 
-fetchFromGitHub {
-  owner = "gleber";
-  repo = "hex-pm-registry-snapshots";
-  rev = "329ae2b";
-  sha256 = "1rs3z8psfvy10mzlfvkdzbflgikcnq08r38kfi0f8p5wvi8f8hmh";
+stdenv.mkDerivation rec {
+    name = "hex-registry";
+    rev = "329ae2b";
+    version = "0.0.0+build.${rev}";
+
+    src = fetchFromGitHub {
+        owner = "erlang-nix";
+        repo = "hex-pm-registry-snapshots";
+        inherit rev;
+        sha256 = "1rs3z8psfvy10mzlfvkdzbflgikcnq08r38kfi0f8p5wvi8f8hmh";
+    };
+
+    installPhase = ''
+       mkdir -p "$out/var/hex"
+       zcat "registry.ets.gz" > "$out/var/hex/registry.ets"
+    '';
+
+    setupHook = writeText "setupHook.sh" ''
+        export HEX_REGISTRY_SNAPSHOT="$1/var/hex/registry.ets"
+   '';
 }
diff --git a/pkgs/development/tools/build-managers/scons/default.nix b/pkgs/development/tools/build-managers/scons/default.nix
index a2b79d77e22c..37035b8c44d3 100644
--- a/pkgs/development/tools/build-managers/scons/default.nix
+++ b/pkgs/development/tools/build-managers/scons/default.nix
@@ -2,7 +2,7 @@
 
 let
   name = "scons";
-  version = "2.3.6";
+  version = "2.4.1";
 in
 
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/scons/${name}-${version}.tar.gz";
-    sha256 = "1pq44h0ndclbrwvx901zih63jnzqsyyr865zlml40klg3lssmbcq";
+    sha256 = "19skywi4sb8riivvrylkjrjhnw1cdxj4ps8v7srwp6y650lz9i4g";
   };
 
   buildInputs = [python makeWrapper];
diff --git a/pkgs/development/tools/build-managers/waf/default.nix b/pkgs/development/tools/build-managers/waf/default.nix
new file mode 100644
index 000000000000..6956c97db50f
--- /dev/null
+++ b/pkgs/development/tools/build-managers/waf/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, python2 }:
+
+stdenv.mkDerivation rec {
+  name = "waf-${version}";
+  version = "1.8.19";
+
+  src = fetchurl {
+    url = "https://waf.io/waf-${version}.tar.bz2";
+    sha256 = "e5df90556d1f70aca82bb5c5f46aa68d2377bae16b0db044eaa0559df8668c6f";
+  };
+
+  buildInputs = [ python2 ];
+
+  configurePhase = ''
+    python waf-light configure
+  '';
+  buildPhase = ''
+    python waf-light build
+  '';
+  installPhase = ''
+    install waf $out
+  '';
+
+  meta = {
+    description = "Meta build system";
+    homepage    = "https://waf.io/";
+    license     = lib.licenses.bsd3;
+    platforms   = lib.platforms.all;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/tools/compass/default.nix b/pkgs/development/tools/compass/default.nix
index 2b0a5aaf90a0..9b21ec48c1c6 100644
--- a/pkgs/development/tools/compass/default.nix
+++ b/pkgs/development/tools/compass/default.nix
@@ -9,7 +9,7 @@ bundlerEnv {
   gemset = ./gemset.nix;
 
   meta = with lib; {
-    description = "Stylesheet Authoring Environment that makes your website design simpler to implement and easier to maintain.";
+    description = "Stylesheet Authoring Environment that makes your website design simpler to implement and easier to maintain";
     homepage    = https://github.com/Compass/compass;
     license     = with licenses; mit;
     maintainers = with maintainers; [ offline ];
diff --git a/pkgs/development/tools/continuous-integration/cide/Gemfile b/pkgs/development/tools/continuous-integration/cide/Gemfile
new file mode 100644
index 000000000000..7e72ac0529d6
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/cide/Gemfile
@@ -0,0 +1,6 @@
+source "https://rubygems.org"
+
+gem 'cide'
+
+# Optional dependency, only used by `cide upload`
+gem 'aws-sdk', '~> 2'
diff --git a/pkgs/development/tools/continuous-integration/cide/Gemfile.lock b/pkgs/development/tools/continuous-integration/cide/Gemfile.lock
new file mode 100644
index 000000000000..736b2bfca1a2
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/cide/Gemfile.lock
@@ -0,0 +1,40 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    aws-sdk (2.2.17)
+      aws-sdk-resources (= 2.2.17)
+    aws-sdk-core (2.2.17)
+      jmespath (~> 1.0)
+    aws-sdk-resources (2.2.17)
+      aws-sdk-core (= 2.2.17)
+    axiom-types (0.1.1)
+      descendants_tracker (~> 0.0.4)
+      ice_nine (~> 0.11.0)
+      thread_safe (~> 0.3, >= 0.3.1)
+    cide (0.9.0)
+      thor (~> 0.19)
+      virtus (~> 1.0)
+    coercible (1.0.0)
+      descendants_tracker (~> 0.0.1)
+    descendants_tracker (0.0.4)
+      thread_safe (~> 0.3, >= 0.3.1)
+    equalizer (0.0.11)
+    ice_nine (0.11.2)
+    jmespath (1.1.3)
+    thor (0.19.1)
+    thread_safe (0.3.5)
+    virtus (1.0.5)
+      axiom-types (~> 0.1)
+      coercible (~> 1.0)
+      descendants_tracker (~> 0.0, >= 0.0.3)
+      equalizer (~> 0.0, >= 0.0.9)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  aws-sdk (~> 2)
+  cide
+
+BUNDLED WITH
+   1.10.6
diff --git a/pkgs/development/tools/continuous-integration/cide/default.nix b/pkgs/development/tools/continuous-integration/cide/default.nix
new file mode 100644
index 000000000000..4a64d8bf303e
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/cide/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, bundlerEnv, makeWrapper, docker, git, gnutar, gzip }:
+
+stdenv.mkDerivation rec {
+  name = "cide-${version}";
+  version = "0.9.0";
+
+  env = bundlerEnv {
+    name = "${name}-gems";
+
+    gemfile = ./Gemfile;
+    lockfile = ./Gemfile.lock;
+    gemset = ./gemset.nix;
+  };
+
+  phases = ["installPhase"];
+
+  buildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    makeWrapper ${env}/bin/cide $out/bin/cide \
+      --set PATH ${docker}/bin:${git}/bin:${gnutar}/bin:${gzip}/bin
+  '';
+
+  meta = with lib; {
+    description = "Isolated test runner with Docker";
+    homepage    = http://zimbatm.github.io/cide/;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ zimbatm ];
+    platforms   = docker.meta.platforms;
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/cide/gemset.nix b/pkgs/development/tools/continuous-integration/cide/gemset.nix
new file mode 100644
index 000000000000..df8f7c9f2088
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/cide/gemset.nix
@@ -0,0 +1,103 @@
+{
+  virtus = {
+    dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"];
+    source = {
+      sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  thread_safe = {
+    source = {
+      sha256 = "1hq46wqsyylx5afkp6jmcihdpv4ynzzq9ygb6z2pb1cbz5js0gcr";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
+  thor = {
+    source = {
+      sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z";
+      type = "gem";
+    };
+    version = "0.19.1";
+  };
+  jmespath = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vpvd61kc60f98jn28kw7x7vi82qrwgglam42nvzh98i43yxwsfb";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  ice_nine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  equalizer = {
+    source = {
+      sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
+  descendants_tracker = {
+    dependencies = ["thread_safe"];
+    source = {
+      sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  coercible = {
+    dependencies = ["descendants_tracker"];
+    source = {
+      sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  cide = {
+    version = "0.9.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wykwv0jnrh49jm9zsy1cb5wddv65iw4ixh072hr242wb83dcyl0";
+    };
+  };
+  axiom-types = {
+    dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
+    source = {
+      sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  aws-sdk-resources = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vdnpjmil99n9d1fpk1w6ssgvmzx4wfmrqcij8nyd0iqdaacx3fj";
+      type = "gem";
+    };
+    version = "2.2.17";
+  };
+  aws-sdk-core = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vq7ny5n3rdfzkdqdm76r48slmp2a5v7565llrl4bw5hb5k4p75z";
+      type = "gem";
+    };
+    version = "2.2.17";
+  };
+  aws-sdk = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cwycrdk21blzjzf8fj1wlmdix94rj9aixj6phx6lwbqykn2dzx9";
+      type = "gem";
+    };
+    version = "2.2.17";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index edc551a70541..f416345028f9 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "jenkins-${version}";
-  version = "1.638";
+  version = "1.650";
 
   src = fetchurl {
     url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war";
-    sha256 = "1kbx9n2hj8znw0ykvgvrlf2v472f1nkdwix6a2v4rjxkgmghxmh8";
+    sha256 = "0iypkyjcsfj36j683a6yis4q0wil6m8l065fx8v2p7ba4j2ql00n";
   };
   meta = with stdenv.lib; {
     description = "An extendable open source continuous integration server";
diff --git a/pkgs/development/tools/dcadec/default.nix b/pkgs/development/tools/dcadec/default.nix
new file mode 100644
index 000000000000..439e224c4550
--- /dev/null
+++ b/pkgs/development/tools/dcadec/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = pname + "-" + version;
+  pname = "dcadec";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "foo86";
+    repo = pname;
+    rev = "v" + version;
+    sha256 = "07nd0ajizrp1w02bsyfcv18431r8m8rq8gjfmz9wmckpg7cxj2hs";
+  };
+
+  installPhase = "make PREFIX=/ DESTDIR=$out install";
+
+  meta = with stdenv.lib; {
+    description = "DTS Coherent Acoustics decoder with support for HD extensions";
+    maintainers = with maintainers; [ edwtjo ];
+    homepage = http://github.com/foo86/dcadec;
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/devpi-client/default.nix b/pkgs/development/tools/devpi-client/default.nix
index 5db62da06d85..f3db234cd969 100644
--- a/pkgs/development/tools/devpi-client/default.nix
+++ b/pkgs/development/tools/devpi-client/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pythonPackages, python} :
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "devpi-client-${version}";
   version = "2.3.2";
 
diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix
index d686da98fa38..dd7dabf2bf28 100644
--- a/pkgs/development/tools/electron/default.nix
+++ b/pkgs/development/tools/electron/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, buildEnv, makeDesktopItem, makeWrapper, zlib, glib, alsaLib
 , dbus, gtk, atk, pango, freetype, fontconfig, libgnome_keyring3, gdk_pixbuf
 , cairo, cups, expat, libgpgerror, nspr, gconf, nss, xorg, libcap, unzip
-, systemd
+, systemd, libnotify
 }:
 let
   atomEnv = buildEnv {
@@ -11,16 +11,16 @@ let
       fontconfig gdk_pixbuf cairo cups expat libgpgerror alsaLib nspr gconf nss
       xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
       xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
-      xorg.libXcursor libcap systemd
+      xorg.libXcursor libcap systemd libnotify
     ];
   };
 in stdenv.mkDerivation rec {
   name = "electron-${version}";
-  version = "0.28.2";
+  version = "0.36.2";
 
   src = fetchurl {
     url = "https://github.com/atom/electron/releases/download/v${version}/electron-v${version}-linux-x64.zip";
-    sha256 = "55b0880e2f78a60d95a58e83cd75006c34cb6ed90836e1f34e3359c3e5d0b8f0";
+    sha256 = "01d78j8dfrdygm1r141681b3bfz1f1xqg9vddz7j52z1mlfv9f1d";
     name = "${name}.zip";
   };
 
diff --git a/pkgs/development/tools/erlang/hex2nix/default.nix b/pkgs/development/tools/erlang/hex2nix/default.nix
new file mode 100644
index 000000000000..e7d237cfea22
--- /dev/null
+++ b/pkgs/development/tools/erlang/hex2nix/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchFromGitHub, buildRebar3, ibrowse, jsx, erlware_commons, getopt }:
+
+buildRebar3 rec {
+    name = "hex2nix";
+    version = "0.0.3";
+
+    src = fetchFromGitHub {
+         owner = "erlang-nix";
+         repo = "hex2nix";
+         rev = "${version}";
+         sha256 = "1snlcb60al7fz3z4c4rqrb9gqdyihyhsrr90n40v9rdm98csry3k";
+     };
+
+    erlangDeps = [ ibrowse jsx erlware_commons getopt ];
+
+    DEBUG=1;
+
+    installPhase = ''
+      runHook preInstall
+      make PREFIX=$out install
+      runHook postInstall
+    '';
+ }
diff --git a/pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix b/pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix
new file mode 100644
index 000000000000..39ec59e849f2
--- /dev/null
+++ b/pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchFromGitHub, erlang }:
+
+stdenv.mkDerivation rec {
+    name = "rebar3-nix-bootstrap";
+    version = "0.0.3";
+
+    src = fetchFromGitHub {
+        owner = "erlang-nix";
+        repo = "rebar3-nix-bootstrap";
+        rev = "${version}";
+        sha256 = "01yyaz104jj3mxx8k10q3rwpn2rh13q1ja5r0iq37qyjmg8xflhq";
+    };
+
+    buildInputs = [ erlang ];
+
+    installFlags = "PREFIX=$(out)";
+
+    meta = {
+      description = "Shim command to help bootstrap a rebar3 project on Nix";
+      license = stdenv.lib.licenses.asl20;
+      homepage = "https://github.com/erl-nix/rebar3-nix-bootstrap";
+      maintainers = with stdenv.lib.maintainers; [ ericbmerritt ];
+    };
+}
diff --git a/pkgs/development/tools/flamegraph/default.nix b/pkgs/development/tools/flamegraph/default.nix
new file mode 100644
index 000000000000..1a57afbfa904
--- /dev/null
+++ b/pkgs/development/tools/flamegraph/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, perl }:
+
+stdenv.mkDerivation {
+  name = "FlameGraph-2015-10-10";
+
+  src = fetchFromGitHub {
+    owner = "brendangregg";
+    repo = "FlameGraph";
+    rev = "182b24fb635345d48c91ed1de58a08b620312f3d";
+    sha256 = "1djz0wl8202a6j87ka9j3d8iw3bli056lrn73gv2i65p16rwk9kc";
+  };
+
+  buildInputs = [ perl ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    for x in $src/*.pl $src/*.awk $src/dev/*.pl $src/dev/*.d; do
+      cp $x $out/bin
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    license = licenses.cddl;
+    homepage = http://www.brendangregg.com/flamegraphs.html;
+    description = "Visualization for profiled code";
+  };
+}
diff --git a/pkgs/development/tools/galen/default.nix b/pkgs/development/tools/galen/default.nix
new file mode 100644
index 000000000000..169c8fdd68a0
--- /dev/null
+++ b/pkgs/development/tools/galen/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, jdk, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "galen";
+  version = "2.2.1";
+  name = "${pname}-${version}";
+
+  inherit jdk;
+
+  src = fetchurl {
+    url = "https://github.com/galenframework/galen/releases/download/galen-2.2.1/galen-bin-${version}.zip";
+    sha256 = "0zwrh3bxcgkwip6z9lvy3hn53kfr99cdij64c57ff8d95xilclhb";
+  };
+
+  buildInputs = [ unzip ];
+  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
+
+  buildPhase = ''
+  mkdir -p $out/bin
+  '';
+
+  installPhase = ''
+  cat galen | sed -e "s,java,$jdk/bin/java," > $out/bin/galen
+  chmod +x $out/bin/galen
+  cp galen.jar $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://galenframework.com;
+    description = "Automated layout testing for websites";
+    license = licenses.asl20;
+    maintainers = [ ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/grabserial/default.nix b/pkgs/development/tools/grabserial/default.nix
index bafde1f96873..34a45fa0b846 100644
--- a/pkgs/development/tools/grabserial/default.nix
+++ b/pkgs/development/tools/grabserial/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchgit, buildPythonPackage, pythonPackages }:
+{ stdenv, fetchgit, buildPythonApplication, pythonPackages }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
 
   name = "grabserial-20141120";
   namePrefix = "";
diff --git a/pkgs/development/tools/guile/g-wrap/default.nix b/pkgs/development/tools/guile/g-wrap/default.nix
index ed492a0b82df..14777b95b85e 100644
--- a/pkgs/development/tools/guile/g-wrap/default.nix
+++ b/pkgs/development/tools/guile/g-wrap/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ libffi ];
 
-  doCheck = true;
+  doCheck = !stdenv.isFreeBSD; # XXX: 00-socket.test hangs
 
   meta = {
     description = "G-Wrap, a wrapper generator for Guile";
diff --git a/pkgs/development/tools/haskell/ihaskell/use-classy-prelude.patch b/pkgs/development/tools/haskell/ihaskell/use-classy-prelude.patch
deleted file mode 100644
index b2c1362b62fa..000000000000
--- a/pkgs/development/tools/haskell/ihaskell/use-classy-prelude.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From fad4e38079e91b13bf1e94732b7494504071b224 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Edward=20Tj=C3=B6rnhammar?= <ed@cflags.cc>
-Date: Sun, 28 Sep 2014 09:27:40 +0200
-Subject: [PATCH] catMaybes, explicitly use ClassyPrelude
-
----
- src/IHaskell/Eval/Completion.hs | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/IHaskell/Eval/Completion.hs b/src/IHaskell/Eval/Completion.hs
-index 790c903..93d7ac1 100644
---- a/src/IHaskell/Eval/Completion.hs
-+++ b/src/IHaskell/Eval/Completion.hs
-@@ -141,7 +141,7 @@ getTrueModuleName name = do
-       onlyImportDecl _ = Nothing
- 
-   -- Get all imports that we use.
--  imports <- catMaybes <$> map onlyImportDecl <$> getContext
-+  imports <- ClassyPrelude.catMaybes <$> map onlyImportDecl <$> getContext
- 
-   -- Find the ones that have a qualified name attached.
-   -- If this name isn't one of them, it already is the true name.
-@@ -178,7 +178,7 @@ completionType line loc target
-     = Empty
- 
-   -- When in a string, complete filenames.
--  | cursorInString line loc 
-+  | cursorInString line loc
-     = FilePath (getStringTarget lineUpToCursor) (getStringTarget lineUpToCursor)
- 
-   -- Complete module names in imports and elsewhere.
--- 
-2.1.0
-
diff --git a/pkgs/development/tools/icestorm/default.nix b/pkgs/development/tools/icestorm/default.nix
new file mode 100644
index 000000000000..726b805fe91a
--- /dev/null
+++ b/pkgs/development/tools/icestorm/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python3, libftdi }:
+
+stdenv.mkDerivation rec {
+  name = "icestorm-${version}";
+  version = "2015.12.29";
+
+  src = fetchFromGitHub {
+    owner = "cliffordwolf";
+    repo = "icestorm";
+    rev = "7852514c2cde208da87b62777b2c5e482092f50d";
+    sha256 = "1ya1nk5h28hjdmd8jdrlfiayr2434rnvi133gs1p0ay21qb3iwfz";
+  };
+
+  buildInputs = [ python3 libftdi ];
+  preBuild = ''
+    makeFlags="DESTDIR=$out $makeFlags"
+  '';
+
+  meta = {
+    description = "Documentation and tools for Lattice iCE40 FPGAs";
+    longDescription = ''
+      Project IceStorm aims at reverse engineering and
+      documenting the bitstream format of Lattice iCE40
+      FPGAs and providing simple tools for analyzing and
+      creating bitstream files.
+    '';
+    homepage = http://www.clifford.at/icestorm/;
+    license = stdenv.lib.licenses.isc;
+    maintainers = [ stdenv.lib.maintainers.shell ];
+  };
+}
diff --git a/pkgs/development/tools/java/cfr/default.nix b/pkgs/development/tools/java/cfr/default.nix
index 3d42de4640eb..46170341437c 100644
--- a/pkgs/development/tools/java/cfr/default.nix
+++ b/pkgs/development/tools/java/cfr/default.nix
@@ -1,28 +1,14 @@
 { stdenv, fetchurl, jre }:
 
-let version = "0_101"; in
 stdenv.mkDerivation rec {
   name = "cfr-${version}";
+  version = "0_101";
 
   src = fetchurl {
     sha256 = "0zwl3whypdm2qrw3hwaqjnifkb4wcdn8fx9scrjkli54bhr6dqch";
     url = "http://www.benf.org/other/cfr/cfr_${version}.jar";
   };
 
-  meta = with stdenv.lib; {
-    inherit version;
-    description = "Another java decompiler";
-    longDescription = ''
-      CFR will decompile modern Java features - Java 8 lambdas (pre and post
-      Java beta 103 changes), Java 7 String switches etc, but is written
-      entirely in Java 6.
-    '';
-    homepage = http://www.benf.org/other/cfr/;
-    license = licenses.mit;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ nckx ];
-  };
-
   buildInputs = [ jre ];
 
   phases = [ "installPhase" ];
@@ -38,4 +24,17 @@ stdenv.mkDerivation rec {
     EOF
     install -Dm755 cfr $out/bin/cfr
   '';
+
+  meta = with stdenv.lib; {
+    description = "Another java decompiler";
+    longDescription = ''
+      CFR will decompile modern Java features - Java 8 lambdas (pre and post
+      Java beta 103 changes), Java 7 String switches etc, but is written
+      entirely in Java 6.
+    '';
+    homepage = http://www.benf.org/other/cfr/;
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ nckx ];
+  };
 }
diff --git a/pkgs/development/tools/literate-programming/eweb/default.nix b/pkgs/development/tools/literate-programming/eweb/default.nix
index f996c567fcb5..17a7731896ee 100644
--- a/pkgs/development/tools/literate-programming/eweb/default.nix
+++ b/pkgs/development/tools/literate-programming/eweb/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec{
   name = "eweb-${meta.version}";
 
   src = fetchurl {
-    url = "http://downloads.sourceforge.net/project/eweb/${name}.tar.bz2";
+    url = "mirror://sourceforge/project/eweb/${name}.tar.bz2";
     sha256 = "1xy7vm2sj5q6s620fm25klmnwnz9xkrxmx4q2f8h6c85ydisayd5";
   };
 
diff --git a/pkgs/development/tools/literate-programming/nuweb/default.nix b/pkgs/development/tools/literate-programming/nuweb/default.nix
index 54c2125a08c1..5930d4789a46 100644
--- a/pkgs/development/tools/literate-programming/nuweb/default.nix
+++ b/pkgs/development/tools/literate-programming/nuweb/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec{
   version = "1.58";
 
   src = fetchurl {
-    url = "http://downloads.sourceforge.net/project/nuweb/${name}.tar.gz";
+    url = "mirror://sourceforge/project/nuweb/${name}.tar.gz";
     sha256 = "0q51i3miy15fv4njjp82yws01qfjxvqx5ly3g3vh8z3h7iq9p47y";
   };
 
diff --git a/pkgs/development/tools/mdk/default.nix b/pkgs/development/tools/mdk/default.nix
new file mode 100644
index 000000000000..f54b409efb6d
--- /dev/null
+++ b/pkgs/development/tools/mdk/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, intltool, pkgconfig, glib }:
+
+stdenv.mkDerivation {
+  name = "gnu-mdk-1.2.9";
+  src = fetchurl {
+    url = http://ftp.gnu.org/gnu/mdk/v1.2.9/mdk-1.2.9.tar.gz;
+    md5 = "08c96baa4b99dd9d25190dd15fe415a5";
+  };
+  buildInputs = [ intltool pkgconfig glib ];
+  postInstall = ''
+    mkdir -p $out/share/emacs/site-lisp/
+    cp -v ./misc/*.el $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "GNU MIX Development Kit (MDK)";
+    homepage = https://www.gnu.org/software/mdk/;
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/misc/bin_replace_string/default.nix b/pkgs/development/tools/misc/bin_replace_string/default.nix
index 82a07d60f9a6..fda527ee905a 100644
--- a/pkgs/development/tools/misc/bin_replace_string/default.nix
+++ b/pkgs/development/tools/misc/bin_replace_string/default.nix
@@ -1,16 +1,20 @@
 { stdenv, fetchurl, libelf, txt2man }:
 
-let version = "0.2"; in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "bin_replace_string-${version}";
+  version = "0.2";
 
   src = fetchurl {
     sha256 = "1gnpddxwpsfrg4l76x5yplsvbcdbviybciqpn22yq3g3qgnr5c2a";
     url = "ftp://ohnopub.net/mirror/bin_replace_string-0.2.tar.bz2";
   };
 
+  buildInputs = [ libelf ];
+  nativeBuildInputs = [ txt2man ];
+
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
-    inherit version;
     description = "Edit precompiled binaries";
     longDescription = ''
       bin_replace_string edits C-style strings in precompiled binaries. This is
@@ -25,9 +29,4 @@ stdenv.mkDerivation {
     platforms = platforms.linux;
     maintainers = with maintainers; [ nckx ];
   };
-
-  buildInputs = [ libelf ];
-  nativeBuildInputs = [ txt2man ];
-
-  enableParallelBuilding = true;
 }
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 61824eb607be..86d69d8da8ce 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -67,19 +67,17 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Tools for manipulating binaries (linker, assembler, etc.)";
-
     longDescription = ''
       The GNU Binutils are a collection of binary tools.  The main
       ones are `ld' (the GNU linker) and `as' (the GNU assembler).
       They also include the BFD (Binary File Descriptor) library,
       `gprof', `nm', `strip', etc.
     '';
-
     homepage = http://www.gnu.org/software/binutils/;
-
-    license = stdenv.lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
 
     /* Give binutils a lower priority than gcc-wrapper to prevent a
        collision due to the ld/as wrappers/symlinks in the latter. */
diff --git a/pkgs/development/tools/misc/ccache/default.nix b/pkgs/development/tools/misc/ccache/default.nix
index fb6d03c6e85a..4a278e052fa2 100644
--- a/pkgs/development/tools/misc/ccache/default.nix
+++ b/pkgs/development/tools/misc/ccache/default.nix
@@ -1,18 +1,23 @@
-{ stdenv, fetchurl, runCommand, gcc, zlib }:
+{ stdenv, fetchurl, fetchpatch, runCommand, gcc, zlib }:
 
-let
+let ccache = stdenv.mkDerivation rec {
   name = "ccache-${version}";
   version = "3.2.4";
-  sha256 = "0pga3hvd80f2p7mz88jmmbwzxh4vn5ihyjx5f6na8y2fclzsjg8w";
 
-  ccache =
-stdenv.mkDerivation {
-  inherit name;
   src = fetchurl {
-    inherit sha256;
+    sha256 = "0pga3hvd80f2p7mz88jmmbwzxh4vn5ihyjx5f6na8y2fclzsjg8w";
     url = "mirror://samba/ccache/${name}.tar.xz";
   };
 
+  patches = [
+    (fetchpatch {
+      sha256 = "1gwnxx1w2nx1szi0v5vgwcx9i23pxygkqqnrawhal68qgz5c34wh";
+      name = "dont-update-manifest-in-readonly-modes.patch";
+      # The primary git.samba.org doesn't seem to like our curl much...
+      url = "https://github.com/jrosdahl/ccache/commit/a7ab503f07e31ebeaaec34fbaa30e264308a299d.patch";
+    })
+  ];
+
   buildInputs = [ zlib ];
 
   postPatch = ''
@@ -49,11 +54,13 @@ stdenv.mkDerivation {
             ln -s ${gcc.cc}/bin/$executable $out/bin/$executable
           fi
         done
+        for file in $(ls ${gcc.cc} | grep -vw bin); do
+          ln -s ${gcc.cc}/$file $out/$file
+        done
       '');
   };
 
   meta = with stdenv.lib; {
-    inherit version;
     description = "Compiler cache for fast recompilation of C/C++ code";
     homepage = http://ccache.samba.org/;
     downloadPage = https://ccache.samba.org/download.html;
@@ -61,5 +68,4 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ nckx ];
   };
 };
-in
-ccache
+in ccache
diff --git a/pkgs/development/tools/misc/cl-launch/default.nix b/pkgs/development/tools/misc/cl-launch/default.nix
index 17b1f3382cca..ffd668dbdeef 100644
--- a/pkgs/development/tools/misc/cl-launch/default.nix
+++ b/pkgs/development/tools/misc/cl-launch/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="cl-launch";
-    version="4.1.4";
+    version="4.1.4.1";
     name="${baseName}-${version}";
-    hash="0j3lapjsqzdkc7ackqdk13li299lp706gdc9bh28kvs0diyamjiv";
-    url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.1.4.tar.gz";
-    sha256="0j3lapjsqzdkc7ackqdk13li299lp706gdc9bh28kvs0diyamjiv";
+    hash="09450yknzb0m3375lg4k8gdypmk3xwl8m1krv1kvhylmrm3995mz";
+    url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.1.4.1.tar.gz";
+    sha256="09450yknzb0m3375lg4k8gdypmk3xwl8m1krv1kvhylmrm3995mz";
   };
   buildInputs = [
   ];
diff --git a/pkgs/development/tools/misc/ctags/default.nix b/pkgs/development/tools/misc/ctags/default.nix
index 26b186c11eab..584095c904d5 100644
--- a/pkgs/development/tools/misc/ctags/default.nix
+++ b/pkgs/development/tools/misc/ctags/default.nix
@@ -29,6 +29,9 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ simons ];
     platforms = platforms.unix;
+
+    # So that Exuberant ctags is preferred over emacs's ctags
+    priority = 1;
   };
 
 }
diff --git a/pkgs/development/tools/misc/dialog/default.nix b/pkgs/development/tools/misc/dialog/default.nix
index f33ac04fdea6..76d34bfd5640 100644
--- a/pkgs/development/tools/misc/dialog/default.nix
+++ b/pkgs/development/tools/misc/dialog/default.nix
@@ -13,11 +13,11 @@ assert unicodeSupport -> ncurses.unicode && ncurses != null;
 
 stdenv.mkDerivation rec {
   name = "dialog-${version}";
-  version = "1.2-20150920";
+  version = "1.3-20160209";
 
   src = fetchurl {
     url = "ftp://invisible-island.net/dialog/${name}.tgz";
-    sha256 = "01ccd585c241nkj02n0zdbx8jqhylgcfpcmmshynh0c7fv2ixrn4";
+    sha256 = "11rzh14xy9s99gxdi5i7fgmgihjqsv0ls0ksavkmip2y37rgf503";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index 95ccdd89de19..0a62859d2075 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -1,30 +1,28 @@
-{stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext}:
+{ lib, stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext, xz }:
 
 # TODO: Look at the hardcoded paths to kernel, modules etc.
 stdenv.mkDerivation rec {
   name = "elfutils-${version}";
-  version = "0.163";
+  version = "0.165";
 
   src = fetchurl {
-    urls = [
-      "http://fedorahosted.org/releases/e/l/elfutils/${version}/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "7c774f1eef329309f3b05e730bdac50013155d437518a2ec0e24871d312f2e23";
+    url = "http://fedorahosted.org/releases/e/l/elfutils/${version}/${name}.tar.bz2";
+    sha256 = "0wp91hlh9n0ismikljf63558rzdwim8w1s271grsbaic35vr5z57";
   };
 
-  patches = [
-    (fetchurl {
-      url = "http://fedorahosted.org/releases/e/l/elfutils/${version}/elfutils-portability-${version}.patch";
-      sha256 = "e4e82315dad2efaa4e4476503e7537e01b7c1b1f98a96de4ca1c7fa85f4f1045";
-    }) ];
+  patches = [ ./glibc-2.21.patch ];
 
   # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
   # as the host-bzip2 will be in the path.
-  nativeBuildInputs = [m4 bison flex gettext bzip2];
-  buildInputs = [zlib bzip2];
+  nativeBuildInputs = [ m4 bison flex gettext bzip2 ];
+  buildInputs = [ zlib bzip2 xz ];
 
-  configureFlags = "--disable-werror";
+  configureFlags =
+    [ "--program-prefix=eu-" # prevent collisions with binutils
+      "--enable-deterministic-archives"
+    ];
+
+  enableParallelBuilding = true;
 
   crossAttrs = {
 
@@ -67,9 +65,11 @@ stdenv.mkDerivation rec {
     '';
   };
 
-  dontAddDisableDepTrack = true;
-
   meta = {
     homepage = https://fedorahosted.org/elfutils/;
+    description = "A set of utilities to handle ELF objects";
+    platforms = lib.platforms.linux;
+    license = lib.licenses.gpl3;
+    maintainers = lib.maintainers.eelco;
   };
 }
diff --git a/pkgs/development/tools/misc/elfutils/glibc-2.21.patch b/pkgs/development/tools/misc/elfutils/glibc-2.21.patch
new file mode 100644
index 000000000000..f67632741e51
--- /dev/null
+++ b/pkgs/development/tools/misc/elfutils/glibc-2.21.patch
@@ -0,0 +1,164 @@
+From b9d70fb9fb0bd0bf84eb2302cba1691aea74c42e Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mjw@redhat.com>
+Date: Wed, 13 Jan 2016 17:16:48 +0100
+Subject: [PATCH] libelf: Add ELF compression types and defines to libelf.h for
+ older glibc.
+
+Older glibc elf.h might not define the new ELF compression defines and
+types. If not just define them in libelf.h directly to make the libelf
+headers work on older glibc systems.
+
+Also include a testcase to check the libelf headers build against the
+system elf.h.
+
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810885
+
+Signed-off-by: Mark Wielaard <mjw@redhat.com>
+---
+ libelf/ChangeLog               |  5 +++++
+ libelf/libelf.h                | 28 ++++++++++++++++++++++++++++
+ tests/ChangeLog                |  8 ++++++++
+ tests/Makefile.am              |  9 +++++++--
+ tests/system-elf-libelf-test.c | 35 +++++++++++++++++++++++++++++++++++
+ 5 files changed, 83 insertions(+), 2 deletions(-)
+ create mode 100644 tests/system-elf-libelf-test.c
+
+diff --git a/libelf/ChangeLog b/libelf/ChangeLog
+index 3a1fe91..aabf6f6 100644
+--- a/libelf/ChangeLog
++++ b/libelf/ChangeLog
+@@ -1,3 +1,8 @@
++2016-01-13  Mark Wielaard  <mjw@redhat.com>
++
++	* libelf.h: Check SHF_COMPRESSED is defined. If not define it and the
++	associated ELF compression types/defines.
++
+ 2015-11-26  Mark Wielaard  <mjw@redhat.com>
+ 
+ 	* elf_compress.c (__libelf_decompress_elf): New function, extracted
+diff --git a/libelf/libelf.h b/libelf/libelf.h
+index 364e776..c0d6389 100644
+--- a/libelf/libelf.h
++++ b/libelf/libelf.h
+@@ -35,6 +35,34 @@
+ /* Get the ELF types.  */
+ #include <elf.h>
+ 
++#ifndef SHF_COMPRESSED
++ /* Older glibc elf.h might not yet define the ELF compression types.  */
++ #define SHF_COMPRESSED      (1 << 11)  /* Section with compressed data. */
++
++ /* Section compression header.  Used when SHF_COMPRESSED is set.  */
++
++ typedef struct
++ {
++   Elf32_Word   ch_type;        /* Compression format.  */
++   Elf32_Word   ch_size;        /* Uncompressed data size.  */
++   Elf32_Word   ch_addralign;   /* Uncompressed data alignment.  */
++ } Elf32_Chdr;
++
++ typedef struct
++ {
++   Elf64_Word   ch_type;        /* Compression format.  */
++   Elf64_Word   ch_reserved;
++   Elf64_Xword  ch_size;        /* Uncompressed data size.  */
++   Elf64_Xword  ch_addralign;   /* Uncompressed data alignment.  */
++ } Elf64_Chdr;
++
++ /* Legal values for ch_type (compression algorithm).  */
++ #define ELFCOMPRESS_ZLIB       1          /* ZLIB/DEFLATE algorithm.  */
++ #define ELFCOMPRESS_LOOS       0x60000000 /* Start of OS-specific.  */
++ #define ELFCOMPRESS_HIOS       0x6fffffff /* End of OS-specific.  */
++ #define ELFCOMPRESS_LOPROC     0x70000000 /* Start of processor-specific.  */
++ #define ELFCOMPRESS_HIPROC     0x7fffffff /* End of processor-specific.  */
++#endif
+ 
+ /* Known translation types.  */
+ typedef enum
+diff --git a/tests/ChangeLog b/tests/ChangeLog
+index 366aea9..234ae56 100644
+--- a/tests/ChangeLog
++++ b/tests/ChangeLog
+@@ -1,3 +1,11 @@
++2016-01-13  Mark Wielaard  <mjw@redhat.com>
++
++	* system-elf-libelf-test.c: New test.
++	* Makefile.am (TESTS): Add system-elf-libelf-test, if !STANDALONE.
++	(check_PROGRAMS): Likewise.
++	(system_elf_libelf_test_CPPFLAGS): New variable.
++	(system_elf_libelf_test_LDADD): Likewise.
++
+ 2016-01-08  Mark Wielaard  <mjw@redhat.com>
+ 
+ 	* elfputzdata.c (main): Fix parentheses in strncmp test.
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index d09a6d7..7b9e108 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -136,8 +136,8 @@ export ELFUTILS_DISABLE_DEMANGLE = 1
+ endif
+ 
+ if !STANDALONE
+-check_PROGRAMS += msg_tst md5-sha1-test
+-TESTS += msg_tst md5-sha1-test
++check_PROGRAMS += msg_tst md5-sha1-test system-elf-libelf-test
++TESTS += msg_tst md5-sha1-test system-elf-libelf-test
+ endif
+ 
+ if LZMA
+@@ -473,6 +473,11 @@ elfgetzdata_LDADD = $(libelf)
+ elfputzdata_LDADD = $(libelf)
+ zstrptr_LDADD = $(libelf)
+ 
++# We want to test the libelf header against the system elf.h header.
++# Don't include any -I CPPFLAGS.
++system_elf_libelf_test_CPPFLAGS =
++system_elf_libelf_test_LDADD = $(libelf)
++
+ if GCOV
+ check: check-am coverage
+ .PHONY: coverage
+diff --git a/tests/system-elf-libelf-test.c b/tests/system-elf-libelf-test.c
+new file mode 100644
+index 0000000..7dfe498
+--- /dev/null
++++ b/tests/system-elf-libelf-test.c
+@@ -0,0 +1,35 @@
++/* Explicit test compiling with system elf.h header plus libelf header.
++
++   Copyright (C) 2016 Red Hat, Inc.
++   This file is part of elfutils.
++
++   This file is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 3 of the License, or
++   (at your option) any later version.
++
++   elfutils is distributed in the hope that it will be useful, but
++   WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++#include <elf.h>
++#include <stddef.h>
++#include "../libelf/libelf.h"
++
++int
++main (void)
++{
++  /* Trivial test, this is really a compile test anyway.  */
++  if (elf_version (EV_CURRENT) == EV_NONE)
++    return -1;
++
++  /* This will obviously fail. It is just to check that Elf32_Chdr and
++     elf32_getchdr are available (both at compile time and runtime).  */
++  Elf32_Chdr *chdr = elf32_getchdr (NULL);
++
++  return chdr == NULL ? 0 : -1;
++}
+-- 
+1.8.3.1
+
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 547f7a81ab6c..472bb4de58b9 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -3,6 +3,8 @@
 , python ? null
 , guile ? null
 , target ? null
+# Support all known targets in one gdb binary.
+, multitarget ? false
 # Additional dependencies for GNU/Hurd.
 , mig ? null, hurd ? null
 
@@ -10,7 +12,7 @@
 
 let
 
-  basename = "gdb-7.10.1";
+  basename = "gdb-7.11";
 
   # Whether (cross-)building for GNU/Hurd.  This is an approximation since
   # having `stdenv ? cross' doesn't tell us if we're building `crossDrv' and
@@ -29,7 +31,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/gdb/${basename}.tar.xz";
-    sha256 = "1mfnjcwnwm5cg4rc9pncs9v356a0bz6ymjyac56mbj6784yjzir5";
+    sha256 = "1hg5kwwdvi9b9nxzxfjnx8fx3gip75fqyvkp82xpf3b3rcb42hvs";
   };
 
   nativeBuildInputs = [ pkgconfig texinfo perl ]
@@ -47,6 +49,7 @@ stdenv.mkDerivation rec {
       "--with-separate-debug-dir=/run/current-system/sw/lib/debug"
     ]
     ++ optional (target != null) "--target=${target.config}"
+    ++ optional multitarget "--enable-targets=all"
     ++ optional (elem stdenv.system platforms.cygwin) "--without-python";
 
   crossAttrs = {
@@ -54,7 +57,9 @@ stdenv.mkDerivation rec {
     configureFlags = with stdenv.lib;
       [ "--with-gmp=${gmp.crossDrv}" "--with-mpfr=${mpfr.crossDrv}" "--with-system-readline"
         "--with-system-zlib" "--with-expat" "--with-libexpat-prefix=${expat.crossDrv}" "--without-python"
-      ] ++ optional (target != null) "--target=${target.config}";
+      ]
+      ++ optional (target != null) "--target=${target.config}"
+      ++ optional multitarget "--enable-targets=all";
   };
 
   postInstall =
diff --git a/pkgs/development/tools/misc/global/default.nix b/pkgs/development/tools/misc/global/default.nix
index 63b29fccd527..3b9eccb2ae65 100644
--- a/pkgs/development/tools/misc/global/default.nix
+++ b/pkgs/development/tools/misc/global/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "global-6.5.1";
+  name = "global-6.5.2";
 
   src = fetchurl {
     url = "mirror://gnu/global/${name}.tar.gz";
-    sha256 = "1y34nbazsw2p6r2jhv27z15qvm9mhy5xjchpz8pwps00shkm578f";
+    sha256 = "07qx3dbjwkbd1dn42qs7zgj77rxdj2psfrf7bx7yx9al38f87z60";
   };
 
   nativeBuildInputs = [ libtool makeWrapper ];
diff --git a/pkgs/development/tools/misc/gnum4/default.nix b/pkgs/development/tools/misc/gnum4/default.nix
index 7174f4b41c3c..7216e1e169d0 100644
--- a/pkgs/development/tools/misc/gnum4/default.nix
+++ b/pkgs/development/tools/misc/gnum4/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
 
   doCheck = !stdenv.isDarwin
     && !stdenv.isCygwin                    # XXX: `test-dup2' fails on Cygwin
-    && !stdenv.isSunOS;                    # XXX: `test-setlocale2.sh' fails
+    && !stdenv.isSunOS                     # XXX: `test-setlocale2.sh' fails
+    && !stdenv.isFreeBSD;                  # XXX: test 084 fails
 
   configureFlags = "--with-syscmd-shell=${stdenv.shell}";
 
diff --git a/pkgs/development/tools/misc/iozone/default.nix b/pkgs/development/tools/misc/iozone/default.nix
new file mode 100644
index 000000000000..ad3a64d22ba5
--- /dev/null
+++ b/pkgs/development/tools/misc/iozone/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl }:
+
+let
+  target = if stdenv.system == "i686-linux" then
+    "linux"
+  else if stdenv.system == "x86_64-linux" then
+    "linux-AMD64"
+  else if stdenv.system == "x86_64-darwin" then
+    "macosx"
+  else abort "Platform ${stdenv.system} not yet supported.";
+in
+
+stdenv.mkDerivation rec {
+  name = "iozone-3.434";
+
+  src = fetchurl {
+    url = http://www.iozone.org/src/current/iozone3_434.tar;
+    sha256 = "0aj63mlb91aivz3z71zn8nbwci1pi18qk8zc65dm19cknffqsf1c";
+  };
+
+  license = fetchurl {
+    url = http://www.iozone.org/docs/Iozone_License.txt;
+    sha256 = "1309sl1rqm8p9gll3z8zfygr2pmbcvzw5byf5ba8y12avk735zrv";
+  };
+
+  preBuild = "pushd src/current";
+  postBuild = "popd";
+
+  buildFlags = target;
+
+  installPhase = ''
+    mkdir -p $out/{bin,share/doc,share/man/man1}
+    install docs/iozone.1 $out/share/man/man1/
+    install docs/Iozone_ps.gz $out/share/doc/
+    install -s src/current/{iozone,fileop,pit_server} $out/bin/
+    # License copy is mandated by the license, but it's not in the tarball.
+    install ${license} $out/share/doc/Iozone_License.txt
+  '';
+
+  meta = {
+    description = "IOzone Filesystem Benchmark";
+    homepage    = http://www.iozone.org/;
+    license     = stdenv.lib.licenses.unfreeRedistributable;
+    platforms   = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
+    maintainers = [ stdenv.lib.maintainers.Baughn ];
+  };
+}
diff --git a/pkgs/development/tools/misc/kibana/default.nix b/pkgs/development/tools/misc/kibana/default.nix
index 699ddd16c237..ce138014408f 100644
--- a/pkgs/development/tools/misc/kibana/default.nix
+++ b/pkgs/development/tools/misc/kibana/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "kibana-${version}";
-  version = "4.1.2";
+  version = "4.4.1";
 
   src = fetchurl {
     url = "http://download.elastic.co/kibana/kibana-snapshot/${name}-snapshot-linux-x86.tar.gz";
-    sha256 = "00ag4wnlw6h2j6zcz0irz6j1s51fr9ix2g1smrhrdw44z5gb6wrh";
+    sha256 = "0kxvrhrkcvx7pcn7myvabhcm4nj8gi86ij4a1xi392lfds2v350z";
   };
 
   buildInputs = [ makeWrapper ];
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     rm -r $out/libexec/kibana/node
     makeWrapper $out/libexec/kibana/bin/kibana $out/bin/kibana \
       --prefix PATH : "${nodejs}/bin:${coreutils}/bin:${which}/bin"
+    sed -i 's@NODE=.*@NODE=${nodejs}/bin/node@' $out/libexec/kibana/bin/kibana
   '';
 
   meta = {
diff --git a/pkgs/development/tools/misc/luarocks/default.nix b/pkgs/development/tools/misc/luarocks/default.nix
index 2296bc3a9890..017b5fdc08d1 100644
--- a/pkgs/development/tools/misc/luarocks/default.nix
+++ b/pkgs/development/tools/misc/luarocks/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="luarocks";
-    version="2.2.2";
+    version="2.3.0";
     name="${baseName}-${version}";
-    hash="08phl5syc7q6bh0rs9558s74g8xq05hgn7gbia4hvwvkd1q2f12g";
-    url="http://luarocks.org/releases/luarocks-2.2.2.tar.gz";
-    sha256="08phl5syc7q6bh0rs9558s74g8xq05hgn7gbia4hvwvkd1q2f12g";
+    hash="15zdchj3wkjdbypj68kwqswxhkhrfnw72nlks6df4lk0nvp8zqv8";
+    url="http://luarocks.org/releases/luarocks-2.3.0-rc2.tar.gz";
+    sha256="15zdchj3wkjdbypj68kwqswxhkhrfnw72nlks6df4lk0nvp8zqv8";
   };
   buildInputs = [
     lua curl makeWrapper which
diff --git a/pkgs/development/tools/misc/msitools/default.nix b/pkgs/development/tools/misc/msitools/default.nix
new file mode 100644
index 000000000000..bdc7f4f04148
--- /dev/null
+++ b/pkgs/development/tools/misc/msitools/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, intltool, glib, pkgconfig, libgsf, libuuid, gcab, bzip2}:
+
+stdenv.mkDerivation rec {
+  version = "0.94";
+  name = "msitools-${version}";
+
+  src = fetchurl {
+    url = "http://ftp.gnome.org/pub/GNOME/sources/msitools/0.94/${name}.tar.xz";
+    sha256 = "0bndnm3mgcqkw5dhwy5l1zri4lqvjbhbn5rxz651fkxlkhab8bhm";
+  };
+
+  buildInputs = [intltool glib pkgconfig libgsf libuuid gcab bzip2];
+
+  meta = with stdenv.lib; {
+    description = "Set of programs to inspect and build Windows Installer (.MSI) files";
+    homepage = https://wiki.gnome.org/msitools;
+    license = [licenses.gpl2 licenses.lgpl21];
+    maintainer = [maintainers.vcunat];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/misc/nixbang/default.nix b/pkgs/development/tools/misc/nixbang/default.nix
index a97dc3a249a0..ade9954021a1 100644
--- a/pkgs/development/tools/misc/nixbang/default.nix
+++ b/pkgs/development/tools/misc/nixbang/default.nix
@@ -1,7 +1,7 @@
 { lib, pythonPackages, fetchFromGitHub }:
 
 let version = "0.1.2"; in
-pythonPackages.buildPythonPackage {
+pythonPackages.buildPythonApplication {
   name = "nixbang-${version}";
   namePrefix = "";
 
diff --git a/pkgs/development/tools/misc/patchelf/setup-hook.sh b/pkgs/development/tools/misc/patchelf/setup-hook.sh
index a76fbfbd509c..563ef57fce11 100644
--- a/pkgs/development/tools/misc/patchelf/setup-hook.sh
+++ b/pkgs/development/tools/misc/patchelf/setup-hook.sh
@@ -5,12 +5,16 @@
 fixupOutputHooks+=('if [ -z "$dontPatchELF" ]; then patchELF "$prefix"; fi')
 
 patchELF() {
-    header "patching ELF executables and libraries in $prefix"
-    if [ -e "$prefix" ]; then
-        find "$prefix" \( \
-            \( -type f -a -name "*.so*" \) -o \
-            \( -type f -a -perm -0100 \) \
-            \) -print -exec patchelf --shrink-rpath '{}' \;
-    fi
+    local dir="$1"
+    header "shrinking RPATHs of ELF executables and libraries in $dir"
+
+    local i
+    while IFS= read -r -d $'\0' i; do
+        if [[ "$i" =~ .build-id ]]; then continue; fi
+        if ! isELF "$i"; then continue; fi
+        echo "shrinking $i"
+        patchelf --shrink-rpath "$i" || true
+    done < <(find "$dir" -type f -print0)
+
     stopNest
 }
diff --git a/pkgs/development/tools/misc/pkgconfig/default.nix b/pkgs/development/tools/misc/pkgconfig/default.nix
index c82a626336f6..d7246d22ca73 100644
--- a/pkgs/development/tools/misc/pkgconfig/default.nix
+++ b/pkgs/development/tools/misc/pkgconfig/default.nix
@@ -2,11 +2,14 @@
 
 stdenv.mkDerivation (rec {
   name = "pkg-config-0.29";
-  
+
   setupHook = ./setup-hook.sh;
-  
+
   src = fetchurl {
-    url = "http://pkgconfig.freedesktop.org/releases/${name}.tar.gz";
+    urls = [
+      "https://pkgconfig.freedesktop.org/releases/${name}.tar.gz"
+      "http://fossies.org/linux/misc/${name}.tar.gz"
+    ];
     sha256 = "0sq09a39wj4cxf8l2jvkq067g08ywfma4v6nhprnf351s82pfl68";
   };
 
diff --git a/pkgs/development/tools/misc/premake/3.nix b/pkgs/development/tools/misc/premake/3.nix
index 94a2880e1348..59ce43bf891d 100644
--- a/pkgs/development/tools/misc/premake/3.nix
+++ b/pkgs/development/tools/misc/premake/3.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   name = "${baseName}-${version}";
 
   src = fetchurl {
-    url = "http://downloads.sourceforge.net/sourceforge/premake/${baseName}-src-${version}.zip";
+    url = "mirror://sourceforge/sourceforge/premake/${baseName}-src-${version}.zip";
     sha256 = "b59841a519e75d5b6566848a2c5be2f91455bf0cc6ae4d688fcbd4c40db934d5";
   };
 
diff --git a/pkgs/development/tools/misc/rolespec/default.nix b/pkgs/development/tools/misc/rolespec/default.nix
new file mode 100644
index 000000000000..ccfe19496c15
--- /dev/null
+++ b/pkgs/development/tools/misc/rolespec/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, makeWrapper }:
+
+stdenv.mkDerivation rec {
+
+  name = "rolespec-${meta.version}";
+
+  src = fetchFromGitHub {
+    owner = "nickjj";
+    repo = "rolespec";
+    rev = "64a2092773b77f7a888522ceddd815e97b129321";
+    sha256 = "1867acxy18a3cgi84iwsp37sxglaljn1dq50amahp5zkmd8x8vnz";
+    inherit name;
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  # The default build phase (`make`) runs the test code. It's difficult to do
+  # the test in the build environment because it depends on the system package
+  # managers (apt/yum/pacman). We simply skip this phase since RoleSpec is
+  # shell based.
+  dontBuild = true;
+
+  # Wrap the program because `ROLESPEC_LIB` defaults to
+  # `/usr/local/lib/rolespec`.
+  installPhase = ''
+    make install PREFIX=$out
+    wrapProgram $out/bin/rolespec --set ROLESPEC_LIB $out/lib/rolespec
+  '';
+
+  # Since RoleSpec installs the shell script files in `lib` directory, the
+  # fixup phase shows some warnings. Disable these actions.
+  dontPatchELF = true;
+  dontStrip = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/nickjj/rolespec";
+    description = "A test library for testing Ansible roles";
+    longDescription = ''
+      A shell based test library for Ansible that works both locally and over
+      Travis-CI.
+    '';
+    downloadPage = "https://github.com/nickjj/rolespec";
+    license = licenses.gpl3;
+    version = "20160105";
+    maintainers = [ maintainers.dochang ];
+  };
+
+}
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 461e3c25a36a..0232342bf843 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, libunwind }:
 
 stdenv.mkDerivation rec {
-  name = "strace-4.10";
+  name = "strace-4.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/strace/${name}.tar.xz";
-    sha256 = "1qhfwijxvblwdvvm70f8bhzs4fpbzqmwwbkfp636brzrds30s676";
+    sha256 = "0ll1rpjs441jac2689nga74qb49x1zkg8a2b7rzzchgrv1n5ysp8";
   };
 
   nativeBuildInputs = [ perl ];
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
     description = "A system call tracer for Linux";
     license = licenses.bsd3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ mornfall jgeerds ];
+    maintainers = with maintainers; [ mornfall jgeerds globin ];
   };
 }
diff --git a/pkgs/development/tools/misc/tet/default.nix b/pkgs/development/tools/misc/tet/default.nix
new file mode 100644
index 000000000000..77b362c712c2
--- /dev/null
+++ b/pkgs/development/tools/misc/tet/default.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation (rec {
+  version = "3.8";
+  name = "tet-${version}";
+
+  src = fetchurl {
+    url = http://tetworks.opengroup.org/downloads/38/software/Sources/3.8/tet3.8-src.tar.gz ;
+    sha256 = "1j57hv56df38w249l595b8rsgmsyvjkbysai03a9724gax5jl9av" ;
+  };
+
+  buildInputs = [ ];
+
+  patchPhase = ''chmod +x configure'';
+
+  configurePhase = ''./configure -t lite'';
+
+  buildPhase = ''cd src; make; cd -'';
+
+  installPhase = ''cd src; make install; cd -; cp -vr $PWD $out'';
+
+  meta = {
+    description = "The Test Environment Toolkit is used in test applications like The Open Group's UNIX Certification program and the Free Standards Group's LSB Certification program";
+    homepage = http://tetworks.opengroup.org/Products/tet.htm ;
+    license = stdenv.lib.licenses.artistic1;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ ];
+  };
+})
diff --git a/pkgs/development/tools/misc/texinfo/5.2.nix b/pkgs/development/tools/misc/texinfo/5.2.nix
index c43ebcd2de28..99582e0f8a3d 100644
--- a/pkgs/development/tools/misc/texinfo/5.2.nix
+++ b/pkgs/development/tools/misc/texinfo/5.2.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, ncurses, perl, xz, interactive ? false }:
+{ stdenv, fetchurl, ncurses, perl, xz, procps, interactive ? false }:
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "texinfo-5.2";
@@ -9,7 +11,8 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ perl xz ]
-    ++ stdenv.lib.optional interactive ncurses;
+    ++ optional interactive ncurses
+    ++ optional doCheck procps; # for tests
 
   preInstall = ''
     installFlags="TEXMF=$out/texmf-dist";
@@ -21,8 +24,8 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.gnu.org/software/texinfo/";
     description = "The GNU documentation system";
-    license = stdenv.lib.licenses.gpl3Plus;
-    platforms = stdenv.lib.platforms.all;
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
 
     longDescription = ''
       Texinfo is the official documentation format of the GNU project.
diff --git a/pkgs/development/tools/misc/texinfo/6.0.nix b/pkgs/development/tools/misc/texinfo/6.0.nix
index 670c7182150e..507ca22cd1ae 100644
--- a/pkgs/development/tools/misc/texinfo/6.0.nix
+++ b/pkgs/development/tools/misc/texinfo/6.0.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, ncurses, perl, xz, libiconv, gawk, interactive ? false }:
+{ stdenv, fetchurl, ncurses, perl, xz, libiconv, gawk, procps, interactive ? false }:
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "texinfo-6.0";
@@ -9,17 +11,19 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ perl xz ]
-    ++ stdenv.lib.optionals stdenv.isSunOS [ libiconv gawk ]
-    ++ stdenv.lib.optional interactive ncurses;
+    ++ optionals stdenv.isSunOS [ libiconv gawk ]
+    ++ optional interactive ncurses
+    ++ optional doCheck procps; # for tests
 
-  configureFlags = stdenv.lib.optionalString stdenv.isSunOS "AWK=${gawk}/bin/awk";
+  configureFlags = stdenv.lib.optional stdenv.isSunOS "AWK=${gawk}/bin/awk";
 
   preInstall = ''
     installFlags="TEXMF=$out/texmf-dist";
     installTargets="install install-tex";
   '';
 
-  doCheck = !stdenv.isDarwin && !interactive && !stdenv.isSunOS/*flaky*/;
+  doCheck = interactive # simplify bootstrapping
+    && !stdenv.isDarwin && !stdenv.isSunOS/*flaky*/;
 
   meta = with stdenv.lib; {
     homepage = "http://www.gnu.org/software/texinfo/";
diff --git a/pkgs/development/tools/misc/ycmd/default.nix b/pkgs/development/tools/misc/ycmd/default.nix
new file mode 100644
index 000000000000..44bf2ac855c9
--- /dev/null
+++ b/pkgs/development/tools/misc/ycmd/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchgit, cmake, python, llvmPackages, boost, pythonPackages, buildPythonApplication, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  name = "ycmd-2016-01-12";
+
+  src = fetchgit {
+    url = "git://github.com/Valloric/ycmd.git";
+    rev = "f982f6251c5ff85e3abe6e862aad8bcd19e85ece";
+    sha256 = "1qp3ip6ab34610rfy0x85xsjg7blfkiy025vskwk9zw6gqglf3b3";
+  };
+
+  buildInputs = [ python cmake llvmPackages.clang boost makeWrapper ];
+
+  propagatedBuildInputs = with pythonPackages; [ waitress frozendict bottle ];
+
+  buildPhase = ''
+    python build.py --clang-completer --system-libclang --system-boost
+  '';
+
+  configurePhase = ":";
+
+  installPhase = with pythonPackages; ''
+    mkdir -p $out/lib/ycmd/third_party $out/bin
+    cp -r ycmd/ CORE_VERSION libclang.so.* ycm_client_support.so ycm_core.so $out/lib/ycmd/
+    wrapProgram $out/lib/ycmd/ycmd/__main__.py \
+      --prefix PYTHONPATH : "$(toPythonPath ${waitress}):$(toPythonPath ${frozendict}):$(toPythonPath ${bottle})"
+    ln -s $out/lib/ycmd/ycmd/__main__.py $out/bin/ycmd
+  '';
+
+  meta = {
+    description = "A code-completion and comprehension server";
+    homepage = "https://github.com/Valloric/ycmd";
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/misc/yodl/default.nix b/pkgs/development/tools/misc/yodl/default.nix
index 529e18417c79..aa76d991966b 100644
--- a/pkgs/development/tools/misc/yodl/default.nix
+++ b/pkgs/development/tools/misc/yodl/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, perl, icmake, utillinux }:
 
-let version = "3.05.01"; in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "yodl-${version}";
+  version = "3.06.00";
 
   buildInputs = [ perl icmake ];
 
   src = fetchFromGitHub {
-    sha256 = "02vbayvnz5p0055456i8kc8qxywkhn7agfrx1kwxaalbsnrd4g9h";
+    sha256 = "03n03bxc5lh3v9yzdikqrzzdvrna8zf98mlg2dhnn5z5sb5jhyzc";
     rev = version;
     repo = "yodl";
     owner = "fbb-git";
diff --git a/pkgs/development/tools/nimble/default.nix b/pkgs/development/tools/nimble/default.nix
new file mode 100644
index 000000000000..10a19d9e0963
--- /dev/null
+++ b/pkgs/development/tools/nimble/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, nim }:
+
+let
+  srcs = {
+    nimble = fetchFromGitHub {
+      owner = "nim-lang";
+      repo = "nimble";
+      rev = "v0.7.2";
+      sha256 = "0j9b519cv91xwn6k0alynakh7grbq4m6yy5bdwdrqmc7lag35r0i";
+    };
+    nim = fetchFromGitHub {
+      owner = "nim-lang";
+      repo = "nim";
+      rev = "v0.13.0";
+      sha256 = "14grhkwdva4wmvihm1413ly86sf0qk96bd473pvsbgkp46cg8rii";
+    };
+  };
+in
+stdenv.mkDerivation rec {
+  name = "nimble-${version}";
+  version = "0.7.2";
+
+  src = srcs.nimble;
+
+  buildInputs = [ nim ];
+
+  postUnpack = ''
+    mkdir -p $sourceRoot/vendor
+    ln -s ${srcs.nim} $sourceRoot/vendor/nim
+  '';
+  buildPhase   = ''
+    nim c src/nimble
+  '';
+  installPhase = "installBin src/nimble";
+
+  meta = with stdenv.lib; {
+    description = "Package manager for the Nim programming language";
+    homepage = https://github.com/nim-lang/nimble;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ kamilchm ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/ocaml/findlib/default.nix b/pkgs/development/tools/ocaml/findlib/default.nix
index a9673be26ee3..746be6dd0812 100644
--- a/pkgs/development/tools/ocaml/findlib/default.nix
+++ b/pkgs/development/tools/ocaml/findlib/default.nix
@@ -4,12 +4,13 @@ let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
 in
 
-stdenv.mkDerivation {
-  name = "ocaml-findlib-1.5.3";
+stdenv.mkDerivation rec {
+  name = "ocaml-findlib-${version}";
+  version = "1.6.1";
 
   src = fetchurl {
-    url = http://download.camlcity.org/download/findlib-1.5.3.tar.gz;
-    sha256 = "1kw2siv4pc8q060m9xpgxvjs07ic1kiphyxmkwcz6nyb91p8286r";
+    url = "http://download.camlcity.org/download/findlib-${version}.tar.gz";
+    sha256 = "02abg1lsnwvjg3igdyb8qjgr5kv1nbwl4gaf8mdinzfii5p82721";
   };
 
   buildInputs = [m4 ncurses ocaml];
@@ -57,3 +58,5 @@ stdenv.mkDerivation {
     ];
   };
 }
+
+
diff --git a/pkgs/development/tools/ocaml/findlib/install_topfind.patch b/pkgs/development/tools/ocaml/findlib/install_topfind.patch
index f152feaaecfb..7c9f8e1a6cce 100644
--- a/pkgs/development/tools/ocaml/findlib/install_topfind.patch
+++ b/pkgs/development/tools/ocaml/findlib/install_topfind.patch
@@ -1,11 +1,12 @@
---- findlib-1.5.3/src/findlib/Makefile	2014-09-16 13:21:46.000000000 +0200
-+++ findlib-1.5.3/src/findlib/Makefile.new	2014-10-01 14:30:54.141082521 +0200
-@@ -89,7 +89,7 @@
+--- a/src/findlib/Makefile
++++ b/src/findlib/Makefile
+@@ -114,7 +114,7 @@ clean:
  install: all
  	mkdir -p "$(prefix)$(OCAML_SITELIB)/$(NAME)"
  	mkdir -p "$(prefix)$(OCAMLFIND_BIN)"
 -	test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_CORE_STDLIB)"
 +	test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_SITELIB)"
- 	files=`$(TOP)/tools/collect_files $(TOP)/Makefile.config findlib.cmi findlib.mli findlib.cma topfind.cmi topfind.mli fl_package_base.mli fl_package_base.cmi fl_metascanner.mli fl_metascanner.cmi fl_metatoken.cmi findlib_top.cma findlib.cmxa findlib.a findlib.cmxs META` && \
+ 	files=`$(TOP)/tools/collect_files $(TOP)/Makefile.config findlib.cmi findlib.mli findlib.cma topfind.cmi topfind.mli fl_package_base.mli fl_package_base.cmi fl_metascanner.mli fl_metascanner.cmi fl_metatoken.cmi findlib_top.cma findlib.cmxa findlib.a findlib.cmxs findlib_dynload.cma findlib_dynload.cmxa findlib_dynload.a findlib_dynload.cmxs fl_dynload.mli fl_dynload.cmi META` && \
  	cp $$files "$(prefix)$(OCAML_SITELIB)/$(NAME)"
  	f="ocamlfind$(EXEC_SUFFIX)"; { test -f ocamlfind_opt$(EXEC_SUFFIX) && f="ocamlfind_opt$(EXEC_SUFFIX)"; }; \
+
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff b/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff
index 0e3f55df6d20..e6fc96038ff8 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff
@@ -8,14 +8,3 @@
  
  ####
  
---- old/Makefile	2014-09-30 16:40:37.000000000 +0200
-+++ new/Makefile	2015-10-14 10:28:41.366815864 +0200
-@@ -52,7 +52,7 @@
- install-bin:
- 	install -d -m 755 $(BINDIR)
- 	install $(BIN) $(BINDIR)
--	install $(TOOLS) $(BINDIR)
-+	install $(TOOLS) $(BINDIR) || true
- 
- uninstall: uninstall-lib uninstall-bin
- 
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
index eaabd50059d3..ca5230d1e086 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
@@ -1,18 +1,24 @@
 {stdenv, fetchurl, ocaml, findlib, ocaml_lwt, menhir, ocsigen_deriving, camlp4,
- cmdliner, tyxml, reactivedata}:
+ cmdliner, tyxml, reactivedata, cppo, which, base64}:
 
+let camlp4_patch = fetchurl {
+    url = "https://github.com/FlorentBecker/js_of_ocaml/commit/3b511c5bb777d5049c49d7a04c01f142de7096b9.patch";
+    sha256 = "c92eda8be504cd41eb242166fc815af496243b63d4d21b169f5b62ec5ace2d39";
+    };
+in
+ 
 stdenv.mkDerivation {
-  name = "js_of_ocaml-2.5";
+  name = "js_of_ocaml-2.6";
   src = fetchurl {
-    url = https://github.com/ocsigen/js_of_ocaml/archive/2.5.tar.gz;
-    sha256 = "1prm08nf8szmd3p13ysb0yx1cy6lr671bnwsp25iny8hfbs39sjv";
+    url = https://github.com/ocsigen/js_of_ocaml/archive/2.6.tar.gz;
+    sha256 = "0q34lrn70dvz41m78bwgriyq6dxk97g8gcyg80nvxii4jp86dw61";
     };
-  
+
   buildInputs = [ocaml findlib menhir ocsigen_deriving
-                 cmdliner tyxml reactivedata];
+                 cmdliner tyxml reactivedata cppo which base64];
   propagatedBuildInputs = [ ocaml_lwt camlp4 ];
 
-  patches = [ ./Makefile.conf.diff ];  
+  patches = [ ./Makefile.conf.diff camlp4_patch ];
 
   createFindlibDestdir = true;
 
diff --git a/pkgs/development/tools/ocaml/ocaml-top/default.nix b/pkgs/development/tools/ocaml/ocaml-top/default.nix
index cf0a16cef68d..79c81c5c447c 100644
--- a/pkgs/development/tools/ocaml/ocaml-top/default.nix
+++ b/pkgs/development/tools/ocaml/ocaml-top/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation {
     license = stdenv.lib.licenses.gpl3;
     description = "A simple cross-platform OCaml code editor built for top-level evaluation";
     platforms = ocamlPackages.ocaml.meta.platforms;
-    maintainer = with stdenv.lib.maintainers; [ vbgl ];
+    maintainers = with stdenv.lib.maintainers; [ vbgl ];
   };
 }
diff --git a/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix b/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
index 986bd4609d5c..40188734a996 100644
--- a/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
+++ b/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "${webpage}/downloads/${pname}-${version}.tar.gz";
+    url = "http://pkgs.fedoraproject.org/repo/pkgs/ocaml-omake/${pname}-${version}.tar.gz/fe39a476ef4e33b7ba2ca77a6bcaded2/${pname}-${version}.tar.gz";
     sha256 = "1sas02pbj56m7wi5vf3vqrrpr4ynxymw2a8ybvfj2dkjf7q9ii13";
   };
   patchFlags = "-p0";
diff --git a/pkgs/development/tools/ocaml/omake/default.nix b/pkgs/development/tools/ocaml/omake/default.nix
index 300cbbc0a0c1..8be574a8a4c6 100644
--- a/pkgs/development/tools/ocaml/omake/default.nix
+++ b/pkgs/development/tools/ocaml/omake/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "${webpage}/downloads/${pname}-${version}.tar.gz";
+    url = "mirror://debian/pool/main/o/omake/omake_${version}.orig.tar.gz";
     sha256 = "1bfxbsimfivq0ar2g5fkzvr5ql97n5dg562pfyd29y4zyh4mwrsv";
   };
   patchFlags = "-p0";
diff --git a/pkgs/development/tools/omniorb/default.nix b/pkgs/development/tools/omniorb/default.nix
index 180e714b81e0..0fe4b191e503 100644
--- a/pkgs/development/tools/omniorb/default.nix
+++ b/pkgs/development/tools/omniorb/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ python ];
 
   meta = with stdenv.lib; {
-    description = "omniORB is a robust high performance CORBA ORB for C++ and Python. It is freely available under the terms of the GNU Lesser General Public License (for the libraries), and GNU General Public License (for the tools). omniORB is largely CORBA 2.6 compliant.";
+    description = "omniORB is a robust high performance CORBA ORB for C++ and Python. It is freely available under the terms of the GNU Lesser General Public License (for the libraries), and GNU General Public License (for the tools). omniORB is largely CORBA 2.6 compliant";
     homepage    = "http://omniorb.sourceforge.net/";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ smironov ];
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index 651e64467c49..716b489d3d77 100644
--- a/pkgs/development/tools/packer/default.nix
+++ b/pkgs/development/tools/packer/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, go, gox, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "packer-0.7.5";
+  name = "packer-0.8.6";
 
   src = import ./deps.nix {
     inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
diff --git a/pkgs/development/tools/packer/deps.nix b/pkgs/development/tools/packer/deps.nix
index e2272574f81e..5f8e69679c18 100644
--- a/pkgs/development/tools/packer/deps.nix
+++ b/pkgs/development/tools/packer/deps.nix
@@ -4,79 +4,30 @@
 let
   goDeps = [
     {
-      root = "code.google.com/p/go.crypto";
-      src = fetchhg {
-        url = "https://code.google.com/p/go.crypto";
-        rev = "235";
-        sha256 = "0b3nlkhmraj84n9mhg5nqcd3815ipyj1xx1yzkajcdf2pz2ym4l6";
-      };
-    }
-    {
-      root = "code.google.com/p/goauth2";
-      src = fetchhg {
-        url = "https://code.google.com/p/goauth2";
-        rev = "80";
-        sha256 = "0xgkgcb97hv2rvzvh21rvydq5cc83j7sdsdb1chrymq8k7l4dzc1";
-      };
-    }
-    {
-      root = "code.google.com/p/google-api-go-client";
-      src = fetchhg {
-        url = "https://code.google.com/p/google-api-go-client";
-        rev = "135";
-        sha256 = "17a0mlq76cmgv84xh5vjzi72r6rjq0abl6gv3zkbmj3cphl9cis9";
-      };
-    }
-    {
-      root = "code.google.com/p/goprotobuf";
-      src = fetchhg {
-        url = "https://code.google.com/p/goprotobuf";
-        rev = "267";
-        sha256 = "0kamslfmxs6hi9ww52izmsq48ldaf67xawwhzwwdsbslhv0b9lf7";
-      };
-    }
-    {
-      root = "code.google.com/p/gosshold";
-      src = fetchhg {
-        url = "https://code.google.com/p/gosshold";
-        rev = "2";
-        sha256 = "1ljl8pcxxfz5rv89b2ajd31gxxzifl57kzpksvdhyjdxh98gkvg8";
-      };
-    }
-    {
-      root = "github.com/ActiveState/tail";
-      src = fetchFromGitHub {
-        owner = "ActiveState";
-        repo = "tail";
-        rev = "068b72961a6bc5b4a82cf4fc14ccc724c0cfa73a";
-        sha256 = "08zwlrsyr75cqdar51cihhp1qfm6wnn03i9srdkyzllw4zfymcd2";
-      };
-    }
-    {
-      root = "github.com/bmizerany/assert";
+      root = "github.com/mitchellh/packer";
       src = fetchFromGitHub {
-        owner = "bmizerany";
-        repo = "assert";
-        rev = "e17e99893cb6509f428e1728281c2ad60a6b31e3";
-        sha256 = "1lfrvqqmb09y6pcr76yjv4r84cshkd4s7fpmiy7268kfi2cvqnpc";
+        owner = "mitchellh";
+        repo = "packer";
+        rev = "f8f7b7a34c1be06058f5aca23a51247db12cdbc5";
+        sha256 = "162ja4klyb3nv44rhdg2gd3xrr4n0l0gi49cn1mr1s2h9yznphyp";
       };
     }
     {
-      root = "github.com/going/toolkit";
+      root = "github.com/mitchellh/gox";
       src = fetchFromGitHub {
-        owner = "going";
-        repo = "toolkit";
-        rev = "6185c1893604d52d36a97dd6bb1247ace93a9b80";
-        sha256 = "1kzy5yppalcidsmv5yxmr6lpqplqj07kdqpn77fdp6fbb0y0sg11";
+        owner = "mitchellh";
+        repo = "gox";
+        rev = "ef1967b9f538fe467e6a82fc42ec5dff966ad4ea";
+        sha256 = "0i9s8fp6m2igx93ffv3rf5v5hz7cwrx7pbxrz4cg94hba3sy3nfj";
       };
     }
     {
-      root = "github.com/golang/protobuf";
+      root = "github.com/mitchellh/iochan";
       src = fetchFromGitHub {
-        owner = "golang";
-        repo = "protobuf";
-        rev = "a11b6342f0e28eab4059c0cabbad38cef38b9b6e";
-        sha256 = "1bjig0bwgw1r56r8paskm880lw36nh4c6n64v4ww6mszwmk7dkn7";
+        owner = "mitchellh";
+        repo = "iochan";
+        rev = "87b45ffd0e9581375c491fef3d32130bb15c5bd7";
+        sha256 = "1435kdcx3j1xgr6mm5c7w7hjx015jb20yfqlkp93q143hspf02fx";
       };
     }
     {
@@ -84,8 +35,8 @@ let
       src = fetchFromGitHub {
         owner = "hashicorp";
         repo = "atlas-go";
-        rev = "137646809ce33b755be51e5e82b40775217ff74d";
-        sha256 = "06ilw0bwd3ijfcpkg84j3q9gwgllzwg0g6gab3w08cn1p49jicjg";
+        rev = "d1d08e8e25f0659388ede7bb8157aaa4895f5347";
+        sha256 = "0bbqh94i8qllp51ln1mmcjy5srny7s4xg0l353kccvk3c7s68m03";
       };
     }
     {
@@ -93,8 +44,8 @@ let
       src = fetchFromGitHub {
         owner = "hashicorp";
         repo = "go-checkpoint";
-        rev = "efefdc69845f7fa7245d20827d31fb27b848d955";
-        sha256 = "1vpi414bw3rsyg5rx52hpvjhnk2qazmsvl3f13g79zwwkvbj2vvq";
+        rev = "88326f6851319068e7b34981032128c0b1a6524d";
+        sha256 = "1npasn9lmvx57nw3wkswwvl5k0wmn01jpalbwv832x5wq4r0nsz4";
       };
     }
     {
@@ -102,8 +53,17 @@ let
       src = fetchFromGitHub {
         owner = "hashicorp";
         repo = "go-msgpack";
-        rev = "71c2886f5a673a35f909803f38ece5810165097b";
-        sha256 = "157f24xnkhclrjwwa1b7lmpj112ynlbf7g1cfw0c657iqny5720j";
+        rev = "fa3f63826f7c23912c15263591e65d54d080b458";
+        sha256 = "1f6rd6bm2dm2rk46x8cqrxh5nks1gpk6dvvsag7s5pdjgdxy951k";
+      };
+    }
+    {
+      root = "github.com/hashicorp/go-multierror";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "go-multierror";
+        rev = "56912fb08d85084aa318edcf2bba735b97cf35c5";
+        sha256 = "0s01cqdab2f7fxkkjjk2wqx05a1shnwlvfn45h2pi3i4gapvcn0r";
       };
     }
     {
@@ -111,8 +71,8 @@ let
       src = fetchFromGitHub {
         owner = "hashicorp";
         repo = "go-version";
-        rev = "bb92dddfa9792e738a631f04ada52858a139bcf7";
-        sha256 = "0fl5a6j6nk1xsxwjdpa24a24fxvgnvm3jjlgpyrnmbdn380zil3m";
+        rev = "999359b6b7a041ce16e695d51e92145b83f01087";
+        sha256 = "0z2bzphrdkaxh5vnvjh3g25d6cykchshwwbyqgji91mpgjd30pbm";
       };
     }
     {
@@ -120,71 +80,71 @@ let
       src = fetchFromGitHub {
         owner = "hashicorp";
         repo = "yamux";
-        rev = "9feabe6854fadca1abec9cd3bd2a613fe9a34000";
-        sha256 = "03lgbhwhiqk6rivc5cl6zxph5n2pdbdz95h0x7m0ngp3yk3aqgan";
+        rev = "ae139c4ae7fe21e9d99459d2acc57967cebb6918";
+        sha256 = "1p5h2wklj8lb1vnjnd5kw7cshfmiw7jmzw9radln955hzd5xzbnl";
       };
     }
     {
-      root = "github.com/howeyc/fsnotify";
+      root = "github.com/mitchellh/cli";
       src = fetchFromGitHub {
-        owner = "howeyc";
-        repo = "fsnotify";
-        rev = "4894fe7efedeeef21891033e1cce3b23b9af7ad2";
-        sha256 = "09r3h200nbw8a4d3rn9wxxmgma2a8i6ssaplf3zbdc2ykizsq7mn";
+        owner = "mitchellh";
+        repo = "cli";
+        rev = "8102d0ed5ea2709ade1243798785888175f6e415";
+        sha256 = "08mj1l94pww72jy34gk9a483hpic0rrackskfw13r3ycy997w7m2";
       };
     }
     {
-      root = "github.com/kr/pretty";
+      root = "github.com/mitchellh/mapstructure";
       src = fetchFromGitHub {
-        owner = "kr";
-        repo = "pretty";
-        rev = "cb0850c1681cbca3233e84f7e6ec3e4c3f352085";
-        sha256 = "0j3jd7qlfv6iw7icn66y1fpdn88ri29n9qv9di92mkc6vjw4ifb1";
+        owner = "mitchellh";
+        repo = "mapstructure";
+        rev = "281073eb9eb092240d33ef253c404f1cca550309";
+        sha256 = "1zjx9fv29639sp1fn84rxs830z7gp7bs38yd5y1hl5adb8s5x1mh";
       };
     }
     {
-      root = "github.com/kr/pty";
+      root = "github.com/mitchellh/osext";
       src = fetchFromGitHub {
-        owner = "kr";
-        repo = "pty";
-        rev = "05017fcccf23c823bfdea560dcc958a136e54fb7";
-        sha256 = "0f7xa8lkazif2jzacryryrg8rqz5lfl3j7hqvnis4qa8cjy5dpqb";
+        owner = "mitchellh";
+        repo = "osext";
+        rev = "0dd3f918b21bec95ace9dc86c7e70266cfc5c702";
+        sha256 = "02pczqml6p1mnfdrygm3rs02g0r65qx8v1bi3x24dx8wv9dr5y23";
       };
     }
     {
-      root = "github.com/kr/text";
+      root = "github.com/mitchellh/panicwrap";
       src = fetchFromGitHub {
-        owner = "kr";
-        repo = "text";
-        rev = "6807e777504f54ad073ecef66747de158294b639";
-        sha256 = "1wkszsg08zar3wgspl9sc8bdsngiwdqmg3ws4y0bh02sjx5a4698";
+        owner = "mitchellh";
+        repo = "panicwrap";
+        rev = "45cbfd3bae250c7676c077fb275be1a2968e066a";
+        sha256 = "0mbha0nz6zcgp2pny2x03chq1igf9ylpz55xxq8z8g2jl6cxaghn";
       };
     }
     {
-      root = "github.com/mitchellh/cli";
+      root = "github.com/mitchellh/prefixedio";
       src = fetchFromGitHub {
         owner = "mitchellh";
-        repo = "cli";
-        rev = "e3c2e3d39391e9beb9660ccd6b4bd9a2f38dd8a0";
-        sha256 = "1fwf7wmlhri19bl2yyjd4zlgndgwwqrdry45clpszzjsr8b5wfgm";
+        repo = "prefixedio";
+        rev = "89d9b535996bf0a185f85b59578f2e245f9e1724";
+        sha256 = "0lc64rlizb412msd32am2fixkh0536pjv7czvgyw5fskn9kgk3y2";
       };
     }
     {
-      root = "github.com/mitchellh/go-fs";
+      root = "github.com/mitchellh/reflectwalk";
       src = fetchFromGitHub {
         owner = "mitchellh";
-        repo = "go-fs";
-        rev = "faaa223588dd7005e49bf66fa2d19e35c8c4d761";
-        sha256 = "19jsvy35g14f18ckymzxasy0zfd6n99zlqg6grpj1yqdfxfvqn9b";
+        repo = "reflectwalk";
+        rev = "eecf4c70c626c7cfbb95c90195bc34d386c74ac6";
+        sha256 = "1nm2ig7gwlmf04w7dbqd8d7p64z2030fnnfbgnd56nmd7dz8gpxq";
       };
     }
     {
-      root = "github.com/mitchellh/go-vnc";
+      root = "github.com/mitchellh/go-fs";
       src = fetchFromGitHub {
         owner = "mitchellh";
-        repo = "go-vnc";
-        rev = "fc93dd80f5da4ccde0a9d97f0c73e56e04e0cf72";
-        sha256 = "03rwsp1frvfx6c7yxr711lq7jdgsr1gcwg14jw26xvbzzxwjvnsf";
+        repo = "go-fs";
+        rev = "a34c1b9334e86165685a9449b782f20465eb8c69";
+        sha256 = "11sy85p77ffmavpiichzybrfvjm1ilsi4clx98n3363arksavs5i";
       };
     }
     {
@@ -192,8 +152,83 @@ let
       src = fetchFromGitHub {
         owner = "mitchellh";
         repo = "goamz";
-        rev = "6932a73f35dfdd5489a95284552c0ae868be0944";
-        sha256 = "03hbakfxvxkj1r0xy2c4b8xpb7bw6nbryyxpwlii6qv7gsx478yw";
+        rev = "caaaea8b30ee15616494ee68abd5d8ebbbef05cf";
+        sha256 = "0bshq69ir9h2nszbr74yvcg5wnd9a5skfmr9bgk014k9wwk7dc72";
+      };
+    }
+    {
+      root = "github.com/mitchellh/multistep";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "multistep";
+        rev = "162146fc57112954184d90266f4733e900ed05a5";
+        sha256 = "0ydhbxziy9204qr43pjdh88y2jg34g2mhzdapjyfpf8a1rin6dn3";
+      };
+    }
+    {
+      root = "github.com/ActiveState/tail";
+      src = fetchFromGitHub {
+        owner = "ActiveState";
+        repo = "tail";
+        rev = "4b368d1590196ade29993d6a0896591403180bbd";
+        sha256 = "183y44skn75lkpsjd3zlbx8vc3b930p3nkpc1ybq3k50s4bzhsll";
+      };
+    }
+    {
+      root = "google.golang.org/api";
+      src = fetchgit {
+        url = "https://github.com/google/google-api-go-client.git";
+        rev = "a5c3e2a4792aff40e59840d9ecdff0542a202a80";
+        sha256 = "1kigddnbyrl9ddpj5rs8njvf1ck54ipi4q1282k0d6b3am5qfbj8";
+      };
+    }
+    {
+      root = "golang.org/x/crypto";
+      src = fetchgit {
+        url = "https://go.googlesource.com/crypto.git";
+        rev = "81bf7719a6b7ce9b665598222362b50122dfc13b";
+        sha256 = "0rwzc2ls842d0g588b5xik59srwzawch3nb1dlcqwm4a1132mvmr";
+      };
+    }
+    {
+      root = "golang.org/x/oauth2";
+      src = fetchgit {
+        url = "https://go.googlesource.com/oauth2.git";
+        rev = "397fe7649477ff2e8ced8fc0b2696f781e53745a";
+        sha256 = "0fza0l7iwh6llkq2yzqn7dxi138vab0da64lnghfj1p71fprjzn8";
+      };
+    }
+    {
+      root = "golang.org/x/net";
+      src = fetchgit {
+        url = "https://go.googlesource.com/net.git";
+        rev = "7654728e381988afd88e58cabfd6363a5ea91810";
+        sha256 = "08i6kkzbckbc5k15bdlqkbird48zmc24qr505hlxlb11djjgdiml";
+      };
+    }
+    {
+      root = "google.golang.org/appengine";
+      src = fetchgit {
+        url = "https://github.com/golang/appengine.git";
+        rev = "cdd515334b113fdc9b35cb1e7a3b457eeb5ad5cf";
+        sha256 = "0l0rddpfbddbi8kizg2n25w7bdhf99f0iz7ghwz7fq6k4rmq44ws";
+      };
+    }
+    {
+      root = "google.golang.org/cloud";
+      src = fetchgit {
+        url = "https://github.com/GoogleCloudPlatform/gcloud-golang.git";
+        rev = "e34a32f9b0ecbc0784865fb2d47f3818c09521d4";
+        sha256 = "1rzac44kzhd7r6abdy5qyj69y64wy9r73vnxsdalfr5m0i55fqk4";
+      };
+    }
+    {
+      root = "github.com/golang/protobuf";
+      src = fetchFromGitHub {
+        owner = "golang";
+        repo = "protobuf";
+        rev = "59b73b37c1e45995477aae817e4a653c89a858db";
+        sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa";
       };
     }
     {
@@ -206,227 +241,254 @@ let
       };
     }
     {
-      root = "github.com/mitchellh/iochan";
+      root = "github.com/racker/perigee";
       src = fetchFromGitHub {
-        owner = "mitchellh";
-        repo = "iochan";
-        rev = "b584a329b193e206025682ae6c10cdbe03b0cd77";
-        sha256 = "1fcwdhfci41ibpng2j4c1bqfng578cwzb3c00yw1lnbwwhaq9r6b";
+        owner = "racker";
+        repo = "perigee";
+        rev = "44a7879d89b7040bcdb51164a83292ef5bf9deec";
+        sha256 = "04wscffagpbcfjs6br96n46aqy43cq6ndq16nlpvank0m98jaax0";
       };
     }
     {
-      root = "github.com/mitchellh/mapstructure";
+      root = "github.com/going/toolkit";
       src = fetchFromGitHub {
-        owner = "mitchellh";
-        repo = "mapstructure";
-        rev = "442e588f213303bec7936deba67901f8fc8f18b1";
-        sha256 = "076svhy5jlnw4jykm3dsrx2dswifajrpr7d09mz9y6g3lg901rqd";
+        owner = "going";
+        repo = "toolkit";
+        rev = "5bff591dc40da25dcc875d3fa1a3373d74d45411";
+        sha256 = "15gnlqignm7xcp2chrz7d7qqlibkbfrrsvbcysk8lrj9l7md8vjf";
       };
     }
     {
-      root = "github.com/mitchellh/multistep";
+      root = "github.com/mitchellh/go-vnc";
       src = fetchFromGitHub {
         owner = "mitchellh";
-        repo = "multistep";
-        rev = "162146fc57112954184d90266f4733e900ed05a5";
-        sha256 = "0ydhbxziy9204qr43pjdh88y2jg34g2mhzdapjyfpf8a1rin6dn3";
+        repo = "go-vnc";
+        rev = "723ed9867aed0f3209a81151e52ddc61681f0b01";
+        sha256 = "0nlya2rbmwb3jycqsyah1pn4386712mfrfiprprkbzcna9q7lp1h";
       };
     }
     {
-      root = "github.com/mitchellh/osext";
+      root = "github.com/howeyc/fsnotify";
       src = fetchFromGitHub {
-        owner = "mitchellh";
-        repo = "osext";
-        rev = "0dd3f918b21bec95ace9dc86c7e70266cfc5c702";
-        sha256 = "02pczqml6p1mnfdrygm3rs02g0r65qx8v1bi3x24dx8wv9dr5y23";
+        owner = "howeyc";
+        repo = "fsnotify";
+        rev = "4894fe7efedeeef21891033e1cce3b23b9af7ad2";
+        sha256 = "09r3h200nbw8a4d3rn9wxxmgma2a8i6ssaplf3zbdc2ykizsq7mn";
       };
     }
     {
-      root = "github.com/mitchellh/packer";
+      root = "gopkg.in/tomb.v1";
+      src = fetchgit {
+        url = "https://gopkg.in/tomb.v1.git";
+        rev = "dd632973f1e7218eb1089048e0798ec9ae7dceb8";
+        sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
+      };
+    }
+    {
+      root = "github.com/vaughan0/go-ini";
       src = fetchFromGitHub {
-        owner = "mitchellh";
-        repo = "packer";
-        rev = "e3c2f01cb8d8f759c02bd3cfc9d27cc1a941d498";
-        sha256 = "0sp2qjdsf0cqmw11a3vfs9alyz76vf415vv71bwdarfagz466inw";
+        owner = "vaughan0";
+        repo = "go-ini";
+        rev = "a98ad7ee00ec53921f08832bc06ecf7fd600e6a1";
+        sha256 = "1l1isi3czis009d9k5awsj4xdxgbxn4n9yqjc1ac7f724x6jacfa";
       };
     }
     {
-      root = "github.com/mitchellh/panicwrap";
+      root = "github.com/aws/aws-sdk-go";
       src = fetchFromGitHub {
-        owner = "mitchellh";
-        repo = "panicwrap";
-        rev = "45cbfd3bae250c7676c077fb275be1a2968e066a";
-        sha256 = "0mbha0nz6zcgp2pny2x03chq1igf9ylpz55xxq8z8g2jl6cxaghn";
+        owner = "aws";
+        repo = "aws-sdk-go";
+        rev = "f096b7d61df3d7d6d97f0e701f92616d1ea5420d";
+        sha256 = "0z2fknqxdyb5vw4am46cn60m15p9fjsqzpzaj2pamp436l0cpjkw";
       };
     }
     {
-      root = "github.com/mitchellh/prefixedio";
+      root = "github.com/digitalocean/godo";
       src = fetchFromGitHub {
-        owner = "mitchellh";
-        repo = "prefixedio";
-        rev = "89d9b535996bf0a185f85b59578f2e245f9e1724";
-        sha256 = "0lc64rlizb412msd32am2fixkh0536pjv7czvgyw5fskn9kgk3y2";
+        owner = "digitalocean";
+        repo = "godo";
+        rev = "2a0d64a42bb60a95677748a4d5729af6184330b4";
+        sha256 = "0854577b08fw9bjflk044ph16p15agxhh6xbzn71rhfvxg5yg5mi";
       };
     }
     {
-      root = "github.com/motain/gocheck";
+      root = "github.com/dylanmei/winrmtest";
       src = fetchFromGitHub {
-        owner = "motain";
-        repo = "gocheck";
-        rev = "9beb271d26e640863a5bf4a3c5ea40ccdd466b84";
-        sha256 = "07arpwfdb51b5f7kzqnm5s5ndfmxv5j793hpn30nbdcya46diwjd";
+        owner = "dylanmei";
+        repo = "winrmtest";
+        rev = "025617847eb2cf9bd1d851bc3b22ed28e6245ce5";
+        sha256 = "1i0wq6r1vm3nhnia3ycm5l590gyia7cwh6971ppnn4rrdmvsw2qh";
       };
     }
     {
-      root = "github.com/racker/perigee";
+      root = "github.com/klauspost/pgzip";
       src = fetchFromGitHub {
-        owner = "racker";
-        repo = "perigee";
-        rev = "44a7879d89b7040bcdb51164a83292ef5bf9deec";
-        sha256 = "04wscffagpbcfjs6br96n46aqy43cq6ndq16nlpvank0m98jaax0";
+        owner = "klauspost";
+        repo = "pgzip";
+        rev = "47f36e165cecae5382ecf1ec28ebf7d4679e307d";
+        sha256 = "1bfka02xrhp4fg9pz2v4ppxa46b59bwy5n88c7hbbxqxm8z30yca";
       };
     }
     {
-      root = "github.com/rackspace/gophercloud";
+      root = "github.com/masterzen/winrm";
       src = fetchFromGitHub {
-        owner = "rackspace";
-        repo = "gophercloud";
-        rev = "d7f07fc0a7ff4b608c6f9e34197930093c7c7ee1";
-        sha256 = "1cyfvynwl5z6f9s0lmj92mhsriy7nl7kq5f8jay67wmdn0nhyybs";
+        owner = "masterzen";
+        repo = "winrm";
+        rev = "54ea5d01478cfc2afccec1504bd0dfcd8c260cfa";
+        sha256 = "0qzdmsjgcf5n0jzjf4gd22lhqwn9yagynk1izjz3978gr025p2zm";
       };
     }
     {
-      root = "github.com/rasa/oauth2-fork-b3f9a68";
+      root = "github.com/google/go-querystring";
       src = fetchFromGitHub {
-        owner = "rasa";
-        repo = "oauth2-fork-b3f9a68";
-        rev = "94a7bc9691e0841393b875eaad68fbfd069b2a18";
-        sha256 = "101bv0zwbchdql86x8c4qhvmlahkfcw4bnqw7v8hihqxd5zf9fxp";
+        owner = "google";
+        repo = "go-querystring";
+        rev = "2a60fc2ba6c19de80291203597d752e9ba58e4c0";
+        sha256 = "0raf6r3dd8rxxppzrbhp1y6k5csgfkfs7b0jylj65sbg0hbzxvbr";
       };
     }
     {
-      root = "github.com/ugorji/go";
+      root = "github.com/go-ini/ini";
       src = fetchFromGitHub {
-        owner = "ugorji";
-        repo = "go";
-        rev = "39815c8993d27d88435f3d267be35a6d26e43f03";
-        sha256 = "1g5nbcs3900chwv0jz1a9x0s3scxjhksi1268w112mq2k1rinq3j";
+        owner = "go-ini";
+        repo = "ini";
+        rev = "afbd495e5aaea13597b5e14fe514ddeaa4d76fc3";
+        sha256 = "0xi8zr9qw38sdbv95c2ip31yczbm4axdvmj3ljyivn9xh2nbxfia";
       };
     }
     {
-      root = "github.com/ugorji/go-msgpack";
+      root = "github.com/klauspost/compress";
       src = fetchFromGitHub {
-        owner = "ugorji";
-        repo = "go-msgpack";
-        rev = "75092644046c5e38257395b86ed26c702dc95b92";
-        sha256 = "1bmqi16bfiqw7qhb3d5hbh0dfzhx2bbq1g15nh2pxwxckwh80x98";
+        owner = "klauspost";
+        repo = "compress";
+        rev = "112706bf3743c241303219f9c5ce2e6635f69221";
+        sha256 = "1gyf5hf8wivbx6s99x2rxq2a335b49av2xb43nikgbzm4qn7win7";
       };
     }
     {
-      root = "github.com/vaughan0/go-ini";
+      root = "github.com/masterzen/simplexml";
       src = fetchFromGitHub {
-        owner = "vaughan0";
-        repo = "go-ini";
-        rev = "a98ad7ee00ec53921f08832bc06ecf7fd600e6a1";
-        sha256 = "1l1isi3czis009d9k5awsj4xdxgbxn4n9yqjc1ac7f724x6jacfa";
+        owner = "masterzen";
+        repo = "simplexml";
+        rev = "95ba30457eb1121fa27753627c774c7cd4e90083";
+        sha256 = "0pwsis1f5n4is0nmn6dnggymj32mldhbvihv8ikn3nglgxclz4kz";
       };
     }
     {
-      root = "github.com/vmihailenco/msgpack";
+      root = "github.com/masterzen/xmlpath";
       src = fetchFromGitHub {
-        owner = "vmihailenco";
-        repo = "msgpack";
-        rev = "1efcd9943dd320d41d8a00189e568d794f1b4e78";
-        sha256 = "0brbrss7hja2d06cca633ggn5jawqwb8p0prp5cg1m26w9f3hzis";
+        owner = "masterzen";
+        repo = "xmlpath";
+        rev = "13f4951698adc0fa9c1dda3e275d489a24201161";
+        sha256 = "1y81h7ymk3dp3w3a2iy6qd1dkm323rkxa27dzxw8vwy888j5z8bk";
       };
     }
     {
-      root = "github.com/xiocode/toolkit";
+      root = "github.com/jmespath/go-jmespath";
       src = fetchFromGitHub {
-        owner = "xiocode";
-        repo = "toolkit";
-        rev = "352fd7c6700074a81056cdfc9e82b3e8c5681ac5";
-        sha256 = "0p33zh57xpxyk2wyp9xahdxyrkq48ysihpr0n9kj713q0dh7x4a3";
+        owner = "jmespath";
+        repo = "go-jmespath";
+        rev = "c01cf91b011868172fdcd9f41838e80c9d716264";
+        sha256 = "0gfrqwl648qngp77g8m1g9g7difggq2cac4ydjw9bpx4bd7mw1rw";
       };
     }
     {
-      root = "golang.org/x/crypto";
-      src = fetchgit {
-        url = "https://go.googlesource.com/crypto";
-        rev = "bfc286917c5fcb7420d7e3092b50bbfd31b38a98";
-        sha256 = "04ryvpbd2z4q4wqaffmj4wc541y744rfjg6arhwf4qn64r171am0";
+      root = "github.com/klauspost/cpuid";
+      src = fetchFromGitHub {
+        owner = "klauspost";
+        repo = "cpuid";
+        rev = "349c675778172472f5e8f3a3e0fe187e302e5a10";
+        sha256 = "1s8baj42k66ny77qkm3n06kwayk4srwf4b9ss42612f3h86ka5i2";
       };
     }
     {
-      root = "golang.org/x/net";
-      src = fetchgit {
-        url = "https://go.googlesource.com/net";
-        rev = "2033b3a5e8688bdd590c647ca70a12384ddc6824";
-        sha256 = "06zla6nja6af735b2rskb5l2pjggw99v05fl4n306dcnvwj3gvg6";
+      root = "github.com/nu7hatch/gouuid";
+      src = fetchFromGitHub {
+        owner = "nu7hatch";
+        repo = "gouuid";
+        rev = "179d4d0c4d8d407a32af483c2354df1d2c91e6c3";
+        sha256 = "1isyfix5w1wm26y3a15ha3nnpsxqaxz5ngq06hnh6c6y0inl2fwj";
       };
     }
     {
-      root = "golang.org/x/text";
-      src = fetchgit {
-        url = "https://go.googlesource.com/text";
-        rev = "bfad311ce93436dc888b40d76c78f99dc3104473";
-        sha256 = "1mbhp5q24drz2l2x6ib3180i42f9015ry80bn7jhr7rwizvyp6lh";
+      root = "github.com/klauspost/crc32";
+      src = fetchFromGitHub {
+        owner = "klauspost";
+        repo = "crc32";
+        rev = "999f3125931f6557b991b2f8472172bdfa578d38";
+        sha256 = "00ws3hrszxdnyj0cjk9b8b44xc8x5hizm0h22x6m3bb4c5b487wv";
       };
     }
     {
-      root = "google.golang.org/appengine";
-      src = fetchgit {
-        url = "https://github.com/golang/appengine.git";
-        rev = "d1e7e222a24d1e085466ed8b44aedd572f5a51c4";
-        sha256 = "045dmq0m56m1n16fygdghmkaqh7xb2g80xrm7lkcbkf3763w8gfw";
+      root = "github.com/pierrec/lz4";
+      src = fetchFromGitHub {
+        owner = "pierrec";
+        repo = "lz4";
+        rev = "383c0d87b5dd7c090d3cddefe6ff0c2ffbb88470";
+        sha256 = "0l23bmzqfvgh61zlikj6iakg0kz7lybs8zf0nscylskl2hlr09rp";
       };
     }
     {
-      root = "gopkg.in/check.v1";
-      src = fetchgit {
-        url = "https://gopkg.in/check.v1";
-        rev = "64131543e7896d5bcc6bd5a76287eb75ea96c673";
-        sha256 = "0ybxgxkkmfhgd4pmjf7hgpp7d7zxsskc7kv9dklqbaf6aszsqbxl";
+      root = "github.com/packer-community/winrmcp";
+      src = fetchFromGitHub {
+        owner = "packer-community";
+        repo = "winrmcp";
+        rev = "3d184cea22ee1c41ec1697e0d830ff0c78f7ea97";
+        sha256 = "0g2rwwhykm1z099gwkg1nmb1ggnizqlm2pbmy3qsdvjnl5246ca4";
       };
     }
     {
-      root = "gopkg.in/tomb.v1";
-      src = fetchgit {
-        url = "https://gopkg.in/tomb.v1";
-        rev = "dd632973f1e7218eb1089048e0798ec9ae7dceb8";
-        sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
+      root = "github.com/dylanmei/iso8601";
+      src = fetchFromGitHub {
+        owner = "dylanmei";
+        repo = "iso8601";
+        rev = "2075bf119b58e5576c6ed9f867b8f3d17f2e54d4";
+        sha256 = "0px5aq4w96yyjii586h3049xm7rvw5r8w7ph3axhyismrqddqgx1";
       };
     }
     {
-      root = "gopkg.in/vmihailenco/msgpack.v2";
-      src = fetchgit {
-        url = "https://gopkg.in/vmihailenco/msgpack.v2";
-        rev = "1efcd9943dd320d41d8a00189e568d794f1b4e78";
-        sha256 = "0brbrss7hja2d06cca633ggn5jawqwb8p0prp5cg1m26w9f3hzis";
+      root = "github.com/pierrec/xxHash";
+      src = fetchFromGitHub {
+        owner = "pierrec";
+        repo = "xxHash";
+        rev = "5a004441f897722c627870a981d02b29924215fa";
+        sha256 = "146ibrgvgh61jhbbv9wks0mabkci3s0m68sg6shmlv1yixkw6gja";
+      };
+    }
+    {
+      root = "github.com/satori/go.uuid";
+      src = fetchFromGitHub {
+        owner = "satori";
+        repo = "go.uuid";
+        rev = "d41af8bb6a7704f00bc3b7cba9355ae6a5a80048";
+        sha256 = "0lw8k39s7hab737rn4nngpbsganrniiv7px6g41l6f6vci1skyn2";
       };
     }
     {
-      root = "labix.org/v2/mgo";
-      src = fetchbzr {
-        url = "https://launchpad.net/mgo/v2";
-        rev = "287";
-        sha256 = "0602x0liyp3w2v8cj1nyq73576vbxlxx1z1a8nn173pajxx9pm2z";
+      root = "github.com/rackspace/gophercloud";
+      src = fetchFromGitHub {
+        owner = "rackspace";
+        repo = "gophercloud";
+        rev = "680aa02616313d8399abc91f17a444cf9292f0e1";
+        sha256 = "0pxzvhh6l1gfn31k6g8fz3x4b6mz88cx2rgpims0ys5cl212zrp1";
       };
     }
     {
-      root = "launchpad.net/gocheck";
-      src = fetchbzr {
-        url = "https://launchpad.net/gocheck";
-        rev = "87";
-        sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0";
+      root = "gopkg.in/fsnotify.v0";
+      src = fetchFromGitHub {
+        owner = "go-fsnotify";
+        repo = "fsnotify";
+        rev = "ea925a0a47d225b2ca7f9932b01d2ed4f3ec74f6";
+        sha256 = "15wqjpkfzsxnaxbz6y4r91hw6812g3sc4ipagxw1bya9klbnkdc9";
       };
     }
     {
-      root = "launchpad.net/mgo";
-      src = fetchbzr {
-        url = "https://launchpad.net/mgo";
-        rev = "2";
-        sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x";
+      root = "github.com/tent/http-link-go";
+      src = fetchFromGitHub {
+        owner = "tent";
+        repo = "http-link-go";
+        rev = "ac974c61c2f990f4115b119354b5e0b47550e888";
+        sha256 = "1fph21b6vp4cm73fkkykffggi57m656x9fd1k369fr6jbvq5fffj";
       };
     }
   ];
diff --git a/pkgs/development/tools/parsing/flexc++/default.nix b/pkgs/development/tools/parsing/flexc++/default.nix
index 3cfd86f477e6..e1426b3a1d4a 100644
--- a/pkgs/development/tools/parsing/flexc++/default.nix
+++ b/pkgs/development/tools/parsing/flexc++/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, bobcat, icmake, yodl }:
 
-let version = "2.03.00"; in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "flexc++-${version}";
+  version = "2.03.00";
 
   src = fetchFromGitHub {
     sha256 = "1knb5h6l71n5zi9xzml5f6v7wspbk7vrcaiy2div8bnj7na3z717";
@@ -11,20 +11,6 @@ stdenv.mkDerivation {
     owner = "fbb-git";
   };
 
-  meta = with stdenv.lib; {
-    inherit version;
-    description = "C++ tool for generating lexical scanners";
-    longDescription = ''
-      Flexc++ was designed after `flex'. Flexc++ offers a cleaner class design
-      and requires simpler specification files than offered by flex's C++
-      option.
-    '';
-    homepage = https://fbb-git.github.io/flexcpp/;
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ nckx ];
-  };
-
   sourceRoot = "flexcpp-${version}-src/flexc++";
 
   buildInputs = [ bobcat ];
@@ -48,4 +34,17 @@ stdenv.mkDerivation {
     ./build install skel
     ./build install std
   '';
+
+  meta = with stdenv.lib; {
+    description = "C++ tool for generating lexical scanners";
+    longDescription = ''
+      Flexc++ was designed after `flex'. Flexc++ offers a cleaner class design
+      and requires simpler specification files than offered by flex's C++
+      option.
+    '';
+    homepage = https://fbb-git.github.io/flexcpp/;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nckx ];
+  };
 }
diff --git a/pkgs/development/tools/parsing/lemon/default.nix b/pkgs/development/tools/parsing/lemon/default.nix
index 23d4ea911dbe..46aaa8305129 100644
--- a/pkgs/development/tools/parsing/lemon/default.nix
+++ b/pkgs/development/tools/parsing/lemon/default.nix
@@ -2,8 +2,6 @@
 
 let
 
-  version = "1.0";
-
   srcs = {
     lemon = fetchurl {
       sha256 = "1grm95m2cnc61zim332g7z8nchmcy91ljf50k13lm421v0ygyyv6";
@@ -17,8 +15,9 @@ let
     };
   };
 
-in stdenv.mkDerivation {
+in stdenv.mkDerivation rec {
   name = "lemon-${version}";
+  version = "1.0";
 
   phases = [ "buildPhase" "installPhase" ];
 
@@ -32,7 +31,6 @@ in stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    inherit version;
     description = "An LALR(1) parser generator";
     longDescription = ''
       The Lemon program is an LALR(1) parser generator that takes a
diff --git a/pkgs/development/tools/parsing/ragel/default.nix b/pkgs/development/tools/parsing/ragel/default.nix
index e55a2015a705..594ec7de53a2 100644
--- a/pkgs/development/tools/parsing/ragel/default.nix
+++ b/pkgs/development/tools/parsing/ragel/default.nix
@@ -1,21 +1,24 @@
-{stdenv, fetchurl, transfig, texLiveAggregationFun, texLive, texLiveExtra, ghostscript
-, build-manual ? false
+{stdenv, fetchurl, transfig, tex , ghostscript, colm,  build-manual ? false
 }:
 
 stdenv.mkDerivation rec {
   name = "ragel-${version}";
-  version = "6.9";
+  version = "7.0.0.6";
 
   src = fetchurl {
     url = "http://www.colm.net/files/ragel/${name}.tar.gz";
-    sha256 = "02k6rwh8cr95f1p5sjjr3wa6dilg06572xz1v71dk8awmc7vw1vf";
+    sha256 = "1ns3kbcvhinn4rwm54ajg49d1la8filxskl3rgbwws0irzw507vs";
   };
 
-  buildInputs = stdenv.lib.optional build-manual [ transfig ghostscript (texLiveAggregationFun { paths=[ texLive texLiveExtra ]; }) ];
+  buildInputs = stdenv.lib.optional build-manual [ transfig ghostscript tex ];
    
   preConfigure = stdenv.lib.optional build-manual ''
     sed -i "s/build_manual=no/build_manual=yes/g" DIST
   '';
+
+  configureFlags = [ "--with-colm=${colm}" ];
+
+  doCheck = true;
   
   meta = with stdenv.lib; {
     homepage = http://www.complang.org/ragel;
diff --git a/pkgs/development/tools/phantomjs2/default.nix b/pkgs/development/tools/phantomjs2/default.nix
index 8ef68f93a2f7..a0f919b404f3 100644
--- a/pkgs/development/tools/phantomjs2/default.nix
+++ b/pkgs/development/tools/phantomjs2/default.nix
@@ -1,8 +1,37 @@
 { stdenv, fetchurl,
-  bison2, flex, fontconfig, freetype, gperf, icu, openssl, libjpeg, libpng, perl, python, ruby, sqlite
+  bison2, flex, fontconfig, freetype, gperf, icu, openssl, libjpeg, libpng, perl, python, ruby, sqlite,
+  darwin, writeScriptBin, cups
 }:
 
-stdenv.mkDerivation rec {
+let
+  fakeXcrun = writeScriptBin "xcrun" ''
+    #!${stdenv.shell}
+    echo >&2 "Fake xcrun: ''$@"
+    args=()
+    while (("$#")); do
+      case "$1" in
+        -sdk*) shift;;
+        -find*) shift;;
+        *) args+=("$1");;
+      esac
+      shift
+    done
+
+    if [ "''${#args[@]}" -gt "0" ]; then
+      echo >&2 "Fake xcrun: ''${args[@]}"
+      exec "''${args[@]}"
+    fi
+  '';
+  fakeClang = writeScriptBin "clang" ''
+    #!${stdenv.shell}
+    if [[ "$@" == *.c ]]; then
+      exec "${stdenv.cc}/bin/clang" "$@"
+    else
+      exec "${stdenv.cc}/bin/clang++" "$@"
+    fi
+  '';
+
+in stdenv.mkDerivation rec {
   name = "phantomjs-${version}";
   version = "2.0.0-20150528";
 
@@ -11,22 +40,61 @@ stdenv.mkDerivation rec {
     sha256 = "18h37bxxg25lacry9k3vb5yim057bqcxmsifw97jrjp7gzfx56v5";
   };
 
-  buildInputs = [ bison2 flex fontconfig freetype gperf icu openssl libjpeg libpng perl python ruby sqlite ];
+  buildInputs = [ bison2 flex fontconfig freetype gperf icu openssl libjpeg libpng perl python ruby sqlite ]
+    ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+      AGL ApplicationServices AppKit Cocoa OpenGL
+      darwin.libobjc fakeClang cups
+    ]);
+
 
   patchPhase = ''
     patchShebangs .
     sed -i -e 's|/bin/pwd|pwd|' src/qt/qtbase/configure 
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    sed -i 's,-licucore,/usr/lib/libicucore.dylib,' src/qt/qtwebkit/Source/WTF/WTF.pri
+    substituteInPlace src/qt/qtwebkit/Tools/qmake/mkspecs/features/features.pri \
+      --replace "ENABLE_3D_RENDERING=1" "ENABLE_3D_RENDERING=0"
+    sed -i 88d src/qt/qtwebkit/Tools/qmake/mkspecs/features/features.prf
+    echo 'CONFIG -= create_cmake' >> src/qt/qtwebkit/Source/api.pri
+    echo 'CONFIG -= create_cmake' >> src/qt/qtwebkit/Source/widgetsapi.pri
+    pushd src/qt
+
+      substituteInPlace qtbase/configure \
+        --replace /usr/bin/xcode-select true \
+        --replace '/usr/bin/xcodebuild -sdk $sdk -version Path 2>/dev/null' 'echo /var/empty' \
+        --replace '/usr/bin/xcrun -sdk $sdk -find' 'type -P'
+      substituteInPlace qtbase/mkspecs/features/mac/default_pre.prf \
+        --replace '/usr/bin/xcode-select --print-path 2>/dev/null' "echo ${stdenv.libc}" \
+        --replace '/usr/bin/xcrun -find xcrun 2>/dev/null' 'echo success' \
+        --replace '/usr/bin/xcodebuild -version' 'echo Xcode 7.2; echo Build version 7C68' \
+        --replace 'sdk rez' ""
+      for file in $(grep -rl /usr/bin/xcrun .); do
+        substituteInPlace "$file" --replace "/usr/bin/xcrun" ${fakeXcrun}/bin/xcrun
+      done
+      substituteInPlace qtbase/src/tools/qlalr/lalr.cpp --replace _Nullable Nullable
+
+    popd
   '';
 
+  __impureHostDeps = stdenv.lib.optional stdenv.isDarwin "/usr/lib/libicucore.dylib";
+
   buildPhase = "./build.sh --confirm";
 
   installPhase = ''
     mkdir -p $out/share/doc/phantomjs
     cp -a bin $out
     cp -a ChangeLog examples LICENSE.BSD README.md third-party.txt $out/share/doc/phantomjs
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change \
+        ${darwin.CF}/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation \
+        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation \
+      -change \
+        ${darwin.configd}/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration \
+        /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration \
+    $out/bin/phantomjs
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Headless WebKit with JavaScript API";
     longDescription = ''
       PhantomJS2 is a headless WebKit with JavaScript API.
@@ -41,9 +109,9 @@ stdenv.mkDerivation rec {
     '';
 
     homepage = http://phantomjs.org/;
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
 
-    maintainers = [ stdenv.lib.maintainers.aflatter ];
-    platforms = with stdenv.lib.platforms; darwin ++ linux;
+    maintainers = [ maintainers.aflatter ];
+    platforms = platforms.darwin ++ platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/profiling/gprof2dot/default.nix b/pkgs/development/tools/profiling/gprof2dot/default.nix
index 38315116eeb7..154c0da93d49 100644
--- a/pkgs/development/tools/profiling/gprof2dot/default.nix
+++ b/pkgs/development/tools/profiling/gprof2dot/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pythonPackages }:
 
-pythonPackages.buildPythonPackage {
+pythonPackages.buildPythonApplication {
   name = "gprof2dot-2015-04-27";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/tools/profiling/systemtap/default.nix b/pkgs/development/tools/profiling/systemtap/default.nix
deleted file mode 100644
index 66dda8f43efd..000000000000
--- a/pkgs/development/tools/profiling/systemtap/default.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-{ fetchurl, stdenv, elfutils, latex2html, xmlto, docbook_xml_dtd_412
-, libxml2, docbook_xsl, libxslt, texLive, texLiveExtra, ghostscript, pkgconfig
-, gtkmm, libglademm, boost, perl, sqlite }:
-
-stdenv.mkDerivation rec {
-  name = "systemtap-1.2";
-
-  src = fetchurl {
-    url = "http://sources.redhat.com/systemtap/ftp/releases/${name}.tar.gz";
-    sha256 = "0kxgjr8p1pnncc0l4941gzx0jsyyqjzjqar2qkcjzp266ajn9qz6";
-  };
-
-  patches =
-    stdenv.lib.optional (stdenv ? glibc) ./nixos-kernel-store-path.patch;
-
-  postPatch =
-    '' sed -i scripts/kernel-doc -e 's|/usr/bin/perl|${perl}/bin/perl|g'
-    '';
-
-  preConfigure =
-    # XXX: This should really be handled by TeXLive's setup-hook.
-    '' export TEXINPUTS="${latex2html}/texinputs:$TEXINPUTS"
-       export TEXINPUTS="${texLiveExtra}/texmf-dist/tex/latex/preprint:$TEXINPUTS"
-       echo "\$TEXINPUTS is \`$TEXINPUTS'"
-    '';
-
-  postConfigure =
-    /* Work around this:
-
-        StapParser.cxx:118:   instantiated from here
-        /...-boost-1.42.0/include/boost/algorithm/string/compare.hpp:43: error: comparison between signed and unsigned integer expressions
-
-     */
-    '' sed -i "grapher/Makefile" -e's/-Werror//g'
-    '';
-
-  buildInputs =
-    [ elfutils latex2html xmlto texLive texLiveExtra ghostscript
-      pkgconfig gtkmm libglademm boost sqlite
-      docbook_xml_dtd_412 libxml2
-      docbook_xsl libxslt
-    ];
-
-  meta = {
-    description = "SystemTap, tools to gather information about a running GNU/Linux system";
-
-    longDescription =
-      '' SystemTap provides free software (GPL) infrastructure to simplify
-         the gathering of information about the running GNU/Linux system.
-         This assists diagnosis of a performance or functional problem.
-         SystemTap eliminates the need for the developer to go through the
-         tedious and disruptive instrument, recompile, install, and reboot
-         sequence that may be otherwise required to collect data.
-
-         SystemTap provides a simple command line interface and scripting
-         language for writing instrumentation for a live running kernel.  We
-         are publishing samples, as well as enlarging the internal "tapset"
-         script library to aid reuse and abstraction.
-
-         Among other tracing/probing tools, SystemTap is the tool of choice
-         for complex tasks that may require live analysis, programmable
-         on-line response, and whole-system symbolic access.  SystemTap can
-         also handle simple tracing jobs.
-      '';
-
-    homepage = http://sourceware.org/systemtap/;
-
-    license = stdenv.lib.licenses.gpl2Plus;
-
-    maintainers = [ ];
-    platforms = stdenv.lib.platforms.linux;
-    broken = true;
-  };
-}
diff --git a/pkgs/development/tools/profiling/systemtap/nixos-kernel-store-path.patch b/pkgs/development/tools/profiling/systemtap/nixos-kernel-store-path.patch
deleted file mode 100644
index 5881ed84533f..000000000000
--- a/pkgs/development/tools/profiling/systemtap/nixos-kernel-store-path.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-This patch makes stap(1) know about the kernel store path on NixOS.
-
---- systemtap-1.2/main.cxx	2010-03-22 22:51:49.000000000 +0100
-+++ systemtap-1.2/main.cxx	2010-05-04 14:56:19.000000000 +0200
-@@ -528,6 +528,32 @@ getmemusage ()
-   return oss.str();
- }
- 
-+/* Read `/proc/cmdline' and extract the store path.  The assumption is that
-+   `/proc/cmdline' looks like this:
-+
-+   BOOT_IMAGE=/nix/store/sxjd69wfcr6w8jlbcc5bc20nwjliq872-linux-2.6.32.8/bzImage systemConfig=/nix/store/kiicqkjwgfvkwrg4fp3dnhwldh7dq7is-system init=/nix/store/czgncihjwx3n58xij6i1rlnz8wv6ym4j-stage-2-init.sh splash=verbose vga=0x317
-+
-+   This is the case on NixOS GNU/Linux.  */
-+static string
-+kernel_store_path (void)
-+{
-+  ifstream proc_cmdline ("/proc/cmdline");
-+  string variable_name, store_path;
-+
-+  getline (proc_cmdline, variable_name, '=');
-+  if (variable_name == "BOOT_IMAGE")
-+    {
-+      string boot_image_path;
-+      size_t slash_pos;
-+
-+      getline (proc_cmdline, boot_image_path, ' ');
-+      slash_pos = boot_image_path.find_last_of ('/');
-+      store_path = boot_image_path.substr (0, slash_pos);
-+    }
-+
-+  return store_path;
-+}
-+
- int
- main (int argc, char * const argv [])
- {
-@@ -541,7 +567,8 @@ main (int argc, char * const argv [])
-   struct utsname buf;
-   (void) uname (& buf);
-   s.kernel_release = string (buf.release);
--  s.kernel_build_tree = "/lib/modules/" + s.kernel_release + "/build";
-+  s.kernel_build_tree =
-+    kernel_store_path () + "/lib/modules/" + s.kernel_release + "/build";
- 
-   // PR4186: Copy logic from coreutils uname (uname -i) to squash
-   // i?86->i386.  Actually, copy logic from linux top-level Makefile
diff --git a/pkgs/development/tools/repository-managers/nexus/default.nix b/pkgs/development/tools/repository-managers/nexus/default.nix
new file mode 100644
index 000000000000..1b2f48b696c3
--- /dev/null
+++ b/pkgs/development/tools/repository-managers/nexus/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+stdenv.mkDerivation rec {
+  name = "nexus-${version}";
+  version = "2.12.0-01";
+
+  src = fetchurl {
+    url = "https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-${version}-bundle.tar.gz";
+    sha256 = "1k3z7kwcmr1pxaxfnak99fq5s8br9zbqbfpyw1afi86ykkph4g5z";
+  };
+
+  sourceRoot = name;
+
+  buildInputs = [ makeWrapper ];
+
+  installPhase = 
+    ''
+      mkdir -p $out
+      cp -rfv * $out
+      rm -fv $out/bin/nexus.bat
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Repository manager for binary software components";
+    homepage = http://www.sonatype.org/nexus;
+    license = licenses.epl10;
+    platforms = platforms.all;
+    maintainers = [ maintainers.aespinosa ];
+  };
+}
diff --git a/pkgs/development/tools/rust/racer/default.nix b/pkgs/development/tools/rust/racer/default.nix
index 463f57f5e75c..0f5caa40e738 100644
--- a/pkgs/development/tools/rust/racer/default.nix
+++ b/pkgs/development/tools/rust/racer/default.nix
@@ -4,15 +4,15 @@ with rustPlatform;
 
 buildRustPackage rec {
   name = "racer-${version}";
-  version = "1.0.0";
+  version = "1.1.0";
   src = fetchFromGitHub {
     owner = "phildawes";
     repo = "racer";
     rev = "v${version}";
-    sha256 = "1b6829nqx0sqw1akcid61izw8mah1dfx2nxldkmmg4scnydhvw1l";
+    sha256 = "1y6xzavxm5bnqcnnz0mbnf2491m2kksp36yx3kd5mxyly33482y7";
   };
 
-  depsSha256 = "1hfqr1kidl77lq3djbhfn37whvv6k0hg9g5gcnl6pgl6kn669hdc";
+  depsSha256 = "1r2fxirkc0y6g7aas65n3yg1f2lf3kypnjr2v20p5np2lvla6djj";
 
   buildInputs = [ makeWrapper ];
 
@@ -24,8 +24,6 @@ buildRustPackage rec {
     mkdir -p $out/bin
     cp -p target/release/racer $out/bin/
     wrapProgram $out/bin/racer --set RUST_SRC_PATH "${rustc.src}/src"
-    install -d $out/share/emacs/site-lisp
-    install "editors/emacs/"*.el $out/share/emacs/site-lisp
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/rust/rustfmt/default.nix b/pkgs/development/tools/rust/rustfmt/default.nix
index 49a87754e72e..28c88d6c15a2 100644
--- a/pkgs/development/tools/rust/rustfmt/default.nix
+++ b/pkgs/development/tools/rust/rustfmt/default.nix
@@ -3,15 +3,15 @@
 with rustPlatform;
 
 buildRustPackage rec {
-  name = "rustfmt-git-2015-12-08";
+  name = "rustfmt-git-2016-02-15";
   src = fetchFromGitHub {
-    owner = "nrc";
+    owner = "rust-lang-nursery";
     repo = "rustfmt";
-    rev = "e94bd34a06d878a41bb8be409f173a8824dda63f";
-    sha256 = "0f0ixbr5nfla0j0b91plmapw75yl3d3lxwvllj2wx4z94nfxanp6";
+    rev = "65bc5c242de86f0651b34fd913ca338a880696e8";
+    sha256 = "02rdim0y5zg1r2zkfy6kj53idlbdybf3ckardbjsvdna5idc1hpz";
   };
 
-  depsSha256 = "0vsrpw4icn9jf44sqr5749hbazsxp3hqn1g7gr90fvnfvz4s5f07";
+  depsSha256 = "1297vy5sgiq4xqdm27pa8f99qiwrl15hb2r1dydzgk7n4iqyir6c";
 
   meta = with stdenv.lib; {
     description = "A tool for formatting Rust code according to style guidelines";
diff --git a/pkgs/development/tools/sauce-connect/default.nix b/pkgs/development/tools/sauce-connect/default.nix
index 7f925da376b8..3818020d931f 100644
--- a/pkgs/development/tools/sauce-connect/default.nix
+++ b/pkgs/development/tools/sauce-connect/default.nix
@@ -1,21 +1,27 @@
-{ stdenv, lib, fetchurl, zlib }:
+{ stdenv, lib, fetchurl, zlib, unzip }:
 
 with lib;
 
 stdenv.mkDerivation rec {
   name = "sauce-connect-${version}";
-  version = "4.3.6";
+  version = "4.3.13";
 
   src = fetchurl (
     if stdenv.system == "x86_64-linux" then {
       url = "https://saucelabs.com/downloads/sc-${version}-linux.tar.gz";
-      sha1 = "0d7d2dc12766ac137e62a3e4dad3025b590f9782";
-    } else {
+      sha256 = "1flhsssb7wvfbwyvhc9k2di3nd7dlq832xp6dg658xbqk7mr9rvw";
+    } else if stdenv.system == "i686-linux" then {
       url = "https://saucelabs.com/downloads/sc-${version}-linux32.tar.gz";
-      sha1 = "ee2c3002eae3b29df801a2ac1db77bb5f1c97bcc";
+      sha256 = "1hy0riljgjf4sf4cg7kn0hd18w393bdwhp0ajyimzvscg05nx8fq";
+    } else {
+      url = "https://saucelabs.com/downloads/sc-${version}-osx.zip";
+      sha256 = "1fhclbc79rk6pmf5qzc2pkz1z3nsawr9pfi5bzqs8r1514ki4m4p";
     }
   );
 
+  buildInputs = [ unzip ];
+  phases = "unpackPhase installPhase " + (if stdenv.system == "x86_64-darwin" then "" else "patchPhase");
+
   patchPhase = ''
     patchelf \
       --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
@@ -35,6 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     homepage = https://docs.saucelabs.com/reference/sauce-connect/;
     maintainers = with maintainers; [offline];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/sunxi-tools/default.nix b/pkgs/development/tools/sunxi-tools/default.nix
new file mode 100644
index 000000000000..f27b9500319e
--- /dev/null
+++ b/pkgs/development/tools/sunxi-tools/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchgit, pkgconfig, libusb }:
+stdenv.mkDerivation {
+  name = "sunxi-tools-1.3";
+
+  src = fetchgit {
+    url = "https://github.com/linux-sunxi/sunxi-tools";
+    rev = "be1b4c7400161b90437432076360c1f99970f54f";
+    sha256 = "0qbl4v66a3mvqai29q2y60zf2b5lj32mh9gyn44gfp0w2bsb10yj";
+  };
+
+  buildInputs = [ pkgconfig libusb ];
+
+  buildPhase = ''
+    make all misc
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp bin2fex fex2bin phoenix_info sunxi-bootinfo sunxi-fel sunxi-fexc sunxi-nand-part sunxi-pio $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tools for Allwinner A10 devices";
+    homepage = http://linux-sunxi.org/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ elitak ];
+  };
+}
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index b3b2040559aa..c113dcbfb7b1 100644
--- a/pkgs/development/tools/vagrant/default.nix
+++ b/pkgs/development/tools/vagrant/default.nix
@@ -4,10 +4,11 @@
 assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux";
 
 let
-  version = "1.8.0";
+  version = "1.8.1";
   rake = buildRubyGem {
     inherit ruby;
-    name = "rake-10.4.2";
+    gemName = "rake";
+    version = "10.4.2";
     sha256 = "1rn03rqlf1iv6n87a78hkda2yqparhhaivfjpizblmxvlw2hk5r8";
   };
 
@@ -19,12 +20,12 @@ stdenv.mkDerivation rec {
     if stdenv.system == "x86_64-linux" then
       fetchurl {
         url    = "https://releases.hashicorp.com/vagrant/${version}/vagrant_${version}_x86_64.deb";
-        sha256 = "0hvi6db5lphgzsykm1wn76jj4wwmm6lshvvd0qz7ipyyyhnd7sjp";
+        sha256 = "0gb999ql4kfxd9473cx3xn6a11094dm4iyrx1dzd9v2sygh1l3pd";
       }
     else
       fetchurl {
         url    = "https://releases.hashicorp.com/vagrant/${version}/vagrant_${version}_i686.deb";
-        sha256 = "1jvscbxqbhavw4q81y5718qbyj74b9lwfw3gb4c1f4jmgm08wxxk";
+        sha256 = "1nzg6i9i270xgaih381q096lb23rwxkif4ba9j62y3zjmj6az4xf";
       };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/watchman/default.nix b/pkgs/development/tools/watchman/default.nix
index b2029391b745..9c09277deb78 100644
--- a/pkgs/development/tools/watchman/default.nix
+++ b/pkgs/development/tools/watchman/default.nix
@@ -5,13 +5,13 @@
 stdenv.mkDerivation rec {
   name = "watchman-${version}";
 
-  version = "4.1.0";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "watchman";
     rev = "v${version}";
-    sha256 = "01ak2gsmc76baswpivzz00g22r547mpp8l7xfziwl5804nzszrcg";
+    sha256 = "0hyj7nbsm5mv8zq2fldd06f92a3wamavha20311518qv7q5jj72v";
   };
 
   buildInputs = [ autoconf automake pcre ];
@@ -20,6 +20,9 @@ stdenv.mkDerivation rec {
       "--enable-lenient"
       "--enable-conffile=${if confFile == null then "no" else confFile}"
       "--with-pcre=yes"
+
+      # For security considerations re: --disable-statedir, see:
+      # https://github.com/facebook/watchman/issues/178
       "--disable-statedir"
   ];
 
diff --git a/pkgs/development/tools/winpdb/default.nix b/pkgs/development/tools/winpdb/default.nix
index fd6e0a991387..58a857c22148 100644
--- a/pkgs/development/tools/winpdb/default.nix
+++ b/pkgs/development/tools/winpdb/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, buildPythonPackage, wxPython, makeDesktopItem }:
+{ stdenv, fetchurl, buildPythonApplication, wxPython, makeDesktopItem }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "winpdb-1.4.8";
   namePrefix = "";