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/analysis/checkstyle/default.nix17
-rw-r--r--pkgs/development/tools/analysis/emma/default.nix1
-rw-r--r--pkgs/development/tools/analysis/findbugs/default.nix1
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/tools/analysis/frama-c/default.nix10
-rw-r--r--pkgs/development/tools/analysis/radare2/cutter.nix (renamed from pkgs/development/tools/analysis/radare2-cutter/default.nix)17
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix137
-rwxr-xr-xpkgs/development/tools/analysis/radare2/update.py123
-rw-r--r--pkgs/development/tools/backblaze-b2/default.nix2
-rw-r--r--pkgs/development/tools/bloaty/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/bazel/0.4.nix1
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/bazel/default.nix117
-rw-r--r--pkgs/development/tools/build-managers/bear/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/buildbot/worker.nix4
-rw-r--r--pkgs/development/tools/build-managers/cmake/2.8.nix1
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/dub/default.nix77
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix19
-rw-r--r--pkgs/development/tools/build-managers/rebar/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/rebar3/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/remake/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch34
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/waf/default.nix16
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--pkgs/development/tools/database/sqldeveloper/18.2.nix84
-rw-r--r--pkgs/development/tools/database/sqldeveloper/default.nix30
-rw-r--r--pkgs/development/tools/documentation/gnome-doc-utils/default.nix2
-rw-r--r--pkgs/development/tools/dtools/default.nix6
-rw-r--r--pkgs/development/tools/easyjson/default.nix19
-rw-r--r--pkgs/development/tools/flootty/default.nix16
-rw-r--r--pkgs/development/tools/ghp-import/default.nix4
-rw-r--r--pkgs/development/tools/global-platform-pro/default.nix98
-rw-r--r--pkgs/development/tools/glock/default.nix1
-rw-r--r--pkgs/development/tools/goa/default.nix22
-rw-r--r--pkgs/development/tools/haskell/multi-ghc-travis/default.nix4
-rw-r--r--pkgs/development/tools/hcloud/default.nix4
-rw-r--r--pkgs/development/tools/kubectx/default.nix38
-rw-r--r--pkgs/development/tools/lattice-diamond/default.nix115
-rw-r--r--pkgs/development/tools/literate-programming/Literate/default.nix6
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.11.x.nix5
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.16.x.nix5
-rw-r--r--pkgs/development/tools/misc/avrdude/default.nix2
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix5
-rw-r--r--pkgs/development/tools/misc/cquery/default.nix11
-rw-r--r--pkgs/development/tools/misc/cquery/wrapper2
-rw-r--r--pkgs/development/tools/misc/cscope/default.nix6
-rw-r--r--pkgs/development/tools/misc/ddd/default.nix2
-rw-r--r--pkgs/development/tools/misc/dialog/default.nix19
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix13
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix4
-rw-r--r--pkgs/development/tools/misc/gnum4/default.nix2
-rw-r--r--pkgs/development/tools/misc/hydra/default.nix39
-rw-r--r--pkgs/development/tools/misc/intel-gpu-tools/default.nix13
-rw-r--r--pkgs/development/tools/misc/patchelf/default.nix2
-rw-r--r--pkgs/development/tools/misc/rman/default.nix9
-rw-r--r--pkgs/development/tools/misc/srecord/default.nix5
-rw-r--r--pkgs/development/tools/misc/strace/default.nix8
-rw-r--r--pkgs/development/tools/misc/swig/2.x.nix2
-rw-r--r--pkgs/development/tools/misc/swig/3.x.nix2
-rw-r--r--pkgs/development/tools/misc/swig/default.nix2
-rw-r--r--pkgs/development/tools/misc/texinfo/common.nix4
-rw-r--r--pkgs/development/tools/nwjs/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/camlp5/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/jbuilder/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/obuild/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/opam/default.nix1
-rw-r--r--pkgs/development/tools/parsing/antlr/2.7.7.nix6
-rw-r--r--pkgs/development/tools/parsing/antlr/3.4.nix3
-rw-r--r--pkgs/development/tools/parsing/antlr/3.5.nix3
-rw-r--r--pkgs/development/tools/parsing/antlr/4.7.nix110
-rw-r--r--pkgs/development/tools/parsing/bison/2.x.nix3
-rw-r--r--pkgs/development/tools/parsing/flex/2.5.35.nix11
-rw-r--r--pkgs/development/tools/parsing/flex/2.6.1.nix16
-rw-r--r--pkgs/development/tools/parsing/flex/default.nix18
-rw-r--r--pkgs/development/tools/parsing/re2c/default.nix4
-rw-r--r--pkgs/development/tools/profiling/oprofile/default.nix4
-rw-r--r--pkgs/development/tools/profiling/pprof/default.nix8
-rw-r--r--pkgs/development/tools/profiling/pprof/deps.nix13
-rw-r--r--pkgs/development/tools/puppet/puppet-lint/Gemfile5
-rw-r--r--pkgs/development/tools/puppet/puppet-lint/Gemfile.lock13
-rw-r--r--pkgs/development/tools/puppet/puppet-lint/default.nix7
-rw-r--r--pkgs/development/tools/puppet/puppet-lint/gemset.nix10
-rw-r--r--pkgs/development/tools/qtcreator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch94
-rw-r--r--pkgs/development/tools/qtcreator/default.nix4
-rw-r--r--pkgs/development/tools/quicktemplate/default.nix15
-rw-r--r--pkgs/development/tools/react-native-debugger/default.nix4
-rw-r--r--pkgs/development/tools/rust/cbindgen/default.nix4
-rw-r--r--pkgs/development/tools/selenium/chromedriver/default.nix6
-rw-r--r--pkgs/development/tools/sqsh/default.nix1
-rw-r--r--pkgs/development/tools/toxiproxy/default.nix1
-rw-r--r--pkgs/development/tools/wp-cli/default.nix8
-rw-r--r--pkgs/development/tools/xcbuild/platforms.nix3
-rw-r--r--pkgs/development/tools/xcbuild/sdks.nix9
-rw-r--r--pkgs/development/tools/xcbuild/toolchains.nix56
-rw-r--r--pkgs/development/tools/xcbuild/wrapper.nix23
-rw-r--r--pkgs/development/tools/yarn/default.nix4
98 files changed, 1226 insertions, 492 deletions
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 34b9e53f6e47..690db9a30e1a 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,19 +1,24 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "8.11";
+  version = "8.12";
   name = "checkstyle-${version}";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "13x4m4rn7rix64baclcm2jqbizkj38njif2ba0ycmvyjm62smfwv";
+    sha256 = "000048flqhkwnjn37bh07wgn6q4m12s3h3p9piqgvxswrjc95x3y";
   };
 
-  phases = [ "installPhase" ];
+  nativeBuildInputs = [ makeWrapper jre ];
+
+  unpackPhase = ":";
 
   installPhase = ''
-    mkdir -p $out/checkstyle
-    cp $src $out/checkstyle/checkstyle-all.jar
+    runHook preInstall
+    install -D $src $out/checkstyle/checkstyle-all.jar
+    makeWrapper ${jre}/bin/java $out/bin/checkstyle \
+      --add-flags "-jar $out/checkstyle/checkstyle-all.jar"
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/analysis/emma/default.nix b/pkgs/development/tools/analysis/emma/default.nix
index c4e37e5c700a..1bd24b4785d0 100644
--- a/pkgs/development/tools/analysis/emma/default.nix
+++ b/pkgs/development/tools/analysis/emma/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation {
     homepage = http://emma.sourceforge.net/;
     description = "A code coverage tool for Java";
     platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.cpl10;
   };
 }
diff --git a/pkgs/development/tools/analysis/findbugs/default.nix b/pkgs/development/tools/analysis/findbugs/default.nix
index a5a3d2439186..7f2df62008f0 100644
--- a/pkgs/development/tools/analysis/findbugs/default.nix
+++ b/pkgs/development/tools/analysis/findbugs/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     homepage = http://findbugs.sourceforge.net/;
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; unix;
+    license = licenses.lgpl3;
   };
 }
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 481247a41c4e..bc9bb5d5fa3d 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -3,14 +3,14 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "0.77.0";
+  version = "0.79.0";
   name = "flow-${version}";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    sha256 = "1wcbqw5vwb3wsz9dkhi2k159ms98kn1nw3g9lc2j9w1m8ki41lql";
+    sha256 = "1m8239jl0kmpgmk81mak6k3hmmikji6bb3v0zaknb1z3jl8aa1wb";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/frama-c/default.nix b/pkgs/development/tools/analysis/frama-c/default.nix
index c950228907a0..2f517eb00841 100644
--- a/pkgs/development/tools/analysis/frama-c/default.nix
+++ b/pkgs/development/tools/analysis/frama-c/default.nix
@@ -9,17 +9,17 @@ in
 
 stdenv.mkDerivation rec {
   name    = "frama-c-${version}";
-  version = "20171101";
-  slang   = "Sulfur";
+  version = "20180502";
+  slang   = "Chlorine";
 
   src = fetchurl {
     url    = "http://frama-c.com/download/frama-c-${slang}-${version}.tar.gz";
-    sha256 = "1vwjfqmm1r36gkybsy3a7m89q5zicf4rnz5vlsn9imnpjpl9gjw1";
+    sha256 = "1m4r8h8n1z957pylyf9b0kjblh59imnqm1bkb4s6rdwl4a1gbjgc";
   };
 
   why2 = fetchurl {
-    url    = "http://why.lri.fr/download/why-2.39.tar.gz";
-    sha256 = "0nf17jl00s7q9z8gkbamnf7mglvxqrm3967c17ic4c9xz8g125a8";
+    url    = "http://why.lri.fr/download/why-2.40.tar.gz";
+    sha256 = "0h1mbpxsgwvf3pbl0qbg22j6f4v1ffka24ap1ajbjk9b1yb3ali8";
   };
 
   nativeBuildInputs = [ autoconf makeWrapper ];
diff --git a/pkgs/development/tools/analysis/radare2-cutter/default.nix b/pkgs/development/tools/analysis/radare2/cutter.nix
index ff2b4d3b54f5..4269661a4ff3 100644
--- a/pkgs/development/tools/analysis/radare2-cutter/default.nix
+++ b/pkgs/development/tools/analysis/radare2/cutter.nix
@@ -4,20 +4,11 @@
 # Qt
 , qtbase, qtsvg, qtwebengine
 # buildInputs
-, radare2
+, r2-for-cutter
 , python3 }:
 
 let
-  r2 = radare2.overrideDerivation (o: {
-    name = "radare2-for-cutter-${version}";
-    src = fetchFromGitHub {
-      owner = "radare";
-      repo = "radare2";
-      rev = "a98557bfbfa96e9f677a8c779ee78085ee5a23bb";
-      sha256 = "04jl1lq3dqljb6vagzlym4wc867ayhx1v52f75rkfz0iybsh249r";
-    };
-  });
-  version = "1.6";
+  version = "1.7";
 in
 stdenv.mkDerivation rec {
   name = "radare2-cutter-${version}";
@@ -26,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "radareorg";
     repo = "cutter";
     rev = "v${version}";
-    sha256 = "1ps52yf94yfnws3nn1iiwch2jy33dyvi7j47xkmh0m5fpdqi5xk7";
+    sha256 = "0z9wzxd5hw0ivakrg3xiv4zx1rjj032hlmizq0pxj22xjrj1gg9n";
   };
 
   postUnpack = "export sourceRoot=$sourceRoot/src";
@@ -41,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ qmake pkgconfig ];
-  buildInputs = [ qtbase qtsvg qtwebengine r2 python3 ];
+  buildInputs = [ qtbase qtsvg qtwebengine r2-for-cutter python3 ];
 
   qmakeFlags = [
     "CONFIG+=link_pkgconfig"
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 0264305134cb..85559269f279 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -1,4 +1,5 @@
 {stdenv, fetchFromGitHub
+, callPackage
 , ninja, meson , pkgconfig
 , libusb, readline, libewf, perl, zlib, openssl
 , gtk2 ? null, vte ? null, gtkdialog ? null
@@ -15,66 +16,94 @@ assert pythonBindings -> python != null;
 
 let
   inherit (stdenv.lib) optional;
-  #<generated>
-  # DO NOT EDIT! Automatically generated by ./update.py
-  version_commit = "18681";
-  gittap = "2.7.0";
-  gittip = "6e08e452a7ec231a73997c44b4ff556c2998c7d9";
-  version = "2.7.0";
-  sha256 = "1a9z8w897256dhh3yhyfnshz3n2nrc4plc2i06cm5sznhl6x9xfx";
-  cs_tip = "ec8a5ce98fa0422a395489ed47da912b15d77441";
-  cs_sha256 = "080a64bqck28a2xfjwz29ddcr8p6hc6gi67mgry3pca289qrkk3q";
-  #</generated>
-in
-stdenv.mkDerivation rec {
-  name = "radare2-${version}";
 
-  src = fetchFromGitHub {
-    owner = "radare";
-    repo = "radare2";
-    rev = version;
-    inherit sha256;
-  };
+  generic = {
+    version_commit,
+    gittap,
+    gittip,
+    rev,
+    version,
+    sha256,
+    cs_tip,
+    cs_sha256
+  }:
+    stdenv.mkDerivation rec {
+      name = "radare2-${version}";
+
+      src = fetchFromGitHub {
+        owner = "radare";
+        repo = "radare2";
+        inherit rev sha256;
+      };
 
-  postPatch = let
-    capstone = fetchFromGitHub {
-      owner = "aquynh";
-      repo = "capstone";
-      # version from $sourceRoot/shlr/Makefile
-      rev = cs_tip;
-      sha256 = cs_sha256;
-    };
-  in ''
-    if ! grep -F "CS_TIP=${cs_tip}" shlr/Makefile; then echo "CS_TIP mismatch"; exit 1; fi
-    ln -s ${capstone} shlr/capstone
-  '';
+      postPatch = let
+        capstone = fetchFromGitHub {
+          owner = "aquynh";
+          repo = "capstone";
+          # version from $sourceRoot/shlr/Makefile
+          rev = cs_tip;
+          sha256 = cs_sha256;
+        };
+      in ''
+        if ! grep -F "CS_TIP=${cs_tip}" shlr/Makefile; then echo "CS_TIP mismatch"; exit 1; fi
+        # When using meson, it expects capstone source relative to build directory
+        mkdir -p build/shlr
+        ln -s ${capstone} build/shlr/capstone
+      '';
 
-  postInstall = ''
-    ln -s $out/bin/radare2 $out/bin/r2
-    install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm
-  '';
+      postInstall = ''
+        ln -s $out/bin/radare2 $out/bin/r2
+        install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm
+      '';
 
-  mesonFlags = [
-    "-Dr2_version_commit=${version_commit}"
-    "-Dr2_gittap=${gittap}"
-    "-Dr2_gittip=${gittip}"
-  ];
+      mesonFlags = [
+        "-Dr2_version_commit=${version_commit}"
+        "-Dr2_gittap=${gittap}"
+        "-Dr2_gittip=${gittip}"
+        # 2.8.0 expects this, but later it becomes an option with default=false.
+        "-Dcapstone_in_builddir=true"
+      ];
 
-  enableParallelBuilding = true;
+      enableParallelBuilding = true;
 
-  nativeBuildInputs = [ pkgconfig ninja meson ];
-  buildInputs = [ readline libusb libewf perl zlib openssl]
-    ++ optional useX11 [gtkdialog vte gtk2]
-    ++ optional rubyBindings [ruby]
-    ++ optional pythonBindings [python]
-    ++ optional luaBindings [lua];
+      nativeBuildInputs = [ pkgconfig ninja meson ];
+      buildInputs = [ readline libusb libewf perl zlib openssl]
+        ++ optional useX11 [gtkdialog vte gtk2]
+        ++ optional rubyBindings [ruby]
+        ++ optional pythonBindings [python]
+        ++ optional luaBindings [lua];
 
-  meta = {
-    description = "unix-like reverse engineering framework and commandline tools";
-    homepage = http://radare.org/;
-    license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = with stdenv.lib.maintainers; [raskin makefu mic92];
-    platforms = with stdenv.lib.platforms; linux;
-    inherit version;
+      meta = {
+        description = "unix-like reverse engineering framework and commandline tools";
+        homepage = http://radare.org/;
+        license = stdenv.lib.licenses.gpl2Plus;
+        maintainers = with stdenv.lib.maintainers; [raskin makefu mic92];
+        platforms = with stdenv.lib.platforms; linux;
+        inherit version;
+      };
   };
+in {
+  #<generated>
+  # DO NOT EDIT! Automatically generated by ./update.py
+  radare2 = generic {
+    version_commit = "19251";
+    gittap = "2.8.0";
+    gittip = "a76b965410aba07b4ef8b96d90b25b271c2003dd";
+    rev = "2.8.0";
+    version = "2.8.0";
+    sha256 = "1d9rkzc3vychy2h1bnywwx4why83rr18r0lvvl1cqx87ad5awcjk";
+    cs_tip = "782ea67e17a391ca0d3faafdc365b335a1a8930a";
+    cs_sha256 = "1maww4ir78a193pm3f8lr2kdkizi7rywn68ffa65ipyr7j4pl6i4";
+  };
+  r2-for-cutter = generic {
+    version_commit = "19251";
+    gittap = "2.8.0-118-gb0547831f";
+    gittip = "b0547831f127b7357e3c93bc43933482a4d6213b";
+    rev = "b0547831f127b7357e3c93bc43933482a4d6213b";
+    version = "2018-08-07";
+    sha256 = "1ix42kipd1aayb494ajbxawzc1cwikm9fxk343d1kchxx4a30a1m";
+    cs_tip = "782ea67e17a391ca0d3faafdc365b335a1a8930a";
+    cs_sha256 = "1maww4ir78a193pm3f8lr2kdkizi7rywn68ffa65ipyr7j4pl6i4";
+  };
+  #</generated>
 }
diff --git a/pkgs/development/tools/analysis/radare2/update.py b/pkgs/development/tools/analysis/radare2/update.py
index 1f16a00905c1..fae6a52a3920 100755
--- a/pkgs/development/tools/analysis/radare2/update.py
+++ b/pkgs/development/tools/analysis/radare2/update.py
@@ -2,14 +2,16 @@
 #!nix-shell -p nix -p python3 -p git -i python
 # USAGE - just run the script: ./update.py
 # When editing this file, make also sure it passes the mypy typecheck
-# and is formatted with yapf.
-import urllib.request
-import json
-import tempfile
-import subprocess
+# and is formatted with black.
 import fileinput
+import json
 import re
+import subprocess
+import tempfile
+import urllib.request
+from datetime import datetime
 from pathlib import Path
+from typing import Dict
 
 
 def sh(*args: str) -> str:
@@ -18,50 +20,107 @@ def sh(*args: str) -> str:
 
 
 def prefetch_github(owner: str, repo: str, ref: str) -> str:
-    return sh("nix-prefetch-url", "--unpack",
-              f"https://github.com/{owner}/{repo}/archive/{ref}.tar.gz")
+    return sh(
+        "nix-prefetch-url",
+        "--unpack",
+        f"https://github.com/{owner}/{repo}/archive/{ref}.tar.gz",
+    )
 
 
-def main() -> None:
+def get_radare2_rev() -> str:
     url = "https://api.github.com/repos/radare/radare2/releases/latest"
     with urllib.request.urlopen(url) as response:
         release = json.load(response)  # type: ignore
-    version = release["tag_name"]
-    with tempfile.TemporaryDirectory() as dirname:
+    return release["tag_name"]
+
+
+def get_r2_cutter_rev() -> str:
+    url = "https://api.github.com/repos/radareorg/cutter/contents/"
+    with urllib.request.urlopen(url) as response:
+        data = json.load(response)  # type: ignore
+    for entry in data:
+        if entry["name"] == "radare2":
+            return entry["sha"]
+    raise Exception("no radare2 submodule found in github.com/radareorg/cutter")
+
 
-        def git(*args: str) -> str:
-            return sh("git", "-C", dirname, *args)
+def git(dirname: str, *args: str) -> str:
+    return sh("git", "-C", dirname, *args)
 
-        git("clone", "--branch", version, "https://github.com/radare/radare2",
-            ".")
-        sha256 = prefetch_github("radare", "radare2", version)
+
+def get_repo_info(dirname: str, rev: str) -> Dict[str, str]:
+    sha256 = prefetch_github("radare", "radare2", rev)
+
+    cs_tip = None
+    with open(Path(dirname).joinpath("shlr", "Makefile")) as makefile:
+        for l in makefile:
+            match = re.match("CS_TIP=(\S+)", l)
+            if match:
+                cs_tip = match.group(1)
+    assert cs_tip is not None
+
+    cs_sha256 = prefetch_github("aquynh", "capstone", cs_tip)
+
+    return dict(
+        rev=rev,
+        sha256=sha256,
+        version_commit=git(dirname, "rev-list", "--all", "--count"),
+        gittap=git(dirname, "describe", "--tags", "--match", "[0-9]*"),
+        gittip=git(dirname, "rev-parse", "HEAD"),
+        cs_tip=cs_tip,
+        cs_sha256=cs_sha256,
+    )
+
+
+def write_package_expr(version: str, info: Dict[str, str]) -> str:
+    return f"""generic {{
+    version_commit = "{info["version_commit"]}";
+    gittap = "{info["gittap"]}";
+    gittip = "{info["gittip"]}";
+    rev = "{info["rev"]}";
+    version = "{version}";
+    sha256 = "{info["sha256"]}";
+    cs_tip = "{info["cs_tip"]}";
+    cs_sha256 = "{info["cs_sha256"]}";
+  }}"""
+
+
+def main() -> None:
+    radare2_rev = get_radare2_rev()
+    r2_cutter_rev = get_r2_cutter_rev()
+
+    with tempfile.TemporaryDirectory() as dirname:
+        git(
+            dirname,
+            "clone",
+            "--branch",
+            radare2_rev,
+            "https://github.com/radare/radare2",
+            ".",
+        )
         nix_file = str(Path(__file__).parent.joinpath("default.nix"))
 
-        cs_tip = None
-        with open(Path(dirname).joinpath("shlr", "Makefile")) as makefile:
-            for l in makefile:
-                match = re.match("CS_TIP=(\S+)", l)
-                if match:
-                    cs_tip = match.group(1)
-        assert cs_tip is not None
+        radare2_info = get_repo_info(dirname, radare2_rev)
+
+        git(dirname, "checkout", r2_cutter_rev)
+
+        timestamp = git(dirname, "log", "-n1", "--format=%at")
+        r2_cutter_version = datetime.fromtimestamp(int(timestamp)).strftime("%Y-%m-%d")
 
-        cs_sha256 = prefetch_github("aquynh", "capstone", cs_tip)
+        r2_cutter_info = get_repo_info(dirname, r2_cutter_rev)
 
         in_block = False
         with fileinput.FileInput(nix_file, inplace=True) as f:
             for l in f:
                 if "#<generated>" in l:
                     in_block = True
-                    print(f"""  #<generated>
+                    print(
+                        f"""  #<generated>
   # DO NOT EDIT! Automatically generated by ./update.py
-  version_commit = "{git("rev-list", "--all", "--count")}";
-  gittap = "{git("describe", "--tags", "--match", "[0-9]*")}";
-  gittip = "{git("rev-parse", "HEAD")}";
-  version = "{version}";
-  sha256 = "{sha256}";
-  cs_tip = "{cs_tip}";
-  cs_sha256 = "{cs_sha256}";
-  #</generated>""")
+  radare2 = {write_package_expr(radare2_rev, radare2_info)};
+  r2-for-cutter = {write_package_expr(r2_cutter_version, r2_cutter_info)};
+  #</generated>"""
+                    )
                 elif "#</generated>" in l:
                     in_block = False
                 elif not in_block:
diff --git a/pkgs/development/tools/backblaze-b2/default.nix b/pkgs/development/tools/backblaze-b2/default.nix
index 19609e15c765..7cf709066542 100644
--- a/pkgs/development/tools/backblaze-b2/default.nix
+++ b/pkgs/development/tools/backblaze-b2/default.nix
@@ -22,7 +22,7 @@ buildPythonApplication rec {
   postInstall = ''
     mv "$out/bin/b2" "$out/bin/backblaze-b2"
 
-    sed 's/^have b2 \&\&$/have backblaze-b2 \&\&/'   -i contrib/bash_completion/b2
+    sed 's/^have b2 \&\&$/_have backblaze-b2 \&\&/'  -i contrib/bash_completion/b2
     sed 's/^\(complete -F _b2\) b2/\1 backblaze-b2/' -i contrib/bash_completion/b2
 
     mkdir -p "$out/etc/bash_completion.d"
diff --git a/pkgs/development/tools/bloaty/default.nix b/pkgs/development/tools/bloaty/default.nix
index 5f2e9b5f440d..f66c84142648 100644
--- a/pkgs/development/tools/bloaty/default.nix
+++ b/pkgs/development/tools/bloaty/default.nix
@@ -1,14 +1,14 @@
 { stdenv, cmake, zlib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "2018-06-15";
+  version = "1.0";
   name = "bloaty-${version}";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "bloaty";
-    rev = "bdbb3ce196c86d2154f5fba99b5ff73ca43446a9";
-    sha256 = "1r7di2p8bi12jpgl6cm4ygi1s0chv767mdcavc7pb45874vl02fx";
+    rev = "v${version}";
+    sha256 = "0fck83zyh9bwlwdk3fkhv3337g9nii6rzf96gyghmnrsp9rzxs3l";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/build-managers/bazel/0.4.nix b/pkgs/development/tools/build-managers/bazel/0.4.nix
index 69f467f577c8..1018abd6ee9c 100644
--- a/pkgs/development/tools/build-managers/bazel/0.4.nix
+++ b/pkgs/development/tools/build-managers/bazel/0.4.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ cstrahan philandstuff ];
     platforms = platforms.linux;
+    broken = true; # 2018-08-07
   };
 
   name = "bazel-${version}";
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix
index 76e2ad1e7cac..af8cd5faacde 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix
@@ -2,7 +2,7 @@
 
 buildBazelPackage rec {
   name = "bazel-deps-${version}";
-  version = "2018-05-31";
+  version = "2018-08-16";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/johnynek/bazel-deps";
@@ -15,8 +15,8 @@ buildBazelPackage rec {
   src = fetchFromGitHub {
     owner = "johnynek";
     repo = "bazel-deps";
-    rev = "dd7d0086d3a61c1d5c3370a0300824d0c75946e4";
-    sha256 = "1h9ddgk6vn0bhnnkwwz4n1iqv2rcdj521dxhdwj5wwpndbciw855";
+    rev = "942a0b03cbf159dd6e0f0f40787d6d8e4e832d81";
+    sha256 = "0ls2jvz9cxa169a8pbbykv2d4dik4ipf7dj1lkqx5g0ss7lgs6q5";
   };
 
   bazelTarget = "//src/scala/com/github/johnynek/bazel_deps:parseproject_deploy.jar";
@@ -26,7 +26,7 @@ buildBazelPackage rec {
   fetchAttrs = {
     preInstall = ''
       # Remove all built in external workspaces, Bazel will recreate them when building
-      rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker,local_*,\@local_*}
+      rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker,embedded_jdk,\@embedded_jdk.marker,local_*,\@local_*}
       # For each external workspace, remove all files that aren't referenced by Bazel
       # Many of these files are non-hermetic (for example .git/refs/remotes/origin/HEAD)
       files_to_delete=()
@@ -66,7 +66,7 @@ buildBazelPackage rec {
       find . -type d -empty -delete
     '';
 
-    sha256 = "0fh9jjwk3aq0kklhl9zyy8hj8gjm1y1fy4ygjinm0469w9jdgc3g";
+    sha256 = "0jkzf1hay0h8ksk9lhfvdliac6c5d7nih934i1xjbrn6zqlivy19";
   };
 
   buildAttrs = {
diff --git a/pkgs/development/tools/build-managers/bazel/default.nix b/pkgs/development/tools/build-managers/bazel/default.nix
index 56b64cd061b5..8d4b95c8808e 100644
--- a/pkgs/development/tools/build-managers/bazel/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/default.nix
@@ -1,15 +1,15 @@
 { stdenv, lib, fetchurl, runCommand, makeWrapper
 , jdk, zip, unzip, bash, writeCBin, coreutils
-, which, python, gnused, gnugrep, findutils
+, which, python, perl, gnused, gnugrep, findutils
 # Always assume all markers valid (don't redownload dependencies).
 # Also, don't clean up environment variables.
 , enableNixHacks ? false
 # Apple dependencies
-, libcxx, CoreFoundation, CoreServices, Foundation
+, cctools, clang, libcxx, CoreFoundation, CoreServices, Foundation
 }:
 
 let
-  srcDeps = stdenv.lib.singleton (
+  srcDeps = lib.singleton (
     fetchurl {
       url = "https://github.com/google/desugar_jdk_libs/archive/f5e6d80c6b4ec6b0a46603f72b015d45cf3c11cd.zip";
       sha256 = "c80f3f3d442d8a6ca7adc83f90ecd638c3864087fdd6787ffac070b6f1cc8f9b";
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   version = "0.15.2";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/bazelbuild/bazel/";
     description = "Build tool that builds code quickly and reliably";
     license = licenses.asl20;
@@ -74,39 +74,80 @@ stdenv.mkDerivation rec {
     }
   '';
 
-  postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
-  '' + ''
-    find src/main/java/com/google/devtools -type f -print0 | while IFS="" read -r -d "" path; do
-      substituteInPlace "$path" \
-        --replace /bin/bash ${customBash}/bin/bash \
-        --replace /usr/bin/env ${coreutils}/bin/env
-    done
-    # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
-    substituteInPlace scripts/bootstrap/compile.sh \
-        --replace /bin/sh ${customBash}/bin/bash
-
-    echo "build --experimental_distdir=${distDir}" >> .bazelrc
-    echo "fetch --experimental_distdir=${distDir}" >> .bazelrc
-    echo "build --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\"" >> .bazelrc
-    echo "build --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\"" >> .bazelrc
-    echo "build --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\"" >> .bazelrc
-    echo "build --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\"" >> .bazelrc
-    sed -i -e "361 a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" scripts/bootstrap/compile.sh
-    sed -i -e "361 a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" scripts/bootstrap/compile.sh
-    sed -i -e "361 a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" scripts/bootstrap/compile.sh
-    sed -i -e "361 a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" scripts/bootstrap/compile.sh
-
-    # --experimental_strict_action_env (which will soon become the
-    # default, see bazelbuild/bazel#2574) hardcodes the default
-    # action environment to a value that on NixOS at least is bogus.
-    # So we hardcode it to something useful.
-    substituteInPlace \
-		  src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java \
-      --replace /bin:/usr/bin ${defaultShellPath}
-
-    patchShebangs .
-  '';
+  postPatch = let
+    darwinPatches = ''
+      # Disable Bazel's Xcode toolchain detection which would configure compilers
+      # and linkers from Xcode instead of from PATH
+      export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
+
+      # Framework search paths aren't added by bintools hook
+      # https://github.com/NixOS/nixpkgs/pull/41914
+      export NIX_LDFLAGS="$NIX_LDFLAGS -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
+
+      # libcxx includes aren't added by libcxx hook
+      # https://github.com/NixOS/nixpkgs/pull/41589
+      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${libcxx}/include/c++/v1"
+
+      # don't use system installed Xcode to run clang, use Nix clang instead
+      sed -i -e "s;/usr/bin/xcrun clang;${clang}/bin/clang $NIX_CFLAGS_COMPILE $NIX_LDFLAGS -framework CoreFoundation;g" \
+        scripts/bootstrap/compile.sh \
+        src/tools/xcode/realpath/BUILD \
+        src/tools/xcode/stdredirect/BUILD \
+        tools/osx/BUILD
+
+      # clang installed from Xcode has a compatibility wrapper that forwards
+      # invocations of gcc to clang, but vanilla clang doesn't
+      sed -i -e 's;_find_generic(repository_ctx, "gcc", "CC", overriden_tools);_find_generic(repository_ctx, "clang", "CC", overriden_tools);g' tools/cpp/unix_cc_configure.bzl
+
+      sed -i -e 's;/usr/bin/libtool;${cctools}/bin/libtool;g' tools/cpp/unix_cc_configure.bzl
+      wrappers=( tools/cpp/osx_cc_wrapper.sh tools/cpp/osx_cc_wrapper.sh.tpl )
+      for wrapper in "''${wrappers[@]}"; do
+        sed -i -e "s,/usr/bin/install_name_tool,${cctools}/bin/install_name_tool,g" $wrapper
+      done
+    '';
+    genericPatches = ''
+      find src/main/java/com/google/devtools -type f -print0 | while IFS="" read -r -d "" path; do
+        substituteInPlace "$path" \
+          --replace /bin/bash ${customBash}/bin/bash \
+          --replace /usr/bin/env ${coreutils}/bin/env
+      done
+      # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
+      substituteInPlace scripts/bootstrap/compile.sh \
+          --replace /bin/sh ${customBash}/bin/bash
+
+      echo "build --experimental_distdir=${distDir}" >> .bazelrc
+      echo "fetch --experimental_distdir=${distDir}" >> .bazelrc
+      echo "build --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\"" >> .bazelrc
+      echo "build --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\"" >> .bazelrc
+      echo "build --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\"" >> .bazelrc
+      echo "build --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\"" >> .bazelrc
+      sed -i -e "361 a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" scripts/bootstrap/compile.sh
+      sed -i -e "361 a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" scripts/bootstrap/compile.sh
+      sed -i -e "361 a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" scripts/bootstrap/compile.sh
+      sed -i -e "361 a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" scripts/bootstrap/compile.sh
+
+      # --experimental_strict_action_env (which will soon become the
+      # default, see bazelbuild/bazel#2574) hardcodes the default
+      # action environment to a value that on NixOS at least is bogus.
+      # So we hardcode it to something useful.
+      substituteInPlace \
+        src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java \
+        --replace /bin:/usr/bin ${defaultShellPath}
+
+      # append the PATH with defaultShellPath in tools/bash/runfiles/runfiles.bash
+      echo "PATH=$PATH:${defaultShellPath}" >> runfiles.bash.tmp
+      cat tools/bash/runfiles/runfiles.bash >> runfiles.bash.tmp
+      mv runfiles.bash.tmp tools/bash/runfiles/runfiles.bash
+
+      # the bash completion requires perl
+      # https://github.com/bazelbuild/bazel/issues/5943
+      substituteInPlace scripts/bazel-complete-template.bash \
+        --replace "perl" "${perl}/bin/perl"
+
+      patchShebangs .
+    '';
+    in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches
+     + genericPatches;
 
   buildInputs = [
     jdk
@@ -119,7 +160,7 @@ stdenv.mkDerivation rec {
     makeWrapper
     which
     customBash
-  ] ++ lib.optionals (stdenv.isDarwin) [ libcxx CoreFoundation CoreServices Foundation ];
+  ] ++ lib.optionals (stdenv.isDarwin) [ cctools clang libcxx CoreFoundation CoreServices Foundation ];
 
   # If TMPDIR is in the unpack dir we run afoul of blaze's infinite symlink
   # detector (see com.google.devtools.build.lib.skyframe.FileFunction).
diff --git a/pkgs/development/tools/build-managers/bear/default.nix b/pkgs/development/tools/build-managers/bear/default.nix
index 8f352f84b228..fb12b5a9c14a 100644
--- a/pkgs/development/tools/build-managers/bear/default.nix
+++ b/pkgs/development/tools/build-managers/bear/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "bear-${version}";
-  version = "2.3.11";
+  version = "2.3.12";
 
   src = fetchFromGitHub {
     owner = "rizsotto";
     repo = "Bear";
     rev = version;
-    sha256 = "0r6ykvclq9ws055ssd8w33dicmk5l9pisv0fpzkks700n8d3z9f3";
+    sha256 = "1zzz2yiiny9pm4h6ayb82xzxc2j5djcpf8va2wagcw92m7w6miqw";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/build-managers/buildbot/worker.nix b/pkgs/development/tools/build-managers/buildbot/worker.nix
index 968411ca9cc5..cffcb594a0d2 100644
--- a/pkgs/development/tools/build-managers/buildbot/worker.nix
+++ b/pkgs/development/tools/build-managers/buildbot/worker.nix
@@ -3,11 +3,11 @@
 pythonPackages.buildPythonApplication (rec {
   name = "${pname}-${version}";
   pname = "buildbot-worker";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "0lcaga16zf75aa6ckl9ahjbrs3n3bw7nj6m8g03n77873cgh94x4";
+    sha256 = "1l9iqyqn9yln6ln6dhfkngzx92a61v1cf5ahqj4ax663i02yq7fh";
   };
 
   buildInputs = with pythonPackages; [ setuptoolsTrial mock ];
diff --git a/pkgs/development/tools/build-managers/cmake/2.8.nix b/pkgs/development/tools/build-managers/cmake/2.8.nix
index c61bf3287db1..a57d20e2702a 100644
--- a/pkgs/development/tools/build-managers/cmake/2.8.nix
+++ b/pkgs/development/tools/build-managers/cmake/2.8.nix
@@ -84,5 +84,6 @@ stdenv.mkDerivation rec {
     description = "Cross-Platform Makefile Generator";
     platforms = if useQt4 then qt4.meta.platforms else stdenv.lib.platforms.unix;
     maintainers = with stdenv.lib.maintainers; [ ];
+    license = stdenv.lib.licenses.bsd3;
   };
 }
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index ed0928febe29..81a1dd23f2e0 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -126,5 +126,6 @@ stdenv.mkDerivation rec {
     description = "Cross-Platform Makefile Generator";
     platforms = if useQt4 then qt4.meta.platforms else platforms.all;
     maintainers = with maintainers; [ ttuegel lnl7 ];
+    license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/tools/build-managers/dub/default.nix b/pkgs/development/tools/build-managers/dub/default.nix
index b9a8c97bd5eb..11461fc69522 100644
--- a/pkgs/development/tools/build-managers/dub/default.nix
+++ b/pkgs/development/tools/build-managers/dub/default.nix
@@ -4,7 +4,7 @@ let
 
   dubBuild = stdenv.mkDerivation rec {
     name = "dubBuild-${version}";
-    version = "1.8.1";
+    version = "1.10.0";
 
     enableParallelBuilding = true;
 
@@ -12,7 +12,7 @@ let
       owner = "dlang";
       repo = "dub";
       rev = "v${version}";
-      sha256 = "16r7x4jsfv5fjssvs6mwj8ymr6fjpvbkjhpr4f4368sjr5iyfad6";
+      sha256 = "02xxpfcjs427jqbwz0vh5vl3bh62ys65zmi9gpa3svzqffyx13n4";
     };
 
     postUnpack = ''
@@ -51,40 +51,45 @@ let
 
   # Need to test in a fixed-output derivation, otherwise the
   # network tests would fail if sandbox mode is enabled.
-  dubUnittests = stdenv.mkDerivation rec {
-    name = "dubUnittests-${version}";
-    version = dubBuild.version;
-
-    enableParallelBuilding = dubBuild.enableParallelBuilding;
-    preferLocalBuild = true;
-    inputString = dubBuild.outPath;
-    outputHashAlgo = "sha256";
-    outputHash = builtins.hashString "sha256" inputString;
-
-    src = dubBuild.src;
-    
-    postUnpack = dubBuild.postUnpack;
-    postPatch = dubBuild.postPatch;
-
-    nativeBuildInputs = dubBuild.nativeBuildInputs;
-    buildInputs = dubBuild.buildInputs;
-
-    buildPhase = ''
-      # Can't use dub from dubBuild directly because one unittest 
-      # (issue895-local-configuration) needs to generate a config 
-      # file under ../etc relative to the dub location.
-      cp ${dubBuild}/bin/dub bin/
-      export DUB=$NIX_BUILD_TOP/source/bin/dub
-      export PATH=$PATH:$NIX_BUILD_TOP/source/bin/
-      export DC=${dmd.out}/bin/dmd
-      export HOME=$TMP
-      ./test/run-unittest.sh
-    '';
-
-    installPhase = ''
-        echo -n $inputString > $out
-    '';
-  };
+  # Disable tests on Darwin for now because they don't work
+  # reliably there.
+  dubUnittests = if !stdenv.hostPlatform.isDarwin then
+    stdenv.mkDerivation rec {
+      name = "dubUnittests-${version}";
+      version = dubBuild.version;
+
+      enableParallelBuilding = dubBuild.enableParallelBuilding;
+      preferLocalBuild = true;
+      inputString = dubBuild.outPath;
+      outputHashAlgo = "sha256";
+      outputHash = builtins.hashString "sha256" inputString;
+
+      src = dubBuild.src;
+      
+      postUnpack = dubBuild.postUnpack;
+      postPatch = dubBuild.postPatch;
+
+      nativeBuildInputs = dubBuild.nativeBuildInputs;
+      buildInputs = dubBuild.buildInputs;
+
+      buildPhase = ''
+        # Can't use dub from dubBuild directly because one unittest 
+        # (issue895-local-configuration) needs to generate a config 
+        # file under ../etc relative to the dub location.
+        cp ${dubBuild}/bin/dub bin/
+        export DUB=$NIX_BUILD_TOP/source/bin/dub
+        export PATH=$PATH:$NIX_BUILD_TOP/source/bin/
+        export DC=${dmd.out}/bin/dmd
+        export HOME=$TMP
+        ./test/run-unittest.sh
+      '';
+
+      installPhase = ''
+          echo -n $inputString > $out
+      '';
+    }
+  else
+    "";
 
 in
 
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
index 3cb906d50edf..ca53c4d8c535 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -1,7 +1,6 @@
-{ lib, python3Packages, stdenv, targetPlatform, writeTextDir, substituteAll }: let
-  targetPrefix = lib.optionalString stdenv.isCross
-                   (targetPlatform.config + "-");
-in python3Packages.buildPythonApplication rec {
+{ lib, python3Packages, stdenv, targetPlatform, writeTextDir, substituteAll }:
+
+python3Packages.buildPythonApplication rec {
   version = "0.46.1";
   pname = "meson";
 
@@ -48,10 +47,10 @@ in python3Packages.buildPythonApplication rec {
 
   crossFile = writeTextDir "cross-file.conf" ''
     [binaries]
-    c = '${targetPrefix}cc'
-    cpp = '${targetPrefix}c++'
-    ar = '${targetPrefix}ar'
-    strip = '${targetPrefix}strip'
+    c = '${stdenv.cc.targetPrefix}cc'
+    cpp = '${stdenv.cc.targetPrefix}c++'
+    ar = '${stdenv.cc.bintools.targetPrefix}ar'
+    strip = '${stdenv.cc.bintools.targetPrefix}strip'
     pkgconfig = 'pkg-config'
 
     [properties]
@@ -69,7 +68,9 @@ in python3Packages.buildPythonApplication rec {
   # checkInputs = [ ninja pkgconfig ];
   # checkPhase = "python ./run_project_tests.py";
 
-  inherit (stdenv) cc isCross;
+  inherit (stdenv) cc;
+
+  isCross = stdenv.buildPlatform != stdenv.hostPlatform;
 
   meta = with lib; {
     homepage = http://mesonbuild.com;
diff --git a/pkgs/development/tools/build-managers/rebar/default.nix b/pkgs/development/tools/build-managers/rebar/default.nix
index b028534f3c86..98cd7e136d22 100644
--- a/pkgs/development/tools/build-managers/rebar/default.nix
+++ b/pkgs/development/tools/build-managers/rebar/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation {
 
     platforms = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.the-kenny ];
+    license = stdenv.lib.licenses.asl20;
   };
 }
diff --git a/pkgs/development/tools/build-managers/rebar3/default.nix b/pkgs/development/tools/build-managers/rebar3/default.nix
index d9e260a13de3..e96852602fc7 100644
--- a/pkgs/development/tools/build-managers/rebar3/default.nix
+++ b/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -122,5 +122,6 @@ stdenv.mkDerivation {
 
     platforms = stdenv.lib.platforms.unix;
     maintainers = with stdenv.lib.maintainers; [ gleber tazjin ];
+    license = stdenv.lib.licenses.asl20;
   };
 }
diff --git a/pkgs/development/tools/build-managers/remake/default.nix b/pkgs/development/tools/build-managers/remake/default.nix
index 926cc83cd976..3eca6f02e45d 100644
--- a/pkgs/development/tools/build-managers/remake/default.nix
+++ b/pkgs/development/tools/build-managers/remake/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "1zi16pl7sqn1aa8b7zqm9qnd9vjqyfywqm8s6iap4clf86l7kss2";
   };
 
+  patches = [
+    ./glibc-2.27-glob.patch
+  ];
+
   buildInputs = [ readline ];
 
   meta = {
diff --git a/pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch b/pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch
new file mode 100644
index 000000000000..ef876e2fb237
--- /dev/null
+++ b/pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch
@@ -0,0 +1,34 @@
+diff --git a/glob/glob.c b/glob/glob.c
+index f3911bcd861..6cb76e8e162 100644
+--- a/glob/glob.c
++++ b/glob/glob.c
+@@ -208,29 +208,8 @@ my_realloc (p, n)
+ #endif /* __GNU_LIBRARY__ || __DJGPP__ */
+ 
+ 
+-#if !defined __alloca && !defined __GNU_LIBRARY__
+-
+-# ifdef	__GNUC__
+-#  undef alloca
+-#  define alloca(n)	__builtin_alloca (n)
+-# else	/* Not GCC.  */
+-#  ifdef HAVE_ALLOCA_H
+-#   include <alloca.h>
+-#  else	/* Not HAVE_ALLOCA_H.  */
+-#   ifndef _AIX
+-#    ifdef WINDOWS32
+-#     include <malloc.h>
+-#    else
+-extern char *alloca ();
+-#    endif /* WINDOWS32 */
+-#   endif /* Not _AIX.  */
+-#  endif /* sparc or HAVE_ALLOCA_H.  */
+-# endif	/* GCC.  */
+-
+ # define __alloca	alloca
+ 
+-#endif
+-
+ #ifndef __GNU_LIBRARY__
+ # define __stat stat
+ # ifdef STAT_MACROS_BROKEN
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 9c23b85e2272..b5751a19455e 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "sbt-${version}";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchurl {
     urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz"
       "https://cocl.us/sbt-${version}.tgz"
     ];
-    sha256 = "1rrn0v4bhgar3mrgs931ifggb8kfg23fv5cgvskrdd7iyvg0z9wc";
+    sha256 = "1pyp98svh5x8b6yp5vfl0jhz8aysjm0dqvqf7znyb3l7knfqk726";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/tools/build-managers/waf/default.nix b/pkgs/development/tools/build-managers/waf/default.nix
index e86d61cf6c9a..5c6283b00a15 100644
--- a/pkgs/development/tools/build-managers/waf/default.nix
+++ b/pkgs/development/tools/build-managers/waf/default.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchurl, python2 }:
+{ stdenv, fetchFromGitLab, python, ensureNewerSourcesForZipFilesHook }:
 
 stdenv.mkDerivation rec {
   name = "waf-${version}";
-  version = "2.0.6";
+  version = "2.0.10";
 
-  src = fetchurl {
-    url = "https://waf.io/waf-${version}.tar.bz2";
-    sha256 = "1wyl0jl10i0p2rj49sig5riyppgkqlkqmbvv35d5bqxri3y4r38q";
+  src = fetchFromGitLab {
+    owner = "ita1024";
+    repo = "waf";
+    rev = name;
+    sha256 = "12p5myq72r5qg7wp2gwbnyvh6lzzcrwp9h3dw194x38g52m0prc7";
   };
 
-  buildInputs = [ python2 ];
+  buildInputs = [ python ensureNewerSourcesForZipFilesHook ];
 
   configurePhase = ''
     python waf-light configure
@@ -23,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Meta build system";
-    homepage    = "https://waf.io/";
+    homepage    = https://waf.io;
     license     = licenses.bsd3;
     platforms   = platforms.all;
     maintainers = with maintainers; [ vrthra ];
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 479bfe35e969..0b6d0cd28efd 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "11.1.0";
+  version = "11.2.0";
   # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
   docker_x86_64 = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
-    sha256 = "0l7j69isnp6wlix3ysjxcr9dgcx5a0j9z2k0bsl714ff339js6j5";
+    sha256 = "1dphrws6118l0ryvgny0z5h9fsdbwckm4x21bh8hwb6bxdbqr0yn";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "16x9wbyd90jgyn7x45j9cyrdfz4hg8qav132schqrrdfrgjyrb4x";
+    sha256 = "162lzbi7z9afp470w0qkcja728jyb48s7krzinmvg45fb3fb0lfn";
   };
 in
 buildGoPackage rec {
@@ -29,7 +29,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "0b632jnqbj74nx27nlpiia6nq8668gf41lcb4s24gw9jnfmrwhym";
+    sha256 = "1y4fb5jbks6xab7zim10s112h11bq04hh3lddmhm4f2nyqcmlrqh";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/pkgs/development/tools/database/sqldeveloper/18.2.nix b/pkgs/development/tools/database/sqldeveloper/18.2.nix
new file mode 100644
index 000000000000..adb22f45c8e1
--- /dev/null
+++ b/pkgs/development/tools/database/sqldeveloper/18.2.nix
@@ -0,0 +1,84 @@
+{ stdenv, makeDesktopItem, makeWrapper, requireFile, unzip, jdk }:
+
+let
+  version = "18.2.0.183.1748";
+
+  desktopItem = makeDesktopItem {
+    name = "sqldeveloper";
+    exec = "sqldeveloper";
+    icon = "sqldeveloper";
+    desktopName = "Oracle SQL Developer 18";
+    genericName = "Oracle SQL Developer 18";
+    comment = "Oracle's Oracle DB GUI client";
+    categories = "Application;Development;";
+  };
+in
+  stdenv.mkDerivation rec {
+
+  inherit version;
+  name = "sqldeveloper-${version}";
+
+  src = requireFile rec {
+    name = "sqldeveloper-${version}-no-jre.zip";
+    url = "http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/";
+    message = ''
+      This Nix expression requires that ${name} already be part of the store. To
+      obtain it you need to
+
+      - navigate to ${url}
+      - make sure that it says "Version ${version}" above the list of downloads
+        - if it does not, click on the "Previous Version" link below the downloads
+          and repeat until the version is correct. This is necessarry because as the
+          time of this writing there exists no permanent link for the current version
+          yet.
+          Also consider updating this package yourself (you probably just need to
+          change the `version` variable and update the sha256 to the one of the
+          new file) or opening an issue at the nixpkgs repo.
+      - accept the license agreement
+      - download the file listed under "Other Platforms"
+      - sign in or create an oracle account if neccessary
+
+      and then add the file to the Nix store using either:
+
+        nix-store --add-fixed sha256 ${name}
+
+      or
+
+        nix-prefetch-url --type sha256 file:///path/to/${name}
+    '';
+    sha256 = "0clz2w4ghqczy9sz6j4qqygk20whdwkca192pd3v0dw09875as0k";
+  };
+
+  buildInputs = [ makeWrapper unzip ];
+
+  unpackCmd = "unzip $curSrc";
+
+  installPhase = ''
+    mkdir -p $out/libexec $out/share/{applications,pixmaps}
+    mv * $out/libexec/
+
+    mv $out/libexec/icon.png $out/share/pixmaps/sqldeveloper.png
+    cp ${desktopItem}/share/applications/* $out/share/applications
+
+    makeWrapper $out/libexec/sqldeveloper/bin/sqldeveloper $out/bin/sqldeveloper \
+      --set JAVA_HOME ${jdk.home} \
+      --run "cd $out/libexec/sqldeveloper/bin"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Oracle's Oracle DB GUI client";
+    longDescription = ''
+      Oracle SQL Developer is a free integrated development environment that
+      simplifies the development and management of Oracle Database in both
+      traditional and Cloud deployments. SQL Developer offers complete
+      end-to-end development of your PL/SQL applications, a worksheet for
+      running queries and scripts, a DBA console for managing the database,
+      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/;
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ ardumont flokli ma27 ];
+  };
+}
diff --git a/pkgs/development/tools/database/sqldeveloper/default.nix b/pkgs/development/tools/database/sqldeveloper/default.nix
index f2c756e30f12..45e8ba4f7c02 100644
--- a/pkgs/development/tools/database/sqldeveloper/default.nix
+++ b/pkgs/development/tools/database/sqldeveloper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, makeDesktopItem, makeWrapper, requireFile, unzip, openjdk }:
+{ stdenv, makeDesktopItem, makeWrapper, requireFile, unzip, jdk }:
 
 let
   version = "17.4.1.054.0712";
@@ -46,29 +46,23 @@ in
 
         nix-prefetch-url --type sha256 file:///path/to/${name}
     '';
-    # obtained by `sha256sum sqldeveloper-${version}-no-jre.zip`
     sha256 = "7e92ca94d02489002db291c96f1d67f9b2501a8967ff3457103fcf60c1eb154a";
   };
 
   buildInputs = [ makeWrapper unzip ];
 
-  buildCommand = ''
-    mkdir -p $out/bin
-    echo  >$out/bin/sqldeveloper '#! ${stdenv.shell}'
-    echo >>$out/bin/sqldeveloper 'export JAVA_HOME=${openjdk}/lib/openjdk'
-    echo >>$out/bin/sqldeveloper 'export JDK_HOME=$JAVA_HOME'
-    echo >>$out/bin/sqldeveloper "cd $out/lib/${name}/sqldeveloper/bin"
-    echo >>$out/bin/sqldeveloper '${stdenv.shell} sqldeveloper "$@"'
-    chmod +x $out/bin/sqldeveloper
+  unpackCmd = "unzip $curSrc";
 
-    mkdir -p $out/lib/
-    cd $out
-    unzip ${src}
-    mv sqldeveloper $out/lib/${name}
+  installPhase = ''
+    mkdir -p $out/libexec $out/share/{applications,pixmaps}
+    mv * $out/libexec/
 
-    install -D -m 444 $out/lib/$name/icon.png $out/share/pixmaps/sqldeveloper.png
-    mkdir -p $out/share/applications
+    mv $out/libexec/icon.png $out/share/pixmaps/sqldeveloper.png
     cp ${desktopItem}/share/applications/* $out/share/applications
+
+    makeWrapper $out/libexec/sqldeveloper/bin/sqldeveloper $out/bin/sqldeveloper \
+      --set JAVA_HOME ${jdk.home} \
+      --run "cd $out/libexec/sqldeveloper/bin"
   '';
 
   meta = with stdenv.lib; {
@@ -84,7 +78,7 @@ in
     '';
     homepage = http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/;
     license = licenses.unfree;
-    maintainers = [ maintainers.ardumont ];
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ ardumont flokli ];
   };
 }
diff --git a/pkgs/development/tools/documentation/gnome-doc-utils/default.nix b/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
index 7e8a41590724..9b16d55d4138 100644
--- a/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
+++ b/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
@@ -13,7 +13,7 @@ python2Packages.buildPythonApplication {
   nativeBuildInputs = [ intltool pkgconfig ];
   buildInputs = [ libxslt ];
 
-  configureFlags = "--disable-scrollkeeper";
+  configureFlags = [ "--disable-scrollkeeper" ];
 
   preBuild = ''
     substituteInPlace xml2po/xml2po/Makefile --replace '-e "s+^#!.*python.*+#!$(PYTHON)+"' '-e "s\"^#!.*python.*\"#!$(PYTHON)\""'
diff --git a/pkgs/development/tools/dtools/default.nix b/pkgs/development/tools/dtools/default.nix
index bc29fe2cbcf9..b1703cd45dd5 100644
--- a/pkgs/development/tools/dtools/default.nix
+++ b/pkgs/development/tools/dtools/default.nix
@@ -2,21 +2,21 @@
 
 stdenv.mkDerivation rec {
   name = "dtools-${version}";
-  version = "2.079.1";
+  version = "2.081.2";
 
   srcs = [
     (fetchFromGitHub {
       owner = "dlang";
       repo = "dmd";
       rev = "v${version}";
-      sha256 = "0mlk095aw94d940qkymfp85daggiz3f0xv598nlc7acgp6408kyj";
+      sha256 = "1wwk4shqldvgyczv1ihmljpfj3yidq7mxcj69i9kjl7jqx54hw62";
       name = "dmd";
     })
     (fetchFromGitHub {
       owner = "dlang";
       repo = "tools";
       rev = "v${version}";
-      sha256 = "0fvpfwh3bh3fymrmis3n39x9hkfklmv81lrlqcyl8fmmk694yvad";
+      sha256 = "1sbcfj8r1nvy7ynh9dy55q9bvfvxwf1z3llpxckvi8p6yvf35qn2";
       name = "dtools";
     })
   ];
diff --git a/pkgs/development/tools/easyjson/default.nix b/pkgs/development/tools/easyjson/default.nix
index de9fb82f66f2..3ae172213639 100644
--- a/pkgs/development/tools/easyjson/default.nix
+++ b/pkgs/development/tools/easyjson/default.nix
@@ -1,20 +1,19 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-{ stdenv, buildGoPackage, fetchgit }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
 
 buildGoPackage rec {
   name = "easyjson-unstable-${version}";
-  version = "2018-06-06";
-  rev = "3fdea8d05856a0c8df22ed4bc71b3219245e4485";
-
+  version = "2018-07-30";
   goPackagePath = "github.com/mailru/easyjson";
+  goDeps = ./deps.nix;
 
-  src = fetchgit {
-    inherit rev;
-    url = "https://github.com/mailru/easyjson";
-    sha256 = "0g3crph77yhv4ipdnwqc32z4cp87ahi4ikad5kyy6q4znnxliz74";
+  src = fetchFromGitHub {
+    owner = "mailru";
+    repo = "easyjson";
+    rev = "03f2033d19d5860aef995fe360ac7d395cd8ce65";
+    sha256 = "0r62ym6m1ijby7nwplq0gdnhak8in63njyisrwhr3xpx9vkira97";
   };
 
-  goDeps = ./deps.nix;
+  enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/mailru/easyjson";
diff --git a/pkgs/development/tools/flootty/default.nix b/pkgs/development/tools/flootty/default.nix
index 796c3dc79a09..1baddb52259c 100644
--- a/pkgs/development/tools/flootty/default.nix
+++ b/pkgs/development/tools/flootty/default.nix
@@ -1,22 +1,18 @@
-{ stdenv, python }:
+{ stdenv, python3Packages }:
 
-let
-  inherit (python.pkgs) buildPythonApplication fetchPypi;
-in
-
-buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "Flootty";
-  version = "3.2.1";
+  version = "3.2.2";
 
-  src = fetchPypi {
+  src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0vjwl6g1bwm6jwp9wjla663cm831zf0rc9361mvpn4imdsfz7hxs";
+    sha256 = "0gfl143ly81pmmrcml91yr0ypvwrs5q4s1sfdc0l2qkqpy233ih7";
   };
 
   meta = with stdenv.lib; {
     description = "A collaborative terminal. In practice, it's similar to a shared screen or tmux session";
     homepage = "https://floobits.com/help/flootty";
     license = licenses.asl20;
-    maintainers = with maintainers; [ sellout ];
+    maintainers = with maintainers; [ sellout enzime ];
   };
 }
diff --git a/pkgs/development/tools/ghp-import/default.nix b/pkgs/development/tools/ghp-import/default.nix
index 9bad3fc6870a..44c16b3a4bfd 100644
--- a/pkgs/development/tools/ghp-import/default.nix
+++ b/pkgs/development/tools/ghp-import/default.nix
@@ -3,12 +3,12 @@
 with python3.pkgs;
 
 buildPythonApplication rec {
-  version = "0.4.1";
+  version = "0.5.5";
   pname = "ghp-import";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6058810e1c46dd3b5b1eee87e203bdfbd566e10cfc77566edda7aa4dbf6a3053";
+    sha256 = "1mvmpi7lqflw2lr0g0y5f9s0d1pv9cav4gbmaqnziqg442klx4iy";
   };
 
   disabled = isPyPy;
diff --git a/pkgs/development/tools/global-platform-pro/default.nix b/pkgs/development/tools/global-platform-pro/default.nix
new file mode 100644
index 000000000000..7c697bc5e576
--- /dev/null
+++ b/pkgs/development/tools/global-platform-pro/default.nix
@@ -0,0 +1,98 @@
+{ stdenv, fetchFromGitHub, jdk, maven, writeText, makeWrapper, jre_headless, pcsclite }:
+
+# TODO: This is quite a bit of duplicated logic with gephi. Factor it out?
+stdenv.mkDerivation rec {
+  pname = "global-platform-pro";
+  version = "0.3.10-rc11"; # Waiting for release https://github.com/martinpaljak/GlobalPlatformPro/issues/128
+  describeVersion = "v0.3.10-rc11-0-g8923747"; # git describe --tags --always --long --dirty
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "martinpaljak";
+    repo = "GlobalPlatformPro";
+    rev = "v${version}";
+    sha256 = "0rk81x2y7vx1caxm6wa59fjrfxmjn7s8yxaxm764p8m2qxk3m4y2";
+  };
+
+  # This patch hardcodes the return of a git command the build system tries to
+  # run. As `fetchFromGitHub` doesn't fetch a full-fledged git repository,
+  # this command can only fail at build-time. As a consequence, we include the
+  # `describeVersion` variable defined above here.
+  #
+  # See upstream issue https://github.com/martinpaljak/GlobalPlatformPro/issues/129
+  patches = [ (writeText "${name}-version.patch" ''
+    diff --git a/pom.xml b/pom.xml
+    index 1e5a82d..1aa01fe 100644
+    --- a/pom.xml
+    +++ b/pom.xml
+    @@ -121,14 +121,10 @@
+                         </execution>
+                     </executions>
+                     <configuration>
+    -                    <executable>git</executable>
+    +                    <executable>echo</executable>
+                         <outputFile>target/generated-resources/pro/javacard/gp/pro_version.txt</outputFile>
+                         <arguments>
+    -                        <argument>describe</argument>
+    -                        <argument>--tags</argument>
+    -                        <argument>--always</argument>
+    -                        <argument>--long</argument>
+    -                        <argument>--dirty</argument>
+    +                        <argument>${describeVersion}</argument>
+                         </arguments>
+                     </configuration>
+                 </plugin>
+  '') ];
+
+  deps = stdenv.mkDerivation {
+    name = "${name}-deps";
+    inherit src patches;
+    nativeBuildInputs = [ jdk maven ];
+    installPhase = ''
+      # Download the dependencies
+      while ! mvn package "-Dmaven.repo.local=$out/.m2" -Dmaven.wagon.rto=5000; do
+        echo "timeout, restart maven to continue downloading"
+      done
+
+      # And keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files
+      # with lastModified timestamps inside
+      find "$out/.m2" -type f \
+        -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' \
+        -delete
+    '';
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "15bbi7z9v601all9vr2azh8nk8rpz2vd91yvvw8id6birnbhn3if";
+  };
+
+  nativeBuildInputs = [ jdk maven makeWrapper ];
+
+  buildPhase = ''
+    cp -dpR "${deps}/.m2" ./
+    chmod -R +w .m2
+    mvn package --offline -Dmaven.repo.local="$(pwd)/.m2"
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/lib/java" "$out/share/java"
+    cp -R target/apidocs "$out/doc"
+    cp target/gp.jar "$out/share/java"
+    makeWrapper "${jre_headless}/bin/java" "$out/bin/gp" \
+      --add-flags "-jar '$out/share/java/gp.jar'" \
+      --prefix LD_LIBRARY_PATH : "${pcsclite.out}/lib"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Command-line utility for managing applets and keys on Java Cards";
+    longDescription = ''
+      This command-line utility can be used to manage applets and keys
+      on Java Cards. It is made available as the `gp` executable.
+
+      The executable requires the PC/SC daemon running for correct execution.
+      If you run NixOS, it can be enabled with `services.pcscd.enable = true;`.
+    '';
+    homepage = https://github.com/martinpaljak/GlobalPlatformPro;
+    license = with licenses; [ lgpl3 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/glock/default.nix b/pkgs/development/tools/glock/default.nix
index 98813f143cbb..35f7a2bfdea1 100644
--- a/pkgs/development/tools/glock/default.nix
+++ b/pkgs/development/tools/glock/default.nix
@@ -19,6 +19,7 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = https://github.com/robfig/glock;
     description = "A command-line tool to lock Go dependencies to specific revisions";
+    license = licenses.mit;
     maintainers = [ maintainers.rushmorem ];
   };
 }
diff --git a/pkgs/development/tools/goa/default.nix b/pkgs/development/tools/goa/default.nix
index 04c35f7b8bb7..dfb603d101fc 100644
--- a/pkgs/development/tools/goa/default.nix
+++ b/pkgs/development/tools/goa/default.nix
@@ -8,32 +8,12 @@ buildGoPackage rec {
   subPackages = [ "goagen" ];
 
   src = fetchFromGitHub {
-    rev = "v${version}";
     owner = "goadesign";
     repo = "goa";
+    rev = "v${version}";
     sha256 = "13401jf907z3qh11h9clb3z0i0fshwkmhx11fq9z6vx01x8x2in1";
   };
 
-  buildInputs = [ makeWrapper ];
-
-  allowGoReference = true;
-
-  outputs = [ "out" ];
-
-  preInstall = ''
-    export bin=$out
-  '';
-
-  postInstall = ''
-    # goagen needs GOPATH to be set
-    wrapProgram $out/bin/goagen \
-      --prefix GOPATH ":" $out/share/go
-
-    # and it needs access to all its dependancies
-    mkdir -p $out/share/go
-    cp -Rv $NIX_BUILD_TOP/go/{pkg,src} $out/share/go/
-  '';
-
   goDeps = ./deps.nix;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/haskell/multi-ghc-travis/default.nix b/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
index 30dd7f217915..1403194925d3 100644
--- a/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
+++ b/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
@@ -9,8 +9,8 @@ mkDerivation {
   src = fetchFromGitHub {
     owner = "haskell-CI";
     repo = "haskell-ci";
-    rev = "f7ab8c794d7a957370d89f9b4e285a6d20bf8af8";
-    sha256 = "0w8qjdy8hzdrwmqnkf4y967r9xh0k21w3hxqlsjp66cay1vby2s8";
+    rev = "f67bc41621d40d6559684be5406d65409df4c480";
+    sha256 = "1r79dbgjq97h30xa3xhf75l0bivag8an9ag00mgzgpglvgc96czm";
   };
   isLibrary = true;
   isExecutable = true;
diff --git a/pkgs/development/tools/hcloud/default.nix b/pkgs/development/tools/hcloud/default.nix
index daa3713a8d16..2ef6b4a1d548 100644
--- a/pkgs/development/tools/hcloud/default.nix
+++ b/pkgs/development/tools/hcloud/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   name = "hcloud-${version}";
-  version = "1.5.0";
+  version = "1.6.0";
   goPackagePath = "github.com/hetznercloud/cli";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "1pbfa977ihqn7j3ynyqghxjw0wmq0vgha4lsshdpf5xr2n3w0r8l";
+    sha256 = "0iswy8xjqvshwk9w2vz3miph953qdh21xga9hl6aili84x25xzbx";
   };
 
   buildFlagsArray = [ "-ldflags=" "-w -X github.com/hetznercloud/cli/cli.Version=${version}" ];
diff --git a/pkgs/development/tools/kubectx/default.nix b/pkgs/development/tools/kubectx/default.nix
new file mode 100644
index 000000000000..5cf0badf668e
--- /dev/null
+++ b/pkgs/development/tools/kubectx/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub, kubectl, makeWrapper }:
+
+with lib;
+
+stdenv.mkDerivation rec {
+  name = "kubectx";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "ahmetb";
+    repo = "${name}";
+    rev = "v${version}";
+    sha256 = "1bmmaj5fffx4hy55l6x4vl5gr9rp2yhg4vs5b9sya9rjvdkamdx5";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  dontBuild = true;
+  doCheck = false;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp kubectx $out/bin
+    cp kubens $out/bin
+
+    for f in $out/bin/*; do
+      wrapProgram $f --prefix PATH : ${makeBinPath [ kubectl ]}
+    done
+  '';
+
+  meta = {
+    description = "Fast way to switch between clusters and namespaces in kubectl!";
+    license = licenses.asl20;
+    homepage = https://github.com/ahmetb/kubectx;
+    maintainers = with maintainers; [ periklis ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/development/tools/lattice-diamond/default.nix b/pkgs/development/tools/lattice-diamond/default.nix
new file mode 100644
index 000000000000..1691f09e6e41
--- /dev/null
+++ b/pkgs/development/tools/lattice-diamond/default.nix
@@ -0,0 +1,115 @@
+{ stdenv, rpmextract, patchelf, makeWrapper, file, requireFile, glib, zlib, 
+    freetype, fontconfig, xorg }:
+
+stdenv.mkDerivation rec {
+  name = "diamond-3.10";
+
+  nativeBuildInputs = [ rpmextract patchelf makeWrapper file ];
+
+  src = requireFile {
+    name = "diamond_3_10-base_x64-111-2-x86_64-linux.rpm";
+    url = "http://www.latticesemi.com/view_document?document_id=52180";
+    sha256 = "ec0b370cf8bd55831eeed7c5eadcabacbd6e63ac657c20209d672119a07a5c0f";
+  };
+
+  buildCommand = ''
+    origprefix=usr/local/diamond/3.10_x64
+    prefix=diamond
+    
+    echo "Unpacking $src..."
+    rpmextract $src
+    
+    # Move $pwd/usr/local/diamond/VERS to $out/diamond, cd.
+    mkdir -p $out/$prefix
+    rmdir $out/$prefix
+    mv $origprefix $out/$prefix
+    
+    cd $out
+    
+    # Extract all tarballs.
+    for tb in \
+        cae_library/cae_library.tar.gz \
+        embedded_source/embedded_source.tar.gz \
+        ispfpga/ispfpga.tar.gz \
+        synpbase/synpbase.tar.gz \
+        tcltk/tcltk.tar.gz \
+        bin/bin.tar.gz \
+        examples/examples.tar.gz \
+        data/data.tar.gz ; do
+    
+        echo "Extracting tarball $prefix/$tb"
+        cd $out/$prefix/$(dirname $tb)
+        tar xf $(basename $tb)
+        rm $(basename $tb)
+    done
+    
+    # Patch shebangs in start scripts .
+    cd $out/$prefix/bin/lin64
+    for tool in \
+        programmer \
+        pgrcmd \
+        diamond_env \
+        powercal \
+        model300 \
+        update \
+        diamond \
+        debugger \
+        ddtcmd \
+        cableserver \
+        revealrva \
+        ipexpress \
+        fileutility \
+        diamond ; do
+        
+        echo "Patching script $prefix/bin/lin64/$tool..."
+        patchShebangs $tool
+    done
+    
+    # Patch executable ELFs.
+    for path in bin/lin64 ispfpga/bin/lin64; do
+        cd $out/$prefix/$path
+        for f in *; do
+            if ! file $f | grep -q "ELF 64-bit LSB executable" ; then
+                continue
+            fi
+            echo "Patching ELF $prefix/$path/$f..."
+            # We force RPATH otherwise libraries from LD_LIBRARY_PATH (which the
+            # tools mangle by themselves) will not be able to find their
+            # dependencies from nix.
+            patchelf \
+                --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+                --set-rpath "$libPath" --force-rpath \
+                $f
+        done
+    done
+    
+    # Remove 32-bit libz.
+    rm $out/$prefix/bin/lin64/libz.{so,so.1}
+    
+    # Make wrappers (should these target more than the 'diamond' tool?).
+    # The purpose of these is just to call the target program using its
+    # absolute path - otherwise, it will crash.
+    mkdir -p bin
+    for tool in diamond ; do
+        makeWrapper $out/$prefix/bin/lin64/$tool $out/bin/$tool
+    done
+  '';
+
+  libPath = stdenv.lib.makeLibraryPath [
+    glib zlib freetype fontconfig
+    xorg.libSM xorg.libICE xorg.libXrender xorg.libXext xorg.libX11 xorg.libXt
+  ];
+
+  meta = {
+    description = "Vendor development tools for Lattice FPGA devices";
+    longDescription = ''
+      Lattice Diamond software is the leading-edge software design environment
+      for cost- sensitive, low-power Lattice FPGA architectures. It is the
+      next-generation replacement for ispLEVER.
+    '';
+    homepage = "http://www.latticesemi.com/latticediamond";
+    license = stdenv.lib.licenses.unfree;
+    maintainers = with stdenv.lib.maintainers; [ q3k ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/tools/literate-programming/Literate/default.nix b/pkgs/development/tools/literate-programming/Literate/default.nix
index 4bc3e77dbaa7..8fbbcdb6e5f7 100644
--- a/pkgs/development/tools/literate-programming/Literate/default.nix
+++ b/pkgs/development/tools/literate-programming/Literate/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchgit, dmd, dub }:
 
 stdenv.mkDerivation {
-  name = "Literate-2017-05-28";
+  name = "Literate-2018-08-20";
 
   src = fetchgit {
     url = "https://github.com/zyedidia/Literate.git";
-    rev = "23928d64bb19b5101dbcc794da6119beaf59f679";
-    sha256 = "094lramvacarzj8443ns18zyv7dxnivwi7kdk5xi5r2z4gx338iq";
+    rev = "737567e49c9e12ac56222c147191da58ea1521e2";
+    sha256 = "19v8v66lv8ayg3irqkbk7ln5lkmgwpx4wgz8h3yr81arl40bbzqs";
   };
 
   buildInputs = [ dmd dub ];
diff --git a/pkgs/development/tools/misc/automake/automake-1.11.x.nix b/pkgs/development/tools/misc/automake/automake-1.11.x.nix
index 0a3316005236..8f437af0ada8 100644
--- a/pkgs/development/tools/misc/automake/automake-1.11.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.11.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, autoconf, makeWrapper }:
+{ stdenv, fetchurl, perl, autoconf }:
 
 stdenv.mkDerivation rec {
   name = "automake-1.11.6";
@@ -17,11 +17,12 @@ stdenv.mkDerivation rec {
 
   patches = [ ./fix-test-autoconf-2.69.patch ./fix-perl-5.26.patch ];
 
-  buildInputs = [perl autoconf makeWrapper];
+  buildInputs = [ perl autoconf ];
 
   # Disable indented log output from Make, otherwise "make.test" will
   # fail.
   preCheck = "unset NIX_INDENT_MAKE";
+  doCheck = false; # takes _a lot_ of time, fails 11 of 782 tests
 
   # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
   # "fixed" path in generated files!
diff --git a/pkgs/development/tools/misc/automake/automake-1.16.x.nix b/pkgs/development/tools/misc/automake/automake-1.16.x.nix
index 6646b8472526..478fc14d680d 100644
--- a/pkgs/development/tools/misc/automake/automake-1.16.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.16.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, autoconf, doCheck ? false }:
+{ stdenv, fetchurl, perl, autoconf }:
 
 stdenv.mkDerivation rec {
   name = "automake-1.16.1";
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
   # Disable indented log output from Make, otherwise "make.test" will
   # fail.
   preCheck = "unset NIX_INDENT_MAKE";
-  inherit doCheck;
+  doCheck = false; # takes _a lot_ of time, fails 3 out of 2698 tests, all seem to be related to paths
+  doInstallCheck = false; # runs the same thing, fails the same tests
 
   # The test suite can run in parallel.
   enableParallelBuilding = true;
diff --git a/pkgs/development/tools/misc/avrdude/default.nix b/pkgs/development/tools/misc/avrdude/default.nix
index 66b0467657a2..4475e58207e7 100644
--- a/pkgs/development/tools/misc/avrdude/default.nix
+++ b/pkgs/development/tools/misc/avrdude/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "15m1w1qad3dj7r8n5ng1qqcaiyx1gyd6hnc3p2apgjllccdp77qg";
   };
 
-  configureFlags = stdenv.lib.optionalString docSupport "--enable-doc";
+  configureFlags = stdenv.lib.optionals docSupport "--enable-doc";
 
   buildInputs = [ yacc flex libusb libelf libftdi1 readline ]
     ++ stdenv.lib.optionals docSupport [ texLive texinfo texi2html ];
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 890ff7b64a91..3ca9e539ddd8 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPackages
 , fetchurl, zlib, autoreconfHook264
-, hostPlatform, targetPlatform
+, hostPlatform, buildPlatform, targetPlatform
 , noSysDirs, gold ? true, bison ? null
 }:
 
@@ -121,6 +121,9 @@ stdenv.mkDerivation rec {
 
   doCheck = false; # fails
 
+  # else fails with "./sanity.sh: line 36: $out/bin/size: not found"
+  doInstallCheck = buildPlatform == hostPlatform && hostPlatform == targetPlatform;
+
   enableParallelBuilding = true;
 
   passthru = {
diff --git a/pkgs/development/tools/misc/cquery/default.nix b/pkgs/development/tools/misc/cquery/default.nix
index 0b86deb52055..d6c8f1f33eec 100644
--- a/pkgs/development/tools/misc/cquery/default.nix
+++ b/pkgs/development/tools/misc/cquery/default.nix
@@ -5,8 +5,8 @@ let
   src = fetchFromGitHub {
     owner = "cquery-project";
     repo = "cquery";
-    rev = "34b357bc5e873d52d2aa41287c6e138244cea109";
-    sha256 = "0i34v30cl73485bzpbis539x0iq9whpv0403ca5a9h6vqwnvdn7c";
+    rev = "e17df5b41e5a687559a0b75dba9c0f1f399c4aea";
+    sha256 = "06z8bg73jppb4msiqvsjbpz6pawwny831k56w5kcxrjgp22v24s1";
     fetchSubmodules = true;
   };
 
@@ -15,7 +15,7 @@ let
 in
 stdenv.mkDerivation rec {
   name    = "cquery-${version}";
-  version = "2018-05-01";
+  version = "2018-08-08";
 
   inherit src;
 
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DSYSTEM_CLANG=ON"
     "-DCLANG_CXX=ON"
+    "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12"
   ];
 
   shell = stdenv.shell;
@@ -47,6 +48,10 @@ stdenv.mkDerivation rec {
   installCheckPhase = ''
     pushd ${src}
     $out/bin/cquery --ci --test-unit
+
+    # The integration tests have to be disabled because cquery ignores `--init`
+    # if they are invoked, which means it won't find the system includes.
+    #$out/bin/cquery --ci --test-index
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/misc/cquery/wrapper b/pkgs/development/tools/misc/cquery/wrapper
index f0bea41536d0..534f900f94af 100644
--- a/pkgs/development/tools/misc/cquery/wrapper
+++ b/pkgs/development/tools/misc/cquery/wrapper
@@ -1,6 +1,6 @@
 #! @shell@ -e
 
-initString="--init={\"extraClangArguments\": [@standard_library_includes@"
+initString="--init={\"cacheDirectory\": \"/tmp/cquery\", \"extraClangArguments\": [@standard_library_includes@"
 
 if [ "${NIX_CFLAGS_COMPILE}" != "" ]; then
   read -a cflags_array <<< ${NIX_CFLAGS_COMPILE}
diff --git a/pkgs/development/tools/misc/cscope/default.nix b/pkgs/development/tools/misc/cscope/default.nix
index 0b1bbf5f9e4d..67cd321cfd53 100644
--- a/pkgs/development/tools/misc/cscope/default.nix
+++ b/pkgs/development/tools/misc/cscope/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "cscope-15.8b";
+  name = "cscope-15.9";
 
   src = fetchurl {
     url = "mirror://sourceforge/cscope/${name}.tar.gz";
-    sha256 = "1byk29rcpyygrnr03h5j3y8j0aqxldd9dr5ihi9q982sy28x12a8";
+    sha256 = "0ngiv4aj3rr35k3q3wjx0y19gh7i1ydqa0cqip6sjwd8fph5ll65";
   };
 
-  configureFlags = "--with-ncurses=${ncurses.dev}";
+  configureFlags = [ "--with-ncurses=${ncurses.dev}" ];
 
   buildInputs = [ ncurses ];
   nativeBuildInputs = stdenv.lib.optional emacsSupport emacs;
diff --git a/pkgs/development/tools/misc/ddd/default.nix b/pkgs/development/tools/misc/ddd/default.nix
index 9375dfb20cd8..7238bcdeb6b8 100644
--- a/pkgs/development/tools/misc/ddd/default.nix
+++ b/pkgs/development/tools/misc/ddd/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
     sha256 = "0p5nx387857w3v2jbgvps2p6mlm0chajcdw5sfrddcglsxkwvmis";
   };
   buildInputs = [motif ncurses libX11 libXt];
-  configureFlags = "--with-x";
+  configureFlags = [ "--with-x" ];
 
   patches = [ ./gcc44.patch ];
 
diff --git a/pkgs/development/tools/misc/dialog/default.nix b/pkgs/development/tools/misc/dialog/default.nix
index 591254c73f57..a433c4a338cd 100644
--- a/pkgs/development/tools/misc/dialog/default.nix
+++ b/pkgs/development/tools/misc/dialog/default.nix
@@ -1,12 +1,9 @@
 { stdenv, fetchurl, ncurses
 , withLibrary ? false, libtool
 , unicodeSupport ? true
+, enableShared ? !stdenv.isDarwin
 }:
 
-let optStr = stdenv.lib.optionalString;
-    buildShared = !stdenv.isDarwin;
-in
-
 assert withLibrary -> libtool != null;
 assert unicodeSupport -> ncurses.unicode && ncurses != null;
 
@@ -24,14 +21,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ ncurses ];
 
-  configureFlags = ''
-    --disable-rpath-hacks
-    ${optStr withLibrary "--with-libtool"}
-    --with-libtool-opts=${optStr buildShared "-shared"}
-    --with-ncurses${optStr unicodeSupport "w"}
-  '';
+  configureFlags = [
+    "--disable-rpath-hacks"
+    (stdenv.lib.withFeature withLibrary "libtool")
+    "--with-ncurses${stdenv.lib.optionalString unicodeSupport "w"}"
+    "--with-libtool-opts=${stdenv.lib.optionalString enableShared "-shared"}"
+  ];
 
-  installTargets = "install${optStr withLibrary "-full"}";
+  installTargets = "install${stdenv.lib.optionalString withLibrary "-full"}";
 
   meta = {
     homepage = http://invisible-island.net/dialog/dialog.html;
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index af140bfb1d65..85adf73ed2ac 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -10,7 +10,11 @@ stdenv.mkDerivation rec {
     sha256 = "1zq0l12k64hrbjmdjc4llrad96c25i427hpma1id9nk87w9qqvdp";
   };
 
-  patches = ./debug-info-from-env.patch;
+  patches = [ ./debug-info-from-env.patch ];
+
+  postPatch = ''
+    patchShebangs tests
+  '';
 
   hardeningDisable = [ "format" ];
 
@@ -35,7 +39,7 @@ stdenv.mkDerivation rec {
   #
   # I wrote this testing for the nanonote.
 
-  buildPhase = if stdenv.hostPlatform == stdenv.buildPlatform then null else ''
+  buildPhase = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
     pushd libebl
     make
     popd
@@ -50,7 +54,7 @@ stdenv.mkDerivation rec {
     popd
   '';
 
-  installPhase = if stdenv.hostPlatform == stdenv.buildPlatform then null else ''
+  installPhase = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
     pushd libelf
     make install
     popd
@@ -63,6 +67,9 @@ stdenv.mkDerivation rec {
     cp version.h $out/include
   '';
 
+  doCheck = false; # fails 3 out of 174 tests
+  doInstallCheck = false; # fails 70 out of 174 tests
+
   meta = {
     homepage = https://sourceware.org/elfutils/;
     description = "A set of utilities to handle ELF objects";
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index b5840d074668..ae59f85a211e 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -18,7 +18,7 @@
 
 let
   basename = "gdb-${version}";
-  version = "8.1";
+  version = "8.1.1";
 in
 
 assert targetPlatform.isHurd -> mig != null && hurd != null;
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/gdb/${basename}.tar.xz";
-    sha256 = "0d2bpqk58fqlx21rbnk8mbcjlggzc9kb5sjirrfrrrjq70ka0qdg";
+    sha256 = "0g6hv9xk12aa58w77fydaldqr9a6b0a6bnwsq87jfc6lkcbc7p4p";
   };
 
   patches = [ ./debug-info-from-env.patch ]
diff --git a/pkgs/development/tools/misc/gnum4/default.nix b/pkgs/development/tools/misc/gnum4/default.nix
index 9cd6e2c5e1ac..7e92df1a9978 100644
--- a/pkgs/development/tools/misc/gnum4/default.nix
+++ b/pkgs/development/tools/misc/gnum4/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   doCheck = false;
 
-  configureFlags = "--with-syscmd-shell=${stdenv.shell}";
+  configureFlags = [ "--with-syscmd-shell=${stdenv.shell}" ];
 
   # Upstream is aware of it; it may be in the next release.
   patches = [ ./s_isdir.patch ] ++ stdenv.lib.optional hostPlatform.isDarwin stdenv.secure-format-patch;
diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix
index f4f72491970c..42da07baca66 100644
--- a/pkgs/development/tools/misc/hydra/default.nix
+++ b/pkgs/development/tools/misc/hydra/default.nix
@@ -3,11 +3,18 @@
 , gitAndTools, mercurial, darcs, subversion, bazaar, openssl, bzip2, libxslt
 , guile, perl, postgresql, nukeReferences, git, boehmgc
 , docbook_xsl, openssh, gnused, coreutils, findutils, gzip, lzma, gnutar
-, rpm, dpkg, cdrkit, pixz }:
+, rpm, dpkg, cdrkit, pixz, lib, fetchpatch, boost, autoreconfHook
+}:
 
 with stdenv;
 
 let
+  isGreaterNix20 = with lib.versions;
+    let
+      inherit (nix) version;
+      inherit (lib) toInt;
+    in major version == "2" && toInt (minor version) >= 1 || toInt (major version) > 2;
+
   perlDeps = buildEnv {
     name = "hydra-perl-deps";
     paths = with perlPackages;
@@ -40,6 +47,7 @@ let
         FileSlurp
         IOCompress
         IPCRun
+        JSON
         JSONAny
         JSONXS
         LWP
@@ -63,15 +71,15 @@ let
   };
 in releaseTools.nixBuild rec {
   name = "hydra-${version}";
-  version = "2017-11-21";
+  version = "2018-08-07";
 
   inherit stdenv;
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "hydra";
-    rev = "b7bc4384b7b471d1ddf892cb03f16189a66d5a0d";
-    sha256 = "05g37z3ilazzqa5rqj5zljndwxjbvpc18xibh6jlwjwpvg3kpbbh";
+    rev = "4dca8fe14d3f782bdf927f37efce722acefffff3";
+    sha256 = "1yas4psmvfp7lhcp81ia2sy93b78j9hiw9a6n3q2m1a616hwpm25";
   };
 
   buildInputs =
@@ -80,17 +88,24 @@ in releaseTools.nixBuild rec {
       guile # optional, for Guile + Guix support
       perlDeps perl nix
       postgresql # for running the tests
-    ];
+    ] ++ lib.optionals isGreaterNix20 [ boost ];
 
   hydraPath = lib.makeBinPath (
     [ sqlite subversion openssh nix coreutils findutils pixz
       gzip bzip2 lzma gnutar unzip git gitAndTools.topGit mercurial darcs gnused bazaar
     ] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] );
 
-  postUnpack = ''
-    # Clean up when building from a working tree.
-    (cd $sourceRoot && (git ls-files -o --directory | xargs -r rm -rfv)) || true
-  '';
+  nativeBuildInputs = [ autoreconfHook ];
+
+  # adds a patch which ensures compatibility with the API of Nix 2.0.
+  # it has been reverted in https://github.com/NixOS/hydra/commit/162d671c48a418bd10a8a171ca36787ef3695a44,
+  # for Nix 2.1/unstable compatibility. Reapplying helps if Nix 2.0 is used to keep the build functional.
+  patches = lib.optionals (!isGreaterNix20) [
+    (fetchpatch {
+      url = "https://github.com/NixOS/hydra/commit/08de434bdd0b0a22abc2081be6064a6c846d3920.patch";
+      sha256 = "0kz77njp5ynn9l81g3q8zrryvnsr06nk3iw0a60187wxqzf5fmf8";
+    })
+  ];
 
   configureFlags = [ "--with-docbook-xsl=${docbook_xsl}/xml/xsl/docbook" ];
 
@@ -99,8 +114,6 @@ in releaseTools.nixBuild rec {
     PERL5LIB=$(pwd)/src/lib:$PERL5LIB;
   '';
 
-  preConfigure = "autoreconf -vfi";
-
   enableParallelBuilding = true;
 
   preCheck = ''
@@ -130,6 +143,6 @@ in releaseTools.nixBuild rec {
     description = "Nix-based continuous build system";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ domenkozar ];
+    maintainers = with maintainers; [ ma27 ];
   };
- }
+}
diff --git a/pkgs/development/tools/misc/intel-gpu-tools/default.nix b/pkgs/development/tools/misc/intel-gpu-tools/default.nix
index d92b20a12b02..a1b358807c4e 100644
--- a/pkgs/development/tools/misc/intel-gpu-tools/default.nix
+++ b/pkgs/development/tools/misc/intel-gpu-tools/default.nix
@@ -1,25 +1,28 @@
 { stdenv, fetchurl, pkgconfig, libdrm, libpciaccess, cairo, dri2proto, udev
 , libX11, libXext, libXv, libXrandr, glib, bison, libunwind, python3, kmod
-, procps, utilmacros, gnome2 }:
+, procps, utilmacros, gnome2, openssl }:
 
 stdenv.mkDerivation rec {
-  name = "intel-gpu-tools-1.22";
+  name = "intel-gpu-tools-${version}";
+  version = "1.23";
 
   src = fetchurl {
-    url = "https://xorg.freedesktop.org/archive/individual/app/${name}.tar.xz";
-    sha256 = "0p4swf9577p6hzglw1lh2sz63wjkk37b7691saj2qw8ha7fc2rix";
+    url = "https://xorg.freedesktop.org/archive/individual/app/igt-gpu-tools-${version}.tar.xz";
+    sha256 = "1l4s95m013p2wvddwr4cjqyvsgmc88zxx2887p1fbb1va5n0hjsd";
   };
 
   nativeBuildInputs = [ pkgconfig utilmacros ];
   buildInputs = [ libdrm libpciaccess cairo dri2proto udev libX11 kmod
     libXext libXv libXrandr glib bison libunwind python3 procps
-    gnome2.gtkdoc ];
+    gnome2.gtkdoc openssl ];
 
   preConfigure = ''
     ./autogen.sh
   '';
 
   preBuild = ''
+    patchShebangs tests
+
     patchShebangs debugger/system_routine/pre_cpp.py
     substituteInPlace tools/Makefile.am --replace '$(CAIRO_CFLAGS)' '$(CAIRO_CFLAGS) $(GLIB_CFLAGS)'
     substituteInPlace tests/Makefile.am --replace '$(CAIRO_CFLAGS)' '$(CAIRO_CFLAGS) $(GLIB_CFLAGS)'
diff --git a/pkgs/development/tools/misc/patchelf/default.nix b/pkgs/development/tools/misc/patchelf/default.nix
index 39ec46ffbfdd..df24f6003d7f 100644
--- a/pkgs/development/tools/misc/patchelf/default.nix
+++ b/pkgs/development/tools/misc/patchelf/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   setupHook = [ ./setup-hook.sh ];
 
-  #doCheck = true; # problems when loading libc.so.6
+  doCheck = false; # fails 8 out of 24 tests, problems when loading libc.so.6
 
   meta = {
     homepage = https://nixos.org/patchelf.html;
diff --git a/pkgs/development/tools/misc/rman/default.nix b/pkgs/development/tools/misc/rman/default.nix
index 702dabcf3955..8093846780d2 100644
--- a/pkgs/development/tools/misc/rman/default.nix
+++ b/pkgs/development/tools/misc/rman/default.nix
@@ -8,7 +8,12 @@ stdenv.mkDerivation {
     sha256 = "0prdld6nbkdlkcgc2r1zp13h2fh8r0mlwxx423dnc695ddlk18b8";
   };
 
-  makeFlags = "BINDIR=$(out)/bin MANDIR=$(out)/share/man";
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace ginstall install
+  '';
+
+  makeFlags = [ "BINDIR=$(out)/bin" "MANDIR=$(out)/share/man" ];
 
   preInstall = ''
     mkdir -p $out/bin
@@ -17,6 +22,8 @@ stdenv.mkDerivation {
 
   hardeningDisable = [ "format" ];
 
+  doCheck = false; # "check" target is probably meant to do "installcheck" or something
+
   meta = {
     description = "Parse formatted man pages and man page source from most flavors of UNIX and converts them to HTML, ASCII, TkMan, DocBook, and other formats";
     license = "artistic";
diff --git a/pkgs/development/tools/misc/srecord/default.nix b/pkgs/development/tools/misc/srecord/default.nix
index 94a452ce0836..a76a180741ef 100644
--- a/pkgs/development/tools/misc/srecord/default.nix
+++ b/pkgs/development/tools/misc/srecord/default.nix
@@ -10,8 +10,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ boost libtool groff ghostscript libgcrypt ];
 
-  configureFlags = stdenv.lib.optionalString
-    (libgcrypt == null) "--without-gcrypt";
+  configureFlags = [
+    (stdenv.lib.optional (libgcrypt == null) "--without-gcrypt")
+  ];
 
   meta = with stdenv.lib; {
     description = "Collection of powerful tools for manipulating EPROM load files";
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index a5fd8f5cf64d..1e449d722c35 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "strace-${version}";
-  version = "4.23";
+  version = "4.24";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${name}.tar.xz";
-    sha256 = "1bcsq2gbpcb81ayryvn56a6kjx42fc21la6qgds35n0xbybacq3q";
+    sha256 = "0d061cdzk6a1822ds4wpqxg10ny27mi4i9zjmnsbz8nz3vy5jkhz";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -16,6 +16,10 @@ stdenv.mkDerivation rec {
 
   configureFlags = stdenv.lib.optional (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isRiscV) "--enable-mpers=check";
 
+  # fails 1 out of 523 tests with
+  # "strace-k.test: failed test: ../../strace -e getpid -k ../stack-fcall output mismatch"
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = https://strace.io/;
     description = "A system call tracer for Linux";
diff --git a/pkgs/development/tools/misc/swig/2.x.nix b/pkgs/development/tools/misc/swig/2.x.nix
index 6dbaca26c818..acf1988c947d 100644
--- a/pkgs/development/tools/misc/swig/2.x.nix
+++ b/pkgs/development/tools/misc/swig/2.x.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoconf automake libtool bison ];
   buildInputs = [ pcre ];
 
-  configureFlags = "--without-tcl";
+  configureFlags = [ "--without-tcl" ];
 
   postPatch = ''
     # Disable ccache documentation as it need yodl
diff --git a/pkgs/development/tools/misc/swig/3.x.nix b/pkgs/development/tools/misc/swig/3.x.nix
index 48a2e7bd2cb1..077d037aa97f 100644
--- a/pkgs/development/tools/misc/swig/3.x.nix
+++ b/pkgs/development/tools/misc/swig/3.x.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoconf automake libtool bison ];
   buildInputs = [ pcre ];
 
-  configureFlags = "--without-tcl";
+  configureFlags = [ "--without-tcl" ];
 
   postPatch = ''
     # Disable ccache documentation as it need yodl
diff --git a/pkgs/development/tools/misc/swig/default.nix b/pkgs/development/tools/misc/swig/default.nix
index e10fd25d046f..cfd1c7728cb2 100644
--- a/pkgs/development/tools/misc/swig/default.nix
+++ b/pkgs/development/tools/misc/swig/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   # 'make check' uses boost and tcl
   buildInputs = stdenv.lib.optionals doCheck [ boost tcl ];
 
-  configureFlags = "--disable-ccache";
+  configureFlags = [ "--disable-ccache" ];
 
   meta = {
     description = "Interface compiler that connects C/C++ code to higher-level languages";
diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix
index 12534297ff3d..101298cd3052 100644
--- a/pkgs/development/tools/misc/texinfo/common.nix
+++ b/pkgs/development/tools/misc/texinfo/common.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ xz.bin ]
     ++ optionals stdenv.isSunOS [ libiconv gawk ]
-    ++ optionals interactive [ ncurses procps ];
+    ++ optional interactive ncurses;
 
   configureFlags = [ "PERL=${buildPackages.perl}/bin/perl" ]
     ++ stdenv.lib.optional stdenv.isSunOS "AWK=${gawk}/bin/awk";
@@ -33,6 +33,8 @@ stdenv.mkDerivation rec {
     installTargets="install install-tex";
   '';
 
+  checkInputs = [ procps ];
+
   doCheck = interactive
     && !stdenv.isDarwin
     && !stdenv.isSunOS; # flaky
diff --git a/pkgs/development/tools/nwjs/default.nix b/pkgs/development/tools/nwjs/default.nix
index 6840bcac0dc5..90c377c4472f 100644
--- a/pkgs/development/tools/nwjs/default.nix
+++ b/pkgs/development/tools/nwjs/default.nix
@@ -30,13 +30,13 @@ let
 
 in stdenv.mkDerivation rec {
   name = "nwjs-${version}";
-  version = "0.23.6";
+  version = "0.32.2";
 
   src = fetchurl {
     url = "https://dl.nwjs.io/v${version}/nwjs-v${version}-linux-${bits}.tar.gz";
     sha256 = if bits == "x64" then
-      "0ppyjspdvacarhdn4xd5i1pqgmf4z1bxnh1cry780489h25rcjgj" else
-      "0c0j73vnzhsry5rdx41d954a29jmjnvzli728cfbjybfr51zdybg";
+      "0f0p17mbr24zhzm2cf77ddy6yj4k0k181dzf4gxdf8szd5vxpliy" else
+      "0a3b712abfa0c3e7e808b1d08ea5d53375a71060e7d144fdcb58c4fe88fa2250";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/pkgs/development/tools/ocaml/camlp5/default.nix b/pkgs/development/tools/ocaml/camlp5/default.nix
index 31cd7ccfd2c0..da88a09d7719 100644
--- a/pkgs/development/tools/ocaml/camlp5/default.nix
+++ b/pkgs/development/tools/ocaml/camlp5/default.nix
@@ -6,11 +6,11 @@ in
 
 stdenv.mkDerivation {
 
-  name = "camlp5${if transitional then "_transitional" else ""}-7.05";
+  name = "camlp5${if transitional then "_transitional" else ""}-7.06";
 
   src = fetchzip {
-    url = https://github.com/camlp5/camlp5/archive/rel705.tar.gz;
-    sha256 = "16igfyjl2jja4f1mibjfzk0c2jr09nxsz6lb63x1jkccmy6430q2";
+    url = https://github.com/camlp5/camlp5/archive/rel706.tar.gz;
+    sha256 = "02zg6qjkzx58zmp79364s5jyqhh56nclcz1jzhh53hk37g9f96qf";
   };
 
   buildInputs = [ ocaml ];
diff --git a/pkgs/development/tools/ocaml/jbuilder/default.nix b/pkgs/development/tools/ocaml/jbuilder/default.nix
index 142a30eba8da..c30478132cf2 100644
--- a/pkgs/development/tools/ocaml/jbuilder/default.nix
+++ b/pkgs/development/tools/ocaml/jbuilder/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "jbuilder-${version}";
-  version = "1.0.0";
+  version = "1.0.1";
   src = fetchFromGitHub {
     owner = "ocaml";
     repo = "dune";
     rev = "${version}";
-    sha256 = "08gb7l2rrfrsqvigna1cvvphww80zlvj7lqvaj4m4y9llanmnxcg";
+    sha256 = "0k6r9qrbwlnb4rqwqys5fr7khwza7n7d8wpgl9jbb3xpag2zl3q9";
   };
 
   buildInputs = with ocamlPackages; [ ocaml findlib ];
diff --git a/pkgs/development/tools/ocaml/obuild/default.nix b/pkgs/development/tools/ocaml/obuild/default.nix
index 1de95f730372..41cde6f8ab73 100644
--- a/pkgs/development/tools/ocaml/obuild/default.nix
+++ b/pkgs/development/tools/ocaml/obuild/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchzip, ocaml }:
 
-let version = "0.1.8"; in
+let version = "0.1.10"; in
 
 stdenv.mkDerivation {
   name = "obuild-${version}";
 
   src = fetchzip {
     url = "https://github.com/ocaml-obuild/obuild/archive/obuild-v${version}.tar.gz";
-    sha256 = "1q1k2qqd08j1zakvydgvwgwpyn0ll7rs65gap0pvg3amnh5cp3wd";
+    sha256 = "15arsgbhk1c39vd8qhpa3pag94m44bwvzggdvkibx6hnpkv8z9bn";
   };
 
   buildInputs = [ ocaml ];
diff --git a/pkgs/development/tools/ocaml/opam/default.nix b/pkgs/development/tools/ocaml/opam/default.nix
index 73b7da119abe..7e84719ae47d 100644
--- a/pkgs/development/tools/ocaml/opam/default.nix
+++ b/pkgs/development/tools/ocaml/opam/default.nix
@@ -87,5 +87,6 @@ in stdenv.mkDerivation rec {
     homepage = http://opam.ocamlpro.com/;
     maintainers = [ maintainers.henrytill ];
     platforms = platforms.all;
+    license = licenses.lgpl21Plus;
   };
 }
diff --git a/pkgs/development/tools/parsing/antlr/2.7.7.nix b/pkgs/development/tools/parsing/antlr/2.7.7.nix
index cafb076aa811..0c67baa96010 100644
--- a/pkgs/development/tools/parsing/antlr/2.7.7.nix
+++ b/pkgs/development/tools/parsing/antlr/2.7.7.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, jdk, python}:
+{ stdenv, fetchurl, jdk, python2 }:
 
 stdenv.mkDerivation {
   name = "antlr-2.7.7";
@@ -7,7 +7,8 @@ stdenv.mkDerivation {
     sha256 = "1ffvcwdw73id0dk6pj2mlxjvbg0662qacx4ylayqcxgg381fnfl5";
   };
   patches = [ ./2.7.7-fixes.patch ];
-  buildInputs = [jdk python];
+  buildInputs = [ jdk ];
+  nativeBuildInputs = [ python2 ];
 
   meta = with stdenv.lib; {
     description = "Powerful parser generator";
@@ -19,6 +20,7 @@ stdenv.mkDerivation {
       walk parse trees.
     '';
     homepage = http://www.antlr.org/;
+    license = licenses.bsd3;
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/parsing/antlr/3.4.nix b/pkgs/development/tools/parsing/antlr/3.4.nix
index c892b8fa8eab..8074b7c35ad9 100644
--- a/pkgs/development/tools/parsing/antlr/3.4.nix
+++ b/pkgs/development/tools/parsing/antlr/3.4.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   unpackPhase = "true";
- 
+
   installPhase = ''
     mkdir -p "$out"/{lib/antlr,bin}
     cp "$src" "$out/lib/antlr/antlr-${version}-complete.jar"
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
       walk parse trees.
     '';
     homepage = http://www.antlr.org/;
+    license = licenses.bsd3;
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/parsing/antlr/3.5.nix b/pkgs/development/tools/parsing/antlr/3.5.nix
index 030a19e99405..35179b336026 100644
--- a/pkgs/development/tools/parsing/antlr/3.5.nix
+++ b/pkgs/development/tools/parsing/antlr/3.5.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   unpackPhase = "true";
- 
+
   installPhase = ''
     mkdir -p "$out"/{lib/antlr,bin}
     cp "$src" "$out/lib/antlr/antlr-${version}-complete.jar"
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
       walk parse trees.
     '';
     homepage = http://www.antlr.org/;
+    license = licenses.bsd3;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/parsing/antlr/4.7.nix b/pkgs/development/tools/parsing/antlr/4.7.nix
index e097b5b3d5a5..1ebf7d7dfe24 100644
--- a/pkgs/development/tools/parsing/antlr/4.7.nix
+++ b/pkgs/development/tools/parsing/antlr/4.7.nix
@@ -1,41 +1,81 @@
-{stdenv, fetchurl, jre}:
+{ stdenv, fetchurl, jre
+, fetchFromGitHub, cmake, ninja, pkgconfig, libuuid, darwin }:
 
-stdenv.mkDerivation rec {
-  name = "antlr-${version}";
+let
   version = "4.7.1";
-  src = fetchurl {
-    url ="https://www.antlr.org/download/antlr-${version}-complete.jar";
-    sha256 = "1236gwnzchama92apb2swmklnypj01m7bdwwfvwvl8ym85scw7gl";
+  source = fetchFromGitHub {
+    owner = "antlr";
+    repo = "antlr4";
+    rev = version;
+    sha256 = "1xb4d9bd4hw406v85s64gg8gwcrrsrw171vhga1gz4xj6pzfwxz7";
   };
 
-  unpackPhase = "true";
- 
-  installPhase = ''
-    mkdir -p "$out"/{share/java,bin}
-    cp "$src" "$out/share/java/antlr-${version}-complete.jar"
-
-    echo "#! ${stdenv.shell}" >> "$out/bin/antlr"
-    echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' -Xmx500M org.antlr.v4.Tool \"\$@\"" >> "$out/bin/antlr"
-    
-    echo "#! ${stdenv.shell}" >> "$out/bin/grun"
-    echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' org.antlr.v4.gui.TestRig \"\$@\"" >> "$out/bin/grun"
-
-    chmod a+x "$out/bin/antlr" "$out/bin/grun"
-    ln -s "$out/bin/antlr"{,4}
-  '';
-
-  inherit jre;
-
-  meta = with stdenv.lib; {
-    description = "Powerful parser generator";
-    longDescription = ''
-      ANTLR (ANother Tool for Language Recognition) is a powerful parser
-      generator for reading, processing, executing, or translating structured
-      text or binary files. It's widely used to build languages, tools, and
-      frameworks. From a grammar, ANTLR generates a parser that can build and
-      walk parse trees.
+  runtime = {
+    cpp = stdenv.mkDerivation {
+      name = "antlr-runtime-cpp-${version}";
+      src = source;
+
+      outputs = [ "out" "dev" "doc" ];
+
+      nativeBuildInputs = [ cmake ninja pkgconfig ];
+      buildInputs = stdenv.lib.optional stdenv.isLinux libuuid
+        ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.CoreFoundation;
+
+      postUnpack = ''
+        export sourceRoot=$sourceRoot/runtime/Cpp
+      '';
+
+      meta = with stdenv.lib; {
+        description = "C++ target for ANTLR 4";
+        homepage = http://www.antlr.org/;
+        license = licenses.bsd3;
+        platforms = platforms.unix;
+      };
+    };
+  };
+
+  antlr = stdenv.mkDerivation {
+    name = "antlr-${version}";
+    src = fetchurl {
+      url ="https://www.antlr.org/download/antlr-${version}-complete.jar";
+      sha256 = "1236gwnzchama92apb2swmklnypj01m7bdwwfvwvl8ym85scw7gl";
+    };
+
+    unpackPhase = "true";
+
+    installPhase = ''
+      mkdir -p "$out"/{share/java,bin}
+      cp "$src" "$out/share/java/antlr-${version}-complete.jar"
+
+      echo "#! ${stdenv.shell}" >> "$out/bin/antlr"
+      echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' -Xmx500M org.antlr.v4.Tool \"\$@\"" >> "$out/bin/antlr"
+
+      echo "#! ${stdenv.shell}" >> "$out/bin/grun"
+      echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' org.antlr.v4.gui.TestRig \"\$@\"" >> "$out/bin/grun"
+
+      chmod a+x "$out/bin/antlr" "$out/bin/grun"
+      ln -s "$out/bin/antlr"{,4}
     '';
-    homepage = http://www.antlr.org/;
-    platforms = platforms.unix;
+
+    inherit jre;
+
+    passthru = {
+      inherit runtime;
+      jarLocation = "${antlr}/share/java/antlr-${version}-complete.jar";
+    };
+
+    meta = with stdenv.lib; {
+      description = "Powerful parser generator";
+      longDescription = ''
+        ANTLR (ANother Tool for Language Recognition) is a powerful parser
+        generator for reading, processing, executing, or translating structured
+        text or binary files. It's widely used to build languages, tools, and
+        frameworks. From a grammar, ANTLR generates a parser that can build and
+        walk parse trees.
+      '';
+      homepage = http://www.antlr.org/;
+      license = licenses.bsd3;
+      platforms = platforms.unix;
+    };
   };
-}
+in antlr
diff --git a/pkgs/development/tools/parsing/bison/2.x.nix b/pkgs/development/tools/parsing/bison/2.x.nix
index 071ad9332914..019c154a6b76 100644
--- a/pkgs/development/tools/parsing/bison/2.x.nix
+++ b/pkgs/development/tools/parsing/bison/2.x.nix
@@ -8,8 +8,9 @@ stdenv.mkDerivation rec {
     sha256 = "0c9li3iaslzzr3zig6m3zlmb4r8i0wfvkcrvdyiqxasb09mjkqh8";
   };
 
-  nativeBuildInputs = [ m4 ] ++ stdenv.lib.optional doCheck perl;
+  nativeBuildInputs = [ m4 ];
   propagatedBuildInputs = [ m4 ];
+  checkInputs = [ perl ];
 
   patches = lib.optional stdenv.isDarwin ./darwin-vasnprintf.patch;
 
diff --git a/pkgs/development/tools/parsing/flex/2.5.35.nix b/pkgs/development/tools/parsing/flex/2.5.35.nix
index 1062a361413c..7e09b0a8cd38 100644
--- a/pkgs/development/tools/parsing/flex/2.5.35.nix
+++ b/pkgs/development/tools/parsing/flex/2.5.35.nix
@@ -8,6 +8,10 @@ stdenv.mkDerivation rec {
     sha256 = "0wh06nix8bd4w1aq4k2fbbkdq5i30a9lxz3xczf3ff28yy0kfwzm";
   };
 
+  postPatch = ''
+    patchShebangs tests
+  '';
+
   nativeBuildInputs = [ flex bison texinfo help2man autoreconfHook ];
 
   propagatedBuildInputs = [ m4 ];
@@ -17,10 +21,13 @@ stdenv.mkDerivation rec {
     "ac_cv_func_realloc_0_nonnull=yes"
   ];
 
-  meta = {
+  doCheck = false; # fails 2 out of 46 tests
+
+  meta = with stdenv.lib; {
     branch = "2.5.35";
     homepage = http://flex.sourceforge.net/;
     description = "A fast lexical analyser generator";
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.bsd2;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/parsing/flex/2.6.1.nix b/pkgs/development/tools/parsing/flex/2.6.1.nix
index 954c2bbcb245..3a46c6c8f01e 100644
--- a/pkgs/development/tools/parsing/flex/2.6.1.nix
+++ b/pkgs/development/tools/parsing/flex/2.6.1.nix
@@ -8,6 +8,12 @@ stdenv.mkDerivation rec {
     sha256 = "0fy14c35yz2m1n1m4f02by3501fn0cca37zn7jp8lpp4b3kgjhrw";
   };
 
+  postPatch = ''
+    patchShebangs tests
+  '' + stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+    substituteInPlace Makefile.in --replace "tests" " ";
+  '';
+
   buildInputs = [ bison ];
 
   propagatedBuildInputs = [ m4 ];
@@ -21,14 +27,10 @@ stdenv.mkDerivation rec {
     sed -i Makefile -e 's/-no-undefined//;'
   '';
 
-  # disable tests which can't run on build machine
-  postPatch = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
-    substituteInPlace Makefile.in --replace "tests" " ";
-  '';
-
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://github.com/westes/flex;
     description = "A fast lexical analyser generator";
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.bsd2;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/parsing/flex/default.nix b/pkgs/development/tools/parsing/flex/default.nix
index 17323a06cc18..d7d27ac9a1cd 100644
--- a/pkgs/development/tools/parsing/flex/default.nix
+++ b/pkgs/development/tools/parsing/flex/default.nix
@@ -19,7 +19,10 @@ stdenv.mkDerivation rec {
         + "/tools/flex/patches/200-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch";
     sha256 = "1aarhcmz7mfrgh15pkj6f7ikxa2m0mllw1i1vscsf1kw5d05lw6f";
   })];
-  postPatch = stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+
+  postPatch = ''
+    patchShebangs tests
+  '' + stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     substituteInPlace Makefile.in --replace "tests" " "
 
     substituteInPlace doc/Makefile.am --replace 'flex.1: $(top_srcdir)/configure.ac' 'flex.1: '
@@ -30,10 +33,10 @@ stdenv.mkDerivation rec {
   buildInputs = [ bison ];
   propagatedBuildInputs = [ m4 ];
 
-  preConfigure = stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
-    export ac_cv_func_malloc_0_nonnull=yes
-    export ac_cv_func_realloc_0_nonnull=yes
-  '';
+  preConfigure = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "ac_cv_func_malloc_0_nonnull=yes"
+    "ac_cv_func_realloc_0_nonnull=yes"
+  ];
 
   postConfigure = stdenv.lib.optionalString (stdenv.isDarwin || stdenv.isCygwin) ''
     sed -i Makefile -e 's/-no-undefined//;'
@@ -41,9 +44,10 @@ stdenv.mkDerivation rec {
 
   dontDisableStatic = stdenv.buildPlatform != stdenv.hostPlatform;
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://github.com/westes/flex;
     description = "A fast lexical analyser generator";
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.bsd2;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/parsing/re2c/default.nix b/pkgs/development/tools/parsing/re2c/default.nix
index da1bcced32ec..1d0545f6889e 100644
--- a/pkgs/development/tools/parsing/re2c/default.nix
+++ b/pkgs/development/tools/parsing/re2c/default.nix
@@ -15,6 +15,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook ];
 
+  preCheck = ''
+    patchShebangs run_tests.sh
+  '';
+
   meta = with stdenv.lib; {
     description = "Tool for writing very fast and very flexible scanners";
     homepage    = "http://re2c.org";
diff --git a/pkgs/development/tools/profiling/oprofile/default.nix b/pkgs/development/tools/profiling/oprofile/default.nix
index 6087400af5be..0b2b49717645 100644
--- a/pkgs/development/tools/profiling/oprofile/default.nix
+++ b/pkgs/development/tools/profiling/oprofile/default.nix
@@ -8,11 +8,11 @@
 assert withGUI -> qt4 != null;
 
 stdenv.mkDerivation rec {
-  name = "oprofile-1.2.0";
+  name = "oprofile-1.3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/oprofile/${name}.tar.gz";
-    sha256 = "0zd5ih6gmm1pkqavd9laa93iff7qv5jkbfjznhlyxl5p826gk5gb";
+    sha256 = "1rj76vvkhpfn9k04s7jhb813ximfcwd9h5gh18pr4fgcw6yxiplm";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/profiling/pprof/default.nix b/pkgs/development/tools/profiling/pprof/default.nix
index f506db32d9a2..9130f31f21d3 100644
--- a/pkgs/development/tools/profiling/pprof/default.nix
+++ b/pkgs/development/tools/profiling/pprof/default.nix
@@ -2,16 +2,16 @@
 { stdenv, buildGoPackage, fetchgit }:
 
 buildGoPackage rec {
-  name = "pprof-${version}";
-  version = "2017-08-28";
-  rev = "d19a98b9bcec464f178b20da0f936cef7e15462e";
+  name = "pprof-unstable-${version}";
+  version = "2018-08-15";
+  rev = "781f11b1fcf71fae9d185e7189b5e686f575075a";
 
   goPackagePath = "github.com/google/pprof";
 
   src = fetchgit {
     inherit rev;
     url = "git://github.com/google/pprof";
-    sha256 = "0wh589fndvvidisy0jy19y0ykw4l05paqd53s8kli7h9zdcl11gq";
+    sha256 = "1nvzwcj6h4q0lsjlri3bym4axgv848w3xz57iz5p0wz9lcd5jsmf";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/development/tools/profiling/pprof/deps.nix b/pkgs/development/tools/profiling/pprof/deps.nix
index f8bd466423c3..e76f6367996b 100644
--- a/pkgs/development/tools/profiling/pprof/deps.nix
+++ b/pkgs/development/tools/profiling/pprof/deps.nix
@@ -1,12 +1,21 @@
 # This file was generated by https://github.com/kamilchm/go2nix v1.2.1
 [
   {
+    goPackagePath = "github.com/chzyer/readline";
+    fetch = {
+      type = "git";
+      url = "https://github.com/chzyer/readline";
+      rev = "2972be24d48e78746da79ba8e24e8b488c9880de";
+      sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
+    };
+  }
+  {
     goPackagePath = "github.com/ianlancetaylor/demangle";
     fetch = {
       type = "git";
       url = "https://github.com/ianlancetaylor/demangle";
-      rev = "4883227f66371e02c4948937d3e2be1664d9be38";
-      sha256 = "1yj7c9i1sg26fyx6cmz87x3qh71rldkl6h87x5gysqzipm9jg54l";
+      rev = "fcd258a6f0b45dc345a407ee5568cf9a4d24a0ae";
+      sha256 = "10hdzq6n4mb13g8ddqvwjwx14djfyxhh0gjc888vdihzvhyqhvrp";
     };
   }
 ]
diff --git a/pkgs/development/tools/puppet/puppet-lint/Gemfile b/pkgs/development/tools/puppet/puppet-lint/Gemfile
new file mode 100644
index 000000000000..105049819129
--- /dev/null
+++ b/pkgs/development/tools/puppet/puppet-lint/Gemfile
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+source "https://rubygems.org"
+
+gem "puppet-lint"
diff --git a/pkgs/development/tools/puppet/puppet-lint/Gemfile.lock b/pkgs/development/tools/puppet/puppet-lint/Gemfile.lock
new file mode 100644
index 000000000000..8c5d369fb371
--- /dev/null
+++ b/pkgs/development/tools/puppet/puppet-lint/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    puppet-lint (2.3.6)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  puppet-lint
+
+BUNDLED WITH
+   1.16.3
diff --git a/pkgs/development/tools/puppet/puppet-lint/default.nix b/pkgs/development/tools/puppet/puppet-lint/default.nix
new file mode 100644
index 000000000000..2940605b1b08
--- /dev/null
+++ b/pkgs/development/tools/puppet/puppet-lint/default.nix
@@ -0,0 +1,7 @@
+{ bundlerApp }:
+
+bundlerApp {
+  pname = "puppet-lint";
+  gemdir = ./.;
+  exes = [ "puppet-lint" ];
+}
diff --git a/pkgs/development/tools/puppet/puppet-lint/gemset.nix b/pkgs/development/tools/puppet/puppet-lint/gemset.nix
new file mode 100644
index 000000000000..86d18b0c554c
--- /dev/null
+++ b/pkgs/development/tools/puppet/puppet-lint/gemset.nix
@@ -0,0 +1,10 @@
+{
+  puppet-lint = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wyk2l440d96ps3x127r52n51kqpqi2nzb3xlg92qn6aksqhnkis";
+      type = "gem";
+    };
+    version = "2.3.6";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/qtcreator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch b/pkgs/development/tools/qtcreator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch
new file mode 100644
index 000000000000..84e268712912
--- /dev/null
+++ b/pkgs/development/tools/qtcreator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch
@@ -0,0 +1,94 @@
+From c6d02dba2911d93e2379cfb5e550b93558dd51bf Mon Sep 17 00:00:00 2001
+From: Greg Nietsky <gregory@distrotech.co.za>
+Date: Tue, 4 Mar 2014 11:33:40 +0200
+Subject: [PATCH] Fix: Allow qt-creator to build on arm aarch32 and aarch64
+
+Botan is imported hardwired for x86 this small patch allows it
+too operate on arm other platforms could be added.
+
+Task-number: QTCREATORBUG-8107
+Change-Id: Iddea28f21c9fa1afd2fdd5d16a44e6c96a516a7a
+---
+ src/libs/3rdparty/botan/botan.cpp | 16 +++++++++++++++-
+ src/libs/3rdparty/botan/botan.h   |  2 ++
+ 2 files changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/src/libs/3rdparty/botan/botan.cpp b/src/libs/3rdparty/botan/botan.cpp
+index 917c385..4364a2e 100644
+--- a/src/libs/3rdparty/botan/botan.cpp
++++ b/src/libs/3rdparty/botan/botan.cpp
+@@ -1101,6 +1101,8 @@ class Montgomery_Exponentiator : public Modular_Exponentiator
+ 
+ #if (BOTAN_MP_WORD_BITS != 32)
+    #error The mp_x86_32 module requires that BOTAN_MP_WORD_BITS == 32
++#elif !defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
++typedef Botan::u64bit dword;
+ #endif
+ 
+ #ifdef Q_OS_UNIX
+@@ -1118,6 +1120,7 @@ extern "C" {
+ */
+ inline word word_madd2(word a, word b, word* c)
+    {
++#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
+    asm(
+       ASM("mull %[b]")
+       ASM("addl %[c],%[a]")
+@@ -1127,6 +1130,11 @@ inline word word_madd2(word a, word b, word* c)
+       : "0"(a), "1"(b), [c]"g"(*c) : "cc");
+ 
+    return a;
++#else
++   dword z = (dword)a * b + *c;
++   *c = (word)(z >> BOTAN_MP_WORD_BITS);
++   return (word)z;
++#endif
+    }
+ 
+ /*
+@@ -1134,6 +1142,7 @@ inline word word_madd2(word a, word b, word* c)
+ */
+ inline word word_madd3(word a, word b, word c, word* d)
+    {
++#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
+    asm(
+       ASM("mull %[b]")
+ 
+@@ -1147,6 +1156,11 @@ inline word word_madd3(word a, word b, word c, word* d)
+       : "0"(a), "1"(b), [c]"g"(c), [d]"g"(*d) : "cc");
+ 
+    return a;
++#else
++   dword z = (dword)a * b + c + *d;
++   *d = (word)(z >> BOTAN_MP_WORD_BITS);
++   return (word)z;
++#endif
+    }
+ 
+ }
+@@ -2315,7 +2329,7 @@ namespace Botan {
+ 
+ extern "C" {
+ 
+-#ifdef Q_OS_UNIX
++#if defined(Q_OS_UNIX) && defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
+ /*
+ * Helper Macros for x86 Assembly
+ */
+diff --git a/src/libs/3rdparty/botan/botan.h b/src/libs/3rdparty/botan/botan.h
+index 6a9cbe0..3bfdbc2 100644
+--- a/src/libs/3rdparty/botan/botan.h
++++ b/src/libs/3rdparty/botan/botan.h
+@@ -81,7 +81,9 @@
+ #endif
+ 
+ #define BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN
++#if !defined(__arm__) && !defined(__aarch64__)
+ #define BOTAN_TARGET_CPU_IS_X86_FAMILY
++#endif
+ #define BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK 1
+ 
+ #if defined(BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN) || \
+-- 
+2.3.0
+
diff --git a/pkgs/development/tools/qtcreator/default.nix b/pkgs/development/tools/qtcreator/default.nix
index 38d385d1d553..1f0e8795dd6b 100644
--- a/pkgs/development/tools/qtcreator/default.nix
+++ b/pkgs/development/tools/qtcreator/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ qmake makeWrapper ];
 
+  patches = optional (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) ./0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch;
+
   doCheck = true;
 
   enableParallelBuilding = true;
@@ -55,6 +57,6 @@ stdenv.mkDerivation rec {
     homepage = https://wiki.qt.io/Category:Tools::QtCreator;
     license = "LGPL";
     maintainers = [ maintainers.akaWolf ];
-    platforms = [ "i686-linux" "x86_64-linux" ];
+    platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
   };
 }
diff --git a/pkgs/development/tools/quicktemplate/default.nix b/pkgs/development/tools/quicktemplate/default.nix
index 624866ea9e37..e66500ac8339 100644
--- a/pkgs/development/tools/quicktemplate/default.nix
+++ b/pkgs/development/tools/quicktemplate/default.nix
@@ -1,20 +1,19 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-{ stdenv, buildGoPackage, fetchgit }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
 
 buildGoPackage rec {
   name = "quicktemplate-unstable-${version}";
   version = "2018-04-30";
-  rev = "a91e0946457b6583004fbfc159339b8171423aed";
-
   goPackagePath = "github.com/valyala/quicktemplate";
+  goDeps = ./deps.nix;
 
-  src = fetchgit {
-    inherit rev;
-    url = "https://github.com/valyala/quicktemplate";
+  src = fetchFromGitHub {
+    owner = "valyala";
+    repo = "quicktemplate";
+    rev = "a91e0946457b6583004fbfc159339b8171423aed";
     sha256 = "1z89ang5pkq5qs5b2nwhzyrw0zjlsas539l9kix374fhka49n8yc";
   };
 
-  goDeps = ./deps.nix;
+  enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/valyala/quicktemplate";
diff --git a/pkgs/development/tools/react-native-debugger/default.nix b/pkgs/development/tools/react-native-debugger/default.nix
index 775b744f8398..a1b9090417c1 100644
--- a/pkgs/development/tools/react-native-debugger/default.nix
+++ b/pkgs/development/tools/react-native-debugger/default.nix
@@ -38,11 +38,11 @@ let
   ];
 in stdenv.mkDerivation rec {
   name = "react-native-debugger-${version}";
-  version = "0.7.18";
+  version = "0.7.20";
 
   src = fetchurl {
     url = "https://github.com/jhen0409/react-native-debugger/releases/download/v${version}/rn-debugger-linux-x64.zip";
-    sha256 = "186n438sy9wzrx2zdw4qq4hsz89wiy01bpfa6fdjisvxgz6r8sgw";
+    sha256 = "0nd707plj2c96g0dl976dv8b6dlfh12pdqrmxvp0qc2m2j6y9vig";
   };
 
   buildInputs = [ unzip ];
diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix
index 0dcc1287791d..c3040ec567c7 100644
--- a/pkgs/development/tools/rust/cbindgen/default.nix
+++ b/pkgs/development/tools/rust/cbindgen/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   name = "rust-cbindgen-${version}";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "eqrion";
     repo = "cbindgen";
     rev = "v${version}";
-    sha256 = "03qzqy3indqghqy7rnli1zrrlnyfkygxjpb2s7041cik54kf2krw";
+    sha256 = "0hifmn9578cf1r5m4ajazg3rhld2ybd2v48xz04vfhappkarv4w2";
   };
 
   cargoSha256 = "0c3xpzff8jldqbn5a25yy6c2hlz5xy636ml6sj5d24wzcgwg5a2i";
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index a2cd55f52b90..238c3bc704d0 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -6,12 +6,12 @@ let
   allSpecs = {
     "x86_64-linux" = {
       system = "linux64";
-      sha256 = "07b39j1glr53yxbbkkkkx12h8r44fybqkn4fd7s2lr1ysyq5vn1a";
+      sha256 = "1iwmdkkxfmmiqzvj2bjh98db6j6zfb8s2m5kq15wmnq0g44gxski";
     };
 
     "x86_64-darwin" = {
       system = "mac64";
-      sha256 = "11hs4mmlvxjaanq41h0dljj4sff0lfwk31svvdmzfg91idlikpsz";
+      sha256 = "1blp4ig5fm6ar8mxm78dc2gvv7n82mq3kqswbyjrcizl91qs4cpx";
     };
   };
 
@@ -28,7 +28,7 @@ let
 in
 stdenv.mkDerivation rec {
   name = "chromedriver-${version}";
-  version = "2.40";
+  version = "2.41";
 
   src = fetchurl {
     url = "https://chromedriver.storage.googleapis.com/${version}/chromedriver_${spec.system}.zip";
diff --git a/pkgs/development/tools/sqsh/default.nix b/pkgs/development/tools/sqsh/default.nix
index d1b1c84a3136..4acfa4a2b0ed 100644
--- a/pkgs/development/tools/sqsh/default.nix
+++ b/pkgs/development/tools/sqsh/default.nix
@@ -34,6 +34,7 @@ in stdenv.mkDerivation rec {
       it is intended as a replacement for the venerable 'isql' program supplied
       by Sybase.
     '';
+    license = licenses.gpl2;
     homepage = https://sourceforge.net/projects/sqsh/;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/tools/toxiproxy/default.nix b/pkgs/development/tools/toxiproxy/default.nix
index 10a27e2e3b88..565ec7904f18 100644
--- a/pkgs/development/tools/toxiproxy/default.nix
+++ b/pkgs/development/tools/toxiproxy/default.nix
@@ -22,5 +22,6 @@ buildGoPackage rec {
   meta = {
     description = "Proxy for for simulating network conditions.";
     maintainers = with lib.maintainers; [ avnik ];
+    license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/tools/wp-cli/default.nix b/pkgs/development/tools/wp-cli/default.nix
index 9dbdcfaa8aab..2f5552945714 100644
--- a/pkgs/development/tools/wp-cli/default.nix
+++ b/pkgs/development/tools/wp-cli/default.nix
@@ -2,11 +2,11 @@
 
 let
   name = "wp-cli-${version}";
-  version = "1.5.1";
+  version = "2.0.0";
 
   src = fetchurl {
     url    = "https://github.com/wp-cli/wp-cli/releases/download/v${version}/${name}.phar";
-    sha256 = "1lnjbl6rcv32g6akj4552ncyqmbsawmx1dnbmxr0rjj7wr8484f1";
+    sha256 = "1s8pv8vdjwiwknpwsxc59l1zxc2np7nrp6bjd0s8jwsrv5fgjzsp";
   };
 
   completion = fetchurl {
@@ -36,9 +36,7 @@ in stdenv.mkDerivation rec {
   inherit name version;
 
   buildCommand = ''
-    mkdir -p $out/{bin,share/bash-completion/completions}
-
-    ln      -s     ${bin}        $out/bin/wp
+    install -Dm755 ${bin}        $out/bin/wp
     install -Dm644 ${completion} $out/share/bash-completion/completions/wp
 
     # this is a very basic run test
diff --git a/pkgs/development/tools/xcbuild/platforms.nix b/pkgs/development/tools/xcbuild/platforms.nix
index bc60af9e1a5c..e20dc878b535 100644
--- a/pkgs/development/tools/xcbuild/platforms.nix
+++ b/pkgs/development/tools/xcbuild/platforms.nix
@@ -294,8 +294,7 @@ runCommand "Platforms" {} ''
   install -D ${writeText "PackageTypes.xcspec" (toPlist {} PackageTypes)} $platform/Developer/Library/Xcode/Specifications/PackageTypes.xcspec
   install -D ${writeText "ProductTypes.xcspec" (toPlist {} ProductTypes)} $platform/Developer/Library/Xcode/Specifications/ProductTypes.xcspec
 
-  # per-platform bins go here
-  mkdir -p $platform/usr/bin
+  ln -s $platform $platform/usr
 
   mkdir -p $platform/Developer
   ln -s ${sdks} $platform/Developer/SDKs
diff --git a/pkgs/development/tools/xcbuild/sdks.nix b/pkgs/development/tools/xcbuild/sdks.nix
index b0af26e87c12..74192d9c6744 100644
--- a/pkgs/development/tools/xcbuild/sdks.nix
+++ b/pkgs/development/tools/xcbuild/sdks.nix
@@ -1,4 +1,5 @@
-{ runCommand, lib, toolchainName, sdkName, writeText, version, xcodePlatform }:
+{ stdenv, runCommand, lib, toolchainName, sdkName
+, writeText, version, xcodePlatform, libcxx, symlinkJoin }:
 
 let
   inherit (lib.generators) toPlist;
@@ -18,11 +19,11 @@ let
   };
 in
 
-runCommand "SDKs" {
-  inherit version;
-} ''
+runCommand "SDKs" {} ''
   sdk=$out/${sdkName}.sdk
   install -D ${writeText "SDKSettings.plist" (toPlist {} SDKSettings)} $sdk/SDKSettings.plist
   install -D ${writeText "SystemVersion.plist" (toPlist {} SystemVersion)} $sdk/System/Library/CoreServices/SystemVersion.plist
+  ln -s $sdk $sdk/usr
+
   ln -s $sdk $out/${xcodePlatform}.sdk
 ''
diff --git a/pkgs/development/tools/xcbuild/toolchains.nix b/pkgs/development/tools/xcbuild/toolchains.nix
index 01a8fbdb0b06..59e009a43386 100644
--- a/pkgs/development/tools/xcbuild/toolchains.nix
+++ b/pkgs/development/tools/xcbuild/toolchains.nix
@@ -1,4 +1,4 @@
-{ runCommand, toolchainName, fetchurl, makeWrapper, stdenv
+{ runCommand, toolchainName, fetchurl, stdenv
 , buildPackages, lib, writeText }:
 
 let
@@ -20,52 +20,52 @@ let
   };
 in
 
-runCommand "Toolchains" {
-  nativeBuildInputs = [ makeWrapper ];
-} (''
+runCommand "Toolchains" {} (''
   toolchain=$out/XcodeDefault.xctoolchain
   mkdir -p $toolchain
 
   install -D ${writeText "ToolchainInfo.plist" (toPlist {} ToolchainInfo)} $toolchain/ToolchainInfo.plist
 
-  mkdir -p $toolchain/usr/include
-  mkdir -p $toolchain/usr/lib
-  mkdir -p $toolchain/usr/libexec
-  mkdir -p $toolchain/usr/share
-  mkdir -p $toolchain/usr/bin
+  ln -s $toolchain $toolchain/usr
+
+  mkdir -p $toolchain/include
+  mkdir -p $toolchain/lib
+  mkdir -p $toolchain/libexec
+  mkdir -p $toolchain/share
+  mkdir -p $toolchain/bin
 
   for bin in ${getBin stdenv.cc}/bin/*; do
-    ln -s $bin $toolchain/usr/bin
+    ln -s $bin $toolchain/bin
   done
 
   for bin in ${getBin stdenv.cc.bintools.bintools}/bin/*; do
-    if ! [ -e "$toolchain/usr/bin/$(basename $bin)" ]; then
-      ln -s $bin $toolchain/usr/bin
+    if ! [ -e "$toolchain/bin/$(basename $bin)" ]; then
+      ln -s $bin $toolchain/bin
     fi
   done
 
-  ln -s ${buildPackages.yacc}/bin/yacc $toolchain/usr/bin/yacc
-  ln -s ${buildPackages.yacc}/bin/bison $toolchain/usr/bin/bison
-  ln -s ${buildPackages.flex}/bin/flex $toolchain/usr/bin/flex
-  ln -s ${buildPackages.flex}/bin/flex++ $toolchain/usr/bin/flex++
-  ln -s $toolchain/bin/flex $toolchain/usr/bin/lex
+  ln -s ${buildPackages.yacc}/bin/yacc $toolchain/bin/yacc
+  ln -s ${buildPackages.yacc}/bin/bison $toolchain/bin/bison
+  ln -s ${buildPackages.flex}/bin/flex $toolchain/bin/flex
+  ln -s ${buildPackages.flex}/bin/flex++ $toolchain/bin/flex++
+  ln -s $toolchain/bin/flex $toolchain/bin/lex
 
-  ln -s ${buildPackages.m4}/bin/m4 $toolchain/usr/bin/m4
-  ln -s $toolchain/usr/bin/m4 $toolchain/usr/bin/gm4
+  ln -s ${buildPackages.m4}/bin/m4 $toolchain/bin/m4
+  ln -s $toolchain/bin/m4 $toolchain/bin/gm4
 
-  ln -s ${buildPackages.unifdef}/bin/unifdef $toolchain/usr/bin/unifdef
-  ln -s ${buildPackages.unifdef}/bin/unifdefall $toolchain/usr/bin/unifdefall
+  ln -s ${buildPackages.unifdef}/bin/unifdef $toolchain/bin/unifdef
+  ln -s ${buildPackages.unifdef}/bin/unifdefall $toolchain/bin/unifdefall
 
-  ln -s ${buildPackages.gperf}/bin/gperf $toolchain/usr/bin/gperf
-  ln -s ${buildPackages.indent}/bin/indent $toolchain/usr/bin/indent
-  ln -s ${buildPackages.ctags}/bin/ctags $toolchain/usr/bin/ctags
+  ln -s ${buildPackages.gperf}/bin/gperf $toolchain/bin/gperf
+  ln -s ${buildPackages.indent}/bin/indent $toolchain/bin/indent
+  ln -s ${buildPackages.ctags}/bin/ctags $toolchain/bin/ctags
 '' + optionalString stdenv.isDarwin ''
   for bin in ${getBin buildPackages.darwin.cctools}/bin/*; do
-    if ! [ -e "$toolchain/usr/bin/$(basename $bin)" ]; then
-      ln -s $bin $toolchain/usr/bin
+    if ! [ -e "$toolchain/bin/$(basename $bin)" ]; then
+      ln -s $bin $toolchain/bin
     fi
   done
 
-  ln -s ${buildPackages.darwin.bootstrap_cmds}/bin/mig $toolchain/usr/bin
-  ln -s ${mkdep-darwin-src} $toolchain/usr/bin/mkdep
+  ln -s ${buildPackages.darwin.bootstrap_cmds}/bin/mig $toolchain/bin
+  ln -s ${mkdep-darwin-src} $toolchain/bin/mkdep
 '')
diff --git a/pkgs/development/tools/xcbuild/wrapper.nix b/pkgs/development/tools/xcbuild/wrapper.nix
index 77ef8565a34e..4aa08f994576 100644
--- a/pkgs/development/tools/xcbuild/wrapper.nix
+++ b/pkgs/development/tools/xcbuild/wrapper.nix
@@ -1,4 +1,4 @@
-{ lib, buildPackages, makeWrapper, writeText, runCommand
+{ stdenv, lib, buildPackages, makeWrapper, writeText, runCommand
 , CoreServices, ImageIO, CoreGraphics
 , targetPlatform
 , xcodePlatform ? targetPlatform.xcodePlatform or "MacOSX"
@@ -36,14 +36,14 @@ let
   '';
 
   xcode-select = writeText "xcode-select" ''
-#!/usr/bin/env sh
+#!${stdenv.shell}
 while [ $# -gt 0 ]; do
    case "$1" in
          -h | --help) ;; # noop
          -s | --switch) shift;; # noop
          -r | --reset) ;; # noop
          -v | --version) echo xcode-select version ${xcodeSelectVersion} ;;
-         -p | --print-path) echo @DEVELOPER_DIR@ ;;
+         -p | -print-path | --print-path) echo @DEVELOPER_DIR@ ;;
          --install) ;; # noop
     esac
     shift
@@ -51,7 +51,7 @@ done
   '';
 
   xcrun = writeText "xcrun" ''
-#!/usr/bin/env sh
+#!${stdenv.shell}
 while [ $# -gt 0 ]; do
    case "$1" in
          --sdk | -sdk) shift ;;
@@ -86,16 +86,20 @@ runCommand "xcodebuild-${xcbuild.version}" {
   inherit (xcbuild) meta;
 
   # ensure that the toolchain goes in PATH
-  propagatedBuildInputs = [ "${toolchains}/XcodeDefault.xctoolchain/usr" ];
+  propagatedBuildInputs = [ "${toolchains}/XcodeDefault.xctoolchain" ];
 
-  passthru = { inherit xcbuild; };
+  passthru = {
+    inherit xcbuild;
+    toolchain = "${toolchains}/XcodeDefault.xctoolchain";
+    sdk = "${sdks}/${sdkName}";
+    platform = "${platforms}/${xcodePlatform}.platform";
+  };
 
   preferLocalBuild = true;
 } ''
   mkdir -p $out/bin
 
-  mkdir -p $out/usr
-  ln -s $out/bin $out/usr/bin
+  ln -s $out $out/usr
 
   mkdir -p $out/Library/Xcode
   ln -s ${xcbuild}/Library/Xcode/Specifications $out/Library/Xcode/Specifications
@@ -108,7 +112,8 @@ runCommand "xcodebuild-${xcbuild.version}" {
     --add-flags "DERIVED_DATA_DIR=." \
     --set DEVELOPER_DIR "$out" \
     --set SDKROOT ${sdkName} \
-    --run '[ "$1" = "-version" ] && (echo Xcode ${xcodeVer}; echo Build version ${sdkBuildVersion}) && exit 0'
+    --run '[ "$1" = "-version" ] && [ "$#" -eq 1 ] && (echo Xcode ${xcodeVer}; echo Build version ${sdkBuildVersion}) && exit 0' \
+    --run '[ "$1" = "-license" ] && exit 0'
 
   substitute ${xcode-select} $out/bin/xcode-select \
     --subst-var-by DEVELOPER_DIR $out
diff --git a/pkgs/development/tools/yarn/default.nix b/pkgs/development/tools/yarn/default.nix
index bf8dbf671c01..dae90569a90b 100644
--- a/pkgs/development/tools/yarn/default.nix
+++ b/pkgs/development/tools/yarn/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "yarn-${version}";
-  version = "1.9.2";
+  version = "1.9.4";
 
   src = fetchzip {
     url = "https://github.com/yarnpkg/yarn/releases/download/v${version}/yarn-v${version}.tar.gz";
-    sha256 = "0bk006zs1bk6nwj9x07ry314fgxi21sk79h1paljbs6yzrv62h4g";
+    sha256 = "0lxncqvz66167ijhsi76ds2yp8140d9ywn89y5vm92010irsgs20";
   };
 
   buildInputs = [ nodejs ];