about 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/ammonite/default.nix4
-rw-r--r--pkgs/development/tools/analysis/cccc/default.nix2
-rw-r--r--pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix2
-rw-r--r--pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix2
-rw-r--r--pkgs/development/tools/analysis/hotspot/default.nix2
-rw-r--r--pkgs/development/tools/analysis/smatch/default.nix2
-rw-r--r--pkgs/development/tools/analysis/swarm/default.nix2
-rw-r--r--pkgs/development/tools/apktool/default.nix4
-rw-r--r--pkgs/development/tools/boomerang/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/doit/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.80/default.nix18
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.80/log.patch125
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/log.patch125
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.0/darwin-library_search-dylib.patch17
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.0/default.nix49
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.0/impure-dirs.patch34
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.1/default.nix45
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.1/impure-dirs.patch34
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.1/no-tty-name.patch53
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/jam/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/kati/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/rebar/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/rebar3/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/redo-sh/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/scons/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/shards/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/tup/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/v1.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/corundum/Gemfile3
-rw-r--r--pkgs/development/tools/corundum/Gemfile.lock56
-rw-r--r--pkgs/development/tools/corundum/default.nix15
-rw-r--r--pkgs/development/tools/corundum/gemset.nix154
-rw-r--r--pkgs/development/tools/cucumber/Gemfile2
-rw-r--r--pkgs/development/tools/cucumber/Gemfile.lock28
-rw-r--r--pkgs/development/tools/cucumber/default.nix19
-rw-r--r--pkgs/development/tools/cucumber/gemset.nix66
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix2
-rw-r--r--pkgs/development/tools/database/sqldeveloper/default.nix2
-rw-r--r--pkgs/development/tools/database/sqlitebrowser/default.nix2
-rw-r--r--pkgs/development/tools/delve/default.nix2
-rw-r--r--pkgs/development/tools/doctl/default.nix2
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix2
-rw-r--r--pkgs/development/tools/erlang/cuter/default.nix2
-rw-r--r--pkgs/development/tools/erlang/relx-exe/default.nix2
-rw-r--r--pkgs/development/tools/github/cligh/default.nix2
-rw-r--r--pkgs/development/tools/glslviewer/default.nix36
-rw-r--r--pkgs/development/tools/gnulib/default.nix2
-rw-r--r--pkgs/development/tools/gocode/default.nix13
-rw-r--r--pkgs/development/tools/godef/default.nix2
-rw-r--r--pkgs/development/tools/google-app-engine-go-sdk/default.nix2
-rw-r--r--pkgs/development/tools/haskell/haste/haste-Cabal.nix35
-rw-r--r--pkgs/development/tools/haskell/haste/haste-cabal-install.nix46
-rw-r--r--pkgs/development/tools/haskell/haste/haste-compiler.nix33
-rw-r--r--pkgs/development/tools/haskell/intero-nix-shim/default.nix2
-rw-r--r--pkgs/development/tools/haskell/lambdabot/default.nix4
-rw-r--r--pkgs/development/tools/haskell/multi-ghc-travis/default.nix8
-rw-r--r--pkgs/development/tools/heroku/default.nix2
-rw-r--r--pkgs/development/tools/irony-server/default.nix2
-rw-r--r--pkgs/development/tools/jmespath/default.nix2
-rw-r--r--pkgs/development/tools/jp/default.nix2
-rw-r--r--pkgs/development/tools/leaps/default.nix2
-rw-r--r--pkgs/development/tools/minizinc/default.nix2
-rw-r--r--pkgs/development/tools/misc/astyle/default.nix2
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.13.x.nix2
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.14.x.nix2
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.15.x.nix2
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix13
-rw-r--r--pkgs/development/tools/misc/binutils/elf-check-orphan-input.patch99
-rw-r--r--pkgs/development/tools/misc/binutils/elf-check-orphan-placement.patch161
-rw-r--r--pkgs/development/tools/misc/ccache/default.nix12
-rw-r--r--pkgs/development/tools/misc/creduce/default.nix2
-rw-r--r--pkgs/development/tools/misc/csmith/default.nix5
-rw-r--r--pkgs/development/tools/misc/distcc/default.nix2
-rw-r--r--pkgs/development/tools/misc/elfkickers/default.nix2
-rw-r--r--pkgs/development/tools/misc/elfutils/debug-info-from-env.patch27
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix10
-rw-r--r--pkgs/development/tools/misc/gdb/debug-info-from-env.patch81
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix15
-rw-r--r--pkgs/development/tools/misc/gede/default.nix2
-rw-r--r--pkgs/development/tools/misc/gnum4/default.nix4
-rw-r--r--pkgs/development/tools/misc/hydra/default.nix6
-rw-r--r--pkgs/development/tools/misc/intltool/default.nix2
-rw-r--r--pkgs/development/tools/misc/lit/default.nix2
-rw-r--r--pkgs/development/tools/misc/ninka/default.nix2
-rw-r--r--pkgs/development/tools/misc/rolespec/default.nix2
-rw-r--r--pkgs/development/tools/misc/srecord/default.nix2
-rw-r--r--pkgs/development/tools/misc/swig/3.x.nix4
-rw-r--r--pkgs/development/tools/misc/texinfo/5.2.nix2
-rw-r--r--pkgs/development/tools/misc/texinfo/6.3.nix2
-rw-r--r--pkgs/development/tools/misc/unifdef/default.nix2
-rw-r--r--pkgs/development/tools/misc/universal-ctags/default.nix2
-rw-r--r--pkgs/development/tools/mypy/default.nix20
-rw-r--r--pkgs/development/tools/ocaml/merlin/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/obelisk/default.nix24
-rw-r--r--pkgs/development/tools/ocaml/ocp-indent/1.5.2.nix2
-rw-r--r--pkgs/development/tools/ocaml/ocp-indent/default.nix2
-rw-r--r--pkgs/development/tools/packer/default.nix6
-rw-r--r--pkgs/development/tools/packer/deps.nix11
-rw-r--r--pkgs/development/tools/parsing/bison/2.x.nix2
-rw-r--r--pkgs/development/tools/parsing/bison/3.x.nix6
-rw-r--r--pkgs/development/tools/parsing/flex/2.5.35.nix10
-rw-r--r--pkgs/development/tools/parsing/flex/default.nix4
-rw-r--r--pkgs/development/tools/phantomjs2/default.nix93
-rw-r--r--pkgs/development/tools/phantomjs2/system-qtbase.patch13
-rw-r--r--pkgs/development/tools/postiats-utilities/default.nix2
-rw-r--r--pkgs/development/tools/profiling/gprof2dot/default.nix2
-rw-r--r--pkgs/development/tools/rtags/default.nix4
-rw-r--r--pkgs/development/tools/rust/bindgen/default.nix12
-rw-r--r--pkgs/development/tools/rust/racer/default.nix12
-rw-r--r--pkgs/development/tools/rust/racerd/default.nix2
-rw-r--r--pkgs/development/tools/sassc/default.nix4
-rw-r--r--pkgs/development/tools/selenium/chromedriver/default.nix2
-rw-r--r--pkgs/development/tools/skopeo/default.nix2
-rw-r--r--pkgs/development/tools/sqsh/default.nix2
-rw-r--r--pkgs/development/tools/vim-vint/default.nix2
-rw-r--r--pkgs/development/tools/vndr/default.nix2
-rw-r--r--pkgs/development/tools/vultr/default.nix2
-rw-r--r--pkgs/development/tools/wiggle/default.nix1
123 files changed, 1034 insertions, 808 deletions
diff --git a/pkgs/development/tools/ammonite/default.nix b/pkgs/development/tools/ammonite/default.nix
index feb6865566f0..bd1be88bb32d 100644
--- a/pkgs/development/tools/ammonite/default.nix
+++ b/pkgs/development/tools/ammonite/default.nix
@@ -5,12 +5,12 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "ammonite-${version}";
-  version = "1.0.0";
+  version = "1.0.1";
   scalaVersion = "2.12";
 
   src = fetchurl {
     url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}";
-    sha256 = "0d74b3aasgg4ap5ishzzm4jbf1k4dxv7gzd88d69miyapsaa4p0c";
+    sha256 = "1gfswia6wg1z8whzmca7zmrkbhkvianbyd15yimnbd08minm1z2d";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/tools/analysis/cccc/default.nix b/pkgs/development/tools/analysis/cccc/default.nix
index 374331f3ac87..a46d7f9d9536 100644
--- a/pkgs/development/tools/analysis/cccc/default.nix
+++ b/pkgs/development/tools/analysis/cccc/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
       on various metrics of the code. Metrics supported include lines of code, McCabe's
       complexity and metrics proposed by Chidamber&Kemerer and Henry&Kafura.
     '';
-    homepage = "http://cccc.sourceforge.net/";
+    homepage = http://cccc.sourceforge.net/;
     license = stdenv.lib.licenses.gpl2;
     platforms = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.linquize ];
diff --git a/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix b/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix
index c290aefe31b7..07e3a579d345 100644
--- a/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix
+++ b/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Automatically generate all types of basic memory management operations and write into trace files";
-    homepage = "https://github.com/GarCoSim"; 
+    homepage = https://github.com/GarCoSim; 
     maintainers = [ maintainers.cmcdragonkai ];
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix b/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix
index 7a6f3481d53f..557fa8384746 100644
--- a/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix
+++ b/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "Ease the analysis of existing memory management techniques, as well as the prototyping of new memory management techniques.";
-    homepage = "https://github.com/GarCoSim";
+    homepage = https://github.com/GarCoSim;
     maintainers = [ maintainers.cmcdragonkai ];
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/analysis/hotspot/default.nix b/pkgs/development/tools/analysis/hotspot/default.nix
index ee9fbb111969..6544046b16d2 100644
--- a/pkgs/development/tools/analysis/hotspot/default.nix
+++ b/pkgs/development/tools/analysis/hotspot/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
       It takes a perf.data file, parses and evaluates its contents and
       then displays the result in a graphical way.
     '';
-    homepage = "https://github.com/KDAB/hotspot";
+    homepage = https://github.com/KDAB/hotspot;
     license = with stdenv.lib.licenses; [ gpl2 gpl3 ];
     platforms = stdenv.lib.platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ nh2 ];
diff --git a/pkgs/development/tools/analysis/smatch/default.nix b/pkgs/development/tools/analysis/smatch/default.nix
index e2cb2c85b625..f5c5c616979c 100644
--- a/pkgs/development/tools/analysis/smatch/default.nix
+++ b/pkgs/development/tools/analysis/smatch/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A semantic analysis tool for C";
-    homepage = "http://smatch.sourceforge.net/";
+    homepage = http://smatch.sourceforge.net/;
     license = stdenv.lib.licenses.free; /* OSL, see http://www.opensource.org */
     platforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/development/tools/analysis/swarm/default.nix b/pkgs/development/tools/analysis/swarm/default.nix
index 91d4155d093d..a67d9b8d42e8 100644
--- a/pkgs/development/tools/analysis/swarm/default.nix
+++ b/pkgs/development/tools/analysis/swarm/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Verification script generator for Spin";
-    homepage = "http://spinroot.com/";
+    homepage = http://spinroot.com/;
     license = licenses.free;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/tools/apktool/default.nix b/pkgs/development/tools/apktool/default.nix
index 4f87bcd1589e..555cb313a629 100644
--- a/pkgs/development/tools/apktool/default.nix
+++ b/pkgs/development/tools/apktool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "apktool-${version}";
-  version = "2.2.2";
+  version = "2.2.4";
 
   src = fetchurl {
     url = "https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_${version}.jar";
-    sha256 = "1a94jw0ml08xdwls1q9v5p1zak5qrbw2zyychnm5vch8znyws411";
+    sha256 = "0l9jxa393a52iiawh93v31vr1y6z2bwg6dqhpivqd6y0vip1h7qz";
   };
 
   phases = [ "installPhase" ];
diff --git a/pkgs/development/tools/boomerang/default.nix b/pkgs/development/tools/boomerang/default.nix
index 1e84a05cc85b..6b9dd6393cb6 100644
--- a/pkgs/development/tools/boomerang/default.nix
+++ b/pkgs/development/tools/boomerang/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    homepage = "http://boomerang.sourceforge.net/";
+    homepage = http://boomerang.sourceforge.net/;
     license = stdenv.lib.licenses.bsd3;
     description = "A general, open source, retargetable decompiler";
   };
diff --git a/pkgs/development/tools/build-managers/doit/default.nix b/pkgs/development/tools/build-managers/doit/default.nix
index 61f6a402cab7..200ec6429a79 100644
--- a/pkgs/development/tools/build-managers/doit/default.nix
+++ b/pkgs/development/tools/build-managers/doit/default.nix
@@ -23,7 +23,7 @@ in python3Packages.buildPythonApplication {
   checkPhase = "py.test";
 
   meta = {
-    homepage = "http://pydoit.org/";
+    homepage = http://pydoit.org/;
     description = "A task management & automation tool";
     license = stdenv.lib.licenses.mit;
     longDescription = ''
diff --git a/pkgs/development/tools/build-managers/gnumake/3.80/default.nix b/pkgs/development/tools/build-managers/gnumake/3.80/default.nix
deleted file mode 100644
index ad855df73534..000000000000
--- a/pkgs/development/tools/build-managers/gnumake/3.80/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "gnumake-3.80";
-
-  src = fetchurl {
-    url = http://tarballs.nixos.org/make-3.80.tar.bz2;
-    sha256 = "06rgz6npynr8whmf7rxgkyvcz0clf3ggwf4cyhj3fcscn3kkk6x9";
-  };
-
-  patches = [./log.patch];
-
-  hardeningDisable = [ "format" ];
-
-  meta = {
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/development/tools/build-managers/gnumake/3.80/log.patch b/pkgs/development/tools/build-managers/gnumake/3.80/log.patch
deleted file mode 100644
index fa90acfe8de5..000000000000
--- a/pkgs/development/tools/build-managers/gnumake/3.80/log.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-diff -rc make-3.80-orig/job.c make-3.80/job.c
-*** make-3.80-orig/job.c	2002-08-10 03:27:17.000000000 +0200
---- make-3.80/job.c	2004-04-02 17:38:04.000000000 +0200
-***************
-*** 987,993 ****
-       appear.  */
-  
-    message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
-! 	   ? "%s" : (char *) 0, p);
-  
-    /* Tell update_goal_chain that a command has been started on behalf of
-       this target.  It is important that this happens here and not in
---- 987,993 ----
-       appear.  */
-  
-    message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
-! 	   ? "\e[3s\e[a%s\e[b" : (char *) 0, p);
-  
-    /* Tell update_goal_chain that a command has been started on behalf of
-       this target.  It is important that this happens here and not in
-diff -rc make-3.80-orig/main.c make-3.80/main.c
-*** make-3.80-orig/main.c	2002-08-10 03:27:17.000000000 +0200
---- make-3.80/main.c	2004-04-02 17:42:50.000000000 +0200
-***************
-*** 254,259 ****
---- 254,263 ----
-     they appear out of date or not.  */
-  
-  int always_make_flag = 0;
-+ 
-+ int logNestingStdout = 0;
-+ int logNestingStderr = 0;
-+ 
-  
-  /* The usage output.  We write it this way to make life easier for the
-     translators, especially those trying to translate to right-to-left
-***************
-*** 827,832 ****
---- 831,845 ----
-  }
-  
-  
-+ static void closeNesting()
-+ {
-+   while (logNestingStdout--)
-+     printf("\e[q");
-+   while (logNestingStderr--)
-+     fprintf(stderr, "\e[q");
-+ }
-+ 
-+ 
-  #ifndef _AMIGA
-  int
-  main (argc, argv, envp)
-***************
-*** 854,859 ****
---- 867,874 ----
-    no_default_sh_exe = 1;
-  #endif
-  
-+   atexit(closeNesting);
-+ 
-    default_goal_file = 0;
-    reading_file = 0;
-  
-***************
-*** 2782,2787 ****
---- 2797,2808 ----
-  
-    /* Use entire sentences to give the translators a fighting chance.  */
-  
-+   if (entering)
-+     {
-+       printf("\e[p");
-+       logNestingStdout++;
-+     }
-+   
-    if (makelevel == 0)
-      if (starting_directory == 0)
-        if (entering)
-***************
-*** 2810,2813 ****
---- 2831,2840 ----
-        else
-          printf (_("%s[%u]: Leaving directory `%s'\n"),
-                  program, makelevel, starting_directory);
-+ 
-+   if (!entering)
-+     {
-+       printf("\e[q");
-+       logNestingStdout--;
-+     }
-  }
-diff -rc make-3.80-orig/make.h make-3.80/make.h
-*** make-3.80-orig/make.h	2002-09-11 18:55:44.000000000 +0200
---- make-3.80/make.h	2004-04-02 17:42:15.000000000 +0200
-***************
-*** 559,562 ****
---- 559,567 ----
-  extern int atomic_stat PARAMS ((const char *file, struct stat *buf));
-  extern struct dirent *atomic_readdir PARAMS ((DIR *dir));
-  
-+ 
-  #endif
-+ 
-+ 
-+ extern int logNestingStdout;
-+ extern int logNestingStderr;
-diff -rc make-3.80-orig/remake.c make-3.80/remake.c
-*** make-3.80-orig/remake.c	2002-08-08 02:11:19.000000000 +0200
---- make-3.80/remake.c	2004-04-04 23:10:19.000000000 +0200
-***************
-*** 1049,1055 ****
---- 1049,1059 ----
-        /* The normal case: start some commands.  */
-        if (!touch_flag || file->cmds->any_recurse)
-  	{
-+           fprintf(stderr, "\e[pbuilding %s\n", file->name);
-+           logNestingStderr++;
-  	  execute_file_commands (file);
-+           fprintf(stderr, "\e[q");
-+           logNestingStderr--;
-  	  return;
-  	}
-  
diff --git a/pkgs/development/tools/build-managers/gnumake/3.82/default.nix b/pkgs/development/tools/build-managers/gnumake/3.82/default.nix
index ce5eff878ead..87897017f86a 100644
--- a/pkgs/development/tools/build-managers/gnumake/3.82/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/default.nix
@@ -15,10 +15,6 @@ stdenv.mkDerivation {
 
   patches =
     [
-      # Provide nested log output for subsequent pretty-printing by
-      # nix-log2xml.
-      ./log.patch
-
       # Purity: don't look for library dependencies (of the form
       # `-lfoo') in /lib and /usr/lib.  It's a stupid feature anyway.
       # Likewise, when searching for included Makefiles, don't look in
diff --git a/pkgs/development/tools/build-managers/gnumake/3.82/log.patch b/pkgs/development/tools/build-managers/gnumake/3.82/log.patch
deleted file mode 100644
index e6197fd8e78f..000000000000
--- a/pkgs/development/tools/build-managers/gnumake/3.82/log.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-diff -rc job.c job.c
-*** job.c	2006-03-20 04:03:04.000000000 +0100
---- job.c	2009-01-19 19:37:28.000000000 +0100
-***************
-*** 1083,1089 ****
-       appear.  */
-  
-    message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
-! 	   ? "%s" : (char *) 0, p);
-  
-    /* Tell update_goal_chain that a command has been started on behalf of
-       this target.  It is important that this happens here and not in
---- 1083,1089 ----
-       appear.  */
-  
-    message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
-!           ? (enable_nested_output ? "\e[3s\e[a%s\e[b" : "%s") : (char *) 0, p);
-  
-    /* Tell update_goal_chain that a command has been started on behalf of
-       this target.  It is important that this happens here and not in
-diff -rc main.c main.c
-*** main.c	2006-03-20 03:36:37.000000000 +0100
---- main.c	2009-01-19 19:41:41.000000000 +0100
-***************
-*** 886,891 ****
---- 886,900 ----
-  }
-  
-  
-+ static void close_nesting()
-+ {
-+   while (stdout_nesting_level--)
-+     printf("\e[q");
-+   while (stderr_nesting_level--)
-+     fprintf(stderr, "\e[q");
-+ }
-+ 
-+ 
-  #ifdef _AMIGA
-  int
-  main (int argc, char **argv)
-***************
-*** 931,936 ****
---- 940,950 ----
-    atexit (close_stdout);
-  #endif
-  
-+   atexit(close_nesting);
-+ 
-+   if (getenv("NIX_INDENT_MAKE"))
-+     enable_nested_output = 1;
-+ 
-    /* Needed for OS/2 */
-    initialize_main(&argc, &argv);
-  
-***************
-*** 3095,3100 ****
---- 3109,3120 ----
-  
-    /* Use entire sentences to give the translators a fighting chance.  */
-  
-+   if (entering && enable_nested_output)
-+     {
-+       printf("\e[p");
-+       stdout_nesting_level++;
-+     }
-+   
-    if (makelevel == 0)
-      if (starting_directory == 0)
-        if (entering)
-***************
-*** 3124,3129 ****
---- 3144,3159 ----
-          printf (_("%s[%u]: Leaving directory `%s'\n"),
-                  program, makelevel, starting_directory);
-  
-+   if (!entering && enable_nested_output)
-+     {
-+       printf("\e[q");
-+       stdout_nesting_level--;
-+     }
-+  
-    /* Flush stdout to be sure this comes before any stderr output.  */
-    fflush (stdout);
-  }
-+ 
-+ int enable_nested_output = 0;
-+ int stdout_nesting_level = 0;
-+ int stderr_nesting_level = 0;
-diff -rc make.h
-*** make.h	2006-02-16 00:54:43.000000000 +0100
---- make.h	2009-01-19 19:32:03.000000000 +0100
-***************
-*** 609,611 ****
---- 609,614 ----
-  
-  #define ENULLLOOP(_v,_c)   do { errno = 0; (_v) = _c; } \
-                             while((_v)==0 && errno==EINTR)
-+ extern int enable_nested_output;
-+ extern int stdout_nesting_level;
-+ extern int stderr_nesting_level;
-diff -rc reremake.c
-*** remake.c	2006-03-20 03:36:37.000000000 +0100
---- remake.c	2009-01-19 19:39:40.000000000 +0100
-***************
-*** 1120,1126 ****
---- 1120,1137 ----
-        /* The normal case: start some commands.  */
-        if (!touch_flag || file->cmds->any_recurse)
-  	{
-+           if (enable_nested_output) 
-+             {
-+               log_working_directory (1);
-+               fprintf(stderr, "\e[pbuilding %s\n", file->name);
-+               stderr_nesting_level++;
-+             }
-  	  execute_file_commands (file);
-+           if (enable_nested_output) 
-+             {
-+               fprintf(stderr, "\e[q");
-+               stderr_nesting_level--;
-+             }
-  	  return;
-  	}
-  
diff --git a/pkgs/development/tools/build-managers/gnumake/4.0/darwin-library_search-dylib.patch b/pkgs/development/tools/build-managers/gnumake/4.0/darwin-library_search-dylib.patch
deleted file mode 100644
index de7e4f615212..000000000000
--- a/pkgs/development/tools/build-managers/gnumake/4.0/darwin-library_search-dylib.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Fixed default libpatttern on Darwin, imported from prefix overlay.
-Got merged upstream:
-https://savannah.gnu.org/bugs/?37197
---- default.c.orig	2009-05-02 12:25:24 +0200
-+++ default.c	2009-05-02 12:25:58 +0200
-@@ -509,7 +509,11 @@
- #ifdef __MSDOS__
-     ".LIBPATTERNS", "lib%.a $(DJDIR)/lib/lib%.a",
- #else
-+#ifdef __APPLE__
-+    ".LIBPATTERNS", "lib%.dylib lib%.a",
-+#else
-     ".LIBPATTERNS", "lib%.so lib%.a",
-+#endif
- #endif
- #endif
- 
diff --git a/pkgs/development/tools/build-managers/gnumake/4.0/default.nix b/pkgs/development/tools/build-managers/gnumake/4.0/default.nix
deleted file mode 100644
index a4128ac854c7..000000000000
--- a/pkgs/development/tools/build-managers/gnumake/4.0/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{stdenv, fetchurl}:
-
-let version = "4.0"; in
-stdenv.mkDerivation {
-  name = "gnumake-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnu/make/make-${version}.tar.bz2";
-    sha256 = "1nyvn8mknw0mf7727lprva3lisl1y0n03lvar342rrpdmz3qc1p6";
-  };
-
-  /* On Darwin, there are 3 test failures that haven't been investigated
-     yet.  */
-  doCheck = !stdenv.isDarwin && !stdenv.isFreeBSD;
-
-  patches =
-    [
-      # Purity: don't look for library dependencies (of the form
-      # `-lfoo') in /lib and /usr/lib.  It's a stupid feature anyway.
-      # Likewise, when searching for included Makefiles, don't look in
-      # /usr/include and friends.
-      ./impure-dirs.patch
-
-      # a bunch of patches from Gentoo, mostly should be from upstream (unreleased)
-      ./darwin-library_search-dylib.patch
-    ];
-  patchFlags = "-p0";
-
-  meta = {
-    description = "GNU Make, a program controlling the generation of non-source files from sources";
-
-    longDescription =
-      '' Make is a tool which controls the generation of executables and
-         other non-source files of a program from the program's source files.
-
-         Make gets its knowledge of how to build your program from a file
-         called the makefile, which lists each of the non-source files and
-         how to compute it from other files. When you write a program, you
-         should write a makefile for it, so that it is possible to use Make
-         to build and install the program.
-      '';
-
-    homepage = http://www.gnu.org/software/make/;
-
-    license = stdenv.lib.licenses.gpl3Plus;
-    maintainers = [ ];
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/pkgs/development/tools/build-managers/gnumake/4.0/impure-dirs.patch b/pkgs/development/tools/build-managers/gnumake/4.0/impure-dirs.patch
deleted file mode 100644
index f6646f1d0126..000000000000
--- a/pkgs/development/tools/build-managers/gnumake/4.0/impure-dirs.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -rc read.c read.c
-*** read.c	2006-03-17 15:24:20.000000000 +0100
---- read.c	2007-05-24 17:16:31.000000000 +0200
-***************
-*** 99,107 ****
---- 99,109 ----
-  #endif
-      INCLUDEDIR,
-  #ifndef _AMIGA
-+ #if 0    
-      "/usr/gnu/include",
-      "/usr/local/include",
-      "/usr/include",
-+ #endif    
-  #endif
-      0
-    };
-diff -rc reremake.c
-*** remake.c	2006-03-20 03:36:37.000000000 +0100
---- remake.c	2007-05-24 17:06:54.000000000 +0200
-***************
-*** 1452,1460 ****
---- 1452,1462 ----
-    static char *dirs[] =
-      {
-  #ifndef _AMIGA
-+ #if 0
-        "/lib",
-        "/usr/lib",
-  #endif
-+ #endif
-  #if defined(WINDOWS32) && !defined(LIBDIR)
-  /*
-   * This is completely up to the user at product install time. Just define
diff --git a/pkgs/development/tools/build-managers/gnumake/4.1/default.nix b/pkgs/development/tools/build-managers/gnumake/4.1/default.nix
deleted file mode 100644
index 7c45a6c8e674..000000000000
--- a/pkgs/development/tools/build-managers/gnumake/4.1/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv, fetchurl }:
-
-let
-  version = "4.1";
-in
-stdenv.mkDerivation {
-  name = "gnumake-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnu/make/make-${version}.tar.bz2";
-    sha256 = "19gwwhik3wdwn0r42b7xcihkbxvjl9r2bdal8nifc3k5i4rn3iqb";
-  };
-
-  patchFlags = "-p0";
-  patches = [
-    # Purity: don't look for library dependencies (of the form `-lfoo') in /lib
-    # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
-    # included Makefiles, don't look in /usr/include and friends.
-    ./impure-dirs.patch
-
-    # Don't segfault if we can't get a tty name.
-    ./no-tty-name.patch
-  ];
-
-  outputs = [ "out" "doc" ];
-
-  meta = {
-    homepage = http://www.gnu.org/software/make/;
-    description = "A tool to control the generation of non-source files from sources";
-    license = stdenv.lib.licenses.gpl3Plus;
-
-    longDescription = ''
-      Make is a tool which controls the generation of executables and
-      other non-source files of a program from the program's source files.
-
-      Make gets its knowledge of how to build your program from a file
-      called the makefile, which lists each of the non-source files and
-      how to compute it from other files. When you write a program, you
-      should write a makefile for it, so that it is possible to use Make
-      to build and install the program.
-    '';
-
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/pkgs/development/tools/build-managers/gnumake/4.1/impure-dirs.patch b/pkgs/development/tools/build-managers/gnumake/4.1/impure-dirs.patch
deleted file mode 100644
index f6646f1d0126..000000000000
--- a/pkgs/development/tools/build-managers/gnumake/4.1/impure-dirs.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -rc read.c read.c
-*** read.c	2006-03-17 15:24:20.000000000 +0100
---- read.c	2007-05-24 17:16:31.000000000 +0200
-***************
-*** 99,107 ****
---- 99,109 ----
-  #endif
-      INCLUDEDIR,
-  #ifndef _AMIGA
-+ #if 0    
-      "/usr/gnu/include",
-      "/usr/local/include",
-      "/usr/include",
-+ #endif    
-  #endif
-      0
-    };
-diff -rc reremake.c
-*** remake.c	2006-03-20 03:36:37.000000000 +0100
---- remake.c	2007-05-24 17:06:54.000000000 +0200
-***************
-*** 1452,1460 ****
---- 1452,1462 ----
-    static char *dirs[] =
-      {
-  #ifndef _AMIGA
-+ #if 0
-        "/lib",
-        "/usr/lib",
-  #endif
-+ #endif
-  #if defined(WINDOWS32) && !defined(LIBDIR)
-  /*
-   * This is completely up to the user at product install time. Just define
diff --git a/pkgs/development/tools/build-managers/gnumake/4.1/no-tty-name.patch b/pkgs/development/tools/build-managers/gnumake/4.1/no-tty-name.patch
deleted file mode 100644
index a84d7ab49d04..000000000000
--- a/pkgs/development/tools/build-managers/gnumake/4.1/no-tty-name.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 292da6f6867b75a5af7ddbb639a1feae022f438f Mon Sep 17 00:00:00 2001
-From: Paul Smith <psmith@gnu.org>
-Date: Mon, 20 Oct 2014 05:54:56 +0000
-Subject: * main.c (main): [SV 43434] Handle NULL returns from ttyname().
-
----
-diff --git main.c main.c
-index b2d169c..0cdb8a8 100644
---- main.c
-+++ main.c
-@@ -1429,13 +1429,18 @@ main (int argc, char **argv, char **envp)
- #ifdef HAVE_ISATTY
-     if (isatty (fileno (stdout)))
-       if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMOUT")))
--        define_variable_cname ("MAKE_TERMOUT", TTYNAME (fileno (stdout)),
--                               o_default, 0)->export = v_export;
--
-+        {
-+          const char *tty = TTYNAME (fileno (stdout));
-+          define_variable_cname ("MAKE_TERMOUT", tty ? tty : DEFAULT_TTYNAME,
-+                                 o_default, 0)->export = v_export;
-+        }
-     if (isatty (fileno (stderr)))
-       if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMERR")))
--        define_variable_cname ("MAKE_TERMERR", TTYNAME (fileno (stderr)),
--                               o_default, 0)->export = v_export;
-+        {
-+          const char *tty = TTYNAME (fileno (stderr));
-+          define_variable_cname ("MAKE_TERMERR", tty ? tty : DEFAULT_TTYNAME,
-+                                 o_default, 0)->export = v_export;
-+        }
- #endif
- 
-   /* Reset in case the switches changed our minds.  */
-diff --git makeint.h makeint.h
-index 6223936..2009f41 100644
---- makeint.h
-+++ makeint.h
-@@ -436,10 +436,11 @@ extern struct rlimit stack_limit;
- /* The number of bytes needed to represent the largest integer as a string.  */
- #define INTSTR_LENGTH         CSTRLEN ("18446744073709551616")
- 
-+#define DEFAULT_TTYNAME "true"
- #ifdef HAVE_TTYNAME
- # define TTYNAME(_f) ttyname (_f)
- #else
--# define TTYNAME(_f) "true"
-+# define TTYNAME(_f) DEFAULT_TTYNAME
- #endif
- 
- 
---
-cgit v0.9.0.2
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 24897232fbc8..45a4d8a8358b 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -52,12 +52,12 @@ rec {
   };
 
   gradle_latest = gradleGen rec {
-    name = "gradle-4.0.1";
+    name = "gradle-4.1";
     nativeVersion = "0.14";
 
     src = fetchurl {
       url = "http://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "1m2gnh1vs3f5acdqcxmc8d0pi65bzm3v1nliz29rhdfi01if85yp";
+      sha256 = "0hzdz5cy5dmyqz73qy80q74aiy87jl5vnxcy3imahgaszffglpfm";
     };
   };
 
diff --git a/pkgs/development/tools/build-managers/jam/default.nix b/pkgs/development/tools/build-managers/jam/default.nix
index c0d152ee7a2f..7314643530e8 100644
--- a/pkgs/development/tools/build-managers/jam/default.nix
+++ b/pkgs/development/tools/build-managers/jam/default.nix
@@ -10,6 +10,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ yacc ];
 
+  preConfigure = ''
+    unset AR
+  '';
+
   buildPhase = ''
     make jam0
     ./jam0 -j$NIX_BUILD_CORES -sBINDIR=$out/bin install
diff --git a/pkgs/development/tools/build-managers/kati/default.nix b/pkgs/development/tools/build-managers/kati/default.nix
index 7b5dc2b79374..8a72847be772 100644
--- a/pkgs/development/tools/build-managers/kati/default.nix
+++ b/pkgs/development/tools/build-managers/kati/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "An experimental GNU make clone";
-    homepage = "https://github.com/google/kati";
+    homepage = https://github.com/google/kati;
     platforms = stdenv.lib.platforms.all;
     license = stdenv.lib.licenses.asl20;
   };
diff --git a/pkgs/development/tools/build-managers/rebar/default.nix b/pkgs/development/tools/build-managers/rebar/default.nix
index d62ae35b8549..b028534f3c86 100644
--- a/pkgs/development/tools/build-managers/rebar/default.nix
+++ b/pkgs/development/tools/build-managers/rebar/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    homepage = "https://github.com/rebar/rebar";
+    homepage = https://github.com/rebar/rebar;
     description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
 
     longDescription = ''
diff --git a/pkgs/development/tools/build-managers/rebar3/default.nix b/pkgs/development/tools/build-managers/rebar3/default.nix
index bfc6dce1e1a1..c77dbfcf427a 100644
--- a/pkgs/development/tools/build-managers/rebar3/default.nix
+++ b/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -110,7 +110,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    homepage = "https://github.com/rebar/rebar3";
+    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";
 
     longDescription = ''
diff --git a/pkgs/development/tools/build-managers/redo-sh/default.nix b/pkgs/development/tools/build-managers/redo-sh/default.nix
index 95a49dc167aa..f81ff3b91d4f 100644
--- a/pkgs/development/tools/build-managers/redo-sh/default.nix
+++ b/pkgs/development/tools/build-managers/redo-sh/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Redo implementation in Bourne Shell";
-    homepage = "http://news.dieweltistgarnichtso.net/bin/redo-sh.html";
+    homepage = http://news.dieweltistgarnichtso.net/bin/redo-sh.html;
     license  = licenses.agpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ sternenseemann ];
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index cf9b42abefd2..4627a6bd312a 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -2,11 +2,14 @@
 
 stdenv.mkDerivation rec {
   name = "sbt-${version}";
-  version = "0.13.15";
+  version = "1.0.0";
 
   src = fetchurl {
-    url = "https://dl.bintray.com/sbt/native-packages/sbt/${version}/${name}.tgz";
-    sha256 = "1vvsxpg1fwfzv3mcin69gnj44v6p7kfx3z9cm761sx01qbbp7q5n";
+    urls = [
+      "https://dl.bintray.com/sbt/native-packages/sbt/${version}/${name}.tgz"
+      "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz"
+    ];
+    sha256 = "0njwch97g69vzxfqhlaibjwbif2vka68dssddk2jlpqlf94lzq4s";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/tools/build-managers/scons/default.nix b/pkgs/development/tools/build-managers/scons/default.nix
index 630dc4c751ee..1b2a8220361c 100644
--- a/pkgs/development/tools/build-managers/scons/default.nix
+++ b/pkgs/development/tools/build-managers/scons/default.nix
@@ -14,7 +14,7 @@ in python2Packages.buildPythonApplication {
   doCheck = false;
 
   meta = {
-    homepage = "http://scons.org/";
+    homepage = http://scons.org/;
     description = "An improved, cross-platform substitute for Make";
     license = stdenv.lib.licenses.mit;
     longDescription = ''
diff --git a/pkgs/development/tools/build-managers/shards/default.nix b/pkgs/development/tools/build-managers/shards/default.nix
index 7db0d89e8b1f..52c5417456ca 100644
--- a/pkgs/development/tools/build-managers/shards/default.nix
+++ b/pkgs/development/tools/build-managers/shards/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "https://crystal-lang.org/";
+    homepage = https://crystal-lang.org/;
     license = licenses.asl20;
     description = "Dependency manager for the Crystal language";
     maintainers = with maintainers; [ mingchuan ];
diff --git a/pkgs/development/tools/build-managers/tup/default.nix b/pkgs/development/tools/build-managers/tup/default.nix
index 872a65889dff..828fe20ecc54 100644
--- a/pkgs/development/tools/build-managers/tup/default.nix
+++ b/pkgs/development/tools/build-managers/tup/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "tup-${version}";
-  version = "0.7.3";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "gittup";
     repo = "tup";
     rev = "v${version}";
-    sha256 = "1x2grwmlf2izip4djb8cjwgl8p3x0bmfqwzjsc017mqi17qkijy8";
+    sha256 = "0jzp1llq6635ldb7j9qb29j2k0x5mblimdqg3179dvva1hv0ia23";
   };
 
   buildInputs = [ fuse pkgconfig ];
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 7e11cf531994..c371844d133d 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -61,7 +61,7 @@ buildGoPackage rec {
   meta = with lib; {
     description = "GitLab Runner the continuous integration executor of GitLab";
     license = licenses.mit;
-    homepage = "https://about.gitlab.com/gitlab-ci/";
+    homepage = https://about.gitlab.com/gitlab-ci/;
     platforms = platforms.unix ++ platforms.darwin;
     maintainers = with maintainers; [ bachp zimbatm ];
   };
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/v1.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/v1.nix
index a3e6a063596b..33cbd23d062c 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/v1.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/v1.nix
@@ -61,7 +61,7 @@ buildGoPackage rec {
   meta = with lib; {
     description = "GitLab Runner the continuous integration executor of GitLab";
     license = licenses.mit;
-    homepage = "https://about.gitlab.com/gitlab-ci/";
+    homepage = https://about.gitlab.com/gitlab-ci/;
     platforms = platforms.unix;
     maintainers = [ lib.maintainers.bachp ];
   };
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 8be5c6ebe85a..b0bc4f4a62ce 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 = "2.66";
+  version = "2.73";
 
   src = fetchurl {
     url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war";
-    sha256 = "05n03rm5vjzcz1f36829hwviw7i8l8d728nvr4cnf6mcl3rxciyl";
+    sha256 = "1q9q2vjza3slmbh6sbxak1y3ryvisphlh92nidsp88rv60zn3nv8";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/tools/corundum/Gemfile b/pkgs/development/tools/corundum/Gemfile
new file mode 100644
index 000000000000..5f817ae498a7
--- /dev/null
+++ b/pkgs/development/tools/corundum/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem "corundum", "=0.6.2"
diff --git a/pkgs/development/tools/corundum/Gemfile.lock b/pkgs/development/tools/corundum/Gemfile.lock
new file mode 100644
index 000000000000..40ad1948394f
--- /dev/null
+++ b/pkgs/development/tools/corundum/Gemfile.lock
@@ -0,0 +1,56 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    calibrate (0.0.1)
+    caliph (0.3.1)
+    corundum (0.6.2)
+      bundler (~> 1.10)
+      caliph (~> 0.3)
+      mattock (~> 0.9)
+      paint (~> 0.8)
+      rspec (>= 2.0, < 4)
+      simplecov (>= 0.5)
+      simplecov-json (~> 0.2)
+    diff-lcs (1.3)
+    docile (1.1.5)
+    json (2.1.0)
+    mattock (0.10.1)
+      calibrate (~> 0.0.1)
+      caliph (~> 0.3)
+      rake (~> 10.0)
+      tilt (> 0)
+      valise (~> 1.1)
+    paint (0.9.0)
+    rake (10.5.0)
+    rspec (3.6.0)
+      rspec-core (~> 3.6.0)
+      rspec-expectations (~> 3.6.0)
+      rspec-mocks (~> 3.6.0)
+    rspec-core (3.6.0)
+      rspec-support (~> 3.6.0)
+    rspec-expectations (3.6.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.6.0)
+    rspec-mocks (3.6.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.6.0)
+    rspec-support (3.6.0)
+    simplecov (0.14.1)
+      docile (~> 1.1.0)
+      json (>= 1.8, < 3)
+      simplecov-html (~> 0.10.0)
+    simplecov-html (0.10.1)
+    simplecov-json (0.2)
+      json
+      simplecov
+    tilt (2.0.7)
+    valise (1.2.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  corundum (= 0.6.2)
+
+BUNDLED WITH
+   1.14.4
diff --git a/pkgs/development/tools/corundum/default.nix b/pkgs/development/tools/corundum/default.nix
new file mode 100644
index 000000000000..22d7b236ffa4
--- /dev/null
+++ b/pkgs/development/tools/corundum/default.nix
@@ -0,0 +1,15 @@
+{ lib, bundlerApp }:
+
+bundlerApp {
+  pname = "corundum";
+  gemdir = ./.;
+  exes = [ "corundum-skel" ];
+
+  meta = with lib; {
+    description = "Tool and libraries for maintaining Ruby gems.";
+    homepage    = https://github.com/nyarly/corundum;
+    license     = licenses.mit;
+    maintainers = [ maintainers.nyarly ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/corundum/gemset.nix b/pkgs/development/tools/corundum/gemset.nix
new file mode 100644
index 000000000000..e395e098e6d1
--- /dev/null
+++ b/pkgs/development/tools/corundum/gemset.nix
@@ -0,0 +1,154 @@
+{
+  calibrate = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17kmlss7db70pjwdbbhag7mnixh8wasdq6n1v8663x50z9c7n2ng";
+      type = "gem";
+    };
+    version = "0.0.1";
+  };
+  caliph = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08d07n4m4yh1h9icq6n9dkw4jwgdmgd638f15mxr2pvqp4wycsnr";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  corundum = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y6shjrqaqyh14a1r4ic660g6jnq4abdrx9imglyalzyrlrwbsxq";
+      type = "gem";
+    };
+    version = "0.6.2";
+  };
+  diff-lcs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      type = "gem";
+    };
+    version = "1.3";
+  };
+  docile = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  mattock = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02d6igwr4sfj4jnky8d5h0rm2cc665k1bqz7sj4khzvr18nk3ai6";
+      type = "gem";
+    };
+    version = "0.10.1";
+  };
+  paint = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fcn7cfrhbl4nl95fmcd67q33h7bl3iafsafs6w9yj4nqzagz1yc";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  rake = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jcabbgnjc788chx31sihc5pgbqnlc1c75wakmqlbjdm8jns2m9b";
+      type = "gem";
+    };
+    version = "10.5.0";
+  };
+  rspec = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nd50hycab2a2vdah9lxi585g8f63jxjvmzmxqyln51grxwx9hzb";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  rspec-core = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18np8wyw2g79waclpaacba6nd7x60ixg07ncya0j0qj1z9b37grd";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  rspec-expectations = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "028ifzf9mqp3kxx40q1nbwj40g72g9zk0wr78l146phblkv96w0a";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  rspec-mocks = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nv6jkxy24sag1i9w9wi3850k6skk2fm6yhcrgnmlz6vmwxvizp8";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  rspec-support = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "050paqqpsml8w88nf4a15zbbj3vvm471zpv73sjfdnz7w21wnypb";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  simplecov = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww";
+      type = "gem";
+    };
+    version = "0.14.1";
+  };
+  simplecov-html = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f3psphismgp6jp1fxxz09zbswh7m2xxxr6gqlzdh7sgv415clvm";
+      type = "gem";
+    };
+    version = "0.10.1";
+  };
+  simplecov-json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x9hr08pkj5d14nfzsn5h8b7ayl6q0xir45dcx5rv2a7g10kzlpp";
+      type = "gem";
+    };
+    version = "0.2";
+  };
+  tilt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1is1ayw5049z8pd7slsk870bddyy5g2imp4z78lnvl8qsl8l0s7b";
+      type = "gem";
+    };
+    version = "2.0.7";
+  };
+  valise = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1arsbmk2gifrhv244qrld7s3202xrnxy6vlc5gqklg70dpsinbn5";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/cucumber/Gemfile b/pkgs/development/tools/cucumber/Gemfile
new file mode 100644
index 000000000000..f738129eca4f
--- /dev/null
+++ b/pkgs/development/tools/cucumber/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'cucumber'
diff --git a/pkgs/development/tools/cucumber/Gemfile.lock b/pkgs/development/tools/cucumber/Gemfile.lock
new file mode 100644
index 000000000000..10c1235ae258
--- /dev/null
+++ b/pkgs/development/tools/cucumber/Gemfile.lock
@@ -0,0 +1,28 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    builder (3.2.3)
+    cucumber (2.4.0)
+      builder (>= 2.1.2)
+      cucumber-core (~> 1.5.0)
+      cucumber-wire (~> 0.0.1)
+      diff-lcs (>= 1.1.3)
+      gherkin (~> 4.0)
+      multi_json (>= 1.7.5, < 2.0)
+      multi_test (>= 0.1.2)
+    cucumber-core (1.5.0)
+      gherkin (~> 4.0)
+    cucumber-wire (0.0.1)
+    diff-lcs (1.3)
+    gherkin (4.1.3)
+    multi_json (1.12.1)
+    multi_test (0.1.2)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  cucumber
+
+BUNDLED WITH
+   1.14.4
diff --git a/pkgs/development/tools/cucumber/default.nix b/pkgs/development/tools/cucumber/default.nix
new file mode 100644
index 000000000000..d4ca66c70d7a
--- /dev/null
+++ b/pkgs/development/tools/cucumber/default.nix
@@ -0,0 +1,19 @@
+{ lib, bundlerEnv, ruby }:
+
+bundlerEnv rec {
+  name = "cucumber-${version}";
+
+  version = (import gemset).cucumber.version;
+  inherit ruby;
+  # expects Gemfile, Gemfile.lock and gemset.nix in the same directory
+  gemfile = ./Gemfile;
+  lockfile = ./Gemfile.lock;
+  gemset = ./gemset.nix;
+
+  meta = with lib; {
+    description = "A tool for executable specifications";
+    homepage    = https://cucumber.io/;
+    license     = with licenses; mit;
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/cucumber/gemset.nix b/pkgs/development/tools/cucumber/gemset.nix
new file mode 100644
index 000000000000..07a80592ddaf
--- /dev/null
+++ b/pkgs/development/tools/cucumber/gemset.nix
@@ -0,0 +1,66 @@
+{
+  builder = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+      type = "gem";
+    };
+    version = "3.2.3";
+  };
+  cucumber = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k4j31a93r0zhvyq2mm2k8irppbvkzbsg44r3mf023959v18fzih";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  cucumber-core = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qj2fsqvp94nggnikbnrfvnmzr1pl6ifmdsxj69kdw1kkab30jjr";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  cucumber-wire = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09ymvqb0sbw2if1nxg8rcj33sf0va88ancq5nmp8g01dfwzwma2f";
+      type = "gem";
+    };
+    version = "0.0.1";
+  };
+  diff-lcs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      type = "gem";
+    };
+    version = "1.3";
+  };
+  gherkin = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d18r8mf2qyd9jbq9xxvca8adyysdzvwdy8v9c2s5hrd6p02kg79";
+      type = "gem";
+    };
+    version = "4.1.3";
+  };
+  multi_json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wpc23ls6v2xbk3l1qncsbz16npvmw8p0b38l8czdzri18mp51xk";
+      type = "gem";
+    };
+    version = "1.12.1";
+  };
+  multi_test = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sx356q81plr67hg16jfwz9hcqvnk03bd9n75pmdw8pfxjfy1yxd";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index b49719ae0b96..22b83a7569e3 100644
--- a/pkgs/development/tools/database/liquibase/default.nix
+++ b/pkgs/development/tools/database/liquibase/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Version Control for your database";
-    homepage = "http://www.liquibase.org/";
+    homepage = http://www.liquibase.org/;
     license = licenses.asl20;
     maintainers = with maintainers; [ nequissimus profpatsch ];
     platforms = with platforms; unix;
diff --git a/pkgs/development/tools/database/sqldeveloper/default.nix b/pkgs/development/tools/database/sqldeveloper/default.nix
index 7057d87a6bdb..9f321ee33097 100644
--- a/pkgs/development/tools/database/sqldeveloper/default.nix
+++ b/pkgs/development/tools/database/sqldeveloper/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
       a reports interface, a complete data modeling solution, and a migration
       platform for moving your 3rd party databases to Oracle.
     '';
-    homepage = "http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/";
+    homepage = http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/;
     license = licenses.unfree;
     maintainers = [ maintainers.ardumont ];
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/database/sqlitebrowser/default.nix b/pkgs/development/tools/database/sqlitebrowser/default.nix
index a43d3928980e..6c40cd789106 100644
--- a/pkgs/development/tools/database/sqlitebrowser/default.nix
+++ b/pkgs/development/tools/database/sqlitebrowser/default.nix
@@ -24,7 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "DB Browser for SQLite";
-    homepage = "http://sqlitebrowser.org/";
+    homepage = http://sqlitebrowser.org/;
     license = licenses.gpl3;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.linux; # can only test on linux
diff --git a/pkgs/development/tools/delve/default.nix b/pkgs/development/tools/delve/default.nix
index 9fe9c46816af..06b6a0993bec 100644
--- a/pkgs/development/tools/delve/default.nix
+++ b/pkgs/development/tools/delve/default.nix
@@ -16,7 +16,7 @@ buildGoPackage rec {
 
   meta = {
     description = "debugger for the Go programming language";
-    homepage = "https://github.com/derekparker/delve";
+    homepage = https://github.com/derekparker/delve;
     maintainers = with stdenv.lib.maintainers; [ vdemeester ];
     license = stdenv.lib.licenses.mit;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index 37517f306e82..a28e4a32168d 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -26,7 +26,7 @@ buildGoPackage rec {
 
   meta = {
     description = "A command line tool for DigitalOcean services";
-    homepage = "https://github.com/digitalocean/doctl";
+    homepage = https://github.com/digitalocean/doctl;
     license = stdenv.lib.licenses.asl20;
     platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.siddharthist ];
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index bf9fb4f30352..c803de9e0247 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     license = stdenv.lib.licenses.gpl2Plus;
-    homepage = "http://doxygen.org/";
+    homepage = http://doxygen.org/;
     description = "Source code documentation generator tool";
 
     longDescription = ''
diff --git a/pkgs/development/tools/erlang/cuter/default.nix b/pkgs/development/tools/erlang/cuter/default.nix
index b9682bead7d1..fb84bbbf1df3 100644
--- a/pkgs/development/tools/erlang/cuter/default.nix
+++ b/pkgs/development/tools/erlang/cuter/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A concolic testing tool for the Erlang functional programming language";
     license = stdenv.lib.licenses.gpl3;
-    homepage = "https://github.com/aggelgian/cuter";
+    homepage = https://github.com/aggelgian/cuter;
     maintainers = with stdenv.lib.maintainers; [ ericbmerritt ];
     platforms = with stdenv.lib.platforms; unix;
   };
diff --git a/pkgs/development/tools/erlang/relx-exe/default.nix b/pkgs/development/tools/erlang/relx-exe/default.nix
index 8b2bee8ad4fc..7d505b20a05f 100644
--- a/pkgs/development/tools/erlang/relx-exe/default.nix
+++ b/pkgs/development/tools/erlang/relx-exe/default.nix
@@ -31,7 +31,7 @@
     meta = {
       description = "Executable command for Relx";
       license = stdenv.lib.licenses.asl20;
-      homepage = "https://github.com/erlware/relx";
+      homepage = https://github.com/erlware/relx;
       maintainers = with stdenv.lib.maintainers; [ ericbmerritt ];
     };
 
diff --git a/pkgs/development/tools/github/cligh/default.nix b/pkgs/development/tools/github/cligh/default.nix
index ded0aaa92424..f6fe24cc281f 100644
--- a/pkgs/development/tools/github/cligh/default.nix
+++ b/pkgs/development/tools/github/cligh/default.nix
@@ -16,7 +16,7 @@ pythonPackages.buildPythonApplication rec {
   propagatedBuildInputs = with pythonPackages; [ pyxdg PyGithub ];
 
   meta = with stdenv.lib; {
-    homepage = "http://the-brannons.com/software/cligh.html";
+    homepage = http://the-brannons.com/software/cligh.html;
     description = "A simple command-line interface to the facilities of Github";
     longDescription = ''
         Cligh is a simple command-line interface to the facilities of GitHub.
diff --git a/pkgs/development/tools/glslviewer/default.nix b/pkgs/development/tools/glslviewer/default.nix
new file mode 100644
index 000000000000..1cca6a096fe6
--- /dev/null
+++ b/pkgs/development/tools/glslviewer/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, glfw, pkgconfig, libXrandr, libXdamage,
+  libXext, libXrender, libXinerama, libXcursor, libXxf86vm, libXi,
+  libX11, mesa_glu }:
+
+stdenv.mkDerivation rec {
+  name = "glslviewer-${version}";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "patriciogonzalezvivo";
+    repo = "glslViewer";
+    rev = version;
+    sha256 = "05ya821l2pd58anyx21mgmlm2bv78rz8cnbvqw4d9pfhq40z9psw";
+  };
+
+  # Makefile has /usr/local/bin hard-coded for 'make install'
+  preConfigure = ''
+    sed s,/usr/local,$out, -i Makefile
+  '';
+
+  preInstall = ''
+    mkdir -p $out/bin
+  '';
+  
+  buildInputs = [ glfw mesa_glu pkgconfig glfw libXrandr libXdamage
+                  libXext libXrender libXinerama libXcursor libXxf86vm
+                  libXi libX11 ];
+  
+  meta = with stdenv.lib; {
+    description = "Live GLSL coding renderer";
+    homepage = http://patriciogonzalezvivo.com/2015/glslViewer/;
+    license = licenses.bsd3;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = [ maintainers.hodapp ];
+  };
+}
diff --git a/pkgs/development/tools/gnulib/default.nix b/pkgs/development/tools/gnulib/default.nix
index e6a317a2f883..f11bb83a74ab 100644
--- a/pkgs/development/tools/gnulib/default.nix
+++ b/pkgs/development/tools/gnulib/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   installPhase = "mkdir -p $out; mv * $out/";
 
   meta = {
-    homepage = "http://www.gnu.org/software/gnulib/";
+    homepage = http://www.gnu.org/software/gnulib/;
     description = "Central location for code to be shared among GNU packages";
     license = stdenv.lib.licenses.gpl3Plus;
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/development/tools/gocode/default.nix b/pkgs/development/tools/gocode/default.nix
index 5ec93462dec2..fe6bfc711e63 100644
--- a/pkgs/development/tools/gocode/default.nix
+++ b/pkgs/development/tools/gocode/default.nix
@@ -2,14 +2,19 @@
 
 buildGoPackage rec {
   name = "gocode-${version}";
-  version = "20170219-${stdenv.lib.strings.substring 0 7 rev}";
-  rev = "f54790e5d4386b60b80d0c6f9e59db345839d7cc";
-  
+  version = "20170530-${stdenv.lib.strings.substring 0 7 rev}";
+  rev = "f1eef9a6ba005abb145d7b58fdd225e83a3c6a05";
+
   goPackagePath = "github.com/nsf/gocode";
 
+  # we must allow references to the original `go` package,
+  # because `gocode` needs to dig into $GOROOT to provide completions for the
+  # standard packages.
+  allowGoReference = true;
+
   src = fetchgit {
     inherit rev;
     url = "https://github.com/nsf/gocode";
-    sha256 = "1x9wdahpdkqwqkipxl5m0sh8d59i389rdvrsyz57slpfd0hapkks";
+    sha256 = "1hkr46ikrprx203i2yr6xds1bzxggblh7bg026m2cda6dxgpnsgw";
   };
 }
diff --git a/pkgs/development/tools/godef/default.nix b/pkgs/development/tools/godef/default.nix
index 837da4a09dc9..fdb53dd288f0 100644
--- a/pkgs/development/tools/godef/default.nix
+++ b/pkgs/development/tools/godef/default.nix
@@ -16,7 +16,7 @@ buildGoPackage rec {
 
   meta = {
     description = "Print where symbols are defined in Go source code";
-    homepage = "https://github.com/rogpeppe/godef/";
+    homepage = https://github.com/rogpeppe/godef/;
     maintainers = with stdenv.lib.maintainers; [ vdemeester ];
     license = stdenv.lib.licenses.bsd3;
   };
diff --git a/pkgs/development/tools/google-app-engine-go-sdk/default.nix b/pkgs/development/tools/google-app-engine-go-sdk/default.nix
index e6f36b6e32eb..2041491cf80d 100644
--- a/pkgs/development/tools/google-app-engine-go-sdk/default.nix
+++ b/pkgs/development/tools/google-app-engine-go-sdk/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Google App Engine SDK for Go";
     version = version;
-    homepage = "https://cloud.google.com/appengine/docs/go/";
+    homepage = https://cloud.google.com/appengine/docs/go/;
     license = licenses.asl20;
     platforms = ["x86_64-linux" "x86_64-darwin"];
     maintainers = with maintainers; [ lufia ];
diff --git a/pkgs/development/tools/haskell/haste/haste-Cabal.nix b/pkgs/development/tools/haskell/haste/haste-Cabal.nix
deleted file mode 100644
index 45a60172e395..000000000000
--- a/pkgs/development/tools/haskell/haste/haste-Cabal.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-# Haste requires its own patched up version of Cabal that's not on hackage
-{ mkDerivation, array, base, binary, bytestring, containers
-, deepseq, directory, extensible-exceptions, filepath, old-time
-, pretty, process, QuickCheck, regex-posix, stdenv, tasty
-, tasty-hunit, tasty-quickcheck, time, unix
-, fetchFromGitHub
-}:
-
-mkDerivation {
-  pname = "Cabal";
-  version = "1.23.0.0";
-  src = fetchFromGitHub {
-    owner = "valderman";
-    repo = "cabal";
-    rev = "a1962987ba32d5e20090830f50c6afdc78dae005";
-    sha256 = "1gjmscfsikcvgkv6zricpfxvj23wxahndm784lg9cpxrc3pn5hvh";
-  };
-  libraryHaskellDepends = [
-    array base binary bytestring containers deepseq directory filepath
-      pretty process time unix
-  ];
-  testHaskellDepends = [
-    base bytestring containers directory extensible-exceptions filepath
-      old-time pretty process QuickCheck regex-posix tasty tasty-hunit
-      tasty-quickcheck unix
-  ];
-  prePatch = ''
-    rm -rf cabal-install
-    cd Cabal
-    '';
-  doCheck = false;
-  homepage = "http://www.haskell.org/cabal/";
-  description = "A framework for packaging Haskell software";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/pkgs/development/tools/haskell/haste/haste-cabal-install.nix b/pkgs/development/tools/haskell/haste/haste-cabal-install.nix
deleted file mode 100644
index dd140409173e..000000000000
--- a/pkgs/development/tools/haskell/haste/haste-cabal-install.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-# Haste requires its own patched up version of cabal-install that's not on hackage
-{ mkDerivation, array, base, bytestring, Cabal, containers
-, directory, extensible-exceptions, filepath, HTTP, mtl, network
-, network-uri, pretty, process, QuickCheck, random, regex-posix
-, stdenv, stm, tagged, tasty, tasty-hunit, tasty-quickcheck, time
-, unix, zlib
-, fetchFromGitHub
-}:
-
-mkDerivation {
-  pname = "cabal-install";
-  version = "1.23.0.0";
-  src = fetchFromGitHub {
-    owner = "valderman";
-    repo = "cabal";
-    rev = "a1962987ba32d5e20090830f50c6afdc78dae005";
-    sha256 = "1gjmscfsikcvgkv6zricpfxvj23wxahndm784lg9cpxrc3pn5hvh";
-  };
-  isLibrary = false;
-  isExecutable = true;
-  executableHaskellDepends = [
-    array base bytestring Cabal containers directory filepath HTTP mtl
-    network network-uri pretty process random stm time unix zlib
-  ];
-  testHaskellDepends = [
-    array base bytestring Cabal containers directory
-    extensible-exceptions filepath HTTP mtl network network-uri pretty
-    process QuickCheck random regex-posix stm tagged tasty tasty-hunit
-    tasty-quickcheck time unix zlib
-  ];
-  prePatch = ''
-    rm -rf Cabal
-    cd cabal-install
-  '';
-  postInstall = ''
-    mkdir $out/etc
-    mv bash-completion $out/etc/bash_completion.d
-
-    # Manually added by Nix maintainer
-    mv -v $out/etc/bash_completion.d/cabal $out/etc/bash_completion.d/haste-cabal
-  '';
-  doCheck = false;
-  homepage = "http://www.haskell.org/cabal/";
-  description = "The command-line interface for Cabal and Hackage";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/pkgs/development/tools/haskell/haste/haste-compiler.nix b/pkgs/development/tools/haskell/haste/haste-compiler.nix
deleted file mode 100644
index f9aa5abae574..000000000000
--- a/pkgs/development/tools/haskell/haste/haste-compiler.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ mkDerivation
-, overrideCabal
-, super-haste-compiler
-}:
-
-overrideCabal super-haste-compiler (drv: {
-  configureFlags = [ "-f-portable" ];
-  prePatch = ''
-    # Get ghc libdir by invoking ghc and point to haste-cabal binary
-    substituteInPlace src/Haste/Environment.hs \
-      --replace \
-        'hasteGhcLibDir = hasteSysDir' \
-        'hasteGhcLibDir = head $ lines $ either (error . show) id $ unsafePerformIO $ shell $ run "ghc" ["--print-libdir"] ""' \
-      --replace \
-        'hasteCabalBinary = hasteBinDir </> "haste-cabal" ++ binaryExt' \
-        'hasteCabalBinary = "haste-cabal" ++ binaryExt'
-
-    # Don't try to download/install haste-cabal in haste-boot:
-    patch src/haste-boot.hs << EOF
-    @@ -178,10 +178,6 @@
-                             pkgSysLibDir, jsmodSysDir, pkgSysDir]
-
-           mkdir True (hasteCabalRootDir portableHaste)
-    -      case getHasteCabal cfg of
-    -        Download    -> installHasteCabal portableHaste tmpdir
-    -        Prebuilt fp -> copyHasteCabal portableHaste fp
-    -        Source mdir -> buildHasteCabal portableHaste (maybe "../cabal" id mdir)
-
-           -- Spawn off closure download in the background.
-           dir <- pwd -- use absolute path for closure to avoid dir changing race
-    EOF
-  '';
-})
diff --git a/pkgs/development/tools/haskell/intero-nix-shim/default.nix b/pkgs/development/tools/haskell/intero-nix-shim/default.nix
index 7e82518c9b6b..a7ea5b9d5770 100644
--- a/pkgs/development/tools/haskell/intero-nix-shim/default.nix
+++ b/pkgs/development/tools/haskell/intero-nix-shim/default.nix
@@ -22,6 +22,6 @@ mkDerivation {
     ln -s ${cabal-install}/bin/cabal  $out/libexec
     ln -s ${intero       }/bin/intero $out/libexec
   '';
-  homepage = "https://github.com/michalrus/intero-nix-shim";
+  homepage = https://github.com/michalrus/intero-nix-shim;
   license = stdenv.lib.licenses.asl20;
 }
diff --git a/pkgs/development/tools/haskell/lambdabot/default.nix b/pkgs/development/tools/haskell/lambdabot/default.nix
index 85d4bfc93b6a..7282fb4970ee 100644
--- a/pkgs/development/tools/haskell/lambdabot/default.nix
+++ b/pkgs/development/tools/haskell/lambdabot/default.nix
@@ -1,4 +1,4 @@
-{ lib, haskell-lib, fetchpatch, makeWrapper, haskellPackages
+{ lib, haskellLib, fetchpatch, makeWrapper, haskellPackages
 , mueval
 , withDjinn ? true
 , aspell ? null
@@ -25,7 +25,7 @@ let allPkgs = pkgs: mueval.defaultPkgs pkgs ++ [ pkgs.lambdabot-trusted ] ++ pac
     modulesStr = lib.replaceChars ["\n"] [" "] modules;
     configStr = lib.replaceChars ["\n"] [" "] configuration;
 
-in haskell-lib.overrideCabal haskellPackages.lambdabot (self: {
+in haskellLib.overrideCabal haskellPackages.lambdabot (self: {
   patches = (self.patches or []) ++ [ ./custom-config.patch ];
   postPatch = (self.postPatch or "") + ''
     substituteInPlace src/Main.hs \
diff --git a/pkgs/development/tools/haskell/multi-ghc-travis/default.nix b/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
index ed6c7d73fdbe..90c9126c2b94 100644
--- a/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
+++ b/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
@@ -2,15 +2,15 @@
 
 stdenv.mkDerivation rec {
   name = "multi-ghc-travis-${version}";
-  version = "git-2017-07-26";
+  version = "git-2017-07-27";
 
   buildInputs = [ ghc ];
 
   src = fetchFromGitHub {
     owner = "hvr";
     repo = "multi-ghc-travis";
-    rev = "800980d76f7a74f3cdfd76b3dff351d52d2c84ee";
-    sha256 = "03y8b4iz5ly9vkjc551c1bxalg1vl4k2sic327s3vh00jmjgvhz6";
+    rev = "f21804164cf646d682d7da668a625cdbd8baf05a";
+    sha256 = "07l3qzlc2hl7g5wbgqh8ld8ynl004i6m7p903667gbhs7sw03nbl";
   };
 
   installPhase = ''
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Generate .travis.yml for multiple ghc versions";
-    homepage = "https://github.com/hvr/multi-ghc-travis";
+    homepage = https://github.com/hvr/multi-ghc-travis;
     license = licenses.bsd3;
     platforms = ghc.meta.platforms;
     maintainers = with maintainers; [ jb55 peti ];
diff --git a/pkgs/development/tools/heroku/default.nix b/pkgs/development/tools/heroku/default.nix
index 0e0a46c906e3..9c5cbb1aa285 100644
--- a/pkgs/development/tools/heroku/default.nix
+++ b/pkgs/development/tools/heroku/default.nix
@@ -36,7 +36,7 @@ in stdenv.mkDerivation rec {
   version = "3.43.16";
 
   meta = {
-    homepage = "https://toolbelt.heroku.com";
+    homepage = https://toolbelt.heroku.com;
     description = "Everything you need to get started using Heroku";
     maintainers = with maintainers; [ aflatter mirdhyn peterhoeg ];
     license = licenses.mit;
diff --git a/pkgs/development/tools/irony-server/default.nix b/pkgs/development/tools/irony-server/default.nix
index ac5495b98d90..0dcb74b803d2 100644
--- a/pkgs/development/tools/irony-server/default.nix
+++ b/pkgs/development/tools/irony-server/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     description = "The server part of irony.";
     homepage = "https://melpa.org/#/irony";
     maintainers = [ stdenv.lib.maintainers.deepfire ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
     license = stdenv.lib.licenses.free;
   };
 }
diff --git a/pkgs/development/tools/jmespath/default.nix b/pkgs/development/tools/jmespath/default.nix
index aafb5f541443..dd0379e83a7c 100644
--- a/pkgs/development/tools/jmespath/default.nix
+++ b/pkgs/development/tools/jmespath/default.nix
@@ -15,7 +15,7 @@ buildGoPackage rec {
   };
   meta = with stdenv.lib; {
     description = "A JMESPath implementation in Go";
-    homepage = "https://github.com/jmespath/go-jmespath";
+    homepage = https://github.com/jmespath/go-jmespath;
     maintainers = with maintainers; [ cransom ];
     license = licenses.asl20;
   };
diff --git a/pkgs/development/tools/jp/default.nix b/pkgs/development/tools/jp/default.nix
index 2cae6a7fcc87..d46f7b3e8833 100644
--- a/pkgs/development/tools/jp/default.nix
+++ b/pkgs/development/tools/jp/default.nix
@@ -15,7 +15,7 @@ buildGoPackage rec {
   };
   meta = with stdenv.lib; {
     description = "A command line interface to the JMESPath expression language for JSON";
-    homepage = "https://github.com/jmespath/jp";
+    homepage = https://github.com/jmespath/jp;
     maintainers = with maintainers; [ cransom ];
     license = licenses.asl20;
   };
diff --git a/pkgs/development/tools/leaps/default.nix b/pkgs/development/tools/leaps/default.nix
index ecc690ead059..261d16367d40 100644
--- a/pkgs/development/tools/leaps/default.nix
+++ b/pkgs/development/tools/leaps/default.nix
@@ -17,7 +17,7 @@ buildGoPackage rec {
   
   meta = {
     description = "A pair programming tool and library written in Golang";
-    homepage = "https://github.com/jeffail/leaps/";
+    homepage = https://github.com/jeffail/leaps/;
     license = "MIT";
     maintainers = with stdenv.lib.maintainers; [ qknight ];
     meta.platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/development/tools/minizinc/default.nix b/pkgs/development/tools/minizinc/default.nix
index cd9bf94b904a..00c2663e3a46 100644
--- a/pkgs/development/tools/minizinc/default.nix
+++ b/pkgs/development/tools/minizinc/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
 
   # meta is all the information about the package..
   meta = with stdenv.lib; {
-    homepage = "http://www.minizinc.org/";
+    homepage = http://www.minizinc.org/;
     description = "MiniZinc is a medium-level constraint modelling language.";
 
     longDescription = ''
diff --git a/pkgs/development/tools/misc/astyle/default.nix b/pkgs/development/tools/misc/astyle/default.nix
index fb1e4a8ca4b5..9aea35104320 100644
--- a/pkgs/development/tools/misc/astyle/default.nix
+++ b/pkgs/development/tools/misc/astyle/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   installFlags = "INSTALL=install prefix=$$out";
 
   meta = {
-    homepage = "http://astyle.sourceforge.net/";
+    homepage = http://astyle.sourceforge.net/;
     description = "Source code indenter, formatter, and beautifier for C, C++, C# and Java";
     license = stdenv.lib.licenses.lgpl3;
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/development/tools/misc/automake/automake-1.13.x.nix b/pkgs/development/tools/misc/automake/automake-1.13.x.nix
index 77fe2b7b92c2..54e697656d2c 100644
--- a/pkgs/development/tools/misc/automake/automake-1.13.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.13.x.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     branch = "1.13";
-    homepage = "http://www.gnu.org/software/automake/";
+    homepage = http://www.gnu.org/software/automake/;
     description = "GNU standard-compliant makefile generator";
     license = stdenv.lib.licenses.gpl2Plus;
 
diff --git a/pkgs/development/tools/misc/automake/automake-1.14.x.nix b/pkgs/development/tools/misc/automake/automake-1.14.x.nix
index fd074e6b96c8..c797042885a0 100644
--- a/pkgs/development/tools/misc/automake/automake-1.14.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.14.x.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     branch = "1.14";
-    homepage = "http://www.gnu.org/software/automake/";
+    homepage = http://www.gnu.org/software/automake/;
     description = "GNU standard-compliant makefile generator";
     license = stdenv.lib.licenses.gpl2Plus;
 
diff --git a/pkgs/development/tools/misc/automake/automake-1.15.x.nix b/pkgs/development/tools/misc/automake/automake-1.15.x.nix
index 3c4a8d1189e4..49978e9739dc 100644
--- a/pkgs/development/tools/misc/automake/automake-1.15.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.15.x.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     branch = "1.15";
-    homepage = "http://www.gnu.org/software/automake/";
+    homepage = http://www.gnu.org/software/automake/;
     description = "GNU standard-compliant makefile generator";
     license = stdenv.lib.licenses.gpl2Plus;
 
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index d13ea9390da9..dda2a78097a6 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -5,7 +5,7 @@
 }:
 
 let
-  version = "2.28";
+  version = "2.29";
   basename = "binutils-${version}";
   inherit (stdenv.lib) optional optionals optionalString;
   # The prefix prepended to binary names to allow multiple binuntils on the
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/binutils/${basename}.tar.bz2";
-    sha256 = "0wiasgns7i8km8nrxas265sh2dfpsw93b3qw195ipc90w4z475v2";
+    sha256 = "1gqfyksdnj3iir5gzyvlp785mnk60g1pll6zbzbslfchhr4rb8i9";
   };
 
   patches = [
@@ -45,6 +45,15 @@ stdenv.mkDerivation rec {
     # there) and causes a cycle between the lib and bin outputs, so
     # get rid of it.
     ./no-plugins.patch
+
+    # remove after 2.29.1/2.30
+    (fetchurl {
+      url = "https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=patch;h=c6b78c965a96fb152fbd58926edccb5dee2707a5";
+      sha256 = "0rkbq5pf7ffgcggfk4czkxin1091bqjj92an9wxnqkgqwq6cx5yr";
+      name = "readelf-empty-sections.patch";
+    })
+    ./elf-check-orphan-input.patch
+    ./elf-check-orphan-placement.patch
   ];
 
   outputs = [ "out" ]
diff --git a/pkgs/development/tools/misc/binutils/elf-check-orphan-input.patch b/pkgs/development/tools/misc/binutils/elf-check-orphan-input.patch
new file mode 100644
index 000000000000..2ec90128347e
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/elf-check-orphan-input.patch
@@ -0,0 +1,99 @@
+From a388b7afeffad6411686d39dc1c62294da48a814 Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Wed, 2 Aug 2017 05:10:29 -0700
+Subject: [PATCH] Check ELF section header only for ELF output
+
+When placing an orphan input section, check ELF section header only for
+ELF output.
+
+	PR ld/21884
+	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Check
+	ELF section header only for ELF output.
+	* testsuite/ld-elf/pr21884.d: New test.
+	* testsuite/ld-elf/pr21884.t: Likewise.
+	* testsuite/ld-elf/pr21884a.s: Likewise.
+	* testsuite/ld-elf/pr21884b.s: Likewise.
+
+(cherry picked from commit db99ecc08f5b66fbe9cb72e90352c7f77ec71a6e)
+---
+ ld/ChangeLog                   | 10 ++++++++++
+ ld/emultempl/elf32.em          |  3 ++-
+ ld/testsuite/ld-elf/pr21884.d  | 11 +++++++++++
+ ld/testsuite/ld-elf/pr21884.t  |  7 +++++++
+ ld/testsuite/ld-elf/pr21884a.s |  5 +++++
+ ld/testsuite/ld-elf/pr21884b.s |  5 +++++
+ 6 files changed, 40 insertions(+), 1 deletion(-)
+ create mode 100644 ld/testsuite/ld-elf/pr21884.d
+ create mode 100644 ld/testsuite/ld-elf/pr21884.t
+ create mode 100644 ld/testsuite/ld-elf/pr21884a.s
+ create mode 100644 ld/testsuite/ld-elf/pr21884b.s
+
+diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
+index d2551b6..75ded12 100644
+--- a/ld/emultempl/elf32.em
++++ b/ld/emultempl/elf32.em
+@@ -2136,7 +2136,8 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
+     }
+ 
+   /* Look through the script to see where to place this section.  */
+-  if (constraint == 0)
++  if (constraint == 0
++      && link_info.output_bfd->xvec->flavour == bfd_target_elf_flavour)
+     for (os = lang_output_section_find (secname);
+ 	 os != NULL;
+ 	 os = next_matching_output_section_statement (os, 0))
+diff --git a/ld/testsuite/ld-elf/pr21884.d b/ld/testsuite/ld-elf/pr21884.d
+new file mode 100644
+index 0000000..52cd2c1
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr21884.d
+@@ -0,0 +1,11 @@
++#source: pr21884a.s
++#source: pr21884b.s
++#ld: -T pr21884.t
++#objdump: -b binary -s
++#notarget: aarch64*-*-* arm*-*-* nds32*-*-*
++# Skip targets which can't change output format to binary.
++
++.*:     file format binary
++
++Contents of section .data:
++#pass
+diff --git a/ld/testsuite/ld-elf/pr21884.t b/ld/testsuite/ld-elf/pr21884.t
+new file mode 100644
+index 0000000..d483911
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr21884.t
+@@ -0,0 +1,7 @@
++OUTPUT_FORMAT("binary")
++
++ENTRY(_main);
++SECTIONS {
++	. = 0;
++	.setup : { *(.setup) }
++}
+diff --git a/ld/testsuite/ld-elf/pr21884a.s b/ld/testsuite/ld-elf/pr21884a.s
+new file mode 100644
+index 0000000..a3361b2
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr21884a.s
+@@ -0,0 +1,5 @@
++	.text
++	.globl	_main
++	.type _main,%function
++_main:
++	.dc.a bar
+diff --git a/ld/testsuite/ld-elf/pr21884b.s b/ld/testsuite/ld-elf/pr21884b.s
+new file mode 100644
+index 0000000..e533837
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr21884b.s
+@@ -0,0 +1,5 @@
++	.text
++	.globl	bar
++	.type bar,%function
++bar:
++	.byte 0
+-- 
+2.9.3
+
diff --git a/pkgs/development/tools/misc/binutils/elf-check-orphan-placement.patch b/pkgs/development/tools/misc/binutils/elf-check-orphan-placement.patch
new file mode 100644
index 000000000000..7e7566aec43d
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/elf-check-orphan-placement.patch
@@ -0,0 +1,161 @@
+From 36088682f447540fd8666a2c437fa232064044a7 Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Thu, 3 Aug 2017 14:01:34 +0930
+Subject: [PATCH] ELF checks for orphan placement
+
+The loop checking for previous orphan placement should run even when
+the output is non-ELF.
+
+	PR ld/21884
+	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Revert
+	last change.  Rename iself to elfinput.  Expand comments.  Condition
+	ELF checks on having both input and output ELF files.  Extract..
+	(elf_orphan_compatible): ..this new function.
+---
+ ld/ChangeLog          |  8 ++++++
+ ld/emultempl/elf32.em | 76 +++++++++++++++++++++++++++++++--------------------
+ 2 files changed, 55 insertions(+), 29 deletions(-)
+
+diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
+index 75ded12..9ac1840 100644
+--- a/ld/emultempl/elf32.em
++++ b/ld/emultempl/elf32.em
+@@ -2008,6 +2008,29 @@ output_rel_find (asection *sec, int isdyn)
+   return last;
+ }
+ 
++/* Return whether IN is suitable to be part of OUT.  */
++
++static bfd_boolean
++elf_orphan_compatible (asection *in, asection *out)
++{
++  /* Non-zero sh_info implies a section with SHF_INFO_LINK with
++     unknown semantics for the generic linker, or a SHT_REL/SHT_RELA
++     section where sh_info specifies a symbol table.  (We won't see
++     SHT_GROUP, SHT_SYMTAB or SHT_DYNSYM sections here.)  We clearly
++     can't merge SHT_REL/SHT_RELA using differing symbol tables, and
++     shouldn't merge sections with differing unknown semantics.  */
++  if (elf_section_data (out)->this_hdr.sh_info
++      != elf_section_data (in)->this_hdr.sh_info)
++    return FALSE;
++  /* We can't merge two sections with differing SHF_EXCLUDE when doing
++     a relocatable link.  */
++  if (bfd_link_relocatable (&link_info)
++      && ((elf_section_flags (out) ^ elf_section_flags (in)) & SHF_EXCLUDE) != 0)
++    return FALSE;
++  return _bfd_elf_match_sections_by_type (link_info.output_bfd, out,
++					  in->owner, in);
++}
++
+ /* Place an orphan section.  We use this to put random SHF_ALLOC
+    sections in the right segment.  */
+ 
+@@ -2064,8 +2087,9 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
+   lang_output_section_statement_type *os;
+   lang_output_section_statement_type *match_by_name = NULL;
+   int isdyn = 0;
+-  int iself = s->owner->xvec->flavour == bfd_target_elf_flavour;
+-  unsigned int sh_type = iself ? elf_section_type (s) : SHT_NULL;
++  int elfinput = s->owner->xvec->flavour == bfd_target_elf_flavour;
++  int elfoutput = link_info.output_bfd->xvec->flavour == bfd_target_elf_flavour;
++  unsigned int sh_type = elfinput ? elf_section_type (s) : SHT_NULL;
+   flagword flags;
+   asection *nexts;
+ 
+@@ -2073,7 +2097,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
+       && link_info.combreloc
+       && (s->flags & SEC_ALLOC))
+     {
+-      if (iself)
++      if (elfinput)
+ 	switch (sh_type)
+ 	  {
+ 	  case SHT_RELA:
+@@ -2095,6 +2119,8 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
+     }
+ 
+   if (!bfd_link_relocatable (&link_info)
++      && elfinput
++      && elfoutput
+       && (s->flags & SEC_ALLOC) != 0
+       && (elf_section_flags (s) & SHF_GNU_MBIND) != 0)
+     {
+@@ -2135,9 +2161,11 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
+ 	secname = ".mbind.text";
+     }
+ 
+-  /* Look through the script to see where to place this section.  */
+-  if (constraint == 0
+-      && link_info.output_bfd->xvec->flavour == bfd_target_elf_flavour)
++  /* Look through the script to see where to place this section.  The
++     script includes entries added by previous lang_insert_orphan
++     calls, so this loop puts multiple compatible orphans of the same
++     name into a single output section.  */
++  if (constraint == 0)
+     for (os = lang_output_section_find (secname);
+ 	 os != NULL;
+ 	 os = next_matching_output_section_statement (os, 0))
+@@ -2146,29 +2174,19 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
+ 	   lang_insert_orphan to create a new output section.  */
+ 	constraint = SPECIAL;
+ 
+-	/* SEC_EXCLUDE is cleared when doing a relocatable link.  But
+-	   we can't merge 2 input sections with the same name when only
+-	   one of them has SHF_EXCLUDE.  Don't merge 2 sections with
+-	   different sh_info.  */
++	/* Check to see if we already have an output section statement
++	   with this name, and its bfd section has compatible flags.
++	   If the section already exists but does not have any flags
++	   set, then it has been created by the linker, possibly as a
++	   result of a --section-start command line switch.  */
+ 	if (os->bfd_section != NULL
+-	    && (elf_section_data (os->bfd_section)->this_hdr.sh_info
+-		== elf_section_data (s)->this_hdr.sh_info)
+ 	    && (os->bfd_section->flags == 0
+-		|| ((!bfd_link_relocatable (&link_info)
+-		     || (iself && (((elf_section_flags (s)
+-				     ^ elf_section_flags (os->bfd_section))
+-				    & SHF_EXCLUDE) == 0)))
+-		    && ((s->flags ^ os->bfd_section->flags)
++		|| (((s->flags ^ os->bfd_section->flags)
+ 		     & (SEC_LOAD | SEC_ALLOC)) == 0
+-		    && _bfd_elf_match_sections_by_type (link_info.output_bfd,
+-							os->bfd_section,
+-							s->owner, s))))
++		    && (!elfinput
++			|| !elfoutput
++			|| elf_orphan_compatible (s, os->bfd_section)))))
+ 	  {
+-	    /* We already have an output section statement with this
+-	       name, and its bfd section has compatible flags.
+-	       If the section already exists but does not have any flags
+-	       set, then it has been created by the linker, probably as a
+-	       result of a --section-start command line switch.  */
+ 	    lang_add_section (&os->children, s, NULL, os);
+ 	    return os;
+ 	  }
+@@ -2244,8 +2262,8 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
+   else if ((flags & SEC_ALLOC) == 0)
+     ;
+   else if ((flags & SEC_LOAD) != 0
+-	   && ((iself && sh_type == SHT_NOTE)
+-	       || (!iself && CONST_STRNEQ (secname, ".note"))))
++	   && ((elfinput && sh_type == SHT_NOTE)
++	       || (!elfinput && CONST_STRNEQ (secname, ".note"))))
+     place = &hold[orphan_interp];
+   else if ((flags & (SEC_LOAD | SEC_HAS_CONTENTS | SEC_THREAD_LOCAL)) == 0)
+     place = &hold[orphan_bss];
+@@ -2255,8 +2273,8 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
+     place = &hold[orphan_tdata];
+   else if ((flags & SEC_READONLY) == 0)
+     place = &hold[orphan_data];
+-  else if (((iself && (sh_type == SHT_RELA || sh_type == SHT_REL))
+-	    || (!iself && CONST_STRNEQ (secname, ".rel")))
++  else if (((elfinput && (sh_type == SHT_RELA || sh_type == SHT_REL))
++	    || (!elfinput && CONST_STRNEQ (secname, ".rel")))
+ 	   && (flags & SEC_LOAD) != 0)
+     place = &hold[orphan_rel];
+   else if ((flags & SEC_CODE) == 0)
+-- 
+2.9.3
+
diff --git a/pkgs/development/tools/misc/ccache/default.nix b/pkgs/development/tools/misc/ccache/default.nix
index 765fdfb2ea45..65c7e633f8e2 100644
--- a/pkgs/development/tools/misc/ccache/default.nix
+++ b/pkgs/development/tools/misc/ccache/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, runCommand, zlib }:
+{ stdenv, fetchurl, fetchpatch, runCommand, zlib, makeWrapper }:
 
 let ccache = stdenv.mkDerivation rec {
   name = "ccache-${version}";
@@ -32,18 +32,16 @@ let ccache = stdenv.mkDerivation rec {
         isGNU = unwrappedCC.isGNU or false;
       };
       inherit (unwrappedCC) lib;
+      nativeBuildInputs = [ makeWrapper ];
       buildCommand = ''
         mkdir -p $out/bin
 
         wrap() {
           local cname="$1"
           if [ -x "${unwrappedCC}/bin/$cname" ]; then
-            cat > $out/bin/$cname << EOF
-        #!/bin/sh
-        ${extraConfig}
-        exec ${ccache}/bin/ccache ${unwrappedCC}/bin/$cname "\$@"
-        EOF
-            chmod +x $out/bin/$cname
+            makeWrapper ${ccache}/bin/ccache $out/bin/$cname \
+              --run ${stdenv.lib.escapeShellArg extraConfig} \
+              --add-flags ${unwrappedCC}/bin/$cname
           fi
         }
 
diff --git a/pkgs/development/tools/misc/creduce/default.nix b/pkgs/development/tools/misc/creduce/default.nix
index c8378e06df6d..37ec63627b15 100644
--- a/pkgs/development/tools/misc/creduce/default.nix
+++ b/pkgs/development/tools/misc/creduce/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A C program reducer";
-    homepage = "https://embed.cs.utah.edu/creduce";
+    homepage = https://embed.cs.utah.edu/creduce;
     # Officially, the license is: https://github.com/csmith-project/creduce/blob/master/COPYING
     license = licenses.ncsa;
     longDescription = ''
diff --git a/pkgs/development/tools/misc/csmith/default.nix b/pkgs/development/tools/misc/csmith/default.nix
index 20d149f3efe0..9a8c24fa1685 100644
--- a/pkgs/development/tools/misc/csmith/default.nix
+++ b/pkgs/development/tools/misc/csmith/default.nix
@@ -22,7 +22,8 @@ stdenv.mkDerivation rec {
       --replace '../compiler_test.pl' $out/bin/compiler_test.pl \
       --replace '../$CONFIG_FILE' '$CONFIG_FILE'
 
-    wrapProgram $out/bin/launchn.pl --prefix PERL5LIB : "$PERL5LIB" $out/bin/launchn.pl
+    wrapProgram $out/bin/launchn.pl \
+      --prefix PERL5LIB : "$PERL5LIB"
 
     mkdir -p $out/share/csmith
     mv $out/bin/compiler_test.in $out/share/csmith/
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A random generator of C programs";
-    homepage = "https://embed.cs.utah.edu/csmith";
+    homepage = https://embed.cs.utah.edu/csmith;
     # Officially, the license is this: https://github.com/csmith-project/csmith/blob/master/COPYING
     license = licenses.bsd2;
     longDescription = ''
diff --git a/pkgs/development/tools/misc/distcc/default.nix b/pkgs/development/tools/misc/distcc/default.nix
index 32e212a09214..17ef66470505 100644
--- a/pkgs/development/tools/misc/distcc/default.nix
+++ b/pkgs/development/tools/misc/distcc/default.nix
@@ -71,7 +71,7 @@ let
 
     meta = {
       description = "A fast, free distributed C/C++ compiler";
-      homepage = "http://distcc.org";
+      homepage = http://distcc.org;
       license = "GPL";
 
       platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/development/tools/misc/elfkickers/default.nix b/pkgs/development/tools/misc/elfkickers/default.nix
index 603f8c0bef60..905fa0d40935 100644
--- a/pkgs/development/tools/misc/elfkickers/default.nix
+++ b/pkgs/development/tools/misc/elfkickers/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
-    homepage = "http://www.muppetlabs.com/~breadbox/software/elfkickers.html";
+    homepage = http://www.muppetlabs.com/~breadbox/software/elfkickers.html;
     description = "A collection of programs that access and manipulate ELF files";
     platforms = platforms.linux;
     license = licenses.gpl2;
diff --git a/pkgs/development/tools/misc/elfutils/debug-info-from-env.patch b/pkgs/development/tools/misc/elfutils/debug-info-from-env.patch
new file mode 100644
index 000000000000..409f1311c315
--- /dev/null
+++ b/pkgs/development/tools/misc/elfutils/debug-info-from-env.patch
@@ -0,0 +1,27 @@
+Look up .build-id files relative to the directories in the
+colon-separated environment variable NIX_DEBUG_INFO_DIRS, unless
+overriden by --debuginfo-path.
+
+diff -ru elfutils-0.169-orig/libdwfl/argp-std.c elfutils-0.169/libdwfl/argp-std.c
+--- elfutils-0.169-orig/libdwfl/argp-std.c	2017-05-02 23:05:52.000000000 +0200
++++ elfutils-0.169/libdwfl/argp-std.c	2017-07-28 16:08:06.739558106 +0200
+@@ -376,5 +376,7 @@
+ const struct argp *
+ dwfl_standard_argp (void)
+ {
++  debuginfo_path = getenv("NIX_DEBUG_INFO_DIRS");
++
+   return &libdwfl_argp;
+ }
+diff -ru elfutils-0.169-orig/src/stack.c elfutils-0.169/src/stack.c
+--- elfutils-0.169-orig/src/stack.c	2017-02-24 11:55:28.000000000 +0100
++++ elfutils-0.169/src/stack.c	2017-07-28 15:50:06.743196696 +0200
+@@ -631,6 +631,8 @@
+   /* Set locale.  */
+   (void) setlocale (LC_ALL, "");
+ 
++  debuginfo_path = getenv("NIX_DEBUG_INFO_DIRS");
++
+   const struct argp_option options[] =
+     {
+       { NULL, 0, NULL, 0, N_("Input selection options:"), 0 },
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index 6e80f0907bc6..591e263205c8 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -1,15 +1,17 @@
-{ lib, stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext, xz }:
+{ lib, stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext, xz, setupDebugInfoDirs }:
 
 # TODO: Look at the hardcoded paths to kernel, modules etc.
 stdenv.mkDerivation rec {
   name = "elfutils-${version}";
-  version = "0.168";
+  version = "0.169";
 
   src = fetchurl {
     url = "https://sourceware.org/elfutils/ftp/${version}/${name}.tar.bz2";
-    sha256 = "0xn2fbgda1i703csfs35frvm7l068ybmay4ssrykqdx17f4hg3dq";
+    sha256 = "1hiv1yqig3292dwqhrwsxwk3qjalxp5fpl8yphwbfwh8ng3zl4ll";
   };
 
+  patches = ./debug-info-from-env.patch;
+
   hardeningDisable = [ "format" ];
 
   # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
@@ -17,6 +19,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ m4 bison flex gettext bzip2 ];
   buildInputs = [ zlib bzip2 xz ];
 
+  propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
+
   configureFlags =
     [ "--program-prefix=eu-" # prevent collisions with binutils
       "--enable-deterministic-archives"
diff --git a/pkgs/development/tools/misc/gdb/debug-info-from-env.patch b/pkgs/development/tools/misc/gdb/debug-info-from-env.patch
new file mode 100644
index 000000000000..ad6dca6749e4
--- /dev/null
+++ b/pkgs/development/tools/misc/gdb/debug-info-from-env.patch
@@ -0,0 +1,81 @@
+Look up .build-id files relative to the directories in the
+colon-separated environment variable NIX_DEBUG_INFO_DIRS, in addition
+to the existing debug-file-directory setting.
+
+diff -ru --exclude '*gcore' --exclude '*pdtrace' gdb-8.0-orig/gdb/build-id.c gdb-8.0/gdb/build-id.c
+--- gdb-8.0-orig/gdb/build-id.c	2017-06-04 17:51:26.000000000 +0200
++++ gdb-8.0/gdb/build-id.c	2017-07-28 13:18:10.797375927 +0200
+@@ -67,8 +67,8 @@
+ 
+ /* See build-id.h.  */
+ 
+-gdb_bfd_ref_ptr
+-build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
++static gdb_bfd_ref_ptr
++build_id_to_debug_bfd_in (const char *directories, size_t build_id_len, const bfd_byte *build_id)
+ {
+   char *link, *debugdir;
+   VEC (char_ptr) *debugdir_vec;
+@@ -78,7 +78,7 @@
+   int alloc_len;
+ 
+   /* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */
+-  alloc_len = (strlen (debug_file_directory)
++  alloc_len = (strlen (directories)
+ 	       + (sizeof "/.build-id/" - 1) + 1
+ 	       + 2 * build_id_len + (sizeof ".debug" - 1) + 1);
+   link = (char *) alloca (alloc_len);
+@@ -86,7 +86,7 @@
+   /* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
+      cause "/.build-id/..." lookups.  */
+ 
+-  debugdir_vec = dirnames_to_char_ptr_vec (debug_file_directory);
++  debugdir_vec = dirnames_to_char_ptr_vec (directories);
+   back_to = make_cleanup_free_char_ptr_vec (debugdir_vec);
+ 
+   for (ix = 0; VEC_iterate (char_ptr, debugdir_vec, ix, debugdir); ++ix)
+@@ -137,6 +137,30 @@
+   return abfd;
+ }
+ 
++gdb_bfd_ref_ptr
++build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
++{
++  gdb_bfd_ref_ptr abfd = build_id_to_debug_bfd_in(debug_file_directory, build_id_len, build_id);
++
++  if (abfd != NULL)
++    return abfd;
++
++  static int init = 0;
++  static char *env_var;
++  if (!init)
++    {
++      env_var = getenv("NIX_DEBUG_INFO_DIRS");
++      init = 1;
++    }
++
++  if (env_var)
++    {
++      abfd = build_id_to_debug_bfd_in(env_var, build_id_len, build_id);
++    }
++
++  return abfd;
++}
++
+ /* See build-id.h.  */
+ 
+ char *
+diff -ru --exclude '*gcore' --exclude '*pdtrace' gdb-8.0-orig/gdb/symfile.c gdb-8.0/gdb/symfile.c
+--- gdb-8.0-orig/gdb/symfile.c	2017-06-04 17:51:27.000000000 +0200
++++ gdb-8.0/gdb/symfile.c	2017-07-28 12:54:05.401586174 +0200
+@@ -1415,8 +1415,8 @@
+ 			   struct cmd_list_element *c, const char *value)
+ {
+   fprintf_filtered (file,
+-		    _("The directory where separate debug "
+-		      "symbols are searched for is \"%s\".\n"),
++		    _("The directories where separate debug "
++		      "symbols are searched for are \"%s\".\n"),
+ 		    value);
+ }
+ 
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 78dd4a1e3f55..410fd36ef252 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -11,6 +11,8 @@
 
 # Additional dependencies for GNU/Hurd.
 , mig ? null, hurd ? null
+
+, setupDebugInfoDirs
 }:
 
 let
@@ -32,7 +34,9 @@ stdenv.mkDerivation rec {
     sha256 = "1vplyf8v70yn0rdqjx6awl9nmfbwaj5ynwwjxwa71rhp97z4z8pn";
   };
 
-  nativeBuildInputs = [ pkgconfig texinfo perl ]
+  patches = [ ./debug-info-from-env.patch ];
+
+  nativeBuildInputs = [ pkgconfig texinfo perl setupDebugInfoDirs ]
     # TODO(@Ericson2314) not sure if should be host or target
     ++ stdenv.lib.optional targetPlatform.isHurd mig;
 
@@ -41,6 +45,8 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional targetPlatform.isHurd hurd
     ++ stdenv.lib.optional doCheck dejagnu;
 
+  propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
+
   enableParallelBuilding = true;
 
   # darwin build fails with format hardening since v7.12
@@ -60,6 +66,13 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional (!pythonSupport) "--without-python"
     ++ stdenv.lib.optional multitarget "--enable-targets=all";
 
+  preConfigure =
+    # Not sure why this is causing problems, now that the stdenv
+    # exports CPP=cpp the build fails with strange errors on darwin.
+    stdenv.lib.optionalString stdenv.cc.isClang ''
+      unset CPP
+    '';
+
   postInstall =
     '' # Remove Info files already provided by Binutils and other packages.
        rm -v $out/share/info/bfd.info
diff --git a/pkgs/development/tools/misc/gede/default.nix b/pkgs/development/tools/misc/gede/default.nix
index 24f099a15337..9e2f35875583 100644
--- a/pkgs/development/tools/misc/gede/default.nix
+++ b/pkgs/development/tools/misc/gede/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Graphical frontend (GUI) to GDB";
-    homepage = "http://gede.acidron.com";
+    homepage = http://gede.acidron.com;
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ juliendehos ];
diff --git a/pkgs/development/tools/misc/gnum4/default.nix b/pkgs/development/tools/misc/gnum4/default.nix
index fbbd6cc4d6f8..33ea78907468 100644
--- a/pkgs/development/tools/misc/gnum4/default.nix
+++ b/pkgs/development/tools/misc/gnum4/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, hostPlatform, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "gnum4-1.4.18";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   configureFlags = "--with-syscmd-shell=${stdenv.shell}";
 
   # Upstream is aware of it; it may be in the next release.
-  patches = [ ./s_isdir.patch ];
+  patches = [ ./s_isdir.patch ] ++ stdenv.lib.optional hostPlatform.isDarwin stdenv.secure-format-patch;
 
   # FIXME needs gcc 4.9 in bootstrap tools
   hardeningDisable = [ "stackprotector" ];
diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix
index fe1bb771fcad..128ce6008fa8 100644
--- a/pkgs/development/tools/misc/hydra/default.nix
+++ b/pkgs/development/tools/misc/hydra/default.nix
@@ -62,15 +62,15 @@ let
   };
 in releaseTools.nixBuild rec {
   name = "hydra-${version}";
-  version = "2017-06-22";
+  version = "2017-07-27";
 
   inherit stdenv;
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "hydra";
-    rev = "803833aba77e1082c14857aa26933fc7fe5ae190";
-    sha256 = "1cnxpsan8l6fnbr73n0qxxq1szlda1n3qfkk9k9ic8ijk7md4pvs";
+    rev = "3fc320db320c9aa5180c54e77513f1bcb7407079";
+    sha256 = "0kml2rvy5pz8pzl23vfib5vrwxccff9j1jmyq926qv7f5kbzy61b";
   };
 
   buildInputs =
diff --git a/pkgs/development/tools/misc/intltool/default.nix b/pkgs/development/tools/misc/intltool/default.nix
index 3c5dacb6f65e..537541e37bb7 100644
--- a/pkgs/development/tools/misc/intltool/default.nix
+++ b/pkgs/development/tools/misc/intltool/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   patches = [(fetchpatch {
     name = "perl-5.22.patch";
     url = "https://anonscm.debian.org/viewvc/pkg-gnome/desktop/unstable/intltool"
-      + "/debian/patches/perl5.22-regex-fixes.patch?revision=47258&view=co";
+      + "/debian/patches/perl5.22-regex-fixes?revision=47258&view=co&pathrev=47258";
     sha256 = "17clqczb9fky7hp8czxa0fy82b5478irvz4f3fnans3sqxl95hx3";
   })];
 
diff --git a/pkgs/development/tools/misc/lit/default.nix b/pkgs/development/tools/misc/lit/default.nix
index adc5ba967583..af792c0c6b96 100644
--- a/pkgs/development/tools/misc/lit/default.nix
+++ b/pkgs/development/tools/misc/lit/default.nix
@@ -15,7 +15,7 @@ python2.pkgs.buildPythonApplication rec {
 
   meta = {
     description = "Portable tool for executing LLVM and Clang style test suites";
-    homepage = "http://llvm.org/docs/CommandGuide/lit.html";
+    homepage = http://llvm.org/docs/CommandGuide/lit.html;
     license = lib.licenses.ncsa;
     maintainers = with lib.maintainers; [ dtzWill ];
   };
diff --git a/pkgs/development/tools/misc/ninka/default.nix b/pkgs/development/tools/misc/ninka/default.nix
index 08631fd0352b..9cd1a56e68fe 100644
--- a/pkgs/development/tools/misc/ninka/default.nix
+++ b/pkgs/development/tools/misc/ninka/default.nix
@@ -28,7 +28,7 @@ buildPerlPackage rec {
 
   meta = with stdenv.lib; {
     description = "A sentence based license detector";
-    homepage = "http://ninka.turingmachine.org/";
+    homepage = http://ninka.turingmachine.org/;
     license = licenses.gpl2;
     maintainers = [ maintainers.vrthra ];
     platforms = platforms.all;
diff --git a/pkgs/development/tools/misc/rolespec/default.nix b/pkgs/development/tools/misc/rolespec/default.nix
index 6eb13bb242da..1e85e87c5378 100644
--- a/pkgs/development/tools/misc/rolespec/default.nix
+++ b/pkgs/development/tools/misc/rolespec/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/nickjj/rolespec";
+    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
diff --git a/pkgs/development/tools/misc/srecord/default.nix b/pkgs/development/tools/misc/srecord/default.nix
index 9d0e2d7430e8..94a452ce0836 100644
--- a/pkgs/development/tools/misc/srecord/default.nix
+++ b/pkgs/development/tools/misc/srecord/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     homepage = http://srecord.sourceforge.net/;
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.bjornfor ];
-    platforms = platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/misc/swig/3.x.nix b/pkgs/development/tools/misc/swig/3.x.nix
index 2a6b6880183a..9b4fd05dc0a0 100644
--- a/pkgs/development/tools/misc/swig/3.x.nix
+++ b/pkgs/development/tools/misc/swig/3.x.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "swig-${version}";
-  version = "3.0.10";
+  version = "3.0.12";
 
   src = fetchFromGitHub {
     owner = "swig";
     repo = "swig";
     rev = "rel-${version}";
-    sha256 = "049rj883r9mf2bgabj3b03p7cnmqgl5939lmh8v5nnia24zb51jg";
+    sha256 = "1wyffskbkzj5zyhjnnpip80xzsjcr3p0q5486z3wdwabnysnhn8n";
   };
 
   nativeBuildInputs = [ autoconf automake libtool bison ];
diff --git a/pkgs/development/tools/misc/texinfo/5.2.nix b/pkgs/development/tools/misc/texinfo/5.2.nix
index d01a2f9cdd06..571af764fcf7 100644
--- a/pkgs/development/tools/misc/texinfo/5.2.nix
+++ b/pkgs/development/tools/misc/texinfo/5.2.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   doCheck = !stdenv.isDarwin;
 
   meta = {
-    homepage = "http://www.gnu.org/software/texinfo/";
+    homepage = http://www.gnu.org/software/texinfo/;
     description = "The GNU documentation system";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/tools/misc/texinfo/6.3.nix b/pkgs/development/tools/misc/texinfo/6.3.nix
index b75878b8d332..704611e315a3 100644
--- a/pkgs/development/tools/misc/texinfo/6.3.nix
+++ b/pkgs/development/tools/misc/texinfo/6.3.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     && !stdenv.isDarwin && !stdenv.isSunOS/*flaky*/;
 
   meta = with stdenv.lib; {
-    homepage = "http://www.gnu.org/software/texinfo/";
+    homepage = http://www.gnu.org/software/texinfo/;
     description = "The GNU documentation system";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/tools/misc/unifdef/default.nix b/pkgs/development/tools/misc/unifdef/default.nix
index 19dd907b73b9..8fc268423505 100644
--- a/pkgs/development/tools/misc/unifdef/default.nix
+++ b/pkgs/development/tools/misc/unifdef/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "http://dotat.at/prog/unifdef/";
+    homepage = http://dotat.at/prog/unifdef/;
     description = "Selectively remove C preprocessor conditionals";
     license = licenses.bsd2;
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/misc/universal-ctags/default.nix b/pkgs/development/tools/misc/universal-ctags/default.nix
index 903359f5c762..b0d5bcd28f79 100644
--- a/pkgs/development/tools/misc/universal-ctags/default.nix
+++ b/pkgs/development/tools/misc/universal-ctags/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A maintained ctags implementation";
-    homepage = "https://ctags.io/";
+    homepage = https://ctags.io/;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     # universal-ctags is preferred over emacs's ctags
diff --git a/pkgs/development/tools/mypy/default.nix b/pkgs/development/tools/mypy/default.nix
index eb6e50840a5b..a68b29dee248 100644
--- a/pkgs/development/tools/mypy/default.nix
+++ b/pkgs/development/tools/mypy/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, fetchurl, python35Packages }:
-python35Packages.buildPythonApplication rec {
-  name = "mypy-${version}";
-  version = "0.501";
+{ stdenv, fetchPypi, buildPythonApplication, lxml, typed-ast }:
+
+buildPythonApplication rec {
+  name = "${pname}-${version}";
+  pname = "mypy";
+  version = "0.511";
 
   # Tests not included in pip package.
   doCheck = false;
 
-  src = fetchurl {
-    url = "mirror://pypi/m/mypy/${name}.tar.gz";
-    sha256 = "164g3dq2vzxa53n9lgvmbapg41qiwcxk1w9mvzmnqksvql5vm60h";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vmfyi6zh49mi7rmns5hjgpqshq7islxwsgp80j1izf82r8xgx1z";
   };
 
-  propagatedBuildInputs = with python35Packages; [ lxml typed-ast ];
+  propagatedBuildInputs = [ lxml typed-ast ];
 
   meta = with stdenv.lib; {
     description = "Optional static typing for Python";
     homepage    = "http://www.mypy-lang.org";
     license     = licenses.mit;
-    maintainers = with maintainers; [ martingms ];
+    maintainers = with maintainers; [ martingms lnl7 ];
   };
 }
diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index 6f0d71d76b18..4680785ac7c2 100644
--- a/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/pkgs/development/tools/ocaml/merlin/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "An editor-independent tool to ease the development of programs in OCaml";
-    homepage = "http://the-lambda-church.github.io/merlin/";
+    homepage = http://the-lambda-church.github.io/merlin/;
     license = licenses.mit;
     maintainers = [ maintainers.vbgl ];
   };
diff --git a/pkgs/development/tools/ocaml/obelisk/default.nix b/pkgs/development/tools/ocaml/obelisk/default.nix
new file mode 100644
index 000000000000..1ec0fef49d38
--- /dev/null
+++ b/pkgs/development/tools/ocaml/obelisk/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+	name = "obelisk-${version}";
+	version = "0.2.0";
+	src = fetchFromGitHub {
+		owner = "Lelio-Brun";
+		repo = "Obelisk";
+		rev = "v${version}";
+		sha256 = "0kbadib53x7mzqri9asd8fmhl4xfgk4ajgzd7rlq3irf2j3bmcqp";
+	};
+
+	buildInputs = with ocamlPackages; [ ocaml findlib ocamlbuild menhir ];
+
+	installFlags = [ "BINDIR=$(out)/bin" ];
+
+	meta = {
+		description = "A simple tool which produces pretty-printed output from a Menhir parser file (.mly)";
+		license = stdenv.lib.licenses.mit;
+		maintainers = [ stdenv.lib.maintainers.vbgl ];
+		inherit (src.meta) homepage;
+		inherit (ocamlPackages.ocaml.meta) platforms;
+	};
+}
diff --git a/pkgs/development/tools/ocaml/ocp-indent/1.5.2.nix b/pkgs/development/tools/ocaml/ocp-indent/1.5.2.nix
index ee70a80b6af5..bdc75766bbf7 100644
--- a/pkgs/development/tools/ocaml/ocp-indent/1.5.2.nix
+++ b/pkgs/development/tools/ocaml/ocp-indent/1.5.2.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "http://typerex.ocamlpro.com/ocp-indent.html";
+    homepage = http://typerex.ocamlpro.com/ocp-indent.html;
     description = "A customizable tool to indent OCaml code";
     license = licenses.gpl3;
     platforms = ocaml.meta.platforms or [];
diff --git a/pkgs/development/tools/ocaml/ocp-indent/default.nix b/pkgs/development/tools/ocaml/ocp-indent/default.nix
index 500002bed444..f96b7888db0f 100644
--- a/pkgs/development/tools/ocaml/ocp-indent/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-indent/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "http://typerex.ocamlpro.com/ocp-indent.html";
+    homepage = http://typerex.ocamlpro.com/ocp-indent.html;
     description = "A customizable tool to indent OCaml code";
     license = licenses.gpl3;
     platforms = ocaml.meta.platforms or [];
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index bcf08712ccb1..e1b52102907b 100644
--- a/pkgs/development/tools/packer/default.nix
+++ b/pkgs/development/tools/packer/default.nix
@@ -1,7 +1,7 @@
 { stdenv, buildGoPackage, fetchFromGitHub }:
 buildGoPackage rec {
   name = "packer-${version}";
-  version = "1.0.0";
+  version = "1.0.3";
 
   goPackagePath = "github.com/mitchellh/packer";
 
@@ -11,9 +11,11 @@ buildGoPackage rec {
     owner = "mitchellh";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "16hdh3iwvdg1jk3pswa9r9lq4qkhds1lrqwl19vd1v2yz2r76kzi";
+    sha256 = "1bd0rv93pxlv58c0x1d4dsjq4pg5qwrm2p7qw83pca7izlncgvfr";
   };
 
+  goDeps = ./deps.nix;
+
   meta = with stdenv.lib; {
     description = "A tool for creating identical machine images for multiple platforms from a single source configuration";
     homepage    = http://www.packer.io;
diff --git a/pkgs/development/tools/packer/deps.nix b/pkgs/development/tools/packer/deps.nix
new file mode 100644
index 000000000000..544facda0159
--- /dev/null
+++ b/pkgs/development/tools/packer/deps.nix
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "github.com/hashicorp/packer";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/packer";
+      rev = "07decf99adc272a386e3a013846248810d9aa690";
+      sha256 = "17rrzrlr48spadb9fymn1a0blqggs2mfmqbwfxs0pnw66mhd0fzz";
+    };
+  }
+]
diff --git a/pkgs/development/tools/parsing/bison/2.x.nix b/pkgs/development/tools/parsing/bison/2.x.nix
index 5d4da29e9b0c..d760cec62a04 100644
--- a/pkgs/development/tools/parsing/bison/2.x.nix
+++ b/pkgs/development/tools/parsing/bison/2.x.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   # M4 = "${m4}/bin/m4";
 
   meta = {
-    homepage = "http://www.gnu.org/software/bison/";
+    homepage = http://www.gnu.org/software/bison/;
     description = "Yacc-compatible parser generator";
     license = stdenv.lib.licenses.gpl3Plus;
 
diff --git a/pkgs/development/tools/parsing/bison/3.x.nix b/pkgs/development/tools/parsing/bison/3.x.nix
index ebbee4e693dc..f4d02043066e 100644
--- a/pkgs/development/tools/parsing/bison/3.x.nix
+++ b/pkgs/development/tools/parsing/bison/3.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, m4, perl, help2man }:
+{ stdenv, hostPlatform, fetchurl, m4, perl, help2man }:
 
 stdenv.mkDerivation rec {
   name = "bison-3.0.4";
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "b67fd2daae7a64b5ba862c66c07c1addb9e6b1b05c5f2049392cfd8a2172952e";
   };
 
+  patches = stdenv.lib.optional hostPlatform.isDarwin stdenv.secure-format-patch;
+
   nativeBuildInputs = [ m4 perl ] ++ stdenv.lib.optional stdenv.isSunOS help2man;
   propagatedBuildInputs = [ m4 ];
 
@@ -15,7 +17,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "stackprotector" ];
 
   meta = {
-    homepage = "http://www.gnu.org/software/bison/";
+    homepage = http://www.gnu.org/software/bison/;
     description = "Yacc-compatible parser generator";
     license = stdenv.lib.licenses.gpl3Plus;
 
diff --git a/pkgs/development/tools/parsing/flex/2.5.35.nix b/pkgs/development/tools/parsing/flex/2.5.35.nix
index 97ee871c87e9..f3357de867ea 100644
--- a/pkgs/development/tools/parsing/flex/2.5.35.nix
+++ b/pkgs/development/tools/parsing/flex/2.5.35.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, bison, m4 }:
+{ stdenv, fetchurl, autoreconfHook, flex, bison, texinfo, help2man, m4 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "flex-2.5.35";
 
   src = fetchurl {
-    url = mirror://sourceforge/flex/flex-2.5.35.tar.bz2;
-    sha256 = "0ysff249mwhq0053bw3hxh58djc0gy7vjan2z1krrf9n5d5vvv0b";
+    url = https://github.com/westes/flex/archive/flex-2-5-35.tar.gz;
+    sha256 = "0wh06nix8bd4w1aq4k2fbbkdq5i30a9lxz3xczf3ff28yy0kfwzm";
   };
 
-  buildInputs = [ bison ];
+  nativeBuildInputs = [ flex bison texinfo help2man autoreconfHook ];
 
   propagatedNativeBuildInputs = [ m4 ];
 
diff --git a/pkgs/development/tools/parsing/flex/default.nix b/pkgs/development/tools/parsing/flex/default.nix
index 3bb34f5bc907..addf3b6197a3 100644
--- a/pkgs/development/tools/parsing/flex/default.nix
+++ b/pkgs/development/tools/parsing/flex/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "flex-${version}";
-  version = "2.6.3";
+  version = "2.6.4";
 
   src = fetchurl {
     url = "https://github.com/westes/flex/releases/download/v${version}/flex-${version}.tar.gz";
-    sha256 = "1an2cn2z85mkpgqcinh1fhhcd7993qm2lil1yxic8iz76ci79ck8";
+    sha256 = "15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8";
   };
 
   buildInputs = [ bison ];
diff --git a/pkgs/development/tools/phantomjs2/default.nix b/pkgs/development/tools/phantomjs2/default.nix
index 88fd2b559848..8c03c32655a9 100644
--- a/pkgs/development/tools/phantomjs2/default.nix
+++ b/pkgs/development/tools/phantomjs2/default.nix
@@ -1,6 +1,7 @@
-{ stdenv, fetchgit,
-  bison2, flex, fontconfig, freetype, gperf, icu, openssl, libjpeg, libpng, perl, python, ruby, sqlite,
-  darwin, writeScriptBin, cups
+{ stdenv, fetchFromGitHub, fetchpatch
+, bison2, flex, fontconfig, freetype, gperf, icu, openssl, libjpeg
+, libpng, perl, python, ruby, sqlite, qtwebkit, qmake, qtbase
+, darwin, writeScriptBin, cups
 }:
 
 let
@@ -35,54 +36,54 @@ in stdenv.mkDerivation rec {
   name = "phantomjs-${version}";
   version = "2.1.1";
 
-  # needs git submodules, so can't use fetchFromGitHub
-  src = fetchgit {
-    rev = "refs/tags/${version}";
-    url = "https://github.com/ariya/phantomjs.git";
-    sha256 = "1gyc8qxn8v4vm4lgd9njrprz46fg1j5ziq0mm888q8ms0p7jy2pi";
+  src = fetchFromGitHub {
+    owner = "ariya";
+    repo = "phantomjs";
+    rev = version;
+    sha256 = "1zsbpk1sgh9a16f1a5nx3qvk77ibjn812wqkxqck8n6fia85m5iq";
   };
 
-  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 = ''
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [
+    bison2 flex fontconfig freetype gperf icu openssl
+    libjpeg libpng perl python ruby sqlite qtwebkit qtbase
+  ] ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+    AGL ApplicationServices AppKit Cocoa OpenGL
+    darwin.libobjc fakeClang cups
+  ]);
+
+  patches = [
+    (fetchpatch {
+      url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/build-hardening.patch?id=42c9154d8c87c9fe434908259b0eddde4d892ca3";
+      sha256 = "1qs1r76w90qgpw742i7lf0y3b7m9zh5wxcbrhrak6mq1kqaphqb5";
+    })
+    (fetchpatch {
+      url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/build-qt-components.patch?id=9b5c1ce95a7044ebffc634f773edf7d4eb9b6cd3";
+      sha256 = "1fw2q59aqcks3abvwkqg9903yif6aivdsznc0h6frhhjvpp19vsb";
+    })
+    (fetchpatch {
+      url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/build-qt55-evaluateJavaScript.patch?id=9b5c1ce95a7044ebffc634f773edf7d4eb9b6cd3";
+      sha256 = "1avig9cfny8kv3s4mf3mdzvf3xlzgyh351yzwc4bkpnjvzv4fmq6";
+    })
+    (fetchpatch {
+      url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/build-qt55-no-websecurity.patch?id=9b5c1ce95a7044ebffc634f773edf7d4eb9b6cd3";
+      sha256 = "1nykqpxa7lcf9iarz5lywgg3v3b1h19iwvjdg4kgq0ai6idhcab8";
+    })
+    (fetchpatch {
+      url = "https://anonscm.debian.org/cgit/collab-maint/phantomjs.git/plain/debian/patches/build-qt55-print.patch?id=9b5c1ce95a7044ebffc634f773edf7d4eb9b6cd3";
+      sha256 = "1fydmdjxnplglpbd3ypaih5l237jkxjirpdhzz92mcpy29yla6jw";
+    })
+    ./system-qtbase.patch
+  ];
+
+  postPatch = ''
     patchShebangs .
-    sed -i -e 's|/bin/pwd|pwd|' src/qt/qtbase/configure
-    touch src/qt/{qtbase,qtwebkit,3rdparty}/.git
-  '' + 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
+    substituteInPlace src/phantomjs.pro \
+      --replace "QT_MINOR_VERSION, 5" "QT_MINOR_VERSION, 9"
   '';
 
   __impureHostDeps = stdenv.lib.optional stdenv.isDarwin "/usr/lib/libicucore.dylib";
 
-  buildPhase = "./build.py --confirm -j$NIX_BUILD_CORES";
-
   enableParallelBuilding = true;
 
   installPhase = ''
@@ -99,6 +100,10 @@ in stdenv.mkDerivation rec {
     $out/bin/phantomjs
   '';
 
+  preFixup = ''
+    rm -r ../__nix_qt5__
+  '';
+
   meta = with stdenv.lib; {
     description = "Headless WebKit with JavaScript API";
     longDescription = ''
diff --git a/pkgs/development/tools/phantomjs2/system-qtbase.patch b/pkgs/development/tools/phantomjs2/system-qtbase.patch
new file mode 100644
index 000000000000..743372b0f0bc
--- /dev/null
+++ b/pkgs/development/tools/phantomjs2/system-qtbase.patch
@@ -0,0 +1,13 @@
+--- a/build.py
++++ b/build.py
+@@ -80,9 +80,9 @@
+ def qmakePath():
+     exe = "qmake"
+     if platform.system() == "Windows":
+         exe += ".exe"
+-    return os.path.abspath("src/qt/qtbase/bin/" + exe)
++    return os.path.abspath("@qtbase@" + exe)
+ 
+ # returns paths for 3rd party libraries (Windows only)
+ def findThirdPartyDeps():
+     include_dirs = []
diff --git a/pkgs/development/tools/postiats-utilities/default.nix b/pkgs/development/tools/postiats-utilities/default.nix
index 4b6d230becd6..40cd133032fb 100644
--- a/pkgs/development/tools/postiats-utilities/default.nix
+++ b/pkgs/development/tools/postiats-utilities/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   };
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/Hibou57/PostiATS-Utilities";
+    homepage = https://github.com/Hibou57/PostiATS-Utilities;
     license = licenses.bsd2;
     platforms = platforms.linux;
     maintainers = [ maintainers.ttuegel ];
diff --git a/pkgs/development/tools/profiling/gprof2dot/default.nix b/pkgs/development/tools/profiling/gprof2dot/default.nix
index 154c0da93d49..2f0b03ab7e37 100644
--- a/pkgs/development/tools/profiling/gprof2dot/default.nix
+++ b/pkgs/development/tools/profiling/gprof2dot/default.nix
@@ -11,7 +11,7 @@ pythonPackages.buildPythonApplication {
   };
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/jrfonseca/gprof2dot";
+    homepage = https://github.com/jrfonseca/gprof2dot;
     description = "Python script to convert the output from many profilers into a dot graph";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/rtags/default.nix b/pkgs/development/tools/rtags/default.nix
index 23ee6dec86ab..39ee3179e9c4 100644
--- a/pkgs/development/tools/rtags/default.nix
+++ b/pkgs/development/tools/rtags/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "rtags-${version}";
-  version = "2.10";
+  version = "2.12";
 
   buildInputs = [ cmake llvmPackages.llvm openssl llvmPackages.clang emacs ]
     ++ lib.optionals stdenv.isDarwin [ apple_sdk.libs.xpc apple_sdk.frameworks.CoreServices ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
     url = "https://github.com/andersbakken/rtags.git";
-    sha256 = "0rv5hz4cfc1adpxvp4j4227nfc0p0yrjdc6l9i32jj11p69a5401";
+    sha256 = "0bgjcvyvkpqcgw4571iz39sqydmcaz6ymx7kxcmq6j7rffs6qs7l";
     # unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation
     postFetch = ''
diff --git a/pkgs/development/tools/rust/bindgen/default.nix b/pkgs/development/tools/rust/bindgen/default.nix
index 8fb668df5b92..9be048257ced 100644
--- a/pkgs/development/tools/rust/bindgen/default.nix
+++ b/pkgs/development/tools/rust/bindgen/default.nix
@@ -4,13 +4,13 @@
 
 rustPlatform.buildRustPackage rec {
   name = "rust-bindgen-${version}";
-  version = "0.26.1";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
-    owner = "servo";
+    owner = "rust-lang-nursery";
     repo = "rust-bindgen";
     rev = "v${version}";
-    sha256 = "1w1vbfhmcrcl0vacxkivmavjp51cvpyq5lk75n9zs80q5x38ypna";
+    sha256 = "190nilbqch8w2hcdmzgkk2npgsn49a4y9c5r0mxa9d7nz7h0imxk";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -24,13 +24,13 @@ rustPlatform.buildRustPackage rec {
     wrapProgram $out/bin/bindgen --set LIBCLANG_PATH "${llvmPackages.clang-unwrapped}/lib"
   '';
 
-  depsSha256 = "0s1x4ygjwc14fbl2amz5g6n7lq07zy8b00mvwfw6vi6k4bq1g59i";
+  depsSha256 = "1y55xdqsk200hj5dhbigsgsx11w5cfxms84hhyl9y7w6jszbzxzw";
 
   doCheck = false; # A test fails because it can't find standard headers in NixOS
 
   meta = with stdenv.lib; {
-    description = "C binding generator";
-    homepage = https://github.com/servo/rust-bindgen;
+    description = "C and C++ binding generator";
+    homepage = https://github.com/rust-lang-nursery/rust-bindgen;
     license = with licenses; [ bsd3 ];
     maintainers = [ maintainers.ralith ];
   };
diff --git a/pkgs/development/tools/rust/racer/default.nix b/pkgs/development/tools/rust/racer/default.nix
index b79d7e0670da..89c384eb6eca 100644
--- a/pkgs/development/tools/rust/racer/default.nix
+++ b/pkgs/development/tools/rust/racer/default.nix
@@ -2,21 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   name = "racer-${version}";
-  version = "2.0.6";
+  version = "2.0.9";
 
   src = fetchFromGitHub {
-    owner = "phildawes";
+    owner = "racer-rust";
     repo = "racer";
     rev = version;
-    sha256 = "09wgfrb0z2d2icfk11f1jal5p93sqjv3jzmzcgw0pgw3zvffhni3";
+    sha256 = "06k50f2vj2w08afh3nrlhs0amcvw2i45bhfwr70sgs395xicjswp";
   };
 
-  depsSha256 = "0mnq7dk9wz2k9jhzciknybwc471sy8f71cd15m752b5ng6v1f5kn";
+  depsSha256 = "1gywnjbjl9jalbq6wkfmbczav4qbhgw2h8lyxkyppnhw9y4j0nc1";
 
   buildInputs = [ makeWrapper ];
 
   preCheck = ''
-    export RUST_SRC_PATH="${rustPlatform.rust.rustc.src}/src"
+    export RUST_SRC_PATH="${rustPlatform.rustcSrc}"
   '';
 
   doCheck = true;
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with stdenv.lib; {
     description = "A utility intended to provide Rust code completion for editors and IDEs";
-    homepage = https://github.com/phildawes/racer;
+    homepage = https://github.com/racer-rust/racer;
     license = licenses.mit;
     maintainers = with maintainers; [ jagajaga globin ];
     platforms = platforms.all;
diff --git a/pkgs/development/tools/rust/racerd/default.nix b/pkgs/development/tools/rust/racerd/default.nix
index 166e3320d9c7..b2340e01c1a5 100644
--- a/pkgs/development/tools/rust/racerd/default.nix
+++ b/pkgs/development/tools/rust/racerd/default.nix
@@ -28,7 +28,7 @@ buildRustPackage rec {
 
   meta = with stdenv.lib; {
     description = "JSON/HTTP Server based on racer for adding Rust support to editors and IDEs";
-    homepage = "https://github.com/jwilm/racerd";
+    homepage = https://github.com/jwilm/racerd;
     license = licenses.asl20;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/tools/sassc/default.nix b/pkgs/development/tools/sassc/default.nix
index 1e990b0e2e90..eb82cf849660 100644
--- a/pkgs/development/tools/sassc/default.nix
+++ b/pkgs/development/tools/sassc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "sassc-${version}";
-  version = "3.3.2";
+  version = "3.4.5";
 
   src = fetchurl {
     url = "https://github.com/sass/sassc/archive/${version}.tar.gz";
-    sha256 = "15a2b2698639dfdc7bd6a5ba7a9ecdaf8ebb9f15503fb04dea1be3133308e41d";
+    sha256 = "1xk4kmmvziz9sal3swpqa10q0s289xjpcz8aggmly8mvxvmngsi9";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index 26e820517c04..bdf71f7d2188 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = http://code.google.com/p/chromedriver/;
+    homepage = https://sites.google.com/a/chromium.org/chromedriver;
     description = "A WebDriver server for running Selenium tests on Chrome";
     license = licenses.bsd3;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index f9c5ee1b7b9e..9028a796381c 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -35,7 +35,7 @@ buildGoPackage rec {
 
   meta = {
     description = "A command line utility for various operations on container images and image repositories";
-    homepage = "https://github.com/projectatomic/skopeo";
+    homepage = https://github.com/projectatomic/skopeo;
     maintainers = with stdenv.lib.maintainers; [ vdemeester ];
     license = stdenv.lib.licenses.asl20;
   };
diff --git a/pkgs/development/tools/sqsh/default.nix b/pkgs/development/tools/sqsh/default.nix
index 7c9d70528d5b..c55f76f9b7f5 100644
--- a/pkgs/development/tools/sqsh/default.nix
+++ b/pkgs/development/tools/sqsh/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
       it is intended as a replacement for the venerable 'isql' program supplied
       by Sybase.
       '';
-    homepage = "http://www.cs.washington.edu/~rose/sqsh/sqsh.html";
+    homepage = http://www.cs.washington.edu/~rose/sqsh/sqsh.html;
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/tools/vim-vint/default.nix b/pkgs/development/tools/vim-vint/default.nix
index cf21804ddde2..f8134a88643c 100644
--- a/pkgs/development/tools/vim-vint/default.nix
+++ b/pkgs/development/tools/vim-vint/default.nix
@@ -30,7 +30,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Fast and Highly Extensible Vim script Language Lint implemented by Python";
-    homepage = "https://github.com/Kuniwak/vint";
+    homepage = https://github.com/Kuniwak/vint;
     license = licenses.mit;
     maintainers = with maintainers; [ andsild ];
     platforms = platforms.all;
diff --git a/pkgs/development/tools/vndr/default.nix b/pkgs/development/tools/vndr/default.nix
index 426d52eba707..66fdb1841e40 100644
--- a/pkgs/development/tools/vndr/default.nix
+++ b/pkgs/development/tools/vndr/default.nix
@@ -17,7 +17,7 @@ buildGoPackage rec {
 
   meta = {
     description = "Stupid golang vendoring tool, inspired by docker vendor script";
-    homepage = "https://github.com/LK4D4/vndr";
+    homepage = https://github.com/LK4D4/vndr;
     maintainers = with lib.maintainers; [ vdemeester ];
     license = lib.licenses.asl20;
   };
diff --git a/pkgs/development/tools/vultr/default.nix b/pkgs/development/tools/vultr/default.nix
index aac773b11e60..29fedde90801 100644
--- a/pkgs/development/tools/vultr/default.nix
+++ b/pkgs/development/tools/vultr/default.nix
@@ -14,7 +14,7 @@ buildGoPackage rec {
 
   meta = {
     description = "A command line tool for Vultr services, a provider for cloud virtual private servers";
-    homepage = "https://github.com/JamesClonk/vultr";
+    homepage = https://github.com/JamesClonk/vultr;
     license = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.zauberpony ];
diff --git a/pkgs/development/tools/wiggle/default.nix b/pkgs/development/tools/wiggle/default.nix
index 5a97eb09e4be..ffa6d4aac0ca 100644
--- a/pkgs/development/tools/wiggle/default.nix
+++ b/pkgs/development/tools/wiggle/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation {
 
   configurePhase = ''
     makeFlagsArray=( CFLAGS="-I. -O3"
+                     STRIP="-s"
                      INSTALL="install"
                      BINDIR="$out/bin"
                      MANDIR="$out/share/man"