summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/runningx/default.nix2
-rw-r--r--pkgs/tools/X11/setroot/default.nix2
-rw-r--r--pkgs/tools/X11/xpra/default.nix4
-rw-r--r--pkgs/tools/X11/xpra/gtk3.nix4
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix6
-rw-r--r--pkgs/tools/admin/gtk-vnc/default.nix4
-rw-r--r--pkgs/tools/admin/salt/default.nix2
-rw-r--r--pkgs/tools/archivers/cromfs/default.nix10
-rw-r--r--pkgs/tools/audio/darkice/default.nix8
-rw-r--r--pkgs/tools/audio/darkice/fix-undeclared-memmove.patch13
-rw-r--r--pkgs/tools/backup/bareos/default.nix2
-rw-r--r--pkgs/tools/backup/btrbk/default.nix2
-rw-r--r--pkgs/tools/backup/duplicity/default.nix2
-rw-r--r--pkgs/tools/backup/store-backup/default.nix2
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix2
-rw-r--r--pkgs/tools/bootloaders/refind/default.nix31
-rw-r--r--pkgs/tools/cd-dvd/unetbootin/default.nix2
-rw-r--r--pkgs/tools/filesystems/fuseiso/default.nix2
-rw-r--r--pkgs/tools/filesystems/genromfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/lizardfs/default.nix2
-rw-r--r--pkgs/tools/graphics/neural-style/default.nix57
-rw-r--r--pkgs/tools/graphics/neural-style/neural-style.sh25
-rw-r--r--pkgs/tools/graphics/pdfread/default.nix2
-rw-r--r--pkgs/tools/graphics/plotutils/default.nix12
-rw-r--r--pkgs/tools/graphics/quirc/default.nix12
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-table-other/default.nix8
-rw-r--r--pkgs/tools/inputmethods/ibus/default.nix4
-rw-r--r--pkgs/tools/misc/disper/default.nix2
-rw-r--r--pkgs/tools/misc/dumptorrent/default.nix5
-rw-r--r--pkgs/tools/misc/exa/default.nix2
-rw-r--r--pkgs/tools/misc/fontforge/default.nix4
-rw-r--r--pkgs/tools/misc/gparted/default.nix2
-rw-r--r--pkgs/tools/misc/plowshare/default.nix2
-rw-r--r--pkgs/tools/misc/profile-cleaner/default.nix2
-rw-r--r--pkgs/tools/misc/sl/default.nix2
-rw-r--r--pkgs/tools/misc/system-config-printer/default.nix9
-rw-r--r--pkgs/tools/misc/unclutter-xfixes/default.nix51
-rw-r--r--pkgs/tools/misc/unclutter/default.nix2
-rw-r--r--pkgs/tools/misc/yad/default.nix18
-rw-r--r--pkgs/tools/networking/argus-clients/default.nix41
-rw-r--r--pkgs/tools/networking/argus/default.nix46
-rw-r--r--pkgs/tools/networking/ccnet/default.nix4
-rw-r--r--pkgs/tools/networking/dhcp/default.nix2
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix4
-rw-r--r--pkgs/tools/networking/ferm/default.nix38
-rw-r--r--pkgs/tools/networking/lftp/default.nix2
-rw-r--r--pkgs/tools/networking/mosh/default.nix17
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager/0.9.8/default.nix8
-rw-r--r--pkgs/tools/networking/network-manager/0.9.8/nixos-purity.patch4
-rw-r--r--pkgs/tools/networking/network-manager/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager/openconnect.nix6
-rw-r--r--pkgs/tools/networking/network-manager/openvpn.nix6
-rw-r--r--pkgs/tools/networking/network-manager/vpnc.nix6
-rw-r--r--pkgs/tools/networking/offlineimap/default.nix4
-rw-r--r--pkgs/tools/networking/openvpn/openvpn_learnaddress.nix2
-rw-r--r--pkgs/tools/networking/snabb/default.nix4
-rw-r--r--pkgs/tools/networking/srelay/default.nix2
-rw-r--r--pkgs/tools/networking/tlsdate/default.nix2
-rw-r--r--pkgs/tools/networking/wget/default.nix9
-rw-r--r--pkgs/tools/networking/wicd/default.nix2
-rw-r--r--pkgs/tools/networking/wrk/default.nix19
-rw-r--r--pkgs/tools/package-management/fpm/Gemfile.lock29
-rw-r--r--pkgs/tools/package-management/fpm/gemset.nix68
-rw-r--r--pkgs/tools/package-management/packagekit/default.nix4
-rw-r--r--pkgs/tools/security/chaps/default.nix3
-rw-r--r--pkgs/tools/security/crunch/default.nix29
-rw-r--r--pkgs/tools/security/duo-unix/default.nix4
-rw-r--r--pkgs/tools/security/gencfsm/default.nix4
-rw-r--r--pkgs/tools/security/gnupg/1compat.nix2
-rw-r--r--pkgs/tools/security/pcsclite/default.nix6
-rw-r--r--pkgs/tools/security/prey/default.nix2
-rw-r--r--pkgs/tools/security/stricat/default.nix2
-rw-r--r--pkgs/tools/security/tor/default.nix23
-rw-r--r--pkgs/tools/system/collectd/default.nix3
-rw-r--r--pkgs/tools/system/dog/default.nix5
-rw-r--r--pkgs/tools/system/efibootmgr/default.nix19
-rw-r--r--pkgs/tools/system/efivar/default.nix14
-rw-r--r--pkgs/tools/system/hardlink/default.nix2
-rw-r--r--pkgs/tools/system/runit/Makefile.patch11
-rw-r--r--pkgs/tools/system/runit/default.nix28
-rw-r--r--pkgs/tools/system/smartmontools/default.nix5
-rw-r--r--pkgs/tools/system/tm/default.nix4
-rw-r--r--pkgs/tools/system/wsmancli/default.nix2
-rw-r--r--pkgs/tools/system/yeshup/default.nix2
-rw-r--r--pkgs/tools/text/kytea/default.nix28
-rw-r--r--pkgs/tools/text/odt2txt/default.nix6
-rw-r--r--pkgs/tools/text/unrtf/default.nix5
-rw-r--r--pkgs/tools/typesetting/asciidoc/default.nix2
-rw-r--r--pkgs/tools/typesetting/djvu2pdf/default.nix2
-rw-r--r--pkgs/tools/typesetting/docbook2odf/default.nix2
-rw-r--r--pkgs/tools/typesetting/pdfgrep/default.nix10
-rw-r--r--pkgs/tools/typesetting/xmlto/default.nix2
-rw-r--r--pkgs/tools/video/mjpegtools/default.nix2
-rw-r--r--pkgs/tools/virtualization/ec2-ami-tools/default.nix2
95 files changed, 666 insertions, 229 deletions
diff --git a/pkgs/tools/X11/runningx/default.nix b/pkgs/tools/X11/runningx/default.nix
index a4b3f05c94c1..1323da585c89 100644
--- a/pkgs/tools/X11/runningx/default.nix
+++ b/pkgs/tools/X11/runningx/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   phases = [ "buildPhase" "installPhase" ];
 
   buildPhase = ''
-    gcc -O2 -o RunningX $(pkg-config --cflags --libs x11) $src
+    cc -O2 -o RunningX $(pkg-config --cflags --libs x11) $src
   '';
 
   installPhase = ''
diff --git a/pkgs/tools/X11/setroot/default.nix b/pkgs/tools/X11/setroot/default.nix
index 74e0ed8d029c..81b888ccb783 100644
--- a/pkgs/tools/X11/setroot/default.nix
+++ b/pkgs/tools/X11/setroot/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libX11 imlib2 ]
     ++ stdenv.lib.optional enableXinerama libXinerama;
 
-  buildFlags = if enableXinerama then "xinerama=1" else "xinerama=0";
+  buildFlags = "CC=cc " + (if enableXinerama then "xinerama=1" else "xinerama=0");
 
   installFlags = "DESTDIR=$(out) PREFIX=";
 
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix
index 3a2c460160a7..1e5cc8465133 100644
--- a/pkgs/tools/X11/xpra/default.nix
+++ b/pkgs/tools/X11/xpra/default.nix
@@ -51,7 +51,7 @@ in buildPythonApplication rec {
       --set XPRA_LOG_DIR "\$HOME/.xpra" \
       --set XPRA_INSTALL_PREFIX "$out" \
       --prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib \
-      --prefix PATH : ${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
+      --prefix PATH : ${stdenv.lib.makeBinPath [ getopt xorgserver xauth which utillinux ]}
   '';
 
   preCheck = "exit 0";
@@ -60,7 +60,7 @@ in buildPythonApplication rec {
   #postFixup = ''
   #  sed -i '2iexport XKB_BINDIR="${xkbcomp}/bin"' $out/bin/xpra
   #  sed -i '3iexport FONTCONFIG_FILE="${fontsConf}"' $out/bin/xpra
-  #  sed -i '4iexport PATH=${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin\${PATH:+:}\$PATH' $out/bin/xpra
+  #  sed -i '4iexport PATH=${stdenv.lib.makeBinPath [ getopt xorgserver xauth which utillinux ]}\${PATH:+:}\$PATH' $out/bin/xpra
   #'';
 
 
diff --git a/pkgs/tools/X11/xpra/gtk3.nix b/pkgs/tools/X11/xpra/gtk3.nix
index f30c0751c3f2..aece94234a8c 100644
--- a/pkgs/tools/X11/xpra/gtk3.nix
+++ b/pkgs/tools/X11/xpra/gtk3.nix
@@ -54,7 +54,7 @@ buildPythonApplication rec {
       --set XKB_BINDIR "${xkbcomp}/bin" \
       --set FONTCONFIG_FILE "${fontsConf}" \
       --prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib \
-      --prefix PATH : ${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
+      --prefix PATH : ${stdenv.lib.makeBinPath [ getopt xorgserver xauth which utillinux ]}
   '';
 
   preCheck = "exit 0";
@@ -64,7 +64,7 @@ buildPythonApplication rec {
   #postFixup = ''
   #  sed -i '2iexport XKB_BINDIR="${xkbcomp}/bin"' $out/bin/xpra
   #  sed -i '3iexport FONTCONFIG_FILE="${fontsConf}"' $out/bin/xpra
-  #  sed -i '4iexport PATH=${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin\${PATH:+:}\$PATH' $out/bin/xpra
+  #  sed -i '4iexport PATH=${stdenv.lib.makeBinPath [ getopt xorgserver xauth which utillinux ]}\${PATH:+:}\$PATH' $out/bin/xpra
   #'';
 
 
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index 7da43d6fa71b..27ca19178a04 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -4,18 +4,18 @@ with python27Packages;
 
 stdenv.mkDerivation rec {
   name = "google-cloud-sdk-${version}";
-  version = "113.0.0";
+  version = "122.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 = "0v90am3zb77c1d4qbm8pn3mn4xc9xbcw48clca2v5mr5g48aq221";
+        sha256 = "0nx348yx1avbb34bpj316fb7jzyzkylscyx8kv183rg4s1q2f798";
       }
     else
       fetchurl {
         url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${name}-linux-x86_64.tar.gz";
-        sha256 = "1fjc80i1szzppib5pplw3vxh83vzkimlfcpg82vakyhvbjndnqyr";
+        sha256 = "0jhw8yv2kv0fs64rzvddx3szzpn74nqnd3rbd9wx2vi6nmffkrwv";
       };
 
   buildInputs = [python27 makeWrapper];
diff --git a/pkgs/tools/admin/gtk-vnc/default.nix b/pkgs/tools/admin/gtk-vnc/default.nix
index 657d08026e4a..9ef9755d6bcb 100644
--- a/pkgs/tools/admin/gtk-vnc/default.nix
+++ b/pkgs/tools/admin/gtk-vnc/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, gobjectIntrospection
 , python, gtk, pygtk, gnutls, cairo, libtool, glib, pkgconfig, libtasn1
 , libffi, cyrus_sasl, intltool, perl, perlPackages, libpulseaudio
-, kbproto, libX11, libXext, xextproto, pygobject, libgcrypt, gtk3, vala
+, kbproto, libX11, libXext, xextproto, pygobject, libgcrypt, gtk3, vala_0_23
 , pygobject3, libogg, enableGTK3 ? false, libgpgerror }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     python gnutls cairo libtool pkgconfig glib libffi libgcrypt
     intltool cyrus_sasl libpulseaudio perl perlPackages.TextCSV
     gobjectIntrospection libogg libgpgerror
-  ] ++ (if enableGTK3 then [ gtk3 vala pygobject3 ] else [ gtk pygtk pygobject ]);
+  ] ++ (if enableGTK3 then [ gtk3 vala_0_23 pygobject3 ] else [ gtk pygtk pygobject ]);
 
   NIX_CFLAGS_COMPILE = "-fstack-protector-all";
   configureFlags = [
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index 0cd10fcab92a..8ea3e648c311 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -34,7 +34,7 @@ pythonPackages.buildPythonApplication rec {
 
   postPatch = ''
     substituteInPlace "salt/utils/rsax931.py" \
-      --subst-var-by "libcrypto" "${openssl}/lib/libcrypto.so"
+      --subst-var-by "libcrypto" "${openssl.out}/lib/libcrypto.so"
   '';
 
   # The tests fail due to socket path length limits at the very least;
diff --git a/pkgs/tools/archivers/cromfs/default.nix b/pkgs/tools/archivers/cromfs/default.nix
index cd151698f250..23aa02bcac7f 100644
--- a/pkgs/tools/archivers/cromfs/default.nix
+++ b/pkgs/tools/archivers/cromfs/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, pkgconfig, fuse, perl, gcc48 }:
+{ stdenv, fetchurl, pkgconfig, fuse, perl }:
 
 stdenv.mkDerivation rec {
   name = "cromfs-1.5.10.2";
-  
+
   src = fetchurl {
     url = "http://bisqwit.iki.fi/src/arch/${name}.tar.bz2";
     sha256 = "0xy2x1ws1qqfp7hfj6yzm80zhrxzmhn0w2yns77im1lmd2h18817";
   };
 
-  patchPhase = ''sed -i 's@/bin/bash@/bin/sh@g' configure'';
+  postPatch = "patchShebangs configure";
 
   # Removing the static linking, as it doesn't compile in x86_64.
   makeFlags = "cromfs-driver util/mkcromfs util/unmkcromfs util/cvcromfs";
-  
+
   installPhase = ''
     install -d $out/bin
     install cromfs-driver $out/bin
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     install util/unmkcromfs $out/bin
   '';
 
-  buildInputs = [ pkgconfig fuse perl gcc48 ];
+  buildInputs = [ pkgconfig fuse perl ];
 
   meta = {
     description = "FUSE Compressed ROM filesystem with lzma";
diff --git a/pkgs/tools/audio/darkice/default.nix b/pkgs/tools/audio/darkice/default.nix
index 8ac9039b57e0..d9e1d196915f 100644
--- a/pkgs/tools/audio/darkice/default.nix
+++ b/pkgs/tools/audio/darkice/default.nix
@@ -20,11 +20,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "darkice-${version}";
-  version = "1.2";
+  version = "1.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/darkice/${version}/darkice-${version}.tar.gz";
-    sha256 = "0m5jzmja7a9x15zl1634bhxrg3rccph9rkar0rmz6wlw5nzakyxk";
+    sha256 = "1rlxds7ssq7nk2in4s46xws7xy9ylxsqgcz85hxjgh17lsm0y39c";
   };
 
   configureFlags = [
@@ -40,6 +40,10 @@ in stdenv.mkDerivation rec {
 #    "--with-twolame-prefix=${twolame}" ### missing: twolame
   ];
 
+  patches = [ ./fix-undeclared-memmove.patch ];
+
+  enableParallelBuilding = true;
+
   meta = {
     homepage = http://darkice.org/;
     description = "Live audio streamer";
diff --git a/pkgs/tools/audio/darkice/fix-undeclared-memmove.patch b/pkgs/tools/audio/darkice/fix-undeclared-memmove.patch
new file mode 100644
index 000000000000..9b8baf9701d3
--- /dev/null
+++ b/pkgs/tools/audio/darkice/fix-undeclared-memmove.patch
@@ -0,0 +1,13 @@
+diff --git a/src/FaacEncoder.cpp b/src/FaacEncoder.cpp
+index 1100226..3ab1805 100644
+--- a/src/FaacEncoder.cpp
++++ b/src/FaacEncoder.cpp
+@@ -36,7 +36,7 @@
+ // compile the whole file only if faac support configured in
+ #ifdef HAVE_FAAC_LIB
+ 
+-
++#include <string.h>
+ 
+ #include "Exception.h"
+ #include "Util.h"
diff --git a/pkgs/tools/backup/bareos/default.nix b/pkgs/tools/backup/bareos/default.nix
index cf44d0e9c26d..79da3f8cf9bb 100644
--- a/pkgs/tools/backup/bareos/default.nix
+++ b/pkgs/tools/backup/bareos/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     ++ 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 (libmysql != null) "--with-mysql=${libmysql.dev}"
     ++ optional (zlib != null) "--with-zlib=${zlib.dev}"
     ++ optional (lzo != null) "--with-lzo=${lzo}"
     ++ optional (jansson != null) "--with-jansson=${jansson}"
diff --git a/pkgs/tools/backup/btrbk/default.nix b/pkgs/tools/backup/btrbk/default.nix
index d4e058d143ff..5faeb926c063 100644
--- a/pkgs/tools/backup/btrbk/default.nix
+++ b/pkgs/tools/backup/btrbk/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
     wrapProgram $out/sbin/btrbk \
       --set PERL5LIB $PERL5LIB \
-      --prefix PATH ':' "${btrfs-progs}/bin:${bash}/bin/"
+      --prefix PATH ':' "${stdenv.lib.makeBinPath [ btrfs-progs bash ]}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix
index 27fc11946aad..85b4a1e1a8f1 100644
--- a/pkgs/tools/backup/duplicity/default.nix
+++ b/pkgs/tools/backup/duplicity/default.nix
@@ -16,7 +16,7 @@ in stdenv.mkDerivation {
     python setup.py install --prefix=$out
     wrapProgram $out/bin/duplicity \
       --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pycrypto}):$(toPythonPath ${ecdsa}):$(toPythonPath ${paramiko}):$(toPythonPath ${boto}):$(toPythonPath ${lockfile})" \
-      --prefix PATH : "${gnupg}/bin:${ncftp}/bin"
+      --prefix PATH : "${stdenv.lib.makeBinPath [ gnupg ncftp ]}"
     wrapProgram $out/bin/rdiffdir \
       --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pycrypto}):$(toPythonPath ${ecdsa}):$(toPythonPath ${paramiko}):$(toPythonPath ${boto}):$(toPythonPath ${lockfile})"
   '';
diff --git a/pkgs/tools/backup/store-backup/default.nix b/pkgs/tools/backup/store-backup/default.nix
index 9329cd23e83f..80ff97f097de 100644
--- a/pkgs/tools/backup/store-backup/default.nix
+++ b/pkgs/tools/backup/store-backup/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     for p in $out/bin/*
       do wrapProgram "$p" \
       --prefix PERL5LIB ":" "${perlPackages.DBFile}/lib/perl5/site_perl" \
-      --prefix PATH ":" "${which}/bin:${bzip2.bin}/bin"
+      --prefix PATH ":" "${stdenv.lib.makeBinPath [ which bzip2 ]}"
     done
 
     patchShebangs $out
diff --git a/pkgs/tools/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index 7edf2ac3e890..6a668f777941 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -21,7 +21,7 @@ in stdenv.mkDerivation rec {
                 ++ lib.optional withPulseAudio libpulseaudio;
 
   postPatch = lib.optionalString withPulseAudio ''
-    sed -i 's,CDLL(",CDLL("${libpulseaudio}/lib/,g' blueman/main/PulseAudioUtils.py
+    sed -i 's,CDLL(",CDLL("${libpulseaudio.out}/lib/,g' blueman/main/PulseAudioUtils.py
   '';
 
   pythonPath = with pythonPackages; [ dbus-python pygobject3 ];
diff --git a/pkgs/tools/bootloaders/refind/default.nix b/pkgs/tools/bootloaders/refind/default.nix
index 110e00976e83..744d67c75248 100644
--- a/pkgs/tools/bootloaders/refind/default.nix
+++ b/pkgs/tools/bootloaders/refind/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl
-, unzip, gnu-efi, efibootmgr, dosfstools, imagemagick }:
+{ stdenv, fetchurl, fetchpatch
+, gnu-efi, efibootmgr, dosfstools, imagemagick }:
 
 assert (stdenv.system == "x86_64-linux" ||stdenv.system == "i686-linux");
 
@@ -9,18 +9,26 @@ stdenv.mkDerivation rec {
   srcName = "refind-src-${meta.version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/refind/${meta.version}/${srcName}.zip";
-    sha256 = "0ai150rzx20sfl92j6y1p6qnyy0wbmazrlp2fg19acs98qyxl8lh";
+    url = "mirror://sourceforge/project/refind/${meta.version}/${srcName}.tar.gz";
+    sha256 = "1r2qp29mz08lx36i7x52i2598773bxvfhwryd954ssq2baifjav5";
   };
 
-  buildInputs = [ unzip gnu-efi efibootmgr dosfstools imagemagick ];
+  patches = [
+    (fetchpatch {
+      url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=831258;filename=002-efiprot.patch;msg=10";
+      sha256 = "17h03h5mgkpamcj9jcq8h6x2admpknysrbdwccg7yxirlc52fc2s";
+      name = "002-efiprot.patch";
+    })
+  ];
+
+  buildInputs = [ gnu-efi efibootmgr dosfstools imagemagick ];
 
   HOSTARCH =
     if stdenv.system == "x86_64-linux" then "x64"
     else if stdenv.system == "i686-linux" then "ia32"
     else "null";
 
-  patchPhase = ''
+  postPatch = ''
     sed -e 's|-DEFI_FUNCTION_WRAPPER|-DEFI_FUNCTION_WRAPPER -maccumulate-outgoing-args|g' -i Make.common
     sed -e 's|-DEFIX64|-DEFIX64 -maccumulate-outgoing-args|g' -i Make.common
     sed -e 's|-m64|-maccumulate-outgoing-args -m64|g' -i filesystems/Make.gnuefi
@@ -55,9 +63,9 @@ stdenv.mkDerivation rec {
     install -D -m0644 gptsync/gptsync_${HOSTARCH}.efi $out/share/refind/tools_${HOSTARCH}/gptsync_${HOSTARCH}.efi
 
     # helper scripts
-    install -D -m0755 install.sh $out/bin/refind-install
-    install -D -m0755 mkrlconf.sh $out/bin/refind-mkrlconf
-    install -D -m0755 mvrefind.sh $out/bin/refind-mvrefind
+    install -D -m0755 refind-install $out/bin/refind-install
+    install -D -m0755 mkrlconf $out/bin/refind-mkrlconf
+    install -D -m0755 mvrefind $out/bin/refind-mvrefind
     install -D -m0755 fonts/mkfont.sh $out/bin/refind-mkfont
 
     # sample config files
@@ -76,7 +84,7 @@ stdenv.mkDerivation rec {
     rm -f $out/share/refind/fonts/mkfont.sh
 
     # icons
-    install -D -m0644 icons/* $out/share/refind/icons/
+    install -D -m0644 icons/*.png $out/share/refind/icons/
 
     # images
     install -D -m0644 images/*.{png,bmp} $out/share/refind/images/
@@ -90,11 +98,10 @@ stdenv.mkDerivation rec {
     # Post-install fixes
     sed -e "s|^ThisDir=.*|ThisDir=$out/share/refind/|g" -i $out/bin/refind-install
     sed -e "s|^RefindDir=.*|RefindDir=$out/share/refind/|g" -i $out/bin/refind-install
-    sed -e "s|^ThisScript=.*|ThisScript=$out/bin/refind-install|g" -i $out/bin/refind-install
   '';
 
   meta = with stdenv.lib; {
-    version = "0.9.2";
+    version = "0.10.3";
     description = "A graphical {,U}EFI boot manager";
     longDescription = ''
       rEFInd is a graphical boot manager for EFI- and UEFI-based
diff --git a/pkgs/tools/cd-dvd/unetbootin/default.nix b/pkgs/tools/cd-dvd/unetbootin/default.nix
index bf8cefd057ef..7d4a341f555e 100644
--- a/pkgs/tools/cd-dvd/unetbootin/default.nix
+++ b/pkgs/tools/cd-dvd/unetbootin/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     cp unetbootin.desktop $out/share/applications
 
     wrapProgram $out/bin/unetbootin \
-      --prefix PATH : ${which}/bin:${p7zip}/bin:${mtools}/bin
+      --prefix PATH : ${stdenv.lib.makeBinPath [ which p7zip mtools ]}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/filesystems/fuseiso/default.nix b/pkgs/tools/filesystems/fuseiso/default.nix
index 161425ad137b..7ea5d581a59b 100644
--- a/pkgs/tools/filesystems/fuseiso/default.nix
+++ b/pkgs/tools/filesystems/fuseiso/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   name = "fuseiso-20070708";
 
   src = fetchurl {
-    url = "http://sourceforge.net/projects/fuseiso/files/fuseiso/20070708/fuseiso-20070708.tar.bz2";
+    url = "mirror://sourceforge/project/fuseiso/fuseiso/20070708/fuseiso-20070708.tar.bz2";
     sha1 = "fe142556ad35dd7e5dc31a16183232a6e2da7692";  
   };
 
diff --git a/pkgs/tools/filesystems/genromfs/default.nix b/pkgs/tools/filesystems/genromfs/default.nix
index db1968fccdcf..7bf771803c62 100644
--- a/pkgs/tools/filesystems/genromfs/default.nix
+++ b/pkgs/tools/filesystems/genromfs/default.nix
@@ -10,7 +10,9 @@ stdenv.mkDerivation rec {
   };
 
   postPatch = ''
-    substituteInPlace Makefile --replace "prefix = /usr" "prefix = $out"
+    substituteInPlace Makefile \
+      --replace "prefix = /usr" "prefix = $out" \
+      --replace "gcc" "cc"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/filesystems/lizardfs/default.nix b/pkgs/tools/filesystems/lizardfs/default.nix
index ac20b735abc1..b956083840bd 100644
--- a/pkgs/tools/filesystems/lizardfs/default.nix
+++ b/pkgs/tools/filesystems/lizardfs/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     sha256 = "18p2pj9crjqgxxxzdfcs3j3fqhinmwi7qxcf71jsw17syqwyygh8";
   };
 
-  buildInputs = [ cmake fuse asciidoc libxml2 libxslt zlib boost pkgconfig judy pam makeWrapper ];
+  buildInputs = [ cmake fuse asciidoc libxml2.bin libxslt.bin zlib boost pkgconfig judy pam makeWrapper ];
 
   patches = [ ./412.patch ];
 
diff --git a/pkgs/tools/graphics/neural-style/default.nix b/pkgs/tools/graphics/neural-style/default.nix
new file mode 100644
index 000000000000..4efa6aa29768
--- /dev/null
+++ b/pkgs/tools/graphics/neural-style/default.nix
@@ -0,0 +1,57 @@
+{stdenv, fetchFromGitHub, torch, loadcaffe, fetchurl, bash}:
+stdenv.mkDerivation rec {
+  name = "neural-style-${version}";
+  version = "0.0pre2016.08.15";
+  buildInputs = [torch loadcaffe];
+  src = fetchFromGitHub {
+    owner = "jcjohnson";
+    repo = "neural-style";
+    rev = "ec5ba3a690d3090428d3b92b0c5d686a311bf432";
+    sha256 = "14qzbs9f95izvd0vbbirhymdw9pq2nw0jvhrh7vnyzr99xllwp02";
+  };
+  models = [
+    (fetchurl {
+      url = "https://gist.githubusercontent.com/ksimonyan/3785162f95cd2d5fee77/raw/bb2b4fe0a9bb0669211cf3d0bc949dfdda173e9e/VGG_ILSVRC_19_layers_deploy.prototxt";
+      sha256 = "09cpz7pyvc8sypg2q5j2i8yqwj1sjdbnmd6skl293p9pv13dmjg7";
+    })
+    (fetchurl {
+      url = "https://bethgelab.org/media/uploads/deeptextures/vgg_normalised.caffemodel";
+      sha256 = "11qckdvlck7wwl3pan0nawgxm8l2ccddi272i5l8rs9qzm7b23rf";
+    })
+    (fetchurl {
+      url = "http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_19_layers.caffemodel";
+      sha256 = "0m399x7pl4lnhy435ycsyz8xpzapqmx9n1sz698y2vhcqhkwdd1i";
+    })
+  ];
+  installPhase = ''
+    mkdir -p "$out"/{bin,lib/lua/neural-style/models,share/doc/neural-style,share/neural-style}
+    for file in $models; do
+      cp "$file" "$out/lib/lua/neural-style/models/$(basename "$file" | sed -e 's/[^-]*-//')"
+    done;
+    cp README* INSTALL* LICEN?E* "$out"/share/doc/neural-style/
+    cp neural_style.lua "$out"/lib/lua/neural-style
+
+    substituteAll "${./neural-style.sh}" "$out/bin/neural-style"
+    chmod a+x "$out/bin/neural-style"
+    cp "$out/bin/neural-style" .
+    cp "$out/lib/lua/neural-style/models/"* models/
+
+    echo "Testing..."
+
+    "$out/bin/neural-style" -style_image examples/inputs/golden_gate.jpg \
+      -content_image examples/inputs/golden_gate.jpg -output_image $PWD/test.png \
+      -gpu -1 -save_iter 1 -print_iter 1 -num_iterations 1 || true
+
+    cp -f "$out/lib/lua/neural-style/models/"* models/
+
+    test -e test.png || exit 1
+  '';
+  inherit torch bash loadcaffe;
+  meta = {
+    inherit version;
+    description = ''A torch implementation of the paper A Neural Algorithm of Artistic Style'';
+    license = stdenv.lib.licenses.mit ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/graphics/neural-style/neural-style.sh b/pkgs/tools/graphics/neural-style/neural-style.sh
new file mode 100644
index 000000000000..07a4d6dedc04
--- /dev/null
+++ b/pkgs/tools/graphics/neural-style/neural-style.sh
@@ -0,0 +1,25 @@
+#! @bash@/bin/bash
+
+declare -a args
+c=1
+flag=
+
+for arg in "$@"; do
+        if test "$arg" = "${arg#-}" && test "$arg" = "${arg#/}" && test -n "$flag"; then
+                arg="$PWD/$arg"
+                flag=
+        elif test "$arg" != "${arg%_image}" && test "$arg" != "${arg#-}"; then
+                flag=1
+        else
+                flag=
+        fi
+        args[c]="$arg";
+        c=$((c+1));
+done
+
+cd "@out@/lib/lua/neural-style"
+
+export LUA_PATH="$LUA_PATH${LUA_PATH:+;}@loadcaffe@/lua/?/init.lua;@loadcaffe@/lua/?.lua"
+export LUA_CPATH="$LUA_CPATH${LUA_CPATH:+;}@loadcaffe@/lib/?.so"
+
+@torch@/bin/th neural_style.lua "${args[@]}"
diff --git a/pkgs/tools/graphics/pdfread/default.nix b/pkgs/tools/graphics/pdfread/default.nix
index a4184fd9514b..3c43935e950d 100644
--- a/pkgs/tools/graphics/pdfread/default.nix
+++ b/pkgs/tools/graphics/pdfread/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
     cp -R *.py pylrs $PYDIR
 
     wrapProgram $out/bin/pdfread.py --prefix PYTHONPATH : $PYTHONPATH:${pillow}/$LIBSUFFIX/PIL:$PYDIR \
-      --prefix PATH : ${ghostscript}/bin:${pngnq}/bin:${djvulibre.bin}/bin:${unrar}/bin:${optipng}/bin
+      --prefix PATH : ${stdenv.lib.makeBinPath [ ghostscript pngnq djvulibre unrar optipng ]}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/graphics/plotutils/default.nix b/pkgs/tools/graphics/plotutils/default.nix
index 6a7a6745c87c..3cf0c5c3c89a 100644
--- a/pkgs/tools/graphics/plotutils/default.nix
+++ b/pkgs/tools/graphics/plotutils/default.nix
@@ -13,7 +13,13 @@ stdenv.mkDerivation rec {
     sha256 = "1arkyizn5wbgvbh53aziv3s6lmd3wm9lqzkhxb3hijlp1y124hjg";
   };
 
-  buildInputs = [libpng];
+  buildInputs = [ libpng ];
+
+  # disable failing test on i686
+  # https://lists.gnu.org/archive/html/bug-plotutils/2016-04/msg00002.html
+  prePatch = stdenv.lib.optionalString stdenv.isi686 ''
+    substituteInPlace test/Makefile.in --replace 'spline.test' ' '
+  '';
 
   patches = map fetchurl (import ./debian-patches.nix);
 
@@ -43,9 +49,7 @@ stdenv.mkDerivation rec {
     homepage = http://www.gnu.org/software/plotutils/;
 
     license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = [
-      stdenv.lib.maintainers.marcweber
-    ];
+    maintainers = [ stdenv.lib.maintainers.marcweber ];
     platforms = stdenv.lib.platforms.gnu;
   };
 }
diff --git a/pkgs/tools/graphics/quirc/default.nix b/pkgs/tools/graphics/quirc/default.nix
index 2769a9886695..a801dd8ebda9 100644
--- a/pkgs/tools/graphics/quirc/default.nix
+++ b/pkgs/tools/graphics/quirc/default.nix
@@ -1,17 +1,17 @@
-{stdenv, fetchgit, SDL_gfx, SDL, libjpeg, pkgconfig}:
+{stdenv, fetchgit, SDL_gfx, SDL, libjpeg, libpng, pkgconfig}:
 let
   s =
   rec {
-    date = "2014-11-01";
+    date = "2016-08-16";
     version = "git-${date}";
     baseName = "quirc";
     name = "${baseName}-${version}";
     url = "https://github.com/dlbeer/quirc";
-    rev = "3a3df0d1d6adc59fdc2cadecfaed91650b84cacb";
-    sha256 = "1r7jzxl4j93dmky8p5szpcxq7i5f7p1kfrklnzhazlizjc7a2844";
+    rev = "5b262480091d5f84a67a4a56c728fc8b39844339";
+    sha256 = "1w5qvjafn14s6jjs7kiwsqirlsqbgv0p152hrsq463pm34hp0lzy";
   };
   buildInputs = [
-    SDL SDL_gfx libjpeg pkgconfig
+    SDL SDL_gfx libjpeg pkgconfig libpng
   ];
 in
 stdenv.mkDerivation {
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   src = fetchgit {
     inherit (s) url sha256 rev;
   };
-  NIX_CFLAGS_COMPILE="-I${SDL.dev}/include/SDL";
+  NIX_CFLAGS_COMPILE="-I${SDL.dev}/include/SDL -I${SDL_gfx}/include/SDL";
   configurePhase = ''
     sed -e 's/-[og] root//g' -i Makefile
   '';
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-table-other/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-table-other/default.nix
index 40ef0b33aea4..227e17347c1f 100644
--- a/pkgs/tools/inputmethods/fcitx-engines/fcitx-table-other/default.nix
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-table-other/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, fcitx, gettext }:
+{ stdenv, fetchurl, fetchpatch, cmake, fcitx, gettext }:
 
 stdenv.mkDerivation rec {
   name = "fcitx-table-other-${version}";
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ cmake fcitx gettext ];
 
+  patches = [
+    (fetchpatch { url = https://sources.debian.net/data/main/f/fcitx-table-other/0.2.3-3/debian/patches/0001-table-other-fix-build.patch;
+                  sha256 = "06n1df9szfgfjm5al8r1mvp4cib5h0cm601kwngl6k1vqyyjzg1j";
+                })
+  ];
+
   preInstall = ''
    substituteInPlace tables/cmake_install.cmake \
       --replace ${fcitx} $out
diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index 8b830c257f07..8720674d3aff 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -34,10 +34,12 @@ stdenv.mkDerivation rec {
   buildInputs = [
     python3 pygobject3
     intltool isocodes pkgconfig
-    gtk2 gtk3 dconf glib
+    gtk2 gtk3 dconf
     dbus libnotify gobjectIntrospection wayland
   ];
 
+  propagatedBuildInputs = [ glib ];
+
   nativeBuildInputs = [ makeWrapper ];
 
   preConfigure = ''
diff --git a/pkgs/tools/misc/disper/default.nix b/pkgs/tools/misc/disper/default.nix
index 793fb8a04d80..27bb62c582a5 100644
--- a/pkgs/tools/misc/disper/default.nix
+++ b/pkgs/tools/misc/disper/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
       wrapProgram $out/bin/disper \
-        --prefix "LD_LIBRARY_PATH" : "${xorg.libXrandr.out}/lib:${xorg.libX11.out}/lib"
+        --prefix "LD_LIBRARY_PATH" : "${stdenv.lib.makeLibraryPath [ xorg.libXrandr xorg.libX11 ]}"
   '';
 
   src = fetchurl {
diff --git a/pkgs/tools/misc/dumptorrent/default.nix b/pkgs/tools/misc/dumptorrent/default.nix
index 60a2ed29bbf8..892287fa2d70 100644
--- a/pkgs/tools/misc/dumptorrent/default.nix
+++ b/pkgs/tools/misc/dumptorrent/default.nix
@@ -9,6 +9,11 @@ stdenv.mkDerivation rec {
       sha256 = "073h03bmpfdy15qh37lvppayld2747i4acpyk0pm5nf2raiak0zm";
     };
 
+    patchPhase = ''
+      substituteInPlace Makefile \
+        --replace "gcc" "cc"
+    '';
+
     installPhase = ''
       mkdir -p $out/bin
       cp ./dumptorrent $out/bin
diff --git a/pkgs/tools/misc/exa/default.nix b/pkgs/tools/misc/exa/default.nix
index 62f8d31ee7ea..d743a68c83b9 100644
--- a/pkgs/tools/misc/exa/default.nix
+++ b/pkgs/tools/misc/exa/default.nix
@@ -6,7 +6,7 @@ buildRustPackage rec {
   name = "exa-${version}";
   version = "2016-04-20";
 
-  depsSha256 = "0nyrdl57nhr3lxqs3gaij3mdmlrm0z52qv6mznvgw0ziwqmlq5w1";
+  depsSha256 = "0qsqkgc1wxigvskhaamgfp5pyc2kprsikhcfccysgs07w44nxkd0";
 
   src = fetchFromGitHub {
     owner = "ogham";
diff --git a/pkgs/tools/misc/fontforge/default.nix b/pkgs/tools/misc/fontforge/default.nix
index 0d6cfb19c349..c04b9255afcb 100644
--- a/pkgs/tools/misc/fontforge/default.nix
+++ b/pkgs/tools/misc/fontforge/default.nix
@@ -3,6 +3,7 @@
 , python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, pango
 , withGTK ? false, gtk2
 , withPython ? true
+, Carbon ? null, Cocoa ? null
 }:
 
 stdenv.mkDerivation rec {
@@ -30,7 +31,8 @@ stdenv.mkDerivation rec {
     python freetype zlib glib libungif libpng libjpeg libtiff libxml2
     pango
   ]
-    ++ lib.optionals withGTK [ gtk2 ];
+    ++ lib.optionals withGTK [ gtk2 ]
+    ++ lib.optionals (withGTK && stdenv.isDarwin) [ Carbon Cocoa ];
 
   configureFlags =
     lib.optionals (!withPython) [ "--disable-python-scripting" "--disable-python-extension" ]
diff --git a/pkgs/tools/misc/gparted/default.nix b/pkgs/tools/misc/gparted/default.nix
index 3aa2c41546b8..d73def7ab9bb 100644
--- a/pkgs/tools/misc/gparted/default.nix
+++ b/pkgs/tools/misc/gparted/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     wrapProgram $out/sbin/gparted \
       --prefix PATH : "${procps}/bin"
     wrapProgram $out/sbin/gpartedbin \
-      --prefix PATH : "${gpart}/bin:${hdparm}/bin:${utillinux}/bin"
+      --prefix PATH : "${stdenv.lib.makeBinPath [ gpart hdparm utillinux ]}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/plowshare/default.nix b/pkgs/tools/misc/plowshare/default.nix
index 4ef8cbd757ae..d1b5481ad017 100644
--- a/pkgs/tools/misc/plowshare/default.nix
+++ b/pkgs/tools/misc/plowshare/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     make PREFIX="$out" install
 
     for fn in plow{del,down,list,up}; do
-      wrapProgram "$out/bin/$fn" --prefix PATH : "${curl.bin}/bin:${spidermonkey.out}/bin"
+      wrapProgram "$out/bin/$fn" --prefix PATH : "${stdenv.lib.makeBinPath [ curl spidermonkey ]}"
     done
   '';
 
diff --git a/pkgs/tools/misc/profile-cleaner/default.nix b/pkgs/tools/misc/profile-cleaner/default.nix
index 2c1f3d77def3..a55485953a81 100644
--- a/pkgs/tools/misc/profile-cleaner/default.nix
+++ b/pkgs/tools/misc/profile-cleaner/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     PREFIX=\"\" DESTDIR=$out make install
     wrapProgram $out/bin/profile-cleaner \
-      --prefix PATH : "${parallel}/bin:${sqlite.bin}/bin"
+      --prefix PATH : "${stdenv.lib.makeBinPath [ parallel sqlite ]}"
   '';
 
   meta = {
diff --git a/pkgs/tools/misc/sl/default.nix b/pkgs/tools/misc/sl/default.nix
index d21143f56e23..7a5ceb204496 100644
--- a/pkgs/tools/misc/sl/default.nix
+++ b/pkgs/tools/misc/sl/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ ncurses ];
 
+  buildFlags = [ "CC=cc" ];
+
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man1
     cp sl $out/bin
diff --git a/pkgs/tools/misc/system-config-printer/default.nix b/pkgs/tools/misc/system-config-printer/default.nix
index 67ec9585c7ab..ab4a008fa092 100644
--- a/pkgs/tools/misc/system-config-printer/default.nix
+++ b/pkgs/tools/misc/system-config-printer/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, udev, intltool, pkgconfig, glib, xmlto
 , makeWrapper, gtk3, docbook_xml_dtd_412, docbook_xsl
 , libxml2, desktop_file_utils, libusb1, cups, gdk_pixbuf, pango, atk, libnotify
+, cups-filters
 , pythonPackages
 , withGUI ? true
 }:
@@ -39,7 +40,9 @@ in stdenv.mkDerivation rec {
       giTypelibPath = stdenv.lib.makeSearchPath "lib/girepository-1.0" [ gdk_pixbuf.out gtk3.out pango.out atk.out libnotify.out ];
     in
     ''
-      export makeWrapperArgs="--set prefix $out --set GI_TYPELIB_PATH ${giTypelibPath}"
+      export makeWrapperArgs="--set prefix $out \
+          --set GI_TYPELIB_PATH ${giTypelibPath} \
+          --set CUPS_DATADIR ${cups-filters}/share/cups"
       wrapPythonPrograms
       # The program imports itself, so we need to move shell wrappers to a proper place.
       fixupWrapper() {
@@ -59,6 +62,10 @@ in stdenv.mkDerivation rec {
 
       # The below line will be unneeded when the next upstream release arrives.
       sed -i -e "s|/usr/bin|$out/bin|" "$out/share/dbus-1/services/org.fedoraproject.Config.Printing.service"
+
+      # Manually expand literal "$(out)", which have failed to expand
+      sed -e "s|ExecStart=\$(out)|ExecStart=$out|" \
+          -i "$out/etc/systemd/system/configure-printer@.service"
     '';
 
   meta = {
diff --git a/pkgs/tools/misc/unclutter-xfixes/default.nix b/pkgs/tools/misc/unclutter-xfixes/default.nix
new file mode 100644
index 000000000000..dd13a0d9adce
--- /dev/null
+++ b/pkgs/tools/misc/unclutter-xfixes/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub,
+  xlibsWrapper, libev, libXi, libXfixes,
+  pkgconfig, asciidoc, libxslt, docbook_xsl }:
+
+let version = "1.2"; in
+
+stdenv.mkDerivation {
+  name = "unclutter-xfixes-${version}";
+  version = version;
+  
+  src = fetchFromGitHub {
+    owner = "Airblader";
+    repo = "unclutter-xfixes";
+    rev = "v${version}";
+    sha256 = "1pw567mj7mq5kr8mqnyrvy7jj62qfg6zgqfyzz21nncslddnjzg8";
+  };
+
+  nativeBuildInputs = [pkgconfig];
+  buildInputs = [
+    xlibsWrapper libev libXi libXfixes
+    asciidoc libxslt docbook_xsl
+  ];
+
+  postPatch = ''
+    substituteInPlace Makefile --replace "CC = gcc" "CC = cc"
+  '';
+
+  preBuild = ''
+    # The Makefile calls git only to discover the package version,
+    # but that doesn't work right in the build environment,
+    # so we fake it.
+    git() { echo v${version}; }
+    export -f git
+  '';
+
+  preInstall = ''
+    export DESTDIR=$out MANDIR=/man/man1
+  '';
+  
+  postInstall = ''
+    mv $out/usr/bin $out/bin
+    mv $out/usr/share/man $out/man
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Rewrite of unclutter using the X11 Xfixes extension";
+    platforms = platforms.unix;
+    license = stdenv.lib.licenses.mit;
+    inherit version;
+  };
+}
diff --git a/pkgs/tools/misc/unclutter/default.nix b/pkgs/tools/misc/unclutter/default.nix
index d8731f764b33..a8468f8387f2 100644
--- a/pkgs/tools/misc/unclutter/default.nix
+++ b/pkgs/tools/misc/unclutter/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation {
 
   buildInputs = [xlibsWrapper];
 
+  buildFlags = [ "CC=cc" ];
+
   installPhase = ''
     mkdir -pv "$out/bin"
     mkdir -pv "$out/share/man/man1"
diff --git a/pkgs/tools/misc/yad/default.nix b/pkgs/tools/misc/yad/default.nix
index 2c8660a49139..52d23d141fce 100644
--- a/pkgs/tools/misc/yad/default.nix
+++ b/pkgs/tools/misc/yad/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk2 }:
+{ stdenv, fetchurl, pkgconfig, intltool, gtk2, hicolor_icon_theme
+, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-
-  name = "yad-0.25.1";
+  name = "yad-0.37.0";
 
   src = fetchurl {
-    url = "http://yad.googlecode.com/files/${name}.tar.xz";
-    sha256 = "1pljs9799xa2w3y2vjg93gqkv76z0pjh947djd7179yq3kryb57a";
+    url = "http://sourceforge.net/projects/yad-dialog/files/${name}.tar.xz";
+    sha256 = "0fhqsgml1axaa9avd0hbam5wm77c2c7q1bz4hs7fvyvdnljazvwi";
   };
 
   configureFlags = [
@@ -16,19 +16,17 @@ stdenv.mkDerivation rec {
   # for gcc5: c11 inline semantics breaks the build
   NIX_CFLAGS_COMPILE = "-fgnu89-inline";
 
-  buildInputs = [ gtk2 ];
+  buildInputs = [ gtk2 hicolor_icon_theme ];
 
-  nativeBuildInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
 
   postPatch = ''
     sed -i src/file.c -e '21i#include <glib/gprintf.h>'
     sed -i src/form.c -e '21i#include <stdlib.h>'
   '';
 
-  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
-
   meta = {
-    homepage = "http://code.google.com/p/yad/";
+    homepage = "http://yad-dialog.sourceforge.net/";
     description = "GUI dialog tool for shell scripts";
     longDescription = ''
       Yad (yet another dialog) is a GUI dialog tool for shell scripts. It is a
diff --git a/pkgs/tools/networking/argus-clients/default.nix b/pkgs/tools/networking/argus-clients/default.nix
new file mode 100644
index 000000000000..fe30a1eab826
--- /dev/null
+++ b/pkgs/tools/networking/argus-clients/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, libpcap, bison, flex, cyrus_sasl, tcp_wrappers, pkgconfig, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "argus-clients";
+  version = "3.0.8.2";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://qosient.com/argus/src/${name}.tar.gz";
+    sha256 = "1c9vj6ma00gqq9h92fg71sxcsjzz912166sdg90ahvnmvmh3l1rj";
+  };
+
+  patchPhase = ''
+    for file in ./examples/*/*.pl; do
+      substituteInPlace $file \
+        --subst-var-by PERLBIN ${perl}/bin/perl
+    done
+    '';
+
+  configureFlags = "--with-perl=${perl}/bin/perl";
+
+  buildInputs = [ libpcap pkgconfig bison cyrus_sasl tcp_wrappers flex ];
+
+  meta = with stdenv.lib; {
+    description = "Clients for ARGUS";
+    longDescription = ''Clients for Audit Record Generation and
+    Utilization System (ARGUS). The Argus Project is focused on developing all
+    aspects of large scale network situtational awareness derived from
+    network activity audit. Argus, itself, is next-generation network
+    flow technology, processing packets, either on the wire or in
+    captures, into advanced network flow data. The data, its models,
+    formats, and attributes are designed to support Network
+    Operations, Performance and Security Management. If you need to
+    know what is going on in your network, right now or historically,
+    you will find Argus a useful tool. '';
+    homepage = http://qosient.com/argus;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/argus/default.nix b/pkgs/tools/networking/argus/default.nix
new file mode 100644
index 000000000000..673f98e2f3ad
--- /dev/null
+++ b/pkgs/tools/networking/argus/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, libpcap, bison, flex, cyrus_sasl, tcp_wrappers,
+  pkgconfig, procps, which, wget, lsof, net_snmp, bash, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "argus";
+  version = "3.0.8.2";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://qosient.com/argus/src/${name}.tar.gz";
+    sha256 = "1zzf688dbbcb5z2r9v1p28rddns6znzx35nc05ygza6lp7aknkna";
+  };
+
+  buildInputs = [ libpcap pkgconfig bison cyrus_sasl tcp_wrappers flex ];
+  propagatedBuildInputs = [ procps which wget lsof net_snmp ];
+
+  patchPhase = ''
+     substituteInPlace events/argus-extip.pl \
+       --subst-var-by PERLBIN ${perl}/bin/perl
+    substituteInPlace events/argus-lsof.pl \
+      --replace "\`which lsof\`" "\"${lsof}/bin/lsof\"" \
+      --subst-var-by PERLBIN ${perl}/bin/perl
+    substituteInPlace events/argus-vmstat.sh \
+      --replace vm_stat ${procps}/bin/vmstat
+    substituteInPlace events/argus-snmp.sh \
+      --replace /usr/bin/snmpget ${net_snmp}/bin/snmpget \
+      --replace /usr/bin/snmpwalk ${net_snmp}/bin/snmpwalk
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Audit Record Generation and Utilization System for networks";
+    longDescription = ''The Argus Project is focused on developing all
+    aspects of large scale network situtational awareness derived from
+    network activity audit. Argus, itself, is next-generation network
+    flow technology, processing packets, either on the wire or in
+    captures, into advanced network flow data. The data, its models,
+    formats, and attributes are designed to support Network
+    Operations, Performance and Security Management. If you need to
+    know what is going on in your network, right now or historically,
+    you will find Argus a useful tool. '';
+    homepage = http://qosient.com/argus;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/ccnet/default.nix b/pkgs/tools/networking/ccnet/default.nix
index d7aaa0f77fc7..bab8cbc8639f 100644
--- a/pkgs/tools/networking/ccnet/default.nix
+++ b/pkgs/tools/networking/ccnet/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, which, automake, autoconf, pkgconfig, libtool, vala, python, libsearpc, libzdb, libuuid, libevent, sqlite, openssl}:
+{stdenv, fetchurl, which, automake, autoconf, pkgconfig, libtool, vala_0_23, python, libsearpc, libzdb, libuuid, libevent, sqlite, openssl}:
 
 stdenv.mkDerivation rec
 {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec
     sha256 = "1e1c670a85619b174328a15925a050c7a8b323fecd13434992332f5c15e05de1";
   };
 
-  buildInputs = [ which automake autoconf pkgconfig libtool vala  python ];
+  buildInputs = [ which automake autoconf pkgconfig libtool vala_0_23 python ];
   propagatedBuildInputs = [ libsearpc libzdb libuuid libevent sqlite openssl ];
 
   preConfigure = ''
diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix
index eb9edc96bac0..c3cdaffcc27f 100644
--- a/pkgs/tools/networking/dhcp/default.nix
+++ b/pkgs/tools/networking/dhcp/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ perl makeWrapper openldap bind ];
 
   configureFlags = [
-    "--with-libbind=${bind}"
+    "--with-libbind=${bind.dev}"
     "--enable-failover"
     "--enable-execute"
     "--enable-tracing"
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index 578fe6ea4f7a..766e7505f273 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, udev }:
 
 stdenv.mkDerivation rec {
-  name = "dhcpcd-6.10.1";
+  name = "dhcpcd-6.11.3";
 
   src = fetchurl {
     url = "mirror://roy/dhcpcd/${name}.tar.xz";
-    sha256 = "0yxfx3r6ik47rsv1f8q7siw0vas6jcsrbjpaqnx0nn707f6byji8";
+    sha256 = "01lv4a7ls55iv9f9gkh6vswqmbpqkdzj4d8ayq4dcir9vz215gas";
   };
 
   buildInputs = [ pkgconfig udev ];
diff --git a/pkgs/tools/networking/ferm/default.nix b/pkgs/tools/networking/ferm/default.nix
new file mode 100644
index 000000000000..f4cf387ecc52
--- /dev/null
+++ b/pkgs/tools/networking/ferm/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, makeWrapper, perl, ebtables, ipset, iptables }:
+
+stdenv.mkDerivation rec {
+  version = "2.3";
+  name = "ferm-${version}";
+
+  src = fetchurl {
+    url = "http://ferm.foo-projects.org/download/${version}/ferm-${version}.tar.gz";
+    sha256 = "0jx63fhjw5y1ahgdbn4hgd7sq6clxl80dr8a2hkryibfbwz3vs4x";
+  };
+
+  buildInputs = [ perl ipset ebtables iptables makeWrapper ];
+  preConfigure = ''
+    substituteInPlace config.mk --replace "PERL = /usr/bin/perl" "PERL = ${perl}/bin/perl"
+    substituteInPlace config.mk --replace "PREFIX = /usr" "PREFIX = $out"
+  '';
+  postInstall = ''
+    rm -r $out/lib/systemd
+    for i in "$out/sbin/"*; do
+      wrapProgram "$i" --prefix PATH : "${iptables}/bin:${ipset}/bin:${ebtables}/bin"
+    done
+  '';
+
+  meta = {
+    homepage = http://ferm.foo-projects.org/;
+    description = "Tool to maintain complex firewalls";
+    longDescription = ''
+      ferm is a tool to maintain complex firewalls, without having the trouble to
+      rewrite the complex rules over and over again. ferm allows the entire
+      firewall rule set to be stored in a separate file, and to be loaded with one
+      command. The firewall configuration resembles structured programming-like
+      language, which can contain levels and lists.
+    '';
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [mic92];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index bf39c36e02b8..23b0d241d17a 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gnutls readline zlib libidn ];
 
   configureFlags = [
-    "--with-readline=${readline}"
+    "--with-readline=${readline.dev}"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/mosh/default.nix b/pkgs/tools/networking/mosh/default.nix
index 9a7737e0195a..8a4f7e2dbe6c 100644
--- a/pkgs/tools/networking/mosh/default.nix
+++ b/pkgs/tools/networking/mosh/default.nix
@@ -2,30 +2,21 @@
 , makeWrapper, perl, openssl, autoreconfHook, fetchpatch }:
 
 stdenv.mkDerivation rec {
-  name = "mosh-1.2.5";
+  name = "mosh-1.2.6";
 
   src = fetchurl {
-    url = "http://mosh.mit.edu/${name}.tar.gz";
-    sha256 = "1qsb0y882yfgwnpy6f98pi5xqm6kykdsrxzvaal37hs7szjhky0s";
+    url = "https://mosh.org/${name}.tar.gz";
+    sha256 = "118fhpm754wpklf1blnlq5xbvrxqml6rdfs3b07wg666zkxvg0ky";
   };
 
   buildInputs = [ autoreconfHook protobuf ncurses zlib pkgconfig IOTty makeWrapper perl openssl ];
 
-  patches = [
-    # remove automake detection macro patch on next release as it is already on mosh master
-    (fetchpatch {
-      name = "fix_automake_detection_macro.patch";
-      url = "https://github.com/mobile-shell/mosh/commit/a47917b97606a03f6bbf0cafd1fcd495b0229790.patch";
-      sha256 = "0ib200ffvbnns125xd58947fyxdx31m06rmnzqmxpxcnjza7k404";
-    })
-  ];
-
   postInstall = ''
       wrapProgram $out/bin/mosh --prefix PERL5LIB : $PERL5LIB
   '';
 
   meta = {
-    homepage = http://mosh.mit.edu/;
+    homepage = https://mosh.org/;
     description = "Mobile shell (ssh replacement)";
     longDescription = ''
       Remote terminal application that allows roaming, supports intermittent
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index 62a46c15bc84..7f6620af4c95 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -35,11 +35,11 @@ stdenv.mkDerivation rec {
   preFixup = ''
     wrapProgram "$out/bin/nm-applet" \
       --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules:${gnome3.dconf}/lib/gio/modules" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gtk.out}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
       --set GCONF_CONFIG_SOURCE "xml::~/.gconf" \
       --prefix PATH ":" "${gnome3.gconf}/bin"
     wrapProgram "$out/bin/nm-connection-editor" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+      --prefix XDG_DATA_DIRS : "${gnome3.gtk.out}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/network-manager/0.9.8/default.nix b/pkgs/tools/networking/network-manager/0.9.8/default.nix
index 4fad1ca2ab9a..0c791631daa4 100644
--- a/pkgs/tools/networking/network-manager/0.9.8/default.nix
+++ b/pkgs/tools/networking/network-manager/0.9.8/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, intltool, pkgconfig, dbus_glib
 , udev, libnl, libuuid, gnutls, dhcp
-, libgcrypt, perl, libgudev }:
+, libgcrypt, perl, libgudev, avahi, ppp, kmod }:
 
 stdenv.mkDerivation rec {
   name = "network-manager-${version}";
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     substituteInPlace tools/glib-mkenums --replace /usr/bin/perl ${perl}/bin/perl
+    substituteInPlace src/nm-device.c \
+      --replace @avahi@ ${avahi} \
+      --replace @kmod@ ${kmod}
+    substituteInPlace src/ppp-manager/nm-ppp-manager.c \
+      --replace @ppp@ ${ppp} \
+      --replace @kmod@ ${kmod}
   '';
 
   # Right now we hardcode quite a few paths at build time. Probably we should
diff --git a/pkgs/tools/networking/network-manager/0.9.8/nixos-purity.patch b/pkgs/tools/networking/network-manager/0.9.8/nixos-purity.patch
index 831b2010fcfc..9ebc080ba96f 100644
--- a/pkgs/tools/networking/network-manager/0.9.8/nixos-purity.patch
+++ b/pkgs/tools/networking/network-manager/0.9.8/nixos-purity.patch
@@ -47,7 +47,7 @@ index 1dc94ee..e60f3c8 100644
  
  	for (iter = modules; *iter; iter++) {
 -		char *argv[3] = { "/sbin/modprobe", *iter, NULL };
-+		char *argv[3] = { "/var/run/current-system/sw/bin/modprobe", *iter, NULL };
++		char *argv[3] = { "@kmod@/bin/modprobe", *iter, NULL };
  		char *envp[1] = { NULL };
  		GError *error = NULL;
  
@@ -71,7 +71,7 @@ index 59698c3..7dba0f7 100644
  	/* Make sure /dev/ppp exists (bgo #533064) */
  	if (stat ("/dev/ppp", &st) || !S_ISCHR (st.st_mode))
 -		ignored = system ("/sbin/modprobe ppp_generic");
-+		ignored = system ("/var/run/current-system/sw/bin/modprobe ppp_generic");
++		ignored = system ("@kmod@/bin/modprobe ppp_generic");
  
  	connection = nm_act_request_get_connection (req);
  	g_assert (connection);
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index 66a261c7cf64..57bf1a51a1ae 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -2,7 +2,7 @@
 , systemd, libgudev, libnl, libuuid, polkit, gnutls, ppp, dhcp, iptables
 , libgcrypt, dnsmasq, bluez5, readline
 , gobjectIntrospection, modemmanager, openresolv, libndp, newt, libsoup
-, ethtool, gnused, coreutils, file, inetutils }:
+, ethtool, gnused, coreutils, file, inetutils, kmod }:
 
 stdenv.mkDerivation rec {
   name    = "network-manager-${version}";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     substituteInPlace configure --replace /usr/bin/uname ${coreutils}/bin/uname
     substituteInPlace configure --replace /usr/bin/file ${file}/bin/file
     substituteInPlace src/devices/nm-device.c --replace /usr/bin/ping ${inetutils}/bin/ping
-    substituteInPlace src/NetworkManagerUtils.c --replace /sbin/modprobe /run/current-system/sw/sbin/modprobe
+    substituteInPlace src/NetworkManagerUtils.c --replace /sbin/modprobe ${kmod}/bin/modprobe
     substituteInPlace data/84-nm-drivers.rules \
       --replace /bin/sh ${stdenv.shell}
     substituteInPlace data/85-nm-unmanaged.rules \
diff --git a/pkgs/tools/networking/network-manager/openconnect.nix b/pkgs/tools/networking/network-manager/openconnect.nix
index 43eb681be295..b1b24bceb576 100644
--- a/pkgs/tools/networking/network-manager/openconnect.nix
+++ b/pkgs/tools/networking/network-manager/openconnect.nix
@@ -23,10 +23,10 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
      substituteInPlace "configure" \
-       --replace "/sbin/sysctl" "${procps}/sbin/sysctl"
+       --replace "/sbin/sysctl" "${procps}/bin/sysctl"
      substituteInPlace "src/nm-openconnect-service.c" \
-       --replace "/usr/sbin/openconnect" "${openconnect}/sbin/openconnect" \
-       --replace "/sbin/modprobe" "${kmod}/sbin/modprobe"
+       --replace "/usr/sbin/openconnect" "${openconnect}/bin/openconnect" \
+       --replace "/sbin/modprobe" "${kmod}/bin/modprobe"
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/network-manager/openvpn.nix b/pkgs/tools/networking/network-manager/openvpn.nix
index 34e3a3e2959a..6fd1a666f0e8 100644
--- a/pkgs/tools/networking/network-manager/openvpn.nix
+++ b/pkgs/tools/networking/network-manager/openvpn.nix
@@ -27,10 +27,10 @@ stdenv.mkDerivation rec {
      substituteInPlace "configure" \
        --replace "/sbin/sysctl" "${procps}/sbin/sysctl"
      substituteInPlace "src/nm-openvpn-service.c" \
-       --replace "/sbin/openvpn" "${openvpn}/sbin/openvpn" \
-       --replace "/sbin/modprobe" "${kmod}/sbin/modprobe"
+       --replace "/sbin/openvpn" "${openvpn}/bin/openvpn" \
+       --replace "/sbin/modprobe" "${kmod}/bin/modprobe"
      substituteInPlace "properties/auth-helpers.c" \
-       --replace "/sbin/openvpn" "${openvpn}/sbin/openvpn"
+       --replace "/sbin/openvpn" "${openvpn}/bin/openvpn"
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/network-manager/vpnc.nix b/pkgs/tools/networking/network-manager/vpnc.nix
index 97b2001d7592..b760fe6e4f7d 100644
--- a/pkgs/tools/networking/network-manager/vpnc.nix
+++ b/pkgs/tools/networking/network-manager/vpnc.nix
@@ -24,10 +24,10 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
      substituteInPlace "configure" \
-       --replace "/sbin/sysctl" "${procps}/sbin/sysctl"
+       --replace "/sbin/sysctl" "${procps}/bin/sysctl"
      substituteInPlace "src/nm-vpnc-service.c" \
-       --replace "/sbin/vpnc" "${vpnc}/sbin/vpnc" \
-       --replace "/sbin/modprobe" "${kmod}/sbin/modprobe"
+       --replace "/sbin/vpnc" "${vpnc}/bin/vpnc" \
+       --replace "/sbin/modprobe" "${kmod}/bin/modprobe"
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/offlineimap/default.nix b/pkgs/tools/networking/offlineimap/default.nix
index 8f56e07403b4..564eea231841 100644
--- a/pkgs/tools/networking/offlineimap/default.nix
+++ b/pkgs/tools/networking/offlineimap/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, pythonPackages, sqlite3 }:
 
 pythonPackages.buildPythonApplication rec {
-  version = "7.0.5";
+  version = "7.0.6";
   name = "offlineimap-${version}";
   namePrefix = "";
 
@@ -9,7 +9,7 @@ pythonPackages.buildPythonApplication rec {
     owner = "OfflineIMAP";
     repo = "offlineimap";
     rev = "v${version}";
-    sha256 = "0gmypc0sribxzglxgymfc5x3saxnkyhbky06dhxanxm6pa1p4blh";
+    sha256 = "14hmr4f9zv1hhl6azh78rg4csincxzkp1sl4wydd4gwyb74cfpkc";
   };
 
   doCheck = false;
diff --git a/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix b/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix
index 748f41c90538..706f2434a955 100644
--- a/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix
+++ b/pkgs/tools/networking/openvpn/openvpn_learnaddress.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     install -Dm555 ovpn-learnaddress $out/libexec/openvpn/openvpn-learnaddress
 
     wrapProgram $out/libexec/openvpn/openvpn-learnaddress \
-        --prefix PATH : ${coreutils}/bin:${gawk}/bin:${utillinux}/bin
+        --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gawk utillinux ]}
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/snabb/default.nix b/pkgs/tools/networking/snabb/default.nix
index f6b115805982..3b405561ef93 100644
--- a/pkgs/tools/networking/snabb/default.nix
+++ b/pkgs/tools/networking/snabb/default.nix
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
     done
 
     # We need a way to pass $PATH to the scripts
-    sed -i '2iexport PATH=${git}/bin:${mariadb}/bin:${which}/bin:${procps}/bin:${coreutils}/bin' src/program/snabbnfv/neutron_sync_master/neutron_sync_master.sh.inc
-    sed -i '2iexport PATH=${git}/bin:${coreutils}/bin:${diffutils}/bin:${nettools}/bin' src/program/snabbnfv/neutron_sync_agent/neutron_sync_agent.sh.inc
+    sed -i '2iexport PATH=${stdenv.lib.makeBinPath [ git mariadb which procps coreutils ]}' src/program/snabbnfv/neutron_sync_master/neutron_sync_master.sh.inc
+    sed -i '2iexport PATH=${stdenv.lib.makeBinPath [ git coreutils diffutils nettools ]}' src/program/snabbnfv/neutron_sync_agent/neutron_sync_agent.sh.inc
   '';
 
   installPhase = ''
diff --git a/pkgs/tools/networking/srelay/default.nix b/pkgs/tools/networking/srelay/default.nix
index 853a21da73c4..8c413174cfb2 100644
--- a/pkgs/tools/networking/srelay/default.nix
+++ b/pkgs/tools/networking/srelay/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   name = "srelay-0.4.8b6";
 
   src = fetchurl {
-    url = "https://sourceforge.net/projects/socks-relay/files/socks-relay/srelay-0.4.8/srelay-0.4.8b6.tar.gz";
+    url = "mirror://sourceforge/project/socks-relay/socks-relay/srelay-0.4.8/srelay-0.4.8b6.tar.gz";
     sha256 = "1az9ds10hpmpw6bqk7fcd1w70001kz0mm48v3vgg2z6vrbmgn0qj";
   };
 
diff --git a/pkgs/tools/networking/tlsdate/default.nix b/pkgs/tools/networking/tlsdate/default.nix
index 66ead809d0bb..efea10eaa4da 100644
--- a/pkgs/tools/networking/tlsdate/default.nix
+++ b/pkgs/tools/networking/tlsdate/default.nix
@@ -46,6 +46,6 @@ stdenv.mkDerivation rec {
     description = "Secure parasitic rdate replacement";
     homepage = https://github.com/ioerror/tlsdate;
     maintainers = with maintainers; [ tv fpletz ];
-    platforms = platforms.allBut [ "darwin" ];
+    platforms = platforms.allBut platforms.darwin;
   };
 }
diff --git a/pkgs/tools/networking/wget/default.nix b/pkgs/tools/networking/wget/default.nix
index 42309b49bb8a..1d4791ffdde8 100644
--- a/pkgs/tools/networking/wget/default.nix
+++ b/pkgs/tools/networking/wget/default.nix
@@ -13,9 +13,8 @@ stdenv.mkDerivation rec {
   patches = [ ./remove-runtime-dep-on-openssl-headers.patch ];
 
   preConfigure = ''
-    for i in "doc/texi2pod.pl" "util/rmold.pl"; do
-      sed -i "$i" -e 's|/usr/bin.*perl|${perl}/bin/perl|g'
-    done
+    patchShebangs doc
+
   '' + stdenv.lib.optionalString doCheck ''
     # Work around lack of DNS resolution in chroots.
     for i in "tests/"*.pm "tests/"*.px
@@ -26,9 +25,9 @@ stdenv.mkDerivation rec {
     export LIBS="-liconv -lintl"
   '';
 
-  nativeBuildInputs = [ gettext pkgconfig ];
+  nativeBuildInputs = [ gettext pkgconfig perl ];
   buildInputs = [ libidn libiconv libpsl ]
-    ++ stdenv.lib.optionals doCheck [ perl perlPackages.IOSocketSSL LWP python3 ]
+    ++ stdenv.lib.optionals doCheck [ perlPackages.IOSocketSSL LWP python3 ]
     ++ stdenv.lib.optional (openssl != null) openssl
     ++ stdenv.lib.optional stdenv.isDarwin perl;
 
diff --git a/pkgs/tools/networking/wicd/default.nix b/pkgs/tools/networking/wicd/default.nix
index 40acfaf323a2..59bbd918d643 100644
--- a/pkgs/tools/networking/wicd/default.nix
+++ b/pkgs/tools/networking/wicd/default.nix
@@ -37,7 +37,7 @@ in stdenv.mkDerivation rec {
     
     substituteInPlace in/scripts=wicd.in --subst-var-by TEMPLATE-DEFAULT $out/share/other/dhclient.conf.template.default
 
-    sed -i "2iexport PATH=${python}/bin:${wpa_supplicant}/sbin:${dhcpcd}/sbin:${dhcp}/sbin:${wirelesstools}/sbin:${nettools}/sbin:${nettools}/bin:${iputils}/bin:${openresolv}/sbin:${iproute}/sbin\$\{PATH:+:\}\$PATH" in/scripts=wicd.in
+    sed -i "2iexport PATH=${stdenv.lib.makeBinPath [ python wpa_supplicant dhcpcd dhcp wirelesstools nettools nettools iputils openresolv iproute ]}\$\{PATH:+:\}\$PATH" in/scripts=wicd.in
     sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pygobject}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd.in
     sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-client.in
     sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject}):$(toPythonPath ${pygobject})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-client.in
diff --git a/pkgs/tools/networking/wrk/default.nix b/pkgs/tools/networking/wrk/default.nix
index b1a3fc85849e..c8315d0c3f5f 100644
--- a/pkgs/tools/networking/wrk/default.nix
+++ b/pkgs/tools/networking/wrk/default.nix
@@ -1,18 +1,17 @@
-{ stdenv, fetchgit, openssl }:
+{ stdenv, fetchFromGitHub, openssl, perl }:
 
-let
-  version = "4.0.0";
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "wrk-${version}";
+  version = "4.0.2";
 
-  src = fetchgit {
-    url = "https://github.com/wg/wrk.git";
-    rev = "7cdede916a53da253c995767a92eec36a245a2cc";
-    sha256 = "1zk7mx27875wkbwcjpbl9zmpyyfic9177wmkif9a16mvj7mvlw9v";
+  src = fetchFromGitHub {
+    owner = "wg";
+    repo = "wrk";
+    rev = version;
+    sha256 = "1qg6w8xz4pr227h1gxrbm6ylhqvspk95hvq2f9iakni7s56pkh1w";
   };
 
-  buildInputs = [ openssl ];
+  buildInputs = [ openssl perl ];
   
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/tools/package-management/fpm/Gemfile.lock b/pkgs/tools/package-management/fpm/Gemfile.lock
index a2a652c4056d..ab3d4dd6b46b 100644
--- a/pkgs/tools/package-management/fpm/Gemfile.lock
+++ b/pkgs/tools/package-management/fpm/Gemfile.lock
@@ -1,23 +1,40 @@
 GEM
   remote: https://rubygems.org/
   specs:
+    archive-tar-minitar (0.5.2)
     arr-pm (0.0.10)
       cabin (> 0)
     backports (3.6.8)
     cabin (0.8.1)
     childprocess (0.5.9)
       ffi (~> 1.0, >= 1.0.11)
-    clamp (0.6.5)
-    ffi (1.9.10)
-    fpm (1.4.0)
+    clamp (1.0.0)
+    ffi (1.9.14)
+    fpm (1.6.2)
+      archive-tar-minitar
       arr-pm (~> 0.0.10)
       backports (>= 2.6.2)
       cabin (>= 0.6.0)
       childprocess
-      clamp (~> 0.6)
+      clamp (~> 1.0.0)
       ffi
-      json (>= 1.7.7)
+      json (>= 1.7.7, < 2.0)
+      pleaserun (~> 0.0.24)
+      ruby-xz
+    insist (1.0.0)
+    io-like (0.3.0)
     json (1.8.3)
+    mustache (0.99.8)
+    pleaserun (0.0.24)
+      cabin (> 0)
+      clamp
+      insist
+      mustache (= 0.99.8)
+      stud
+    ruby-xz (0.2.3)
+      ffi (~> 1.9)
+      io-like (~> 0.3)
+    stud (0.0.22)
 
 PLATFORMS
   ruby
@@ -26,4 +43,4 @@ DEPENDENCIES
   fpm
 
 BUNDLED WITH
-   1.10.6
+   1.12.5
diff --git a/pkgs/tools/package-management/fpm/gemset.nix b/pkgs/tools/package-management/fpm/gemset.nix
index 0751fdc48bcb..0670d3a5b140 100644
--- a/pkgs/tools/package-management/fpm/gemset.nix
+++ b/pkgs/tools/package-management/fpm/gemset.nix
@@ -1,4 +1,12 @@
 {
+  archive-tar-minitar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j666713r3cc3wb0042x0wcmq2v11vwwy5pcaayy5f0lnd26iqig";
+      type = "gem";
+    };
+    version = "0.5.2";
+  };
   arr-pm = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -34,26 +42,42 @@
   clamp = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gpz9jvg1gpr8xmfqd35gvyzsvmjvlvwm2sq3pyhml3i84a6qjrq";
+      sha256 = "0vy6ghz9l84qazlza30z0dwwrlifc5c7akgrl1v72ivmmjga45hw";
       type = "gem";
     };
-    version = "0.6.5";
+    version = "1.0.0";
   };
   ffi = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m5mprppw0xcrv2mkim5zsk70v089ajzqiq5hpyb0xg96fcyzyxj";
+      sha256 = "1nkcrmxqr0vb1y4rwliclwlj2ajsi4ddpdx2gvzjy0xbkk5iqzfp";
       type = "gem";
     };
-    version = "1.9.10";
+    version = "1.9.14";
   };
   fpm = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ljifrfzjirad5ql5yvs1prpbivsjnwdbhzlqb8r7sdidd9kwakz";
+      sha256 = "1ids20mcs6w8nf4bpjj749ayc7h637kqx0pdw5d5a0yzik34daaj";
+      type = "gem";
+    };
+    version = "1.6.2";
+  };
+  insist = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bw3bdwns14mapbgb8cbjmr0amvwz8y72gyclq04xp43wpp5jrvg";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.0.0";
+  };
+  io-like = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04nn0s2wmgxij3k760h3r8m1dgih5dmd9h4v1nn085yi824i5z6k";
+      type = "gem";
+    };
+    version = "0.3.0";
   };
   json = {
     source = {
@@ -63,4 +87,36 @@
     };
     version = "1.8.3";
   };
+  mustache = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
+      type = "gem";
+    };
+    version = "0.99.8";
+  };
+  pleaserun = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s26216ip6skzbdl48z8wbrzqbvwq1q4s6sm8r209zvvlp0rinkw";
+      type = "gem";
+    };
+    version = "0.0.24";
+  };
+  ruby-xz = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11bgpvvk0098ghvlxr4i713jmi2izychalgikwvdwmpb452r3ndw";
+      type = "gem";
+    };
+    version = "0.2.3";
+  };
+  stud = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1raavxgn5k4bxap5wqdl7zmfw5k4ndl8aagnajlfg4f0bmm8yni7";
+      type = "gem";
+    };
+    version = "0.0.22";
+  };
 }
\ No newline at end of file
diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix
index 43f025fafa40..af8a162357b6 100644
--- a/pkgs/tools/package-management/packagekit/default.nix
+++ b/pkgs/tools/package-management/packagekit/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, lib
 , intltool, glib, pkgconfig, polkit, python, sqlite, systemd
-, gobjectIntrospection, vala, gtk_doc, autoreconfHook, autoconf-archive
+, gobjectIntrospection, vala_0_23, gtk_doc, autoreconfHook, autoconf-archive
 , nix, boost
 , enableCommandNotFound ? false
 , enableBashCompletion ? false, bashCompletion ? null }:
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     sha256 = "150mpar7bhlvwfpwsr6zrjn3yggvklzr6nlhk0shaxnrfkfxvvb6";
   };
 
-  buildInputs = [ glib polkit systemd python gobjectIntrospection vala ]
+  buildInputs = [ glib polkit systemd python gobjectIntrospection vala_0_23 ]
                   ++ lib.optional enableBashCompletion bashCompletion;
   propagatedBuildInputs = [ sqlite nix boost ];
   nativeBuildInputs = [ intltool pkgconfig autoreconfHook autoconf-archive gtk_doc ];
diff --git a/pkgs/tools/security/chaps/default.nix b/pkgs/tools/security/chaps/default.nix
index 43e324ec2694..2c6b31500895 100644
--- a/pkgs/tools/security/chaps/default.nix
+++ b/pkgs/tools/security/chaps/default.nix
@@ -31,6 +31,9 @@ stdenv.mkDerivation rec {
     sha256 = "0chk6pnn365d5kcz6vfqx1d0383ksk97icc0lzg0vvb0kvyj0ff1";
   };
 
+  # readdir_r(3) is deprecated in glibc >= 2.24
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
   patches = [ ./fix_absolute_path.patch  ./fix_environment_variables.patch  ./fix_scons.patch  ./insert_prefetches.patch ];
 
   postPatch = ''
diff --git a/pkgs/tools/security/crunch/default.nix b/pkgs/tools/security/crunch/default.nix
new file mode 100644
index 000000000000..914d79965c3e
--- /dev/null
+++ b/pkgs/tools/security/crunch/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, which }:
+
+stdenv.mkDerivation  rec {
+  name = "crunch-${version}";
+  version = "3.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/crunch-wordlist/${name}.tgz";
+    sha256 = "0mgy6ghjvzr26yrhj1bn73qzw6v9qsniskc5wqq1kk0hfhy6r3va";
+  };
+
+  buildInputs = [ which ];
+
+  configurePhase = "true";
+
+  preBuild = ''
+    sed 's/sudo //' -i Makefile
+    sed 's/-g root -o root//' -i Makefile
+  '';
+
+  makeFlags = "PREFIX=$(out)";
+
+  meta = with stdenv.lib; {
+    description = "Wordlist generator";
+    homepage = https://sourceforge.net/projects/crunch-wordlist/;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lethalman ];
+  };
+}
diff --git a/pkgs/tools/security/duo-unix/default.nix b/pkgs/tools/security/duo-unix/default.nix
index af5e72faca44..05ce60a05084 100644
--- a/pkgs/tools/security/duo-unix/default.nix
+++ b/pkgs/tools/security/duo-unix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "duo-unix-${version}";
-  version = "1.9.11";
+  version = "1.9.19";
 
   src = fetchurl {
     url    = "https://dl.duosecurity.com/duo_unix-${version}.tar.gz";
-    sha256 = "0747avzmzzz1gaisahgjlpxyxxbrn04w1mip90lfj9wp2x6a9jgm";
+    sha256 = "02hvayknj0kvdik4mqm9j9isqzxk0f992i9v274s27891xqgj8rd";
   };
 
   buildInputs = [ pam openssl zlib ];
diff --git a/pkgs/tools/security/gencfsm/default.nix b/pkgs/tools/security/gencfsm/default.nix
index fb9030036200..8441fbbb7613 100644
--- a/pkgs/tools/security/gencfsm/default.nix
+++ b/pkgs/tools/security/gencfsm/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, autoconf, automake, intltool, libtool, pkgconfig, encfs
-, glib , gnome3, gtk3, libgnome_keyring, vala, wrapGAppsHook, xorg }:
+, glib , gnome3, gtk3, libgnome_keyring, vala_0_23, wrapGAppsHook, xorg }:
 
 stdenv.mkDerivation rec {
   version = "1.8.16";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "06sz6zcmvxkqww5gx4brcqs4hlpy9d8sal9nmw0pdsvh8k5vmpgn";
   };
 
-  buildInputs = [ autoconf automake intltool libtool pkgconfig vala glib encfs
+  buildInputs = [ autoconf automake intltool libtool pkgconfig vala_0_23 glib encfs
     gtk3 libgnome_keyring gnome3.libgee_1 xorg.libSM xorg.libICE
     wrapGAppsHook ];
 
diff --git a/pkgs/tools/security/gnupg/1compat.nix b/pkgs/tools/security/gnupg/1compat.nix
index 7ff19c212e83..0fe294e5a117 100644
--- a/pkgs/tools/security/gnupg/1compat.nix
+++ b/pkgs/tools/security/gnupg/1compat.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/pcsclite/default.nix b/pkgs/tools/security/pcsclite/default.nix
index 509a8a12092b..8116d0dfe9f9 100644
--- a/pkgs/tools/security/pcsclite/default.nix
+++ b/pkgs/tools/security/pcsclite/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, udev, dbus_libs, perl, python2 }:
+{ stdenv, fetchurl, pkgconfig, udev, dbus_libs, perl, python2
+, IOKit ? null }:
 
 stdenv.mkDerivation rec {
   name = "pcsclite-${version}";
@@ -26,7 +27,8 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkgconfig perl python2 ];
-  buildInputs = stdenv.lib.optionals stdenv.isLinux [ udev dbus_libs ];
+  buildInputs = stdenv.lib.optionals stdenv.isLinux [ udev dbus_libs ]
+             ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit ];
 
   meta = with stdenv.lib; {
     description = "Middleware to access a smart card using SCard API (PC/SC)";
diff --git a/pkgs/tools/security/prey/default.nix b/pkgs/tools/security/prey/default.nix
index 57352f99091a..ab041c8b05d6 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.out}/bin:${curl.bin}/bin:${scrot}/bin:${inetutils}/bin:${coreutils}/bin" \
+      --prefix PATH ":" "${stdenv.lib.makeBinPath [ xawtv imagemagick curl scrot inetutils coreutils ]}" \
       --set CURL_CA_BUNDLE "/etc/ssl/certs/ca-certificates.crt"
   '';
 
diff --git a/pkgs/tools/security/stricat/default.nix b/pkgs/tools/security/stricat/default.nix
index 3dd00718af79..ecc34ede556b 100644
--- a/pkgs/tools/security/stricat/default.nix
+++ b/pkgs/tools/security/stricat/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1axg8r4g5n5kdqj5013pgck80nni3z172xkg506vz4zx1zcmrm4r";
   };
 
+  buildFlags = [ "CC=cc" ];
+
   installPhase = ''
     mkdir -p $out/bin
     mv stricat $out/bin
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 8ac7472a2bc3..533cb0dcd8eb 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -1,29 +1,30 @@
-{ stdenv, fetchurl, libevent, openssl, zlib, torsocks, libseccomp }:
+{ stdenv, fetchurl, pkgconfig, libevent, openssl, zlib, torsocks
+, libseccomp, systemd, libcap
+}:
 
 stdenv.mkDerivation rec {
-  name = "tor-0.2.7.6";
+  name = "tor-0.2.8.7";
 
   src = fetchurl {
     url = "https://archive.torproject.org/tor-package-archive/${name}.tar.gz";
-    sha256 = "0p8hjlfi8dwghlyjif5s0q98cmpgz9kn9jja25430l04z5wqcfj9";
+    sha256 = "1iigfi8ljl88s8b5y1g4ak8im57simazscl467zvfbg8k6vf4i5f";
   };
 
-  # Note: torsocks is specified as a dependency, as the distributed
-  # 'torify' wrapper attempts to use it; although there is no
-  # ./configure time check for any of this.
-  buildInputs = [ libevent openssl zlib torsocks ] ++
-    stdenv.lib.optional stdenv.isLinux libseccomp;
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libevent openssl zlib ] ++
+    stdenv.lib.optionals stdenv.isLinux [ libseccomp systemd libcap ];
 
   NIX_CFLAGS_LINK = stdenv.lib.optionalString stdenv.cc.isGNU "-lgcc_s";
 
-  # Patch 'torify' to point directly to torsocks.
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace contrib/client-tools/torify \
       --replace 'pathfind torsocks' true          \
       --replace 'exec torsocks' 'exec ${torsocks}/bin/torsocks'
   '';
 
-  doCheck = true;
+  # Fails in a sandboxed environment; at some point we want to disable
+  # just the tests that require networking.
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = https://www.torproject.org/;
diff --git a/pkgs/tools/system/collectd/default.nix b/pkgs/tools/system/collectd/default.nix
index c428fb07facd..b0c6b0730296 100644
--- a/pkgs/tools/system/collectd/default.nix
+++ b/pkgs/tools/system/collectd/default.nix
@@ -52,7 +52,8 @@ stdenv.mkDerivation rec {
     stdenv.lib.optional (libsigrok != null) "--with-libsigrok" ++
     stdenv.lib.optional (python != null) "--with-python=${python}/bin/python";
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
+  # Fix build on Glibc 2.24.
+  NIX_CFLAGS_COMPILE = "-Wno-error=cpp -Wno-error=deprecated-declarations";
 
   meta = with stdenv.lib; {
     description = "Daemon which collects system performance statistics periodically";
diff --git a/pkgs/tools/system/dog/default.nix b/pkgs/tools/system/dog/default.nix
index d05e2986204c..a48c2678aa63 100644
--- a/pkgs/tools/system/dog/default.nix
+++ b/pkgs/tools/system/dog/default.nix
@@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
     sha256 = "3ef25907ec5d1dfb0df94c9388c020b593fbe162d7aaa9bd08f35d2a125af056";
   };
 
+  patchPhase = ''
+    substituteInPlace Makefile \
+      --replace "gcc" "cc"
+  '';
+
   installPhase = ''
     mkdir -p $out/bin
     mkdir -p $out/man/man1
diff --git a/pkgs/tools/system/efibootmgr/default.nix b/pkgs/tools/system/efibootmgr/default.nix
index 39fe1bdf09a3..11418919e413 100644
--- a/pkgs/tools/system/efibootmgr/default.nix
+++ b/pkgs/tools/system/efibootmgr/default.nix
@@ -1,27 +1,22 @@
-{ stdenv, fetchFromGitHub, perl, efivar, pciutils, zlib }:
+{ stdenv, fetchFromGitHub, perl, efivar, pciutils, zlib, popt }:
 
 stdenv.mkDerivation rec {
   name = "efibootmgr-${version}";
-  version = "0.12";
+  version = "13";
 
-  buildInputs = [ perl efivar pciutils zlib ];
+  buildInputs = [ perl efivar pciutils zlib popt ];
 
   src = fetchFromGitHub {
     owner = "rhinstaller";
     repo = "efibootmgr";
-    rev = name;
-    sha256 = "0fmrsp67dln76896fvxalj2pamyp9dszf32kl06wdfi0km42z8sh";
+    rev = version;
+    sha256 = "1kwmvx111c3a5783kx3az76mkhpr1nsdx0yv09gp4k0hgzqlqj96";
   };
 
   NIX_CFLAGS_COMPILE = "-I${efivar}/include/efivar";
-  NIX_LDFLAGS = "-lefiboot -lefivar";
+  NIX_LDFLAGS = "-lefiboot -lefivar -lpopt";
 
-  postPatch = ''
-    substituteInPlace "./tools/install.pl" \
-      --replace "/usr/bin/perl" "${perl}/bin/perl"
-  '';
-
-  installFlags = [ "BINDIR=$(out)/sbin" ];
+  installFlags = [ "prefix=$(out)" ];
 
   meta = with stdenv.lib; {
     description = "A Linux user-space application to modify the Intel Extensible Firmware Interface (EFI) Boot Manager";
diff --git a/pkgs/tools/system/efivar/default.nix b/pkgs/tools/system/efivar/default.nix
index 29ce0b1d8972..bdc33ef749c6 100644
--- a/pkgs/tools/system/efivar/default.nix
+++ b/pkgs/tools/system/efivar/default.nix
@@ -1,24 +1,16 @@
-{ stdenv, fetchurl, fetchFromGitHub, pkgconfig, popt }:
+{ stdenv, fetchFromGitHub, pkgconfig, popt }:
 
 stdenv.mkDerivation rec {
   name = "efivar-${version}";
-  version = "0.23";
+  version = "27";
 
   src = fetchFromGitHub {
     owner = "rhinstaller";
     repo = "efivar";
     rev = version;
-    sha256 = "1fdqi053v335pjwj1i3yi9f1kasdzg3agfcp36bxsbhqjp4imlid";
+    sha256 = "1vz3hzs9k7bjg2r5bsw1irnfq77lmq9819sg9a7w6w528bvzr4lx";
   };
 
-  patches = [
-    # fix problem with linux 4.4 headers https://github.com/rhinstaller/efivar/issues/37
-    (fetchurl {
-      url = https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-libs/efivar/files/0.21-nvme_ioctl.h.patch;
-      sha256 = "1rjjpd4s1xdsnhq974j5wnwav8pfvd0jbvhk8a9wc2w029fvj7zp";
-    })
-  ];
-
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ popt ];
 
diff --git a/pkgs/tools/system/hardlink/default.nix b/pkgs/tools/system/hardlink/default.nix
index c34d81f63536..f464b7e9320e 100644
--- a/pkgs/tools/system/hardlink/default.nix
+++ b/pkgs/tools/system/hardlink/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man1
-    gcc -O2 hardlink.c -o $out/bin/hardlink
+    cc -O2 hardlink.c -o $out/bin/hardlink
     mv hardlink.1 $out/share/man/man1/hardlink.1
   '';
 
diff --git a/pkgs/tools/system/runit/Makefile.patch b/pkgs/tools/system/runit/Makefile.patch
deleted file mode 100644
index 43257728e928..000000000000
--- a/pkgs/tools/system/runit/Makefile.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur admin.orig/runit-2.1.2/src/Makefile admin/runit-2.1.2/src/Makefile
---- admin.orig/runit-2.1.2/src/Makefile	2014-08-10 20:22:35.000000000 +0200
-+++ admin/runit-2.1.2/src/Makefile	2014-10-15 13:04:02.892937939 +0200
-@@ -234,7 +234,6 @@
- 
- hasshsgr.h: chkshsgr choose compile hasshsgr.h1 hasshsgr.h2 load \
- tryshsgr.c warn-shsgr
--	./chkshsgr || ( cat warn-shsgr; exit 1 )
- 	./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h
- 
- haswaitp.h: choose compile haswaitp.h1 haswaitp.h2 load trywaitp.c
diff --git a/pkgs/tools/system/runit/default.nix b/pkgs/tools/system/runit/default.nix
index c10e41d709bc..87cf720b981e 100644
--- a/pkgs/tools/system/runit/default.nix
+++ b/pkgs/tools/system/runit/default.nix
@@ -9,33 +9,37 @@ stdenv.mkDerivation rec {
     sha256 = "065s8w62r6chjjs6m9hapcagy33m75nlnxb69vg0f4ngn061dl3g";
   };
 
-  patches = [ ./Makefile.patch ];
+  outputs = [ "out" "man" ];
+
+  sourceRoot = "admin/${name}";
+
+  doCheck = true;
 
   postPatch = ''
-    cd ${name}
     sed -i 's,-static,,g' src/Makefile
   '';
 
-  buildPhase = ''
-    make -C 'src'
-  '';
+  preBuild = ''
+    cd src
 
-  checkPhase = ''
-    make -C 'src' check
+    # Both of these are originally hard-coded to gcc
+    echo cc > conf-cc
+    echo cc > conf-ld
   '';
 
   installPhase = ''
     mkdir -p $out/bin
-    for f in $(cat package/commands); do
-      mv src/$f $out/bin/
-    done
+    cp -t $out/bin $(< ../package/commands)
+
+    mkdir -p $man/share/man
+    cp -r ../man $man/share/man/man8
   '';
 
   meta = with stdenv.lib; {
     description = "UNIX init scheme with service supervision";
     license = licenses.bsd3;
     homepage = "http://smarden.org/runit";
-    maintainers = with maintainers; [ rickynils ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ rickynils joachifm ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix
index 8445767e7b78..cc30cd7a4881 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl
+, IOKit ? null }:
 
 let
   version = "6.4";
@@ -18,6 +19,8 @@ stdenv.mkDerivation rec {
     sha256 = "11bsxcghh7adzdklcslamlynydxb708vfz892d5w7agdq405ddza";
   };
 
+  buildInputs = [] ++ stdenv.lib.optional stdenv.isDarwin IOKit;
+
   patchPhase = ''
     cp ${driverdb} drivedb.h
     sed -i -e 's@which which >/dev/null || exit 1@alias which="type -p"@' update-smart-drivedb.in
diff --git a/pkgs/tools/system/tm/default.nix b/pkgs/tools/system/tm/default.nix
index a297f9371001..3326f535b5f6 100644
--- a/pkgs/tools/system/tm/default.nix
+++ b/pkgs/tools/system/tm/default.nix
@@ -6,7 +6,9 @@ stdenv.mkDerivation {
 
   installPhase=''make install "PREFIX=$out"'';
 
-  patchPhase = ''sed -i 's@/usr/bin/install@install@g' Makefile'';
+  patchPhase = ''
+    sed -i 's@/usr/bin/install@install@g ; s/gcc/cc/g' Makefile
+  '';
 
   crossAttrs = {
     makeFlags = "CC=${stdenv.cross.config}-gcc";
diff --git a/pkgs/tools/system/wsmancli/default.nix b/pkgs/tools/system/wsmancli/default.nix
index d66d4b575783..c1c62718de2d 100644
--- a/pkgs/tools/system/wsmancli/default.nix
+++ b/pkgs/tools/system/wsmancli/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     ./bootstrap
 
     configureFlagsArray=(
-      LIBS="-L${openssl}/lib -lssl -lcrypto"
+      LIBS="-L${openssl.out}/lib -lssl -lcrypto"
     )
   '';
 
diff --git a/pkgs/tools/system/yeshup/default.nix b/pkgs/tools/system/yeshup/default.nix
index 806d6cc5b945..8cea90b6758d 100644
--- a/pkgs/tools/system/yeshup/default.nix
+++ b/pkgs/tools/system/yeshup/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = https://github.com/RhysU/yeshup;
-    platforms = platforms.all;
+    platforms = platforms.linux;
     license = licenses.cc-by-sa-30; # From Stackoverflow answer
     maintainers = with maintainers; [ obadz ];
   };
diff --git a/pkgs/tools/text/kytea/default.nix b/pkgs/tools/text/kytea/default.nix
new file mode 100644
index 000000000000..2aec0d04a619
--- /dev/null
+++ b/pkgs/tools/text/kytea/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+
+  name    = "kytea-${version}";
+  version = "0.4.7";
+
+  src = fetchurl {
+    url    = "http://www.phontron.com/kytea/download/kytea-0.4.6.tar.gz";
+    sha256 = "0n6d88j0qda4dmy6mcj0cyin46n05m5phvjiah9i4ip54h8vs9s3";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://www.phontron.com/kytea/;
+    description = "General toolkit developed for analyzing text";
+
+    longDescription = ''
+      A general toolkit developed for analyzing text, with a focus on Japanese, 
+      Chinese and other languages requiring word or morpheme segmentation.
+    '';
+
+    license = licenses.asl20;
+
+    maintainers = [ maintainers.ericsagnes ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/tools/text/odt2txt/default.nix b/pkgs/tools/text/odt2txt/default.nix
index b7134bf8e47c..85f0f24b3874 100644
--- a/pkgs/tools/text/odt2txt/default.nix
+++ b/pkgs/tools/text/odt2txt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, zlib }:
+{ stdenv, fetchurl, zlib, libiconv }:
 
 stdenv.mkDerivation rec {
   name = "odt2txt-0.4";
@@ -10,7 +10,9 @@ stdenv.mkDerivation rec {
 
   configurePhase="export makeFlags=\"DESTDIR=$out\"";
 
-  buildInputs = [ zlib ];
+  buildInputs = [ zlib libiconv ];
+
+  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-liconv";
 
   meta = {
     description = "Simple .odt to .txt converter";
diff --git a/pkgs/tools/text/unrtf/default.nix b/pkgs/tools/text/unrtf/default.nix
index b1d8525c4da3..34eea38eb733 100644
--- a/pkgs/tools/text/unrtf/default.nix
+++ b/pkgs/tools/text/unrtf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoconf, automake }:
+{ stdenv, fetchurl, autoconf, automake, libiconv }:
 
 stdenv.mkDerivation rec {
   name = "unrtf-${version}";
@@ -11,6 +11,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake ];
 
+  buildInputs = [ ] ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-liconv";
+
   preConfigure = "./bootstrap";
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix
index d9d69a4a4c01..59059c632b97 100644
--- a/pkgs/tools/typesetting/asciidoc/default.nix
+++ b/pkgs/tools/typesetting/asciidoc/default.nix
@@ -235,7 +235,7 @@ stdenv.mkDerivation rec {
     # use it to work around an impurity in the tetex package; tetex tools
     # cannot find their neighbours (e.g. pdflatex doesn't find mktextfm).
     # We can remove PATH= when those impurities are fixed.
-    sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook5_xsl}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml', PATH='${tetex}/bin:${coreutils}/bin:${gnused}/bin')|" \
+    sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook5_xsl}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml', PATH='${stdenv.lib.makeBinPath [ tetex coreutils gnused ]}')|" \
         -e "s|^ASCIIDOC =.*|ASCIIDOC = '$out/bin/asciidoc'|" \
         -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt.bin}/bin/xsltproc'|" \
         -e "s|^DBLATEX =.*|DBLATEX = '${dblatexFull}/bin/dblatex'|" \
diff --git a/pkgs/tools/typesetting/djvu2pdf/default.nix b/pkgs/tools/typesetting/djvu2pdf/default.nix
index a426356a09f5..ce8a60dca869 100644
--- a/pkgs/tools/typesetting/djvu2pdf/default.nix
+++ b/pkgs/tools/typesetting/djvu2pdf/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
     cp -p djvu2pdf $out/bin
-    wrapProgram $out/bin/djvu2pdf --prefix PATH : ${ghostscript}/bin:${djvulibre.bin}/bin:${which}/bin
+    wrapProgram $out/bin/djvu2pdf --prefix PATH : ${stdenv.lib.makeBinPath [ ghostscript djvulibre which ]}
 
     mkdir -p $out/man/man1
     cp -p djvu2pdf.1.gz $out/man/man1
diff --git a/pkgs/tools/typesetting/docbook2odf/default.nix b/pkgs/tools/typesetting/docbook2odf/default.nix
index 90b2ff61f346..029227cd1186 100644
--- a/pkgs/tools/typesetting/docbook2odf/default.nix
+++ b/pkgs/tools/typesetting/docbook2odf/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     sed -i "s|/usr/share/docbook2odf|$out/share/docbook2odf|" "$out/bin/docbook2odf"
 
     wrapProgram "$out/bin/docbook2odf" \
-      --prefix PATH : "${zip}/bin:${libxslt}/bin" \
+      --prefix PATH : "${stdenv.lib.makeBinPath [ zip libxslt ]}" \
       --prefix PERL5PATH : "${stdenv.lib.makePerlPath [PerlMagick]}"
   '';
 
diff --git a/pkgs/tools/typesetting/pdfgrep/default.nix b/pkgs/tools/typesetting/pdfgrep/default.nix
index cef212b2a134..6e5f98d4a717 100644
--- a/pkgs/tools/typesetting/pdfgrep/default.nix
+++ b/pkgs/tools/typesetting/pdfgrep/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, pkgconfig, poppler, poppler_data, makeWrapper }:
+{ fetchurl, stdenv, pkgconfig, poppler, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "pdfgrep-${version}";
@@ -9,19 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "6e8bcaf8b219e1ad733c97257a97286a94124694958c27506b2ea7fc8e532437";
   };
 
-  buildInputs = [ pkgconfig poppler poppler_data makeWrapper ];
+  buildInputs = [ pkgconfig poppler makeWrapper ];
 
   patchPhase = ''
     sed -i -e "s%cpp/poppler-document.h%poppler/cpp/poppler-document.h%" pdfgrep.cc
     sed -i -e "s%cpp/poppler-page.h%poppler/cpp/poppler-page.h%" pdfgrep.cc
   '';
 
-  # workarround since it can't be hardcoded in pdfgrep
-  preFixup = ''
-    wrapProgram "$out/bin/pdfgrep" \
-      --set POPPLER_DATADIR "${poppler_data}/share/poppler"
-  '';
-
   meta = {
     description = "A tool to search text in PDF files";
     homepage = http://pdfgrep.sourceforge.net/;
diff --git a/pkgs/tools/typesetting/xmlto/default.nix b/pkgs/tools/typesetting/xmlto/default.nix
index 2ed846cb0703..ed3dad64f16d 100644
--- a/pkgs/tools/typesetting/xmlto/default.nix
+++ b/pkgs/tools/typesetting/xmlto/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram "$out/bin/xmlto" \
-       --prefix PATH : "${libxslt.bin}/bin:${libxml2.bin}/bin:${getopt}/bin"
+       --prefix PATH : "${stdenv.lib.makeBinPath [ libxslt libxml2 getopt ]}"
 
     # `w3m' is needed for HTML to text conversions.
     substituteInPlace "$out/share/xmlto/format/docbook/txt" \
diff --git a/pkgs/tools/video/mjpegtools/default.nix b/pkgs/tools/video/mjpegtools/default.nix
index 1b259b5b91b5..40fe5eb01477 100644
--- a/pkgs/tools/video/mjpegtools/default.nix
+++ b/pkgs/tools/video/mjpegtools/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ libdv libjpeg libpng pkgconfig ]
               ++ lib.optional (!withMinimal) [ gtk libX11 SDL SDL_gfx ];
 
+  NIX_CFLAGS_COMPILE = lib.optional (!withMinimal) "-I${SDL}/include/SDL";
+
   postPatch = ''
     sed -i -e '/ARCHFLAGS=/s:=.*:=:' configure
   '';
diff --git a/pkgs/tools/virtualization/ec2-ami-tools/default.nix b/pkgs/tools/virtualization/ec2-ami-tools/default.nix
index 6ccce4684ad5..edb3d6add169 100644
--- a/pkgs/tools/virtualization/ec2-ami-tools/default.nix
+++ b/pkgs/tools/virtualization/ec2-ami-tools/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
       for i in $out/bin/*; do
           wrapProgram $i \
             --set EC2_HOME $out \
-            --prefix PATH : ${ruby}/bin:${openssl.bin}/bin
+            --prefix PATH : ${stdenv.lib.makeBinPath [ ruby openssl ]}
       done
 
       sed -i 's|/bin/bash|${stdenv.shell}|' $out/lib/ec2/platform/base/pipeline.rb