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/arandr/default.nix2
-rw-r--r--pkgs/tools/X11/dispad/default.nix23
-rw-r--r--pkgs/tools/X11/virtualgl/default.nix19
-rw-r--r--pkgs/tools/X11/virtualgl/lib.nix10
-rw-r--r--pkgs/tools/X11/winswitch/default.nix4
-rw-r--r--pkgs/tools/X11/xpra/default.nix4
-rw-r--r--pkgs/tools/X11/xpra/gtk3.nix4
-rw-r--r--pkgs/tools/X11/xsettingsd/default.nix7
-rw-r--r--pkgs/tools/admin/cli53/default.nix4
-rw-r--r--pkgs/tools/admin/letsencrypt/default.nix30
-rw-r--r--pkgs/tools/admin/simp_le/default.nix4
-rw-r--r--pkgs/tools/archivers/cpio/CVE-2016-2037-out-of-bounds-write.patch29
-rw-r--r--pkgs/tools/archivers/cpio/default.nix4
-rw-r--r--pkgs/tools/archivers/undmg/default.nix27
-rw-r--r--pkgs/tools/archivers/undmg/setup-hook.sh5
-rw-r--r--pkgs/tools/archivers/unrar/default.nix17
-rw-r--r--pkgs/tools/audio/beets/alternatives-plugin.nix4
-rw-r--r--pkgs/tools/audio/beets/default.nix6
-rw-r--r--pkgs/tools/audio/playerctl/default.nix29
-rw-r--r--pkgs/tools/backup/attic/default.nix2
-rw-r--r--pkgs/tools/backup/borg/default.nix6
-rw-r--r--pkgs/tools/backup/obnam/default.nix2
-rw-r--r--pkgs/tools/backup/s3ql/default.nix2
-rw-r--r--pkgs/tools/backup/ugarit-manifest-maker/default.nix31
-rw-r--r--pkgs/tools/backup/ugarit-manifest-maker/eggs.nix431
-rw-r--r--pkgs/tools/backup/ugarit/default.nix41
-rw-r--r--pkgs/tools/backup/ugarit/eggs.nix486
-rw-r--r--pkgs/tools/backup/wal-e/default.nix2
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix68
-rw-r--r--pkgs/tools/bluetooth/bluez-tools/default.nix24
-rw-r--r--pkgs/tools/bluetooth/obexfs/default.nix11
-rw-r--r--pkgs/tools/bluetooth/obexftp/default.nix18
-rw-r--r--pkgs/tools/bluetooth/openobex/default.nix12
-rw-r--r--pkgs/tools/bootloaders/refind/default.nix2
-rw-r--r--pkgs/tools/compression/bzip2/default.nix2
-rw-r--r--pkgs/tools/compression/dtrx/default.nix2
-rw-r--r--pkgs/tools/compression/zstd/default.nix4
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--pkgs/tools/filesystems/ceph/generic.nix8
-rw-r--r--pkgs/tools/filesystems/gitfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix8
-rw-r--r--pkgs/tools/filesystems/hfsprogs/default.nix45
-rw-r--r--pkgs/tools/filesystems/netatalk/default.nix16
-rw-r--r--pkgs/tools/filesystems/netatalk/omitLocalstatedirCreation.patch35
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/blivet.nix4
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/default.nix10
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix4
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/pyparted.nix4
-rw-r--r--pkgs/tools/filesystems/nixpart/default.nix4
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix16
-rw-r--r--pkgs/tools/filesystems/yandex-disk/default.nix6
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix8
-rw-r--r--pkgs/tools/graphics/dpic/default.nix29
-rw-r--r--pkgs/tools/graphics/imgur-screenshot/default.nix2
-rw-r--r--pkgs/tools/graphics/scrot/default.nix23
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-anthy/default.nix27
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-chewing/default.nix31
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-hangul/default.nix30
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-m17n/default.nix29
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix117
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-table-other/default.nix29
-rw-r--r--pkgs/tools/inputmethods/fcitx/fcitx-anthy.nix24
-rw-r--r--pkgs/tools/inputmethods/fcitx/fcitx-qt5.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx/wrapper.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-anthy/default.nix32
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix34
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix26
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix36
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix (renamed from pkgs/tools/inputmethods/mozc/default.nix)37
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix (renamed from pkgs/tools/inputmethods/ibus-table-others/default.nix)15
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix41
-rw-r--r--pkgs/tools/inputmethods/ibus-table/default.nix21
-rw-r--r--pkgs/tools/inputmethods/ibus/default.nix65
-rw-r--r--pkgs/tools/inputmethods/ibus/ibus-qt.nix (renamed from pkgs/tools/inputmethods/ibus-qt/default.nix)0
-rw-r--r--pkgs/tools/inputmethods/ibus/wrapper.nix44
-rw-r--r--pkgs/tools/inputmethods/keyfuzz/default.nix21
-rw-r--r--pkgs/tools/inputmethods/uim/data-hook.patch39
-rw-r--r--pkgs/tools/inputmethods/uim/default.nix11
-rw-r--r--pkgs/tools/inputmethods/uim/immodules_cache.patch231
-rw-r--r--pkgs/tools/misc/apt-offline/default.nix4
-rw-r--r--pkgs/tools/misc/bdf2psf/default.nix4
-rw-r--r--pkgs/tools/misc/coreutils/default.nix38
-rw-r--r--pkgs/tools/misc/debian-devscripts/default.nix4
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix14
-rw-r--r--pkgs/tools/misc/entr/default.nix2
-rw-r--r--pkgs/tools/misc/exa/default.nix38
-rw-r--r--pkgs/tools/misc/gti/default.nix27
-rw-r--r--pkgs/tools/misc/homesick/default.nix2
-rw-r--r--pkgs/tools/misc/i3minator/default.nix4
-rw-r--r--pkgs/tools/misc/logstash/default.nix2
-rw-r--r--pkgs/tools/misc/mimeo/default.nix33
-rw-r--r--pkgs/tools/misc/mprime/default.nix56
-rw-r--r--pkgs/tools/misc/mprime/makefile.patch46
-rw-r--r--pkgs/tools/misc/ms-sys/default.nix6
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/staruml/default.nix49
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix4
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix2
-rw-r--r--pkgs/tools/misc/vdirsyncer/default.nix11
-rw-r--r--pkgs/tools/misc/xclip/default.nix3
-rw-r--r--pkgs/tools/misc/xdo/default.nix6
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix8
-rw-r--r--pkgs/tools/networking/aria2/default.nix4
-rw-r--r--pkgs/tools/networking/babeld/default.nix6
-rw-r--r--pkgs/tools/networking/chrony/default.nix4
-rw-r--r--pkgs/tools/networking/connman/default.nix4
-rw-r--r--pkgs/tools/networking/connman_dmenu/default.nix34
-rw-r--r--pkgs/tools/networking/curl/7.15.nix8
-rw-r--r--pkgs/tools/networking/curl/default.nix21
-rw-r--r--pkgs/tools/networking/curl/disable-ca-install.patch14
-rw-r--r--pkgs/tools/networking/ddclient/ddclient-foreground.patch12
-rw-r--r--pkgs/tools/networking/ddclient/default.nix26
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy/default.nix4
-rw-r--r--pkgs/tools/networking/driftnet/default.nix2
-rw-r--r--pkgs/tools/networking/getmail/default.nix8
-rw-r--r--pkgs/tools/networking/gmvault/default.nix4
-rw-r--r--pkgs/tools/networking/httpie/default.nix2
-rw-r--r--pkgs/tools/networking/i2p/default.nix4
-rw-r--r--pkgs/tools/networking/libreswan/default.nix75
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix10
-rw-r--r--pkgs/tools/networking/nbd/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager/default.nix2
-rw-r--r--pkgs/tools/networking/ntp/default.nix4
-rw-r--r--pkgs/tools/networking/offlineimap/default.nix4
-rw-r--r--pkgs/tools/networking/openssh/default.nix23
-rw-r--r--pkgs/tools/networking/p2p/tahoe-lafs/default.nix26
-rw-r--r--pkgs/tools/networking/pdnsd/default.nix2
-rw-r--r--pkgs/tools/networking/quicktun/default.nix34
-rw-r--r--pkgs/tools/networking/radvd/default.nix8
-rw-r--r--pkgs/tools/networking/ratools/default.nix32
-rw-r--r--pkgs/tools/networking/s3cmd/default.nix2
-rw-r--r--pkgs/tools/networking/shadowsocks-libev/default.nix42
-rw-r--r--pkgs/tools/networking/sipsak/default.nix25
-rw-r--r--pkgs/tools/networking/socat/2.x.nix4
-rw-r--r--pkgs/tools/networking/socat/default.nix4
-rw-r--r--pkgs/tools/networking/speedtest-cli/default.nix2
-rw-r--r--pkgs/tools/networking/sshpass/default.nix2
-rw-r--r--pkgs/tools/networking/tinc/pre.nix14
-rw-r--r--pkgs/tools/networking/tlsdate/default.nix2
-rw-r--r--pkgs/tools/networking/traceroute/default.nix2
-rw-r--r--pkgs/tools/networking/unbound/default.nix9
-rw-r--r--pkgs/tools/networking/urlwatch/default.nix2
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-prefetch-scripts/default.nix3
-rw-r--r--pkgs/tools/package-management/nixops/generic.nix2
-rw-r--r--pkgs/tools/package-management/nox/default.nix2
-rw-r--r--pkgs/tools/package-management/python2nix/default.nix2
-rw-r--r--pkgs/tools/security/clamav/default.nix12
-rw-r--r--pkgs/tools/security/fail2ban/default.nix2
-rw-r--r--pkgs/tools/security/gencfsm/default.nix4
-rw-r--r--pkgs/tools/security/knockknock/default.nix4
-rw-r--r--pkgs/tools/security/kpcli/default.nix2
-rw-r--r--pkgs/tools/security/munge/default.nix13
-rw-r--r--pkgs/tools/security/pamtester/default.nix2
-rw-r--r--pkgs/tools/security/pinentry/default.nix4
-rw-r--r--pkgs/tools/security/sshuttle/default.nix2
-rw-r--r--pkgs/tools/security/tor/torbrowser.nix6
-rw-r--r--pkgs/tools/security/volatility/default.nix4
-rw-r--r--pkgs/tools/system/amtterm/default.nix27
-rw-r--r--pkgs/tools/system/collectd/default.nix4
-rw-r--r--pkgs/tools/system/honcho/default.nix4
-rw-r--r--pkgs/tools/system/proot/default.nix33
-rw-r--r--pkgs/tools/text/gist/Gemfile2
-rw-r--r--pkgs/tools/text/gist/Gemfile.lock10
-rw-r--r--pkgs/tools/text/gist/default.nix32
-rw-r--r--pkgs/tools/text/gist/gemset.nix9
-rw-r--r--pkgs/tools/text/grin/default.nix2
-rw-r--r--pkgs/tools/text/popfile/default.nix2
-rw-r--r--pkgs/tools/text/wring/default.nix26
-rw-r--r--pkgs/tools/text/wring/node-packages.json1
-rw-r--r--pkgs/tools/text/wring/node-packages.nix24
-rw-r--r--pkgs/tools/text/yaml-merge/default.nix28
-rw-r--r--pkgs/tools/typesetting/odpdown/default.nix4
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.nix4
-rw-r--r--pkgs/tools/typesetting/pdfgrep/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/pgf/3.x.nix2
-rw-r--r--pkgs/tools/video/vnc2flv/default.nix2
-rw-r--r--pkgs/tools/virtualization/cloud-init/default.nix2
-rw-r--r--pkgs/tools/virtualization/euca2ools/default.nix2
179 files changed, 2931 insertions, 775 deletions
diff --git a/pkgs/tools/X11/arandr/default.nix b/pkgs/tools/X11/arandr/default.nix
index a6af7b996512..68355d0d8aa8 100644
--- a/pkgs/tools/X11/arandr/default.nix
+++ b/pkgs/tools/X11/arandr/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, python, xrandr, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "arandr-0.1.8";
 
   src = fetchurl {
diff --git a/pkgs/tools/X11/dispad/default.nix b/pkgs/tools/X11/dispad/default.nix
new file mode 100644
index 000000000000..853feb08002c
--- /dev/null
+++ b/pkgs/tools/X11/dispad/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, libX11, libXi, confuse }:
+
+stdenv.mkDerivation rec {
+  name = "dispad-${version}";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "BlueDragonX";
+    repo = "dispad";
+    rev = "v${version}";
+    sha256 = "0y0n9mf1hs3s706gkpmg1lh74m6vvkqc9rdbzgc6s2k7vdl2zp1y";
+  };
+
+  buildInputs = [ libX11 libXi confuse ];
+
+  meta = with stdenv.lib; {
+    description = "A small daemon for disabling trackpads while typing";
+    homepage = https://github.com/BlueDragonX/dispad;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ zimbatm ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/X11/virtualgl/default.nix b/pkgs/tools/X11/virtualgl/default.nix
index 7203229c47b5..e30badd0a85c 100644
--- a/pkgs/tools/X11/virtualgl/default.nix
+++ b/pkgs/tools/X11/virtualgl/default.nix
@@ -1,22 +1,19 @@
-{ lib, buildEnv
+{ stdenv, lib
 , virtualglLib
 , virtualglLib_i686 ? null
 }:
 
-buildEnv {
+stdenv.mkDerivation {
   name = "virtualgl-${lib.getVersion virtualglLib}";
 
   paths = [ virtualglLib ];
 
-  postBuild = lib.optionalString (virtualglLib_i686 != null) ''
-    rm $out/fakelib
-    # workaround for #4621
-    rm $out/bin
-    mkdir $out/bin
-    for i in ${virtualglLib}/bin/*; do
-      ln -s $i $out/bin
+  buildCommand = ''
+    mkdir -p $out/bin
+    for i in ${virtualglLib}/bin/* ${virtualglLib}/bin/.vglrun*; do
+      ln -s "$i" $out/bin
     done
-    ln -s ${virtualglLib}/bin/.vglrun.vars64 $out/bin
-    ln -s ${virtualglLib_i686}/bin/.vglrun.vars32 $out/bin
+  '' + lib.optionalString (virtualglLib_i686 != null) ''
+    ln -sf ${virtualglLib_i686}/bin/.vglrun.vars32 $out/bin
   '';
 }
diff --git a/pkgs/tools/X11/virtualgl/lib.nix b/pkgs/tools/X11/virtualgl/lib.nix
index 5c4456f6348d..2df037229ead 100644
--- a/pkgs/tools/X11/virtualgl/lib.nix
+++ b/pkgs/tools/X11/virtualgl/lib.nix
@@ -1,14 +1,12 @@
 { stdenv, fetchurl, cmake, mesa, libX11, libXv, libjpeg_turbo, fltk }:
 
-let
-  version = "2.4.1";
-in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "virtualgl-lib-${version}";
+  version = "2.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/virtualgl/VirtualGL-${version}.tar.gz";
-    sha256 = "0bngb4hrl0kn19qb3sa6mg6dbaahfk09gx2ng18l00xm6pmwd298";
+    sha256 = "1mnpljmx8nxnmpbx4ja430b3y535wkz185qknsxmk27yz4dbmm8l";
   };
 
   cmakeFlags = [ "-DVGL_SYSTEMFLTK=1" "-DTJPEG_LIBRARY=${libjpeg_turbo}/lib/libturbojpeg.so" ];
@@ -19,6 +17,8 @@ stdenv.mkDerivation {
 
   buildInputs = [ libjpeg_turbo mesa fltk libX11 libXv ];
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     homepage = http://www.virtualgl.org/;
     description = "X11 GL rendering in a remote computer with full 3D hw acceleration";
diff --git a/pkgs/tools/X11/winswitch/default.nix b/pkgs/tools/X11/winswitch/default.nix
index ad7ac7c64c82..767edbc47d56 100644
--- a/pkgs/tools/X11/winswitch/default.nix
+++ b/pkgs/tools/X11/winswitch/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, buildPythonPackage, pythonPackages
+{ stdenv, fetchurl, buildPythonApplication, pythonPackages
 , which, xpra, xmodmap }:
 
 let
-  base = buildPythonPackage rec {
+  base = buildPythonApplication rec {
     name = "winswitch-${version}";
     namePrefix = "";
     version = "0.12.16";
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix
index a71457927ec0..689384430863 100644
--- a/pkgs/tools/X11/xpra/default.nix
+++ b/pkgs/tools/X11/xpra/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, buildPythonPackage, pythonPackages
+{ stdenv, fetchurl, buildPythonApplication, pythonPackages
 , python, cython, pkgconfig
 , xorg, gtk, glib, pango, cairo, gdk_pixbuf, atk, pycairo
 , makeWrapper, xkbcomp, xorgserver, getopt, xauth, utillinux, which, fontsConf, xkeyboard_config
 , ffmpeg, x264, libvpx, libwebp
 , libfakeXinerama }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "xpra-0.15.3";
   namePrefix = "";
 
diff --git a/pkgs/tools/X11/xpra/gtk3.nix b/pkgs/tools/X11/xpra/gtk3.nix
index f5927a695c08..de8eb82f8835 100644
--- a/pkgs/tools/X11/xpra/gtk3.nix
+++ b/pkgs/tools/X11/xpra/gtk3.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, buildPythonPackage
+{ stdenv, fetchurl, buildPythonApplication
 , python, cython, pkgconfig
 , xorg, gtk3, glib, pango, cairo, gdk_pixbuf, atk, pygobject3, pycairo, gobjectIntrospection
 , makeWrapper, xkbcomp, xorgserver, getopt, xauth, utillinux, which, fontsConf, xkeyboard_config
 , ffmpeg, x264, libvpx, libwebp
 , libfakeXinerama }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "xpra-0.14.19";
   namePrefix = "";
 
diff --git a/pkgs/tools/X11/xsettingsd/default.nix b/pkgs/tools/X11/xsettingsd/default.nix
index 254cc8a4961f..c05aeff9337c 100644
--- a/pkgs/tools/X11/xsettingsd/default.nix
+++ b/pkgs/tools/X11/xsettingsd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "xsettingsd-${version}";
-  version = "0.0.1";
+  version = "git-2015-06-14";
 
   src = fetchFromGitHub {
     owner = "derat";
     repo = "xsettingsd";
-    rev = "2a516a91d8352b3b93a7a1ef5606dbd21fa06b7c";
-    sha256 = "0f9lc5w18x6xs9kf72jpixprp3xb7wqag23cy8zrm33n2bza9dj0";
+    rev = "b4999f5e9e99224caf97d09f25ee731774ecd7be";
+    sha256 = "18cp6a66ji483lrvf0vq855idwmcxd0s67ijpydgjlsr70c65j7s";
   };
 
   patches = [
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Provides settings to X11 applications via the XSETTINGS specification";
     homepage = https://github.com/derat/xsettingsd;
+    license = licenses.bsd2;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/admin/cli53/default.nix b/pkgs/tools/admin/cli53/default.nix
index 2fa54796e4c4..3248ac63bf79 100644
--- a/pkgs/tools/admin/cli53/default.nix
+++ b/pkgs/tools/admin/cli53/default.nix
@@ -1,6 +1,6 @@
-{ lib, buildPythonPackage, pythonPackages, fetchurl }:
+{ lib, buildPythonApplication, pythonPackages, fetchurl }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "cli53-${version}";
   namePrefix = "";  # Suppress "python27-" name prefix
   version = "0.4.4";
diff --git a/pkgs/tools/admin/letsencrypt/default.nix b/pkgs/tools/admin/letsencrypt/default.nix
index 2c74a677b913..be314a567313 100644
--- a/pkgs/tools/admin/letsencrypt/default.nix
+++ b/pkgs/tools/admin/letsencrypt/default.nix
@@ -1,22 +1,36 @@
-{ stdenv, pythonPackages, fetchurl, dialog }:
+{ stdenv, pythonPackages, fetchFromGitHub, dialog }:
 
-pythonPackages.buildPythonPackage rec {
-  version = "0.1.0";
+pythonPackages.buildPythonApplication rec {
   name = "letsencrypt-${version}";
+  version = "0.4.0";
 
-  src = fetchurl {
-    url = "https://github.com/letsencrypt/letsencrypt/archive/v${version}.tar.gz";
-    sha256 = "056y5bsmpc4ya5xxals4ypzsm927j6n5kwby3bjc03sy3sscf6hw";
+  src = fetchFromGitHub {
+    owner = "letsencrypt";
+    repo = "letsencrypt";
+    rev = "v${version}";
+    sha256 = "0r2wis48w5nailzp2d5brkh2f40al6sbz816xx0akh3ll0rl1hbv";
   };
 
   propagatedBuildInputs = with pythonPackages; [
-    zope_interface zope_component six requests2 pytz pyopenssl psutil mock acme
-    cryptography configobj pyRFC3339 python2-pythondialog parsedatetime ConfigArgParse
+    ConfigArgParse
+    acme
+    configobj
+    cryptography
+    parsedatetime
+    psutil
+    pyRFC3339
+    pyopenssl
+    python2-pythondialog
+    pytz
+    six
+    zope_component
+    zope_interface
   ];
   buildInputs = with pythonPackages; [ nose dialog ];
 
   patchPhase = ''
     substituteInPlace letsencrypt/notify.py --replace "/usr/sbin/sendmail" "/var/setuid-wrappers/sendmail"
+    substituteInPlace letsencrypt/le_util.py --replace "sw_vers" "/usr/bin/sw_vers"
   '';
 
   postInstall = ''
diff --git a/pkgs/tools/admin/simp_le/default.nix b/pkgs/tools/admin/simp_le/default.nix
index f6b352056fa0..d27c0a2da816 100644
--- a/pkgs/tools/admin/simp_le/default.nix
+++ b/pkgs/tools/admin/simp_le/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "simp_le-2016-01-09";
 
   src = fetchFromGitHub {
@@ -10,7 +10,7 @@ pythonPackages.buildPythonPackage rec {
     sha256 = "0l4qs0y4cbih76zrpbkn77xj17iwsm5fi83zc3p048x4hj163805";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ acme ];
+  propagatedBuildInputs = with pythonPackages; [ acme_0_1 ];
 
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
diff --git a/pkgs/tools/archivers/cpio/CVE-2016-2037-out-of-bounds-write.patch b/pkgs/tools/archivers/cpio/CVE-2016-2037-out-of-bounds-write.patch
new file mode 100644
index 000000000000..90ddeff9790e
--- /dev/null
+++ b/pkgs/tools/archivers/cpio/CVE-2016-2037-out-of-bounds-write.patch
@@ -0,0 +1,29 @@
+diff --git a/src/copyin.c b/src/copyin.c
+index cde911e..032d35f 100644
+--- a/src/copyin.c
++++ b/src/copyin.c
+@@ -1385,6 +1385,8 @@ process_copy_in ()
+          break;
+        }
+
++      if (file_hdr.c_namesize <= 1)
++        file_hdr.c_name = xrealloc(file_hdr.c_name, 2);
+       cpio_safer_name_suffix (file_hdr.c_name, false, !no_abs_paths_flag,
+                              false);
+
+diff --git a/src/util.c b/src/util.c
+index 6ff6032..2763ac1 100644
+--- a/src/util.c
++++ b/src/util.c
+@@ -1411,7 +1411,10 @@ set_file_times (int fd,
+ }
+
+ /* Do we have to ignore absolute paths, and if so, does the filename
+-   have an absolute path?  */
++   have an absolute path?
++   Before calling this function make sure that the allocated NAME buffer has
++   capacity at least 2 bytes to allow us to store the "." string inside.  */
++
+ void
+ cpio_safer_name_suffix (char *name, bool link_target, bool absolute_names,
+                        bool strip_leading_dots)
diff --git a/pkgs/tools/archivers/cpio/default.nix b/pkgs/tools/archivers/cpio/default.nix
index 570f1904ee21..2313f27f2e54 100644
--- a/pkgs/tools/archivers/cpio/default.nix
+++ b/pkgs/tools/archivers/cpio/default.nix
@@ -19,6 +19,10 @@ in stdenv.mkDerivation {
         + "CVE-2015-1197-cpio-2.12.patch";
       sha256 = "0ph43m4lavwkc4gnl5h9p3da4kb1pnhwk5l2qsky70dqri8pcr8v";
     })
+
+    # Report: http://www.openwall.com/lists/oss-security/2016/01/19/4
+    # Patch from https://lists.gnu.org/archive/html/bug-cpio/2016-01/msg00005.html
+    ./CVE-2016-2037-out-of-bounds-write.patch
   ];
 
   preConfigure = if stdenv.isCygwin then ''
diff --git a/pkgs/tools/archivers/undmg/default.nix b/pkgs/tools/archivers/undmg/default.nix
new file mode 100644
index 000000000000..5cb7bf2c62fc
--- /dev/null
+++ b/pkgs/tools/archivers/undmg/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, zlib, bzip2 }:
+
+stdenv.mkDerivation rec {
+  version = "1.0.2";
+  name = "undmg-${version}";
+
+  src = fetchFromGitHub {
+    owner = "matthewbauer";
+    repo = "undmg";
+    rev = "refs/tags/v${version}";
+    sha256 = "0w9vwvj9zbpsjkg251bwv9y10wjyjmh54q2piklz74w64rlbqblr";
+    name = "undmg-${version}";
+  };
+
+  buildInputs = [ zlib bzip2 ];
+
+  setupHook = ./setup-hook.sh;
+
+  installFlags = "PREFIX=\${out}";
+
+  meta = {
+    homepage = https://github.com/matthewbauer/undmg;
+    description = "Extract a DMG file";
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/archivers/undmg/setup-hook.sh b/pkgs/tools/archivers/undmg/setup-hook.sh
new file mode 100644
index 000000000000..e5c8dda23b6a
--- /dev/null
+++ b/pkgs/tools/archivers/undmg/setup-hook.sh
@@ -0,0 +1,5 @@
+unpackCmdHooks+=(_tryUnpackDmg)
+_tryUnpackDmg() {
+    if ! [[ "$curSrc" =~ \.dmg$ ]]; then return 1; fi
+    undmg < "$curSrc"
+}
diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix
index 86ad4a4c1453..769f20c41111 100644
--- a/pkgs/tools/archivers/unrar/default.nix
+++ b/pkgs/tools/archivers/unrar/default.nix
@@ -1,18 +1,18 @@
 {stdenv, fetchurl}:
 
-let
-  version = "5.3.9";
-in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "unrar-${version}";
+  version = "5.3.11";
 
   src = fetchurl {
     url = "http://www.rarlab.com/rar/unrarsrc-${version}.tar.gz";
-    sha256 = "0nsxwg1zp3s34wyjznwmy2cc5929yk7m5smq11cqdb6hmql3fngz";
+    sha256 = "0qw77gvr57azjbn76cjlm4sv1hf2hh90g7n7n33gfvlpnbs7mf3p";
   };
 
-  preBuild = ''
-    export buildFlags="CXX=$CXX"
+  buildPhase = ''
+    make unrar
+    make clean
+    make lib
   '';
 
   installPhase = ''
@@ -21,6 +21,9 @@ stdenv.mkDerivation {
     mkdir -p $out/share/doc/unrar
     cp acknow.txt license.txt \
         $out/share/doc/unrar
+
+    install -Dm755 libunrar.so $out/lib/libunrar.so
+    install -D dll.hpp $out/include/unrar/dll.hpp
   '';
 
   setupHook = ./setup-hook.sh;
diff --git a/pkgs/tools/audio/beets/alternatives-plugin.nix b/pkgs/tools/audio/beets/alternatives-plugin.nix
index 1b0c9b3992b9..75f74e71be52 100644
--- a/pkgs/tools/audio/beets/alternatives-plugin.nix
+++ b/pkgs/tools/audio/beets/alternatives-plugin.nix
@@ -1,6 +1,6 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pythonPackages }:
+{ stdenv, buildPythonApplication, fetchFromGitHub, pythonPackages }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "beets-alternatives-${version}";
   version = "0.8.2";
 
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 82e1af54ccf6..0079270e29fa 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, writeScript, glibcLocales
-, buildPythonPackage, pythonPackages, python, imagemagick
+, buildPythonApplication, pythonPackages, python, imagemagick
 
 , enableAcousticbrainz ? true
 , enableAcoustid       ? true
@@ -68,7 +68,7 @@ let
   testShell = "${bashInteractive}/bin/bash --norc";
   completion = "${bashCompletion}/share/bash-completion/bash_completion";
 
-in buildPythonPackage rec {
+in buildPythonApplication rec {
   name = "beets-${version}";
   version = "1.3.17";
   namePrefix = "";
@@ -103,7 +103,7 @@ in buildPythonPackage rec {
     ++ optional enableThumbnails   pythonPackages.pyxdg
     ++ optional enableWeb          pythonPackages.flask
     ++ optional enableAlternatives (import ./alternatives-plugin.nix {
-      inherit stdenv buildPythonPackage pythonPackages fetchFromGitHub;
+      inherit stdenv buildPythonApplication pythonPackages fetchFromGitHub;
     });
 
   buildInputs = with pythonPackages; [
diff --git a/pkgs/tools/audio/playerctl/default.nix b/pkgs/tools/audio/playerctl/default.nix
new file mode 100644
index 000000000000..0e2b11a1f06d
--- /dev/null
+++ b/pkgs/tools/audio/playerctl/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, which, gnome, glib,
+  pkgconfig, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  name = "playerctl";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "acrisci";
+    repo = "playerctl";
+    rev = "v${version}";
+    sha256 = "0dy6wc7qr00p53hlhpbg9x40w4ag95r2i7r1nsyb4ym3wzrvskzh";
+  };
+
+  buildInputs = [
+    which autoconf automake libtool gnome.gtkdoc glib pkgconfig
+    gobjectIntrospection
+  ];
+
+  preConfigure = "./autogen.sh";
+
+  meta = with stdenv.lib; {
+    description = "Command-line utility and library for controlling media players that implement MPRIS";
+    homepage = https://github.com/acrisci/playerctl;
+    license = licenses.lgpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ puffnfresh ];
+  };
+}
diff --git a/pkgs/tools/backup/attic/default.nix b/pkgs/tools/backup/attic/default.nix
index 0e2462c5ec85..4f659428c00a 100644
--- a/pkgs/tools/backup/attic/default.nix
+++ b/pkgs/tools/backup/attic/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchzip, python3Packages, openssl, acl }:
 
-python3Packages.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   name = "attic-${version}";
   version = "0.16";
   namePrefix = "";
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index 1ea8095bd38c..b46ea186dee3 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, python3Packages, acl, lz4, openssl }:
 
-python3Packages.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   name = "borgbackup-${version}";
-  version = "0.30.0";
+  version = "1.0.0";
   namePrefix = "";
 
   src = fetchurl {
     url = "https://pypi.python.org/packages/source/b/borgbackup/borgbackup-${version}.tar.gz";
-    sha256 = "0n78c982kdfqbyi9jawcvzgdik4l36c2s7rpzkfr1ka6506k2rx4";
+    sha256 = "0wa6cvqs3rni5nwrgagigchcly8a53rxk56z0zn8iaii2cqrw2sh";
   };
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/backup/obnam/default.nix b/pkgs/tools/backup/obnam/default.nix
index c287efe8e112..0df9fa9d39f0 100644
--- a/pkgs/tools/backup/obnam/default.nix
+++ b/pkgs/tools/backup/obnam/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, python, pythonPackages, pycrypto, attr }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "obnam-${version}";
   version = "1.19.1";
 
diff --git a/pkgs/tools/backup/s3ql/default.nix b/pkgs/tools/backup/s3ql/default.nix
index b455c672b104..e94af89a7c6d 100644
--- a/pkgs/tools/backup/s3ql/default.nix
+++ b/pkgs/tools/backup/s3ql/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, python3Packages, sqlite  }:
 
-python3Packages.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   name = "${pname}-${version}";
   pname = "s3ql";
   version = "2.13";
diff --git a/pkgs/tools/backup/ugarit-manifest-maker/default.nix b/pkgs/tools/backup/ugarit-manifest-maker/default.nix
new file mode 100644
index 000000000000..00651806a10a
--- /dev/null
+++ b/pkgs/tools/backup/ugarit-manifest-maker/default.nix
@@ -0,0 +1,31 @@
+{ pkgs, stdenv, eggDerivation, fetchegg }:
+let
+  eggs = import ./eggs.nix { inherit pkgs stdenv eggDerivation fetchegg; };
+in with pkgs; eggDerivation rec {
+  pname = "ugarit-manifest-maker";
+  version = "0.1";
+  name = "${pname}-${version}";
+
+  src = fetchegg {
+    inherit version;
+    name = pname;
+    sha256 = "1jv8lhn4s5a3qphqd3zfwl1py0m5cmqj1h55ys0935m5f422547q";
+  };
+
+  buildInputs = with eggs; [
+    matchable
+    srfi-37
+    fnmatch
+    miscmacros
+    ugarit
+    numbers
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://www.kitten-technologies.co.uk/project/ugarit-manifest-maker/;
+    description = "A tool for generating import manifests for Ugarit";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.ebzzry ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/backup/ugarit-manifest-maker/eggs.nix b/pkgs/tools/backup/ugarit-manifest-maker/eggs.nix
new file mode 100644
index 000000000000..182af5328eeb
--- /dev/null
+++ b/pkgs/tools/backup/ugarit-manifest-maker/eggs.nix
@@ -0,0 +1,431 @@
+{ pkgs, stdenv, eggDerivation, fetchegg }:
+rec {
+  blob-utils = eggDerivation {
+    name = "blob-utils-1.0.3";
+
+    src = fetchegg {
+      name = "blob-utils";
+      version = "1.0.3";
+      sha256 = "17vdn02fnxnjx5ixgqimln93lqvzyq4y9w02fw7xnbdcjzqm0xml";
+    };
+
+    buildInputs = [
+      setup-helper
+      string-utils
+    ];
+  };
+
+  check-errors = eggDerivation {
+    name = "check-errors-1.13.0";
+
+    src = fetchegg {
+      name = "check-errors";
+      version = "1.13.0";
+      sha256 = "12a0sn82n98jybh72zb39fdddmr5k4785xglxb16750fhy8rmjwi";
+    };
+
+    buildInputs = [
+      setup-helper
+    ];
+  };
+
+  crypto-tools = eggDerivation {
+    name = "crypto-tools-1.3";
+
+    src = fetchegg {
+      name = "crypto-tools";
+      version = "1.3";
+      sha256 = "0442wly63zis19vh8xc9nhxgp9sabaccxylpzmchd5f1d48iag65";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  fnmatch = eggDerivation {
+    name = "fnmatch-1.0.1";
+
+    src = fetchegg {
+      name = "fnmatch";
+      version = "1.0.1";
+      sha256 = "1m3jmyhkyqmjr7v628g6w5n3cqihcfnryrxn91k4597q7vjhikqr";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  foreigners = eggDerivation {
+    name = "foreigners-1.4.1";
+
+    src = fetchegg {
+      name = "foreigners";
+      version = "1.4.1";
+      sha256 = "07nvyadhkd52q0kkvch1a5d7ivpmrhmyg295s4mxb1nw4wz46gfz";
+    };
+
+    buildInputs = [
+      matchable
+    ];
+  };
+
+  lookup-table = eggDerivation {
+    name = "lookup-table-1.13.5";
+
+    src = fetchegg {
+      name = "lookup-table";
+      version = "1.13.5";
+      sha256 = "1nzly6rhynawlvzlyilk8z8cxz57cf9n5iv20glkhh28pz2izmrb";
+    };
+
+    buildInputs = [
+      setup-helper
+      check-errors
+      miscmacros
+      record-variants
+      synch
+    ];
+  };
+
+  lru-cache = eggDerivation {
+    name = "lru-cache-0.5.3";
+
+    src = fetchegg {
+      name = "lru-cache";
+      version = "0.5.3";
+      sha256 = "0z6g3106c4j21v968hfzy9nnbfq2d83y0nyd20aifpq4g55c0d40";
+    };
+
+    buildInputs = [
+      record-variants
+    ];
+  };
+
+  matchable = eggDerivation {
+    name = "matchable-3.3";
+
+    src = fetchegg {
+      name = "matchable";
+      version = "3.3";
+      sha256 = "07y3lpzgm4djiwi9y2adc796f9kwkmdr28fkfkw65syahdax8990";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  message-digest = eggDerivation {
+    name = "message-digest-3.1.0";
+
+    src = fetchegg {
+      name = "message-digest";
+      version = "3.1.0";
+      sha256 = "1w6bax19dwgih78vcimiws0rja7qsd8hmbm6qqg2hf9cw3vab21s";
+    };
+
+    buildInputs = [
+      setup-helper
+      miscmacros
+      check-errors
+      variable-item
+      blob-utils
+      string-utils
+    ];
+  };
+
+  miscmacros = eggDerivation {
+    name = "miscmacros-2.96";
+
+    src = fetchegg {
+      name = "miscmacros";
+      version = "2.96";
+      sha256 = "1ajdgjrni10i2hmhcp4rawnxajjxry3kmq1krdmah4sf0kjrgajc";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  numbers = eggDerivation {
+    name = "numbers-4.4";
+
+    src = fetchegg {
+      name = "numbers";
+      version = "4.4";
+      sha256 = "0bg5zs6jcr9arj4a7r2xqxf2n17bx93640jaivgchbdj1gixranm";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  parley = eggDerivation {
+    name = "parley-0.9.2";
+
+    src = fetchegg {
+      name = "parley";
+      version = "0.9.2";
+      sha256 = "1vsbx4dk1240gzq02slzmavd1jrq04qj7ssnvg15h8xh81xwhbbz";
+    };
+
+    buildInputs = [
+      stty
+      srfi-71
+      miscmacros
+    ];
+  };
+
+  pathname-expand = eggDerivation {
+    name = "pathname-expand-0.1";
+
+    src = fetchegg {
+      name = "pathname-expand";
+      version = "0.1";
+      sha256 = "14llya7l04z49xpi3iylk8aglrw968vy304ymavhhqlyzmzwkx3g";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  posix-extras = eggDerivation {
+    name = "posix-extras-0.1.6";
+
+    src = fetchegg {
+      name = "posix-extras";
+      version = "0.1.6";
+      sha256 = "0gnmhn2l0161ham7f8i0lx1ay94ap8l8l7ga4nw9qs86lk024abi";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  record-variants = eggDerivation {
+    name = "record-variants-0.5.1";
+
+    src = fetchegg {
+      name = "record-variants";
+      version = "0.5.1";
+      sha256 = "15wgysxkm8m4hx9nhhw9akchzipdnqc7yj3qd3zn0z7sxg4sld1h";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  regex = eggDerivation {
+    name = "regex-1.0";
+
+    src = fetchegg {
+      name = "regex";
+      version = "1.0";
+      sha256 = "1z9bh7xvab6h5cdlsz8jk02pv5py1i6ryqarbcs3wdgkkjgmmkif";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  setup-helper = eggDerivation {
+    name = "setup-helper-1.5.5";
+
+    src = fetchegg {
+      name = "setup-helper";
+      version = "1.5.5";
+      sha256 = "1lpplp8f2wyc486dd98gs4wl1kkhh1cs6vdqkxrdk7f92ikmwbx3";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  sql-de-lite = eggDerivation {
+    name = "sql-de-lite-0.6.6";
+
+    src = fetchegg {
+      name = "sql-de-lite";
+      version = "0.6.6";
+      sha256 = "1mh3hpsibq2gxcpjaycqa4ckznj268xpfzsa6pn0i6iac6my3qra";
+    };
+
+    buildInputs = [
+      lru-cache
+      foreigners
+    ];
+  };
+
+  srfi-37 = eggDerivation {
+    name = "srfi-37-1.3.1";
+
+    src = fetchegg {
+      name = "srfi-37";
+      version = "1.3.1";
+      sha256 = "1a2zdkdzrv15fw9dfdy8067fsgh4kr8ppffm8mc3cmlczrrd58cb";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  srfi-71 = eggDerivation {
+    name = "srfi-71-1.1";
+
+    src = fetchegg {
+      name = "srfi-71";
+      version = "1.1";
+      sha256 = "01mlaxw2lfczykmx69xki2s0f4ywlg794rl4kz07plvzn0s3fbqq";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  ssql = eggDerivation {
+    name = "ssql-0.2.2";
+
+    src = fetchegg {
+      name = "ssql";
+      version = "0.2.2";
+      sha256 = "10557ymy0fgvqqazsg2jsbqvng0b91jqcjfgsxkrq8xs3klyd5mf";
+    };
+
+    buildInputs = [
+      matchable
+    ];
+  };
+
+  string-utils = eggDerivation {
+    name = "string-utils-1.2.4";
+
+    src = fetchegg {
+      name = "string-utils";
+      version = "1.2.4";
+      sha256 = "07alvghg0dahilrm4jg44bndl0x69sv1zbna9l20cbdvi35i0jp1";
+    };
+
+    buildInputs = [
+      setup-helper
+      miscmacros
+      lookup-table
+      check-errors
+    ];
+  };
+
+  stty = eggDerivation {
+    name = "stty-0.2.6";
+
+    src = fetchegg {
+      name = "stty";
+      version = "0.2.6";
+      sha256 = "09jmjpdsd3yg6d0f0imcihmn49i28x09lgl60i2dllffs25k22s4";
+    };
+
+    buildInputs = [
+      setup-helper
+      foreigners
+    ];
+  };
+
+  synch = eggDerivation {
+    name = "synch-2.1.2";
+
+    src = fetchegg {
+      name = "synch";
+      version = "2.1.2";
+      sha256 = "1m9mnbq0m5jsxmd1a3rqpwpxj0l1b7vn1fknvxycc047pmlcyl00";
+    };
+
+    buildInputs = [
+      setup-helper
+      check-errors
+    ];
+  };
+
+  tiger-hash = eggDerivation {
+    name = "tiger-hash-3.1.0";
+
+    src = fetchegg {
+      name = "tiger-hash";
+      version = "3.1.0";
+      sha256 = "0j9dsbjp9cw0y4w4srg0qwgh53jw2v3mx4y4h040ds0fkxlzzknx";
+    };
+
+    buildInputs = [
+      message-digest
+    ];
+  };
+
+  ugarit = eggDerivation {
+    name = "ugarit-2.0";
+
+    src = fetchegg {
+      name = "ugarit";
+      version = "2.0";
+      sha256 = "1l5zkr6b8l5dw9p5mimbva0ncqw1sbvp3d4cywm1hqx2m03a0f1n";
+    };
+
+    buildInputs = [
+      miscmacros
+      sql-de-lite
+      crypto-tools
+      srfi-37
+      stty
+      matchable
+      regex
+      tiger-hash
+      message-digest
+      posix-extras
+      parley
+      ssql
+      pathname-expand
+    ];
+  };
+
+  ugarit-manifest-maker = eggDerivation {
+    name = "ugarit-manifest-maker-0.1";
+
+    src = fetchegg {
+      name = "ugarit-manifest-maker";
+      version = "0.1";
+      sha256 = "1jv8lhn4s5a3qphqd3zfwl1py0m5cmqj1h55ys0935m5f422547q";
+    };
+
+    buildInputs = [
+      matchable
+      srfi-37
+      fnmatch
+      miscmacros
+      ugarit
+      numbers
+    ];
+  };
+
+  variable-item = eggDerivation {
+    name = "variable-item-1.3.1";
+
+    src = fetchegg {
+      name = "variable-item";
+      version = "1.3.1";
+      sha256 = "19b3mhb8kr892sz9yyzq79l0vv28dgilw9cf415kj6aq16yp4d5n";
+    };
+
+    buildInputs = [
+      setup-helper
+      check-errors
+    ];
+  };
+}
+
diff --git a/pkgs/tools/backup/ugarit/default.nix b/pkgs/tools/backup/ugarit/default.nix
new file mode 100644
index 000000000000..56da9a810208
--- /dev/null
+++ b/pkgs/tools/backup/ugarit/default.nix
@@ -0,0 +1,41 @@
+{ pkgs, stdenv, eggDerivation, fetchegg }:
+let
+  eggs = import ./eggs.nix { inherit pkgs stdenv eggDerivation fetchegg; };
+in with pkgs; eggDerivation rec {
+  pname = "ugarit";
+  version = "2.0";
+  name = "${pname}-${version}";
+
+  src = fetchegg {
+    inherit version;
+    name = pname;
+    sha256 = "1l5zkr6b8l5dw9p5mimbva0ncqw1sbvp3d4cywm1hqx2m03a0f1n";
+  };
+
+  buildInputs = with eggs; [
+    aes
+    crypto-tools
+    matchable
+    message-digest
+    miscmacros
+    parley
+    pathname-expand
+    posix-extras
+    regex
+    sha2
+    sql-de-lite
+    srfi-37
+    ssql
+    stty
+    tiger-hash
+    z3
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://www.kitten-technologies.co.uk/project/ugarit/;
+    description = "A backup/archival system based around content-addressible storage";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.ebzzry ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/backup/ugarit/eggs.nix b/pkgs/tools/backup/ugarit/eggs.nix
new file mode 100644
index 000000000000..25260674f1f3
--- /dev/null
+++ b/pkgs/tools/backup/ugarit/eggs.nix
@@ -0,0 +1,486 @@
+{ pkgs, stdenv, eggDerivation, fetchegg }:
+rec {
+  aes = eggDerivation {
+    name = "aes-1.3";
+
+    src = fetchegg {
+      name = "aes";
+      version = "1.3";
+      sha256 = "0zhkqdms2f9if1j5v8myay2mfiislvpj3bcqawb4s4dw0qcp20kb";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  blob-utils = eggDerivation {
+    name = "blob-utils-1.0.3";
+
+    src = fetchegg {
+      name = "blob-utils";
+      version = "1.0.3";
+      sha256 = "17vdn02fnxnjx5ixgqimln93lqvzyq4y9w02fw7xnbdcjzqm0xml";
+    };
+
+    buildInputs = [
+      setup-helper
+      string-utils
+    ];
+  };
+
+  check-errors = eggDerivation {
+    name = "check-errors-1.13.0";
+
+    src = fetchegg {
+      name = "check-errors";
+      version = "1.13.0";
+      sha256 = "12a0sn82n98jybh72zb39fdddmr5k4785xglxb16750fhy8rmjwi";
+    };
+
+    buildInputs = [
+      setup-helper
+    ];
+  };
+
+  crypto-tools = eggDerivation {
+    name = "crypto-tools-1.3";
+
+    src = fetchegg {
+      name = "crypto-tools";
+      version = "1.3";
+      sha256 = "0442wly63zis19vh8xc9nhxgp9sabaccxylpzmchd5f1d48iag65";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  foreigners = eggDerivation {
+    name = "foreigners-1.4.1";
+
+    src = fetchegg {
+      name = "foreigners";
+      version = "1.4.1";
+      sha256 = "07nvyadhkd52q0kkvch1a5d7ivpmrhmyg295s4mxb1nw4wz46gfz";
+    };
+
+    buildInputs = [
+      matchable
+    ];
+  };
+
+  lookup-table = eggDerivation {
+    name = "lookup-table-1.13.5";
+
+    src = fetchegg {
+      name = "lookup-table";
+      version = "1.13.5";
+      sha256 = "1nzly6rhynawlvzlyilk8z8cxz57cf9n5iv20glkhh28pz2izmrb";
+    };
+
+    buildInputs = [
+      setup-helper
+      check-errors
+      miscmacros
+      record-variants
+      synch
+    ];
+  };
+
+  lru-cache = eggDerivation {
+    name = "lru-cache-0.5.3";
+
+    src = fetchegg {
+      name = "lru-cache";
+      version = "0.5.3";
+      sha256 = "0z6g3106c4j21v968hfzy9nnbfq2d83y0nyd20aifpq4g55c0d40";
+    };
+
+    buildInputs = [
+      record-variants
+    ];
+  };
+
+  matchable = eggDerivation {
+    name = "matchable-3.3";
+
+    src = fetchegg {
+      name = "matchable";
+      version = "3.3";
+      sha256 = "07y3lpzgm4djiwi9y2adc796f9kwkmdr28fkfkw65syahdax8990";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  message-digest = eggDerivation {
+    name = "message-digest-3.1.0";
+
+    src = fetchegg {
+      name = "message-digest";
+      version = "3.1.0";
+      sha256 = "1w6bax19dwgih78vcimiws0rja7qsd8hmbm6qqg2hf9cw3vab21s";
+    };
+
+    buildInputs = [
+      setup-helper
+      miscmacros
+      check-errors
+      variable-item
+      blob-utils
+      string-utils
+    ];
+  };
+
+  miscmacros = eggDerivation {
+    name = "miscmacros-2.96";
+
+    src = fetchegg {
+      name = "miscmacros";
+      version = "2.96";
+      sha256 = "1ajdgjrni10i2hmhcp4rawnxajjxry3kmq1krdmah4sf0kjrgajc";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  parley = eggDerivation {
+    name = "parley-0.9.2";
+
+    src = fetchegg {
+      name = "parley";
+      version = "0.9.2";
+      sha256 = "1vsbx4dk1240gzq02slzmavd1jrq04qj7ssnvg15h8xh81xwhbbz";
+    };
+
+    buildInputs = [
+      stty
+      srfi-71
+      miscmacros
+    ];
+  };
+
+  pathname-expand = eggDerivation {
+    name = "pathname-expand-0.1";
+
+    src = fetchegg {
+      name = "pathname-expand";
+      version = "0.1";
+      sha256 = "14llya7l04z49xpi3iylk8aglrw968vy304ymavhhqlyzmzwkx3g";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  posix-extras = eggDerivation {
+    name = "posix-extras-0.1.6";
+
+    src = fetchegg {
+      name = "posix-extras";
+      version = "0.1.6";
+      sha256 = "0gnmhn2l0161ham7f8i0lx1ay94ap8l8l7ga4nw9qs86lk024abi";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  record-variants = eggDerivation {
+    name = "record-variants-0.5.1";
+
+    src = fetchegg {
+      name = "record-variants";
+      version = "0.5.1";
+      sha256 = "15wgysxkm8m4hx9nhhw9akchzipdnqc7yj3qd3zn0z7sxg4sld1h";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  regex = eggDerivation {
+    name = "regex-1.0";
+
+    src = fetchegg {
+      name = "regex";
+      version = "1.0";
+      sha256 = "1z9bh7xvab6h5cdlsz8jk02pv5py1i6ryqarbcs3wdgkkjgmmkif";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  setup-helper = eggDerivation {
+    name = "setup-helper-1.5.5";
+
+    src = fetchegg {
+      name = "setup-helper";
+      version = "1.5.5";
+      sha256 = "1lpplp8f2wyc486dd98gs4wl1kkhh1cs6vdqkxrdk7f92ikmwbx3";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  sha2 = eggDerivation {
+    name = "sha2-3.1.0";
+
+    src = fetchegg {
+      name = "sha2";
+      version = "3.1.0";
+      sha256 = "01ch290f2kcv1yv8spjdaqwipl80vvgpqc4divsj3vxckvgkawq2";
+    };
+
+    buildInputs = [
+      message-digest
+    ];
+  };
+
+  sql-de-lite = eggDerivation {
+    name = "sql-de-lite-0.6.6";
+
+    src = fetchegg {
+      name = "sql-de-lite";
+      version = "0.6.6";
+      sha256 = "1mh3hpsibq2gxcpjaycqa4ckznj268xpfzsa6pn0i6iac6my3qra";
+    };
+
+    buildInputs = [
+      lru-cache
+      foreigners
+    ];
+  };
+
+  srfi-37 = eggDerivation {
+    name = "srfi-37-1.3.1";
+
+    src = fetchegg {
+      name = "srfi-37";
+      version = "1.3.1";
+      sha256 = "1a2zdkdzrv15fw9dfdy8067fsgh4kr8ppffm8mc3cmlczrrd58cb";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  srfi-71 = eggDerivation {
+    name = "srfi-71-1.1";
+
+    src = fetchegg {
+      name = "srfi-71";
+      version = "1.1";
+      sha256 = "01mlaxw2lfczykmx69xki2s0f4ywlg794rl4kz07plvzn0s3fbqq";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  ssql = eggDerivation {
+    name = "ssql-0.2.2";
+
+    src = fetchegg {
+      name = "ssql";
+      version = "0.2.2";
+      sha256 = "10557ymy0fgvqqazsg2jsbqvng0b91jqcjfgsxkrq8xs3klyd5mf";
+    };
+
+    buildInputs = [
+      matchable
+    ];
+  };
+
+  string-utils = eggDerivation {
+    name = "string-utils-1.2.4";
+
+    src = fetchegg {
+      name = "string-utils";
+      version = "1.2.4";
+      sha256 = "07alvghg0dahilrm4jg44bndl0x69sv1zbna9l20cbdvi35i0jp1";
+    };
+
+    buildInputs = [
+      setup-helper
+      miscmacros
+      lookup-table
+      check-errors
+    ];
+  };
+
+  stty = eggDerivation {
+    name = "stty-0.2.6";
+
+    src = fetchegg {
+      name = "stty";
+      version = "0.2.6";
+      sha256 = "09jmjpdsd3yg6d0f0imcihmn49i28x09lgl60i2dllffs25k22s4";
+    };
+
+    buildInputs = [
+      setup-helper
+      foreigners
+    ];
+  };
+
+  synch = eggDerivation {
+    name = "synch-2.1.2";
+
+    src = fetchegg {
+      name = "synch";
+      version = "2.1.2";
+      sha256 = "1m9mnbq0m5jsxmd1a3rqpwpxj0l1b7vn1fknvxycc047pmlcyl00";
+    };
+
+    buildInputs = [
+      setup-helper
+      check-errors
+    ];
+  };
+
+  tiger-hash = eggDerivation {
+    name = "tiger-hash-3.1.0";
+
+    src = fetchegg {
+      name = "tiger-hash";
+      version = "3.1.0";
+      sha256 = "0j9dsbjp9cw0y4w4srg0qwgh53jw2v3mx4y4h040ds0fkxlzzknx";
+    };
+
+    buildInputs = [
+      message-digest
+    ];
+  };
+
+  ugarit = eggDerivation {
+    name = "ugarit-2.0";
+
+    src = fetchegg {
+      name = "ugarit";
+      version = "2.0";
+      sha256 = "1l5zkr6b8l5dw9p5mimbva0ncqw1sbvp3d4cywm1hqx2m03a0f1n";
+    };
+
+    buildInputs = [
+      miscmacros
+      sql-de-lite
+      crypto-tools
+      srfi-37
+      stty
+      matchable
+      regex
+      tiger-hash
+      message-digest
+      posix-extras
+      parley
+      ssql
+      pathname-expand
+    ];
+  };
+
+  variable-item = eggDerivation {
+    name = "variable-item-1.3.1";
+
+    src = fetchegg {
+      name = "variable-item";
+      version = "1.3.1";
+      sha256 = "19b3mhb8kr892sz9yyzq79l0vv28dgilw9cf415kj6aq16yp4d5n";
+    };
+
+    buildInputs = [
+      setup-helper
+      check-errors
+    ];
+  };
+
+  bind = eggDerivation {
+    name = "bind-1.5.2";
+
+    src = fetchegg {
+      name = "bind";
+      version = "1.5.2";
+      sha256 = "1x768k7dlfmkvgaf2idiaaqqgnqdnif5yb7ib6a6zndacbwz9jps";
+    };
+
+    buildInputs = [
+      silex
+      matchable
+      coops
+      regex
+      make
+    ];
+  };
+
+  coops = eggDerivation {
+    name = "coops-1.93";
+
+    src = fetchegg {
+      name = "coops";
+      version = "1.93";
+      sha256 = "0mrkk7pmn9r691svzm4113mn0xsk36zi3f15m86n29a6c7897php";
+    };
+
+    buildInputs = [
+      matchable
+      record-variants
+    ];
+  };
+
+  make = eggDerivation {
+    name = "make-1.8";
+
+    src = fetchegg {
+      name = "make";
+      version = "1.8";
+      sha256 = "1w6xsjyapi2x8dv21dpidkyw1kjfsbasddn554xx561pi3i0yv9h";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  silex = eggDerivation {
+    name = "silex-1.4";
+
+    src = fetchegg {
+      name = "silex";
+      version = "1.4";
+      sha256 = "17x7f07aa3qnay3bhjr7knjivhycs54j97jyv3gjs1h8qnp63g00";
+    };
+
+    buildInputs = [
+      
+    ];
+  };
+
+  z3 = eggDerivation {
+    name = "z3-1.44";
+
+    src = fetchegg {
+      name = "z3";
+      version = "1.44";
+      sha256 = "16ayp4zkgm332q4bmjj22acqg197aqp6d8ifyyjj205iv6k0f3x4";
+    };
+
+    buildInputs = [
+      bind
+    ];
+  };
+}
diff --git a/pkgs/tools/backup/wal-e/default.nix b/pkgs/tools/backup/wal-e/default.nix
index 025a998aed4e..3b66ac1b491f 100644
--- a/pkgs/tools/backup/wal-e/default.nix
+++ b/pkgs/tools/backup/wal-e/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pythonPackages, lzop, postgresql, pv }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "wal-e-${version}";
   version = "0.6.10";
 
diff --git a/pkgs/tools/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index 7acb8ce2eb0b..428c751571cf 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -1,43 +1,49 @@
-{ stdenv, fetchurl, pkgconfig, intltool, python, pyrex, pygobject, pygtk
-, notify, pythonDBus, bluez, glib, gtk, libstartup_notification
-, makeWrapper, xdg_utils, obex_data_server
-, libpulseaudio
-}:
-   
-stdenv.mkDerivation rec {
-  name = "blueman-1.23";
+{ stdenv, lib, fetchurl, intltool, pkgconfig, pythonPackages, bluez, polkit, gtk3
+, obex_data_server, xdg_utils, libnotify, dconf, gsettings_desktop_schemas, dnsmasq, dhcp
+, withPulseAudio ? true, libpulseaudio }:
+
+let
+  binPath = lib.makeBinPath [ xdg_utils dnsmasq dhcp ];
+
+in stdenv.mkDerivation rec {
+  name = "blueman-${version}";
+  version = "2.0.3";
    
   src = fetchurl {
-    url = "http://download.tuxfamily.org/blueman/${name}.tar.gz";
-    sha256 = "04ghlh4h5bwp9mqr5jxcmjm01595l5fq5561qxvf369fvjy63cjh";
+    url = "https://github.com/blueman-project/blueman/releases/download/${version}/${name}.tar.xz";
+    sha256 = "09aqlk4c2qzqpmyf7b40sic7d45c1l8fyrb9f3s22b8w83j0adi4";
   };
 
-  configureFlags = "--disable-polkit";
+  nativeBuildInputs = [ intltool pkgconfig pythonPackages.wrapPython pythonPackages.cython ];
+
+  buildInputs = [ bluez gtk3 pythonPackages.python libnotify dconf gsettings_desktop_schemas ]
+                ++ pythonPath
+                ++ lib.optional withPulseAudio libpulseaudio;
+
+  postPatch = lib.optionalString withPulseAudio ''
+    sed -i 's,CDLL(",CDLL("${libpulseaudio}/lib/,g' blueman/main/PulseAudioUtils.py
+  '';
 
-  buildInputs =
-    [ pkgconfig intltool python pyrex pygobject pygtk notify pythonDBus
-      bluez glib gtk libstartup_notification makeWrapper
-    ];
+  pythonPath = with pythonPackages; [ dbus pygobject3 ];
 
-  # !!! Ugly.
-  PYTHONPATH = "${pygobject}/lib/${python.libPrefix}/site-packages/gtk-2.0:${pygtk}/lib/${python.libPrefix}/site-packages/gtk-2.0:${notify}/lib/${python.libPrefix}/site-packages/gtk-2.0";
+  propagatedUserEnvPkgs = [ obex_data_server dconf ];
 
-  postInstall =
-    ''
-      # Create wrappers that set the environment correctly.
-      for i in $out/bin/* $out/libexec/*; do
-          wrapProgram $i \
-              --set PYTHONPATH "$(toPythonPath $out):$PYTHONPATH" \
-              --set LD_LIBRARY_PATH "${libpulseaudio.out}/lib:" \
-              --prefix PATH : ${xdg_utils}/bin
-      done
+  configureFlags = [ (lib.enableFeature withPulseAudio "pulseaudio") ];
 
-      mkdir -p $out/nix-support
-      echo ${obex_data_server} > $out/nix-support/propagated-user-env-packages
-    ''; # */
+  postFixup = ''
+    makeWrapperArgs="\
+      --prefix PATH ':' ${binPath} \
+      --prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH \
+      --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \
+      --prefix GIO_EXTRA_MODULES : ${dconf}/lib/gio/modules"
+    wrapPythonPrograms
+  '';
 
-  meta = {
-    homepage = http://blueman-project.org/;
+  meta = with lib; {
+    homepage = https://github.com/blueman-project;
     description = "GTK+-based Bluetooth Manager";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/tools/bluetooth/bluez-tools/default.nix b/pkgs/tools/bluetooth/bluez-tools/default.nix
new file mode 100644
index 000000000000..4469ba67b3b8
--- /dev/null
+++ b/pkgs/tools/bluetooth/bluez-tools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, autoconf, automake, glib, pkgconfig, readline, fetchgit }:
+
+stdenv.mkDerivation rec {
+  date    = "2015-09-10";
+  name    = "bluez-tools-${date}";
+  rev     = "193ad6bb3db";
+
+  src = fetchgit {
+    inherit rev;
+    url    = "https://github.com/khvzak/bluez-tools.git";
+    sha256 = "3f264d14ba8ef1b0d3c45e621a5c685035a60d789da64f64d25055047f45c55b";
+  };
+  preConfigure = ''
+    ./autogen.sh
+  '';
+  buildInputs = [ stdenv autoconf automake glib pkgconfig readline ];
+
+  meta = with stdenv.lib; {
+    description = "Command line bluetooth manager for Bluez5";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ maintainers.dasuxullebt ];
+  };
+
+}
diff --git a/pkgs/tools/bluetooth/obexfs/default.nix b/pkgs/tools/bluetooth/obexfs/default.nix
index aeeeb4bf8d0a..94c011152da6 100644
--- a/pkgs/tools/bluetooth/obexfs/default.nix
+++ b/pkgs/tools/bluetooth/obexfs/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, fuse, obexftp}:
+{ stdenv, fetchurl, pkgconfig, fuse, obexftp }:
    
 stdenv.mkDerivation rec {
   name = "obexfs-0.12";
@@ -8,12 +8,13 @@ stdenv.mkDerivation rec {
     sha256 = "1g3krpygk6swa47vbmp9j9s8ahqqcl9ra8r25ybgzv2d9pmjm9kj";
   };
 
-  buildInputs = [pkgconfig fuse obexftp];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ fuse obexftp ];
 
-  NIX_LDFLAGS = "-lobexftp";
-
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://dev.zuckschwerdt.org/openobex/wiki/ObexFs;
     description = "A tool to mount OBEX-based devices (such as Bluetooth phones)";
+    platforms = platforms.linux;
+    license = licenses.lgpl2Plus;
   };
 }
diff --git a/pkgs/tools/bluetooth/obexftp/default.nix b/pkgs/tools/bluetooth/obexftp/default.nix
index 4a40b4393c37..12b021d5d3b3 100644
--- a/pkgs/tools/bluetooth/obexftp/default.nix
+++ b/pkgs/tools/bluetooth/obexftp/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, openobex, bluez, cmake}:
+{ stdenv, fetchurl, pkgconfig, openobex, bluez, cmake }:
    
 stdenv.mkDerivation rec {
   name = "obexftp-0.24";
@@ -8,13 +8,21 @@ stdenv.mkDerivation rec {
     sha256 = "0szy7p3y75bd5h4af0j5kf0fpzx2w560fpy4kg3603mz11b9c1xr";
   };
 
-  buildInputs = [pkgconfig bluez cmake];
+  nativeBuildInputs = [ pkgconfig cmake ];
 
-  propagatedBuildInputs = [openobex];
+  buildInputs = [ bluez ];
 
-  meta = {
+  propagatedBuildInputs = [ openobex ];
+
+  # There's no such thing like "bluetooth" library; possibly they meant "bluez" but it links correctly without this.
+  postFixup = ''
+    sed -i 's,^Requires: bluetooth,Requires:,' $out/lib/pkgconfig/obexftp.pc
+  '';
+
+  meta = with stdenv.lib; {
     homepage = http://dev.zuckschwerdt.org/openobex/wiki/ObexFtp;
     description = "A library and tool to access files on OBEX-based devices (such as Bluetooth phones)";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    license = licenses.lgpl2Plus;
   };
 }
diff --git a/pkgs/tools/bluetooth/openobex/default.nix b/pkgs/tools/bluetooth/openobex/default.nix
index 7baf1ac3ed98..ec5ca0706f49 100644
--- a/pkgs/tools/bluetooth/openobex/default.nix
+++ b/pkgs/tools/bluetooth/openobex/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, bluez, libusb, cmake}:
+{ stdenv, fetchurl, pkgconfig, bluez, libusb, cmake }:
    
 stdenv.mkDerivation rec {
   name = "openobex-1.7.1";
@@ -8,18 +8,20 @@ stdenv.mkDerivation rec {
     sha256 = "0mza0mrdrbcw4yix6qvl31kqy7bdkgxjycr0yx7yl089v5jlc9iv";
   };
 
-  buildInputs = [pkgconfig bluez libusb cmake];
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [ bluez libusb ];
 
-  configureFlags = "--enable-apps";
+  configureFlags = [ "--enable-apps" ];
 
   patchPhase = ''
     sed -i "s!/lib/udev!$out/lib/udev!" udev/CMakeLists.txt
     sed -i "/if ( PKGCONFIG_UDEV_FOUND )/,/endif ( PKGCONFIG_UDEV_FOUND )/d" udev/CMakeLists.txt
     '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://dev.zuckschwerdt.org/openobex/;
     description = "An open source implementation of the Object Exchange (OBEX) protocol";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    license = licenses.lgpl2Plus;
   };
 }
diff --git a/pkgs/tools/bootloaders/refind/default.nix b/pkgs/tools/bootloaders/refind/default.nix
index 7a57225ce8e8..110e00976e83 100644
--- a/pkgs/tools/bootloaders/refind/default.nix
+++ b/pkgs/tools/bootloaders/refind/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   srcName = "refind-src-${meta.version}";
 
   src = fetchurl {
-    url = "http://downloads.sourceforge.net/project/refind/${meta.version}/${srcName}.zip";
+    url = "mirror://sourceforge/project/refind/${meta.version}/${srcName}.zip";
     sha256 = "0ai150rzx20sfl92j6y1p6qnyy0wbmazrlp2fg19acs98qyxl8lh";
   };
 
diff --git a/pkgs/tools/compression/bzip2/default.nix b/pkgs/tools/compression/bzip2/default.nix
index 59da8d107916..a165ab2b157b 100644
--- a/pkgs/tools/compression/bzip2/default.nix
+++ b/pkgs/tools/compression/bzip2/default.nix
@@ -74,7 +74,7 @@ in stdenv.mkDerivation {
     mv "$bin/lib" "$static/"
   '';
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace Makefile --replace CC=gcc CC=cc
     substituteInPlace Makefile-libbz2_so --replace CC=gcc CC=cc
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/tools/compression/dtrx/default.nix b/pkgs/tools/compression/dtrx/default.nix
index 343709dd9571..d412a4e433ef 100644
--- a/pkgs/tools/compression/dtrx/default.nix
+++ b/pkgs/tools/compression/dtrx/default.nix
@@ -1,6 +1,6 @@
 {stdenv, fetchurl, pythonPackages}:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "dtrx-${version}";
   version = "7.1";
 
diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix
index e095b2d4e073..0d5ad10efcf9 100644
--- a/pkgs/tools/compression/zstd/default.nix
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -3,10 +3,10 @@
 
 stdenv.mkDerivation rec {
   name = "zstd-${version}";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
-    sha256 = "18jwhvzj3kv8lpr6fgild7a574lsak93fc1z8nvhcdbc1b1n2dsj";
+    sha256 = "18mfrq5fqd7gkkqrgc32rlb98vw45rq1vsbrg44bprg3mv6ca3ls";
     rev = "v${version}";
     repo = "zstd";
     owner = "Cyan4973";
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 536cc26779b9..3435a8c14329 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -2,14 +2,14 @@
 , asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt
 }:
 
-let version = "4.4"; in
+let version = "4.4.1"; in
 
 stdenv.mkDerivation rec {
   name = "btrfs-progs-${version}";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "0jssv1ys4nw2jf7mkp58c19yspaa8ybf48fxsrhhp0683mzpr73p";
+    sha256 = "1z5882zx9jx02vyg067siws0irsl8pg37myx17hr4imn9ypf6r4r";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/filesystems/ceph/generic.nix b/pkgs/tools/filesystems/ceph/generic.nix
index 1673e69679b4..19457e136556 100644
--- a/pkgs/tools/filesystems/ceph/generic.nix
+++ b/pkgs/tools/filesystems/ceph/generic.nix
@@ -1,4 +1,5 @@
-{ stdenv, autoconf, automake, makeWrapper, pkgconfig, libtool, which, git
+{ stdenv, ensureNewerSourcesHook, autoconf, automake, makeWrapper, pkgconfig
+, libtool, which, git
 , boost, python, pythonPackages, libxml2, zlib
 
 # Optional Dependencies
@@ -111,7 +112,10 @@ stdenv.mkDerivation {
     ./0001-Makefile-env-Don-t-force-sbin.patch
   ];
 
-  nativeBuildInputs = [ autoconf automake makeWrapper pkgconfig libtool which git ]
+  nativeBuildInputs = [
+    autoconf automake makeWrapper pkgconfig libtool which git
+    (ensureNewerSourcesHook { year = "1980"; })
+  ]
     ++ optionals (versionAtLeast version "9.0.2") [
       pythonPackages.setuptools pythonPackages.argparse
     ];
diff --git a/pkgs/tools/filesystems/gitfs/default.nix b/pkgs/tools/filesystems/gitfs/default.nix
index cd79f5db85b3..9c44394697f7 100644
--- a/pkgs/tools/filesystems/gitfs/default.nix
+++ b/pkgs/tools/filesystems/gitfs/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, python, buildPythonPackage, pythonPackages }:
+{ stdenv, fetchFromGitHub, python, buildPythonApplication, pythonPackages }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "gitfs-0.2.5";
 
   src = fetchFromGitHub {
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index 2563c4428a4c..7fd56e7dd7f8 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -6,11 +6,11 @@ let
   s = # Generated upstream information 
   rec {
     baseName="glusterfs";
-    version="3.7.6";
+    version="3.7.8";
     name="${baseName}-${version}";
-    hash="01fg132k4gvvx5p0bi88956yzd77pcnw3iyi88vrsncmpnvg10xv";
-    url="http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.6/glusterfs-3.7.6.tar.gz";
-    sha256="01fg132k4gvvx5p0bi88956yzd77pcnw3iyi88vrsncmpnvg10xv";
+    hash="0r5l8ax1gavhl06k30lg88xs8fj7w6iyd69s5qq5fw1jvavkx709";
+    url="http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.8/glusterfs-3.7.8.tar.gz";
+    sha256="0r5l8ax1gavhl06k30lg88xs8fj7w6iyd69s5qq5fw1jvavkx709";
   };
   buildInputs = [
     fuse bison flex_2_5_35 openssl python ncurses readline
diff --git a/pkgs/tools/filesystems/hfsprogs/default.nix b/pkgs/tools/filesystems/hfsprogs/default.nix
new file mode 100644
index 000000000000..25ec31ea698a
--- /dev/null
+++ b/pkgs/tools/filesystems/hfsprogs/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, openssl, libbsd }:
+
+let version = "332.25";
+    package_name = "hfsprogs"; in
+stdenv.mkDerivation rec {
+  name = "${package_name}-${version}";
+  srcs = [
+    (fetchurl {
+      url = "http://ftp.de.debian.org/debian/pool/main/h/hfsprogs/${package_name}_${version}-11.debian.tar.gz";
+      sha256 = "62d9b8599c66ebffbc57ce5d776e20b41341130d9b27341d63bda08460ebde7c";
+    })
+    (fetchurl {
+      url = "https://opensource.apple.com/tarballs/diskdev_cmds/diskdev_cmds-${version}.tar.gz";
+      sha256 = "74c9aeca899ed7f4bf155c65fc45bf0f250c0f6d57360ea953b1d536d9aa45e6";
+    })
+  ];
+
+  sourceRoot = "diskdev_cmds-" + version;
+  patches = [ "../debian/patches/*.patch" ];
+
+  buildInputs = [ openssl libbsd ];
+  makefile = "Makefile.lnx";
+
+  # Inspired by PKGBUILD of https://www.archlinux.org/packages/community/x86_64/hfsprogs/
+  installPhase = ''
+    # Create required package directories
+    install -m 755 -d "$out/bin"
+    install -m 755 -d "$out/share/${package_name}"
+    install -m 755 -d "$out/share/man/man8/"
+    # Copy executables
+    install -m 755 "newfs_hfs.tproj/newfs_hfs" "$out/bin/mkfs.hfsplus"
+    install -m 755 "fsck_hfs.tproj/fsck_hfs" "$out/bin/fsck.hfsplus"
+    # Copy shared data
+    install -m 644 "newfs_hfs.tproj/hfsbootdata.img" "$out/share/${package_name}/hfsbootdata"
+    # Copy man pages
+    install -m 644 "newfs_hfs.tproj/newfs_hfs.8" "$out/share/man/man8/mkfs.hfsplus.8"
+    install -m 644 "fsck_hfs.tproj/fsck_hfs.8" "$out/share/man/man8/fsck.hfsplus.8"
+  '';
+
+  meta = {
+    description = "HFS/HFS+ user space utils";
+    license = stdenv.lib.licenses.apsl20;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/filesystems/netatalk/default.nix b/pkgs/tools/filesystems/netatalk/default.nix
index d5a0cbbc4190..7e4ea032bb39 100644
--- a/pkgs/tools/filesystems/netatalk/default.nix
+++ b/pkgs/tools/filesystems/netatalk/default.nix
@@ -1,24 +1,28 @@
-{ fetchurl, stdenv, pkgconfig, db, libgcrypt, avahi, libiconv, pam, openssl }:
+{ fetchurl, stdenv, pkgconfig, db, libgcrypt, avahi, libiconv, pam, openssl, acl }:
 
-stdenv.mkDerivation rec {
-  name = "netatalk-3.1.0";
+stdenv.mkDerivation rec{
+  name = "netatalk-3.1.7";
 
   src = fetchurl {
     url = "mirror://sourceforge/netatalk/netatalk/${name}.tar.bz2";
-    sha256 = "1d8dc8ysslkis4yl1xab1w9p0pz7a1kg0i6fds4wxsp4fhb6wqhq";
+    sha256 = "0wf09fyqzza024qr1s26z5x7rsvh9zb4pv598gw7gm77wjcr6174";
   };
 
-  buildInputs = [ pkgconfig db libgcrypt avahi pam openssl libiconv ];
+  buildInputs = [ pkgconfig db libgcrypt avahi libiconv pam openssl acl ];
+
+  patches = ./omitLocalstatedirCreation.patch;
 
   configureFlags = [
     "--with-bdb=${db}"
     "--with-openssl=${openssl}"
+    "--with-lockfile=/run/lock/netatalk"
+    "--localstatedir=/var/lib"
   ];
 
   enableParallelBuild = true;
 
   meta = {
-    description = "Apple File Protocl Server";
+    description = "Apple Filing Protocol Server";
     homepage = http://netatalk.sourceforge.net/;
     license = stdenv.lib.licenses.gpl3;
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/tools/filesystems/netatalk/omitLocalstatedirCreation.patch b/pkgs/tools/filesystems/netatalk/omitLocalstatedirCreation.patch
new file mode 100644
index 000000000000..d1a9dcb0b3bf
--- /dev/null
+++ b/pkgs/tools/filesystems/netatalk/omitLocalstatedirCreation.patch
@@ -0,0 +1,35 @@
+diff -ur netatalk-3.1.7-old/config/Makefile.in netatalk-3.1.7-new/config/Makefile.in 
+--- netatalk-3.1.7-old/config/Makefile.in	2014-08-29 03:33:35.000000000 -0700
++++ netatalk-3.1.7-new/config/Makefile.in	2015-08-13 20:52:35.000000000 -0700
+@@ -699,7 +699,7 @@
+ 
+ info-am:
+ 
+-install-data-am: install-data-local install-dbusserviceDATA
++install-data-am: install-dbusserviceDATA
+ 
+ install-dvi: install-dvi-recursive
+ 
+@@ -754,7 +754,7 @@
+ 	cscopelist cscopelist-recursive ctags ctags-recursive \
+ 	distclean distclean-generic distclean-libtool distclean-tags \
+ 	distdir dvi dvi-am html html-am info info-am install \
+-	install-am install-data install-data-am install-data-local \
++	install-am install-data install-data-am \
+ 	install-dbusserviceDATA install-dvi install-dvi-am \
+ 	install-exec install-exec-am install-html install-html-am \
+ 	install-info install-info-am install-man install-pdf \
+@@ -782,12 +782,6 @@
+ # install configuration files
+ #
+ 
+-install-data-local: install-config-files
+-	mkdir -pm 0755 $(DESTDIR)$(localstatedir)/netatalk/
+-	mkdir -pm 0755 $(DESTDIR)$(localstatedir)/netatalk/CNID/
+-	$(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(localstatedir)/netatalk/
+-	$(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(localstatedir)/netatalk/CNID/
+-
+ uninstall-local:
+ 	@for f in $(CONFFILES) $(GENFILES); do \
+ 		echo rm -f $(DESTDIR)$(pkgconfdir)/$$f; \
+
diff --git a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
index 1776c30ecae0..7a8501b7a891 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, buildPythonPackage, pykickstart, pyparted, pyblock
+{ stdenv, fetchurl, buildPythonApplication, pykickstart, pyparted, pyblock
 , libselinux, cryptsetup, multipath_tools, lsof, utillinux
 , useNixUdev ? true, libudev ? null
 }:
 
 assert useNixUdev -> libudev != null;
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "blivet-${version}";
   version = "0.17-1";
 
diff --git a/pkgs/tools/filesystems/nixpart/0.4/default.nix b/pkgs/tools/filesystems/nixpart/0.4/default.nix
index cbedf6a70a5d..bdf0a5c4323d 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/default.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python, buildPythonPackage
+{ stdenv, fetchurl, python, buildPythonApplication
 # Propagated to blivet
 , useNixUdev ? true
 # No longer needed, but kept for backwards-compatibility with older NixOps.
@@ -9,7 +9,7 @@
 
 let
   blivet = import ./blivet.nix {
-    inherit stdenv fetchurl buildPythonPackage;
+    inherit stdenv fetchurl buildPythonApplication;
     inherit pykickstart pyparted pyblock cryptsetup multipath_tools;
     inherit useNixUdev;
     inherit (pkgs) lsof utillinux libudev;
@@ -48,15 +48,15 @@ let
   };
 
   pykickstart = import ./pykickstart.nix {
-    inherit stdenv fetchurl python buildPythonPackage urlgrabber;
+    inherit stdenv fetchurl python buildPythonApplication urlgrabber;
   };
 
   pyparted = import ./pyparted.nix {
-    inherit stdenv fetchurl python buildPythonPackage parted;
+    inherit stdenv fetchurl python buildPythonApplication parted;
     inherit (pkgs) pkgconfig e2fsprogs;
   };
 
-in buildPythonPackage rec {
+in buildPythonApplication rec {
   name = "nixpart-${version}";
   version = "0.4.1";
 
diff --git a/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix b/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix
index 7bc3f54c2363..86479126d393 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/pykickstart.nix
@@ -1,6 +1,6 @@
-{ stdenv, python, buildPythonPackage, fetchurl, urlgrabber }:
+{ stdenv, python, buildPythonApplication, fetchurl, urlgrabber }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "pykickstart-${version}";
   version = "1.99.39";
 
diff --git a/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix b/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix
index 67f318c863e1..721e5185be3f 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/pyparted.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, pkgconfig, python, buildPythonPackage, parted, e2fsprogs }:
+{ stdenv, fetchurl, pkgconfig, python, buildPythonApplication, parted, e2fsprogs }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "pyparted-${version}";
   version = "3.10";
 
diff --git a/pkgs/tools/filesystems/nixpart/default.nix b/pkgs/tools/filesystems/nixpart/default.nix
index 895ae99c3093..ce00367c771c 100644
--- a/pkgs/tools/filesystems/nixpart/default.nix
+++ b/pkgs/tools/filesystems/nixpart/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, buildPythonPackage, blivet }:
+{ stdenv, fetchurl, buildPythonApplication, blivet }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "nixpart-${version}";
   version = "1.0.0";
 
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index a5b01db4cd2a..3a460241daaa 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -1,14 +1,18 @@
-{ stdenv, fetchurl, pkgconfig, glib, fuse }:
+{ stdenv, fetchFromGitHub, pkgconfig, glib, fuse, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  name = "sshfs-fuse-2.5";
+  version = "2.7";
+  name = "sshfs-fuse-${version}";
   
-  src = fetchurl {
-    url = "mirror://sourceforge/fuse/${name}.tar.gz";
-    sha256 = "0gp6qr33l2p0964j0kds0dfmvyyf5lpgsn11daf0n5fhwm9185z9";
+  src = fetchFromGitHub {
+    repo = "sshfs";
+    owner = "libfuse";
+    rev = "sshfs-${version}";
+    sha256 = "17l9b89zy5qzfcknw3krk74rfrqaa8q1r8jwdsahaqajsy09h4x4";
   };
   
-  buildInputs = [ pkgconfig glib fuse ];
+  buildInputs = [ pkgconfig glib fuse autoreconfHook ];
+
   postInstall = ''
     mkdir -p $out/sbin
     ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix
index df3cca854ed0..966b3df8b175 100644
--- a/pkgs/tools/filesystems/yandex-disk/default.nix
+++ b/pkgs/tools/filesystems/yandex-disk/default.nix
@@ -6,18 +6,18 @@ let
   p = if stdenv.is64bit then {
       arch = "x86_64";
       gcclib = "${stdenv.cc.cc}/lib64";
-      sha256 = "1dr976z0zgg5jk477hrnfmpcx4llh5xi1493k0pkp28m6ypbxy2q";
+      sha256 = "0k05ybvnv0zx4vfx55jyhia38qqysaj68mapq0gwgf74k3a943g2";
     }
     else {
       arch = "i386";
       gcclib = "${stdenv.cc.cc}/lib";
-      sha256 = "01v0caf194y6yb0zc0d3ywx3y0rwb7sxkav4ickd4l968jpi8p91";
+      sha256 = "09z9idmp7idcq0alwkla9kal9h82dx11jqh678lc4rviqggxzxhp";
     };
 in 
 stdenv.mkDerivation rec {
 
   name = "yandex-disk-${version}";
-  version = "0.1.5.940";
+  version = "0.1.5.948";
 
   src = fetchurl {
     url = "http://repo.yandex.ru/yandex-disk/rpm/stable/${p.arch}/${name}-1.fedora.${p.arch}.rpm";
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index c28349a31ccf..db7fad78a49c 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -10,11 +10,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="asymptote";
-    version="2.35";
+    version="2.36";
     name="${baseName}-${version}";
-    hash="11f28vxw0ybhvl7vxmqcdwvw7y6gz55ykw9ybgzb2px6lsvgag7z";
-    url="mirror://sourceforge/asymptote/2.35/asymptote-2.35.src.tgz";
-    sha256="11f28vxw0ybhvl7vxmqcdwvw7y6gz55ykw9ybgzb2px6lsvgag7z";
+    hash="0l0pznrn4k3v07cmn5rx8nq088zjs9bv2mkcks65z5lqlk5pccnd";
+    url="mirror://sourceforge/project/asymptote/2.36/asymptote-2.36.src.tgz";
+    sha256="0l0pznrn4k3v07cmn5rx8nq088zjs9bv2mkcks65z5lqlk5pccnd";
   };
   buildInputs = [
    freeglut ghostscriptX imagemagick fftw 
diff --git a/pkgs/tools/graphics/dpic/default.nix b/pkgs/tools/graphics/dpic/default.nix
new file mode 100644
index 000000000000..ea73a0e95b9d
--- /dev/null
+++ b/pkgs/tools/graphics/dpic/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "dpic-${version}";
+  version = "2016.01.12";
+
+  src = fetchurl {
+    url = "https://ece.uwaterloo.ca/~aplevich/dpic/${name}.tar.gz";
+    sha256 = "0iwwf8shgm8n4drz8mndvk7jga93yy8plnyby3lgk8376g5ps6cz";
+  };
+
+  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
+
+  makeFlags = "CC=${stdenv.cc.outPath}/bin/cc";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -fv dpic $out/bin
+  '';
+
+  meta = {
+    homepage = "https://ece.uwaterloo.ca/~aplevich/dpic/";
+    description = "An implementation of the pic little language for creating drawings";
+    license = stdenv.lib.licenses.bsd2;
+    maintainers = [ stdenv.lib.maintainers.aespinosa ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
+
diff --git a/pkgs/tools/graphics/imgur-screenshot/default.nix b/pkgs/tools/graphics/imgur-screenshot/default.nix
index d1badc735095..777139d47fee 100644
--- a/pkgs/tools/graphics/imgur-screenshot/default.nix
+++ b/pkgs/tools/graphics/imgur-screenshot/default.nix
@@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "A tool for easy screencapping and uploading to imgur.";
+    description = "A tool for easy screencapping and uploading to imgur";
     homepage = "https://https://github.com/jomo/imgur-screenshot/";
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/pkgs/tools/graphics/scrot/default.nix b/pkgs/tools/graphics/scrot/default.nix
index aa8958bb63df..5e4fd3ff0624 100644
--- a/pkgs/tools/graphics/scrot/default.nix
+++ b/pkgs/tools/graphics/scrot/default.nix
@@ -1,18 +1,33 @@
-{ stdenv, fetchurl, giblib, xlibsWrapper }:
+{ stdenv, fetchurl, fetchzip, giblib, xlibsWrapper }:
 
+let
+  debPatch = fetchzip {
+    url = mirror://debian/pool/main/s/scrot/scrot_0.8-17.debian.tar.xz;
+    sha256 = "0ydsr3vah5wkcbnp91knkdbil4hx0cn0iy57frl03azqzc29bkw5";
+  };
+in
 stdenv.mkDerivation rec {
-  name = "scrot-0.8";
+  name = "scrot-0.8-17";
 
   src = fetchurl {
     url = "http://linuxbrit.co.uk/downloads/${name}.tar.gz";
     sha256 = "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1";
   };
 
+  inherit debPatch;
+
+  postPatch = ''
+    for patch in $(cat $debPatch/patches/series); do
+      patch -p1 < "$debPatch/patches/$patch"
+    done
+  '';
+
   buildInputs = [ giblib xlibsWrapper ];
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://linuxbrit.co.uk/scrot/;
     description = "A command-line screen capture utility";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ garbas ];
   };
 }
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-anthy/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-anthy/default.nix
new file mode 100644
index 000000000000..88ba436207c3
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-anthy/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, cmake, fcitx, anthy, gettext, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "fcitx-anthy-${version}";
+  version = "0.2.2";
+
+  src = fetchurl {
+    url = "http://download.fcitx-im.org/fcitx-anthy/${name}.tar.xz";
+    sha256 = "0ayrzfx95670k86y19bzl6i6w98haaln3x8dxpb39a5dwgz59pf8";
+  };
+
+  buildInputs = [ cmake fcitx anthy gettext pkgconfig ];
+
+  preInstall = ''
+    substituteInPlace src/cmake_install.cmake \
+      --replace ${fcitx} $out
+  '';
+
+  meta = with stdenv.lib; {
+    isFcitxEngine = true;
+    description   = "Fcitx Wrapper for anthy";
+    license       = licenses.gpl2Plus;
+    platforms     = platforms.linux;
+    maintainers   = with maintainers; [ iyzsong ericsagnes ];
+  };
+
+}
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-chewing/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-chewing/default.nix
new file mode 100644
index 000000000000..58695434cb6c
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-chewing/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, cmake, fcitx, gettext, libchewing, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "fcitx-chewing-${version}";
+  version = "0.2.2";
+
+  src = fetchurl {
+    url = "http://download.fcitx-im.org/fcitx-chewing/${name}.tar.xz";
+    sha256 = "0l548xdx2fvjya1ixp37pn382yak0m4kwfh9lgh7l3y2sblqw9zs";
+  };
+
+  buildInputs = [ cmake fcitx gettext libchewing pkgconfig ];
+
+  preInstall = ''
+   substituteInPlace src/cmake_install.cmake \
+      --replace ${fcitx} $out
+   substituteInPlace data/cmake_install.cmake \
+      --replace ${fcitx} $out
+  '';
+
+  meta = with stdenv.lib; {
+    isFcitxEngine = true;
+    homepage      = "https://github.com/fcitx/fcitx-chewing";
+    downloadPage  = "http://download.fcitx-im.org/fcitx-chewing/";
+    description   = "Fcitx engine for chewing";
+    license       = licenses.gpl2;
+    platforms     = platforms.linux;
+    maintainers   = with maintainers; [ ericsagnes ];
+  };
+
+}
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-hangul/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-hangul/default.nix
new file mode 100644
index 000000000000..54b5335d9bb2
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-hangul/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, cmake, fcitx, libhangul, gettext, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "fcitx-hangul-${version}";
+  version = "0.3.0";
+
+  src = fetchurl {
+    url = "http://download.fcitx-im.org/fcitx-hangul/${name}.tar.xz";
+    sha256 = "1jq78nczliw6pnhfac8hspffybrry6syk17y0wwcq05j3r3nd2lp";
+  };
+
+  buildInputs = [ cmake fcitx libhangul gettext pkgconfig ];
+
+  preInstall = ''
+    substituteInPlace src/cmake_install.cmake \
+      --replace ${fcitx} $out
+    substituteInPlace data/cmake_install.cmake \
+      --replace ${fcitx} $out
+  '';
+
+  meta = with stdenv.lib; {
+    isFcitxEngine = true;
+    homepage      = "https://github.com/fcitx/fcitx-hangul";
+    downloadPage  = "http://download.fcitx-im.org/fcitx-hangul/";
+    description   = "Fcitx Wrapper for hangul";
+    license       = licenses.gpl2;
+    platforms     = platforms.linux;
+    maintainers   = with maintainers; [ ericsagnes ];
+  };
+}
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-m17n/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-m17n/default.nix
new file mode 100644
index 000000000000..ff42bbbbcc8e
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-m17n/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, cmake, fcitx, gettext, m17n_lib, m17n_db, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "fcitx-m17n-${version}";
+  version = "0.2.3";
+
+  src = fetchurl {
+    url = "http://download.fcitx-im.org/fcitx-m17n/${name}.tar.xz";
+    sha256 = "0ffyhsg7bc6525k94kfhnja1h6ajlfprq72d286dp54cksnakyc4";
+  };
+
+  buildInputs = [ cmake fcitx gettext m17n_lib m17n_db pkgconfig ];
+
+  preInstall = ''
+    substituteInPlace im/cmake_install.cmake \
+    --replace ${fcitx} $out
+    '';
+
+  meta = with stdenv.lib; {
+    isFcitxEngine = true;
+    homepage      = "https://github.com/fcitx/fcitx-m17n";
+    downloadPage  = "http://download.fcitx-im.org/fcitx-table-other/";
+    description   = "Fcitx wrapper for m17n";
+    license       = licenses.gpl3Plus;
+    platforms     = platforms.linux;
+    maintainers   = with maintainers; [ ericsagnes ];
+  };
+
+}
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
new file mode 100644
index 000000000000..5366fe558770
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
@@ -0,0 +1,117 @@
+{ clangStdenv, fetchFromGitHub, fetchurl, fetchpatch, fetchsvn, gyp, which, ninja, 
+  python, pkgconfig, protobuf, gtk, zinnia, qt4, libxcb, tegaki-zinnia-japanese,
+  fcitx, gettext }:
+let
+  japanese_usage_dictionary = fetchsvn {
+    url    = "http://japanese-usage-dictionary.googlecode.com/svn/trunk";
+    rev    = "10";
+    sha256 = "0pyrpz9c8nxccwpgyr36w314mi8h132cis8ijvlqmmhqxwsi30hm";
+  };
+  icons = fetchurl {
+    url    = "http://download.fcitx-im.org/fcitx-mozc/fcitx-mozc-icon.tar.gz";
+    sha256 = "10bdjn481jsh32vll7r756l392anz44h6207vjqwby3rplk31np1";
+  };
+in clangStdenv.mkDerivation rec {
+  name    = "fcitx-mozc-${version}";
+  version = "2.17.2313.102";
+
+  src = fetchFromGitHub {
+    owner  = "google";
+    repo   = "mozc";
+    rev    = "3306d3314499a54a4064b8b80bbc1bce3f6cfac4";
+    sha256 = "0l7mjlnbm6i1ipni8pg9ym5bjg3rzkaxi9xwmsz2lddv348sqii2";
+  };
+
+  nativeBuildInputs = [ gyp which ninja python pkgconfig ];
+  buildInputs = [ protobuf gtk zinnia qt4 libxcb fcitx gettext ];
+
+  postUnpack = ''
+    rmdir $sourceRoot/src/third_party/japanese_usage_dictionary/
+    ln -s ${japanese_usage_dictionary} $sourceRoot/src/third_party/japanese_usage_dictionary
+    tar -xzf ${icons} -C $sourceRoot
+  '';
+
+  patch_version = "2.17.2313.102.1";
+  patches = [ 
+    (fetchpatch rec {
+      name   = "fcitx-mozc-${patch_version}.patch";
+      url    = "https://download.fcitx-im.org/fcitx-mozc/${name}";
+      sha256 = "172c34jkppibvwr9qf9xwgh2hdrmmhyx7nsdj49krxbfdlsy3yy0";
+     })
+  ];
+
+  postPatch = ''
+    substituteInPlace src/unix/fcitx/mozc.conf \
+      --replace "/usr/share/fcitx/mozc/icon/mozc.png" "mozc" 
+  '';
+
+  configurePhase = ''
+    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1"
+    python src/build_mozc.py gyp --gypdir=${gyp}/bin --server_dir=$out/lib/mozc \
+    python src/unix/fcitx/fcitx.gyp gyp --gypdir=${gyp}/bin
+  '';
+
+  preBuildPhase = ''
+    head -n 29 src/server/mozc_server.cc > LICENSE
+  '';
+
+  buildPhase = ''
+    python src/build_mozc.py build -c Release \
+      unix/fcitx/fcitx.gyp:fcitx-mozc \
+      server/server.gyp:mozc_server \
+      gui/gui.gyp:mozc_tool
+  '';
+
+  checkPhase = ''
+    python src/build_mozc.py runtests -c Release
+  '';
+
+  installPhase = ''
+    install -d        $out/share/licenses/fcitx-mozc/
+    install -m 644    LICENSE src/data/installer/*.html     $out/share/licenses/fcitx-mozc/
+
+    install -d        $out/share/doc/mozc
+    install -m    644 src/data/installer/*.html             $out/share/doc/mozc/
+
+    install -D -m 755 src/out_linux/Release/mozc_server     $out/lib/mozc/mozc_server
+    install    -m 755 src/out_linux/Release/mozc_tool       $out/lib/mozc/mozc_tool
+
+    install -D -m 755 src/out_linux/Release/fcitx-mozc.so   $out/lib/fcitx/fcitx-mozc.so
+    install -D -m 644 src/unix/fcitx/fcitx-mozc.conf        $out/share/fcitx/addon/fcitx-mozc.conf
+    install -D -m 644 src/unix/fcitx/mozc.conf              $out/share/fcitx/inputmethod/mozc.conf
+
+    install -d        $out/share/doc/mozc
+
+    for mofile in src/out_linux/Release/gen/unix/fcitx/po/*.mo
+    do
+      filename=`basename $mofile`
+      lang=$filename.mo
+      install -D -m 644 "$mofile" "$out/share/locale/$lang/LC_MESSAGES/fcitx-mozc.mo"
+    done
+
+    install -d        $out/share/fcitx/imicon
+    install    -m 644 fcitx-mozc-icons/mozc.png                 $out/share/fcitx/imicon/mozc.png
+    install -d        $out/share/fcitx/mozc/icon
+    install    -m 644 fcitx-mozc-icons/mozc.png                 $out/share/fcitx/mozc/icon/mozc.png
+    install    -m 644 fcitx-mozc-icons/mozc-alpha_full.png      $out/share/fcitx/mozc/icon/mozc-alpha_full.png
+    install    -m 644 fcitx-mozc-icons/mozc-alpha_half.png      $out/share/fcitx/mozc/icon/mozc-alpha_half.png
+    install    -m 644 fcitx-mozc-icons/mozc-direct.png          $out/share/fcitx/mozc/icon/mozc-direct.png
+    install    -m 644 fcitx-mozc-icons/mozc-hiragana.png        $out/share/fcitx/mozc/icon/mozc-hiragana.png
+    install    -m 644 fcitx-mozc-icons/mozc-katakana_full.png   $out/share/fcitx/mozc/icon/mozc-katakana_full.png
+    install    -m 644 fcitx-mozc-icons/mozc-katakana_half.png   $out/share/fcitx/mozc/icon/mozc-katakana_half.png
+    install    -m 644 fcitx-mozc-icons/mozc-dictionary.png      $out/share/fcitx/mozc/icon/mozc-dictionary.png
+    install    -m 644 fcitx-mozc-icons/mozc-properties.png      $out/share/fcitx/mozc/icon/mozc-properties.png
+    install    -m 644 fcitx-mozc-icons/mozc-tool.png            $out/share/fcitx/mozc/icon/mozc-tool.png
+  '';
+
+  meta = with clangStdenv.lib; {
+    isFcitxEngine = true;
+    description   = "Fcitx engine for Google japanese input method";
+    homepage      = http://code.google.com/p/mozc/;
+    downloadPage  = "http://download.fcitx-im.org/fcitx-mozc/";
+    license       = licenses.free;
+    platforms     = platforms.linux;
+    maintainers   = [ maintainers.ericsagnes ];
+  };
+
+}
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-table-other/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-table-other/default.nix
new file mode 100644
index 000000000000..40ef0b33aea4
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-table-other/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, cmake, fcitx, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "fcitx-table-other-${version}";
+  version = "0.2.3";
+
+  src = fetchurl {
+    url = "http://download.fcitx-im.org/fcitx-table-other/${name}.tar.xz";
+    sha256 = "12fqbsjrpx5pndx2jf7fksrlp01a4yxz62h2vpxrbkpk73ljly4v";
+  };
+
+  buildInputs = [ cmake fcitx gettext ];
+
+  preInstall = ''
+   substituteInPlace tables/cmake_install.cmake \
+      --replace ${fcitx} $out
+  '';
+
+  meta = with stdenv.lib; {
+    isFcitxEngine = true;
+    homepage      = "https://github.com/fcitx/fcitx-table-other";
+    downloadPage  = "http://download.fcitx-im.org/fcitx-table-other/";
+    description   = "Provides some other tables for Fcitx";
+    license       = licenses.gpl3Plus;
+    platforms     = platforms.linux;
+    maintainers   = with maintainers; [ ericsagnes ];
+  };
+
+}
diff --git a/pkgs/tools/inputmethods/fcitx/fcitx-anthy.nix b/pkgs/tools/inputmethods/fcitx/fcitx-anthy.nix
deleted file mode 100644
index 2099220f2a1f..000000000000
--- a/pkgs/tools/inputmethods/fcitx/fcitx-anthy.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, cmake, fcitx, anthy }:
-
-stdenv.mkDerivation rec {
-  name = "fcitx-anthy-0.2.1";
-
-  meta = with stdenv.lib; {
-    description = "Fcitx Wrapper for anthy";
-    license     = licenses.gpl2Plus;
-    platforms   = platforms.linux;
-    maintainers = with maintainers; [ iyzsong ];
-  };
-
-  src = fetchurl {
-    url = "http://download.fcitx-im.org/fcitx-anthy/${name}.tar.xz";
-    sha256 = "13fpfhhxkzbq53h10i3hifa37nngm47jq361i70z22bgcrs8887x";
-  };
-
-  buildInputs = [ cmake fcitx anthy ];
-
-  preInstall = ''
-    substituteInPlace src/cmake_install.cmake \
-      --replace ${fcitx} $out
-  '';
-}
diff --git a/pkgs/tools/inputmethods/fcitx/fcitx-qt5.nix b/pkgs/tools/inputmethods/fcitx/fcitx-qt5.nix
index fad7862cf3b9..428e96e8674d 100644
--- a/pkgs/tools/inputmethods/fcitx/fcitx-qt5.nix
+++ b/pkgs/tools/inputmethods/fcitx/fcitx-qt5.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "fcitx-qt5-${version}";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchurl {
     url = "http://download.fcitx-im.org/fcitx-qt5/${name}.tar.xz";
-    sha256 = "070dlmwkim7sg0xwxfcbb46li1jk8yd3rmj0j5fkmgyr12044aml";
+    sha256 = "1pj1b04n8r4kl7jh1qdv0xshgzb3zrmizfa3g5h3yk589h191vwc";
   };
 
   buildInputs = [ cmake fcitx extra-cmake-modules qtbase ];
diff --git a/pkgs/tools/inputmethods/fcitx/wrapper.nix b/pkgs/tools/inputmethods/fcitx/wrapper.nix
index d4efb3326969..a0ae26189541 100644
--- a/pkgs/tools/inputmethods/fcitx/wrapper.nix
+++ b/pkgs/tools/inputmethods/fcitx/wrapper.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildEnv, fcitx, makeWrapper, plugins }:
+{ stdenv, buildEnv, fcitx, fcitx-configtool, makeWrapper, plugins, kde5 }:
 
 # This is based on the pidgin-with-plugins package.
 # Users should be able to configure what plugins are used
@@ -16,7 +16,7 @@ let
 drv = buildEnv {
   name = "fcitx-with-plugins-" + (builtins.parseDrvName fcitx.name).version;
 
-  paths = [ fcitx ] ++ plugins;
+  paths = [ fcitx fcitx-configtool kde5.fcitx-qt5 ] ++ plugins;
 
   postBuild = ''
     # TODO: This could be avoided if buildEnv could be forced to create all directories
diff --git a/pkgs/tools/inputmethods/ibus-anthy/default.nix b/pkgs/tools/inputmethods/ibus-anthy/default.nix
deleted file mode 100644
index 0b2382315a5d..000000000000
--- a/pkgs/tools/inputmethods/ibus-anthy/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, fetchurl, makeWrapper, ibus, anthy, intltool, pkgconfig, glib, gobjectIntrospection, python, pythonPackages }:
-
-stdenv.mkDerivation rec {
-  name = "ibus-anthy-${version}";
-  version = "1.5.7";
-
-  meta = with stdenv.lib; {
-    description = "IBus interface to the anthy input method";
-    homepage    = http://wiki.github.com/fujiwarat/ibus-anthy;
-    license     = licenses.gpl2Plus;
-    platforms   = platforms.linux;
-    maintainers = with maintainers; [ gebner ];
-  };
-
-  configureFlags = "--with-anthy-zipcode=${anthy}/share/anthy/zipcode.t";
-
-  buildInputs = [ makeWrapper ibus anthy intltool pkgconfig glib gobjectIntrospection python pythonPackages.pygobject3 ];
-
-  postFixup = ''
-    substituteInPlace $out/share/ibus/component/anthy.xml --replace \$\{exec_prefix\} $out
-    for file in "$out"/libexec/*; do
-      wrapProgram "$file" \
-        --prefix PYTHONPATH : $PYTHONPATH \
-        --prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH:$out/lib/girepository-1.0
-    done
-  '';
-
-  src = fetchurl {
-    url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${name}.tar.gz";
-    sha256 = "00sjrfhghrgkqm72mf39f8sz6wr4fwvvs9mn2alaldhgr5v0c861";
-  };
-}
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
new file mode 100644
index 000000000000..50059e9477a9
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, intltool, pkgconfig
+, anthy, ibus, glib, gobjectIntrospection, gtk3, python3, pygobject3
+}:
+
+stdenv.mkDerivation rec {
+  name = "ibus-anthy-${version}";
+  version = "1.5.8";
+
+  meta = with stdenv.lib; {
+    isIbusEngine = true;
+    description  = "IBus interface to the anthy input method";
+    homepage     = http://wiki.github.com/fujiwarat/ibus-anthy;
+    license      = licenses.gpl2Plus;
+    platforms    = platforms.linux;
+    maintainers  = with maintainers; [ gebner ericsagnes ];
+  };
+
+  configureFlags = "--with-anthy-zipcode=${anthy}/share/anthy/zipcode.t";
+
+  buildInputs = [
+    anthy glib gobjectIntrospection gtk3 ibus python3 pygobject3
+  ];
+
+  nativeBuildInputs = [ intltool pkgconfig ];
+
+  postFixup = ''
+    substituteInPlace $out/share/ibus/component/anthy.xml --replace \$\{exec_prefix\} $out
+  '';
+
+  src = fetchurl {
+    url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${name}.tar.gz";
+    sha256 = "1aj7vnfky7izl23xyjky78z3qas3q72l3kr8dnql2lnivsrb8q1y";
+  };
+}
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
new file mode 100644
index 000000000000..1ada62580dbc
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, intltool, pkgconfig
+, gtk3, ibus, libhangul, librsvg, python3, pygobject3
+}:
+
+stdenv.mkDerivation rec {
+  name = "ibus-hangul-${version}";
+  version = "1.5.0";
+
+  src = fetchurl {
+    url = "https://github.com/choehwanjin/ibus-hangul/releases/download/${version}/${name}.tar.gz";
+    sha256 = "120p9w7za6hi521hz8q235fkl4i3p1qqr8nqm4a3kxr0pcq40bd2";
+  };
+
+  buildInputs = [ gtk3 ibus libhangul python3 pygobject3 ];
+
+  nativeBuildInputs = [ intltool pkgconfig ];
+
+  meta = with stdenv.lib; {
+    isIbusEngine = true;
+    description  = "Ibus Hangul engine";
+    homepage     = https://github.com/choehwanjin/ibus-hangul;
+    license      = licenses.gpl2;
+    platforms    = platforms.linux;
+    maintainers  = with maintainers; [ ericsagnes ];
+  };
+}
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
new file mode 100644
index 000000000000..81bfffb25464
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub
+, automake, autoconf, libtool, pkgconfig
+, ibus, m17n_lib, m17n_db, gettext, python3, pygobject3
+}:
+
+stdenv.mkDerivation rec {
+  name = "ibus-m17n-${version}";
+  version = "1.3.4";
+
+  src = fetchFromGitHub {
+    owner  = "ibus";
+    repo   = "ibus-m17n";
+    rev    = version;
+    sha256 = "1n0bvgc4jyksgvzrw5zs2pxcpxcn3gcc0j2kasbznm34fpv3frsr";
+  };
+
+  buildInputs = [
+    ibus m17n_lib m17n_db gettext
+    python3 pygobject3
+  ];
+
+  nativeBuildInputs = [ automake autoconf libtool pkgconfig ];
+
+  preConfigure = ''
+    autoreconf --verbose --force --install
+  '';
+
+  meta = with stdenv.lib; {
+    isIbusEngine = true;
+    description  = "m17n engine for ibus";
+    homepage     = https://github.com.com/ibus/ibus-m17n;
+    license      = licenses.gpl2;
+    platforms    = platforms.linux;
+    maintainers  = with maintainers; [ ericsagnes ];
+  };
+}
diff --git a/pkgs/tools/inputmethods/mozc/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
index 20789a33a0c0..e06d2b004ee9 100644
--- a/pkgs/tools/inputmethods/mozc/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
@@ -7,33 +7,41 @@ let
     sha256 = "0pyrpz9c8nxccwpgyr36w314mi8h132cis8ijvlqmmhqxwsi30hm";
   };
 in clangStdenv.mkDerivation rec {
-  name = "mozc-${version}";
-  version = "2015-05-02";
+  name = "ibus-mozc-${version}";
+  version = "2.17.2313.102";
 
   meta = with clangStdenv.lib; {
-    description = "Japanese input method from Google";
-    homepage = http://code.google.com/p/mozc/;
-    license = licenses.bsd3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.gebner ];
+    isIbusEngine = true;
+    description  = "Japanese input method from Google";
+    homepage     = http://code.google.com/p/mozc/;
+    license      = licenses.free;
+    platforms    = platforms.linux;
+    maintainers  = with maintainers; [ gebner ericsagnes ];
   };
 
   nativeBuildInputs = [ gyp which ninja python pkgconfig ];
   buildInputs = [ protobuf ibus gtk zinnia qt4 libxcb ];
 
   src = fetchFromGitHub {
-    owner = "google";
-    repo = "mozc";
-    rev = "d9783737ecfcb68c3d98d84e7052d716f4d0e0cb";
-    sha256 = "52a83658e2e4a7b38e31a4085682be24c9c5f4c51a01578598a30b9833827b72";
+    owner  = "google";
+    repo   = "mozc";
+    rev    = "3306d3314499a54a4064b8b80bbc1bce3f6cfac4";
+    sha256 = "0l7mjlnbm6i1ipni8pg9ym5bjg3rzkaxi9xwmsz2lddv348sqii2";
   };
+
   postUnpack = ''
+    rmdir $sourceRoot/src/third_party/japanese_usage_dictionary/
     ln -s ${japanese_usage_dictionary} $sourceRoot/src/third_party/japanese_usage_dictionary
   '';
 
   configurePhase = ''
-    export GYP_DEFINES="ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc ibus_mozc_icon_path=$out/share/ibus-mozc/product_icon.png document_dir=$out/share/doc/mozc zinnia_model_file=${tegaki-zinnia-japanese}/share/tegaki/models/zinnia/handwriting-ja.model use_libprotobuf=1"
-    python src/build_mozc.py gyp --gypdir=${gyp}/bin --server_dir=$out/lib/mozc
+    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc"
+    python src/build_mozc.py gyp --gypdir=${gyp}/bin --server_dir=$out/lib/mozc \
+    python src/unix/fcitx/fcitx.gyp gyp --gypdir=${gyp}/bin
+  '';
+
+  preBuildPhase = ''
+    head -n 29 src/server/mozc_server.cc > LICENSE
   '';
 
   buildPhase = ''
@@ -50,6 +58,9 @@ in clangStdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    install -d        $out/share/licenses/mozc/
+    install -m 644    LICENSE src/data/installer/*.html     $out/share/licenses/mozc/
+
     install -D -m 755 src/out_linux/Release/mozc_server $out/lib/mozc/mozc_server
     install    -m 755 src/out_linux/Release/mozc_tool   $out/lib/mozc/mozc_tool
 
diff --git a/pkgs/tools/inputmethods/ibus-table-others/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix
index f356bcdee85d..f3e3973a2c3f 100644
--- a/pkgs/tools/inputmethods/ibus-table-others/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix
@@ -12,18 +12,19 @@ stdenv.mkDerivation rec {
   buildInputs = [ ibus ibus-table pkgconfig python3 ];
 
   preBuild = ''
-    export HOME=/tmp/ibus-table-others
+    export HOME=$(mktemp -d)/ibus-table-others
   '';
 
   postFixup = ''
-    rm -rf /tmp/ibus-table-others
+    rm -rf $HOME
   '';
 
   meta = with stdenv.lib; {
-    description = "Various table-based input methods for IBus";
-    homepage    = https://github.com/moebiuscurve/ibus-table-others;
-    license     = licenses.gpl3;
-    platforms   = platforms.linux;
-    maintainers = with maintainers; [ mudri ];
+    isIbusEngine = true;
+    description  = "Various table-based input methods for IBus";
+    homepage     = https://github.com/moebiuscurve/ibus-table-others;
+    license      = licenses.gpl3;
+    platforms    = platforms.linux;
+    maintainers  = with maintainers; [ mudri ];
   };
 }
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
new file mode 100644
index 000000000000..b44bea9119a2
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig
+, gtk3, dconf, gobjectIntrospection, ibus, python3, pygobject3 }:
+
+stdenv.mkDerivation rec {
+  name = "ibus-table-${version}";
+  version = "1.9.11";
+
+  src = fetchurl {
+    url = "https://github.com/kaio/ibus-table/releases/download/${version}/${name}.tar.gz";
+    sha256 = "14sb89z1inbbhcrbsm5nww8la04ncy2lk32mxfqpi4ghl22ixxqd";
+  };
+
+  postPatch = ''
+    # Data paths will be set at run-time.
+    sed -e "/export IBUS_TABLE_LIB_LOCATION=/ s/^.*$//" \
+        -e "/export IBUS_TABLE_LOCATION=/ s/^.*$//" \
+        -i "engine/ibus-engine-table.in"
+    sed -e "/export IBUS_TABLE_BIN_PATH=/ s/^.*$//" \
+        -e "/export IBUS_TABLE_DATA_DIR=/ s/^.*$//" \
+        -i "engine/ibus-table-createdb.in"
+    sed -e "/export IBUS_PREFIX=/ s/^.*$//" \
+        -e "/export IBUS_DATAROOTDIR=/ s/^.$//" \
+        -e "/export IBUS_LOCALEDIR=/ s/^.$//" \
+        -i "setup/ibus-setup-table.in"
+  '';
+
+  buildInputs = [
+    dconf gtk3 gobjectIntrospection ibus python3 pygobject3
+  ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = with stdenv.lib; {
+    isIbusEngine = true;
+    description  = "An IBus framework for table-based input methods";
+    homepage     = https://github.com/kaio/ibus-table/wiki;
+    license      = licenses.lgpl21;
+    platforms    = platforms.linux;
+    maintainers  = with maintainers; [ mudri ];
+  };
+}
diff --git a/pkgs/tools/inputmethods/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-table/default.nix
deleted file mode 100644
index 58b890b0c929..000000000000
--- a/pkgs/tools/inputmethods/ibus-table/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, ibus, pkgconfig, python3, pythonPackages }:
-
-stdenv.mkDerivation rec {
-  name = "ibus-table-${version}";
-  version = "1.9.6";
-
-  src = fetchurl {
-    url = "https://github.com/kaio/ibus-table/releases/download/${version}/${name}.tar.gz";
-    sha256 = "0xygfscmsx0x80c4d4v40k9bc7831kgdsc74mc84ljxbjg9p9lcf";
-  };
-
-  buildInputs = [ ibus pkgconfig python3 pythonPackages.pygobject3 ];
-
-  meta = with stdenv.lib; {
-    description = "An IBus framework for table-based input methods";
-    homepage    = https://github.com/kaio/ibus-table/wiki;
-    license     = licenses.lgpl21;
-    platforms   = platforms.linux;
-    maintainers = with maintainers; [ mudri ];
-  };
-}
diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index b62f81ba8fec..8b830c257f07 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -1,42 +1,71 @@
-{ stdenv, fetchurl, makeWrapper, python, intltool, pkgconfig
-, gnome3, atk, pygobject3, dbus, libnotify, isocodes, gobjectIntrospection, wayland }:
+{ stdenv, fetchurl, makeWrapper
+, intltool, isocodes, pkgconfig
+, python3, pygobject3
+, gtk2, gtk3, atk, dconf, glib
+, dbus, libnotify, gobjectIntrospection, wayland
+}:
 
 stdenv.mkDerivation rec {
   name = "ibus-${version}";
-  version = "1.5.11";
+  version = "1.5.13";
 
   src = fetchurl {
     url = "https://github.com/ibus/ibus/releases/download/${version}/${name}.tar.gz";
-    sha256 = "1g26llizd26h9sfz4xdq8krhz19hn08pirvfbkk3g89ri8lmm6a9";
+    sha256 = "1wd5azlsgdih8qw6gi15rv130s6d90846n3r1ccwmp6z882xhwzd";
   };
 
-  configureFlags = "--disable-gconf --enable-dconf --disable-memconf --enable-ui --enable-python-library";
+  postPatch = ''
+    # These paths will be set in the wrapper.
+    sed -e "/export IBUS_DATAROOTDIR/ s/^.*$//" \
+        -e "/export IBUS_LIBEXECDIR/ s/^.*$//" \
+        -e "/export IBUS_LOCALEDIR/ s/^.*$//" \
+        -e "/export IBUS_PREFIX/ s/^.*$//" \
+        -i "setup/ibus-setup.in"
+  '';
+
+  configureFlags = [
+    "--disable-gconf"
+    "--enable-dconf"
+    "--disable-memconf"
+    "--enable-ui"
+    "--enable-python-library"
+  ];
 
   buildInputs = [
-    makeWrapper python gnome3.glib wayland
-    intltool pkgconfig gnome3.gtk2
-    gnome3.gtk3 dbus gnome3.dconf gnome3.gconf
-    libnotify isocodes gobjectIntrospection
+    python3 pygobject3
+    intltool isocodes pkgconfig
+    gtk2 gtk3 dconf glib
+    dbus libnotify gobjectIntrospection wayland
   ];
 
+  nativeBuildInputs = [ makeWrapper ];
+
   preConfigure = ''
+    # Fix hard-coded installation paths, so make does not try to overwrite our
+    # Python installation.
+    sed -e "/py2overridesdir=/ s|=.*$|=$out/lib/${python3.libPrefix}|" \
+        -e "/pyoverridesdir=/ s|=.*$|=$out/lib/${python3.libPrefix}|" \
+        -e "/PYTHON2_LIBDIR/ s|=.*|=$out/lib/${python3.libPrefix}|" \
+        -i configure
+
+    # Don't try to generate a system-wide dconf database; it wouldn't work.
     substituteInPlace data/dconf/Makefile.in --replace "dconf update" "echo"
-    sed -i "s|PYTHON2_LIBDIR=.*|PYTHON2_LIBDIR=$out/lib/${python.libPrefix}|" configure
   '';
 
   preFixup = ''
-    for f in "$out"/bin/*; do
-      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
-                       --prefix PYTHONPATH : "$(toPythonPath ${pygobject3})" \
-                       --prefix LD_LIBRARY_PATH : "${gnome3.gtk3.out}/lib:${atk.out}/lib:$out/lib" \
-                       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0" \
-                       --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules"
+    for f in "$out/bin"/*; do #*/
+      wrapProgram "$f" \
+        --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
+        --prefix PYTHONPATH : "$PYTHONPATH" \
+        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0" \
+        --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
     done
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://github.com/ibus/ibus;
     description = "Intelligent Input Bus for Linux / Unix OS";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.ttuegel ];
   };
 }
diff --git a/pkgs/tools/inputmethods/ibus-qt/default.nix b/pkgs/tools/inputmethods/ibus/ibus-qt.nix
index 95c32532e407..95c32532e407 100644
--- a/pkgs/tools/inputmethods/ibus-qt/default.nix
+++ b/pkgs/tools/inputmethods/ibus/ibus-qt.nix
diff --git a/pkgs/tools/inputmethods/ibus/wrapper.nix b/pkgs/tools/inputmethods/ibus/wrapper.nix
new file mode 100644
index 000000000000..632f46f81e94
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus/wrapper.nix
@@ -0,0 +1,44 @@
+{ stdenv, runCommand, makeWrapper, lndir
+, dconf, hicolor_icon_theme, ibus, librsvg, plugins
+}:
+
+let
+  name = "ibus-with-plugins-" + (builtins.parseDrvName ibus.name).version;
+  env = {
+    buildInputs = [ ibus ] ++ plugins;
+    nativeBuildInputs = [ lndir makeWrapper ];
+    propagatedUserEnvPackages = [ hicolor_icon_theme ];
+    paths = [ ibus ] ++ plugins;
+    inherit (ibus) meta;
+  };
+  command = ''
+    for dir in bin etc lib libexec share; do
+        mkdir -p "$out/$dir"
+        for pkg in $paths; do
+            if [ -d "$pkg/$dir" ]; then
+                lndir -silent "$pkg/$dir" "$out/$dir"
+            fi
+        done
+    done
+
+    for prog in ibus ibus-daemon ibus-setup; do
+        wrapProgram "$out/bin/$prog" \
+          --prefix GDK_PIXBUF_MODULE_FILE : ${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache \
+          --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0" \
+          --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules" \
+          --set IBUS_COMPONENT_PATH "$out/share/ibus/component/" \
+          --set IBUS_DATAROOTDIR "$out/share" \
+          --set IBUS_LIBEXECDIR "$out/libexec" \
+          --set IBUS_LOCALEDIR "$out/share/locale" \
+          --set IBUS_PREFIX "$out" \
+          --set IBUS_TABLE_BIN_PATH "$out/bin" \
+          --set IBUS_TABLE_DATA_DIR "$out/share" \
+          --set IBUS_TABLE_LIB_LOCATION "$out/libexec" \
+          --set IBUS_TABLE_LOCATION "$out/share/ibus-table" \
+          --prefix PYTHONPATH : "$PYTHONPATH" \
+          --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
+          --suffix XDG_DATA_DIRS : "${hicolor_icon_theme}/share"
+    done
+  '';
+in
+  runCommand name env command
diff --git a/pkgs/tools/inputmethods/keyfuzz/default.nix b/pkgs/tools/inputmethods/keyfuzz/default.nix
new file mode 100644
index 000000000000..f04afd639b7d
--- /dev/null
+++ b/pkgs/tools/inputmethods/keyfuzz/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "keyfuzz-${version}";
+  version = "0.2";
+
+  meta = with stdenv.lib; {
+    description = "Manipulate the scancode/keycode translation tables of keyboard drivers.";
+    homepace    = http://0pointer.de/lennart/projects/keyfuzz/;
+    license     = licenses.gpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ mboes ];
+  };
+
+  src = fetchurl {
+    url = "http://0pointer.de/lennart/projects/keyfuzz/keyfuzz-0.2.tar.gz";
+    sha256 = "0xv9ymivp8fnyc5xcyh1vamxnx90bzw66wlld813fvm6q2gsiknk";
+  };
+
+  configureFlags = "--without-initdir --disable-lynx";
+}
diff --git a/pkgs/tools/inputmethods/uim/data-hook.patch b/pkgs/tools/inputmethods/uim/data-hook.patch
new file mode 100644
index 000000000000..07fdf8733169
--- /dev/null
+++ b/pkgs/tools/inputmethods/uim/data-hook.patch
@@ -0,0 +1,39 @@
+--- a/gtk2/immodule/Makefile.in	2015-11-24 16:21:08.967087208 +0900
++++ b/gtk2/immodule/Makefile.in	2015-11-24 16:22:53.316095150 +0900
+@@ -806,7 +806,6 @@
+ 
+ install-data-am: install-moduleLTLIBRARIES
+ 	@$(NORMAL_INSTALL)
+-	$(MAKE) $(AM_MAKEFLAGS) install-data-hook
+ install-dvi: install-dvi-am
+ 
+ install-dvi-am:
+@@ -861,7 +860,7 @@
+ 	ctags distclean distclean-compile distclean-generic \
+ 	distclean-libtool distclean-tags distdir dvi dvi-am html \
+ 	html-am info info-am install install-am install-data \
+-	install-data-am install-data-hook install-dvi install-dvi-am \
++	install-data-am install-dvi install-dvi-am \
+ 	install-exec install-exec-am install-html install-html-am \
+ 	install-info install-info-am install-man \
+ 	install-moduleLTLIBRARIES install-pdf install-pdf-am \
+
+--- a/gtk3/immodule/Makefile.in	2015-11-24 16:21:08.971087209 +0900
++++ b/gtk3/immodule/Makefile.in	2015-11-24 16:23:28.251097832 +0900
+@@ -824,7 +824,6 @@
+ 
+ install-data-am: install-moduleLTLIBRARIES
+ 	@$(NORMAL_INSTALL)
+-	$(MAKE) $(AM_MAKEFLAGS) install-data-hook
+ install-dvi: install-dvi-am
+ 
+ install-dvi-am:
+@@ -879,7 +878,7 @@
+ 	ctags distclean distclean-compile distclean-generic \
+ 	distclean-libtool distclean-tags distdir dvi dvi-am html \
+ 	html-am info info-am install install-am install-data \
+-	install-data-am install-data-hook install-dvi install-dvi-am \
++	install-data-am install-dvi install-dvi-am \
+ 	install-exec install-exec-am install-html install-html-am \
+ 	install-info install-info-am install-man \
+ 	install-moduleLTLIBRARIES install-pdf install-pdf-am 
diff --git a/pkgs/tools/inputmethods/uim/default.nix b/pkgs/tools/inputmethods/uim/default.nix
index 19de302e7b1f..99a415407c17 100644
--- a/pkgs/tools/inputmethods/uim/default.nix
+++ b/pkgs/tools/inputmethods/uim/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     m17n_db
   ];
 
-  patches = [ ./immodules_cache.patch ];
+  patches = [ ./data-hook.patch ];
 
   configureFlags = [
     "--with-gtk2"
@@ -41,10 +41,11 @@ stdenv.mkDerivation rec {
     sha1 = "43b9dbdead6797880e6cfc9c032ecb2d37d42777";
   };
 
-  meta = {
-    homepage = "http://code.google.com/p/uim/";
+  meta = with stdenv.lib; {
+    homepage    = "http://code.google.com/p/uim/";
     description = "A multilingual input method framework";
-    license = stdenv.lib.licenses.bsd3;
-    platforms = stdenv.lib.platforms.linux;
+    license     = stdenv.lib.licenses.bsd3;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ ericsagnes ];
   };
 }
diff --git a/pkgs/tools/inputmethods/uim/immodules_cache.patch b/pkgs/tools/inputmethods/uim/immodules_cache.patch
deleted file mode 100644
index c2d08b661e38..000000000000
--- a/pkgs/tools/inputmethods/uim/immodules_cache.patch
+++ /dev/null
@@ -1,231 +0,0 @@
-diff -ru -x '*~' uim-1.8.6.orig/gtk2/immodule/Makefile.am uim-1.8.6/gtk2/immodule/Makefile.am
---- uim-1.8.6.orig/gtk2/immodule/Makefile.am	2013-06-30 13:26:09.000000000 +0900
-+++ uim-1.8.6/gtk2/immodule/Makefile.am	2014-07-13 21:51:26.538400004 +0900
-@@ -1,5 +1,5 @@
- uim_gtk_im_module_path = $(libdir)/gtk-2.0
--uim_gtk_im_module_file = $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules
-+uim_gtk_im_module_file = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules.cache
- 
- moduledir = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules
- 
-@@ -38,48 +38,12 @@
- 
- install-data-hook: gtk-rc-get-immodule-file
- 	if test -z $(DESTDIR); then \
--	  if test $(libdir) = $(GTK_LIBDIR); then \
--	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--	      $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
--	      echo "*** \"`$(GTK_RC_GET_IMMODULE_FILE)`\" is updated. ***";  \
--	    else \
--	      echo "********************** Warning ***********************"; \
--	      echo " $(QUERY_COMMAND) not found"; \
--	      echo " Please make sure to update"; \
--	      echo " \"`$(GTK_RC_GET_IMMODULE_FILE)`\""; \
--	      echo " manually."; \
--	      echo "******************************************************"; \
--	    fi \
--	  else \
--	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--	      $(mkinstalldirs) $(sysconfdir)/gtk-2.0; \
--	      GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
--	      echo "******************************************************"; \
--	      echo " You need to set"; \
--	      echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
--	      echo " environment variable to use this module."; \
--	      echo "******************************************************"; \
--	    else \
--	      echo "********************** Warning ***********************"; \
--	      echo " $(QUERY_COMMAND) not found"; \
--	      echo " Please make sure to update"; \
--	      echo " \"$(uim_gtk_im_module_file)\""; \
--	      echo " manually, and set"; \
--	      echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
--	      echo " environment variable to use this module."; \
--	      echo "******************************************************"; \
--	    fi \
--	  fi \
-+	  $(mkinstalldirs) $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@; \
-+	  GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
- 	fi
- uninstall-hook:
- 	if test -z $(DESTDIR); then \
--	  if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--	    if test $(libdir) = $(GTK_LIBDIR); then \
--	      $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
--	    else \
--	      GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
--	    fi \
--	  fi \
-+	  GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
- 	fi
- else
- install-data-hook:
-diff -ru -x '*~' uim-1.8.6.orig/gtk2/immodule/Makefile.in uim-1.8.6/gtk2/immodule/Makefile.in
---- uim-1.8.6.orig/gtk2/immodule/Makefile.in	2013-06-30 13:27:08.000000000 +0900
-+++ uim-1.8.6/gtk2/immodule/Makefile.in	2014-07-13 22:12:27.947595507 +0900
-@@ -434,7 +434,7 @@
- top_srcdir = @top_srcdir@
- uim_pixmapsdir = @uim_pixmapsdir@
- uim_gtk_im_module_path = $(libdir)/gtk-2.0
--uim_gtk_im_module_file = $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules
-+uim_gtk_im_module_file = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules.cache
- moduledir = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules
- @GTK2_TRUE@im_uim_la = im-uim.la
- @GTK2_TRUE@im_uim_la_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)
-@@ -875,48 +875,12 @@
- 
- @GTK2_TRUE@install-data-hook: gtk-rc-get-immodule-file
- @GTK2_TRUE@	if test -z $(DESTDIR); then \
--@GTK2_TRUE@	  if test $(libdir) = $(GTK_LIBDIR); then \
--@GTK2_TRUE@	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--@GTK2_TRUE@	      $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
--@GTK2_TRUE@	      echo "*** \"`$(GTK_RC_GET_IMMODULE_FILE)`\" is updated. ***";  \
--@GTK2_TRUE@	    else \
--@GTK2_TRUE@	      echo "********************** Warning ***********************"; \
--@GTK2_TRUE@	      echo " $(QUERY_COMMAND) not found"; \
--@GTK2_TRUE@	      echo " Please make sure to update"; \
--@GTK2_TRUE@	      echo " \"`$(GTK_RC_GET_IMMODULE_FILE)`\""; \
--@GTK2_TRUE@	      echo " manually."; \
--@GTK2_TRUE@	      echo "******************************************************"; \
--@GTK2_TRUE@	    fi \
--@GTK2_TRUE@	  else \
--@GTK2_TRUE@	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--@GTK2_TRUE@	      $(mkinstalldirs) $(sysconfdir)/gtk-2.0; \
--@GTK2_TRUE@	      GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
--@GTK2_TRUE@	      echo "******************************************************"; \
--@GTK2_TRUE@	      echo " You need to set"; \
--@GTK2_TRUE@	      echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
--@GTK2_TRUE@	      echo " environment variable to use this module."; \
--@GTK2_TRUE@	      echo "******************************************************"; \
--@GTK2_TRUE@	    else \
--@GTK2_TRUE@	      echo "********************** Warning ***********************"; \
--@GTK2_TRUE@	      echo " $(QUERY_COMMAND) not found"; \
--@GTK2_TRUE@	      echo " Please make sure to update"; \
--@GTK2_TRUE@	      echo " \"$(uim_gtk_im_module_file)\""; \
--@GTK2_TRUE@	      echo " manually, and set"; \
--@GTK2_TRUE@	      echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
--@GTK2_TRUE@	      echo " environment variable to use this module."; \
--@GTK2_TRUE@	      echo "******************************************************"; \
--@GTK2_TRUE@	    fi \
--@GTK2_TRUE@	  fi \
-+@GTK2_TRUE@	  $(mkinstalldirs) $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@; \
-+@GTK2_TRUE@	  GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
- @GTK2_TRUE@	fi
- @GTK2_TRUE@uninstall-hook:
- @GTK2_TRUE@	if test -z $(DESTDIR); then \
--@GTK2_TRUE@	  if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--@GTK2_TRUE@	    if test $(libdir) = $(GTK_LIBDIR); then \
--@GTK2_TRUE@	      $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
--@GTK2_TRUE@	    else \
--@GTK2_TRUE@	      GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
--@GTK2_TRUE@	    fi \
--@GTK2_TRUE@	  fi \
-+@GTK2_TRUE@	  GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
- @GTK2_TRUE@	fi
- @GTK2_FALSE@install-data-hook:
- 
-diff -ru -x '*~' uim-1.8.6.orig/gtk3/immodule/Makefile.am uim-1.8.6/gtk3/immodule/Makefile.am
---- uim-1.8.6.orig/gtk3/immodule/Makefile.am	2013-06-30 13:26:20.000000000 +0900
-+++ uim-1.8.6/gtk3/immodule/Makefile.am	2014-07-13 21:55:38.114246503 +0900
-@@ -45,42 +45,11 @@
- 
- install-data-hook: gtk3-rc-get-immodule-file
- 	if test -z $(DESTDIR); then \
--	  if test $(libdir) = $(GTK3_LIBDIR); then \
--	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--	      $(QUERY_COMMAND) --update-cache; \
--	      echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***";  \
--	    else \
--	      echo "********************** Warning ***********************"; \
--	      echo " $(QUERY_COMMAND) not found"; \
--	      echo " Please make sure to update"; \
--	      echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \
--	      echo " manually."; \
--	      echo "******************************************************"; \
--	    fi \
--	  else \
--	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--	      GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
--	    else \
--	      echo "********************** Warning ***********************"; \
--	      echo " $(QUERY_COMMAND) not found"; \
--	      echo " Please make sure to update"; \
--	      echo " immodules.cache"; \
--	      echo " manually, and set"; \
--	      echo " GTK_IM_MODULE_FILE=PATH_TO/immodule.cache"; \
--	      echo " environment variable to use this module."; \
--	      echo "******************************************************"; \
--	    fi \
--	  fi \
-+	  GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
- 	fi
- uninstall-hook:
- 	if test -z $(DESTDIR); then \
--	  if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--	    if test $(libdir) = $(GTK3_LIBDIR); then \
--	      $(QUERY_COMMAND) --update-cache; \
--	    else \
--	      GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
--	    fi \
--	  fi \
-+	  GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
- 	fi
- else
- install-data-hook:
-diff -ru -x '*~' uim-1.8.6.orig/gtk3/immodule/Makefile.in uim-1.8.6/gtk3/immodule/Makefile.in
---- uim-1.8.6.orig/gtk3/immodule/Makefile.in	2013-06-30 13:27:08.000000000 +0900
-+++ uim-1.8.6/gtk3/immodule/Makefile.in	2014-07-13 21:56:11.531225832 +0900
-@@ -893,42 +893,11 @@
- 
- @GTK3_TRUE@install-data-hook: gtk3-rc-get-immodule-file
- @GTK3_TRUE@	if test -z $(DESTDIR); then \
--@GTK3_TRUE@	  if test $(libdir) = $(GTK3_LIBDIR); then \
--@GTK3_TRUE@	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--@GTK3_TRUE@	      $(QUERY_COMMAND) --update-cache; \
--@GTK3_TRUE@	      echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***";  \
--@GTK3_TRUE@	    else \
--@GTK3_TRUE@	      echo "********************** Warning ***********************"; \
--@GTK3_TRUE@	      echo " $(QUERY_COMMAND) not found"; \
--@GTK3_TRUE@	      echo " Please make sure to update"; \
--@GTK3_TRUE@	      echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \
--@GTK3_TRUE@	      echo " manually."; \
--@GTK3_TRUE@	      echo "******************************************************"; \
--@GTK3_TRUE@	    fi \
--@GTK3_TRUE@	  else \
--@GTK3_TRUE@	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--@GTK3_TRUE@	      GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
--@GTK3_TRUE@	    else \
--@GTK3_TRUE@	      echo "********************** Warning ***********************"; \
--@GTK3_TRUE@	      echo " $(QUERY_COMMAND) not found"; \
--@GTK3_TRUE@	      echo " Please make sure to update"; \
--@GTK3_TRUE@	      echo " immodules.cache"; \
--@GTK3_TRUE@	      echo " manually, and set"; \
--@GTK3_TRUE@	      echo " GTK_IM_MODULE_FILE=PATH_TO/immodule.cache"; \
--@GTK3_TRUE@	      echo " environment variable to use this module."; \
--@GTK3_TRUE@	      echo "******************************************************"; \
--@GTK3_TRUE@	    fi \
--@GTK3_TRUE@	  fi \
-+@GTK3_TRUE@	  GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
- @GTK3_TRUE@	fi
- @GTK3_TRUE@uninstall-hook:
- @GTK3_TRUE@	if test -z $(DESTDIR); then \
--@GTK3_TRUE@	  if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
--@GTK3_TRUE@	    if test $(libdir) = $(GTK3_LIBDIR); then \
--@GTK3_TRUE@	      $(QUERY_COMMAND) --update-cache; \
--@GTK3_TRUE@	    else \
--@GTK3_TRUE@	      GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
--@GTK3_TRUE@	    fi \
--@GTK3_TRUE@	  fi \
-+@GTK3_TRUE@	  GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
- @GTK3_TRUE@	fi
- @GTK3_FALSE@install-data-hook:
- 
-diff -ru -x '*~' uim-1.8.6.orig/qt4/immodule/quiminputcontextplugin.pro.in uim-1.8.6/qt4/immodule/quiminputcontextplugin.pro.in
---- uim-1.8.6.orig/qt4/immodule/quiminputcontextplugin.pro.in	2013-06-30 13:26:20.000000000 +0900
-+++ uim-1.8.6/qt4/immodule/quiminputcontextplugin.pro.in	2014-03-09 11:31:19.388085048 +0900
-@@ -35,4 +35,4 @@
- 
- TARGET = uiminputcontextplugin
- 
--target.path += @DESTDIR@$$[QT_INSTALL_PLUGINS]/inputmethods
-+target.path += @DESTDIR@@exec_prefix@/lib/qt4/plugins/inputmethods
diff --git a/pkgs/tools/misc/apt-offline/default.nix b/pkgs/tools/misc/apt-offline/default.nix
index 219cb2139f58..e479167dc159 100644
--- a/pkgs/tools/misc/apt-offline/default.nix
+++ b/pkgs/tools/misc/apt-offline/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, bash, buildPythonPackage }:
+{ stdenv, fetchurl, bash, buildPythonApplication }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   version = "1.3";
   name = "apt-offline-${version}";
 
diff --git a/pkgs/tools/misc/bdf2psf/default.nix b/pkgs/tools/misc/bdf2psf/default.nix
index 192aed7489d3..c6591927657c 100644
--- a/pkgs/tools/misc/bdf2psf/default.nix
+++ b/pkgs/tools/misc/bdf2psf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "bdf2psf-${version}";
-  version = "1.134";
+  version = "1.137";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
-    sha256 = "1am5ka5qrbh60jjihzqac03ii3ydprvqm3w54dc55a0zwl61njsz";
+    sha256 = "08pgpwg0ccf0j4r8dbaadh1yr4h4fnvkfb5ym49kwvm2p2vxdq32";
   };
 
   buildInputs = [ dpkg ];
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index 4d9adc6c6886..377e2d62eef6 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, xz, gmp ? null
+{ lib, stdenv, fetchurl, perl, xz, gmp ? null
 , aclSupport ? false, acl ? null
 , selinuxSupport? false, libselinux ? null, libsepol ? null
 , autoconf, automake114x, texinfo
@@ -8,34 +8,24 @@
 assert aclSupport -> acl != null;
 assert selinuxSupport -> libselinux != null && libsepol != null;
 
-
-with { inherit (stdenv.lib) optional optionals optionalString optionalAttrs; };
+with lib;
 
 let
   self = stdenv.mkDerivation rec {
-    name = "coreutils-8.24";
+    name = "coreutils-8.25";
 
     src = fetchurl {
       url = "mirror://gnu/coreutils/${name}.tar.xz";
-      sha256 = "0w11jw3fb5sslf0f72kxy7llxgk1ia3a6bcw0c9kmvxrlj355mx2";
+      sha256 = "11yfrnb94xzmvi4lhclkcmkqsbhww64wf234ya1aacjvg82prrii";
     };
 
-    patches = if stdenv.isCygwin then ./coreutils-8.23-4.cygwin.patch else
-              (if stdenv.isArm then (fetchurl {
-                  url = "http://git.savannah.gnu.org/cgit/coreutils.git/patch/?id=3ba68f9e64fa2eb8af22d510437a0c6441feb5e0";
-                  sha256 = "1dnlszhc8lihhg801i9sz896mlrgfsjfcz62636prb27k5hmixqz";
-                  name = "coreutils-tail-inotify-race.patch";
-              }) else null);
+    patches = optional stdenv.isCygwin ./coreutils-8.23-4.cygwin.patch;
 
     # The test tends to fail on btrfs and maybe other unusual filesystems.
-    postPatch = stdenv.lib.optionalString (!stdenv.isDarwin) ''
+    postPatch = optionalString (!stdenv.isDarwin) ''
       sed '2i echo Skipping dd sparse test && exit 0' -i ./tests/dd/sparse.sh
       sed '2i echo Skipping cp sparse test && exit 0' -i ./tests/cp/sparse.sh
-    '' +
-       # This is required by coreutils-tail-inotify-race.patch to avoid more deps
-       stdenv.lib.optionalString stdenv.isArm ''
-         touch -r src/stat.c src/tail.c
-       '';
+    '';
 
     outputs = [ "out" "info" ];
 
@@ -85,20 +75,18 @@ let
     enableParallelBuilding = false;
 
     NIX_LDFLAGS = optionalString selinuxSupport "-lsepol";
-    FORCE_UNSAFE_CONFIGURE = stdenv.lib.optionalString (stdenv.system == "armv7l-linux" || stdenv.isSunOS) "1";
+    FORCE_UNSAFE_CONFIGURE = optionalString stdenv.isSunOS "1";
 
     makeFlags = optionalString stdenv.isDarwin "CFLAGS=-D_FORTIFY_SOURCE=0";
 
     # e.g. ls -> gls; grep -> ggrep
-    postFixup = # feel free to simplify on a mass rebuild
-      if withPrefix then
+    postFixup = optionalString withPrefix
       ''
         (
           cd "$out/bin"
           find * -type f -executable -exec mv {} g{} \;
         )
-      ''
-      else null;
+      '';
 
     meta = {
       homepage = http://www.gnu.org/software/coreutils/;
@@ -111,11 +99,11 @@ let
         operating system.
       '';
 
-      license = stdenv.lib.licenses.gpl3Plus;
+      license = licenses.gpl3Plus;
 
-      platforms = stdenv.lib.platforms.all;
+      platforms = platforms.all;
 
-      maintainers = [ stdenv.lib.maintainers.eelco ];
+      maintainers = [ maintainers.eelco ];
     };
   };
 in
diff --git a/pkgs/tools/misc/debian-devscripts/default.nix b/pkgs/tools/misc/debian-devscripts/default.nix
index ffd01dcdc19e..c9340e449afa 100644
--- a/pkgs/tools/misc/debian-devscripts/default.nix
+++ b/pkgs/tools/misc/debian-devscripts/default.nix
@@ -5,12 +5,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.15.10";
+  version = "2.16.1";
   name = "debian-devscripts-${version}";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/devscripts/devscripts_${version}.tar.xz";
-    sha256 = "1yb26xpjxp9q5vsjzc9bv8vydpx2rs1v0i7phxhylfjn0fgpfnc6";
+    sha256 = "096f26b0z6kwv47qy99gak40wcc8mp24n0nvqwgifcicr18qv4rz";
   };
 
   buildInputs = [ perl CryptSSLeay LWP unzip xz dpkg TimeDate DBFile 
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 6715f1ac38fd..e54e83ef4921 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -1,19 +1,19 @@
 { lib, stdenv, fetchgit, fetchpatch, pythonPackages, docutils
-, acl, binutils, bzip2, cbfstool, cdrkit, cpio, diffutils, e2fsprogs, file, fpc, gettext, ghc, gnupg1
-, gzip, jdk, libcaca, mono, pdftk, poppler_utils, rpm, sng, sqlite, squashfsTools, unzip, vim, xz
+, acl, binutils, bzip2, cbfstool, cdrkit, colord, cpio, diffutils, e2fsprogs, file, fpc, gettext, ghc
+, gnupg1, gzip, jdk, libcaca, mono, pdftk, poppler_utils, rpm, sng, sqlite, squashfsTools, unzip, vim, xz
 , enableBloat ? false
 }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "diffoscope-${version}";
-  version = "45";
+  version = "49";
 
   namePrefix = "";
 
   src = fetchgit {
     url = "git://anonscm.debian.org/reproducible/diffoscope.git";
     rev = "refs/tags/${version}";
-    sha256 = "1wdphcmr2n0pyg7zwvczy7ik1bzjlrjb76jwbzk971lwba3ajazk";
+    sha256 = "0kh96h95rp7bk8rgc1z18jwv89dyp1n36bawqyqxhwwklmrgxr66";
   };
 
   patches =
@@ -29,13 +29,13 @@ pythonPackages.buildPythonPackage rec {
     sed -i setup.py -e "/'rpm-python',/d"
   '';
 
-  # Still missing these tools: enjarify otool(maybe OS X only) showttf
+  # Still missing these tools: enjarify, otool & lipo (maybe OS X only), showttf
   # Also these libraries: python3-guestfs
   # FIXME: move xxd into a separate package so we don't have to pull in all of vim.
   propagatedBuildInputs = (with pythonPackages; [ debian libarchive-c python_magic tlsh ]) ++
     [ acl binutils bzip2 cbfstool cdrkit cpio diffutils e2fsprogs file gettext
       gzip libcaca poppler_utils rpm sng sqlite squashfsTools unzip vim xz
-    ] ++ lib.optionals enableBloat [ jdk ghc fpc gnupg1 pdftk mono ];
+    ] ++ lib.optionals enableBloat [ colord fpc ghc gnupg1 jdk mono pdftk ];
 
   doCheck = false; # Calls 'mknod' in squashfs tests, which needs root
 
diff --git a/pkgs/tools/misc/entr/default.nix b/pkgs/tools/misc/entr/default.nix
index ae402e35c2eb..a99e28c6f817 100644
--- a/pkgs/tools/misc/entr/default.nix
+++ b/pkgs/tools/misc/entr/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://entrproject.org/;
-    description = "Run arbitrary commands when files change.";
+    description = "Run arbitrary commands when files change";
 
     license = stdenv.lib.licenses.isc;
 
diff --git a/pkgs/tools/misc/exa/default.nix b/pkgs/tools/misc/exa/default.nix
new file mode 100644
index 000000000000..8518a7331b95
--- /dev/null
+++ b/pkgs/tools/misc/exa/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, rustPlatform, openssl, cmake, zlib }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "exa-${version}";
+  version = "2016-02-15";
+
+  depsSha256 = "1925nhpfph82wn755zf2nmad24f1hzbxq60gpva9sic6rnap4c1x";
+
+  src = fetchFromGitHub {
+    owner = "ogham";
+    repo = "exa";
+    rev = "252eba484476369bb966fb1af7f739732b968fc0";
+    sha256 = "1smyy32z44zgmhyhlbjaxcgfnlbcwz7am9225yppqfdsiqqgdybf";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ openssl zlib ];
+
+  # Some tests fail, but Travis ensures a proper build
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Replacement for 'ls' written in Rust";
+    longDescription = ''
+      exa is a modern replacement for ls. It uses colours for information by
+      default, helping you distinguish between many types of files, such as
+      whether you are the owner, or in the owning group. It also has extra
+      features not present in the original ls, such as viewing the Git status
+      for a directory, or recursing into directories with a tree view. exa is
+      written in Rust, so itā€™s small, fast, and portable.
+    '';
+    homepage = http://bsago.me/exa;
+    license = licenses.mit;
+    maintainer = [ maintainers.ehegnes ];
+  };
+}
diff --git a/pkgs/tools/misc/gti/default.nix b/pkgs/tools/misc/gti/default.nix
new file mode 100644
index 000000000000..39e28073abce
--- /dev/null
+++ b/pkgs/tools/misc/gti/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "gti-${version}";
+  version = "2015-05-21";
+
+  src = fetchFromGitHub {
+    owner = "rwos";
+    repo = "gti";
+    rev = "edaac795b0b0ff01f2347789f96c740c764bf376";
+    sha256 = "1wki7d61kcmv9s3xayky9cz84qa773x3y1z88y768hq8ifwadcbn";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/man/man6
+    cp gti $out/bin
+    cp gti.6 $out/share/man/man6
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://r-wos.org/hacks/gti;
+    license = licenses.mit;
+    description = "Humorous typo-based git runner; drives a car over the terminal";
+    maintainers = with maintainers; [ fadenb ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/homesick/default.nix b/pkgs/tools/misc/homesick/default.nix
index 9ea54f1f0b32..da167026ade5 100644
--- a/pkgs/tools/misc/homesick/default.nix
+++ b/pkgs/tools/misc/homesick/default.nix
@@ -13,7 +13,7 @@ bundlerEnv {
   '';
 
   meta = with lib; {
-    description = "Your home directory is your castle. Don't leave your dotfiles behind.";
+    description = "Your home directory is your castle. Don't leave your dotfiles behind";
     long_description =
       ''
         Homesick is sorta like rip, but for dotfiles. It uses git to clone a repository containing
diff --git a/pkgs/tools/misc/i3minator/default.nix b/pkgs/tools/misc/i3minator/default.nix
index 0c3907b89bfe..45fd27b7f4f9 100644
--- a/pkgs/tools/misc/i3minator/default.nix
+++ b/pkgs/tools/misc/i3minator/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, buildPythonPackage, pythonPackages, python }:
+{ stdenv, fetchurl, buildPythonApplication, pythonPackages, python }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   name = "i3minator-${version}";
   version = "0.0.4";
 
diff --git a/pkgs/tools/misc/logstash/default.nix b/pkgs/tools/misc/logstash/default.nix
index 15bb44a0e479..289d57f88c06 100644
--- a/pkgs/tools/misc/logstash/default.nix
+++ b/pkgs/tools/misc/logstash/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Logstash is a data pipeline that helps you process logs and other event data from a variety of systems.";
+    description = "Logstash is a data pipeline that helps you process logs and other event data from a variety of systems";
     homepage    = https://www.elastic.co/products/logstash;
     license     = licenses.asl20;
     platforms   = platforms.unix;
diff --git a/pkgs/tools/misc/mimeo/default.nix b/pkgs/tools/misc/mimeo/default.nix
new file mode 100644
index 000000000000..66e91ed14240
--- /dev/null
+++ b/pkgs/tools/misc/mimeo/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, desktop_file_utils, file, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  name = "mimeo-${version}";
+  version = "2016.2";
+
+  src = fetchurl {
+    url = "http://xyne.archlinux.ca/projects/mimeo/src/${name}.tar.xz";
+    sha256 = "1y3a60983ind2cakjwxq3cgc76xhcdqz5lcpnyii34s6wviybkn1";
+  };
+
+  buildInputs = [ file desktop_file_utils ];
+
+  propagatedBuildInputs = [ python3Packages.pyxdg ];
+
+  preConfigure = ''
+    substituteInPlace Mimeo.py \
+      --replace "EXE_UPDATE_DESKTOP_DATABASE = 'update-desktop-database'" \
+                "EXE_UPDATE_DESKTOP_DATABASE = '${desktop_file_utils}/bin/update-desktop-database'" \
+      --replace "EXE_FILE = 'file'" \
+                "EXE_FILE = '${file}/bin/file'"
+  '';
+
+  installPhase = "install -Dm755 Mimeo.py $out/bin/mimeo";
+
+  meta = with stdenv.lib; {
+    description = "Open files by MIME-type or file name using regular expressions";
+    homepage = http://xyne.archlinux.ca/projects/mimeo/;
+    license = [ licenses.gpl2 ];
+    maintainers = [ maintainers.rycee ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/mprime/default.nix b/pkgs/tools/misc/mprime/default.nix
new file mode 100644
index 000000000000..9a435622c7d7
--- /dev/null
+++ b/pkgs/tools/misc/mprime/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, unzip, pkgconfig, curl }:
+
+let
+  srcDir =
+    if stdenv.system == "x86_64-linux" then "linux64"
+    else if stdenv.system == "i686-linux" then "linux"
+    else if stdenv.system == "x86_64-darwin" then "macosx64"
+    else abort "Unsupported platform";
+  gwnum =
+    if stdenv.system == "x86_64-linux" then "make64"
+    else if stdenv.system == "i686-linux" then "makefile"
+    else if stdenv.system == "x86_64-darwin" then "makemac"
+    else abort "Unsupported platform";
+in
+
+stdenv.mkDerivation {
+  name = "mprime-28.7";
+
+  src = fetchurl {
+    url = http://www.mersenne.org/ftp_root/gimps/p95v287.source.zip;
+    sha256 = "1k3gxhs3g8hfghzpmidhcwpwyayj8r83v8zjai1z4xgsql4jwby1";
+  };
+
+  unpackCmd = "unzip -d src -q $curSrc";
+
+  buildInputs = [ unzip pkgconfig curl ];
+
+  patches = [ ./makefile.patch ];
+
+  buildPhase = ''
+    make -C gwnum -f ${gwnum}
+    echo 'override CFLAGS := $(CFLAGS)' $(pkg-config --cflags libcurl) >> ${srcDir}/makefile
+    echo 'override LIBS := $(LIBS)' $(pkg-config --libs libcurl) >> ${srcDir}/makefile
+    make -C ${srcDir}
+  '';
+
+  installPhase = ''
+    install -D ${srcDir}/mprime $out/bin/mprime
+  '';
+  
+  meta = {
+    description = "Mersenne prime search / System stability tester";
+    longDescription = ''
+      MPrime is the Linux command-line interface version of Prime95, to be run
+      in a text terminal or in a terminal emulator window as a remote shell
+      client. It is identical to Prime95 in functionality, except it lacks a
+      graphical user interface.
+    '';
+    homepage = http://www.mersenne.org/;
+    # Unfree, because of a license requirement to share prize money if you find
+    # a suitable prime. http://www.mersenne.org/legal/#EULA
+    license = stdenv.lib.licenses.unfree;
+    # Untested on linux-32 and osx. Works in theory.
+    platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
+  };
+}
diff --git a/pkgs/tools/misc/mprime/makefile.patch b/pkgs/tools/misc/mprime/makefile.patch
new file mode 100644
index 000000000000..7f758af7b7c4
--- /dev/null
+++ b/pkgs/tools/misc/mprime/makefile.patch
@@ -0,0 +1,46 @@
+diff -ru orig/linux/makefile patched/linux/makefile
+--- orig/linux/makefile	2015-08-09 21:06:18.000000000 +0100
++++ patched/linux/makefile	2016-02-16 16:25:45.988662423 +0000
+@@ -25,8 +25,8 @@
+ CPP = g++
+ CPPFLAGS = -I.. -I../gwnum -O2 -march=i486 -malign-double
+ 
+-LFLAGS = -Wl,-M -Wl,-L/usr/local/lib
+-LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl
++LFLAGS =
++LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lrt -lstdc++ -ldl
+ 
+ FACTOROBJ = factor32.o
+ LINUXOBJS = prime.o menu.o
+diff -ru orig/linux64/makefile patched/linux64/makefile
+--- orig/linux64/makefile	2015-08-09 21:06:20.000000000 +0100
++++ patched/linux64/makefile	2016-02-16 16:25:57.076531585 +0000
+@@ -13,13 +13,13 @@
+ #	LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic $(shell pkg-config --static --libs libcurl) -lstdc++ -Wl,-Bdynamic -ldl
+ 
+ CC = gcc
+-CFLAGS = -I.. -I../gwnum -I/usr/local/include -DX86_64 -O2 
++CFLAGS = -I.. -I../gwnum -I/usr/local/include -DX86_64 -O2
+ 
+ CPP = g++
+ CPPFLAGS = -I.. -I../gwnum -DX86_64 -O2
+ 
+-LFLAGS = -Wl,-M -Wl,-L/usr/local/lib
+-LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl
++LFLAGS =
++LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lrt -lstdc++ -ldl
+ 
+ FACTOROBJ = factor64.o
+ LINUXOBJS = prime.o menu.o
+diff -ru orig/macosx64/makefile patched/macosx64/makefile
+--- orig/macosx64/makefile	2015-08-09 21:06:22.000000000 +0100
++++ patched/macosx64/makefile	2016-02-16 16:19:03.988415925 +0000
+@@ -10,7 +10,7 @@
+ CPPFLAGS = -I.. -I../gwnum -I../linux -O2 -DX86_64 -DCOMMAND_LINE_MPRIME -m64
+ 
+ LFLAGS = -m64 -Wl,-no_pie
+-LIBS   = ../gwnum/amd64/release/gwnum.a -lm -lpthread -lcurl -framework IOKit -framework CoreFoundation -lstdc++
++LIBS   = ../gwnum/amd64/release/gwnum.a -lm -lpthread -framework IOKit -framework CoreFoundation -lstdc++
+ 
+ FACTOROBJ = ../prime95/macosx64/factor64.o
+ OBJS = prime.o menu.o
diff --git a/pkgs/tools/misc/ms-sys/default.nix b/pkgs/tools/misc/ms-sys/default.nix
index c0b1de6c1e8c..4d6a317276a0 100644
--- a/pkgs/tools/misc/ms-sys/default.nix
+++ b/pkgs/tools/misc/ms-sys/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "ms-sys-${version}";
-  version = "2.5.2";
+  version = "2.5.3";
  
   src = fetchurl {
     url = "mirror://sourceforge/ms-sys/${name}.tar.gz";
-    sha256 = "0c7ld5pglcacnrvy2gzzg1ny1jyknlj9iz1mvadq3hn8ai1d83px";
+    sha256 = "0mijf82cbji4laip6hiy3l5ka5mzq5sivjvyv7wxnc2fd3v7hgp0";
   };
 
   buildInputs = [ gettext ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with stdenv.lib; {
-    description = "A program for writing Microsoft compatible boot records";
+    description = "A program for writing Microsoft-compatible boot records";
     homepage = http://ms-sys.sourceforge.net/;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ nckx ];
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index c45c62cb3ada..d4c920f4acc8 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, perl, makeWrapper, procps }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20160122";
+  name = "parallel-20160222";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "1xs8y8jh7wyjs27079xz0ja7xfi4dywz8d6hbkl44mafdnnfjfiy";
+    sha256 = "1sjmvinwr9j2a0jdk9y9nf2x4hhzcbl529slkwpz0vva0cwybywd";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/staruml/default.nix b/pkgs/tools/misc/staruml/default.nix
new file mode 100644
index 000000000000..4c60e790238e
--- /dev/null
+++ b/pkgs/tools/misc/staruml/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, makeWrapper, dpkg, patchelf, gtk2, glib, gdk_pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, udev }:
+
+stdenv.mkDerivation rec {
+  version = "2.6.0";
+  name = "staruml-${version}";
+
+  src =
+    if stdenv.system == "i686-linux" then fetchurl {
+      url = "http://staruml.io/download/release/v${version}/StarUML-v${version}-32-bit.deb";
+      sha256 = "684d7ce7827a98af5bf17bf68d18f934fd970f13a2112a121b1f1f76d6387849";
+    } else fetchurl {
+      url = "http://staruml.io/download/release/v${version}/StarUML-v${version}-64-bit.deb";
+      sha256 = "36e0bdc1bb57b7d808a007a3fafb1b38662d5b0793424d5ad4f51a3a6a9a636d";
+    };
+
+  buildInputs = [ dpkg ];
+
+  nativeBuildInputs = [ makeWrapper ];
+  
+  unpackPhase = ''
+    mkdir pkg
+    dpkg-deb -x $src pkg
+    sourceRoot=pkg
+  '';
+  
+  installPhase = ''
+    mkdir $out
+    mv opt/staruml $out/bin
+
+    ${patchelf}/bin/patchelf \
+      --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      $out/bin/StarUML
+    
+    mkdir -p $out/lib
+    
+    ln -s ${stdenv.cc.cc}/lib/libstdc++.so.6 $out/lib/
+    ln -s ${udev}/lib/libudev.so.1 $out/lib/libudev.so.0
+
+    wrapProgram $out/bin/StarUML \
+      --prefix LD_LIBRARY_PATH : $out/lib:${glib}/lib:${gtk2}/lib:${gdk_pixbuf}/lib/:${alsaLib}/lib/:${nss}/lib/:${nspr}/lib/:${GConf}/lib/:${cups}/lib/:${libgcrypt}/lib/:${dbus}/lib/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A sophisticated software modeler";
+    homepage = http://staruml.io/;
+    license = licenses.unfree;
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index 97737bce783f..270e1c0cb62a 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "svtplay-dl-${version}";
-  version = "0.30.2016.01.10";
+  version = "0.30.2016.02.08";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "1npgjgbri7g27f9ayx39d3pbv7pa22860c0aipwwvayggs27g1sr";
+    sha256 = "0nkgc43lf06h0w8k4zm5pdzp6r6jjc6j94ciljcm8333n0ykfzpr";
   };
 
   pythonPaths = [ pycrypto requests2 ];
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index 34b65973650b..75b3cb160671 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -2,7 +2,7 @@
 
 assert stdenv.isLinux;
 
-python2Packages.buildPythonPackage rec {
+python2Packages.buildPythonApplication rec {
   name = "trash-cli-${version}";
   version = "0.12.9.14";
   namePrefix = "";
diff --git a/pkgs/tools/misc/vdirsyncer/default.nix b/pkgs/tools/misc/vdirsyncer/default.nix
index 890186992637..d6789bf52bc5 100644
--- a/pkgs/tools/misc/vdirsyncer/default.nix
+++ b/pkgs/tools/misc/vdirsyncer/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
-  version = "0.8.1";
+pythonPackages.buildPythonApplication rec {
+  version = "0.9.0";
   name = "vdirsyncer-${version}";
   namePrefix = "";
 
   src = fetchurl {
     url = "https://pypi.python.org/packages/source/v/vdirsyncer/${name}.tar.gz";
-    sha256 = "1abflqw6x30xd2dlj58cr5n62x98kc0ia9f9vr8l64k2z1fjlq78";
+    sha256 = "0s9awjr9v60rr80xcpwmdhkf4v1yqnydahjmxwvxmh64565is465";
   };
 
   propagatedBuildInputs = with pythonPackages; [
@@ -20,6 +20,11 @@ pythonPackages.buildPythonPackage rec {
     atomicwrites
   ];
 
+  # Unfortunately, checking this package seems a bit too complex
+  # https://github.com/NixOS/nixpkgs/pull/13098#issuecomment-185914025
+  # https://github.com/untitaker/vdirsyncer/issues/334#issuecomment-185872854
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = https://github.com/untitaker/vdirsyncer;
     description = "Synchronize calendars and contacts";
diff --git a/pkgs/tools/misc/xclip/default.nix b/pkgs/tools/misc/xclip/default.nix
index e0ad4bbab5fd..197b92295a82 100644
--- a/pkgs/tools/misc/xclip/default.nix
+++ b/pkgs/tools/misc/xclip/default.nix
@@ -6,7 +6,8 @@ stdenv.mkDerivation rec {
 
   src = fetchsvn {
     url = "svn://svn.code.sf.net/p/xclip/code/trunk";
-    sha256 = "0d6r38xas5l79l700sdm14l41vvjqhah613367ha8kcvx54zkddz";
+    rev = "87";
+    sha256 = "1rbcdgr73916wvzfgqjs1jhgzk8qs1yw2iiqy7ifrkjafhi37w6b";
   };
 
   buildInputs = [ xlibsWrapper libXmu autoreconfHook ];
diff --git a/pkgs/tools/misc/xdo/default.nix b/pkgs/tools/misc/xdo/default.nix
index e7a3d91967e6..26a5b485bf61 100644
--- a/pkgs/tools/misc/xdo/default.nix
+++ b/pkgs/tools/misc/xdo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libxcb, xcbutilwm }:
 
 stdenv.mkDerivation rec {
-   name = "xdo-0.3";
+   name = "xdo-0.5";
 
    src = fetchurl {
-     url = "https://github.com/baskerville/xdo/archive/0.3.tar.gz";
-     sha256 = "128flaydag9ixsai87p85r84arg2pn1j9h3zgdjwlmbcpb8d4ia8";
+     url = "https://github.com/baskerville/xdo/archive/0.5.tar.gz";
+     sha256 = "0sjnjs12i0gp1dg1m5jid4a3bg9am4qkf0qafyp6yn176yzcz1i6";
    };
 
    prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index f3bfa218df4a..9c42a4cfe000 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildPythonPackage, makeWrapper, ffmpeg, zip
+{ stdenv, fetchurl, buildPythonApplication, makeWrapper, ffmpeg, zip
 , pandoc ? null
 }:
 
@@ -9,14 +9,14 @@
 # case someone wants to use this derivation to build a Git version of
 # the tool that doesn't have the formatted man page included.
 
-buildPythonPackage rec {
+buildPythonApplication rec {
 
   name = "youtube-dl-${version}";
-  version = "2016.01.01";
+  version = "2016.02.13";
 
   src = fetchurl {
     url = "http://yt-dl.org/downloads/${stdenv.lib.getVersion name}/${name}.tar.gz";
-    sha256 = "0b0pk8h2iswdiyf65c0zcwcad9dm2hid67fnfafj7d3ikp4kfbvk";
+    sha256 = "0d6ml6nas0pnp6is73fn326ayxkdmxvarzyr96qd6gyjm9icpdcb";
   };
 
   buildInputs = [ makeWrapper zip pandoc ];
diff --git a/pkgs/tools/networking/aria2/default.nix b/pkgs/tools/networking/aria2/default.nix
index 09e4531d9259..8cb6172d87b6 100644
--- a/pkgs/tools/networking/aria2/default.nix
+++ b/pkgs/tools/networking/aria2/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "aria2-${version}";
-  version = "1.19.3";
+  version = "1.20.0";
 
   src = fetchurl {
     url = "https://github.com/tatsuhiro-t/aria2/releases/download/release-${version}/${name}.tar.xz";
-    sha256 = "1qwr4al6wlh5f558r0mr1hvdnf7d8ss6qwqn2361k99phk1cdg3a";
+    sha256 = "1l4gzz3yr0cl6a9xdy7843c5sb7afyq0i80wi2hasfpfdx5k95mz";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/networking/babeld/default.nix b/pkgs/tools/networking/babeld/default.nix
index 7af9aa901a83..7a54887e9d8d 100644
--- a/pkgs/tools/networking/babeld/default.nix
+++ b/pkgs/tools/networking/babeld/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "babeld-1.6.1";
+  name = "babeld-1.7.1";
 
   src = fetchurl {
     url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/${name}.tar.gz";
-    sha256 = "1d45f12mhlxsf8jlpgb1gig5bjg5izdkfk173rd9a1wi7s82pisl";
+    sha256 = "1dl7s2lb40kiysrqhr7zd0s90yfxy6xfsp0fhqgdlwfr99ymx59c";
   };
 
   preBuild = ''
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.pps.univ-paris-diderot.fr/~jch/software/babel/";
     description = "Loop-avoiding distance-vector routing protocol";
     license = stdenv.lib.licenses.mit;
-    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu fpletz ];
   };
 }
diff --git a/pkgs/tools/networking/chrony/default.nix b/pkgs/tools/networking/chrony/default.nix
index dca92c565af9..38839c4b6acd 100644
--- a/pkgs/tools/networking/chrony/default.nix
+++ b/pkgs/tools/networking/chrony/default.nix
@@ -5,11 +5,11 @@ assert stdenv.isLinux -> libcap != null;
 stdenv.mkDerivation rec {
   name = "chrony-${version}";
 
-  version = "2.2";
+  version = "2.3";
 
   src = fetchurl {
     url = "http://download.tuxfamily.org/chrony/${name}.tar.gz";
-    sha256 = "1194maargy4hpl2a3vy5mbrrswzajjdn92p4w17gbb9vlq7q5zfk";
+    sha256 = "1cncjapm98hv1nyrqlanjpz8k5ny6rp4vnf0gjl0zyqj619gpgsq";
   };
 
   buildInputs = [ readline texinfo nss nspr ] ++ stdenv.lib.optional stdenv.isLinux libcap;
diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix
index 6142f53c0564..7af692f782e8 100644
--- a/pkgs/tools/networking/connman/default.nix
+++ b/pkgs/tools/networking/connman/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "connman-${version}";
-  version = "1.30";
+  version = "1.31";
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/network/connman/connman.git";
     rev = "refs/tags/${version}";
-    sha256 = "715474351e22b52334d37c146fd5eb87d692be8501d8dac33a0e330437235295";
+    sha256 = "90dab6b11841cb4b6400711d234b59fb4fad4e8778bed6e7ad3ac7ac135d6893";
   };
 
   buildInputs = [ autoconf automake libtool pkgconfig openconnect polkit
diff --git a/pkgs/tools/networking/connman_dmenu/default.nix b/pkgs/tools/networking/connman_dmenu/default.nix
new file mode 100644
index 000000000000..42ef7f4f4da7
--- /dev/null
+++ b/pkgs/tools/networking/connman_dmenu/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, connman, dmenu }:
+stdenv.mkDerivation rec {
+  name = "connman_dmenu-${version}";
+  version = "git-29-9-2015";
+
+  src = fetchFromGitHub {
+    owner = "march-linux";
+    repo = "connman_dmenu";
+    rev = "cc89fec40b574b0d234afeb70ea3c94626ca3f5c";
+    sha256 = "061fi83pai4n19l9d7wq6wwj2d7cixwkhkh742c5ibmw1wb274yk";
+  };
+
+  buildInputs = [ connman dmenu ];
+
+  phases = "unpackPhase patchPhase installPhase fixupPhase";
+
+  # remove root requirement, see: https://github.com/march-linux/connman_dmenu/issues/3
+  patchPhase = ''
+    sed -i '89,92d' connman_dmenu
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp connman_dmenu $out/bin/
+  '';
+
+  meta = {
+    description  = "A dmenu wrapper for connmann";
+    homepage     = https://github.com/march-linux/connman_dmenu;
+    license      = stdenv.lib.licenses.free;
+    maintainers  = [ stdenv.lib.maintainers.magnetophon ];
+    platforms    = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/networking/curl/7.15.nix b/pkgs/tools/networking/curl/7.15.nix
index 4e533878ec18..356c9b4f32d2 100644
--- a/pkgs/tools/networking/curl/7.15.nix
+++ b/pkgs/tools/networking/curl/7.15.nix
@@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
     sha256 = "061bgjm6rv0l9804vmm4jvr023l52qvmy9qq4zjv4lgqhlljvhz3";
   };
 
+  patches = [ ./disable-ca-install.patch ];
+
   # Zlib and OpenSSL must be propagated because `libcurl.la' contains
   # "-lz -lssl", which aren't necessary direct build inputs of
   # applications that use Curl.
@@ -33,12 +35,8 @@ stdenv.mkDerivation rec {
     sed -e 's|/usr/bin|/no-such-path|g' -i.bak configure
   '';
 
-  # make curl honor CURL_CA_BUNDLE & SSL_CERT_FILE
-  postConfigure = ''
-    echo  '#define CURL_CA_BUNDLE (getenv("CURL_CA_BUNDLE") || getenv("SSL_CERT_FILE"))' >> lib/curl_config.h
-  '';
-
   configureFlags = [
+      "--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt"
       ( if sslSupport then "--with-ssl=${openssl}" else "--without-ssl" )
       ( if scpSupport then "--with-libssh2=${libssh2}" else "--without-libssh2" )
     ]
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 8a950e3fc934..6008afa27872 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, pkgconfig
+{ stdenv, fetchurl, pkgconfig, perl
+, http2Support ? true, libnghttp2
 , idnSupport ? false, libidn ? null
 , ldapSupport ? false, openldap ? null
 , zlibSupport ? false, zlib ? null
@@ -8,6 +9,7 @@
 , c-aresSupport ? false, c-ares ? null
 }:
 
+assert http2Support -> libnghttp2 != null;
 assert idnSupport -> libidn != null;
 assert ldapSupport -> openldap != null;
 assert zlibSupport -> zlib != null;
@@ -16,20 +18,22 @@ assert scpSupport -> libssh2 != null;
 assert c-aresSupport -> c-ares != null;
 
 stdenv.mkDerivation rec {
-  name = "curl-7.45.0";
+  name = "curl-7.47.1";
 
   src = fetchurl {
-    url = "http://ngcobalt13.uxnr.de/mirror/curl/${name}.tar.bz2";
-    sha256 = "1slq5c0v9wa8hajgimhkxhvsrd07jmih8sa3gjsl597qp5k4w5b5";
+    url = "http://curl.haxx.se/download/${name}.tar.bz2";
+    sha256 = "13z9gba3q2ybp50z0gdkzhwcx9m0i7qkvm278yz4pql2jfml7inx";
   };
 
   outputs = [ "dev" "out" "bin" "man" "docdev" ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig perl ];
+
   # Zlib and OpenSSL must be propagated because `libcurl.la' contains
   # "-lz -lssl", which aren't necessary direct build inputs of
   # applications that use Curl.
   propagatedBuildInputs = with stdenv.lib;
+    optional http2Support libnghttp2 ++
     optional idnSupport libidn ++
     optional ldapSupport openldap ++
     optional zlibSupport zlib ++
@@ -44,13 +48,10 @@ stdenv.mkDerivation rec {
     rm src/tool_hugehelp.c
   '';
 
-  # make curl honor CURL_CA_BUNDLE & SSL_CERT_FILE
-  postConfigure = ''
-    echo  '#define CURL_CA_BUNDLE (getenv("CURL_CA_BUNDLE") ? getenv("CURL_CA_BUNDLE") : getenv("SSL_CERT_FILE"))' >> lib/curl_config.h
-  '';
-
   configureFlags = [
+      "--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt"
       "--disable-manual"
+      ( if http2Support then "--with-nghttp2=${libnghttp2}" else "--without-nghttp2" )
       ( if sslSupport then "--with-ssl=${openssl}" else "--without-ssl" )
       ( if scpSupport then "--with-libssh2=${libssh2}" else "--without-libssh2" )
       ( if ldapSupport then "--enable-ldap" else "--disable-ldap" )
diff --git a/pkgs/tools/networking/curl/disable-ca-install.patch b/pkgs/tools/networking/curl/disable-ca-install.patch
new file mode 100644
index 000000000000..aedf8ef5c3e2
--- /dev/null
+++ b/pkgs/tools/networking/curl/disable-ca-install.patch
@@ -0,0 +1,14 @@
+--- a/lib/Makefile.in
++++ b/lib/Makefile.in
+@@ -106,10 +106,7 @@ else
+ endif
+ 
+ install-data-hook:
+-	@if test -n "@CURL_CA_BUNDLE@"; then \
+-	  $(mkinstalldirs) `dirname $(DESTDIR)@CURL_CA_BUNDLE@`; \
+-	  @INSTALL_DATA@ $(srcdir)/ca-bundle.crt $(DESTDIR)@CURL_CA_BUNDLE@; \
+-        fi
++	echo "install-data-hook disabled"
+ 
+ # this hook is mainly for non-unix systems to build even if configure
+ # isn't run
diff --git a/pkgs/tools/networking/ddclient/ddclient-foreground.patch b/pkgs/tools/networking/ddclient/ddclient-foreground.patch
deleted file mode 100644
index 1ae3621f5079..000000000000
--- a/pkgs/tools/networking/ddclient/ddclient-foreground.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -u ddclient-3.8.1/ddclient ddclient-3.8.1.patched/ddclient
---- ddclient-3.8.1/ddclient	2011-07-11 23:04:21.000000000 +0200
-+++ ddclient-3.8.1.patched/ddclient	2012-11-08 11:52:31.930647236 +0100
-@@ -574,7 +574,7 @@
-     "usage: ${program} [options]",
-     "options are:",
-     [ "daemon",      "=s", "-daemon delay         : run as a daemon, specify delay as an interval." ],
--+     [ "foreground",  "!",  "-foreground           : do not fork" ],
-+    [ "foreground",  "!",  "-foreground           : do not fork" ],
-     [ "proxy",       "=s", "-proxy host           : use 'host' as the HTTP proxy" ],
-     [ "server",      "=s", "-server host          : update DNS information on 'host'" ],
-     [ "protocol",    "=s", "-protocol type        : update protocol used" ],
diff --git a/pkgs/tools/networking/ddclient/default.nix b/pkgs/tools/networking/ddclient/default.nix
index 41688d843513..53a0f4c3e6dd 100644
--- a/pkgs/tools/networking/ddclient/default.nix
+++ b/pkgs/tools/networking/ddclient/default.nix
@@ -1,24 +1,25 @@
-{buildPerlPackage, fetchurl, perlPackages, iproute}:
+{ stdenv, buildPerlPackage, fetchurl, perlPackages, iproute }:
 
-buildPerlPackage {
-  name = "ddclient-3.8.2";
+buildPerlPackage rec {
+  name = "ddclient-${version}";
+  version = "3.8.3";
 
   src = fetchurl {
-    url = mirror://sourceforge/ddclient/ddclient-3.8.2.tar.gz ;
-    sha256 = "17mcdqxcwa6c05m8xhxi4r37j4qvbp3wgbpvzqgmrmgwava5wcrw";
+    url = "mirror://sourceforge/ddclient/${name}.tar.gz";
+    sha256 = "1j8zdn7fy7i0bjk3jf0hxnbnshc2yf054vxq64imxdpfd7n5zgfy";
   };
 
   buildInputs = [ perlPackages.IOSocketSSL perlPackages.DigestSHA1 ];
 
-  patches = [ ./ddclient-foreground.patch ./ddclient-line-buffer-stdout.patch ];
+  patches = [ ./ddclient-line-buffer-stdout.patch ];
 
   # Use iproute2 instead of ifconfig
-  preConfigure = '' 
+  preConfigure = ''
     touch Makefile.PL
     substituteInPlace ddclient --replace 'in the output of ifconfig' 'in the output of ip addr show'
     substituteInPlace ddclient --replace 'ifconfig -a' '${iproute}/sbin/ip addr show'
     substituteInPlace ddclient --replace 'ifconfig $arg' '${iproute}/sbin/ip addr show $arg'
-  ''; 
+  '';
 
   installPhase = ''
     mkdir -p $out/bin
@@ -26,4 +27,13 @@ buildPerlPackage {
   '';
 
   doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://sourceforge.net/p/ddclient/wiki/Home/;
+    description = "Client for updating dynamic DNS service entries";
+    license = licenses.gpl2Plus;
+
+    # Mostly since `iproute` is Linux only.
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/tools/networking/dnscrypt-proxy/default.nix b/pkgs/tools/networking/dnscrypt-proxy/default.nix
index ca19c335a1c9..b98570a7341b 100644
--- a/pkgs/tools/networking/dnscrypt-proxy/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "dnscrypt-proxy-${version}";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchurl {
     url = "http://download.dnscrypt.org/dnscrypt-proxy/${name}.tar.bz2";
-    sha256 = "0zfw9vi9qbsc55awncyigqfqp25v5adqk6jpg1jdfkmbqqfykk70";
+    sha256 = "16lif3qhyfjpgg54vjlwpslxk90akmbhlpnn1szxm628bmpw6nl9";
   };
 
   configureFlags = ''
diff --git a/pkgs/tools/networking/driftnet/default.nix b/pkgs/tools/networking/driftnet/default.nix
index 6666612419d9..7c8a30971f72 100644
--- a/pkgs/tools/networking/driftnet/default.nix
+++ b/pkgs/tools/networking/driftnet/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "Driftnet watches network traffic, and picks out and displays JPEG and GIF images for display.";
+    description = "Driftnet watches network traffic, and picks out and displays JPEG and GIF images for display";
     homepage = https://github.com/deiv/driftnet;
     maintainers = with maintainers; [ offline ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/getmail/default.nix b/pkgs/tools/networking/getmail/default.nix
index a05b3ccfa9aa..d11e154817d4 100644
--- a/pkgs/tools/networking/getmail/default.nix
+++ b/pkgs/tools/networking/getmail/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchurl, buildPythonPackage }:
+{ stdenv, fetchurl, buildPythonApplication }:
 
-buildPythonPackage rec {
-  version = "4.48.0";
+buildPythonApplication rec {
+  version = "4.49.0";
   name = "getmail-${version}";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://pyropus.ca/software/getmail/old-versions/${name}.tar.gz";
-    sha256 = "0k5rm5kag14izng2ajcagvli9sns5mzvkyfa65ri4xymxs91wi29";
+    sha256 = "1m0yzxd05fklwbmjj1n2q4sx397c1j5qi9a0r5fv3h8pplz4lv0w";
   };
 
   doCheck = false;
diff --git a/pkgs/tools/networking/gmvault/default.nix b/pkgs/tools/networking/gmvault/default.nix
index aa52e4f3ae24..4ccd09ac555a 100644
--- a/pkgs/tools/networking/gmvault/default.nix
+++ b/pkgs/tools/networking/gmvault/default.nix
@@ -1,6 +1,6 @@
-{ pkgs, fetchurl, buildPythonPackage, pythonPackages }:
+{ pkgs, fetchurl, buildPythonApplication, pythonPackages }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   version = "1.8.1-beta";
   name = "gmvault-${version}";
 
diff --git a/pkgs/tools/networking/httpie/default.nix b/pkgs/tools/networking/httpie/default.nix
index cc1531961b32..a3c52f7dd501 100644
--- a/pkgs/tools/networking/httpie/default.nix
+++ b/pkgs/tools/networking/httpie/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "httpie-0.9.2";
   namePrefix = "";
 
diff --git a/pkgs/tools/networking/i2p/default.nix b/pkgs/tools/networking/i2p/default.nix
index 0829fed1d5e9..b1bfeb215f68 100644
--- a/pkgs/tools/networking/i2p/default.nix
+++ b/pkgs/tools/networking/i2p/default.nix
@@ -1,10 +1,10 @@
 { stdenv, procps, coreutils, fetchurl, jdk, jre, ant, gettext, which }:
 
 stdenv.mkDerivation rec {
-  name = "i2p-0.9.23";
+  name = "i2p-0.9.24";
   src = fetchurl {
     url = "https://github.com/i2p/i2p.i2p/archive/${name}.tar.gz";
-    sha256 = "1vjyki86r6v8z2pil7s6r74yf6h8w000ypxxngimw3kfff121swp";
+    sha256 = "0hk28cigil6ia707zb6p8n7959xg7v816bacxxlln780cc1wi830";
   };
   buildInputs = [ jdk ant gettext which ];
   patches = [ ./i2p.patch ];
diff --git a/pkgs/tools/networking/libreswan/default.nix b/pkgs/tools/networking/libreswan/default.nix
new file mode 100644
index 000000000000..1a040652ff4e
--- /dev/null
+++ b/pkgs/tools/networking/libreswan/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl, makeWrapper,
+  pkgconfig, systemd, gmp, unbound, bison, flex, pam, libevent, libcap_ng, curl, nspr,
+  bash, iproute, iptables, procps, coreutils, gnused, gawk, nssTools, which, python,
+  docs ? false, xmlto
+  }:
+
+let
+  optional = stdenv.lib.optional;
+  version = "3.16";
+  name = "libreswan-${version}";
+  binPath = stdenv.lib.makeBinPath [
+    bash iproute iptables procps coreutils gnused gawk nssTools which python
+  ];
+in
+
+assert docs -> xmlto != null;
+
+stdenv.mkDerivation {
+  inherit name;
+  inherit version;
+
+  src = fetchurl {
+    url = "https://download.libreswan.org/${name}.tar.gz";
+    sha256 = "15qv4101p1jw591l04gsfscb3farzd278mgi8yph015vmifyjxrd";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ pkgconfig bash iproute iptables systemd coreutils gnused gawk gmp unbound bison flex pam libevent
+                  libcap_ng curl nspr nssTools python ]
+                ++ optional docs xmlto;
+
+  prePatch = ''
+    # Correct bash path
+    sed -i -e 's|/bin/bash|/usr/bin/env bash|' mk/config.mk
+
+    # Fix systemd unit directory, and prevent the makefile from trying to reload the systemd daemon
+    sed -i -e 's|UNITDIR=.*$|UNITDIR=$\{out}/etc/systemd/system/|' -e 's|systemctl --system daemon-reload|true|' initsystems/systemd/Makefile
+
+    # Fix the ipsec program from crushing the PATH
+    sed -i -e 's|\(PATH=".*"\):.*$|\1:$PATH|' programs/ipsec/ipsec.in
+
+    # Fix python script to use the correct python
+    sed -i -e 's|#!/usr/bin/python|#!/usr/bin/env python|' -e 's/^\(\W*\)installstartcheck()/\1sscmd = "ss"\n\0/' programs/verify/verify.in
+  '';
+  
+  # Set appropriate paths for build
+  preBuild = "export INC_USRLOCAL=\${out}";
+
+  makeFlags = [ 
+    "INITSYSTEM=systemd"
+    (if docs then "all" else "base")
+  ];
+
+  installTargets = [ (if docs then "install" else "install-base") ];
+  # Hack to make install work
+  installFlags = [
+    "FINALVARDIR=\${out}/var"
+    "FINALSYSCONFDIR=\${out}/etc"
+  ];
+
+  postInstall = ''
+    for i in $out/bin/* $out/libexec/ipsec/*; do
+      wrapProgram "$i" --prefix PATH ':' "$out/bin:${binPath}"
+    done
+  '';
+
+  enableParallelBuilding = false;
+
+  meta = {
+    homepage = "https://libreswan.org";
+    description = "A free software implementation of the VPN protocol based on IPSec and the Internet Key Exchange";
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin ++ stdenv.lib.platforms.freebsd;
+    maintainers = [ stdenv.lib.maintainers.afranchuk ];
+  };
+}
diff --git a/pkgs/tools/networking/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index 7334ecc3e92e..d2bc7b4e7725 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -1,21 +1,19 @@
-{ stdenv, fetchurl, iptables, pkgconfig }:
+{ stdenv, fetchurl, iptables, libuuid, pkgconfig }:
 
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "miniupnpd-1.9.20160209";
+  name = "miniupnpd-1.9.20160222";
 
   src = fetchurl {
     url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
-    sha256 = "0r4giqsr39s17mn9lmmy3zawrfj7kj9im7nzv7mx3rgz2ncw092z";
+    sha256 = "0q694dla4v36qsc0x50xqg2jjhwdi9pl7r2gl10yvhkahxqx1ng7";
     name = "${name}.tar.gz";
   };
 
-  buildInputs = [ iptables ];
+  buildInputs = [ iptables libuuid ];
   nativeBuildInputs= [ pkgconfig ];
 
-  NIX_CFLAGS_LINK = "-liptc";
-
   makefile = "Makefile.linux";
 
   buildFlags = "miniupnpd genuuid";
diff --git a/pkgs/tools/networking/nbd/default.nix b/pkgs/tools/networking/nbd/default.nix
index 6cb75152af06..967b3863f205 100644
--- a/pkgs/tools/networking/nbd/default.nix
+++ b/pkgs/tools/networking/nbd/default.nix
@@ -8,7 +8,9 @@ stdenv.mkDerivation rec {
     sha256 = "1pkkid657zgjymwxv3fm32cxnq9llfz29rl15vp6mn42vnzbj1di";
   };
 
-  buildInputs = [ pkgconfig glib ] ++ stdenv.lib.optional (stdenv ? glibc) stdenv.glibc.kernelHeaders;
+  buildInputs =
+    [ pkgconfig glib ]
+    ++ stdenv.lib.optional (stdenv ? glibc) stdenv.glibc.linuxHeaders;
 
   postInstall = ''
     mkdir -p "$out/share/doc/${name}"
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index 82134634e872..654d590a8b72 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
       --replace /bin/sh ${stdenv.shell} \
       --replace /usr/sbin/ethtool ${ethtool}/sbin/ethtool \
       --replace /bin/sed ${gnused}/bin/sed
+    # to enable link-local connections
+    substituteInPlace src/devices/nm-device.c --replace '("avahi-autoipd", NULL, NULL)' '("avahi-autoipd", &"${avahi}/sbin/avahi-autoipd", NULL)'
     configureFlags="$configureFlags --with-udev-dir=$out/lib/udev"
   '';
 
diff --git a/pkgs/tools/networking/ntp/default.nix b/pkgs/tools/networking/ntp/default.nix
index 8a23eeb60f4f..0e7c23fd3a6c 100644
--- a/pkgs/tools/networking/ntp/default.nix
+++ b/pkgs/tools/networking/ntp/default.nix
@@ -3,11 +3,11 @@
 assert stdenv.isLinux -> libcap != null;
 
 stdenv.mkDerivation rec {
-  name = "ntp-4.2.8p4";
+  name = "ntp-4.2.8p6";
 
   src = fetchurl {
     url = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${name}.tar.gz";
-    sha256 = "1fgxbhv0wyiivi6kh5zpzrd0yqmc48z7d3zmjspw9lj84mbn2s8d";
+    sha256 = "0j509gd0snj8dq15rhfv2v4wisfaabya1gmgqslk1kisawf0wgaq";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/networking/offlineimap/default.nix b/pkgs/tools/networking/offlineimap/default.nix
index 5331f71a96ac..00061b3aeff1 100644
--- a/pkgs/tools/networking/offlineimap/default.nix
+++ b/pkgs/tools/networking/offlineimap/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, sqlite3 }:
+{ stdenv, fetchFromGitHub, buildPythonApplication, sqlite3 }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   version = "6.6.1";
   name = "offlineimap-${version}";
   namePrefix = "";
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 73e92aa4b8e5..4a1efbb03356 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -4,6 +4,7 @@
 , withKerberos ? false
 , withGssapiPatches ? withKerberos
 , kerberos
+, linkOpenssl? true
 }:
 
 assert withKerberos -> kerberos != null;
@@ -16,18 +17,18 @@ let
   };
 
   gssapiSrc = fetchpatch {
-    url = "http://anonscm.debian.org/cgit/pkg-ssh/openssh.git/plain/debian/patches/gssapi.patch?h=debian/6.9p1-3";
-    sha256 = "03zlgkb3a1igj20kn8cz55ggaxg65h6f0kg20m39m0wsb94qjdb1";
+    url = "http://anonscm.debian.org/cgit/pkg-ssh/openssh.git/plain/debian/patches/gssapi.patch?h=debian/7.1p2-2";
+    sha256 = "05nsch879nlpyyiwm240wlq9rasy71j9d03j1rfi8kp865zhjfbm";
   };
 
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "openssh-7.1p2";
+  name = "openssh-7.2p1";
 
   src = fetchurl {
     url = "mirror://openbsd/OpenSSH/portable/${name}.tar.gz";
-    sha256 = "1gbbvszz74lkc7b2mqr3ccgpm65zj0k5h7a2ssh0c7pjvhjg0xfx";
+    sha256 = "1hsa1f3641pdj57a55gmnvcya3wwww2fc2cvb77y95rm5xxw6g4p";
   };
 
   prePatch = optionalString hpnSupport
@@ -37,15 +38,7 @@ stdenv.mkDerivation rec {
     '';
 
   patches =
-    [ ./locale_archive.patch
-
-      # Fix "HostKeyAlgoritms +...", which we need to enable DSA
-      # host key support.
-      (fetchurl {
-        url = "https://pkgs.fedoraproject.org/cgit/rpms/openssh.git/plain/openssh-7.1p1-hostkeyalgorithms.patch?id=c98f5597250d6f9a8e8d96960beb6306d150ef0f";
-        sha256 = "029lzp9qv1af8wdm0wwj7qwjj1nimgsjj214jqm3amwz0857qgvp";
-      })
-    ]
+    [ ./locale_archive.patch ]
     ++ optional withGssapiPatches gssapiSrc;
 
   buildInputs = [ zlib openssl libedit pkgconfig pam ]
@@ -54,6 +47,7 @@ stdenv.mkDerivation rec {
   # I set --disable-strip because later we strip anyway. And it fails to strip
   # properly when cross building.
   configureFlags = [
+    "--sbindir=\${out}/bin"
     "--localstatedir=/var"
     "--with-pid-dir=/run"
     "--with-mantype=man"
@@ -62,7 +56,8 @@ stdenv.mkDerivation rec {
     (if pam != null then "--with-pam" else "--without-pam")
   ] ++ optional (etcDir != null) "--sysconfdir=${etcDir}"
     ++ optional withKerberos "--with-kerberos5=${kerberos}"
-    ++ optional stdenv.isDarwin "--disable-libutil";
+    ++ optional stdenv.isDarwin "--disable-libutil"
+    ++ optional (!linkOpenssl) "--without-openssl";
 
   preConfigure = ''
     configureFlagsArray+=("--with-privsep-path=$out/empty")
diff --git a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
index 1f935c2f83b0..5f1d6b4ef1a4 100644
--- a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
+++ b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
@@ -1,19 +1,18 @@
-{ fetchurl, lib, unzip, buildPythonPackage, twisted, foolscap, nevow
-, simplejson, zfec, pycryptopp, sqlite3, darcsver, setuptoolsTrial, python
-, setuptoolsDarcs, numpy, nettools, pycrypto, pyasn1, mock, zope_interface }:
+{ fetchurl, lib, unzip, nettools, pythonPackages }:
 
 # FAILURES: The "running build_ext" phase fails to compile Twisted
 # plugins, because it tries to write them into Twisted's (immutable)
 # store path. The problem appears to be non-fatal, but there's probably
 # some loss of functionality because of it.
 
-buildPythonPackage rec {
-  name = "tahoe-lafs-1.10.0";
+pythonPackages.buildPythonApplication rec {
+  version = "1.10.2";
+  name = "tahoe-lafs-${version}";
   namePrefix = "";
 
   src = fetchurl {
-    url = "http://tahoe-lafs.org/source/tahoe-lafs/releases/allmydata-tahoe-1.10.0.tar.bz2";
-    sha256 = "1qng7j1vykk8zl5da9yklkljvgxfnjky58gcay6dypz91xq1cmcw";
+    url = "http://tahoe-lafs.org/source/tahoe-lafs/releases/allmydata-tahoe-${version}.tar.bz2";
+    sha256 = "1rvv0ik5biy7ji8pg56v0qycnggzr3k6dbg88n555nb6r4cxgmgy";
   };
 
   patchPhase = ''
@@ -32,13 +31,14 @@ buildPythonPackage rec {
   '';
 
   # Some tests want this + http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-dep-sdists/mock-0.6.0.tar.bz2
-  buildInputs = [ unzip numpy ];
+  buildInputs = with pythonPackages; [ unzip numpy mock ];
 
   # The `backup' command requires `sqlite3'.
-  propagatedBuildInputs =
-    [ twisted foolscap nevow simplejson zfec pycryptopp sqlite3
-      darcsver setuptoolsTrial setuptoolsDarcs pycrypto pyasn1 zope_interface mock
-    ];
+  propagatedBuildInputs = with pythonPackages; [
+    twisted foolscap nevow simplejson zfec pycryptopp sqlite3 darcsver
+    setuptoolsTrial setuptoolsDarcs pycrypto pyasn1 zope_interface
+    service-identity
+  ];
 
   postInstall = ''
     # Install the documentation.
@@ -49,7 +49,7 @@ buildPythonPackage rec {
 
   checkPhase = ''
     # TODO: broken with wheels
-    #${python.interpreter} setup.py trial
+    #${pythonPackages.python.interpreter} setup.py trial
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/pdnsd/default.nix b/pkgs/tools/networking/pdnsd/default.nix
index 40d57cd65b63..b1e7e92e815c 100644
--- a/pkgs/tools/networking/pdnsd/default.nix
+++ b/pkgs/tools/networking/pdnsd/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
     sed -i 's/.*(cachedir).*/:/' Makefile.in
   '';
 
+  configureFlags = [ "--enable-ipv6" ];
+
   meta = { 
     description = "Permanent DNS caching";
     homepage = http://www.phys.uu.nl/~rombouts/pdnsd.html;
diff --git a/pkgs/tools/networking/quicktun/default.nix b/pkgs/tools/networking/quicktun/default.nix
new file mode 100644
index 000000000000..f07cfe4d0724
--- /dev/null
+++ b/pkgs/tools/networking/quicktun/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, libsodium }:
+
+stdenv.mkDerivation rec {
+  name = "quicktun-${version}";
+  version = "2.2.4";
+
+  src = fetchFromGitHub {
+    owner = "UCIS";
+    repo = "QuickTun";
+    rev = "980fe1b8c718d6df82af1d57b56140c0e541dbe0";
+    sha256 = "0m7gvlgs1mhyw3c8s2dg05j7r7hz8kjpb0sk245m61ir9dmwlf8i";
+  };
+
+  CFLAGS = "-fPIE -fPIC -pie -fstack-protector-all -D_FORTIFY_SOURCE=2 -O2 -Wl,-z,relro,-z,now";
+
+  buildInputs = [ libsodium ];
+
+  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
+
+  buildPhase = "bash build.sh";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    rm out/quicktun*tgz
+    cp -v out/quicktun* $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Very simple, yet secure VPN software";
+    homepage = "http://wiki.ucis.nl/QuickTun";
+    maintainers = [ maintainers.fpletz ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/networking/radvd/default.nix b/pkgs/tools/networking/radvd/default.nix
index 63f82f12787d..84db01dc4ba1 100644
--- a/pkgs/tools/networking/radvd/default.nix
+++ b/pkgs/tools/networking/radvd/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libdaemon, bison, flex, check }:
 
 stdenv.mkDerivation rec {
-  name = "radvd-2.11";
-  
+  name = "radvd-2.12";
+
   src = fetchurl {
     url = "http://www.litech.org/radvd/dist/${name}.tar.xz";
-    sha256 = "1k2sbfs4w2lkgz2mh4zh66fgahjrn2hvxcpfc091bykrzj464qq4";
+    sha256 = "0yvlzzdxz2h5fm7grbf1xfs8008bzcdjpficm2cf52g771rffw5h";
   };
 
   buildInputs = [ pkgconfig libdaemon bison flex check ];
@@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
     description = "IPv6 Router Advertisement Daemon";
     platforms = platforms.linux;
     license = licenses.bsdOriginal;
-    maintainers = with maintainers; [ wkennington ];
+    maintainers = with maintainers; [ wkennington fpletz ];
   };
 }
diff --git a/pkgs/tools/networking/ratools/default.nix b/pkgs/tools/networking/ratools/default.nix
new file mode 100644
index 000000000000..423c58450c56
--- /dev/null
+++ b/pkgs/tools/networking/ratools/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "ratools-${version}";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "danrl";
+    repo = "ratools";
+    rev = "v${version}";
+    sha256 = "07m45bn9lzgbfihmxic23wqp73nxg5ihrvkigr450jq6gzvgwawq";
+  };
+
+  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
+
+  makeFlags = "-C src";
+
+  installPhase = ''
+    mkdir -p $out/{bin,sbin,share/man/man8}
+    cp bin/ractl $out/bin
+    cp bin/rad $out/sbin
+    cp man/* $out/share/man/man8
+  '';
+
+  meta = with stdenv.lib; {
+    description = "a fast, dynamic, multi-threading framework for IPv6 Router Advertisements";
+    homepage = https://github.com/danrl/ratools;
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.fpletz ];
+  };
+}
diff --git a/pkgs/tools/networking/s3cmd/default.nix b/pkgs/tools/networking/s3cmd/default.nix
index 2287671aef2e..0ff741ef7e2c 100644
--- a/pkgs/tools/networking/s3cmd/default.nix
+++ b/pkgs/tools/networking/s3cmd/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "s3cmd-1.5.2";
   
   src = fetchurl {
diff --git a/pkgs/tools/networking/shadowsocks-libev/default.nix b/pkgs/tools/networking/shadowsocks-libev/default.nix
new file mode 100644
index 000000000000..e49f2e5dd63a
--- /dev/null
+++ b/pkgs/tools/networking/shadowsocks-libev/default.nix
@@ -0,0 +1,42 @@
+{ withPolarSSL ? false
+, stdenv, fetchurl, zlib
+, openssl ? null
+, polarssl ? null
+}:
+
+let
+
+  version = "2.4.5";
+  sha256 = "08bf7f240ee39fa700aac636ca84b65f2f0cfbcfa63a0783afb05872940067e2";
+
+in
+
+stdenv.mkDerivation rec {
+  inherit version;
+  name = "shadowsocks-libev-${version}";
+  src = fetchurl {
+    url = "https://github.com/shadowsocks/shadowsocks-libev/archive/v${version}.tar.gz";
+    inherit sha256;
+  };
+
+  buildInputs = [ zlib ]
+                ++ stdenv.lib.optional (!withPolarSSL) openssl
+                ++ stdenv.lib.optional withPolarSSL polarssl;
+
+  configureFlags = stdenv.lib.optional (withPolarSSL)
+                     [ "--with-crypto-library=polarssl"
+                       "--with-polarssl=${polarssl}"
+                     ];
+
+  meta = {
+    description = "A lightweight secured SOCKS5 proxy";
+    longDescription = ''
+      Shadowsocks-libev is a lightweight secured SOCKS5 proxy for embedded devices and low-end boxes.
+      It is a port of Shadowsocks created by @clowwindy, which is maintained by @madeye and @linusyang.
+    '';
+    homepage = https://github.com/shadowsocks/shadowsocks-libev;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = [ stdenv.lib.maintainers.nfjinjing ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/networking/sipsak/default.nix b/pkgs/tools/networking/sipsak/default.nix
new file mode 100644
index 000000000000..941e1d809ba1
--- /dev/null
+++ b/pkgs/tools/networking/sipsak/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, autoreconfHook, c-ares, openssl ? null }:
+
+stdenv.mkDerivation rec {
+  name = "sipsak-${version}";
+  version = "4.1.2.1";
+
+  buildInputs = [
+    autoreconfHook
+    openssl
+    c-ares
+  ];
+
+  src = fetchurl {
+    url = "https://github.com/sipwise/sipsak/archive/mr${version}.tar.gz";
+    sha256 = "769fe59966b1962b67aa35aad7beb9a2110ebdface36558072a05c6405fb5374";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/sipwise/sipsak;
+    description = "SIP Swiss army knife";
+    license = stdenv.lib.licenses.gpl2;
+  };
+
+}
+
diff --git a/pkgs/tools/networking/socat/2.x.nix b/pkgs/tools/networking/socat/2.x.nix
index a1cea0348367..1f25e002159f 100644
--- a/pkgs/tools/networking/socat/2.x.nix
+++ b/pkgs/tools/networking/socat/2.x.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl }:
 
 stdenv.mkDerivation rec {
-  name = "socat-2.0.0-b8";
+  name = "socat-2.0.0-b9";
 
   src = fetchurl {
     url = "http://www.dest-unreach.org/socat/download/${name}.tar.bz2";
-    sha256 = "1slkv1hhcp9a6c88h6yl5cs0z9g60fp2ja6865s6kywqp6fmf168";
+    sha256 = "1ll395xjv4byvv0k2zjbxk8vp3mg3y2w5paa05wv553bqsjv1vs9";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/networking/socat/default.nix b/pkgs/tools/networking/socat/default.nix
index c672801262be..f57af20739d6 100644
--- a/pkgs/tools/networking/socat/default.nix
+++ b/pkgs/tools/networking/socat/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl }:
 
 stdenv.mkDerivation rec {
-  name = "socat-1.7.3.0";
+  name = "socat-1.7.3.1";
 
   src = fetchurl {
     url = "http://www.dest-unreach.org/socat/download/${name}.tar.bz2";
-    sha256 = "011ydc0x8camplf8l6mshs3v5fswarld8v0wf7grz6rjq18fhrq7";
+    sha256 = "1apvi7sahcl44arnq1ad2y6lbfqnmvx7nhz9i3rkk0f382anbnnj";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/networking/speedtest-cli/default.nix b/pkgs/tools/networking/speedtest-cli/default.nix
index 4e1391dfeb97..10b35298461b 100644
--- a/pkgs/tools/networking/speedtest-cli/default.nix
+++ b/pkgs/tools/networking/speedtest-cli/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "speedtest-cli-${version}";
   version = "0.3.1";
   namePrefix = "";
diff --git a/pkgs/tools/networking/sshpass/default.nix b/pkgs/tools/networking/sshpass/default.nix
index 3a8e106155f3..95212b00beb1 100644
--- a/pkgs/tools/networking/sshpass/default.nix
+++ b/pkgs/tools/networking/sshpass/default.nix
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
     homepage = http://sourceforge.net/projects/sshpass/;
     description = "Non-interactive ssh password auth";
     maintainers = [ stdenv.lib.maintainers.madjar ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/tinc/pre.nix b/pkgs/tools/networking/tinc/pre.nix
index b8a58db2d1e3..5473a637b6a3 100644
--- a/pkgs/tools/networking/tinc/pre.nix
+++ b/pkgs/tools/networking/tinc/pre.nix
@@ -1,17 +1,23 @@
 { stdenv, fetchgit, autoreconfHook, texinfo, ncurses, readline, zlib, lzo, openssl }:
 
 stdenv.mkDerivation rec {
-  name = "tinc-1.1pre-2015-11-07";
+  name = "tinc-${version}";
+  rev = "d8ca00fe40ff4b6d87e7e64c273f536fab462356";
+  version = "1.1pre-2016-01-28-${builtins.substring 0 7 rev}";
 
   src = fetchgit {
+    inherit rev;
     url = "git://tinc-vpn.org/tinc";
-    rev = "bdd84660c756437cf3bc8f64adf612055acc84ea";
-    sha256 = "1vkpdn3gjlrrm0rfpbhz410mpcq16xy0ilvgkxsgifc9xgdgflmn";
+    sha256 = "0wqgzbqlafbkmj71vhfrqwmp61g95amzd43py47kq3fn5aiybcqf";
   };
 
   nativeBuildInputs = [ autoreconfHook texinfo ];
   buildInputs = [ ncurses readline zlib lzo openssl ];
 
+  prePatch = ''
+    substituteInPlace configure.ac --replace UNKNOWN ${version}
+  '';
+
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
@@ -28,6 +34,6 @@ stdenv.mkDerivation rec {
     homepage="http://www.tinc-vpn.org/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ wkennington ];
+    maintainers = with maintainers; [ wkennington fpletz ];
   };
 }
diff --git a/pkgs/tools/networking/tlsdate/default.nix b/pkgs/tools/networking/tlsdate/default.nix
index eea7dfcccacf..ae23978a7563 100644
--- a/pkgs/tools/networking/tlsdate/default.nix
+++ b/pkgs/tools/networking/tlsdate/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Secure parasitic rdate replacement";
     homepage = https://github.com/ioerror/tlsdate;
-    platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.tv ];
+    platforms = stdenv.lib.platforms.allBut [ "darwin" ];
   };
 }
diff --git a/pkgs/tools/networking/traceroute/default.nix b/pkgs/tools/networking/traceroute/default.nix
index 2ce8d1cde3eb..d98c9996882d 100644
--- a/pkgs/tools/networking/traceroute/default.nix
+++ b/pkgs/tools/networking/traceroute/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "2.0.21";
 
   src = fetchurl {
-    url = "http://downloads.sourceforge.net/traceroute/${name}.tar.gz";
+    url = "mirror://sourceforge/traceroute/${name}.tar.gz";
     sha256 = "1q4n9s42nfcc4fmnwmrsiabvqrcaagiagmmqj9r5hfmi63pr7b7p";
   };
 
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index 51b7285e3e8a..f639044a195d 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "unbound-${version}";
-  version = "1.5.3";
+  version = "1.5.8";
 
   src = fetchurl {
     url = "http://unbound.net/downloads/${name}.tar.gz";
-    sha256 = "1jly2apag4yg649w3flaq73wdrcfyxnhx5py9j73y7adxmswigbn";
+    sha256 = "33567a20f73e288f8daa4ec021fbb30fe1824b346b34f12677ad77899ecd09be";
   };
 
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
@@ -19,6 +19,9 @@ stdenv.mkDerivation rec {
     "--with-libevent=${libevent.dev}"
     "--localstatedir=/var"
     "--sysconfdir=/etc"
+    "--sbindir=\${out}/bin"
+    "--enable-pie"
+    "--enable-relro-now"
   ];
 
   installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf" ];
@@ -33,7 +36,7 @@ stdenv.mkDerivation rec {
     description = "Validating, recursive, and caching DNS resolver";
     license = licenses.bsd3;
     homepage = http://www.unbound.net;
-    maintainers = [ stdenv.lib.maintainers.ehmry ];
+    maintainers = with maintainers; [ ehmry fpletz ];
     platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix
index ef420961a1f3..8ad930951607 100644
--- a/pkgs/tools/networking/urlwatch/default.nix
+++ b/pkgs/tools/networking/urlwatch/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, python3Packages }:
 
-python3Packages.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   name = "urlwatch-2.0";
 
   src = fetchurl {
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index 63531a85ffc1..e05a65d6967e 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -3,12 +3,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "1.1.0";
+  version = "1.1.4";
   name = "zerotierone";
 
   src = fetchurl {
     url = "https://github.com/zerotier/ZeroTierOne/archive/${version}.tar.gz";
-    sha256 = "2d7ff178bd7fd284ebb7011d8a91bde51befda60f100eb5429a2dcb6626cf676";
+    sha256 = "10aw0dlkmprdvph3aqkqximxqkryf0l4jcnv2bbm7f1qvclqihva";
   };
 
   preConfigure = ''
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
       substituteInPlace ./make-linux.mk \
           --replace 'CXX=$(shell which clang++ g++ c++ 2>/dev/null | head -n 1)' "CC=${gcc}/bin/g++";
       substituteInPlace ./osdep/LinuxEthernetTap.cpp \
-          --replace '/sbin/ip' "${iproute}/bin/ip"
+          --replace 'execlp("ip",' 'execlp("${iproute}/bin/ip",'
   '';
 
   buildInputs = [ openssl lzo zlib gcc iproute ];
diff --git a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
index f315ca478765..aa109ab80fe3 100644
--- a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
@@ -1,5 +1,5 @@
 { stdenv, makeWrapper, buildEnv,
-  git, subversion, mercurial, bazaar, cvs, unzip, curl, gnused, coreutils
+  git, subversion, mercurial, bazaar, cvs, unzip, curl, gnused, coreutils, nix
 }:
 
 let mkPrefetchScript = tool: src: deps:
@@ -18,6 +18,7 @@ let mkPrefetchScript = tool: src: deps:
         wrapArgs="$wrapArgs --prefix PATH : $dep/bin"
       done
       wrapArgs="$wrapArgs --prefix PATH : ${gnused}/bin"
+      wrapArgs="$wrapArgs --prefix PATH : ${nix}/bin" # For nix-hash
       wrapArgs="$wrapArgs --set HOME : /homeless-shelter"
       wrapProgram $out/bin/$name $wrapArgs
     '';
diff --git a/pkgs/tools/package-management/nixops/generic.nix b/pkgs/tools/package-management/nixops/generic.nix
index b9b9eee8d160..023ec07dba16 100644
--- a/pkgs/tools/package-management/nixops/generic.nix
+++ b/pkgs/tools/package-management/nixops/generic.nix
@@ -3,7 +3,7 @@
 , src, version
 }:
 
-pythonPackages.buildPythonPackage {
+pythonPackages.buildPythonApplication {
   name = "nixops-${version}";
   namePrefix = "";
 
diff --git a/pkgs/tools/package-management/nox/default.nix b/pkgs/tools/package-management/nox/default.nix
index 92edd915ad79..89e72307ead1 100644
--- a/pkgs/tools/package-management/nox/default.nix
+++ b/pkgs/tools/package-management/nox/default.nix
@@ -1,6 +1,6 @@
 { lib, pythonPackages, fetchurl }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "nox-${version}";
   version = "0.0.2";
   namePrefix = "";
diff --git a/pkgs/tools/package-management/python2nix/default.nix b/pkgs/tools/package-management/python2nix/default.nix
index 1e84a81e5241..0bc92314e02c 100644
--- a/pkgs/tools/package-management/python2nix/default.nix
+++ b/pkgs/tools/package-management/python2nix/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "python2nix-20140927";
  
   src = fetchFromGitHub {
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index 1f36d54ff50a..0a172935bb59 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -1,15 +1,16 @@
 { stdenv, fetchurl, zlib, bzip2, libiconv, libxml2, openssl, ncurses, curl
-, libmilter }:
+, libmilter, pcre, freshclamConf ? null }:
+
 stdenv.mkDerivation rec {
   name = "clamav-${version}";
-  version = "0.98.7";
+  version = "0.99";
 
   src = fetchurl {
     url = "mirror://sourceforge/clamav/clamav-${version}.tar.gz";
-    sha256 = "0wp2ad8km4cqmlndni5ljv7q3lfxm6y4r3giv0yf23bl0yvif918";
+    sha256 = "1abyg349yr31z764jcgx67q5v098jrkrj88bqkzmys6xza62qyfj";
   };
 
-  buildInputs = [ zlib bzip2 libxml2 openssl ncurses curl libiconv libmilter ];
+  buildInputs = [ zlib bzip2 libxml2 openssl ncurses curl libiconv libmilter pcre ];
 
   configureFlags = [
     "--with-zlib=${zlib}"
@@ -19,10 +20,13 @@ stdenv.mkDerivation rec {
     "--with-openssl=${openssl}"
     "--with-libncurses-prefix=${ncurses}"
     "--with-libcurl=${curl}"
+    "--with-pcre=${pcre}"
     "--enable-milter"
     "--disable-clamav"
   ];
 
+  fixupPhase = if (freshclamConf != null) then ''echo "${freshclamConf}" > $out/etc/freshclam.conf'' else "";
+
   meta = with stdenv.lib; {
     homepage = http://www.clamav.net;
     description = "Antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats";
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 667157978a38..9443eac01da7 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -2,7 +2,7 @@
 
 let version = "0.9.3"; in
 
-pythonPackages.buildPythonPackage {
+pythonPackages.buildPythonApplication {
   name = "fail2ban-${version}";
   namePrefix = "";
 
diff --git a/pkgs/tools/security/gencfsm/default.nix b/pkgs/tools/security/gencfsm/default.nix
index ff55411f32a5..fb9030036200 100644
--- a/pkgs/tools/security/gencfsm/default.nix
+++ b/pkgs/tools/security/gencfsm/default.nix
@@ -2,12 +2,12 @@
 , glib , gnome3, gtk3, libgnome_keyring, vala, wrapGAppsHook, xorg }:
 
 stdenv.mkDerivation rec {
-  version = "1.8.15";
+  version = "1.8.16";
   name = "gnome-encfs-manager-${version}";
 
   src = fetchurl {
     url = "https://launchpad.net/gencfsm/trunk/1.8/+download/gnome-encfs-manager_${version}.tar.gz";
-    sha256 = "1iryli6fgw6a45abkrjacfac7dwjhbrhw652rqf0s183373db0mx";
+    sha256 = "06sz6zcmvxkqww5gx4brcqs4hlpy9d8sal9nmw0pdsvh8k5vmpgn";
   };
 
   buildInputs = [ autoconf automake intltool libtool pkgconfig vala glib encfs
diff --git a/pkgs/tools/security/knockknock/default.nix b/pkgs/tools/security/knockknock/default.nix
index 6258f2315904..089dd0de2bda 100644
--- a/pkgs/tools/security/knockknock/default.nix
+++ b/pkgs/tools/security/knockknock/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, python, pycrypto, hping }:
+{ stdenv, fetchFromGitHub, buildPythonApplication, python, pycrypto, hping }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   rev  = "bf14bbff";
   name = "knockknock-r${rev}";
 
diff --git a/pkgs/tools/security/kpcli/default.nix b/pkgs/tools/security/kpcli/default.nix
index 58ea52bc4c08..7303db34649d 100644
--- a/pkgs/tools/security/kpcli/default.nix
+++ b/pkgs/tools/security/kpcli/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
     wrapProgram $out/bin/kpcli --set PERL5LIB \
       "${with perlPackages; stdenv.lib.makePerlPath [
-         Clone CryptRijndael SortNaturally TermReadKey TermShellUI FileKeePass TermReadLineGnu XMLParser
+         CaptureTiny Clipboard Clone CryptRijndael SortNaturally TermReadKey TermShellUI FileKeePass TermReadLineGnu XMLParser
       ]}"
   '';
 
diff --git a/pkgs/tools/security/munge/default.nix b/pkgs/tools/security/munge/default.nix
index f94eaabd2a4b..96847c983f12 100644
--- a/pkgs/tools/security/munge/default.nix
+++ b/pkgs/tools/security/munge/default.nix
@@ -1,11 +1,13 @@
-{ stdenv, fetchurl, gnused, perl, libgcrypt, zlib, bzip2 }:
+{ stdenv, fetchFromGitHub, gnused, perl, libgcrypt, zlib, bzip2 }:
 
 stdenv.mkDerivation rec {
   name = "munge-0.5.11";
 
-  src = fetchurl {
-    url = "http://munge.googlecode.com/files/${name}.tar.bz2";
-    sha256 = "19aijdrjij2g0xpqgl198jh131j94p4gvam047gsdc0wz0a5c1wf";
+  src = fetchFromGitHub {
+    owner = "dun";
+    repo = "munge";
+    rev = "${name}";
+    sha256 = "02847p742nq3cb8ayf5blrdicybq72nfsnggqkxr33cpppmsfwg9";
   };
 
   buildInputs = [ gnused perl libgcrypt zlib bzip2 ];
@@ -20,11 +22,10 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    homepage = http://code.google.com/p/munge/;
     description = ''
       An authentication service for creating and validating credentials
     '';
     maintainers = [ stdenv.lib.maintainers.rickynils ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/pamtester/default.nix b/pkgs/tools/security/pamtester/default.nix
index cdafed534085..21f58ef517ee 100644
--- a/pkgs/tools/security/pamtester/default.nix
+++ b/pkgs/tools/security/pamtester/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ pam ];
 
   meta = with stdenv.lib; {
-    description = "Utility program to test the PAM facility.";
+    description = "Utility program to test the PAM facility";
     homepage = http://pamtester.sourceforge.net/;
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/pkgs/tools/security/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix
index 8ccf1ba7ccd1..97e66a250d7c 100644
--- a/pkgs/tools/security/pinentry/default.nix
+++ b/pkgs/tools/security/pinentry/default.nix
@@ -10,11 +10,11 @@ let
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "pinentry-0.9.6";
+  name = "pinentry-0.9.7";
 
   src = fetchurl {
     url = "mirror://gnupg/pinentry/${name}.tar.bz2";
-    sha256 = "0rhyw1vk28kgasjp22myf7m2q8kycw82d65pr9kgh93z17lj849a";
+    sha256 = "1cp7wjqr6nx31mdclr61s2h84ijqjl0ph99kgj4vyawpjj1j1633";
   };
 
   buildInputs = [ libgpgerror libassuan libcap gtk2 ncurses qt4 ];
diff --git a/pkgs/tools/security/sshuttle/default.nix b/pkgs/tools/security/sshuttle/default.nix
index b7cefdd86ea4..b78eb43782ed 100644
--- a/pkgs/tools/security/sshuttle/default.nix
+++ b/pkgs/tools/security/sshuttle/default.nix
@@ -1,7 +1,7 @@
 { stdenv, pythonPackages, fetchurl, makeWrapper, pandoc
 , coreutils, iptables, nettools, openssh, procps }:
   
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "sshuttle-${version}";
   version = "0.76";
 
diff --git a/pkgs/tools/security/tor/torbrowser.nix b/pkgs/tools/security/tor/torbrowser.nix
index ced4d868ee03..dfde2b57aa69 100644
--- a/pkgs/tools/security/tor/torbrowser.nix
+++ b/pkgs/tools/security/tor/torbrowser.nix
@@ -16,13 +16,13 @@ let
 
 in stdenv.mkDerivation rec {
   name = "tor-browser-${version}";
-  version = "5.5";
+  version = "5.5.2";
 
   src = fetchurl {
     url = "https://archive.torproject.org/tor-package-archive/torbrowser/${version}/tor-browser-linux${if stdenv.is64bit then "64" else "32"}-${version}_en-US.tar.xz";
     sha256 = if stdenv.is64bit then
-      "0glv2zffls1as71idbfg3l34kmsv48f3sk59swl6k8l75nvxlzjk" else
-      "0xbsixxs1hj0ydmazgi796xgvlsvbrkh8vfgaiyqcvgx4vf4ggwf";
+      "1zb5fssy9c37cb0ab083f2jifw47wnck32nc6zpijmqm059yccxc" else
+      "1gjc6prx3n769nj4gzhfjrb2qpw3ypvsb3pp0a130db1ssgnzqqr";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/tools/security/volatility/default.nix b/pkgs/tools/security/volatility/default.nix
index 6aa3a9d5ea11..bed7d5369579 100644
--- a/pkgs/tools/security/volatility/default.nix
+++ b/pkgs/tools/security/volatility/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, buildPythonPackage, pycrypto }:
+{ stdenv, fetchurl, buildPythonApplication, pycrypto }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   namePrefix = "";
   name = "volatility-2.4";
 
diff --git a/pkgs/tools/system/amtterm/default.nix b/pkgs/tools/system/amtterm/default.nix
new file mode 100644
index 000000000000..3fe85be35f71
--- /dev/null
+++ b/pkgs/tools/system/amtterm/default.nix
@@ -0,0 +1,27 @@
+{ fetchurl, stdenv, makeWrapper, perl, perlPackages }:
+
+let version = "1.4"; in
+stdenv.mkDerivation {
+  name = "amtterm-"+version;
+
+  buildInputs = with perlPackages; [ perl SOAPLite ];
+  nativeBuildInputs = [ makeWrapper ];
+
+  src = fetchurl {
+    url = "https://www.kraxel.org/cgit/amtterm/snapshot/amtterm-a75e48e010e92dc5540e2142efc445ccb0ab1a42.tar.gz";
+    sha256 = "0i4ny5dyf3fy3sd65zw9v4xxw3rc3qyn8r8y8gwwgankj6iqkqp4";
+  };
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  postInstall =
+    "wrapProgram $out/bin/amttool --prefix PERL5LIB : $PERL5LIB";
+
+  meta = with stdenv.lib;
+    { description = "Intel AMTĀ® SoL client + tools";
+      homepage = "https://www.kraxel.org/cgit/amtterm/";
+      license = licenses.gpl2;
+      maintainers = [ maintainers.ehmry ];
+      platforms = platforms.linux;
+    };
+}
diff --git a/pkgs/tools/system/collectd/default.nix b/pkgs/tools/system/collectd/default.nix
index ff64b54b9857..a1d676d708df 100644
--- a/pkgs/tools/system/collectd/default.nix
+++ b/pkgs/tools/system/collectd/default.nix
@@ -19,7 +19,7 @@
 , libtool ? null
 , lm_sensors ? null
 , lvm2 ? null
-, mysql ? null
+, libmysql ? null
 , postgresql ? null
 , protobufc ? null
 , python ? null
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     pkgconfig curl iptables libatasmart libcredis libdbi libgcrypt libmemcached
     cyrus_sasl libmodbus libnotify gdk_pixbuf liboping libpcap libsigrok libvirt
-    lm_sensors libxml2 lvm2 mysql.lib postgresql protobufc rabbitmq-c rrdtool
+    lm_sensors libxml2 lvm2 libmysql postgresql protobufc rabbitmq-c rrdtool
     varnish yajl jdk libtool python udev
   ];
 
diff --git a/pkgs/tools/system/honcho/default.nix b/pkgs/tools/system/honcho/default.nix
index b52c1c0f636d..5aca54ad9182 100644
--- a/pkgs/tools/system/honcho/default.nix
+++ b/pkgs/tools/system/honcho/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchzip, pythonPackages, buildPythonPackage }:
+{ stdenv, fetchzip, pythonPackages, buildPythonApplication }:
 
-let honcho = buildPythonPackage rec {
+let honcho = buildPythonApplication rec {
   name = "honcho-${version}";
   version = "0.6.6";
   namePrefix = "";
diff --git a/pkgs/tools/system/proot/default.nix b/pkgs/tools/system/proot/default.nix
index be3cffb47eb3..aecab9c35d08 100644
--- a/pkgs/tools/system/proot/default.nix
+++ b/pkgs/tools/system/proot/default.nix
@@ -1,31 +1,44 @@
-{ stdenv, fetchgit, talloc, enableStatic ? false }:
+{ stdenv, fetchFromGitHub, talloc, docutils
+, enableStatic ? false }:
 
 stdenv.mkDerivation rec {
   name = "proot-${version}";
-  version = "4.0.3";
+  version = "5.1.0";
 
-  src = fetchgit {
-    url = "git://github.com/cedric-vincent/proot.git";
-    rev = "refs/tags/v${version}";
-    sha256 = "95a52b2fa47b2891eb2c6b6b0e14d42f6d48f6fd5181e359b007831f1a046e84";
+  src = fetchFromGitHub {
+    sha256 = "0azsqis99gxldmbcg43girch85ysg4hwzf0h1b44bmapnsm89fbz";
+    rev = "v${version}";
+    repo = "proot";
+    owner = "cedric-vincent";
   };
 
   buildInputs = [ talloc ];
+  nativeBuildInputs = [ docutils ];
+
+  enableParallelBuilding = true;
 
   preBuild = stdenv.lib.optionalString enableStatic ''
     export LDFLAGS="-static -L${talloc}/lib"
-  '' + ''
-    substituteInPlace GNUmakefile --replace "/usr/local" "$out"
   '';
 
-  sourceRoot = "proot/src";
+  makeFlags = [ "-C src" ];
+
+  postBuild = ''
+    make -C doc proot/man.1
+  '';
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  postInstall = ''
+    install -Dm644 doc/proot/man.1 $out/share/man/man1/proot.1
+  '';
 
   meta = with stdenv.lib; {
     homepage = http://proot.me;
     description = "User-space implementation of chroot, mount --bind and binfmt_misc";
     platforms = platforms.linux;
     license = licenses.gpl2;
-    maintainers = [ maintainers.ianwookim ];
+    maintainers = with maintainers; [ ianwookim nckx ];
   };
 }
 
diff --git a/pkgs/tools/text/gist/Gemfile b/pkgs/tools/text/gist/Gemfile
deleted file mode 100644
index 18500f898f1c..000000000000
--- a/pkgs/tools/text/gist/Gemfile
+++ /dev/null
@@ -1,2 +0,0 @@
-source "https://rubygems.org"
-gem "gist"
diff --git a/pkgs/tools/text/gist/Gemfile.lock b/pkgs/tools/text/gist/Gemfile.lock
deleted file mode 100644
index 7414da072ada..000000000000
--- a/pkgs/tools/text/gist/Gemfile.lock
+++ /dev/null
@@ -1,10 +0,0 @@
-GEM
-  remote: https://rubygems.org/
-  specs:
-    gist (4.4.2)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  gist
diff --git a/pkgs/tools/text/gist/default.nix b/pkgs/tools/text/gist/default.nix
index 223ba59eecbe..ca9de0590ca2 100644
--- a/pkgs/tools/text/gist/default.nix
+++ b/pkgs/tools/text/gist/default.nix
@@ -1,15 +1,27 @@
-{ stdenv, lib, bundlerEnv }:
-
-let version = "4.4.2";
-in bundlerEnv {
-  name = "gist-${version}";
-  gemfile = ./Gemfile;
-  lockfile = ./Gemfile.lock;
-  gemset = ./gemset.nix;
+{ buildRubyGem, lib, ruby, makeWrapper }:
+
+buildRubyGem rec {
+  inherit ruby;
+  name = "${gemName}-${version}";
+  gemName = "gist";
+  version = "4.5.0";
+  sha256 = "0k9bgjdmnr14whmjx6c8d5ak1dpazirj96hk5ds69rl5d9issw0l";
+
+  buildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    # Fix the default ruby wrapper
+    makeWrapper $out/${ruby.gemPath}/bin/gist $out/bin/gist \
+      --set GEM_PATH $out/${ruby.gemPath}:${ruby}/${ruby.gemPath}
+  '';
+
+  dontStrip = true;
+
   meta = with lib; {
-    homepage = "http://defunkt.io/gist/";
     description = "upload code to https://gist.github.com (or github enterprise)";
-    platforms = platforms.all;
+    homepage = "http://defunkt.io/gist/";
     license = licenses.mit;
+    maintainers = with maintainers; [ zimbatm ];
+    platforms = ruby.meta.platforms;
   };
 }
diff --git a/pkgs/tools/text/gist/gemset.nix b/pkgs/tools/text/gist/gemset.nix
deleted file mode 100644
index 961f96dcb97f..000000000000
--- a/pkgs/tools/text/gist/gemset.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "gist" = {
-    version = "4.4.2";
-    source = {
-      type = "gem";
-      sha256 = "0lr4rywpm549llk0ypdpb3sjdpqw9snzwzqc3dggg8qn5wj69k81";
-    };
-  };
-}
\ No newline at end of file
diff --git a/pkgs/tools/text/grin/default.nix b/pkgs/tools/text/grin/default.nix
index 2ea4a9501452..da3a77e8d2e4 100644
--- a/pkgs/tools/text/grin/default.nix
+++ b/pkgs/tools/text/grin/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "grin-1.2.1";
   namePrefix = "";
 
diff --git a/pkgs/tools/text/popfile/default.nix b/pkgs/tools/text/popfile/default.nix
index 3310c1a2fe4a..4048093a3958 100644
--- a/pkgs/tools/text/popfile/default.nix
+++ b/pkgs/tools/text/popfile/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An email classification system that automatically sorts messages and fights spam.";
+    description = "An email classification system that automatically sorts messages and fights spam";
     homepage = http://getpopfile.org;
     license = stdenv.lib.licenses.gpl2;
 
diff --git a/pkgs/tools/text/wring/default.nix b/pkgs/tools/text/wring/default.nix
new file mode 100644
index 000000000000..038456f82c5b
--- /dev/null
+++ b/pkgs/tools/text/wring/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, callPackage, makeWrapper, nodejs, phantomjs2 }:
+
+let
+  self = (
+    callPackage ../../../top-level/node-packages.nix {
+      generated = callPackage ./node-packages.nix { inherit self; };
+      overrides = {
+        "wring" = {
+          buildInputs = [ makeWrapper phantomjs2 ];
+
+          postInstall = ''
+            wrapProgram "$out/bin/wring" \
+              --prefix PATH : ${phantomjs2}/bin
+          '';
+
+          meta = with stdenv.lib; {
+            description = "Command-line tool for extracting content from webpages using CSS Selectors, XPath, and JS expressions";
+            homepage = https://github.com/osener/wring;
+            license = licenses.mit;
+            platforms = platforms.darwin ++ platforms.linux;
+            maintainers = [ maintainers.osener ];
+          };
+        };
+      };
+    });
+in self.wring
diff --git a/pkgs/tools/text/wring/node-packages.json b/pkgs/tools/text/wring/node-packages.json
new file mode 100644
index 000000000000..9c0e17129286
--- /dev/null
+++ b/pkgs/tools/text/wring/node-packages.json
@@ -0,0 +1 @@
+[ "wring" ]
diff --git a/pkgs/tools/text/wring/node-packages.nix b/pkgs/tools/text/wring/node-packages.nix
new file mode 100644
index 000000000000..b3761bd33cb6
--- /dev/null
+++ b/pkgs/tools/text/wring/node-packages.nix
@@ -0,0 +1,24 @@
+{ self, fetchurl, fetchgit ? null, lib }:
+
+{
+  by-spec."wring"."*" =
+    self.by-version."wring"."1.0.0";
+  by-version."wring"."1.0.0" = self.buildNodePackage {
+    name = "wring-1.0.0";
+    version = "1.0.0";
+    bin = true;
+    src = fetchurl {
+      url = "http://registry.npmjs.org/wring/-/wring-1.0.0.tgz";
+      name = "wring-1.0.0.tgz";
+      sha1 = "3d8ebe894545bf0b42946fdc84c61e37ae657ce1";
+    };
+    deps = {
+    };
+    optionalDependencies = {
+    };
+    peerDependencies = [];
+    os = [ ];
+    cpu = [ ];
+  };
+  "wring" = self.by-version."wring"."1.0.0";
+}
diff --git a/pkgs/tools/text/yaml-merge/default.nix b/pkgs/tools/text/yaml-merge/default.nix
new file mode 100644
index 000000000000..00673341cfc6
--- /dev/null
+++ b/pkgs/tools/text/yaml-merge/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+stdenv.mkDerivation rec {
+  name= "yaml-merge-2016-02-16";
+
+  src = fetchFromGitHub {
+    owner = "abbradar";
+    repo = "yaml-merge";
+    rev = "4eef7b68632d79dec369b4eff5a8c63f995f81dc";
+    sha256 = "0mwda2shk43i6f22l379fcdchmb07fm7nf4i2ii7fk3ihkhb8dgp";
+  };
+
+  pythonPath = with pythonPackages; [ pyyaml ];
+  nativeBuildInputs = [ pythonPackages.wrapPython ];
+
+  installPhase = ''
+    install -Dm755 yaml-merge.py $out/bin/yaml-merge
+    wrapPythonPrograms
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Merge YAML data files";
+    homepage = https://github.com/abbradar/yaml-merge;
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/tools/typesetting/odpdown/default.nix b/pkgs/tools/typesetting/odpdown/default.nix
index 9ff33b2fb698..fe1e915e27bf 100644
--- a/pkgs/tools/typesetting/odpdown/default.nix
+++ b/pkgs/tools/typesetting/odpdown/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, buildPythonPackage, libreoffice, lpod, lxml, mistune, pillow
+{ stdenv, fetchurl, buildPythonApplication, libreoffice, lpod, lxml, mistune, pillow
 , pygments
 }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
 
   name = "odpdown-${version}";
   version = "0.4.1";
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.nix b/pkgs/tools/typesetting/pdf2djvu/default.nix
index 96106d06ca55..5f344628e376 100644
--- a/pkgs/tools/typesetting/pdf2djvu/default.nix
+++ b/pkgs/tools/typesetting/pdf2djvu/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, djvulibre, poppler, fontconfig, libjpeg }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.3";
+  version = "0.9.4";
   name = "pdf2djvu-${version}";
 
   src = fetchurl {
     url = "https://bitbucket.org/jwilk/pdf2djvu/downloads/${name}.tar.xz";
-    sha256 = "0xvh9kzfym5vsma9bhr1w1lla31qdqfaqc9q25vqpl921shvfpnh";
+    sha256 = "1a1gwr6yzbiximbpgg4rc69dq8g3jmxwcbcwqk0fhfbgzj1j4w65";
   };
 
   buildInputs = [ pkgconfig djvulibre poppler fontconfig libjpeg ];
diff --git a/pkgs/tools/typesetting/pdfgrep/default.nix b/pkgs/tools/typesetting/pdfgrep/default.nix
index ff3bad12bc52..e6c63e029561 100644
--- a/pkgs/tools/typesetting/pdfgrep/default.nix
+++ b/pkgs/tools/typesetting/pdfgrep/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "1.3.1";
 
   src = fetchurl {
-    url = "http://downloads.sourceforge.net/project/pdfgrep/${version}/${name}.tar.gz";
+    url = "mirror://sourceforge/project/pdfgrep/${version}/${name}.tar.gz";
     sha256 = "6e8bcaf8b219e1ad733c97257a97286a94124694958c27506b2ea7fc8e532437";
   };
 
diff --git a/pkgs/tools/typesetting/tex/pgf/3.x.nix b/pkgs/tools/typesetting/tex/pgf/3.x.nix
index 5c0c387a340b..32c73c4a43cc 100644
--- a/pkgs/tools/typesetting/tex/pgf/3.x.nix
+++ b/pkgs/tools/typesetting/tex/pgf/3.x.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   name = "pgf-3.00";
 
   src = fetchurl {
-    url = http://downloads.sourceforge.net/project/pgf/pgf/version%203.0.0/pgf_3.0.0.tds.zip;
+    url = mirror://sourceforge/project/pgf/pgf/version%203.0.0/pgf_3.0.0.tds.zip;
     sha256 = "0kj769hyp4z2zmdv3f8xv443wcfqn5nkkbzxzqgfxjizlz81aav7";
   };
 
diff --git a/pkgs/tools/video/vnc2flv/default.nix b/pkgs/tools/video/vnc2flv/default.nix
index 55f54e2cf3de..3675b5ab091b 100644
--- a/pkgs/tools/video/vnc2flv/default.nix
+++ b/pkgs/tools/video/vnc2flv/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "vnc2flv-20100207";
   namePrefix = "";
 
diff --git a/pkgs/tools/virtualization/cloud-init/default.nix b/pkgs/tools/virtualization/cloud-init/default.nix
index af2779e59e36..34b6226ff98d 100644
--- a/pkgs/tools/virtualization/cloud-init/default.nix
+++ b/pkgs/tools/virtualization/cloud-init/default.nix
@@ -2,7 +2,7 @@
 
 let version = "0.7.6";
 
-in pythonPackages.buildPythonPackage rec {
+in pythonPackages.buildPythonApplication rec {
   name = "cloud-init-${version}";
   namePrefix = "";
 
diff --git a/pkgs/tools/virtualization/euca2ools/default.nix b/pkgs/tools/virtualization/euca2ools/default.nix
index a87dd5683229..7a93d96036f4 100644
--- a/pkgs/tools/virtualization/euca2ools/default.nix
+++ b/pkgs/tools/virtualization/euca2ools/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchgit, which, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "euca2ools-2.1.4";
   namePrefix = "";