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/flow/default.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2-cutter/default.nix48
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix25
-rw-r--r--pkgs/development/tools/asn2quickder/default.nix29
-rw-r--r--pkgs/development/tools/boomerang/default.nix53
-rw-r--r--pkgs/development/tools/boomerang/fix-install.patch48
-rw-r--r--pkgs/development/tools/boomerang/fix-output.patch24
-rw-r--r--pkgs/development/tools/build-managers/arpa2cm/default.nix22
-rw-r--r--pkgs/development/tools/build-managers/bazel/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bear/default.nix5
-rw-r--r--pkgs/development/tools/build-managers/bear/ignore_wrapper.patch40
-rw-r--r--pkgs/development/tools/build-managers/cask/default.nix11
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix16
-rwxr-xr-xpkgs/development/tools/build-managers/cmake/setup-hook.sh10
-rw-r--r--pkgs/development/tools/build-managers/dub/default.nix18
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.2/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27.patch24
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.2/head.nix69
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch31
-rw-r--r--pkgs/development/tools/build-managers/icmake/default.nix4
-rw-r--r--pkgs/development/tools/buildah/default.nix49
-rw-r--r--pkgs/development/tools/compile-daemon/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-agent/default.nix10
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix6
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix2
-rw-r--r--pkgs/development/tools/dep/default.nix2
-rw-r--r--pkgs/development/tools/devpi-client/default.nix5
-rw-r--r--pkgs/development/tools/devpi-server/default.nix13
-rw-r--r--pkgs/development/tools/dtools/default.nix18
-rw-r--r--pkgs/development/tools/flock/default.nix24
-rw-r--r--pkgs/development/tools/gnome-desktop-testing/default.nix26
-rw-r--r--pkgs/development/tools/go-outline/default.nix24
-rw-r--r--pkgs/development/tools/go-outline/deps.nix11
-rw-r--r--pkgs/development/tools/go-symbols/default.nix23
-rw-r--r--pkgs/development/tools/go-symbols/deps.nix11
-rw-r--r--pkgs/development/tools/gomodifytags/default.nix22
-rw-r--r--pkgs/development/tools/gopkgs/default.nix24
-rw-r--r--pkgs/development/tools/gopkgs/deps.nix11
-rw-r--r--pkgs/development/tools/gotests/default.nix25
-rw-r--r--pkgs/development/tools/gotests/deps.nix11
-rw-r--r--pkgs/development/tools/haskell/lambdabot/default.nix4
-rw-r--r--pkgs/development/tools/haskell/multi-ghc-travis/default.nix10
-rw-r--r--pkgs/development/tools/hcloud/default.nix24
-rw-r--r--pkgs/development/tools/icestorm/default.nix15
-rw-r--r--pkgs/development/tools/jid/default.nix25
-rw-r--r--pkgs/development/tools/jid/deps.nix75
-rw-r--r--pkgs/development/tools/librarian-puppet-go/default.nix25
-rw-r--r--pkgs/development/tools/librarian-puppet-go/deps.nix12
-rw-r--r--pkgs/development/tools/misc/autoconf-archive/default.nix4
-rw-r--r--pkgs/development/tools/misc/autoconf/default.nix3
-rw-r--r--pkgs/development/tools/misc/autogen/default.nix19
-rw-r--r--pkgs/development/tools/misc/binutils/2.30.nix131
-rw-r--r--pkgs/development/tools/misc/bossa/default.nix6
-rw-r--r--pkgs/development/tools/misc/fswatch/default.nix4
-rw-r--r--pkgs/development/tools/misc/lsof/default.nix4
-rw-r--r--pkgs/development/tools/misc/lttng-ust/default.nix4
-rw-r--r--pkgs/development/tools/misc/openocd/default.nix6
-rw-r--r--pkgs/development/tools/misc/patchelf/unstable.nix6
-rw-r--r--pkgs/development/tools/misc/strace/default.nix6
-rw-r--r--pkgs/development/tools/misc/uhd/default.nix28
-rw-r--r--pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix2
-rw-r--r--pkgs/development/tools/profiling/heaptrack/default.nix14
-rw-r--r--pkgs/development/tools/profiling/systemtap/default.nix10
-rw-r--r--pkgs/development/tools/redis-dump/default.nix1
-rw-r--r--pkgs/development/tools/reflex/default.nix24
-rw-r--r--pkgs/development/tools/rhc/default.nix5
-rw-r--r--pkgs/development/tools/rust/racerd/default.nix8
-rw-r--r--pkgs/development/tools/rust/rustup/default.nix16
-rw-r--r--pkgs/development/tools/selenium/chromedriver/default.nix11
-rw-r--r--pkgs/development/tools/skopeo/default.nix37
-rw-r--r--pkgs/development/tools/skopeo/path.patch25
-rw-r--r--pkgs/development/tools/yaml2json/default.nix24
-rw-r--r--pkgs/development/tools/yaml2json/deps.nix11
73 files changed, 992 insertions, 413 deletions
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index f90893ee79de..4a2d298495da 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -4,14 +4,14 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "0.64.0";
+  version = "0.66.0";
   name = "flow-${version}";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    sha256 = "1jvx2vx1d3n5z689zqm0gylmmjxim176avinwn3q8xla3gz3srp8";
+    sha256 = "0l1sdd1n0llmz8m81vym3zhcn824sr9w46h9jpb7i7wrcm4y410d";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/radare2-cutter/default.nix b/pkgs/development/tools/analysis/radare2-cutter/default.nix
new file mode 100644
index 000000000000..3cd1d309e15d
--- /dev/null
+++ b/pkgs/development/tools/analysis/radare2-cutter/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, fetchpatch, qmake, pkgconfig, qtbase, qtsvg, radare2 }:
+
+
+stdenv.mkDerivation rec {
+  name = "radare2-cutter-${version}";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "radareorg";
+    repo = "cutter";
+    rev = "v${version}";
+    sha256 = "02m5sf45n455hn34y7hrqanj830rc5xhz2ppp1z3mzbz0s515pfl";
+  };
+
+  postUnpack = "export sourceRoot=$sourceRoot/src";
+
+  patches = [
+    # Fixup version number :D
+    (fetchpatch {
+      url = "https://github.com/radareorg/cutter/commit/69506b64600df632afdca8b680baa7d946c78644.patch";
+      sha256 = "0ks3ixz8bycjcfi26bd0p6z7qaplhq00alw44hsfzpdm4bmr01x0";
+    })
+    (fetchpatch {
+      url = "https://github.com/radareorg/cutter/commit/8b52c66f4f0091cd9d97389b32aa519c2c602e2b.patch";
+      sha256 = "0wcdn35lx2943pfzm7mkg4sr82pm0qz3yxf74m8fxbd70s3w0gkm";
+    })
+
+    # case-insensitive filtering
+    (fetchpatch {
+      url = "https://github.com/radareorg/cutter/commit/0ebd34370bcaed00000168147572bb78106eeab1.patch";
+      sha256 = "0sc50jwhncfnd2i5mlyld4dbdzi2ws7nh4yglkhlap9l9h1jxn20";
+    })
+  ];
+
+  patchFlags = [ "-p2" ];
+
+  nativeBuildInputs = [ qmake pkgconfig ];
+  buildInputs = [ qtbase qtsvg radare2 ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A Qt and C++ GUI for radare2 reverse engineering framework";
+    homepage = src.meta.homepage;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 49f6aeb72799..6a7992b01311 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchFromGitHub, fetchurl, fetchpatch, pkgconfig, libusb, readline, libewf, perl, zlib, openssl,
+{stdenv, fetchFromGitHub, fetchgit, fetchurl, fetchpatch, pkgconfig, libusb, readline, libewf, perl, zlib, openssl, git,
 gtk2 ? null, vte ? null, gtkdialog ? null,
 python ? null,
 ruby ? null,
@@ -13,32 +13,33 @@ let
   inherit (stdenv.lib) optional;
 in
 stdenv.mkDerivation rec {
-  version = "2.2.0";
+  version = "2.3.0";
   name = "radare2-${version}";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
     rev = version;
-    sha256 = "0rd1dfgwdpn3x1pzi67sw040vxywbg5h6yw0mj317p0p1cvlyihl";
+    sha256 = "0x5vcprqf0fnj876mdvryfvg7ymbrw1cxrr7a06v0swg7yql1lpw";
   };
 
   postPatch = let
-    cs_ver = "3.0.4"; # version from $sourceRoot/shlr/Makefile
-    capstone = fetchurl {
-      url = "https://github.com/aquynh/capstone/archive/${cs_ver}.tar.gz";
-      sha256 = "1whl5c8j6vqvz2j6ay2pyszx0jg8d3x8hq66cvgghmjchvsssvax";
+    cs_tip = "bdbc57de63725a98732ddc34b48de96f8ada66f2"; # version from $sourceRoot/shlr/Makefile
+    capstone = fetchgit {
+      url = "https://github.com/aquynh/capstone.git";
+      rev = cs_tip;
+      sha256 = "1sqxpjf2dlrg87dm9p39p5d1qzahrnfnrjijpv1xg1shax439jni";
+      leaveDotGit = true;
     };
   in ''
-    if ! grep -F "CS_VER=${cs_ver}" shlr/Makefile; then echo "CS_VER mismatch"; exit 1; fi
-    substituteInPlace shlr/Makefile --replace CS_RELEASE=0 CS_RELEASE=1
-    cp ${capstone} shlr/capstone-${cs_ver}.tar.gz
-
+    if ! grep -F "CS_TIP=${cs_tip}" shlr/Makefile; then echo "CS_TIP mismatch"; exit 1; fi
+    cp -r ${capstone} shlr/capstone
+    chmod -R u+rw shlr/capstone
   '';
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig git ];
   buildInputs = [ readline libusb libewf perl zlib openssl]
     ++ optional useX11 [gtkdialog vte gtk2]
     ++ optional rubyBindings [ruby]
diff --git a/pkgs/development/tools/asn2quickder/default.nix b/pkgs/development/tools/asn2quickder/default.nix
index 812053902a57..e0b9aec9ee15 100644
--- a/pkgs/development/tools/asn2quickder/default.nix
+++ b/pkgs/development/tools/asn2quickder/default.nix
@@ -1,30 +1,25 @@
-{ stdenv, fetchFromGitHub, python2Packages, makeWrapper }:
+{ stdenv, buildPythonApplication, fetchFromGitHub, makeWrapper, cmake
+, pytestrunner, pytest, six, pyparsing, asn1ate }:
 
-stdenv.mkDerivation rec {
+buildPythonApplication rec {
   pname = "asn2quickder";
-  name = "${pname}-${version}";
-  version = "0.7-RC1";
+  version = "1.2-6";
 
   src = fetchFromGitHub {
-    sha256 = "0ynajhbml28m4ipbj5mscjcv6g1a7frvxfimxh813rhgl0w3sgq8";
+    sha256 = "00wifjydgmqw2i5vmr049visc3shjqccgzqynkmmhkjhs86ghzr6";
     rev = "version-${version}";
     owner = "vanrein";
-    repo = "${pname}";
+    repo = "quick-der";
   };
 
-  propagatedBuildInputs = with python2Packages; [ pyparsing makeWrapper ];
+  patchPhase = ''
+    patchShebangs ./python/scripts/*
+  '';
 
-  patchPhase = with python2Packages; ''
-    substituteInPlace Makefile \
-      --replace '..' '..:$(DESTDIR)/${python.sitePackages}:${python2Packages.pyparsing}/${python.sitePackages}' \
-    '';
+  buildInputs = [ makeWrapper cmake ];
+  checkInputs = [ pytestrunner pytest ];
 
-  installPhase = ''
-    mkdir -p $out/${python2Packages.python.sitePackages}/
-    mkdir -p $out/bin $out/lib $out/sbin $out/man
-    make DESTDIR=$out PREFIX=/ all
-    make DESTDIR=$out PREFIX=/ install
-    '';
+  propagatedBuildInputs = [ pyparsing asn1ate six ];
 
   meta = with stdenv.lib; {
     description = "An ASN.1 compiler with a backend for Quick DER";
diff --git a/pkgs/development/tools/boomerang/default.nix b/pkgs/development/tools/boomerang/default.nix
index 6b9dd6393cb6..f83353034a8f 100644
--- a/pkgs/development/tools/boomerang/default.nix
+++ b/pkgs/development/tools/boomerang/default.nix
@@ -1,38 +1,43 @@
-{ stdenv, fetchgit, cmake, expat, qt5, boost }:
+{ stdenv, fetchFromGitHub, cmake, qtbase }:
 
 stdenv.mkDerivation rec {
   name = "boomerang-${version}";
-  version = "0.3.99-alpha-2016-11-02";
+  version = "0.4.0-alpha-2018-01-18";
 
-  src = fetchgit {
-    url = "https://github.com/nemerle/boomerang.git";
-    rev = "f95d6436845e9036c8cfbd936731449475f79b7a";
-    sha256 = "1q3q92lfj24ij5sxdbdhcqyan28r6db1w80yrks4csf9zjij1ixh";
+  src = fetchFromGitHub {
+    owner = "ceeac";
+    repo = "boomerang";
+    rev = "b4ff8d573407a8ed6365d4bfe53d2d47d983e393";
+    sha256 = "0x17vlm6y1paa49fi3pmzz7vzdqms19qkr274hkq32ql342b6i6x";
   };
 
-  buildInputs = [ cmake expat qt5.qtbase boost ];
-
-  patches = [ ./fix-install.patch ./fix-output.patch ];
-
-  postPatch = ''
-    substituteInPlace loader/BinaryFileFactory.cpp \
-      --replace '"lib"' '"../lib"'
-
-    substituteInPlace ui/DecompilerThread.cpp \
-      --replace '"output"' '"./output"'
-
-    substituteInPlace boomerang.cpp \
-      --replace 'progPath("./")' "progPath(\"$out/share/boomerang/\")"
-
-    substituteInPlace ui/commandlinedriver.cpp \
-      --replace "QFileInfo(args[0]).absolutePath()" "\"$out/share/boomerang/\""
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ qtbase ];
+
+  postPatch =
+  # Look in installation directory for required files, not relative to working directory
+  ''
+    substituteInPlace src/boomerang/core/Settings.cpp \
+      --replace "setDataDirectory(\"../share/boomerang\");" \
+                "setDataDirectory(\"$out/share/boomerang\");" \
+      --replace "setPluginDirectory(\"../lib/boomerang/plugins\");" \
+                "setPluginDirectory(\"$out/lib/boomerang/plugins\");"
+  ''
+  # Fixup version:
+  # * don't try to inspect with git
+  #   (even if we kept .git and such it would be "dirty" because of patching)
+  # * use date so version is monotonically increasing moving forward
+  + ''
+    sed -i cmake-scripts/boomerang-version.cmake \
+      -e 's/set(\(PROJECT\|BOOMERANG\)_VERSION ".*")/set(\1_VERSION "${version}")/'
   '';
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://boomerang.sourceforge.net/;
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
     description = "A general, open source, retargetable decompiler";
+    maintainers = with maintainers; [ dtzWill ];
   };
 }
diff --git a/pkgs/development/tools/boomerang/fix-install.patch b/pkgs/development/tools/boomerang/fix-install.patch
deleted file mode 100644
index bc656acfd6a5..000000000000
--- a/pkgs/development/tools/boomerang/fix-install.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 5851256422a4debc34c956439d8129a4d5f80722 Mon Sep 17 00:00:00 2001
-From: Will Dietz <w@wdtz.org>
-Date: Thu, 30 Mar 2017 10:06:03 -0500
-Subject: [PATCH] cmake: add install bits
-
----
- CMakeLists.txt        | 3 +++
- loader/CMakeLists.txt | 2 ++
- ui/CMakeLists.txt     | 2 ++
- 3 files changed, 7 insertions(+)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 826fe307..740861db 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -113,3 +113,6 @@ SET_PROPERTY(TARGET boom_base PROPERTY CXX_STANDARD_REQUIRED ON)
- 
- ADD_SUBDIRECTORY(loader)
- ADD_SUBDIRECTORY(ui)
-+
-+INSTALL(DIRECTORY signatures DESTINATION share/boomerang)
-+INSTALL(DIRECTORY frontend/machine DESTINATION share/boomerang/frontend)
-diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt
-index b371d366..dcf715fd 100644
---- a/loader/CMakeLists.txt
-+++ b/loader/CMakeLists.txt
-@@ -6,6 +6,8 @@ macro(BOOMERANG_ADD_LOADER name)
-     endif()
-     qt5_use_modules(${target_name} Core)
-     set_target_properties(${target_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/out/lib")
-+    install(TARGETS "${target_name}"
-+      LIBRARY DESTINATION lib)
- endmacro()
- 
- BOOMERANG_ADD_LOADER(Elf      elf/ElfBinaryFile.cpp elf/ElfBinaryFile.h)
-diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt
-index f6fe3271..8729b522 100644
---- a/ui/CMakeLists.txt
-+++ b/ui/CMakeLists.txt
-@@ -26,3 +26,5 @@ boom_base frontend db type boomerang_DSLs codegen util boom_base
- ${CMAKE_THREAD_LIBS_INIT} boomerang_passes
- )
- qt5_use_modules(boomerang Core Xml Widgets)
-+
-+INSTALL(TARGETS boomerang DESTINATION bin)
--- 
-2.11.0
-
diff --git a/pkgs/development/tools/boomerang/fix-output.patch b/pkgs/development/tools/boomerang/fix-output.patch
deleted file mode 100644
index 18fbe74177b3..000000000000
--- a/pkgs/development/tools/boomerang/fix-output.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From f3f5f888a1b1fe72ea8fc8cc96ef4ee386011e1c Mon Sep 17 00:00:00 2001
-From: Will Dietz <w@wdtz.org>
-Date: Thu, 30 Mar 2017 11:21:38 -0500
-Subject: [PATCH] don't default to writing to program directory
-
----
- boomerang.cpp | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/boomerang.cpp b/boomerang.cpp
-index 5951ed91..b592f482 100644
---- a/boomerang.cpp
-+++ b/boomerang.cpp
-@@ -601,7 +601,6 @@ int Boomerang::processCommand(QStringList &args) {
-  */
- void Boomerang::setProgPath(const QString &p) {
-     progPath = p + "/";
--    outputPath = progPath + "/output/"; // Default output path (can be overridden with -o below)
- }
- 
- /**
--- 
-2.11.0
-
diff --git a/pkgs/development/tools/build-managers/arpa2cm/default.nix b/pkgs/development/tools/build-managers/arpa2cm/default.nix
new file mode 100644
index 000000000000..0aec7491e4ad
--- /dev/null
+++ b/pkgs/development/tools/build-managers/arpa2cm/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "arpa2cm";
+  version = "0.5";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    sha256 = "093h7njj8d8iiwnw5byfxkkzlbny60fwv1w57j8f1lsd4yn6rih4";
+    rev = "version-${version}";
+    repo = "${pname}";
+    owner = "arpa2";
+  };
+
+  buildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "CMake Module library for the ARPA2 project";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ leenaars ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/bazel/default.nix b/pkgs/development/tools/build-managers/bazel/default.nix
index 67d186c5a257..6e974b7e93d6 100644
--- a/pkgs/development/tools/build-managers/bazel/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
 
-  version = "0.9.0";
+  version = "0.10.1";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/bazelbuild/bazel/";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "0aiifrp6g1d3ilhg8111wdhsrjy41x8gcmq67rjyxypw9znqzcpg";
+    sha256 = "0rz6zvkzyglf0mmc178avf52zynz487m4v0089ilsbrgv7v4i0kh";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/development/tools/build-managers/bear/default.nix b/pkgs/development/tools/build-managers/bear/default.nix
index 2bfec89aa660..6afec72de5fd 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.2.1";
+  version = "2.3.11";
 
   src = fetchFromGitHub {
     owner = "rizsotto";
     repo = "Bear";
     rev = version;
-    sha256 = "1rwar5nvvhfqws4nwyifaysqs3nxpphp48lx9mdg5n6l4z7drz0n";
+    sha256 = "0r6ykvclq9ws055ssd8w33dicmk5l9pisv0fpzkks700n8d3z9f3";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -31,4 +31,3 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.vcunat ];
   };
 }
-
diff --git a/pkgs/development/tools/build-managers/bear/ignore_wrapper.patch b/pkgs/development/tools/build-managers/bear/ignore_wrapper.patch
index 16d7a9bfd3e4..f70e3811f654 100644
--- a/pkgs/development/tools/build-managers/bear/ignore_wrapper.patch
+++ b/pkgs/development/tools/build-managers/bear/ignore_wrapper.patch
@@ -1,31 +1,23 @@
---- Bear-2.2.1-src/bear/main.py.in	1970-01-01 01:00:01.000000000 +0100
-+++ Bear-2.2.1-src-patch/bear/main.py.in	2016-11-02 20:23:38.050134984 +0100
-@@ -48,6 +48,7 @@
+--- Bear-2.3.11-src/bear/main.py.in	1970-01-01 01:00:01.000000000 +0100
++++ Bear-2.3.11-src-patch/bear/main.py.in	1970-01-01 01:00:01.000000000 +0100
+@@ -49,6 +49,7 @@
  import shutil
  import contextlib
  import logging
 +from distutils.spawn import find_executable
  
- # Ignored compiler options map for compilation database creation.
- # The map is used in `split_command` method. (Which does ignore and classify
-@@ -447,7 +448,6 @@
-     # do extra check on number of source files
-     return result if result.files else None
+ # Map of ignored compiler option for the creation of a compilation database.
+ # This map is used in _split_command method, which classifies the parameters
+@@ -540,7 +541,11 @@
+                 any(pattern.match(cmd) for pattern in COMPILER_PATTERNS_CXX)
  
--
- def split_compiler(command):
-     """ A predicate to decide the command is a compiler call or not.
- 
-@@ -467,7 +467,11 @@
-                    for pattern in COMPILER_CPP_PATTERNS)
- 
-     if command:  # not empty list will allow to index '0' and '1:'
--        executable = os.path.basename(command[0])
-+        absolute_executable = os.path.realpath(find_executable(command[0]))
-+        if 'wrapper' in absolute_executable:
-+            return None
+         if command:  # not empty list will allow to index '0' and '1:'
+-            executable = os.path.basename(command[0])  # type: str
++            absolute_executable = os.path.realpath(find_executable(command[0]))
++            if 'wrapper' in absolute_executable:
++                return None
 +
-+        executable = os.path.basename(absolute_executable)
-         parameters = command[1:]
-         # 'wrapper' 'parameters' and
-         # 'wrapper' 'compiler' 'parameters' are valid.
++            executable = os.path.basename(absolute_executable) # type: str
+             parameters = command[1:]  # type: List[str]
+             # 'wrapper' 'parameters' and
+             # 'wrapper' 'compiler' 'parameters' are valid.
\ No newline at end of file
diff --git a/pkgs/development/tools/build-managers/cask/default.nix b/pkgs/development/tools/build-managers/cask/default.nix
new file mode 100644
index 000000000000..234dab99c03c
--- /dev/null
+++ b/pkgs/development/tools/build-managers/cask/default.nix
@@ -0,0 +1,11 @@
+{ emacsPackagesNg, writeScriptBin }:
+let
+
+  emacs = emacsPackagesNg.emacsWithPackages (epkgs: [ epkgs.cask-package-toolset ]);
+  cpt = emacsPackagesNg.cask-package-toolset;
+
+in writeScriptBin "cask" ''
+#!/bin/sh
+
+exec ${emacs}/bin/emacs --script ${cpt}/share/emacs/site-lisp/elpa/cask-package-toolset-${cpt.version}/cask-package-toolset.el -- "$@"
+''
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index fed88561cf9c..97c02cd9cc12 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -83,11 +83,25 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--docdir=share/doc/${name}" ]
     ++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup
     ++ optional (useQt4 || withQt5) "--qt-gui"
-    ++ optionals (!useNcurses) [ "--" "-DBUILD_CursesDialog=OFF" ];
+    ++ ["--"]
+    ++ optionals (!useNcurses) [ "-DBUILD_CursesDialog=OFF" ]
+    ++ optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+      "-DCMAKE_CXX_COMPILER=${stdenv.cc.targetPrefix}c++"
+      "-DCMAKE_C_COMPILER=${stdenv.cc.targetPrefix}cc"
+      "-DCMAKE_AR=${getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar"
+      "-DCMAKE_RANLIB=${getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib"
+      "-DCMAKE_STRIP=${getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip"
+      # TODO: Why are ar and friends not provided by the bintools wrapper?
+    ];
 
   dontUseCmakeConfigure = true;
   enableParallelBuilding = true;
 
+  # This isn't an autoconf configure script; triples are passed via
+  # CMAKE_SYSTEM_NAME, etc.
+  configurePlatforms = [ ];
+
+
   meta = with stdenv.lib; {
     homepage = http://www.cmake.org/;
     description = "Cross-Platform Makefile Generator";
diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index a0f1cf00814c..c796c31cb70a 100755
--- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -33,7 +33,15 @@ cmakeConfigurePhase() {
         # By now it supports linux builds only. We should set the proper
         # CMAKE_SYSTEM_NAME otherwise.
         # http://www.cmake.org/Wiki/CMake_Cross_Compiling
-        cmakeFlags="-DCMAKE_CXX_COMPILER=$crossConfig-g++ -DCMAKE_C_COMPILER=$crossConfig-gcc $cmakeFlags"
+        #
+        # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and
+        # strip. Otherwise they are taken to be relative to the source root of
+        # the package being built.
+        cmakeFlags="-DCMAKE_CXX_COMPILER=$crossConfig-c++ $cmakeFlags"
+        cmakeFlags="-DCMAKE_C_COMPILER=$crossConfig-cc $cmakeFlags"
+        cmakeFlags="-DCMAKE_AR=$(command -v $crossConfig-ar) $cmakeFlags"
+        cmakeFlags="-DCMAKE_RANLIB=$(command -v $crossConfig-ranlib) $cmakeFlags"
+        cmakeFlags="-DCMAKE_STRIP=$(command -v $crossConfig-strip) $cmakeFlags"
     fi
 
     # This installs shared libraries with a fully-specified install
diff --git a/pkgs/development/tools/build-managers/dub/default.nix b/pkgs/development/tools/build-managers/dub/default.nix
index 8af11f057380..da404a63d85f 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.7.1";
+    version = "1.7.2";
 
     enableParallelBuilding = true;
 
@@ -12,9 +12,13 @@ let
       owner = "dlang";
       repo = "dub";
       rev = "v${version}";
-      sha256 = "09bcc9bq2z1rbm8sdip1l81y5p8q13r30k02lzifyasiplrnpvlv";
+      sha256 = "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9";
     };
 
+    postUnpack = ''
+        patchShebangs .
+    '';
+
     patches = [
       # TODO Remove with next release which contains https://github.com/dlang/dub/pull/1354
       (fetchpatch {
@@ -23,12 +27,11 @@ let
       })
     ];
 
+    # Can be removed with https://github.com/dlang/dub/pull/1368
+    dubvar = "\\$DUB";
     postPatch = ''
-      # Avoid that the version file is overwritten
-      substituteInPlace build.sh \
-        --replace source/dub/version_.d /dev/null
-
-      patchShebangs .
+        substituteInPlace test/fetchzip.sh \
+            --replace "dub remove" "\"${dubvar}\" remove"
     '';
 
     nativeBuildInputs = [ dmd libevent rsync ];
@@ -70,6 +73,7 @@ let
     
     patches = dubBuild.patches;
 
+    postUnpack = dubBuild.postUnpack;
     postPatch = dubBuild.postPatch;
 
     nativeBuildInputs = dubBuild.nativeBuildInputs;
diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
index 7914d8ebb4f8..e175205143fc 100644
--- a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
     ./pselect.patch
   ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ];
   buildInputs = stdenv.lib.optionals guileSupport [ guile ];
 
   configureFlags = stdenv.lib.optional guileSupport "--with-guile";
diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27.patch b/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27.patch
new file mode 100644
index 000000000000..c2639c6cc927
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27.patch
@@ -0,0 +1,24 @@
+From 48c8a116a914a325a0497721f5d8b58d5bba34d4 Mon Sep 17 00:00:00 2001
+From: Paul Smith <psmith@gnu.org>
+Date: Sun, 19 Nov 2017 15:09:16 -0500
+Subject: * configure.ac: Support GLIBC glob interface version 2
+
+---
+ configure.ac | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff -Naur a/configure b/configure
+--- configure	2016-06-10 19:03:21.000000000 -0400
++++ configure	2018-02-18 04:40:32.971371555 -0500
+@@ -11481,10 +11481,9 @@
+ #include <glob.h>
+ #include <fnmatch.h>
+ 
+-#define GLOB_INTERFACE_VERSION 1
+ #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
+ # include <gnu-versions.h>
+-# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
++# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2
+    gnu glob
+ # endif
+ #endif
diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/head.nix b/pkgs/development/tools/build-managers/gnumake/4.2/head.nix
new file mode 100644
index 000000000000..5f3ae10c3e5b
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/4.2/head.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl, texinfo, guileSupport ? false, pkgconfig , guile ? null, autoreconfHook }:
+
+assert guileSupport -> ( guile != null );
+
+let
+  version = "4.2.90";
+  revision = "48c8a116a914a325a0497721f5d8b58d5bba34d4";
+  revCount = "2491";
+  shortRev = "48c8a11";
+
+  baseVersion = "4.2.1";
+  baseTarball = fetchurl {
+    url = "mirror://gnu/make/make-${baseVersion}.tar.bz2";
+    sha256 = "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn";
+  };
+in
+stdenv.mkDerivation {
+  name = "gnumake-${version}pre${revCount}_${shortRev}";
+
+  src = fetchurl {
+    url = "http://git.savannah.gnu.org/cgit/make.git/snapshot/make-${revision}.tar.gz";
+    sha256 = "0k6yvhr2a5lh1qhflv02dyvq5p20ikgaakm8w6gr4xmkspljwpwx";
+  };
+
+  postUnpack = ''
+    unpackFile ${baseTarball}
+    cp make-${baseVersion}/po/*.po $sourceRoot/po
+    cp make-${baseVersion}/doc/{fdl,make-stds}.texi $sourceRoot/doc
+  '';
+
+  patches = [
+    # Purity: don't look for library dependencies (of the form `-lfoo') in /lib
+    # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
+    # included Makefiles, don't look in /usr/include and friends.
+    ./impure-dirs-head.patch
+  ];
+
+  postPatch = ''
+    # These aren't in the 4.2.1 tarball yet.
+    sed -i -e 's/sr//' -e 's/zh_TW//' po/LINGUAS
+  '';
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig texinfo ];
+  buildInputs = stdenv.lib.optional guileSupport guile;
+
+  configureFlags = stdenv.lib.optional guileSupport "--with-guile";
+
+  outputs = [ "out" "man" "info" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gnu.org/software/make/;
+    description = "A tool to control the generation of non-source files from sources";
+    license = licenses.gpl3Plus;
+
+    longDescription = ''
+      Make is a tool which controls the generation of executables and
+      other non-source files of a program from the program's source files.
+
+      Make gets its knowledge of how to build your program from a file
+      called the makefile, which lists each of the non-source files and
+      how to compute it from other files. When you write a program, you
+      should write a makefile for it, so that it is possible to use Make
+      to build and install the program.
+    '';
+
+    platforms = platforms.all;
+    maintainers = [ maintainers.vrthra ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch b/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch
new file mode 100644
index 000000000000..06d39e13ce39
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch
@@ -0,0 +1,31 @@
+diff -Naur a/src/read.c b/src/read.c
+--- a/src/read.c	2017-11-19 15:17:47.000000000 -0500
++++ b/src/read.c	2018-02-19 08:53:51.548755213 -0500
+@@ -109,10 +109,12 @@
+ #endif
+     INCLUDEDIR,
+ #ifndef _AMIGA
++#if 0
+     "/usr/gnu/include",
+     "/usr/local/include",
+     "/usr/include",
+ #endif
++#endif
+     0
+   };
+ 
+diff -Naur a/src/remake.c b/src/remake.c
+--- a/src/remake.c	2017-11-19 15:17:47.000000000 -0500
++++ b/src/remake.c	2018-02-19 08:54:08.304101943 -0500
+@@ -1601,9 +1601,11 @@
+   static const char *dirs[] =
+     {
+ #ifndef _AMIGA
++#if 0
+       "/lib",
+       "/usr/lib",
+ #endif
++#endif
+ #if defined(WINDOWS32) && !defined(LIBDIR)
+ /*
+  * This is completely up to the user at product install time. Just define
diff --git a/pkgs/development/tools/build-managers/icmake/default.nix b/pkgs/development/tools/build-managers/icmake/default.nix
index 2744dac2500b..5b455f267d82 100644
--- a/pkgs/development/tools/build-managers/icmake/default.nix
+++ b/pkgs/development/tools/build-managers/icmake/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "icmake-${version}";
-  version = "9.02.04";
+  version = "9.02.06";
 
   src = fetchFromGitHub {
-    sha256 = "0dkqdm7nc3l9kgwkkf545hfbxj7ibkxl7n49wz9m1rcq9pvpmrw3";
+    sha256 = "1hs7fhqpkhlrjvjhfarf5bmxl8dw3r0immzdib27gwh3sfzgpx0b";
     rev = version;
     repo = "icmake";
     owner = "fbb-git";
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
new file mode 100644
index 000000000000..5fdbd7766cf8
--- /dev/null
+++ b/pkgs/development/tools/buildah/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, runCommand
+, gpgme, libgpgerror, devicemapper, btrfs-progs, pkgconfig, ostree, libselinux
+, go-md2man }:
+
+let
+  version = "0.11";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "projectatomic";
+    repo = "buildah";
+    sha256 = "0rq3dw6p9rcqc99jk93j0qwg1p8fh4pwqvzylcqlcyqhv46426zf";
+  };
+  goPackagePath = "github.com/projectatomic/buildah";
+
+in buildGoPackage rec {
+  name = "buildah-${version}";
+  inherit src;
+
+  outputs = [ "bin" "man" "out" ];
+
+  inherit goPackagePath;
+  excludedPackages = [ "tests" ];
+
+  nativeBuildInputs = [ pkgconfig go-md2man.bin ];
+  buildInputs = [ gpgme libgpgerror devicemapper btrfs-progs ostree libselinux ];
+
+  # Copied from the skopeo package, doesn’t seem to make a difference?
+  # If something related to these libs failed, uncomment these lines.
+  /*preBuild = with lib; ''
+    export CGO_CFLAGS="-I${getDev gpgme}/include -I${getDev libgpgerror}/include -I${getDev devicemapper}/include -I${getDev btrfs-progs}/include"
+    export CGO_LDFLAGS="-L${getLib gpgme}/lib -L${getLib libgpgerror}/lib -L${getLib devicemapper}/lib"
+  '';*/
+
+  postBuild = ''
+    # depends on buildGoPackage not changing …
+    pushd ./go/src/${goPackagePath}/docs
+    make docs
+    make install PREFIX="$man"
+    popd
+  '';
+
+  meta = {
+    description = "A tool which facilitates building OCI images";
+    homepage = https://github.com/projectatomic/buildah;
+    maintainers = with stdenv.lib.maintainers; [ Profpatsch ];
+    license = stdenv.lib.licenses.asl20;
+  };
+}
diff --git a/pkgs/development/tools/compile-daemon/default.nix b/pkgs/development/tools/compile-daemon/default.nix
index bad35e2422b5..db7df2af7009 100644
--- a/pkgs/development/tools/compile-daemon/default.nix
+++ b/pkgs/development/tools/compile-daemon/default.nix
@@ -19,7 +19,7 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     description = "Very simple compile daemon for Go";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ profpatsch ];
+    maintainers = with maintainers; [ ];
     inherit (src.meta) homepage;
   };
 }
diff --git a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
index ab090e6dc129..515e22788e50 100644
--- a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
+++ b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildGoPackage, fetchFromGitHub, makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep }:
 let
-  version = "2.6.6";
+  version = "2.6.9";
   goPackagePath = "github.com/buildkite/agent";
 in
 buildGoPackage {
@@ -12,11 +12,15 @@ buildGoPackage {
     owner = "buildkite";
     repo = "agent";
     rev = "v${version}";
-    sha256 = "0rpi63mfzlm39517l4xjcka3m4dnfjzwvpi0i1rpf1z2288cnkyx";
+    sha256 = "0rlinj7dcr8vzl1pb15nfny8jkvvj50i8czf4ahv26avnfycm4pz";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
+  # on Linux, the TMPDIR is /build which is the same prefix as this package
+  # remove once #35068 is merged
+  noAuditTmpdir = stdenv.isLinux;
+
   postInstall = ''
     # Install bootstrap.sh
     mkdir -p $bin/libexec/buildkite-agent
@@ -44,6 +48,6 @@ buildGoPackage {
     homepage = https://buildkite.com/docs/agent;
     license = licenses.mit;
     maintainers = with maintainers; [ pawelpacana zimbatm ];
-    platforms = platforms.linux ++ platforms.darwin;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 642a6a97bc0b..18ca5d4d8972 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "jenkins-${version}";
-  version = "2.103";
+  version = "2.89.3";
 
   src = fetchurl {
-    url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war";
-    sha256 = "1d771q4xjjji7ydh6xjz3j6hz2mszxh0m3zqjh4khlzqhnvydlha";
+    url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
+    sha256 = "0flqd3r1nip9wc8sy0kiqjivgx0zkpzlkbz6n3gb1plc73lpdwbr";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index 11932965af49..a7b9976be43c 100644
--- a/pkgs/development/tools/database/liquibase/default.nix
+++ b/pkgs/development/tools/database/liquibase/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
     description = "Version Control for your database";
     homepage = http://www.liquibase.org/;
     license = licenses.asl20;
-    maintainers = with maintainers; [ nequissimus profpatsch ];
+    maintainers = with maintainers; [ nequissimus ];
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/development/tools/dep/default.nix b/pkgs/development/tools/dep/default.nix
index 477c874af011..0d4f72fad80a 100644
--- a/pkgs/development/tools/dep/default.nix
+++ b/pkgs/development/tools/dep/default.nix
@@ -21,7 +21,7 @@ buildGoPackage rec {
     homepage = https://github.com/golang/dep;
     description = "Go dependency management tool";
     license = licenses.bsd3;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.carlsverre ];
   };
 }
diff --git a/pkgs/development/tools/devpi-client/default.nix b/pkgs/development/tools/devpi-client/default.nix
index 6a98befd346e..905314efe5a9 100644
--- a/pkgs/development/tools/devpi-client/default.nix
+++ b/pkgs/development/tools/devpi-client/default.nix
@@ -29,8 +29,9 @@ pythonPackages.buildPythonApplication rec {
     # setuptools do not get propagated into the tox call (cannot import setuptools)
     rm testing/test_test.py
 
-    # test tries to connect to upstream pypi
-    py.test -k 'not test_pypi_index_attributes' testing
+    # test_pypi_index_attributes tries to connect to upstream pypi
+    # test_download_release_error is fixed in the next release
+    py.test -k 'not test_pypi_index_attributes and not test_download_release_error' testing
   '';
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/tools/devpi-server/default.nix b/pkgs/development/tools/devpi-server/default.nix
index 275e411fc8d7..6823ae3372cb 100644
--- a/pkgs/development/tools/devpi-server/default.nix
+++ b/pkgs/development/tools/devpi-server/default.nix
@@ -3,17 +3,24 @@
 pythonPackages.buildPythonApplication rec {
   name = "${pname}-${version}";
   pname = "devpi-server";
-  version = "4.3.1";
+  version = "4.4.0";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "0x6ks2sbpknznxaqlh0gf5hcvhkmgixixq2zs91wgfqxk4vi4s6n";
+    sha256 = "0y77kcnk26pfid8vsw07v2k61x9sdl6wbmxg5qxnz3vd7703xpkl";
   };
 
   propagatedBuildInputs = with pythonPackages;
     [ devpi-common execnet itsdangerous pluggy waitress pyramid passlib ];
-  checkInputs = with pythonPackages; [ nginx webtest pytest beautifulsoup4 pytest-timeout pytest-catchlog mock pyyaml ];
+  checkInputs = with pythonPackages; [ nginx webtest pytest beautifulsoup4 pytest-timeout mock pyyaml ];
+  preCheck = ''
+    # These tests pass with pytest 3.3.2 but not with pytest 3.4.0.
+    sed -i 's/test_basic/noop/' test_devpi_server/test_log.py
+    sed -i 's/test_new/noop/' test_devpi_server/test_log.py
+    sed -i 's/test_thread_run_try_again/noop/' test_devpi_server/test_replica.py
+  '';
   checkPhase = ''
+    runHook preCheck
     cd test_devpi_server/
     PATH=$PATH:$out/bin pytest --slow -rfsxX
   '';
diff --git a/pkgs/development/tools/dtools/default.nix b/pkgs/development/tools/dtools/default.nix
index daa25de95080..d76bbb7f53a3 100644
--- a/pkgs/development/tools/dtools/default.nix
+++ b/pkgs/development/tools/dtools/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   name = "dtools-${version}";
-  version = "2.078.1";
+  version = "2.078.2";
 
   srcs = [
     (fetchFromGitHub {
       owner = "dlang";
       repo = "dmd";
       rev = "v${version}";
-      sha256 = "0b9lphh4g3r9cyzv4wcfppv9j3w952vvwv615za23acgwav3mqg2";
+      sha256 = "0x9q4aw4jl36dz7m5111y2sm8jdaj3zg36zhj6vqg1lqpdn3bhls";
       name = "dmd";
     })
     (fetchFromGitHub {
@@ -28,23 +28,11 @@ stdenv.mkDerivation rec {
       cd dtools
   '';
 
-  postPatch = ''
-      substituteInPlace posix.mak \
-          --replace "../dmd/generated/\$(OS)/release/\$(MODEL)/dmd" ${dmd.out}/bin/dmd
-
-      substituteInPlace posix.mak \
-          --replace gcc $CC
-
-      # To fix rdmd test with newer phobos
-      substituteInPlace rdmd.d \
-          --replace " std.stdiobase," ""
-  '';
-
   nativeBuildInputs = [ dmd ];
   buildInputs = [ curl ];
 
   makeCmd = ''
-    make -f posix.mak DMD=${dmd.out}/bin/dmd DMD_DIR=dmd
+    make -f posix.mak DMD_DIR=dmd DMD=${dmd.out}/bin/dmd CC=${stdenv.cc}/bin/cc
   '';
 
   buildPhase = ''
diff --git a/pkgs/development/tools/flock/default.nix b/pkgs/development/tools/flock/default.nix
new file mode 100644
index 000000000000..ac145fae7efe
--- /dev/null
+++ b/pkgs/development/tools/flock/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, ronn }:
+
+stdenv.mkDerivation rec {
+  pname = "flock";
+  name = "${pname}-${version}";
+  version = "0.2.3";
+
+  src = fetchFromGitHub {
+    owner = "discoteq";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1vdq22zhdfi7wwndsd6s7fwmz02fsn0x04d7asq4hslk7bjxjjzn";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ ronn ];
+
+  meta = with lib; {
+    description = "Cross-platform version of flock(1)";
+    maintainers = [ maintainers.matthewbauer ];
+    platforms = platforms.all;
+    license = licenses.isc;
+  };
+}
diff --git a/pkgs/development/tools/gnome-desktop-testing/default.nix b/pkgs/development/tools/gnome-desktop-testing/default.nix
new file mode 100644
index 000000000000..ff03897edb29
--- /dev/null
+++ b/pkgs/development/tools/gnome-desktop-testing/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, glib, autoreconfHook, pkgconfig, libgsystem, fetchgit }:
+
+stdenv.mkDerivation rec {
+  version = "2016.1";
+  name = "gnome-desktop-testing-${version}";
+
+  src = fetchgit {
+    url = https://git.gnome.org/browse/gnome-desktop-testing;
+    rev = "v${version}";
+    sha256 = "18qhmsab6jc01qrfzjx8m4799gbs72c4jg830mp0p865rcbl68dc";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  buildInputs = [ glib libgsystem ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "GNOME OSTree testing code";
+    homepage = https://live.gnome.org/Initiatives/GnomeGoals/InstalledTests;
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.jtojnar ];
+  };
+}
diff --git a/pkgs/development/tools/go-outline/default.nix b/pkgs/development/tools/go-outline/default.nix
new file mode 100644
index 000000000000..fe159c85c3d6
--- /dev/null
+++ b/pkgs/development/tools/go-outline/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "go-outline-${version}";
+  version = "unstable-2017-08-04";
+  rev = "9e9d089bb61a5ce4f8e0c8d8dc5b4e41b0e02a48";
+
+  goPackagePath = "github.com/ramya-rao-a/go-outline";
+  goDeps = ./deps.nix;
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "ramya-rao-a";
+    repo = "go-outline";
+    sha256 = "0kbkv4d6q9w0d41m00sqdm10l0sg56mv8y6rmidqs152mm2w13x0";
+  };
+
+  meta = {
+    description = "Utility to extract JSON representation of declarations from a Go source file.";
+    homepage = https://github.com/ramya-rao-a/go-outline;
+    maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/tools/go-outline/deps.nix b/pkgs/development/tools/go-outline/deps.nix
new file mode 100644
index 000000000000..6a333b58bec6
--- /dev/null
+++ b/pkgs/development/tools/go-outline/deps.nix
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/tools";
+      rev = "96b5a5404f303f074e6117d832a9873c439508f0";
+      sha256 = "1h6r9xyp1v3w2x8d108vzghn65l6ia2h895irypmrwymfcp30y42";
+    };
+  }
+]
diff --git a/pkgs/development/tools/go-symbols/default.nix b/pkgs/development/tools/go-symbols/default.nix
new file mode 100644
index 000000000000..9a8b592b038d
--- /dev/null
+++ b/pkgs/development/tools/go-symbols/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+  name = "go-symbols-${version}";
+  version = "unstable-2017-02-06";
+  rev = "5a7f75904fb552189036c640d04cd6afef664836";
+
+  goPackagePath = "github.com/acroca/go-symbols";
+  goDeps = ./deps.nix;
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://github.com/acroca/go-symbols";
+    sha256 = "0qh2jjhwwk48gi8yii0z031bah11anxfz81nwflsiww7n426a8bb";
+  };
+
+  meta = {
+    description = "A utility for extracting a JSON representation of the package symbols from a go source tree.";
+    homepage = https://github.com/acroca/go-symbols;
+    maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/tools/go-symbols/deps.nix b/pkgs/development/tools/go-symbols/deps.nix
new file mode 100644
index 000000000000..6a333b58bec6
--- /dev/null
+++ b/pkgs/development/tools/go-symbols/deps.nix
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/tools";
+      rev = "96b5a5404f303f074e6117d832a9873c439508f0";
+      sha256 = "1h6r9xyp1v3w2x8d108vzghn65l6ia2h895irypmrwymfcp30y42";
+    };
+  }
+]
diff --git a/pkgs/development/tools/gomodifytags/default.nix b/pkgs/development/tools/gomodifytags/default.nix
new file mode 100644
index 000000000000..f1452bc12114
--- /dev/null
+++ b/pkgs/development/tools/gomodifytags/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, lib, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+  name = "gomodifytags-${version}";
+  version = "unstable-2017-12-14";
+  rev = "20644152db4fe0ac406d81f3848e8a15f0cdeefa";
+
+  goPackagePath = "github.com/fatih/gomodifytags";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://github.com/fatih/gomodifytags";
+    sha256 = "0k0ly3mmm9zcaxwlzdbvdxr2gn7kvcqzk1bb7blgq7fkkzpp7i1q";
+  };
+
+  meta = {
+    description = "Go tool to modify struct field tags.";
+    homepage = https://github.com/fatih/gomodifytags;
+    maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/tools/gopkgs/default.nix b/pkgs/development/tools/gopkgs/default.nix
new file mode 100644
index 000000000000..298657fe38c5
--- /dev/null
+++ b/pkgs/development/tools/gopkgs/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "gopkgs-${version}";
+  version = "unstable-2017-12-29";
+  rev = "b2ea2ecd37740e6ce0e020317d90c729aab4dc6d";
+
+  goPackagePath = "github.com/uudashr/gopkgs";
+  goDeps = ./deps.nix;
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "uudashr";
+    repo = "gopkgs";
+    sha256 = "1hwzxrf2h8xjbbx6l86mjpjh4csxxsy17zkh8h3qzncyfnsnczzg";
+  };
+
+  meta = {
+    description = "Tool to get list available Go packages.";
+    homepage = https://github.com/uudashr/gopkgs;
+    maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/tools/gopkgs/deps.nix b/pkgs/development/tools/gopkgs/deps.nix
new file mode 100644
index 000000000000..0f72ee3e5e0f
--- /dev/null
+++ b/pkgs/development/tools/gopkgs/deps.nix
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "github.com/MichaelTJones/walk";
+    fetch = {
+      type = "git";
+      url = "https://github.com/MichaelTJones/walk";
+      rev = "4748e29d5718c2df4028a6543edf86fd8cc0f881";
+      sha256 = "03bc3cql3w8cx05xlnzxsff59c6679rcpx4njzk86k00blkkizv7";
+    };
+  }
+]
diff --git a/pkgs/development/tools/gotests/default.nix b/pkgs/development/tools/gotests/default.nix
new file mode 100644
index 000000000000..ccdab780e6cf
--- /dev/null
+++ b/pkgs/development/tools/gotests/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "gotests-${version}";
+  version = "1.5.2";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/cweill/gotests";
+  excludedPackages = "testdata";
+  goDeps = ./deps.nix;
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "cweill";
+    repo = "gotests";
+    sha256 = "0ff2jvpc1xb5jr6dv9izlpfavxaivzirqmdmicpznrqjz0d56pri";
+  };
+
+  meta = {
+    description = "Generate Go tests from your source code.";
+    homepage = https://github.com/cweill/gotests;
+    maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+    license = stdenv.lib.licenses.asl20;
+  };
+}
diff --git a/pkgs/development/tools/gotests/deps.nix b/pkgs/development/tools/gotests/deps.nix
new file mode 100644
index 000000000000..6a333b58bec6
--- /dev/null
+++ b/pkgs/development/tools/gotests/deps.nix
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/tools";
+      rev = "96b5a5404f303f074e6117d832a9873c439508f0";
+      sha256 = "1h6r9xyp1v3w2x8d108vzghn65l6ia2h895irypmrwymfcp30y42";
+    };
+  }
+]
diff --git a/pkgs/development/tools/haskell/lambdabot/default.nix b/pkgs/development/tools/haskell/lambdabot/default.nix
index 7282fb4970ee..edf967f7d110 100644
--- a/pkgs/development/tools/haskell/lambdabot/default.nix
+++ b/pkgs/development/tools/haskell/lambdabot/default.nix
@@ -7,15 +7,13 @@
 , configuration ? "[]"
 }:
 
-# FIXME: fix hoogle search
-
 let allPkgs = pkgs: mueval.defaultPkgs pkgs ++ [ pkgs.lambdabot-trusted ] ++ packages pkgs;
     mueval' = mueval.override {
       inherit haskellPackages;
       packages = allPkgs;
     };
     bins = lib.makeBinPath ([ mueval'
-                              (haskellPackages.ghcWithPackages allPkgs)
+                              (haskellPackages.ghcWithHoogle allPkgs)
                               haskellPackages.unlambda
                               haskellPackages.brainfuck
                             ]
diff --git a/pkgs/development/tools/haskell/multi-ghc-travis/default.nix b/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
index c21d5595708a..a259fd7d76ba 100644
--- a/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
+++ b/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
@@ -6,10 +6,10 @@ mkDerivation {
   pname = "make-travis-yml";
   version = "0";
   src = fetchFromGitHub {
-    owner = "hvr";
-    repo = "multi-ghc-travis";
-    rev = "0d1b4089f6829659149747c9551712d24fd0b124";
-    sha256 = "00dbg8hbncv74c2baskyhg4h0yv8wrz0fnkvw2bzcn0cjrz7xqwr";
+    owner = "haskell-CI";
+    repo = "haskell-ci";
+    rev = "36b2ee58b9fd160d606608832625b2b6c32aec43";
+    sha256 = "16g99jh5bszvfvb7mmyhl95mkf1l3ydyax8d9py91hi3m8r0c2x0";
   };
   isLibrary = true;
   isExecutable = true;
@@ -22,7 +22,7 @@ mkDerivation {
     base bytestring Diff directory filepath tasty tasty-golden
     transformers
   ];
-  homepage = "https://github.com/hvr/multi-ghc-travis";
+  homepage = "https://github.com/haskell-CI/haskell-ci";
   description = "Script generator for Travis-CI";
   license = stdenv.lib.licenses.bsd3;
 }
diff --git a/pkgs/development/tools/hcloud/default.nix b/pkgs/development/tools/hcloud/default.nix
new file mode 100644
index 000000000000..e56502a4ad05
--- /dev/null
+++ b/pkgs/development/tools/hcloud/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "hcloud-${version}";
+  version = "1.3.0";
+  goPackagePath = "github.com/hetznercloud/cli";
+
+  src = fetchFromGitHub {
+    owner = "hetznercloud";
+    repo = "cli";
+    rev = "v${version}";
+    sha256 = "1216qz1kk38vkvfrznjwb65vsbhscqvvrsbp2i6pnf0i85p00pqm";
+  };
+
+  buildFlagsArray = [ "-ldflags=" "-X github.com/hetznercloud/cli.Version=${version}" ];
+
+  meta = {
+    description = "A command-line interface for Hetzner Cloud, a provider for cloud virtual private servers";
+    homepage = https://github.com/hetznercloud/cli;
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.zauberpony ];
+  };
+}
diff --git a/pkgs/development/tools/icestorm/default.nix b/pkgs/development/tools/icestorm/default.nix
index 8b3cd17a7b27..0307027faa2e 100644
--- a/pkgs/development/tools/icestorm/default.nix
+++ b/pkgs/development/tools/icestorm/default.nix
@@ -2,19 +2,24 @@
 
 stdenv.mkDerivation rec {
   name = "icestorm-${version}";
-  version = "2018.02.04";
+  version = "2018.02.14";
 
   src = fetchFromGitHub {
     owner  = "cliffordwolf";
     repo   = "icestorm";
-    rev    = "722790ad3cdb497e1b13cd1b4368d8380371eb37";
-    sha256 = "0l04c6dshhhdcgqg1bdlw215wbn52fsg2fm2cvavhvf64c18lwd1";
+    rev    = "edbf5fce90ff0e71922a54241a1aec914cc3e230";
+    sha256 = "01d6xv5c4x8w8lamc8n3vnqsyn7ykhh1ws7k96d6ij5fs52k94xb";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ python3 libftdi ];
-  preBuild = ''
-    makeFlags="PREFIX=$out $makeFlags"
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  # fix icebox_vlog chipdb path. icestorm issue:
+  #   https://github.com/cliffordwolf/icestorm/issues/125
+  patchPhase = ''
+    substituteInPlace ./icebox/icebox_vlog.py \
+      --replace /usr/local/share "$out/share"
   '';
 
   meta = {
diff --git a/pkgs/development/tools/jid/default.nix b/pkgs/development/tools/jid/default.nix
deleted file mode 100644
index 9c52ac615514..000000000000
--- a/pkgs/development/tools/jid/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-# This file was generated by go2nix.
-{ stdenv, buildGoPackage, fetchFromGitHub, fetchhg, fetchbzr, fetchsvn }:
-
-buildGoPackage rec {
-  name = "jid-${version}";
-  version = "0.7.1";
-  rev = "${version}";
-
-  goPackagePath = "github.com/simeji/jid";
-
-  src = fetchFromGitHub {
-    owner = "simeji";
-    repo = "jid";
-    inherit rev;
-    sha256 = "08snlqqch91w88zysfcavmqsafq93zzpkdjqkq1y7hx516fdaz1w";
-  };
-
-  goDeps = ./deps.nix;
-
-  meta = with stdenv.lib; {
-    description = "Incremental JSON digger";
-    license = licenses.mit;
-    maintainers = [ maintainers.profpatsch ];
-  };
-}
diff --git a/pkgs/development/tools/jid/deps.nix b/pkgs/development/tools/jid/deps.nix
deleted file mode 100644
index c3ec502b2a99..000000000000
--- a/pkgs/development/tools/jid/deps.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-# This file was generated by go2nix.
-[
-  {
-    goPackagePath = "github.com/bitly/go-simplejson";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bitly/go-simplejson";
-      rev = "aabad6e819789e569bd6aabf444c935aa9ba1e44";
-      sha256 = "0n9f9dz1jn1jx86d48569nznpjn9fmq3knn7r65xpy7jhih284jj";
-    };
-  }
-  {
-    goPackagePath = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev = "e8e01ee22a7d4a91b49646e39245fe08e69c7878";
-      sha256 = "1660g29qhshk6zxhpnc0f52m69jdqqdw2ccbkqw9y4kilnripfvl";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev = "d228849504861217f796da67fae4f6e347643f15";
-      sha256 = "0ch5sfcpmqczsh8kjbwpzdw31lacbkfyzvpzh4disnhhydbxjq0d";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev = "30a891c33c7cde7b02a981314b4228ec99380cca";
-      sha256 = "03gsxn89pgkj4jkxm9avnj4f0ckvcskc6fj2lcd98l3akrz50ndg";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "737072b4e32b7a5018b4a7125da8d12de90e8045";
-      sha256 = "09ni8bmj6p2b774bdh6mfcxl03bh5sqk860z03xpb6hv6yfxqkjm";
-    };
-  }
-  {
-    goPackagePath = "github.com/nsf/termbox-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nsf/termbox-go";
-      rev = "abe82ce5fb7a42fbd6784a5ceb71aff977e09ed8";
-      sha256 = "156i8apkga8b3272kjhapyqwspgcfkrr9kpqwc5lii43k4swghpv";
-    };
-  }
-  {
-    goPackagePath = "github.com/nwidger/jsoncolor";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nwidger/jsoncolor";
-      rev = "0192e84d44af834c3a90c8a17bf670483b91ad5a";
-      sha256 = "17mndgd1d233c22bd19xv4v2l2i5k8kz7y6n4n54a9i7fi9d10al";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "248dadf4e9068a0b3e79f02ed0a610d935de5302";
-      sha256 = "03l80r0i9bxl0vz363w62k4a8apzglgbrz6viwym3044sxkl1qks";
-    };
-  }
-]
diff --git a/pkgs/development/tools/librarian-puppet-go/default.nix b/pkgs/development/tools/librarian-puppet-go/default.nix
new file mode 100644
index 000000000000..1e2a421a6702
--- /dev/null
+++ b/pkgs/development/tools/librarian-puppet-go/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+  name = "librarian-puppet-go-${version}";
+  version = "0.3.9";
+
+  goPackagePath = "github.com/tmtk75/librarian-puppet-go";
+
+  src = fetchFromGitHub {
+    owner = "tmtk75";
+    repo = "librarian-puppet-go";
+    rev = "v${version}";
+    sha256 = "19x2hz3b8xkhy2nkyjg6s4qvs55mh84fvjwp157a86dmxwkdf45y";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "librarian-puppet implementation in go.";
+    license = licenses.unfree; # still unspecified https://github.com/tmtk75/librarian-puppet-go/issues/5
+    maintainers = with maintainers; [ womfoo ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/tools/librarian-puppet-go/deps.nix b/pkgs/development/tools/librarian-puppet-go/deps.nix
new file mode 100644
index 000000000000..e5729707d8ab
--- /dev/null
+++ b/pkgs/development/tools/librarian-puppet-go/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/jawher/mow.cli";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jawher/mow.cli";
+      rev = "3ff64ca21987cfa628bd8d1865162b7ccd6107d7";
+      sha256 = "0vws79q4x3c9kjdsin3vw5200sinkxag3bfa0n9k69svsb222bij";
+    };
+  }
+]
diff --git a/pkgs/development/tools/misc/autoconf-archive/default.nix b/pkgs/development/tools/misc/autoconf-archive/default.nix
index 1b19a1caff67..0225a3f81416 100644
--- a/pkgs/development/tools/misc/autoconf-archive/default.nix
+++ b/pkgs/development/tools/misc/autoconf-archive/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "autoconf-archive-${version}";
-  version = "2017.03.21";
+  version = "2017.09.28";
 
   src = fetchurl {
     url = "mirror://gnu/autoconf-archive/autoconf-archive-${version}.tar.xz";
-    sha256 = "0rfpapadka2023qhy8294ca5awxpb8d4904js6kv7piby5ax8siq";
+    sha256 = "00gsh9hkrgg291my98plkrwlcpxkfrpq64pglf18kciqbf2bb7sw";
   };
 
   buildInputs = [ xz ];
diff --git a/pkgs/development/tools/misc/autoconf/default.nix b/pkgs/development/tools/misc/autoconf/default.nix
index 472f437978bf..579dea33df47 100644
--- a/pkgs/development/tools/misc/autoconf/default.nix
+++ b/pkgs/development/tools/misc/autoconf/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4";
   };
 
-  buildInputs = [ m4 perl ];
+  nativeBuildInputs = [ m4 perl ];
+  buildInputs = [ m4 ];
 
   # Work around a known issue in Cygwin.  See
   # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for
diff --git a/pkgs/development/tools/misc/autogen/default.nix b/pkgs/development/tools/misc/autogen/default.nix
index 28034f9d5492..77944297a972 100644
--- a/pkgs/development/tools/misc/autogen/default.nix
+++ b/pkgs/development/tools/misc/autogen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, which, pkgconfig, perl, guile, libxml2 }:
+{ stdenv, buildPackages, fetchurl, which, pkgconfig, texinfo, perl, guile, libxml2 }:
 
 stdenv.mkDerivation rec {
   name = "autogen-${version}";
@@ -11,8 +11,21 @@ stdenv.mkDerivation rec {
 
   outputs = [ "bin" "dev" "lib" "out" "man" "info" ];
 
-  nativeBuildInputs = [ which pkgconfig perl ];
-  buildInputs = [ guile libxml2 ];
+  nativeBuildInputs = [ which pkgconfig perl ]
+    # autogen needs a build autogen when cross-compiling
+    ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      buildPackages.autogen buildPackages.texinfo ];
+  buildInputs = [
+    guile libxml2
+  ];
+
+  configureFlags = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--with-libxml2=${libxml2.dev}"
+    "--with-libxml2-cflags=-I${libxml2.dev}/include/libxml2"
+    # the configure check for regcomp wants to run a host program
+    "libopts_cv_with_libregex=yes"
+    #"MAKEINFO=${buildPackages.texinfo}/bin/makeinfo"
+  ];
 
   postPatch = ''
     # Fix a broken sed expression used for detecting the minor
diff --git a/pkgs/development/tools/misc/binutils/2.30.nix b/pkgs/development/tools/misc/binutils/2.30.nix
new file mode 100644
index 000000000000..830c07330524
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/2.30.nix
@@ -0,0 +1,131 @@
+{ stdenv, buildPackages
+, fetchurl, zlib
+, buildPlatform, hostPlatform, targetPlatform
+, noSysDirs, gold ? true, bison ? null
+}:
+
+let
+  version = "2.30";
+  basename = "binutils-${version}";
+  inherit (stdenv.lib) optional optionals optionalString;
+  # The targetPrefix prepended to binary names to allow multiple binuntils on the
+  # PATH to both be usable.
+  targetPrefix = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-";
+in
+
+stdenv.mkDerivation rec {
+  name = targetPrefix + basename;
+
+  src = fetchurl {
+    url = "mirror://gnu/binutils/${basename}.tar.bz2";
+    sha256 = "028cklfqaab24glva1ks2aqa1zxa6w6xmc8q34zs1sb7h22dxspg";
+  };
+
+  patches = [
+    # Turn on --enable-new-dtags by default to make the linker set
+    # RUNPATH instead of RPATH on binaries.  This is important because
+    # RUNPATH can be overriden using LD_LIBRARY_PATH at runtime.
+    ./new-dtags.patch
+
+    # Since binutils 2.22, DT_NEEDED flags aren't copied for dynamic outputs.
+    # That requires upstream changes for things to work. So we can patch it to
+    # get the old behaviour by now.
+    ./dtneeded.patch
+
+    # Make binutils output deterministic by default.
+    ./deterministic.patch
+
+    # Always add PaX flags section to ELF files.
+    # This is needed, for instance, so that running "ldd" on a binary that is
+    # PaX-marked to disable mprotect doesn't fail with permission denied.
+    ./pt-pax-flags.patch
+
+    # Bfd looks in BINDIR/../lib for some plugins that don't
+    # exist. This is pointless (since users can't install plugins
+    # there) and causes a cycle between the lib and bin outputs, so
+    # get rid of it.
+    ./no-plugins.patch
+
+    # Help bfd choose between elf32-littlearm, elf32-littlearm-symbian, and
+    # elf32-littlearm-vxworks in favor of the first.
+    # https://github.com/NixOS/nixpkgs/pull/30484#issuecomment-345472766
+    ./disambiguate-arm-targets.patch
+
+    # For some reason bfd ld doesn't search DT_RPATH when cross-compiling. It's
+    # not clear why this behavior was decided upon but it has the unfortunate
+    # consequence that the linker will fail to find transitive dependencies of
+    # shared objects when cross-compiling. Consequently, we are forced to
+    # override this behavior, forcing ld to search DT_RPATH even when
+    # cross-compiling.
+    ./always-search-rpath.patch
+  ];
+
+  outputs = [ "out" "info" "man" ];
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = [ bison ];
+  buildInputs = [ zlib ];
+
+  inherit noSysDirs;
+
+  preConfigure = ''
+    # Clear the default library search path.
+    if test "$noSysDirs" = "1"; then
+        echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt
+    fi
+
+    # Use symlinks instead of hard links to save space ("strip" in the
+    # fixup phase strips each hard link separately).
+    for i in binutils/Makefile.in gas/Makefile.in ld/Makefile.in gold/Makefile.in; do
+        sed -i "$i" -e 's|ln |ln -s |'
+    done
+  '';
+
+  # As binutils takes part in the stdenv building, we don't want references
+  # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
+  NIX_CFLAGS_COMPILE = if hostPlatform.isDarwin
+    then "-Wno-string-plus-int -Wno-deprecated-declarations"
+    else "-static-libgcc";
+
+  # TODO(@Ericson2314): Always pass "--target" and always targetPrefix.
+  configurePlatforms =
+    # TODO(@Ericson2314): Figure out what's going wrong with Arm
+    if buildPlatform == hostPlatform && hostPlatform == targetPlatform && targetPlatform.isArm
+    then []
+    else [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
+
+  configureFlags = [
+    "--enable-targets=all" "--enable-64-bit-bfd"
+    "--disable-install-libbfd"
+    "--disable-shared" "--enable-static"
+    "--with-system-zlib"
+
+    "--enable-deterministic-archives"
+    "--disable-werror"
+    "--enable-fix-loongson2f-nop"
+  ] ++ optionals gold [ "--enable-gold" "--enable-plugins" ];
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    inherit targetPrefix version;
+  };
+
+  meta = with stdenv.lib; {
+    description = "Tools for manipulating binaries (linker, assembler, etc.)";
+    longDescription = ''
+      The GNU Binutils are a collection of binary tools.  The main
+      ones are `ld' (the GNU linker) and `as' (the GNU assembler).
+      They also include the BFD (Binary File Descriptor) library,
+      `gprof', `nm', `strip', etc.
+    '';
+    homepage = http://www.gnu.org/software/binutils/;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ericson2314 ];
+    platforms = platforms.unix;
+
+    /* Give binutils a lower priority than gcc-wrapper to prevent a
+       collision due to the ld/as wrappers/symlinks in the latter. */
+    priority = 10;
+  };
+}
diff --git a/pkgs/development/tools/misc/bossa/default.nix b/pkgs/development/tools/misc/bossa/default.nix
index 8035388c5f06..bb81a461188a 100644
--- a/pkgs/development/tools/misc/bossa/default.nix
+++ b/pkgs/development/tools/misc/bossa/default.nix
@@ -14,12 +14,12 @@ let
 
 in
 stdenv.mkDerivation rec {
-  name = "bossa-2014-08-18";
+  name = "bossa-1.8";
 
   src = fetchgit {
     url = https://github.com/shumatech/BOSSA;
-    rev = "0f0a41cb1c3a65e909c5c744d8ae664e896a08ac"; /* arduino branch */
-    sha256 = "0xg79kli1ypw9zyl90mm6vfk909jinmk3lnl8sim6v2yn8shs9cn";
+    rev = "3be622ca0aa6214a2fc51c1ec682c4a58a423d62";
+    sha256 = "19ik86qbffcb04cgmi4mnascbkck4ynfj87ha65qdk6fmp5q35vm";
   };
 
   patches = [ ./bossa-no-applet-build.patch ];
diff --git a/pkgs/development/tools/misc/fswatch/default.nix b/pkgs/development/tools/misc/fswatch/default.nix
index cdddad5155ff..2b26383ed310 100644
--- a/pkgs/development/tools/misc/fswatch/default.nix
+++ b/pkgs/development/tools/misc/fswatch/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   name = "fswatch-${version}";
-  version = "1.9.3";
+  version = "1.11.2";
 
   src = fetchFromGitHub {
     owner = "emcrisostomo";
     repo = "fswatch";
     rev = version;
-    sha256 = "1g329aapdvbzhr39wyh295shpfq5f0nlzsqkjnr8l6zzak7f4yrg";
+    sha256 = "05vgpd1fx9fy3vnnmq5gz236avgva82axix127xy98gaxrac52vq";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/tools/misc/lsof/default.nix b/pkgs/development/tools/misc/lsof/default.nix
index aa6bd003ed3f..224e0aba6ef7 100644
--- a/pkgs/development/tools/misc/lsof/default.nix
+++ b/pkgs/development/tools/misc/lsof/default.nix
@@ -30,6 +30,10 @@ stdenv.mkDerivation rec {
 
   patches = [ ./dfile.patch ];
 
+  postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+    substituteInPlace dialects/linux/dlsof.h --replace "defined(__UCLIBC__)" 1
+  '';
+
   # Stop build scripts from searching global include paths
   LSOF_INCLUDE = "${stdenv.cc.libc}/include";
   configurePhase = "LINUX_CONF_CC=$CC_FOR_BUILD LSOF_CC=$CC LSOF_AR=\"$AR cr\" LSOF_RANLIB=$RANLIB ./Configure -n ${dialect}";
diff --git a/pkgs/development/tools/misc/lttng-ust/default.nix b/pkgs/development/tools/misc/lttng-ust/default.nix
index 827ddedaee32..bfdebec154ad 100644
--- a/pkgs/development/tools/misc/lttng-ust/default.nix
+++ b/pkgs/development/tools/misc/lttng-ust/default.nix
@@ -20,11 +20,13 @@ stdenv.mkDerivation rec {
     sha256 = "1avx4p71g9m3zvynhhhysxnpkqyhhlv42xiv9502bvp3nwfkgnqs";
   };
 
-  buildInputs = [ liburcu python ];
+  buildInputs = [ python ];
 
   preConfigure = ''
     patchShebangs .
   '';
+  
+  propagatedBuildInputs = [ liburcu ];
 
   meta = with stdenv.lib; {
     description = "LTTng Userspace Tracer libraries";
diff --git a/pkgs/development/tools/misc/openocd/default.nix b/pkgs/development/tools/misc/openocd/default.nix
index 2ab0dbd1b5f5..73c5b7623184 100644
--- a/pkgs/development/tools/misc/openocd/default.nix
+++ b/pkgs/development/tools/misc/openocd/default.nix
@@ -25,6 +25,12 @@ stdenv.mkDerivation rec {
     "--enable-remote-bitbang"
   ];
 
+  NIX_CFLAGS_COMPILE = [
+    "-Wno-implicit-fallthrough"
+    "-Wno-format-truncation"
+    "-Wno-format-overflow"
+  ];
+
   postInstall = ''
     mkdir -p "$out/etc/udev/rules.d"
     rules="$out/share/openocd/contrib/60-openocd.rules"
diff --git a/pkgs/development/tools/misc/patchelf/unstable.nix b/pkgs/development/tools/misc/patchelf/unstable.nix
index 626478798658..de68a4066d7d 100644
--- a/pkgs/development/tools/misc/patchelf/unstable.nix
+++ b/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -10,6 +10,12 @@ stdenv.mkDerivation rec {
     sha256 = "1f1s8q3as3nrhcc1a8qc2z7imm644jfz44msn9sfv4mdynp2m2yb";
   };
 
+  # Drop test that fails on musl (?)
+  postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+    substituteInPlace tests/Makefile.am \
+      --replace "set-rpath-library.sh" ""
+  '';
+
   setupHook = [ ./setup-hook.sh ];
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 4c02b4daf1ef..e5f298a1cabc 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -2,17 +2,19 @@
 
 stdenv.mkDerivation rec {
   name = "strace-${version}";
-  version = "4.20";
+  version = "4.21";
 
   src = fetchurl {
     url = "mirror://sourceforge/strace/${name}.tar.xz";
-    sha256 = "08y5b07vb8jc7ak5xc3x2kx1ly6xiwv1gnppcqjs81kks66i9wsv";
+    sha256 = "1dvrwi6v9j6b9j6852zzlc61hxgiciadi1xsl89wzbzqlkxnahbd";
   };
 
   nativeBuildInputs = [ perl ];
 
   buildInputs = [ libunwind ]; # support -k
 
+  configureFlags = stdenv.lib.optional stdenv.hostPlatform.isAarch64 "--enable-mpers=check";
+
   meta = with stdenv.lib; {
     homepage = http://strace.sourceforge.net/;
     description = "A system call tracer for Linux";
diff --git a/pkgs/development/tools/misc/uhd/default.nix b/pkgs/development/tools/misc/uhd/default.nix
index 8212eccc6d13..78195e994c94 100644
--- a/pkgs/development/tools/misc/uhd/default.nix
+++ b/pkgs/development/tools/misc/uhd/default.nix
@@ -7,18 +7,29 @@
 #   SUBSYSTEMS=="usb", ATTRS{idVendor}=="fffe", ATTRS{idProduct}=="0002", MODE:="0666"
 #   SUBSYSTEMS=="usb", ATTRS{idVendor}=="2500", ATTRS{idProduct}=="0002", MODE:="0666"
 
-stdenv.mkDerivation rec {
-  name = "uhd-${version}";
-  version = "3.10.2.0";
+let
+  uhdVer = "003_010_003_000";
+  ImgVer = stdenv.lib.replaceStrings ["_"] ["."] uhdVer;
 
   # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
   # and xxx.yyy.zzz. Hrmpf...
+  version = "3.10.3.0";
+
+  # Firmware images are downloaded (pre-built) from:
+  # http://files.ettus.com/binaries/images/
+  uhdImagesSrc = fetchurl {
+    url = "http://files.ettus.com/binaries/images/uhd-images_${ImgVer}-release.tar.gz";
+    sha256 = "198awvw6zsh19ydgx5qry5yc6yahdval9wjrsqbyj51pnr6s5qvy";
+  };
+
+in stdenv.mkDerivation {
+  name = "uhd-${version}";
 
   src = fetchFromGitHub {
     owner = "EttusResearch";
     repo = "uhd";
-    rev = "release_003_010_002_000";
-    sha256 = "0g6f4amw7h0vr6faa1nc1zs3bc645binza0zqqx5cwgfxybv8cfy";
+    rev = "release_${uhdVer}";
+    sha256 = "1aj8qizbyz4shwawj3qlhl6pyyda59hhgm9cwrj7s5kfdi4vdlc3";
   };
 
   enableParallelBuilding = true;
@@ -31,13 +42,6 @@ stdenv.mkDerivation rec {
   # Build only the host software
   preConfigure = "cd host";
 
-  # Firmware images are downloaded (pre-built)
-  uhdImagesName = "uhd-images_003.007.003-release";
-  uhdImagesSrc = fetchurl {
-    url = "http://files.ettus.com/binaries/maint_images/archive/${uhdImagesName}.tar.gz";
-    sha256 = "1pv5c5902041494z0jfw623ca29pvylrw5klybbhklvn5wwlr6cv";
-  };
-
   postPhases = [ "installFirmware" ];
 
   installFirmware = ''
diff --git a/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix b/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
index 9f318afc67d7..84365889638c 100644
--- a/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
+++ b/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "http://pkgs.fedoraproject.org/repo/pkgs/ocaml-omake/${pname}-${version}.tar.gz/fe39a476ef4e33b7ba2ca77a6bcaded2/${pname}-${version}.tar.gz";
+    url = "http://src.fedoraproject.org/repo/pkgs/ocaml-omake/${pname}-${version}.tar.gz/fe39a476ef4e33b7ba2ca77a6bcaded2/${pname}-${version}.tar.gz";
     sha256 = "1sas02pbj56m7wi5vf3vqrrpr4ynxymw2a8ybvfj2dkjf7q9ii13";
   };
   patchFlags = "-p0";
diff --git a/pkgs/development/tools/profiling/heaptrack/default.nix b/pkgs/development/tools/profiling/heaptrack/default.nix
index e97ff61a0dc0..f5f9a15dd00a 100644
--- a/pkgs/development/tools/profiling/heaptrack/default.nix
+++ b/pkgs/development/tools/profiling/heaptrack/default.nix
@@ -1,24 +1,24 @@
 {
   stdenv, fetchFromGitHub, cmake, extra-cmake-modules,
-  zlib, boost162, libunwind, elfutils, sparsehash,
-  qtbase, kio, kitemmodels, threadweaver, kconfigwidgets, kcoreaddons,
+  zlib, boost, libunwind, elfutils, sparsehash,
+  qtbase, kio, kitemmodels, threadweaver, kconfigwidgets, kcoreaddons, kdiagram
 }:
 
 stdenv.mkDerivation rec {
   name = "heaptrack-${version}";
-  version = "2017-10-30";
+  version = "2018-01-28";
 
   src = fetchFromGitHub {
     owner = "KDE";
     repo = "heaptrack";
-    rev = "2bf49bc4fed144e004a9cabd40580a0f0889758f";
-    sha256 = "0sqxk5cc8r2vsj5k2dj9jkd1f2x2yj3mxgsp65g7ls01bgga0i4d";
+    rev = "a4534d52788ab9814efca1232d402b2eb319342c";
+    sha256 = "00xfv51kavvcmwgfmcixx0k5vhd06gkj5q0mm8rwxiw6215xp41a";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
   buildInputs = [
-    zlib boost162 libunwind elfutils sparsehash
-    qtbase kio kitemmodels threadweaver kconfigwidgets kcoreaddons
+    zlib boost libunwind elfutils sparsehash
+    qtbase kio kitemmodels threadweaver kconfigwidgets kcoreaddons kdiagram
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/profiling/systemtap/default.nix b/pkgs/development/tools/profiling/systemtap/default.nix
index b397f02665bc..7b313f301413 100644
--- a/pkgs/development/tools/profiling/systemtap/default.nix
+++ b/pkgs/development/tools/profiling/systemtap/default.nix
@@ -1,5 +1,5 @@
 { fetchgit, pkgconfig, gettext, runCommand, makeWrapper
-, elfutils, kernel, gnumake, python2, pythonPackages
+, elfutils, kernel, gnumake, python2, python2Packages
 }:
 
 let
@@ -17,7 +17,7 @@ let
     name = "systemtap-${version}";
     src = fetchgit { inherit url rev sha256; };
   nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ elfutils gettext python2 pythonPackages.setuptools ];
+    buildInputs = [ elfutils gettext python2 python2Packages.setuptools ];
     # FIXME: Workaround for bug in kbuild, where quoted -I"/foo" flags would get mangled in out-of-tree kbuild dirs
     postPatch = ''
       substituteInPlace buildrun.cxx --replace \
@@ -39,6 +39,8 @@ let
     done
   '';
 
+  pypkgs = with python2Packages; makePythonPath [ pyparsing ];
+
 in runCommand "systemtap-${kernel.version}-${version}" {
   inherit stapBuild kernelBuildDir;
   buildInputs = [ makeWrapper ];
@@ -54,8 +56,10 @@ in runCommand "systemtap-${kernel.version}-${version}" {
   for bin in $stapBuild/bin/*; do # hello emacs */
     ln -s $bin $out/bin
   done
-  rm $out/bin/stap
+  rm $out/bin/stap $out/bin/dtrace
   makeWrapper $stapBuild/bin/stap $out/bin/stap \
     --add-flags "-r $kernelBuildDir" \
     --prefix PATH : ${lib.makeBinPath [ stdenv.cc.cc stdenv.cc.bintools elfutils gnumake ]}
+  makeWrapper $stapBuild/bin/dtrace $out/bin/dtrace \
+    --prefix PYTHONPATH : ${pypkgs}
 ''
diff --git a/pkgs/development/tools/redis-dump/default.nix b/pkgs/development/tools/redis-dump/default.nix
index 054517ea547c..88c975b57352 100644
--- a/pkgs/development/tools/redis-dump/default.nix
+++ b/pkgs/development/tools/redis-dump/default.nix
@@ -9,6 +9,7 @@ bundlerEnv {
   buildInputs = [ perl autoconf ];
 
   meta = with lib; {
+    broken = true; # needs ruby 2.0
     description = "Backup and restore your Redis data to and from JSON";
     homepage    = http://delanotes.com/redis-dump/;
     license     = licenses.mit;
diff --git a/pkgs/development/tools/reflex/default.nix b/pkgs/development/tools/reflex/default.nix
new file mode 100644
index 000000000000..3e69b4ffa073
--- /dev/null
+++ b/pkgs/development/tools/reflex/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+
+buildGoPackage rec {
+  name = "reflex-${version}";
+  version = "0.2.0";
+
+  goPackagePath = "github.com/cespare/reflex";
+
+  src = fetchFromGitHub {
+    owner = "cespare";
+    repo = "reflex";
+    rev = "v${version}";
+    sha256 = "0ccwjmf8rjh03hpbmfiy70ai9dhgvb5vp7albffq0cmv2sl69dqr";
+  };
+
+  meta = with lib; {
+    description = "A small tool to watch a directory and rerun a command when certain files change";
+    homepage = https://github.com/cespare/reflex;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ nicknovitski ];
+  };
+}
diff --git a/pkgs/development/tools/rhc/default.nix b/pkgs/development/tools/rhc/default.nix
index 634ca28aaf13..46665e8b47ec 100644
--- a/pkgs/development/tools/rhc/default.nix
+++ b/pkgs/development/tools/rhc/default.nix
@@ -1,4 +1,4 @@
-{ lib, bundlerEnv, ruby_2_2, stdenv, makeWrapper }:
+{ lib, bundlerEnv, ruby, stdenv, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "rhc-1.38.7";
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   env = bundlerEnv {
     name = "rhc-1.38.7-gems";
 
-    ruby = ruby_2_2;
+    inherit ruby;
 
     gemdir = ./.;
   };
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    broken = true; # requires ruby 2.2
     homepage = https://github.com/openshift/rhc;
     description = "OpenShift client tools";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/rust/racerd/default.nix b/pkgs/development/tools/rust/racerd/default.nix
index f3cb4e789502..058185acdbe4 100644
--- a/pkgs/development/tools/rust/racerd/default.nix
+++ b/pkgs/development/tools/rust/racerd/default.nix
@@ -4,17 +4,17 @@ with rustPlatform;
 
 buildRustPackage rec {
   name = "racerd-${version}";
-  version = "2017-02-17";
+  version = "2017-09-15";
   src = fetchFromGitHub {
     owner = "jwilm";
     repo = "racerd";
-    rev = "e3f3ff010fce2c67195750d9a6a669ffb3c2ac5f";
-    sha256 = "125pmbkjnjh83xwikcwfbb8g150nldz7wh0ly1gv9kl1b521dydk";
+    rev = "29cd4c6fd2a9301e49931c2e065b2e10c4b587e4";
+    sha256 = "0knz881mjhd8q2i8ydggaa7lfpiqy11wjmnv5p80n1d8zca6yb7z";
   };
 
   doCheck = false;
 
-  cargoSha256 = "1h7hm7vkk1grah6pn5ydfi5pzc2kd48lh2kxim5jlvrxhd2dingg";
+  cargoSha256 = "00gxj98zdkbrc5cxd4w5hk7iwv9a1kwa535hhspx9xd02r4d8rzl";
 
   buildInputs = [ makeWrapper ];
 
diff --git a/pkgs/development/tools/rust/rustup/default.nix b/pkgs/development/tools/rust/rustup/default.nix
index 6a2d5758f1fb..65a4a05633c0 100644
--- a/pkgs/development/tools/rust/rustup/default.nix
+++ b/pkgs/development/tools/rust/rustup/default.nix
@@ -4,15 +4,15 @@
 
 rustPlatform.buildRustPackage rec {
   name = "rustup-${version}";
-  version = "2017-10-29";
+  version = "1.11.0";
 
-  cargoSha256 = "1xwxv8y9xjgdmm92ldrn9m9fml2zb5h7qqm7dhw63j6psb3ajqrw";
+  cargoSha256 = "1r9mnj3x9sn16hi1r09gl5q0cnsa2g6kbjw2g115858i2a9k6hkr";
 
   src = fetchFromGitHub {
     owner = "rust-lang-nursery";
     repo = "rustup.rs";
-    rev = "13c8092507bf646f3ef6a621fe2c5a68212e800f";
-    sha256 = "1qd01rjk9qpfzgqs35f5nxrcf00kmf76zwmgj3yzdig9zymjwndg";
+    rev = version;
+    sha256 = "05rbgkz4fk6c1x6bpmpx108bg2qcrf6vv3yfz378s7bmr3l319iz";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -35,23 +35,23 @@ rustPlatform.buildRustPackage rec {
   postInstall = ''
     pushd $out/bin
     mv rustup-init rustup
-    for link in cargo rustc rustdoc rust-gdb rust-lldb; do
+    for link in cargo rustc rustdoc rust-gdb rust-lldb rls rustfmt cargo-fmt; do
       ln -s rustup $link
     done
     popd
 
     # tries to create .rustup
     export HOME=$(mktemp -d)
-    mkdir -p "$out/share/"{bash-completion/completions,fish/completions,zsh/site-functions}
+    mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
     $out/bin/rustup completions bash > "$out/share/bash-completion/completions/rustup"
-    $out/bin/rustup completions fish > "$out/share/fish/completions/rustup.fish"
+    $out/bin/rustup completions fish > "$out/share/fish/vendor_completions.d/rustup.fish"
     $out/bin/rustup completions zsh >  "$out/share/zsh/site-functions/_rustup"
   '';
 
   meta = with stdenv.lib; {
     description = "The Rust toolchain installer";
     homepage = https://www.rustup.rs/;
-    license = licenses.mit;
+    license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.mic92 ];
   };
 }
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index 61f5f93ebfaa..554a5585f150 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -4,19 +4,14 @@
 }:
 let
   allSpecs = {
-    "i686-linux" = {
-      system = "linux32";
-      sha256 = "13fngjg2v0l3vhlmjnffy785ckgk2kbpm7307li75vinkcly91cj";
-    };
-
     "x86_64-linux" = {
       system = "linux64";
-      sha256 = "0x5vnmnw6mws6iw9s0kcm4crx9gfgy0vjjpk1v0wk7jpn6d0bl47";
+      sha256 = "13iyz6579yw4fk9dr4nf2pdj55v1iflj8yf9a4zz7qw5996d5yk7";
     };
 
     "x86_64-darwin" = {
       system = "mac64";
-      sha256 = "09y8ijj75q5a7snzchxinxfq2ad2sw0f30zi0p3hqf1n88y28jq6";
+      sha256 = "11xa31bxhrq0p7kd3j76dihp73abdbmbwdng5454m1wir6yj25f1";
     };
   };
 
@@ -33,7 +28,7 @@ let
 in
 stdenv.mkDerivation rec {
   name = "chromedriver-${version}";
-  version = "2.33";
+  version = "2.35";
 
   src = fetchurl {
     url = "http://chromedriver.storage.googleapis.com/${version}/chromedriver_${spec.system}.zip";
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index 0f720f1f7e32..de0d7fc54de2 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -1,39 +1,38 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub, gpgme, libgpgerror, devicemapper, btrfs-progs, pkgconfig, ostree }:
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, runCommand
+, gpgme, libgpgerror, devicemapper, btrfs-progs, pkgconfig, ostree, libselinux }:
 
 with stdenv.lib;
 
+let
+  version = "0.1.28";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "projectatomic";
+    repo = "skopeo";
+    sha256 = "068nwrr3nr27alravcq1sxyhdd5jjr24213vdgn1dqva3885gbi0";
+  };
+
+  defaultPolicyFile = runCommand "skopeo-default-policy.json" {} "cp ${src}/default-policy.json $out";
+
+in
 buildGoPackage rec {
   name = "skopeo-${version}";
-  version = "0.1.27";
-  rev = "v${version}";
+  inherit src;
 
   goPackagePath = "github.com/projectatomic/skopeo";
   excludedPackages = "integration";
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gpgme libgpgerror devicemapper btrfs-progs ostree ];
+  buildInputs = [ gpgme libgpgerror devicemapper btrfs-progs ostree libselinux ];
 
-  src = fetchFromGitHub {
-    inherit rev;
-    owner = "projectatomic";
-    repo = "skopeo";
-    sha256 = "1xwwzxjczz8qdk1rf0h78qd3vk9mxxb8yi6f8kfqvcdcsvkajd5g";
-  };
-
-  patches = [
-    ./path.patch
-  ];
+  buildFlagsArray = "-ldflags= -X github.com/projectatomic/skopeo/vendor/github.com/containers/image/signature.systemDefaultPolicyPath=${defaultPolicyFile}";
 
   preBuild = ''
     export CGO_CFLAGS="-I${getDev gpgme}/include -I${getDev libgpgerror}/include -I${getDev devicemapper}/include -I${getDev btrfs-progs}/include"
     export CGO_LDFLAGS="-L${getLib gpgme}/lib -L${getLib libgpgerror}/lib -L${getLib devicemapper}/lib"
   '';
 
-  postInstall = ''
-    mkdir $bin/etc
-    cp -v ./go/src/github.com/projectatomic/skopeo/default-policy.json $bin/etc/default-policy.json
-  '';
-
   meta = {
     description = "A command line utility for various operations on container images and image repositories";
     homepage = https://github.com/projectatomic/skopeo;
diff --git a/pkgs/development/tools/skopeo/path.patch b/pkgs/development/tools/skopeo/path.patch
deleted file mode 100644
index fe456b58e548..000000000000
--- a/pkgs/development/tools/skopeo/path.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/cmd/skopeo/main.go b/cmd/skopeo/main.go
-index 50e29b2..7108df5 100644
---- a/cmd/skopeo/main.go
-+++ b/cmd/skopeo/main.go
-@@ -3,6 +3,7 @@ package main
- import (
- 	"fmt"
- 	"os"
-+	"path/filepath"
- 
- 	"github.com/Sirupsen/logrus"
- 	"github.com/containers/image/signature"
-@@ -88,6 +89,11 @@ func getPolicyContext(c *cli.Context) (*signature.PolicyContext, error) {
- 	policyPath := c.GlobalString("policy")
- 	var policy *signature.Policy // This could be cached across calls, if we had an application context.
- 	var err error
-+	var dir string
-+	if policyPath == "" {
-+		dir, err = filepath.Abs(filepath.Dir(os.Args[0]))
-+		policyPath = dir + "/../etc/default-policy.json"
-+	}
- 	if c.GlobalBool("insecure-policy") {
- 		policy = &signature.Policy{Default: []signature.PolicyRequirement{signature.NewPRInsecureAcceptAnything()}}
- 	} else if policyPath == "" {
- 
diff --git a/pkgs/development/tools/yaml2json/default.nix b/pkgs/development/tools/yaml2json/default.nix
new file mode 100644
index 000000000000..1a8d7f13aff5
--- /dev/null
+++ b/pkgs/development/tools/yaml2json/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+
+buildGoPackage rec {
+  name = "yaml2json-${version}";
+  version = "unstable-2017-05-03";
+  goPackagePath = "github.com/bronze1man/yaml2json";
+
+  goDeps = ./deps.nix;
+
+  src = fetchFromGitHub {
+    rev = "ee8196e587313e98831c040c26262693d48c1a0c";
+    owner = "bronze1man";
+    repo = "yaml2json";
+    sha256 = "16a2sqzbam5adbhfvilnpdabzwncs7kgpr0cn4gp09h2imzsprzw";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/bronze1man/yaml2json;
+    description = "Convert yaml to json";
+    license = with licenses; [ mit ];
+    maintainers = [ maintainers.adisbladis ];
+  };
+}
diff --git a/pkgs/development/tools/yaml2json/deps.nix b/pkgs/development/tools/yaml2json/deps.nix
new file mode 100644
index 000000000000..f907520cc872
--- /dev/null
+++ b/pkgs/development/tools/yaml2json/deps.nix
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "d670f9405373e636a5a2765eea47fac0c9bc91a4";
+      sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
+    };
+  }
+]