summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2016-05-30 19:39:34 +0000
committerRobin Gloster <mail@glob.in>2016-05-30 19:39:34 +0000
commit2d382f3d981fc9e4a350badb43736c252415d27c (patch)
tree3d5f7a96aa71be52c86f3c243b23424e319cc286 /pkgs/tools
parent365379857fb561df949fc841e80458e317a1d682 (diff)
parent2661511cdb39bd7612dd5311b46420785fc1eac8 (diff)
downloadnixlib-2d382f3d981fc9e4a350badb43736c252415d27c.tar
nixlib-2d382f3d981fc9e4a350badb43736c252415d27c.tar.gz
nixlib-2d382f3d981fc9e4a350badb43736c252415d27c.tar.bz2
nixlib-2d382f3d981fc9e4a350badb43736c252415d27c.tar.lz
nixlib-2d382f3d981fc9e4a350badb43736c252415d27c.tar.xz
nixlib-2d382f3d981fc9e4a350badb43736c252415d27c.tar.zst
nixlib-2d382f3d981fc9e4a350badb43736c252415d27c.zip
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/primus/lib.nix9
-rw-r--r--pkgs/tools/admin/certbot/default.nix (renamed from pkgs/tools/admin/letsencrypt/default.nix)10
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix27
-rw-r--r--pkgs/tools/admin/simp_le/default.nix2
-rw-r--r--pkgs/tools/archivers/gnutar/default.nix8
-rw-r--r--pkgs/tools/archivers/gnutar/gnutar-1.28-darwin.patch114
-rw-r--r--pkgs/tools/archivers/p7zip/default.nix2
-rw-r--r--pkgs/tools/backup/attic/default.nix2
-rw-r--r--pkgs/tools/backup/bacula/default.nix2
-rw-r--r--pkgs/tools/backup/bareos/default.nix8
-rw-r--r--pkgs/tools/backup/borg/default.nix10
-rw-r--r--pkgs/tools/backup/bup/default.nix41
-rw-r--r--pkgs/tools/backup/duplicity/default.nix4
-rw-r--r--pkgs/tools/backup/mt-st/default.nix23
-rw-r--r--pkgs/tools/backup/mtx/default.nix27
-rw-r--r--pkgs/tools/backup/partimage/default.nix2
-rw-r--r--pkgs/tools/bluetooth/bluez-tools/default.nix2
-rw-r--r--pkgs/tools/filesystems/netatalk/default.nix2
-rw-r--r--pkgs/tools/filesystems/s3backer/default.nix28
-rw-r--r--pkgs/tools/filesystems/xtreemfs/default.nix2
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix2
-rw-r--r--pkgs/tools/graphics/bins/bins_edit-isa.patch20
-rw-r--r--pkgs/tools/graphics/bins/default.nix48
-rw-r--r--pkgs/tools/graphics/bins/hashref.patch13
-rw-r--r--pkgs/tools/graphics/graphviz/2.0.nix13
-rw-r--r--pkgs/tools/graphics/graphviz/2.32.nix6
-rw-r--r--pkgs/tools/graphics/mscgen/default.nix4
-rw-r--r--pkgs/tools/graphics/netpbm/default.nix2
-rw-r--r--pkgs/tools/graphics/unpaper/default.nix1
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-cloudpinyin/default.nix28
-rw-r--r--pkgs/tools/inputmethods/fcitx/fcitx-qt5-ecm.patch29
-rw-r--r--pkgs/tools/inputmethods/fcitx/fcitx-qt5.nix16
-rw-r--r--pkgs/tools/inputmethods/fcitx/wrapper.nix17
-rw-r--r--pkgs/tools/misc/bibtool/default.nix1
-rw-r--r--pkgs/tools/misc/cloc/default.nix28
-rw-r--r--pkgs/tools/misc/dtach/default.nix23
-rw-r--r--pkgs/tools/misc/dtach/fix-CVE-2012-3368.patch49
-rw-r--r--pkgs/tools/misc/fondu/default.nix11
-rw-r--r--pkgs/tools/misc/fzy/default.nix22
-rw-r--r--pkgs/tools/misc/hakuneko/default.nix25
-rw-r--r--pkgs/tools/misc/heimdall/default.nix6
-rw-r--r--pkgs/tools/misc/kde-gtk-config/default.nix2
-rw-r--r--pkgs/tools/misc/man-db/default.nix25
-rw-r--r--pkgs/tools/misc/most/default.nix2
-rw-r--r--pkgs/tools/misc/multitail/default.nix1
-rw-r--r--pkgs/tools/misc/pk2cmd/default.nix2
-rw-r--r--pkgs/tools/misc/rrdtool/default.nix8
-rw-r--r--pkgs/tools/misc/stow/default.nix13
-rw-r--r--pkgs/tools/misc/stow/precedence-issue.patch15
-rw-r--r--pkgs/tools/misc/tlp/default.nix38
-rw-r--r--pkgs/tools/misc/tmux/default.nix8
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix1
-rw-r--r--pkgs/tools/misc/ttf2pt1/default.nix2
-rw-r--r--pkgs/tools/misc/vdirsyncer/default.nix7
-rw-r--r--pkgs/tools/misc/xflux/gui.nix47
-rw-r--r--pkgs/tools/misc/xflux/setup.patch28
-rw-r--r--pkgs/tools/misc/yank/default.nix6
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/misc/zsh-navigation-tools/default.nix4
-rw-r--r--pkgs/tools/networking/curl/7.15.nix4
-rw-r--r--pkgs/tools/networking/curl/default.nix6
-rw-r--r--pkgs/tools/networking/http-prompt/default.nix30
-rw-r--r--pkgs/tools/networking/keepalived/default.nix2
-rw-r--r--pkgs/tools/networking/libreswan/default.nix10
-rw-r--r--pkgs/tools/networking/linkchecker/add-no-robots-flag.patch60
-rw-r--r--pkgs/tools/networking/linkchecker/default.nix30
-rw-r--r--pkgs/tools/networking/mailsend/default.nix10
-rw-r--r--pkgs/tools/networking/network-manager/default.nix2
-rw-r--r--pkgs/tools/networking/olsrd/default.nix (renamed from pkgs/tools/networking/oslrd/default.nix)0
-rw-r--r--pkgs/tools/networking/openvpn/default.nix6
-rw-r--r--pkgs/tools/networking/sstp/default.nix2
-rw-r--r--pkgs/tools/networking/strongswan/default.nix5
-rw-r--r--pkgs/tools/networking/stunnel/default.nix2
-rw-r--r--pkgs/tools/networking/toxvpn/default.nix37
-rw-r--r--pkgs/tools/networking/unbound/default.nix2
-rw-r--r--pkgs/tools/networking/uwimap/default.nix4
-rw-r--r--pkgs/tools/networking/vtun/default.nix4
-rw-r--r--pkgs/tools/security/clamav/default.nix12
-rw-r--r--pkgs/tools/security/duo-unix/default.nix2
-rw-r--r--pkgs/tools/security/ecryptfs/default.nix4
-rw-r--r--pkgs/tools/security/eid-mw/default.nix4
-rw-r--r--pkgs/tools/security/john/default.nix4
-rw-r--r--pkgs/tools/security/modsecurity/default.nix10
-rw-r--r--pkgs/tools/security/prey/default.nix2
-rw-r--r--pkgs/tools/system/facter/default.nix13
-rw-r--r--pkgs/tools/system/freeipmi/default.nix4
-rw-r--r--pkgs/tools/system/monit/default.nix2
-rw-r--r--pkgs/tools/system/pciutils/default.nix4
-rw-r--r--pkgs/tools/text/gawk/default.nix2
-rw-r--r--pkgs/tools/text/platinum-searcher/default.nix70
-rw-r--r--pkgs/tools/text/xml/xml2/default.nix1
-rw-r--r--pkgs/tools/text/xml/xmlstarlet/default.nix2
-rw-r--r--pkgs/tools/typesetting/asciidoc/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/dblatex/default.nix2
94 files changed, 834 insertions, 424 deletions
diff --git a/pkgs/tools/X11/primus/lib.nix b/pkgs/tools/X11/primus/lib.nix
index ce8059331092..2ecf91edba56 100644
--- a/pkgs/tools/X11/primus/lib.nix
+++ b/pkgs/tools/X11/primus/lib.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit
+{ stdenv, fetchFromGitHub
 , xlibsWrapper, mesa
 , nvidia_x11 ? null
 , libX11
@@ -7,10 +7,11 @@
 stdenv.mkDerivation {
   name = "primus-lib-20151204";
 
-  src = fetchgit {
-    url = git://github.com/amonakov/primus.git;
+  src = fetchFromGitHub {
+    owner = "amonakov";
+    repo = "primus";
     rev = "d1afbf6fce2778c0751eddf19db9882e04f18bfd";
-    sha256 = "8f095b5e2030cdb155a42a49873832843c1e4dc3087a6fb94d198de982609923";
+    sha256 = "118jm57ccawskb8vjq3a9dpa2gh72nxzvx2zk7zknpy0arrdznj1";
   };
 
   buildInputs = [ libX11 mesa ];
diff --git a/pkgs/tools/admin/letsencrypt/default.nix b/pkgs/tools/admin/certbot/default.nix
index 90c97eb6373e..80805666a3a4 100644
--- a/pkgs/tools/admin/letsencrypt/default.nix
+++ b/pkgs/tools/admin/certbot/default.nix
@@ -1,14 +1,14 @@
 { stdenv, pythonPackages, fetchFromGitHub, dialog }:
 
 pythonPackages.buildPythonApplication rec {
-  name = "letsencrypt-${version}";
-  version = "0.5.0";
+  name = "certbot-${version}";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "certbot";
     repo = "certbot";
     rev = "v${version}";
-    sha256 = "0x098cdyfgqvh7x5d3sz56qjpjyg5b4fl82086sm43d8mbz0h5rm";
+    sha256 = "1x0prlldkgg0hxmya4m5h3k3c872wr0jylmzpr3m04mk339yiw0c";
   };
 
   propagatedBuildInputs = with pythonPackages; [
@@ -29,8 +29,8 @@ pythonPackages.buildPythonApplication rec {
   buildInputs = [ dialog ] ++ (with pythonPackages; [ nose mock gnureadline ]);
 
   patchPhase = ''
-    substituteInPlace letsencrypt/notify.py --replace "/usr/sbin/sendmail" "/var/setuid-wrappers/sendmail"
-    substituteInPlace letsencrypt/le_util.py --replace "sw_vers" "/usr/bin/sw_vers"
+    substituteInPlace certbot/notify.py --replace "/usr/sbin/sendmail" "/var/setuid-wrappers/sendmail"
+    substituteInPlace certbot/le_util.py --replace "sw_vers" "/usr/bin/sw_vers"
   '';
 
   postInstall = ''
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index 5d314b732021..fa3655fb21cf 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -3,13 +3,20 @@
 with python27Packages;
 
 stdenv.mkDerivation rec {
-  version = "106.0.0";
   name = "google-cloud-sdk-${version}";
-
-  src = fetchurl {
-    url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-106.0.0-linux-x86_64.tar.gz";
-    sha256 = "00jhpx32sfxcgl404plmb8122bs0ijl2rv25h17mnjn067nhz7nn";
-  };
+  version = "109.0.0";
+
+  src =
+    if stdenv.system == "i686-linux" then
+      fetchurl {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${name}-linux-x86.tar.gz";
+        sha256 = "0jcg4pzqmkmpcp86rdi9hcqvvm61rqvl8spl2r1n4658w48h61x7";
+      }
+    else
+      fetchurl {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${name}-linux-x86_64.tar.gz";
+        sha256 = "1ii2ivh2na9933fhqrzsicihs6mpr10jgmml1fkdjmhmmp92zshd";
+      };
 
   buildInputs = [python27 makeWrapper];
 
@@ -40,14 +47,14 @@ stdenv.mkDerivation rec {
     rm -r $out/google-cloud-sdk/platform/gsutil/third_party/crcmod
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Tools for the google cloud platform";
     longDescription = "The Google Cloud SDK. This package has the programs: gcloud, gsutil, and bq";
     version = version;
     # This package contains vendored dependencies. All have free licenses.
-    license = stdenv.lib.licenses.free;
+    license = licenses.free;
     homepage = "https://cloud.google.com/sdk/";
-    maintainers = with stdenv.lib.maintainers; [stephenmw];
-    platforms = stdenv.lib.platforms.all;
+    maintainers = with maintainers; [stephenmw zimbatm];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/admin/simp_le/default.nix b/pkgs/tools/admin/simp_le/default.nix
index fdb531736d05..8925610bebfb 100644
--- a/pkgs/tools/admin/simp_le/default.nix
+++ b/pkgs/tools/admin/simp_le/default.nix
@@ -10,7 +10,7 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "0x8gqazn09m30bn1l7xnf8snhbb7yz7sb09imciqmm4jqdvn797z";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ acme ];
+  propagatedBuildInputs = with pythonPackages; [ acme_0_5_0 ];
 
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix
index 36d3ebd9816f..16660fea3e72 100644
--- a/pkgs/tools/archivers/gnutar/default.nix
+++ b/pkgs/tools/archivers/gnutar/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   name = "gnutar-${version}";
-  version = "1.28";
+  version = "1.29";
 
   src = fetchurl {
-    url = "mirror://gnu/tar/tar-${version}.tar.bz2";
-    sha256 = "0qkm2k9w8z91hwj8rffpjj9v1vhpiriwz4cdj36k9vrgc3hbzr30";
+    url = "mirror://gnu/tar/tar-${version}.tar.xz";
+    sha256 = "097hx7sbzp8qirl4m930lw84kn0wmxhmq7v1qpra3mrg0b8cyba0";
   };
 
-  patches = stdenv.lib.optional stdenv.isDarwin ./gnutar-1.28-darwin.patch;
+  patches = [ ]; # FIXME: remove on another stdenv rebuild
 
   # avoid retaining reference to CF during stdenv bootstrap
   configureFlags = stdenv.lib.optionals stdenv.isDarwin [
diff --git a/pkgs/tools/archivers/gnutar/gnutar-1.28-darwin.patch b/pkgs/tools/archivers/gnutar/gnutar-1.28-darwin.patch
deleted file mode 100644
index cab0e4406d8e..000000000000
--- a/pkgs/tools/archivers/gnutar/gnutar-1.28-darwin.patch
+++ /dev/null
@@ -1,114 +0,0 @@
->From 7d1d3d38cb66b02c062de77847e3c0ecd842366c Mon Sep 17 00:00:00 2001
-From: Pavel Raiskup <address@hidden>
-Date: Mon, 4 Aug 2014 13:19:49 +0200
-Subject: [PATCH] xattrs: fix bug in configure
-
-Be careful to define HAVE_XATTRS when not all needed xattr-related
-functions are properly defined either in libc or libattr.
-
-Reported independently by Denis Excoffier and Dominyk Tille.
-
-* acinclude.m4 (TAR_HEADERS_ATTR_XATTR_H): Check for each xattr
-function separately.  Don't AC_CHECK_LIB (LIBS is filled by
-AC_SEARCH_LIBS when necessary).
-* lib/xattr-at.c: Do not build when HAVE_XATTRS is not defined.
-* src/Makefile.am: The LDADD -lattr was redundant.
----
- acinclude.m4    | 42 ++++++++++++++----------------------------
- lib/xattr-at.c  |  7 +++++++
- src/Makefile.am |  4 ----
- 3 files changed, 21 insertions(+), 32 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 3b28b3b..db0bbc7 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -40,37 +40,23 @@ AC_DEFUN([TAR_HEADERS_ATTR_XATTR_H],
-   # First check for <sys/xattr.h>
-   AC_CHECK_HEADERS([sys/xattr.h])
-   AM_CONDITIONAL([TAR_COND_XATTR_H],[test "$ac_cv_header_sys_xattr_h" = yes])
--  AM_CONDITIONAL([TAR_LIB_ATTR],[false])
--  if test "$ac_cv_header_sys_xattr_h" = yes; then
--    AC_CHECK_FUNCS(getxattr  fgetxattr  lgetxattr \
--                   setxattr  fsetxattr  lsetxattr \
--                   listxattr flistxattr llistxattr,
--        # only when functions are present
--        AC_DEFINE([HAVE_SYS_XATTR_H], [1],
--                    [define to 1 if we have <sys/xattr.h> header])
--        if test "$with_xattrs" != no; then
--          AC_DEFINE([HAVE_XATTRS],,[Define when we have working linux xattrs.])
--        fi
--    )
--  fi
--
--  # If <sys/xattr.h> is not found, then check for <attr/xattr.h>
-   if test "$ac_cv_header_sys_xattr_h" != yes; then
-     AC_CHECK_HEADERS([attr/xattr.h])
-     AM_CONDITIONAL([TAR_COND_XATTR_H],[test "$ac_cv_header_attr_xattr_h" = yes])
--    AC_CHECK_LIB([attr],[fgetxattr])
--    AM_CONDITIONAL([TAR_LIB_ATTR],[test "$ac_cv_lib_attr_fgetxattr" = yes])
--    if test "$ac_cv_header_attr_xattr_h" = yes; then
--      AC_CHECK_FUNCS(getxattr  fgetxattr  lgetxattr \
--                     setxattr  fsetxattr  lsetxattr \
--                     listxattr flistxattr llistxattr,
--          # only when functions are present
--          AC_DEFINE([HAVE_ATTR_XATTR_H], [1],
--                      [define to 1 if we have <attr/xattr.h> header])
--          if test "$with_xattrs" != no; then
--            AC_DEFINE([HAVE_XATTRS],,[Define when we have working linux xattrs.])
--          fi
--      )
-+  fi
-+
-+  if test "$with_xattrs" != no; then
-+    for i in getxattr  fgetxattr  lgetxattr \
-+             setxattr  fsetxattr  lsetxattr \
-+             listxattr flistxattr llistxattr
-+    do
-+      AC_SEARCH_LIBS($i, attr)
-+      eval found=\$ac_cv_search_$i
-+      test "$found" = "no" && break
-+    done
-+
-+    if test "$found" != no; then
-+      AC_DEFINE([HAVE_XATTRS],,[Define when we have working linux xattrs.])
-     fi
-   fi
- ])
-diff --git a/lib/xattr-at.c b/lib/xattr-at.c
-index 443ccae..009bde5 100644
---- a/lib/xattr-at.c
-+++ b/lib/xattr-at.c
-@@ -18,6 +18,11 @@
- 
- #include <config.h>
- 
-+/* Temporarily don't build.  We are unable to build on (probably not only)
-+   darwin due to lack of l*xattr callbacks (XATTR_NOFOLLOW is alternative) and
-+   different function definitions. */
-+#ifdef HAVE_XATTRS
-+
- #include "xattr-at.h"
- #include "openat.h"
- 
-@@ -108,3 +113,5 @@
- #undef AT_FUNC_RESULT
- #undef AT_FUNC_POST_FILE_PARAM_DECLS
- #undef AT_FUNC_POST_FILE_ARGS
-+
-+#endif
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 82b2d46..42daaef 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -52,7 +52,3 @@ AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
- LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV)
- 
- tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) $(LIB_SELINUX)
--
--if TAR_LIB_ATTR
--tar_LDADD += -lattr
--endif
--- 
-1.9.3
-
diff --git a/pkgs/tools/archivers/p7zip/default.nix b/pkgs/tools/archivers/p7zip/default.nix
index a0f3bcb0ebb9..63487b460343 100644
--- a/pkgs/tools/archivers/p7zip/default.nix
+++ b/pkgs/tools/archivers/p7zip/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     makeFlagsArray=(DEST_HOME=$out)
     buildFlags=all3
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
-    cp makefile.macosx_64bits makefile.machine
+    cp makefile.macosx_llvm_64bits makefile.machine
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/backup/attic/default.nix b/pkgs/tools/backup/attic/default.nix
index 4f659428c00a..a639dbb2fd29 100644
--- a/pkgs/tools/backup/attic/default.nix
+++ b/pkgs/tools/backup/attic/default.nix
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
     [ cython msgpack openssl acl llfuse ];
 
   preConfigure = ''
-    export ATTIC_OPENSSL_PREFIX="${openssl}"
+    export ATTIC_OPENSSL_PREFIX="${openssl.dev}"
     substituteInPlace setup.py --replace "version=versioneer.get_version()" "version='${version}'"
   '';
 
diff --git a/pkgs/tools/backup/bacula/default.nix b/pkgs/tools/backup/bacula/default.nix
index 8d586e5cb1f3..374122814c50 100644
--- a/pkgs/tools/backup/bacula/default.nix
+++ b/pkgs/tools/backup/bacula/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional (!stdenv.isDarwin) acl;
 
   configureFlags = [ 
-    "--with-sqlite3=${sqlite}" 
+    "--with-sqlite3=${sqlite.dev}"
     "--with-postgresql=${postgresql}"
   ];
 
diff --git a/pkgs/tools/backup/bareos/default.nix b/pkgs/tools/backup/bareos/default.nix
index 5a7c35e460fe..cf44d0e9c26d 100644
--- a/pkgs/tools/backup/bareos/default.nix
+++ b/pkgs/tools/backup/bareos/default.nix
@@ -50,13 +50,13 @@ stdenv.mkDerivation rec {
     "--enable-dynamic-cats-backends"
     "--enable-sql-pooling"
     "--enable-scsi-crypto"
-  ] ++ optionals (readline != null) [ "--disable-conio" "--enable-readline" "--with-readline=${readline}" ]
+  ] ++ optionals (readline != null) [ "--disable-conio" "--enable-readline" "--with-readline=${readline.dev}" ]
     ++ optional (python != null) "--with-python=${python}"
-    ++ optional (openssl != null) "--with-openssl=${openssl}"
-    ++ optional (sqlite != null) "--with-sqlite3=${sqlite}"
+    ++ optional (openssl != null) "--with-openssl=${openssl.dev}"
+    ++ optional (sqlite != null) "--with-sqlite3=${sqlite.dev}"
     ++ optional (postgresql != null) "--with-postgresql=${postgresql}"
     ++ optional (libmysql != null) "--with-mysql=${libmysql}"
-    ++ optional (zlib != null) "--with-zlib=${zlib}"
+    ++ optional (zlib != null) "--with-zlib=${zlib.dev}"
     ++ optional (lzo != null) "--with-lzo=${lzo}"
     ++ optional (jansson != null) "--with-jansson=${jansson}"
     ++ optional (acl != null) "--enable-acl"
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index 95c0c26f30be..a43a678cd7a1 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -2,12 +2,14 @@
 
 python3Packages.buildPythonApplication rec {
   name = "borgbackup-${version}";
-  version = "1.0.2";
+  version = "1.0.3";
   namePrefix = "";
 
   src = fetchurl {
-    url = "mirror://pypi/b/borgbackup/borgbackup-${version}.tar.gz";
-    sha256 = "1myz10pwxnac9z59gw1w3xjhz6ghx03vngpl97ca527pj0r39shi";
+    url = "https://pypi.python.org/packages/"
+      + "c9/c6/1efc338724b054d4d264dfeadfcba11cefa6c3c50f474cec91b8f0c21d3a/"
+      + "${name}.tar.gz";
+    sha256 = "0kzr0xa00yjfxx27aipli67qg5ffj52yrnqhpf3sdy6k5wzwaybs";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -21,7 +23,7 @@ python3Packages.buildPythonApplication rec {
   ]);
 
   preConfigure = ''
-    export BORG_OPENSSL_PREFIX="${openssl}"
+    export BORG_OPENSSL_PREFIX="${openssl.dev}"
     export BORG_LZ4_PREFIX="${lz4}"
   '';
 
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index b4efe9fb441f..b7136c16fb3c 100644
--- a/pkgs/tools/backup/bup/default.nix
+++ b/pkgs/tools/backup/bup/default.nix
@@ -1,5 +1,7 @@
-{ stdenv, fetchzip, fetchurl, python, pyxattr, pylibacl, setuptools
-, fuse, git, perl, pandoc, makeWrapper, par2cmdline, par2Support ? false }:
+{ stdenv, fetchFromGitHub, fetchurl, makeWrapper
+, perl, pandoc, pythonPackages, git
+, par2cmdline ? null, par2Support ? false
+}:
 
 assert par2Support -> par2cmdline != null;
 
@@ -10,27 +12,28 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "bup-${version}";
 
-  src = fetchzip {
-    url = "https://github.com/bup/bup/archive/${version}.tar.gz";
+  src = fetchFromGitHub {
+    repo = "bup";
+    owner = "bup";
+    rev = version;
     sha256 = "0g7b0xl3kg0z6rn81fvzl1xnvva305i7pjih2hm68mcj0adk3v0d";
   };
 
-  buildInputs = [ python git ];
+  buildInputs = [ git pythonPackages.python ];
   nativeBuildInputs = [ pandoc perl makeWrapper ];
 
-  darwin_10_10_patch = fetchurl {
+  patches = optional stdenv.isDarwin (fetchurl {
     url = "https://github.com/bup/bup/commit/75d089e7cdb7a7eb4d69c352f56dad5ad3aa1f97.diff";
     sha256 = "05kp47p30a45ip0fg090vijvzc7ijr0alc3y8kjl6bvv3gliails";
-  };
+    name = "darwin_10_10.patch";
+  });
 
   postPatch = ''
     patchShebangs .
     substituteInPlace Makefile --replace "-Werror" ""
-    substituteInPlace Makefile --replace "./format-subst.pl" "perl ./format-subst.pl"
+    substituteInPlace Makefile --replace "./format-subst.pl" "${perl}/bin/perl ./format-subst.pl"
   '' + optionalString par2Support ''
     substituteInPlace cmd/fsck-cmd.py --replace "['par2'" "['${par2cmdline}/bin/par2'"
-  '' + optionalString (elem stdenv.system platforms.darwin) ''
-    patch -p1 < ${darwin_10_10_patch}
   '';
 
   dontAddPrefix = true;
@@ -42,24 +45,24 @@ stdenv.mkDerivation rec {
     "LIBDIR=$(out)/lib/bup"
   ];
 
-  postInstall = optionalString (elem stdenv.system platforms.linux) ''
-    wrapProgram $out/bin/bup --prefix PYTHONPATH : \
-      ${stdenv.lib.concatStringsSep ":"
-          (map (path: "$(toPythonPath ${path})") [ pyxattr pylibacl setuptools fuse ])}
+  postInstall = ''
+    wrapProgram $out/bin/bup \
+      --prefix PATH : ${git}/bin \
+      --prefix PYTHONPATH : ${concatStringsSep ":" (map (x: "$(toPythonPath ${x})")
+        (with pythonPackages; [ pyxattr pylibacl setuptools fuse tornado ]))}
   '';
 
   meta = {
     homepage = "https://github.com/bup/bup";
-    description = "efficient file backup system based on the git packfile format";
-    license = stdenv.lib.licenses.gpl2Plus;
+    description = "Efficient file backup system based on the git packfile format";
+    license = licenses.gpl2Plus;
 
     longDescription = ''
       Highly efficient file backup system based on the git packfile format.
       Capable of doing *fast* incremental backups of virtual machine images.
     '';
 
-    hydraPlatforms = stdenv.lib.platforms.linux;
-    maintainers = with stdenv.lib.maintainers; [ muflax ];
-
+    hydraPlatforms = platforms.linux;
+    maintainers = with maintainers; [ muflax ];
   };
 }
diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix
index e160c62adb57..da847c0d31b0 100644
--- a/pkgs/tools/backup/duplicity/default.nix
+++ b/pkgs/tools/backup/duplicity/default.nix
@@ -3,14 +3,14 @@
 }:
 
 let
-  version = "0.7.06";
+  version = "0.7.07.1";
 in
 stdenv.mkDerivation {
   name = "duplicity-${version}";
 
   src = fetchurl {
     url = "http://code.launchpad.net/duplicity/0.7-series/${version}/+download/duplicity-${version}.tar.gz";
-    sha256 = "133zdi1rbiacvzjys7q3vjm7x84kmr51bsgs037rjhw9vdg5jx80";
+    sha256 = "594c6d0e723e56f8a7114d57811c613622d535cafdef4a3643a4d4c89c1904f8";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/backup/mt-st/default.nix b/pkgs/tools/backup/mt-st/default.nix
new file mode 100644
index 000000000000..0b7b7469af1b
--- /dev/null
+++ b/pkgs/tools/backup/mt-st/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "mt-st-1.3";
+
+  src = fetchurl {
+    url = "https://github.com/iustin/mt-st/releases/download/${name}/${name}.tar.gz";
+    sha256 = "b552775326a327cdcc076c431c5cbc4f4e235ac7c41aa931ad83f94cccb9f6de";
+  };
+
+  installFlags = [ "PREFIX=$(out)" "EXEC_PREFIX=$(out)" ];
+
+  meta = {
+    description = "Magnetic Tape control tools for Linux";
+    longDescription = ''
+      Fork of the standard "mt" tool with additional Linux-specific IOCTLs.
+    '';
+    homepage = https://github.com/iustin/mt-st;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.redvers ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/backup/mtx/default.nix b/pkgs/tools/backup/mtx/default.nix
new file mode 100644
index 000000000000..bc1f584f1c02
--- /dev/null
+++ b/pkgs/tools/backup/mtx/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "mtx-1.3.12";
+
+  src = fetchurl {
+    url = "mirror://gentoo/distfiles/${name}.tar.gz";
+    sha256 = "0261c5e90b98b6138cd23dadecbc7bc6e2830235145ed2740290e1f35672d843";
+  };
+
+  doCheck = false;
+
+  meta = {
+    description = "Media Changer Tools";
+    longDescription = ''
+      The mtx command controls single or multi-drive SCSI media changers such as
+      tape changers, autoloaders, tape libraries, or optical media jukeboxes. It
+      can also be used with media changers that use the 'ATTACHED' API, presuming
+      that they properly report the MChanger bit as required by the SCSI T-10 SMC
+      specification.
+    '';
+    homepage = https://sourceforge.net/projects/mtx/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.redvers ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/backup/partimage/default.nix b/pkgs/tools/backup/partimage/default.nix
index 37d99a115f8b..e73e71da51a2 100644
--- a/pkgs/tools/backup/partimage/default.nix
+++ b/pkgs/tools/backup/partimage/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     url = mirror://sourceforge/partimage/partimage-0.6.9.tar.bz2;
     sha256 = "0db6xiphk6xnlpbxraiy31c5xzj0ql6k4rfkmqzh665yyj0nqfkm";
   };
-  configureFlags = "--with-ssl-headers=${openssl}/include/openssl";
+  configureFlags = "--with-ssl-headers=${openssl.dev}/include/openssl";
 
   buildInputs = [bzip2 zlib newt newt openssl pkgconfig slang
     # automake autoconf libtool gettext
diff --git a/pkgs/tools/bluetooth/bluez-tools/default.nix b/pkgs/tools/bluetooth/bluez-tools/default.nix
index 4469ba67b3b8..890220d2051e 100644
--- a/pkgs/tools/bluetooth/bluez-tools/default.nix
+++ b/pkgs/tools/bluetooth/bluez-tools/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     inherit rev;
     url    = "https://github.com/khvzak/bluez-tools.git";
-    sha256 = "3f264d14ba8ef1b0d3c45e621a5c685035a60d789da64f64d25055047f45c55b";
+    sha256 = "0ylk10gfqlwmiz1k355axdhraixc9zym9f87xhag23934x64m8wa";
   };
   preConfigure = ''
     ./autogen.sh
diff --git a/pkgs/tools/filesystems/netatalk/default.nix b/pkgs/tools/filesystems/netatalk/default.nix
index 7e4ea032bb39..e3c608285fc8 100644
--- a/pkgs/tools/filesystems/netatalk/default.nix
+++ b/pkgs/tools/filesystems/netatalk/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec{
 
   configureFlags = [
     "--with-bdb=${db}"
-    "--with-openssl=${openssl}"
+    "--with-openssl=${openssl.dev}"
     "--with-lockfile=/run/lock/netatalk"
     "--localstatedir=/var/lib"
   ];
diff --git a/pkgs/tools/filesystems/s3backer/default.nix b/pkgs/tools/filesystems/s3backer/default.nix
index 89e49c9586c5..f3f8877db2c9 100644
--- a/pkgs/tools/filesystems/s3backer/default.nix
+++ b/pkgs/tools/filesystems/s3backer/default.nix
@@ -1,18 +1,30 @@
-{ stdenv, fetchurl, pkgconfig, fuse, curl, expat }:
+{ stdenv, fetchFromGitHub
+, autoreconfHook, pkgconfig
+, fuse, curl, expat }:
   
 stdenv.mkDerivation rec {
-  name = "s3backer-1.3.1";
+  name = "s3backer-${version}";
+  version = "1.4.2";
   
-  src = fetchurl {
-    url = "http://s3backer.googlecode.com/files/${name}.tar.gz";
-    sha256 = "1dmdvhb7mcn0fdcljpdyvfynhqrsnrg50dgl1706i8f1831lgk1r";
+  src = fetchFromGitHub {
+    sha256 = "0b9vmykrfpzs9is31pqb8xvgjraghnax1ph2jkbib1ya0vhxm8dj";
+    rev = version;
+    repo = "s3backer";
+    owner = "archiecobbs";
   };
 
-  buildInputs = [ pkgconfig fuse curl expat ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ fuse curl expat ];
 
-  meta = {
+  autoreconfPhase = ''
+    patchShebangs ./autogen.sh
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
     homepage = http://code.google.com/p/s3backer/;
     description = "FUSE-based single file backing store via Amazon S3";
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ nckx ];
   };
 }
diff --git a/pkgs/tools/filesystems/xtreemfs/default.nix b/pkgs/tools/filesystems/xtreemfs/default.nix
index bbd4b185d5ec..fb491948a470 100644
--- a/pkgs/tools/filesystems/xtreemfs/default.nix
+++ b/pkgs/tools/filesystems/xtreemfs/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
     export BOOST_INCLUDEDIR=${boost.dev}/include
     export BOOST_LIBRARYDIR=${boost.out}/lib
-    export OPENSSL_ROOT_DIR=${openssl}
+    export OPENSSL_ROOT_DIR=${openssl.dev}
 
     substituteInPlace cpp/cmake/FindValgrind.cmake \
       --replace "/usr/local" "${valgrind}"
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index 971a7e973cc0..7d191ccaba55 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
     configureFlags="$configureFlags --with-latex=$out/share/texmf/tex/latex --with-context=$out/share/texmf/tex/context/third"
   '';
 
-  NIX_CFLAGS_COMPILE = [ "-I${boehmgc}/include/gc" ];
+  NIX_CFLAGS_COMPILE = [ "-I${boehmgc.dev}/include/gc" ];
 
   postInstall = ''
     mv -v "$out/share/info/asymptote/"*.info $out/share/info/
diff --git a/pkgs/tools/graphics/bins/bins_edit-isa.patch b/pkgs/tools/graphics/bins/bins_edit-isa.patch
new file mode 100644
index 000000000000..68aad10ddff4
--- /dev/null
+++ b/pkgs/tools/graphics/bins/bins_edit-isa.patch
@@ -0,0 +1,20 @@
+--- a/bins_edit	2005-08-25 14:34:39.000000000 -0400
++++ b/bins_edit	2016-05-18 20:25:40.913460314 -0400
+@@ -26,7 +26,7 @@
+ 
+ use Getopt::Long;
+ use IO::File;
+-use UNIVERSAL qw(isa);
++use Scalar::Util 'reftype';
+ 
+ # XML parsing & writing
+ use XML::Grove;
+@@ -198,7 +198,7 @@
+   my $fieldValue;
+   foreach my $element
+     (@{$document->at_path('/'.$fileType.'/description')->{Contents}}) {
+-      if (isa($element, 'XML::Grove::Element') && $element->{Name} eq "field") {
++      if (reftype($element) eq 'XML::Grove::Element' && $element->{Name} eq "field") {
+ 	$fieldName = $element->{Attributes}{'name'};
+ 	$fieldValue = "";
+ 	if ($fieldName eq $field) {
diff --git a/pkgs/tools/graphics/bins/default.nix b/pkgs/tools/graphics/bins/default.nix
new file mode 100644
index 000000000000..579ec802e092
--- /dev/null
+++ b/pkgs/tools/graphics/bins/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, makeWrapper, perl, perlPackages }:
+
+let
+  version = "1.1.29";
+
+in
+
+#note: bins-edit-gui does not work
+
+stdenv.mkDerivation {
+  name = "bins-${version}";
+
+  src = fetchurl {
+    url = "http://download.gna.org/bins/bins-${version}.tar.gz";
+    sha256 = "0n4pcssyaic4xbk25aal0b3g0ibmi2f3gpv0gsnaq61sqipyjl94";
+  };
+
+  buildInputs = with perlPackages; [ makeWrapper perl
+                                     ImageSize ImageInfo PerlMagick
+                                     URI HTMLParser HTMLTemplate HTMLClean
+                                     XMLGrove XMLHandlerYAWriter
+                                     TextIconv TextUnaccent
+                                     DateTimeFormatDateParse ]; #TODO need Gtk (not Gtk2?) for bins-edit-gui
+
+  patches = [ ./bins_edit-isa.patch
+              ./hashref.patch ];
+
+  installPhase = ''
+    export DESTDIR=$out;
+    export PREFIX=.;
+
+    echo | ./install.sh
+
+    for f in bins bins_edit bins-edit-gui; do
+      substituteInPlace $out/bin/$f \
+        --replace /usr/bin/perl ${perl}/bin/perl \
+        --replace /etc/bins $out/etc/bins \
+        --replace /usr/local/share $out/share;
+      wrapProgram $out/bin/$f --set PERL5LIB "$PERL5LIB";
+    done
+  '';
+
+  meta = {
+    description = "generates static HTML photo albums";
+    homepage = http://bins.sautret.org;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/graphics/bins/hashref.patch b/pkgs/tools/graphics/bins/hashref.patch
new file mode 100644
index 000000000000..e16d3a78c52d
--- /dev/null
+++ b/pkgs/tools/graphics/bins/hashref.patch
@@ -0,0 +1,13 @@
+--- a/bins	2016-05-18 20:45:49.513330005 -0400
++++ b/bins	2016-05-18 20:58:58.957830874 -0400
+@@ -3643,8 +3643,8 @@
+ 
+     my @descTable;
+     foreach my $tagName (@mainFields) {
+-        if (${%$hashref}{$tagName}) {
+-            my $value=${%$hashref}{$tagName};
++        if (${$hashref}{$tagName}) {
++            my $value=${$hashref}{$tagName};
+             $value =~ s/'/&#39;/g  ; # in case it's used in javascript code
+             push @descTable, {DESC_FIELD_NAME => getFields($configHash)->{$tagName}->{'Name'},
+                               DESC_FIELD_VALUE => $value,
diff --git a/pkgs/tools/graphics/graphviz/2.0.nix b/pkgs/tools/graphics/graphviz/2.0.nix
index 9e0eea516d31..bb548fbe93ff 100644
--- a/pkgs/tools/graphics/graphviz/2.0.nix
+++ b/pkgs/tools/graphics/graphviz/2.0.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, xlibsWrapper, libpng, libjpeg, expat, libXaw
-, yacc, libtool, fontconfig, pango, gd
+, yacc, libtool, fontconfig, pango, gd, libwebp
 }:
 
 assert libpng != null && libjpeg != null && expat != null;
@@ -12,16 +12,19 @@ stdenv.mkDerivation rec {
     sha256 = "39b8e1f2ba4cc1f5bdc8e39c7be35e5f831253008e4ee2c176984f080416676c";
   };
 
-  buildInputs = [pkgconfig xlibsWrapper libpng libjpeg expat libXaw yacc libtool fontconfig pango gd];
+  buildInputs = [
+    pkgconfig xlibsWrapper libpng libjpeg expat libXaw yacc
+    libtool fontconfig pango gd libwebp
+  ];
 
   hardeningDisable = [ "format" "fortify" ];
 
   configureFlags =
-    [ "--with-pngincludedir=${libpng}/include"
+    [ "--with-pngincludedir=${libpng.dev}/include"
       "--with-pnglibdir=${libpng.out}/lib"
-      "--with-jpegincludedir=${libjpeg}/include"
+      "--with-jpegincludedir=${libjpeg.dev}/include"
       "--with-jpeglibdir=${libjpeg.out}/lib"
-      "--with-expatincludedir=${expat}/include"
+      "--with-expatincludedir=${expat.dev}/include"
       "--with-expatlibdir=${expat.out}/lib"
     ]
     ++ stdenv.lib.optional (xlibsWrapper == null) "--without-x";
diff --git a/pkgs/tools/graphics/graphviz/2.32.nix b/pkgs/tools/graphics/graphviz/2.32.nix
index 4fe963288690..db8cc8219b2f 100644
--- a/pkgs/tools/graphics/graphviz/2.32.nix
+++ b/pkgs/tools/graphics/graphviz/2.32.nix
@@ -20,11 +20,11 @@ stdenv.mkDerivation rec {
   CPPFLAGS = stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "-I${cairo.dev}/include/cairo";
 
   configureFlags =
-    [ "--with-pngincludedir=${libpng}/include"
+    [ "--with-pngincludedir=${libpng.dev}/include"
       "--with-pnglibdir=${libpng.out}/lib"
-      "--with-jpegincludedir=${libjpeg}/include"
+      "--with-jpegincludedir=${libjpeg.dev}/include"
       "--with-jpeglibdir=${libjpeg.out}/lib"
-      "--with-expatincludedir=${expat}/include"
+      "--with-expatincludedir=${expat.dev}/include"
       "--with-expatlibdir=${expat.out}/lib"
       "--with-cgraph=no"
       "--with-sparse=no"
diff --git a/pkgs/tools/graphics/mscgen/default.nix b/pkgs/tools/graphics/mscgen/default.nix
index 34daae36ce9c..e9301731e856 100644
--- a/pkgs/tools/graphics/mscgen/default.nix
+++ b/pkgs/tools/graphics/mscgen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, flex, bison, gd, libpng, libjpeg, freetype, zlib }:
+{ stdenv, fetchurl, flex, bison, gd, libpng, libjpeg, freetype, zlib, libwebp }:
 
 let
   version = "0.20";
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "3c3481ae0599e1c2d30b7ed54ab45249127533ab2f20e768a0ae58d8551ddc23";
   };
 
-  buildInputs = [ flex bison gd libjpeg libpng freetype zlib ];
+  buildInputs = [ flex bison gd libjpeg libpng freetype zlib libwebp ];
 
   doCheck = true;
   preCheck = ''
diff --git a/pkgs/tools/graphics/netpbm/default.nix b/pkgs/tools/graphics/netpbm/default.nix
index a3a5e30d41b5..3c724ccc2b83 100644
--- a/pkgs/tools/graphics/netpbm/default.nix
+++ b/pkgs/tools/graphics/netpbm/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     echo "STATICLIB_TOO = n" >> config.mk
     substituteInPlace "config.mk" \
         --replace "TIFFLIB = NONE" "TIFFLIB = ${libtiff.out}/lib/libtiff.so" \
-        --replace "TIFFHDR_DIR =" "TIFFHDR_DIR = ${libtiff}/include"
+        --replace "TIFFHDR_DIR =" "TIFFHDR_DIR = ${libtiff.dev}/include"
   '';
 
   preBuild = ''
diff --git a/pkgs/tools/graphics/unpaper/default.nix b/pkgs/tools/graphics/unpaper/default.nix
index e199eeea132b..2b64cbcc1f58 100644
--- a/pkgs/tools/graphics/unpaper/default.nix
+++ b/pkgs/tools/graphics/unpaper/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
     homepage = https://www.flameeyes.eu/projects/unpaper;
     description = "Post-processing tool for scanned sheets of paper";
     license = licenses.gpl2;
+    platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-cloudpinyin/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-cloudpinyin/default.nix
new file mode 100644
index 000000000000..acd377441e2c
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-cloudpinyin/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, cmake, pkgconfig, fcitx, gettext, curl }:
+
+stdenv.mkDerivation rec {
+  name = "fcitx-cloudpinyin-${version}";
+  version = "0.3.4";
+
+  src = fetchurl {
+    url = "http://download.fcitx-im.org/fcitx-cloudpinyin/${name}.tar.xz";
+    sha256 = "143x9gbswzfngvgfy77zskrzrpywj8qg2d19kisgfwfisk7yhcf1";
+  };
+
+  buildInputs = [ cmake pkgconfig fcitx gettext curl ];
+
+  preInstall = ''
+    substituteInPlace src/cmake_install.cmake \
+      --replace ${fcitx} $out
+    substituteInPlace po/cmake_install.cmake \
+      --replace ${fcitx} $out
+  '';
+
+  meta = with stdenv.lib; {
+    isFcitxEngine = true;
+    description  = "A standalone module for fcitx that uses web API to provide better pinyin result";
+    homepage     = https://github.com/fcitx/fcitx-cloudpinyin;
+    license      = licenses.gpl3Plus;
+    platforms    = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/inputmethods/fcitx/fcitx-qt5-ecm.patch b/pkgs/tools/inputmethods/fcitx/fcitx-qt5-ecm.patch
new file mode 100644
index 000000000000..8fe100dd3b24
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx/fcitx-qt5-ecm.patch
@@ -0,0 +1,29 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b8e729a..ebd3603 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,9 +5,7 @@ project(fcitx-qt5)
+ set(FcitxQt5_VERSION 1.0.0)
+ set(REQUIRED_QT_VERSION 5.1.0)
+ 
+-find_package(ECM 1.4.0 REQUIRED NO_MODULE)
+-
+-set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
++set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+ 
+ include(GNUInstallDirs)
+ include(FeatureSummary)
+diff --git a/cmake/FindXKBCommon.cmake b/cmake/FindXKBCommon.cmake
+index a645584..de0007d 100644
+--- a/cmake/FindXKBCommon.cmake
++++ b/cmake/FindXKBCommon.cmake
+@@ -1,5 +1,5 @@
+ 
+-include(ECMFindModuleHelpersStub)
++include(ECMFindModuleHelpers)
+ 
+ ecm_find_package_version_check(XKBCommon)
+ 
+-- 
+2.8.0
+
diff --git a/pkgs/tools/inputmethods/fcitx/fcitx-qt5.nix b/pkgs/tools/inputmethods/fcitx/fcitx-qt5.nix
index ab139bdb5a76..fc9dd1e6a253 100644
--- a/pkgs/tools/inputmethods/fcitx/fcitx-qt5.nix
+++ b/pkgs/tools/inputmethods/fcitx/fcitx-qt5.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, fcitx, extra-cmake-modules, qtbase }:
+{ stdenv, lib, fetchurl, cmake, fcitx, pkgconfig, qtbase, kde5 }:
 
 stdenv.mkDerivation rec {
   name = "fcitx-qt5-${version}";
@@ -9,7 +9,19 @@ stdenv.mkDerivation rec {
     sha256 = "1pj1b04n8r4kl7jh1qdv0xshgzb3zrmizfa3g5h3yk589h191vwc";
   };
 
-  buildInputs = [ cmake fcitx extra-cmake-modules qtbase ];
+  # The following is to not have a dependency on kde5 so the plugin can be part of qt5LibsFun
+  postUnpack = ''
+    ${lib.concatMapStrings (f: ''
+      ln -s ${kde5.extra-cmake-modules}/share/ECM/modules/${f} $sourceRoot/cmake/
+    '')
+    [ "ECMFindModuleHelpers.cmake" "ECMGenerateHeaders.cmake"
+      "ECMPackageConfigHelpers.cmake" "ECMQueryQmake.cmake"
+      "ECMSetupVersion.cmake" "ECMVersionHeader.h.in" ]}
+  '';
+
+  patches = [ ./fcitx-qt5-ecm.patch ];
+
+  buildInputs = [ cmake fcitx pkgconfig qtbase ];
 
   preInstall = ''
     substituteInPlace platforminputcontext/cmake_install.cmake \
diff --git a/pkgs/tools/inputmethods/fcitx/wrapper.nix b/pkgs/tools/inputmethods/fcitx/wrapper.nix
index 1e1a2b76a4bb..8e086f7386f5 100644
--- a/pkgs/tools/inputmethods/fcitx/wrapper.nix
+++ b/pkgs/tools/inputmethods/fcitx/wrapper.nix
@@ -1,21 +1,9 @@
-{ stdenv, symlinkJoin, fcitx, fcitx-configtool, makeWrapper, plugins, kde5 }:
-
-# This is based on the pidgin-with-plugins package.
-# Users should be able to configure what plugins are used
-# by putting the following in their /etc/nixos/configuration.nix:
-# environment.systemPackages = with pkgs; [
-#     (fcitx-with-plugins.override { plugins = [ fcitx-anthy ]; })
-# ]
-# Or, a normal user could use it by putting the following in his
-# ~/.nixpkgs/config.nix:
-# packageOverrides = pkgs: with pkgs; rec {
-#     (fcitx-with-plugins.override { plugins = [ fcitx-anthy ]; })
-# }
+{ stdenv, symlinkJoin, fcitx, fcitx-configtool, makeWrapper, plugins, qt55 }:
 
 symlinkJoin {
   name = "fcitx-with-plugins-${fcitx.version}";
 
-  paths = [ fcitx fcitx-configtool kde5.fcitx-qt5 ] ++ plugins;
+  paths = [ fcitx fcitx-configtool qt55.fcitx-qt5 ] ++ plugins;
 
   buildInputs = [ makeWrapper ];
 
@@ -24,4 +12,3 @@ symlinkJoin {
       --set FCITXDIR "$out/"
   '';
 }
-
diff --git a/pkgs/tools/misc/bibtool/default.nix b/pkgs/tools/misc/bibtool/default.nix
index db57eeb74e34..f60007341582 100644
--- a/pkgs/tools/misc/bibtool/default.nix
+++ b/pkgs/tools/misc/bibtool/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     description = "Tool for manipulating BibTeX bibliographies";
     homepage = http://www.gerd-neugebauer.de/software/TeX/BibTool/index.en.html;
     license = licenses.gpl1;
+    platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix
index 0b5796d4ac38..2dafaca1961b 100644
--- a/pkgs/tools/misc/cloc/default.nix
+++ b/pkgs/tools/misc/cloc/default.nix
@@ -1,31 +1,29 @@
-{ stdenv, fetchurl, fetchpatch, perl, AlgorithmDiff, RegexpCommon }:
+{ stdenv, fetchFromGitHub, makeWrapper, perl, AlgorithmDiff, RegexpCommon }:
 
 stdenv.mkDerivation rec {
-
   name = "cloc-${version}";
+  version = "1.66";
 
-  version = "1.64";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/cloc/cloc-${version}.tar.gz";
-    sha256 = "1w3mz69h2i7pscvi9q7yp7wimds8g38c5ph78cj5pvjl5wa035rh";
+  src = fetchFromGitHub {
+    owner = "AlDanial";
+    repo = "cloc";
+    rev = "v${version}";
+    sha256 = "1xj6d8x8zwijym5wznm0k1478z7zx3bfjsx20r3aqb1vhkvcjsm9";
   };
 
-  patches = [ (fetchpatch {
-    name = "perl-5.22.patch";
-    url = "https://bugs.archlinux.org/task/45494?getfile=13174";
-    sha256 = "1xxwqjy2q2fdza7kfp9ld0yzljkdsrgm8a9pwnmx5q4adigcjjsz";
-  }) ];
+  sourceRoot = "cloc-v${version}-src/Unix";
 
-  buildInputs = [ perl AlgorithmDiff RegexpCommon ];
+  buildInputs = [ makeWrapper perl AlgorithmDiff RegexpCommon ];
 
   makeFlags = [ "prefix=" "DESTDIR=$(out)" "INSTALL=install" ];
 
+  postFixup = "wrapProgram $out/bin/cloc --prefix PERL5LIB : $PERL5LIB";
+
   meta = {
     description = "A program that counts lines of source code";
-    homepage = http://cloc.sourceforge.net;
+    homepage = https://github.com/AlDanial/cloc;
     license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.all;
     maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
   };
-
 }
diff --git a/pkgs/tools/misc/dtach/default.nix b/pkgs/tools/misc/dtach/default.nix
index 000f6cd0f93f..0367ab53835f 100644
--- a/pkgs/tools/misc/dtach/default.nix
+++ b/pkgs/tools/misc/dtach/default.nix
@@ -1,15 +1,14 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "dtach-0.8";
+  name = "dtach-${version}";
+  version = "0.9";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/dtach/dtach/0.8/dtach-0.8.tar.gz";
-    sha256 = "16614ebddf8ab2811d3dc0e7f329c7de88929ac6a9632d4cb4aef7fe11b8f2a9";
+    url = "mirror://sourceforge/project/dtach/dtach/${version}/${name}.tar.gz";
+    sha256 = "1wwj2hlngi8qn2pisvhyfxxs8gyqjlgrrv5lz91w8ly54dlzvs9j";
   };
 
-  patches = [ ./fix-CVE-2012-3368.patch ];
-
   installPhase = ''
     mkdir -p $out/bin
     cp dtach $out/bin/dtach
@@ -19,12 +18,14 @@ stdenv.mkDerivation rec {
     homepage = http://dtach.sourceforge.net/;
     description = "A program that emulates the detach feature of screen";
 
-    longDescription = ''dtach is a tiny program that emulates the
-      detach feature of screen, allowing you to run a program in an
-      environment that is protected from the controlling terminal and
-      attach to it later. dtach does not keep track of the contents of
-      the screen, and thus works best with programs that know how to
-      redraw themselves.'';
+    longDescription = ''
+      dtach is a tiny program that emulates the detach feature of
+      screen, allowing you to run a program in an environment that is
+      protected from the controlling terminal and attach to it later.
+      dtach does not keep track of the contents of the screen, and
+      thus works best with programs that know how to redraw
+      themselves.
+    '';
 
     license = stdenv.lib.licenses.gpl2Plus;
 
diff --git a/pkgs/tools/misc/dtach/fix-CVE-2012-3368.patch b/pkgs/tools/misc/dtach/fix-CVE-2012-3368.patch
deleted file mode 100644
index 9e556d9325fb..000000000000
--- a/pkgs/tools/misc/dtach/fix-CVE-2012-3368.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Fix error handling for read from stdin in attach.c
-
-attach.c did not correctly handle a read from stdin when read returned
-an error. The code assigned the return value of read to pkt.len (an
-unsigned char) before checking the value. This prevented the error check
-from working correctly, since an unsigned integer can never be < 0.
-
-A packet with an invalid length was then sent to the master, which then
-sent 255 bytes of garbage to the program.
-
-Fix the bug in attach.c and the unchecked packet length bug in master.c.
-
-Report and initial patch by Enrico Scholz.
-
---- a/master.c	2012/07/01 21:26:10	1.14
-+++ b/master.c	2012/07/01 21:44:34	1.15
-@@ -351,7 +351,10 @@
- 
- 	/* Push out data to the program. */
- 	if (pkt.type == MSG_PUSH)
--		write(the_pty.fd, pkt.u.buf, pkt.len);
-+	{
-+		if (pkt.len <= sizeof(pkt.u.buf))
-+			write(the_pty.fd, pkt.u.buf, pkt.len);
-+	}
- 
- 	/* Attach or detach from the program. */
- 	else if (pkt.type == MSG_ATTACH)
---- a/attach.c	2012/07/01 21:26:10	1.12
-+++ b/attach.c	2012/07/01 21:44:34	1.13
-@@ -237,12 +237,16 @@
- 		/* stdin activity */
- 		if (n > 0 && FD_ISSET(0, &readfds))
- 		{
-+			ssize_t len;
-+
- 			pkt.type = MSG_PUSH;
- 			memset(pkt.u.buf, 0, sizeof(pkt.u.buf));
--			pkt.len = read(0, pkt.u.buf, sizeof(pkt.u.buf));
-+			len = read(0, pkt.u.buf, sizeof(pkt.u.buf));
- 
--			if (pkt.len <= 0)
-+			if (len <= 0)
- 				exit(1);
-+
-+			pkt.len = len;
- 			process_kbd(s, &pkt);
- 			n--;
- 		}
diff --git a/pkgs/tools/misc/fondu/default.nix b/pkgs/tools/misc/fondu/default.nix
new file mode 100644
index 000000000000..1f0b42b62b67
--- /dev/null
+++ b/pkgs/tools/misc/fondu/default.nix
@@ -0,0 +1,11 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "060102";
+  name = "fondu-${version}";
+  src = fetchurl {
+    url = "http://fondu.sourceforge.net/fondu_src-${version}.tgz";
+    sha256 = "152prqad9jszjmm4wwqrq83zk13ypsz09n02nrk1gg0fcxfm7fr2";
+  };
+  makeFlags = "DESTDIR=$(out)";
+}
diff --git a/pkgs/tools/misc/fzy/default.nix b/pkgs/tools/misc/fzy/default.nix
new file mode 100644
index 000000000000..318de542bb2d
--- /dev/null
+++ b/pkgs/tools/misc/fzy/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "fzy-${version}";
+  version = "0.4";
+
+  src = fetchFromGitHub {
+    owner = "jhawthorn";
+    repo = "fzy";
+    rev = version;
+    sha256 = "1sbwy4v5kz0fcl7kzf414phxv9cppvjvfq9jqkcda4bkzqh2xgia";
+  };
+
+  makeFlags = "PREFIX=$(out)";
+
+  meta = {
+    description = "A better fuzzy finder";
+    homepage = https://github.com/jhawthorn/fzy;
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/hakuneko/default.nix b/pkgs/tools/misc/hakuneko/default.nix
new file mode 100644
index 000000000000..a70f69c47834
--- /dev/null
+++ b/pkgs/tools/misc/hakuneko/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, wxGTK, openssl, curl }:
+
+stdenv.mkDerivation rec {
+  name = "hakuneko-${version}";
+  version = "1.3.12";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/hakuneko/hakuneko_${version}_src.tar.gz";
+    sha256 = "24e7281a7f68b24e5260ee17ecfa1c5a3ffec408c8ea6e0121ae6c161898b698";
+  };
+
+  preConfigure = ''
+    substituteInPlace ./configure \
+       --replace /bin/bash $shell
+    '';
+
+  buildInputs = [ wxGTK openssl curl ];
+
+  meta = {
+    description = "Manga downloader";
+    homepage = http://sourceforge.net/projects/hakuneko/;
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/heimdall/default.nix b/pkgs/tools/misc/heimdall/default.nix
index f84ccce4eb99..09018108d895 100644
--- a/pkgs/tools/misc/heimdall/default.nix
+++ b/pkgs/tools/misc/heimdall/default.nix
@@ -18,9 +18,9 @@ stdenv.mkDerivation {
   '';
   enableParallelBuilding = true;
   cmakeFlags = [
-    "-DQt5Widgets_DIR=${qt5.qtbase}/lib/cmake/Qt5Widgets"
-    "-DQt5Gui_DIR=${qt5.qtbase}/lib/cmake/Qt5Gui"
-    "-DQt5Core_DIR=${qt5.qtbase}/lib/cmake/Qt5Core"
+    "-DQt5Widgets_DIR=${qt5.qtbase.dev}/lib/cmake/Qt5Widgets"
+    "-DQt5Gui_DIR=${qt5.qtbase.dev}/lib/cmake/Qt5Gui"
+    "-DQt5Core_DIR=${qt5.qtbase.dev}/lib/cmake/Qt5Core"
     "-DBUILD_TYPE=Release"
   ];
 
diff --git a/pkgs/tools/misc/kde-gtk-config/default.nix b/pkgs/tools/misc/kde-gtk-config/default.nix
index bf868790de2d..41aaad553463 100644
--- a/pkgs/tools/misc/kde-gtk-config/default.nix
+++ b/pkgs/tools/misc/kde-gtk-config/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   cmakeFlags = ''
     -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include
     -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include
-    -DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0
+    -DGTK2_INCLUDE_DIRS=${gtk2.dev}/include/gtk-2.0
     -DKDE4_LIBEXEC_INSTALL_DIR=lib/kde4/libexec
   '';
 
diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix
index d77b7ff48128..825921327e16 100644
--- a/pkgs/tools/misc/man-db/default.nix
+++ b/pkgs/tools/misc/man-db/default.nix
@@ -1,19 +1,24 @@
 { stdenv, fetchurl, pkgconfig, libpipeline, db, groff }:
- 
+
 stdenv.mkDerivation rec {
   name = "man-db-2.7.5";
-  
+
   src = fetchurl {
     url = "mirror://savannah/man-db/${name}.tar.xz";
     sha256 = "056a3il7agfazac12yggcg4gf412yq34k065im0cpfxbcw6xskaw";
   };
-  
-  buildInputs = [ pkgconfig libpipeline db groff ];
+
+  outputs = [ "out" "doc" ];
+  outputMan = "out"; # users will want `man man` to work
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libpipeline db groff ];
 
   configureFlags = [
     "--disable-setuid"
-    "--sysconfdir=/etc"
     "--localstatedir=/var"
+    # Don't try /etc/man_db.conf by default, so we avoid error messages.
+    "--with-config-file=\${out}/etc/man_db.conf"
     "--with-systemdtmpfilesdir=\${out}/lib/tmpfiles.d"
     "--with-eqn=${groff}/bin/eqn"
     "--with-neqn=${groff}/bin/neqn"
@@ -23,15 +28,9 @@ stdenv.mkDerivation rec {
     "--with-tbl=${groff}/bin/tbl"
   ];
 
-  installFlags = [ "DESTDIR=\${out}" ];
+  enableParallelBuilding = true;
 
-  postInstall = ''
-    mv $out/$out/* $out
-    DIR=$out/$out
-    while rmdir $DIR 2>/dev/null; do
-      DIR="$(dirname "$DIR")"
-    done
-  '';
+  doCheck = true;
 
   meta = with stdenv.lib; {
     homepage = "http://man-db.nongnu.org";
diff --git a/pkgs/tools/misc/most/default.nix b/pkgs/tools/misc/most/default.nix
index b97d8f0b7199..1c1def9b8a85 100644
--- a/pkgs/tools/misc/most/default.nix
+++ b/pkgs/tools/misc/most/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
       -e "s|/bin/rm|rm|"
   '';
   
-  configureFlags = "--with-slang=${slang}";
+  configureFlags = "--with-slang=${slang.dev}";
 
   buildInputs = [ slang ncurses ];
 
diff --git a/pkgs/tools/misc/multitail/default.nix b/pkgs/tools/misc/multitail/default.nix
index 9b1b3f48450c..bd446395bc78 100644
--- a/pkgs/tools/misc/multitail/default.nix
+++ b/pkgs/tools/misc/multitail/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.vanheusden.com/multitail/;
     description = "tail on Steroids";
     maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/pk2cmd/default.nix b/pkgs/tools/misc/pk2cmd/default.nix
index 3501090c63c8..2f69517e4bd2 100644
--- a/pkgs/tools/misc/pk2cmd/default.nix
+++ b/pkgs/tools/misc/pk2cmd/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "1yjpi2qshnqfpan4w3ggakkr3znfrx5cxkny92ka7v9na3g2fc4h";
   };
 
-  makeFlags = [ "LIBUSB=${libusb}" "linux" ];
+  makeFlags = [ "LIBUSB=${libusb.dev}" "linux" ];
 
   installPhase = ''
     mkdir -p $out/bin $out/share/pk2
diff --git a/pkgs/tools/misc/rrdtool/default.nix b/pkgs/tools/misc/rrdtool/default.nix
index 524e61dfaf37..2db915491049 100644
--- a/pkgs/tools/misc/rrdtool/default.nix
+++ b/pkgs/tools/misc/rrdtool/default.nix
@@ -1,4 +1,5 @@
-{ fetchurl, stdenv, gettext, perl, pkgconfig, libxml2, pango, cairo, groff }:
+{ fetchurl, stdenv, gettext, perl, pkgconfig, libxml2, pango, cairo, groff
+, tcl-8_5 }:
 
 stdenv.mkDerivation rec {
   name = "rrdtool-1.5.5";
@@ -6,7 +7,8 @@ stdenv.mkDerivation rec {
     url = "http://oss.oetiker.ch/rrdtool/pub/${name}.tar.gz";
     sha256 = "1xm6ikzx8iaa6r7v292k8s7srkzhnifamp1szkimgmh5ki26sa1s";
   };
-  buildInputs = [ gettext perl pkgconfig libxml2 pango cairo groff ];
+  buildInputs = [ gettext perl pkgconfig libxml2 pango cairo groff ]
+    ++ stdenv.lib.optional stdenv.isDarwin tcl-8_5;
   
   postInstall = ''
     # for munin and rrdtool support
@@ -18,7 +20,7 @@ stdenv.mkDerivation rec {
     homepage = http://oss.oetiker.ch/rrdtool/;
     description = "High performance logging in Round Robin Databases";
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/tools/misc/stow/default.nix b/pkgs/tools/misc/stow/default.nix
index 6eddcf89b914..0468d2d8a635 100644
--- a/pkgs/tools/misc/stow/default.nix
+++ b/pkgs/tools/misc/stow/default.nix
@@ -1,16 +1,17 @@
 { stdenv, fetchurl, perl, perlPackages }:
 
+let
+  version = "2.2.2";
+in
 stdenv.mkDerivation {
-  name = "stow-2.2.0";
+  name = "stow-${version}";
 
   src = fetchurl {
-    url = mirror://gnu/stow/stow-2.2.0.tar.bz2;
-    sha256 = "01bbsqjmrnd9925s3grvgjnrl52q4w65imrvzy05qaij3pz31g46";
+    url = "mirror://gnu/stow/stow-${version}.tar.bz2";
+    sha256 = "1zd6g9cm3whvy5f87j81j4npl7q6kxl25f7z7p9ahiqfjqs200m0";
   };
 
-  buildInputs = [ perl perlPackages.TestOutput ];
-
-  patches = [ ./precedence-issue.patch ];
+  buildInputs = with perlPackages; [ perl IOStringy TestOutput ];
 
   doCheck = true;
 
diff --git a/pkgs/tools/misc/stow/precedence-issue.patch b/pkgs/tools/misc/stow/precedence-issue.patch
deleted file mode 100644
index d9542573bac7..000000000000
--- a/pkgs/tools/misc/stow/precedence-issue.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/lib/Stow.pm.in b/lib/Stow.pm.in
-index 101a422..f80b1ac 100755
---- a/lib/Stow.pm.in
-+++ b/lib/Stow.pm.in
-@@ -1732,8 +1732,8 @@ sub read_a_link {
-     }
-     elsif (-l $path) {
-         debug(4, "  read_a_link($path): real link");
--        return readlink $path
--            or error("Could not read link: $path");
-+        my $target = readlink $path or error("Could not read link: $path ($!)");
-+        return $target;
-     }
-     internal_error("read_a_link() passed a non link path: $path\n");
- }
diff --git a/pkgs/tools/misc/tlp/default.nix b/pkgs/tools/misc/tlp/default.nix
index d290c9f9a5a7..1e39ddf481bc 100644
--- a/pkgs/tools/misc/tlp/default.nix
+++ b/pkgs/tools/misc/tlp/default.nix
@@ -1,11 +1,19 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, perl, systemd, iw, rfkill, hdparm, ethtool, inetutils
+{ stdenv, lib, fetchFromGitHub, perl, makeWrapper, systemd, iw, rfkill, hdparm, ethtool, inetutils
 , kmod, pciutils, smartmontools, x86_energy_perf_policy, gawk, gnugrep, coreutils
 , enableRDW ? false, networkmanager
 }:
 
-let version = "0.8";
-in stdenv.mkDerivation {
+let
+  paths = lib.makeBinPath
+          ([ iw rfkill hdparm ethtool inetutils systemd kmod pciutils smartmontools
+             x86_energy_perf_policy gawk gnugrep coreutils
+           ]
+           ++ lib.optional enableRDW networkmanager
+          );
+
+in stdenv.mkDerivation rec {
   name = "tlp-${version}";
+  version = "0.8";
 
   src = fetchFromGitHub {
         owner = "linrunner";
@@ -26,20 +34,19 @@ in stdenv.mkDerivation {
 
   buildInputs = [ perl ];
 
-  paths = lib.makeBinPath
-          ([ iw rfkill hdparm ethtool inetutils systemd kmod pciutils smartmontools
-             x86_energy_perf_policy gawk gnugrep coreutils
-           ]
-           ++ lib.optional enableRDW networkmanager
-          );
-
   installTargets = [ "install-tlp" ] ++ stdenv.lib.optional enableRDW "install-rdw";
 
   postInstall = ''
     for i in $out/bin/* $out/lib/udev/tlp-*; do
       sed -i "s,/usr/lib/,$out/lib/,g" "$i"
-      wrapProgram "$i" \
-        --prefix PATH : "$paths"
+      if [[ "$(basename "$i")" = tlp-*list ]]; then
+        # Perl script; use wrapProgram
+        wrapProgram "$i" \
+          --prefix PATH : "${paths}"
+      else
+        # Bash script
+        sed -i '2iexport PATH=${paths}:$PATH' "$i"
+      fi
     done
 
     for i in $out/lib/udev/rules.d/*; do
@@ -51,9 +58,10 @@ in stdenv.mkDerivation {
     done
   '' + lib.optionalString enableRDW ''
     for i in $out/etc/NetworkManager/dispatcher.d/*; do
-      sed -i "s,/usr/lib/,$out/lib/,g" "$i"
-      wrapProgram "$i" \
-        --prefix PATH : "$paths"
+      sed -i \
+        -e "s,/usr/lib/,$out/lib/,g" \
+        -e '2iexport PATH=${paths}:$PATH' \
+        "$i"
     done
   '';
 
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index 7bd79b308859..ad15fa98a4b3 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, ncurses, libevent, pkgconfig }:
+{ stdenv, fetchFromGitHub, autoreconfHook, ncurses, libevent, pkgconfig, makeWrapper }:
 
 let
 
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
 
-  buildInputs = [ ncurses libevent ];
+  buildInputs = [ ncurses libevent makeWrapper ];
 
   configureFlags = [
     "--sysconfdir=/etc"
@@ -32,8 +32,8 @@ stdenv.mkDerivation rec {
   ];
 
   postInstall = ''
-    mkdir -p $out/etc/bash_completion.d
-    cp -v ${bashCompletion}/completions/tmux $out/etc/bash_completion.d/tmux
+    mkdir -p $out/share/bash-completion/completions
+    cp -v ${bashCompletion}/completions/tmux $out/share/bash-completion/completions/tmux
   '';
 
   meta = {
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index 75b3cb160671..2a4dae87e185 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -35,6 +35,7 @@ python2Packages.buildPythonApplication rec {
     homepage = https://github.com/andreafrancia/trash-cli;
     description = "Command line tool for the desktop trash can";
     maintainers = [ maintainers.rycee ];
+    platforms = platforms.all;
     license = licenses.gpl2;
   };
 }
diff --git a/pkgs/tools/misc/ttf2pt1/default.nix b/pkgs/tools/misc/ttf2pt1/default.nix
index 5a03e0995393..da0c966eb5e1 100644
--- a/pkgs/tools/misc/ttf2pt1/default.nix
+++ b/pkgs/tools/misc/ttf2pt1/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
     mkdir -p $out
     sed -e 's/chown/true/' \
         -e 's/chgrp/true/' \
-        -e 's@^CFLAGS_FT =.*@CFLAGS_FT=-DUSE_FREETYPE -I${freetype}/include/freetype2@' \
+        -e 's@^CFLAGS_FT =.*@CFLAGS_FT=-DUSE_FREETYPE -I${freetype.dev}/include/freetype2@' \
         -i scripts/{inst_dir,inst_file} Makefile
     makeFlags="INSTDIR=$out OWNER=`id -u`"
   '';
diff --git a/pkgs/tools/misc/vdirsyncer/default.nix b/pkgs/tools/misc/vdirsyncer/default.nix
index 0cf7f92912ed..4bf195977094 100644
--- a/pkgs/tools/misc/vdirsyncer/default.nix
+++ b/pkgs/tools/misc/vdirsyncer/default.nix
@@ -3,13 +3,12 @@
 # Packaging documentation at:
 # https://github.com/untitaker/vdirsyncer/blob/master/docs/packaging.rst
 pythonPackages.buildPythonApplication rec {
-  version = "0.10.0";
+  version = "0.11.0";
   name = "vdirsyncer-${version}";
-  namePrefix = "";
 
   src = fetchurl {
-    url = "https://pypi.python.org/packages/0b/fb/c42223e1e9169e4770194e62143d431755724b080d8cb77f14705b634815/vdirsyncer-0.10.0.tar.gz";
-    sha256 = "1gf86sbd6w0w4zayh9r3irlp5jwrzbjikjc0vs5zkdpa5c199f78";
+    url = "mirror://pypi/v/vdirsyncer/${name}.tar.gz";
+    sha256 = "1bf0vk29qdswar0q4267aamfriq3134302i2p3qcqxpmmcwx3qfv";
   };
 
   propagatedBuildInputs = with pythonPackages; [
diff --git a/pkgs/tools/misc/xflux/gui.nix b/pkgs/tools/misc/xflux/gui.nix
new file mode 100644
index 000000000000..b78eb910f938
--- /dev/null
+++ b/pkgs/tools/misc/xflux/gui.nix
@@ -0,0 +1,47 @@
+{ stdenv, pkgs, fetchFromGitHub, buildPythonPackage,
+  pexpect,
+  pyGtkGlade,
+  pygobject,
+  pyxdg,
+  gnome_python,
+}:
+buildPythonPackage rec {
+  version = "1.1.1";
+  name = "xflux-gui-${version}";
+
+  src = fetchFromGitHub {
+    repo = "xflux-gui";
+    owner = "xflux-gui";
+    rev = "d897dfd";
+    sha256 = "1mx1r2hz3g3waafn4w8hql0gaasfizbzz60bk5llw007k4k8892r";
+  };
+
+  # remove messing with shipped binary
+  patches = [ ./setup.patch ];
+
+  # not sure if these need to be propogated or not?
+  propagatedBuildInputs = [
+    pexpect
+    pyGtkGlade
+    pygobject
+    pyxdg
+    pkgs.libappindicator-gtk2
+    gnome_python
+  ];
+
+  buildInputs = [
+    pkgs.xflux
+  ];
+
+  postPatch = ''
+     substituteInPlace src/fluxgui/xfluxcontroller.py --replace "pexpect.spawn(\"xflux\"" "pexpect.spawn(\"${pkgs.xflux}/bin/xflux\""
+  '';
+
+  meta = {
+    description = "Better lighting for Linux. Open source GUI for xflux";
+    homepage = https://justgetflux.com/linux.html;
+    license = stdenv.lib.licenses.unfree; # marked as unfree since the source code contains a copy of the unfree xflux binary
+    maintainers = [ stdenv.lib.maintainers.sheenobu ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/xflux/setup.patch b/pkgs/tools/misc/xflux/setup.patch
new file mode 100644
index 000000000000..c36f81f7d808
--- /dev/null
+++ b/pkgs/tools/misc/xflux/setup.patch
@@ -0,0 +1,28 @@
+diff --git a/setup.py b/setup.py
+index e11f199..b1cb0e5 100644
+--- a/setup.py
++++ b/setup.py
+@@ -4,13 +4,6 @@ from distutils.core import setup
+ from sys import maxsize
+ from os import rename
+ 
+-# Determines which is the appropriate executable for 32-bit
+-if maxsize == 2147483647:
+-    rename("xflux32", "xflux")
+-# ... or 64-bit processors
+-elif maxsize == 9223372036854775807:
+-    rename("xflux64", "xflux")
+-
+ setup(name = "f.lux indicator applet",
+     version = "1.1.8",
+     description = "f.lux indicator applet - better lighting for your computer",
+@@ -22,8 +15,7 @@ setup(name = "f.lux indicator applet",
+     packages = ["fluxgui",],
+     package_data = {"fluxgui" : ["*.glade"] },
+     data_files=[('share/icons/hicolor/scalable/apps', ['fluxgui.svg', 'fluxgui-light.svg', 'fluxgui-dark.svg']),
+-            ('share/applications', ['desktop/fluxgui.desktop']),
+-            ('bin', ['xflux']),],
++            ('share/applications', ['desktop/fluxgui.desktop']),],
+     scripts = ["fluxgui"],
+     long_description = """f.lux indicator applet is an indicator applet to
+     control xflux, an application that makes the color of your computer's
diff --git a/pkgs/tools/misc/yank/default.nix b/pkgs/tools/misc/yank/default.nix
index f6b61de2a982..97497614ecbe 100644
--- a/pkgs/tools/misc/yank/default.nix
+++ b/pkgs/tools/misc/yank/default.nix
@@ -8,12 +8,12 @@ stdenv.mkDerivation rec {
     owner = "mptre";
     repo = "yank";
     rev = "v${meta.version}";
-    sha256 = "0v1imwjp851gz86p9m3x1dd8bi649gr8j99xz6ask1pbkxvji73c";
+    sha256 = "0iv3ilyjcq6cd429qkg8mfpwagkb30617z0kdjlhk2s74chyaghm";
     inherit name;
   };
 
   installPhase = ''
-    PREFIX=$out make install
+    make PREFIX=$out install
   '';
 
   meta = with stdenv.lib; {
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     '';
     downloadPage = "https://github.com/mptre/yank/releases";
     license = licenses.mit;
-    version = "0.6.0";
+    version = "0.7.0";
     maintainers = [ maintainers.dochang ];
   };
 
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index bee8231b64ee..1187191185d7 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -12,11 +12,11 @@
 buildPythonApplication rec {
 
   name = "youtube-dl-${version}";
-  version = "2016.04.06";
+  version = "2016.05.21.2";
 
   src = fetchurl {
     url = "http://yt-dl.org/downloads/${version}/${name}.tar.gz";
-    sha256 = "1kdrjwrn0x1wmvansvd2222gfqnld4zdihf2jwnz36112r1p8nhi";
+    sha256 = "66f94fc97012c4c7a6338dc4df6ec62af66dcfc144c5e8c8cd8b5519756f1a98";
   };
 
   buildInputs = [ makeWrapper zip pandoc ];
diff --git a/pkgs/tools/misc/zsh-navigation-tools/default.nix b/pkgs/tools/misc/zsh-navigation-tools/default.nix
index ffd48bef58c2..419ea11a4d70 100644
--- a/pkgs/tools/misc/zsh-navigation-tools/default.nix
+++ b/pkgs/tools/misc/zsh-navigation-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "zsh-navigation-tools-${version}";
-  version = "2.1.14";
+  version = "2.1.16";
 
   src = fetchFromGitHub {
     owner = "psprint";
     repo = "zsh-navigation-tools";
     rev = "v${version}";
-    sha256 = "0q0c5kcvwxfyn5hz3ir3s03jhdr6yjs5mmldz6kpkrh45qmzq9zz";
+    sha256 = "1ccb4f5md8wn60mymk91y2p4fq9f666bc5zc9xwx1q2wra8j4yf5";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/networking/curl/7.15.nix b/pkgs/tools/networking/curl/7.15.nix
index 56046d5423dd..c3c16cc08b44 100644
--- a/pkgs/tools/networking/curl/7.15.nix
+++ b/pkgs/tools/networking/curl/7.15.nix
@@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
       "--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt"
-      ( if sslSupport then "--with-ssl=${openssl}" else "--without-ssl" )
-      ( if scpSupport then "--with-libssh2=${libssh2}" else "--without-libssh2" )
+      ( if sslSupport then "--with-ssl=${openssl.dev}" else "--without-ssl" )
+      ( if scpSupport then "--with-libssh2=${libssh2.dev}" else "--without-libssh2" )
     ]
     ++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}"
     ++ stdenv.lib.optional gssSupport "--with-gssapi=${gss}"
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 47f03cc37477..f2e6117966f0 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -51,11 +51,11 @@ stdenv.mkDerivation rec {
   configureFlags = [
       "--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt"
       "--disable-manual"
-      ( if sslSupport then "--with-ssl=${openssl}" else "--without-ssl" )
-      ( if scpSupport then "--with-libssh2=${libssh2}" else "--without-libssh2" )
+      ( if sslSupport then "--with-ssl=${openssl.dev}" else "--without-ssl" )
+      ( if scpSupport then "--with-libssh2=${libssh2.dev}" else "--without-libssh2" )
       ( if ldapSupport then "--enable-ldap" else "--disable-ldap" )
       ( if ldapSupport then "--enable-ldaps" else "--disable-ldaps" )
-      ( if idnSupport then "--with-libidn=${libidn}" else "--without-libidn" )
+      ( if idnSupport then "--with-libidn=${libidn.dev}" else "--without-libidn" )
     ]
     ++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}"
     ++ stdenv.lib.optional gssSupport "--with-gssapi=${gss}";
diff --git a/pkgs/tools/networking/http-prompt/default.nix b/pkgs/tools/networking/http-prompt/default.nix
new file mode 100644
index 000000000000..ba9b8b2d7712
--- /dev/null
+++ b/pkgs/tools/networking/http-prompt/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pythonPackages, httpie }:
+
+pythonPackages.buildPythonApplication rec {
+  version = "0.2.0";
+  name = "http-prompt";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    repo = "http-prompt";
+    owner = "eliangcs";
+    sha256 = "0hgw3kx9rfdg394darms3vqcjm6xw6qrm8gnz54nahmyxnhrxnpp";
+  };
+
+  propagatedBuildInputs = with pythonPackages; [
+    click
+    httpie
+    parsimonious
+    prompt_toolkit
+    pygments
+    six
+  ];
+
+  meta = with stdenv.lib; {
+    description = "An interactive command-line HTTP client featuring autocomplete and syntax highlighting";
+    homepage = "https://github.com/eliangcs/http-prompt";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthiasbeyer ];
+    platforms = platforms.linux; # can only test on linux
+  };
+}
diff --git a/pkgs/tools/networking/keepalived/default.nix b/pkgs/tools/networking/keepalived/default.nix
index bc0085a731eb..1d0c9d55076e 100644
--- a/pkgs/tools/networking/keepalived/default.nix
+++ b/pkgs/tools/networking/keepalived/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   '';
 
   # It doesn't know about the include/libnl<n> directory
-  NIX_CFLAGS_COMPILE="-I${libnl}/include/libnl3";
+  NIX_CFLAGS_COMPILE="-I${libnl.dev}/include/libnl3";
   NIX_LDFLAGS="-lnl-3 -lnl-genl-3";
 
   configureFlags = [
diff --git a/pkgs/tools/networking/libreswan/default.nix b/pkgs/tools/networking/libreswan/default.nix
index 1a040652ff4e..a2204f9664a1 100644
--- a/pkgs/tools/networking/libreswan/default.nix
+++ b/pkgs/tools/networking/libreswan/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, makeWrapper,
   pkgconfig, systemd, gmp, unbound, bison, flex, pam, libevent, libcap_ng, curl, nspr,
-  bash, iproute, iptables, procps, coreutils, gnused, gawk, nssTools, which, python,
+  bash, iproute, iptables, procps, coreutils, gnused, gawk, nss, which, python,
   docs ? false, xmlto
   }:
 
 let
   optional = stdenv.lib.optional;
-  version = "3.16";
+  version = "3.17";
   name = "libreswan-${version}";
   binPath = stdenv.lib.makeBinPath [
-    bash iproute iptables procps coreutils gnused gawk nssTools which python
+    bash iproute iptables procps coreutils gnused gawk nss.tools which python
   ];
 in
 
@@ -21,12 +21,12 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://download.libreswan.org/${name}.tar.gz";
-    sha256 = "15qv4101p1jw591l04gsfscb3farzd278mgi8yph015vmifyjxrd";
+    sha256 = "00qd1n6f5w4xr06yanfpnbnn7y7rq2m878ifa3hh13bdgzsqdhi8";
   };
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ pkgconfig bash iproute iptables systemd coreutils gnused gawk gmp unbound bison flex pam libevent
-                  libcap_ng curl nspr nssTools python ]
+                  libcap_ng curl nspr nss python ]
                 ++ optional docs xmlto;
 
   prePatch = ''
diff --git a/pkgs/tools/networking/linkchecker/add-no-robots-flag.patch b/pkgs/tools/networking/linkchecker/add-no-robots-flag.patch
new file mode 100644
index 000000000000..270ef2c02e1e
--- /dev/null
+++ b/pkgs/tools/networking/linkchecker/add-no-robots-flag.patch
@@ -0,0 +1,60 @@
+diff --git a/linkcheck/checker/httpurl.py b/linkcheck/checker/httpurl.py
+index 6f207b6..161619c 100644
+--- a/linkcheck/checker/httpurl.py
++++ b/linkcheck/checker/httpurl.py
+@@ -75,7 +75,7 @@ def allows_robots (self, url):
+         @return: True if access is granted, otherwise False
+         @rtype: bool
+         """
+-        return self.aggregate.robots_txt.allows_url(self)
++        return not self.aggregate.config['robotstxt'] or self.aggregate.robots_txt.allows_url(self)
+ 
+     def content_allows_robots (self):
+         """
+diff --git a/linkcheck/configuration/__init__.py b/linkcheck/configuration/__init__.py
+index fc2c148..234fa05 100644
+--- a/linkcheck/configuration/__init__.py
++++ b/linkcheck/configuration/__init__.py
+@@ -163,6 +163,7 @@ def __init__ (self):
+         ## checking options
+         self["allowedschemes"] = []
+         self['cookiefile'] = None
++        self['robotstxt'] = True
+         self["debugmemory"] = False
+         self["localwebroot"] = None
+         self["maxfilesizeparse"] = 1*1024*1024
+diff --git a/linkcheck/configuration/confparse.py b/linkcheck/configuration/confparse.py
+index 67751ed..845fa95 100644
+--- a/linkcheck/configuration/confparse.py
++++ b/linkcheck/configuration/confparse.py
+@@ -149,6 +149,7 @@ def read_checking_config (self):
+                  self.get(section, 'allowedschemes').split(',')]
+         self.read_boolean_option(section, "debugmemory")
+         self.read_string_option(section, "cookiefile")
++        self.read_boolean_option(section, "robotstxt")
+         self.read_string_option(section, "localwebroot")
+         try:
+             self.read_boolean_option(section, "sslverify")
+diff --git a/linkchecker b/linkchecker
+index 199532c..9e91fa5 100755
+--- a/linkchecker
++++ b/linkchecker
+@@ -321,6 +321,9 @@ group.add_argument("--cookiefile", dest="cookiefile", metavar="FILENAME",
+                  help=_(
+ """Read a file with initial cookie data. The cookie data format is
+ explained below."""))
++# const because store_false doesn't detect absent flags
++group.add_argument("--no-robots", action="store_const", const=False,
++                   dest="norobotstxt", help=_("Disable robots.txt checks"))
+ group.add_argument("--check-extern", action="store_true",
+                  dest="checkextern", help=_("""Check external URLs."""))
+ group.add_argument("--ignore-url", action="append", metavar="REGEX",
+@@ -431,6 +434,8 @@ if options.externstrict:
+ if options.extern:
+     pats = [linkcheck.get_link_pat(arg) for arg in options.extern]
+     config["externlinks"].extend(pats)
++if options.norobotstxt is not None:
++    config['robotstxt'] = options.norobotstxt
+ if options.checkextern:
+     config["checkextern"] = True
+ elif not config["checkextern"]:
diff --git a/pkgs/tools/networking/linkchecker/default.nix b/pkgs/tools/networking/linkchecker/default.nix
new file mode 100644
index 000000000000..79566f129019
--- /dev/null
+++ b/pkgs/tools/networking/linkchecker/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, fetchurl, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+  name = "LinkChecker-${version}";
+  version = "9.3";
+
+  # LinkChecker 9.3 only works with requests 2.9.x
+  propagatedBuildInputs = with python2Packages ; [ requests2 ]; 
+
+  src = fetchurl {
+    url = "mirror://pypi/L/LinkChecker/${name}.tar.gz";
+    sha256 = "0v8pavf0bx33xnz1kwflv0r7lxxwj7vg3syxhy2wzza0wh6sc2pf";
+  };
+
+  # upstream refuses to support ignoring robots.txt
+  patches = [
+    ./add-no-robots-flag.patch
+  ];
+
+  postInstall = ''
+    rm $out/bin/linkchecker-gui
+  '';
+
+  meta = {
+    description = "Check websites for broken links";
+    homepage = "https://wummel.github.io/linkchecker/";
+    license = lib.licenses.gpl2;
+    maintainers = with lib.maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/tools/networking/mailsend/default.nix b/pkgs/tools/networking/mailsend/default.nix
index 363c22c8bb89..6f5552782190 100644
--- a/pkgs/tools/networking/mailsend/default.nix
+++ b/pkgs/tools/networking/mailsend/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="mailsend";
-    version="1.18";
+    version="1.19";
     name="${baseName}-${version}";
-    hash="1fjrb6q7y2dxx0qz7r0wlhqfkjqq1vfh7yb7jl77h5qi5kd5rm46";
-    url="https://github.com/muquit/mailsend/archive/1.18.tar.gz";
-    sha256="1fjrb6q7y2dxx0qz7r0wlhqfkjqq1vfh7yb7jl77h5qi5kd5rm46";
+    hash="1xwk6jvl5li8ddlik1lj88qswnyminp9wlf5cm8gg3n54szgcpjn";
+    url="https://github.com/muquit/mailsend/archive/1.19.tar.gz";
+    sha256="1xwk6jvl5li8ddlik1lj88qswnyminp9wlf5cm8gg3n54szgcpjn";
   };
   buildInputs = [
     openssl
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
     inherit (s) url sha256;
   };
   configureFlags = [
-    "--with-openssl=${openssl}"
+    "--with-openssl=${openssl.dev}"
   ];
   meta = {
     inherit (s) version;
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index 2d5477ee8e49..34506cb823d0 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -13,8 +13,6 @@ stdenv.mkDerivation rec {
     sha256 = "17jan0g5jzp8mrpklyacwdgnnw016m1c5pc4az5im6qhc260yirs";
   };
 
-  outputs = [ "dev" "out" ];
-
   preConfigure = ''
     substituteInPlace configure --replace /usr/bin/uname ${coreutils}/bin/uname
     substituteInPlace configure --replace /usr/bin/file ${file}/bin/file
diff --git a/pkgs/tools/networking/oslrd/default.nix b/pkgs/tools/networking/olsrd/default.nix
index 90f686f77ea6..90f686f77ea6 100644
--- a/pkgs/tools/networking/oslrd/default.nix
+++ b/pkgs/tools/networking/olsrd/default.nix
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 4f27c89fa829..6f7b72c1f1c1 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -15,9 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ lzo openssl pkgconfig ]
                   ++ optionals stdenv.isLinux [ pam systemd iproute ];
 
-  configureFlags = ''
-    --enable-password-save
-  '' + optionalString stdenv.isLinux ''
+  configureFlags = optionalString stdenv.isLinux ''
     --enable-systemd
     --enable-iproute2
     IPROUTE=${iproute}/sbin/ip
@@ -32,8 +30,6 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  NIX_LDFLAGS = optionalString stdenv.isLinux "-lsystemd-daemon"; # hacky
-
   meta = {
     description = "A robust and highly flexible tunneling application";
     homepage = http://openvpn.net/;
diff --git a/pkgs/tools/networking/sstp/default.nix b/pkgs/tools/networking/sstp/default.nix
index ed28db45f100..6dbd62679939 100644
--- a/pkgs/tools/networking/sstp/default.nix
+++ b/pkgs/tools/networking/sstp/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     '';
 
   configureFlags = [
-    "--with-openssl=${openssl}"
+    "--with-openssl=${openssl.dev}"
     "--with-runtime-dir=/run/sstpc"
     "--with-pppd-plugin-dir=$(out)/lib/pppd"
   ];
diff --git a/pkgs/tools/networking/strongswan/default.nix b/pkgs/tools/networking/strongswan/default.nix
index 1e8b1a1b299f..1e00157c4874 100644
--- a/pkgs/tools/networking/strongswan/default.nix
+++ b/pkgs/tools/networking/strongswan/default.nix
@@ -4,11 +4,12 @@
 , enableTNC ? false }:
 
 stdenv.mkDerivation rec {
-  name = "strongswan-5.3.2";
+  name = "strongswan-${version}";
+  version = "5.4.0";
 
   src = fetchurl {
     url = "http://download.strongswan.org/${name}.tar.bz2";
-    sha256 = "09gjrd5f8iykh926y35blxlm2hlzpw15m847d8vc9ga29s6brad4";
+    sha256 = "12dy7dfwblihrc2zs0fdvyimvgi2g5mvgh0ksjkxi73axam8ya7q";
   };
 
   dontPatchELF = true;
diff --git a/pkgs/tools/networking/stunnel/default.nix b/pkgs/tools/networking/stunnel/default.nix
index 48e3c5625832..cd0c1e56baca 100644
--- a/pkgs/tools/networking/stunnel/default.nix
+++ b/pkgs/tools/networking/stunnel/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ openssl ];
   configureFlags = [
-    "--with-ssl=${openssl}"
+    "--with-ssl=${openssl.dev}"
     "--sysconfdir=/etc"
     "--localstatedir=/var"
   ];
diff --git a/pkgs/tools/networking/toxvpn/default.nix b/pkgs/tools/networking/toxvpn/default.nix
new file mode 100644
index 000000000000..3b5627db2156
--- /dev/null
+++ b/pkgs/tools/networking/toxvpn/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, libtoxcore, cmake, jsoncpp, lib, stdenvAdapters, libsodium, systemd, enableDebugging, libcap }:
+
+with lib;
+
+let
+  libtoxcoreLocked = stdenv.lib.overrideDerivation libtoxcore (oldAttrs: {
+    name = "libtoxcore-20151110";
+    src = fetchFromGitHub {
+      owner  = "irungentoo";
+      repo   = "toxcore";
+      rev    = "22634a4b93dda5b17cb357cd84ac46fcfdc22519";
+      sha256 = "01i92wm5lg2p7k71qn23sfh01xi8acdrwn23rk52n54h424l1fgy";
+    };
+  });
+
+in stdenv.mkDerivation {
+  name = "toxvpn-20151111";
+
+  src = fetchFromGitHub {
+    owner  = "cleverca22";
+    repo   = "toxvpn";
+    rev    = "1d06bb7da277d46abb8595cf152210c4ccf0ba7d";
+    sha256 = "1himrbdgsbkfha1d87ysj2hwyz4a6z9yxqbai286imkya84q7r15";
+  };
+
+  buildInputs = [ cmake libtoxcoreLocked jsoncpp libsodium systemd libcap ];
+
+  cmakeFlags = [ "-DSYSTEMD=1" ];
+
+  meta = with stdenv.lib; {
+    description = "A powerful tool that allows one to make tunneled point to point connections over Tox";
+    homepage    = https://github.com/cleverca22/toxvpn;
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ cleverca22 obadz ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index f639044a195d..684b9b13a804 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-ssl=${openssl.dev}"
-    "--with-libexpat=${expat}"
+    "--with-libexpat=${expat.dev}"
     "--with-libevent=${libevent.dev}"
     "--localstatedir=/var"
     "--sysconfdir=/etc"
diff --git a/pkgs/tools/networking/uwimap/default.nix b/pkgs/tools/networking/uwimap/default.nix
index 69b3e633f379..c2c707fbc77a 100644
--- a/pkgs/tools/networking/uwimap/default.nix
+++ b/pkgs/tools/networking/uwimap/default.nix
@@ -20,13 +20,13 @@ stdenv.mkDerivation {
     ++ stdenv.lib.optional (!stdenv.isDarwin) pam;
 
   patchPhase = ''
-    sed -i src/osdep/unix/Makefile -e 's,/usr/local/ssl,${openssl},'
+    sed -i src/osdep/unix/Makefile -e 's,/usr/local/ssl,${openssl.dev},'
     sed -i src/osdep/unix/Makefile -e 's,^SSLCERTS=.*,SSLCERTS=/etc/ssl/certs,'
     sed -i src/osdep/unix/Makefile -e 's,^SSLLIB=.*,SSLLIB=${openssl.out}/lib,'
   '';
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin
-    "-I${openssl}/include/openssl";
+    "-I${openssl.dev}/include/openssl";
 
   installPhase = ''
     mkdir -p $out/bin $out/lib $out/include
diff --git a/pkgs/tools/networking/vtun/default.nix b/pkgs/tools/networking/vtun/default.nix
index e14326fe9e62..b0397149e60d 100644
--- a/pkgs/tools/networking/vtun/default.nix
+++ b/pkgs/tools/networking/vtun/default.nix
@@ -16,8 +16,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = ''
     --with-lzo-headers=${lzo}/include/lzo
-    --with-ssl-headers=${openssl}/include/openssl
-    --with-blowfish-headers=${openssl}/include/openssl'';
+    --with-ssl-headers=${openssl.dev}/include/openssl
+    --with-blowfish-headers=${openssl.dev}/include/openssl'';
 
   meta = with stdenv.lib; {
       description = "Virtual Tunnels over TCP/IP with traffic shaping, compression and encryption";
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index bebb8a95a58a..e62cce9e4e3e 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -13,14 +13,14 @@ stdenv.mkDerivation rec {
   buildInputs = [ zlib bzip2 libxml2 openssl ncurses curl libiconv libmilter pcre ];
 
   configureFlags = [
-    "--with-zlib=${zlib}"
-    "--with-libbz2-prefix=${bzip2}"
+    "--with-zlib=${zlib.dev}"
+    "--with-libbz2-prefix=${bzip2.dev}"
     "--with-iconv-dir=${libiconv}"
     "--with-xml=${libxml2}"
-    "--with-openssl=${openssl}"
-    "--with-libncurses-prefix=${ncurses}"
-    "--with-libcurl=${curl}"
-    "--with-pcre=${pcre}"
+    "--with-openssl=${openssl.dev}"
+    "--with-libncurses-prefix=${ncurses.dev}"
+    "--with-libcurl=${curl.dev}"
+    "--with-pcre=${pcre.dev}"
     "--enable-milter"
     "--disable-clamav"
   ];
diff --git a/pkgs/tools/security/duo-unix/default.nix b/pkgs/tools/security/duo-unix/default.nix
index a3aa417a4eaa..af5e72faca44 100644
--- a/pkgs/tools/security/duo-unix/default.nix
+++ b/pkgs/tools/security/duo-unix/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     [ "--with-pam=$(out)/lib/security"
       "--prefix=$(out)"
       "--sysconfdir=$(out)/etc/duo"
-      "--with-openssl=${openssl}"
+      "--with-openssl=${openssl.dev}"
       "--enable-lib64=no"
     ];
 
diff --git a/pkgs/tools/security/ecryptfs/default.nix b/pkgs/tools/security/ecryptfs/default.nix
index 08fee5c8c149..0c3a74d12495 100644
--- a/pkgs/tools/security/ecryptfs/default.nix
+++ b/pkgs/tools/security/ecryptfs/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "ecryptfs-${version}";
-  version = "110";
+  version = "111";
 
   src = fetchurl {
     url = "http://launchpad.net/ecryptfs/trunk/${version}/+download/ecryptfs-utils_${version}.orig.tar.gz";
-    sha256 = "1x03m9s409fmzjcnsa9f9ghzkpxcnj9irj05rx7jlwm5cach0lqs";
+    sha256 = "0zwq19siiwf09h7lwa7n7mgmrr8cxifp45lmwgcfr8c1gviv6b0i";
   };
 
   # TODO: replace wrapperDir below with from <nixos> config.security.wrapperDir;
diff --git a/pkgs/tools/security/eid-mw/default.nix b/pkgs/tools/security/eid-mw/default.nix
index 23f10ba0750e..5ee630539b69 100644
--- a/pkgs/tools/security/eid-mw/default.nix
+++ b/pkgs/tools/security/eid-mw/default.nix
@@ -4,10 +4,10 @@
 
 stdenv.mkDerivation rec {
   name = "eid-mw-${version}";
-  version = "4.1.17";
+  version = "4.1.18";
 
   src = fetchFromGitHub {
-    sha256 = "11d4wafcbhamkqvcfqkpz1sq66jq7bxz07m777cqsnyibccns7q6";
+    sha256 = "049rxrlcwcb9yir8q2inmqlslp49alpgm4pccl138xl34cg1hyhl";
     rev = "v${version}";
     repo = "eid-mw";
     owner = "Fedict";
diff --git a/pkgs/tools/security/john/default.nix b/pkgs/tools/security/john/default.nix
index dfaa56f0c772..c44f144bea68 100644
--- a/pkgs/tools/security/john/default.nix
+++ b/pkgs/tools/security/john/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, openssl, nss, nspr, kerberos, gmp, zlib, libpcap, re2
-, writeText
+, writeText, gcc
 }:
 
 with stdenv.lib;
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   preConfigure = "cd src";
   configureFlags = [ "--disable-native-macro" ];
 
-  buildInputs = [ openssl nss nspr kerberos gmp zlib libpcap re2 ];
+  buildInputs = [ openssl nss nspr kerberos gmp zlib libpcap re2 gcc ];
   enableParallelBuilding = true;
 
   NIX_CFLAGS_COMPILE = [ "-DJOHN_SYSTEMWIDE=1" ];
diff --git a/pkgs/tools/security/modsecurity/default.nix b/pkgs/tools/security/modsecurity/default.nix
index 09754f53a9ed..0b6900fb214d 100644
--- a/pkgs/tools/security/modsecurity/default.nix
+++ b/pkgs/tools/security/modsecurity/default.nix
@@ -17,11 +17,11 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--enable-standalone-module"
     "--enable-static"
-    "--with-curl=${curl}"
-    "--with-apxs=${apacheHttpd}/bin/apxs"
-    "--with-pcre=${pcre}"
-    "--with-apr=${apr}"
-    "--with-apu=${aprutil}/bin/apu-1-config"
+    "--with-curl=${curl.dev}"
+    "--with-apxs=${apacheHttpd.dev}/bin/apxs"
+    "--with-pcre=${pcre.dev}"
+    "--with-apr=${apr.dev}"
+    "--with-apu=${aprutil.dev}/bin/apu-1-config"
     "--with-libxml=${libxml2}"
   ];
 
diff --git a/pkgs/tools/security/prey/default.nix b/pkgs/tools/security/prey/default.nix
index 656bb4aede09..bf1197c2bf2e 100644
--- a/pkgs/tools/security/prey/default.nix
+++ b/pkgs/tools/security/prey/default.nix
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
     cp -R . $out
     cp -R ${modulesSrc}/* $out/modules/
     wrapProgram "$out/prey.sh" \
-      --prefix PATH ":" "${xawtv}/bin:${imagemagick}/bin:${curl.bin}/bin:${scrot}/bin:${inetutils}/bin:${coreutils}/bin" \
+      --prefix PATH ":" "${xawtv}/bin:${imagemagick.out}/bin:${curl.bin}/bin:${scrot}/bin:${inetutils}/bin:${coreutils}/bin" \
       --set CURL_CA_BUNDLE "/etc/ssl/certs/ca-certificates.crt"
   '';
 
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index 6d162188a539..7176b491afaf 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -1,14 +1,19 @@
-{ stdenv, fetchurl, boost, cmake, curl, leatherman, libyamlcpp, openssl, utillinux }:
+{ stdenv, fetchurl, boost, cmake, curl, leatherman, libyamlcpp, openssl, ruby, utillinux }:
 
 stdenv.mkDerivation rec {
   name = "facter-${version}";
-  version = "3.1.5";
+  version = "3.1.6";
   src = fetchurl {
     url = "https://downloads.puppetlabs.com/facter/${name}.tar.gz";
-    sha256 = "0k2k92y42zb6vf542zwkhvg15kv32yb4zvw6nlcqlgmyg19c5qmv";
+    sha256 = "1kv4k9zqpsiw362kk1rw1a4sixd0pmnh57ghd4k4pffr2dkmdfsv";
   };
 
-  buildInputs = [ boost cmake curl leatherman libyamlcpp openssl utillinux ];
+  cmakeFlags = [ "-DFACTER_RUBY=${ruby}/lib/libruby.so" ];
+
+  # since we cant expand $out in cmakeFlags
+  preConfigure = "cmakeFlags+=\" -DRUBY_LIB_INSTALL=$out/lib/ruby\"";
+
+  buildInputs = [ boost cmake curl leatherman libyamlcpp openssl ruby utillinux ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/puppetlabs/facter;
diff --git a/pkgs/tools/system/freeipmi/default.nix b/pkgs/tools/system/freeipmi/default.nix
index 3a88267f6c4f..44e249102965 100644
--- a/pkgs/tools/system/freeipmi/default.nix
+++ b/pkgs/tools/system/freeipmi/default.nix
@@ -1,12 +1,12 @@
 { fetchurl, stdenv, libgcrypt, readline }:
 
 stdenv.mkDerivation rec {
-  version = "1.5.1";
+  version = "1.5.2";
   name = "freeipmi-${version}";
 
   src = fetchurl {
     url = "mirror://gnu/freeipmi/${name}.tar.gz";
-    sha256 = "0lhjxlha4j5rx11d81y1rgp9j18rlpxsjc0flsmj6bm60awmm627";
+    sha256 = "0xgfwk6lxwwzq8pbyxjl5xxpybs9p4qwgb7q0ykf048xwxha4kvk";
   };
 
   buildInputs = [ libgcrypt readline ];
diff --git a/pkgs/tools/system/monit/default.nix b/pkgs/tools/system/monit/default.nix
index 0ee32a49c07b..66a2703932db 100644
--- a/pkgs/tools/system/monit/default.nix
+++ b/pkgs/tools/system/monit/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl ] ++ stdenv.lib.optionals usePAM [ pam ];
 
   configureFlags = [
-    "--with-ssl-incl-dir=${openssl}/include"
+    "--with-ssl-incl-dir=${openssl.dev}/include"
     "--with-ssl-lib-dir=${openssl.out}/lib"
   ] ++ stdenv.lib.optionals (! usePAM) [ "--without-pam" ];
 
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
index 7c2365885444..622f5fc6ceae 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, zlib, kmod, which }:
 
 stdenv.mkDerivation rec {
-  name = "pciutils-3.4.1"; # with database from 2016-01
+  name = "pciutils-3.5.1"; # with database from 2016-05
 
   src = fetchurl {
     url = "mirror://kernel/software/utils/pciutils/${name}.tar.xz";
-    sha256 = "0am8hiv435h2dayclnkdk8qjlpj08m4djf6sv15n9l84av658mc6";
+    sha256 = "0byl2f897w5lhs4bvr6p7qwcz9bllj2zyfv7nywbcbsnb9ha9wrb";
   };
 
   buildInputs = [ pkgconfig zlib kmod which ];
diff --git a/pkgs/tools/text/gawk/default.nix b/pkgs/tools/text/gawk/default.nix
index 8578960b9875..c7e0857c2ca4 100644
--- a/pkgs/tools/text/gawk/default.nix
+++ b/pkgs/tools/text/gawk/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional stdenv.isDarwin locale;
 
   configureFlags = stdenv.lib.optional (stdenv.system != "x86_64-cygwin") "--with-libsigsegv-prefix=${libsigsegv}"
-    ++ [(if interactive then "--with-readline=${readline}" else "--without-readline")];
+    ++ [(if interactive then "--with-readline=${readline.dev}" else "--without-readline")];
 
   postInstall = "rm $out/bin/gawk-*";
 
diff --git a/pkgs/tools/text/platinum-searcher/default.nix b/pkgs/tools/text/platinum-searcher/default.nix
new file mode 100644
index 000000000000..ca4ac0b8a9a5
--- /dev/null
+++ b/pkgs/tools/text/platinum-searcher/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, lib, go, goPackages, fetchFromGitHub }:
+
+with goPackages;
+
+buildGoPackage rec {
+  name = "the_platinum_searcher-${version}";
+  version = "2.1.1";
+  rev = "v2.1.1";
+
+  buildInputs = [ go go-flags ansicolor text toml yaml-v2 ];
+
+  goPackagePath = "github.com/monochromegane/the_platinum_searcher";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "monochromegane";
+    repo = "the_platinum_searcher";
+    sha256 = "06cs936w3l64ikszcysdm9ijn52kwgi1ffjxkricxbdb677gsk23";
+  };
+
+  extraSrcs = [
+    {
+      goPackagePath = "github.com/monochromegane/conflag";
+
+      src = fetchFromGitHub {
+        owner = "monochromegane";
+        repo = "conflag";
+        rev = "6d68c9aa4183844ddc1655481798fe4d90d483e9";
+        sha256 = "0csfr5c8d3kbna9sqhzfp2z06wq6mc6ijja1zj2i82kzsq8534wa";
+      };
+    }
+    {
+      goPackagePath = "github.com/monochromegane/go-gitignore";
+
+      src = fetchFromGitHub {
+        owner = "monochromegane";
+        repo = "go-gitignore";
+        rev = "38717d0a108ca0e5af632cd6845ca77d45b50729";
+        sha256 = "0r1inabpgg6sn6i47b02hcmd2p4dc1ab1mcy20mn1b2k3mpdj4b7";
+      };
+    }
+    {
+      goPackagePath = "github.com/monochromegane/go-home";
+
+      src = fetchFromGitHub {
+        owner = "monochromegane";
+        repo = "go-home";
+        rev = "25d9dda593924a11ea52e4ffbc8abdb0dbe96401";
+        sha256 = "172chakrj22xfm0bcda4qj5zqf7lwr53pzwc3xj6wz8vd2bcxkww";
+      };
+    }
+    {
+      goPackagePath = "github.com/monochromegane/terminal";
+
+      src = fetchFromGitHub {
+        owner = "monochromegane";
+        repo = "terminal";
+        rev = "2da212063ce19aed90ee5bbb00ad1ad7393d7f48";
+        sha256 = "1rddaq9pk5q57ildms35iihghqk505gb349pb0f6k3svchay38nh";
+      };
+    }
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/monochromegane/the_platinum_searcher;
+    description = "A code search tool similar to ack and the_silver_searcher(ag).";
+    platforms = platforms.all;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/tools/text/xml/xml2/default.nix b/pkgs/tools/text/xml/xml2/default.nix
index 89d56e030e07..203f0940990f 100644
--- a/pkgs/tools/text/xml/xml2/default.nix
+++ b/pkgs/tools/text/xml/xml2/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
     homepage = http://ofb.net/~egnor/xml2/;
     description = "Tools for command line processing of XML, HTML, and CSV";
     license = licenses.gpl2Plus;
+    platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/pkgs/tools/text/xml/xmlstarlet/default.nix b/pkgs/tools/text/xml/xmlstarlet/default.nix
index 74f7e08900a7..b390a9c404a3 100644
--- a/pkgs/tools/text/xml/xmlstarlet/default.nix
+++ b/pkgs/tools/text/xml/xmlstarlet/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   preConfigure =
     ''
-      export LIBXSLT_PREFIX=${libxslt}
+      export LIBXSLT_PREFIX=${libxslt.dev}
       export LIBXML_PREFIX=${libxml2}
       export LIBXSLT_LIBS=$(pkg-config --libs libxslt libexslt)
       export LIBXML_LIBS=$(pkg-config --libs libxml-2.0)
diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix
index 7c393c524151..e623f67e64bc 100644
--- a/pkgs/tools/typesetting/asciidoc/default.nix
+++ b/pkgs/tools/typesetting/asciidoc/default.nix
@@ -223,7 +223,7 @@ stdenv.mkDerivation rec {
 
     sed -e "s|run('abc2ly|run('${lilypond}/bin/abc2ly|g" \
         -e "s|run('lilypond|run('${lilypond}/bin/lilypond|g" \
-        -e "s|run('convert|run('${imagemagick}/bin/convert|g" \
+        -e "s|run('convert|run('${imagemagick.out}/bin/convert|g" \
         -i "filters/music/music2png.py"
 
     sed -e 's|filter="source-highlight|filter="${sourceHighlight}/bin/source-highlight|' \
diff --git a/pkgs/tools/typesetting/tex/dblatex/default.nix b/pkgs/tools/typesetting/tex/dblatex/default.nix
index 0aab900f1503..a7bc527042e4 100644
--- a/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
             -e 's|cmd = "inkscape|cmd = "${inkscape}/bin/inkscape|g' \
             -e 's|cmd = "fig2dev|cmd = "${transfig}/bin/fig2dev|g' \
             -e 's|cmd = \["ps2pdf|cmd = ["${ghostscript}/bin/ps2pdf|g' \
-            -e 's|cmd = "convert|cmd = "${imagemagick}/bin/convert|g' \
+            -e 's|cmd = "convert|cmd = "${imagemagick.out}/bin/convert|g' \
             -i "$file"
     done
   '';