summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2016-02-27 00:08:08 +0000
committerRobin Gloster <mail@glob.in>2016-02-27 00:08:08 +0000
commit3477e662e60ba80a777f9126ba65ca6e9e0fcdf8 (patch)
tree26aa99e97f980701131668a00a24fcb85c5cd8a8 /pkgs/tools
parentb4dadff5429d0bf47bcdafff14dd3d0032039699 (diff)
parent766ad682f146a755b460dd87006912a96d915bcd (diff)
downloadnixpkgs-3477e662e60ba80a777f9126ba65ca6e9e0fcdf8.tar
nixpkgs-3477e662e60ba80a777f9126ba65ca6e9e0fcdf8.tar.gz
nixpkgs-3477e662e60ba80a777f9126ba65ca6e9e0fcdf8.tar.bz2
nixpkgs-3477e662e60ba80a777f9126ba65ca6e9e0fcdf8.tar.lz
nixpkgs-3477e662e60ba80a777f9126ba65ca6e9e0fcdf8.tar.xz
nixpkgs-3477e662e60ba80a777f9126ba65ca6e9e0fcdf8.tar.zst
nixpkgs-3477e662e60ba80a777f9126ba65ca6e9e0fcdf8.zip
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/arandr/default.nix2
-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/admin/cli53/default.nix4
-rw-r--r--pkgs/tools/admin/letsencrypt/default.nix2
-rw-r--r--pkgs/tools/admin/simp_le/default.nix2
-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/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.nix2
-rw-r--r--pkgs/tools/backup/obnam/default.nix2
-rw-r--r--pkgs/tools/backup/s3ql/default.nix2
-rw-r--r--pkgs/tools/backup/wal-e/default.nix2
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix8
-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/gitfs/default.nix4
-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/graphics/dpic/default.nix29
-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.nix39
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix39
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix32
-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.nix (renamed from pkgs/tools/inputmethods/ibus-table/default.nix)11
-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.nix24
-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/coreutils/default.nix38
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix2
-rw-r--r--pkgs/tools/misc/gti/default.nix27
-rw-r--r--pkgs/tools/misc/i3minator/default.nix4
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix2
-rw-r--r--pkgs/tools/misc/vdirsyncer/default.nix2
-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/curl/default.nix4
-rw-r--r--pkgs/tools/networking/ddclient/default.nix3
-rw-r--r--pkgs/tools/networking/getmail/default.nix4
-rw-r--r--pkgs/tools/networking/gmvault/default.nix4
-rw-r--r--pkgs/tools/networking/httpie/default.nix2
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix4
-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/offlineimap/default.nix4
-rw-r--r--pkgs/tools/networking/p2p/tahoe-lafs/default.nix2
-rw-r--r--pkgs/tools/networking/radvd/default.nix6
-rw-r--r--pkgs/tools/networking/ratools/default.nix32
-rw-r--r--pkgs/tools/networking/s3cmd/default.nix2
-rw-r--r--pkgs/tools/networking/speedtest-cli/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/urlwatch/default.nix2
-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/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/munge/default.nix13
-rw-r--r--pkgs/tools/security/pinentry/default.nix4
-rw-r--r--pkgs/tools/security/sshuttle/default.nix2
-rw-r--r--pkgs/tools/security/volatility/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/typesetting/odpdown/default.nix4
-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
98 files changed, 860 insertions, 502 deletions
diff --git a/pkgs/tools/X11/arandr/default.nix b/pkgs/tools/X11/arandr/default.nix
index a6af7b99651..68355d0d8aa 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/winswitch/default.nix b/pkgs/tools/X11/winswitch/default.nix
index ad7ac7c64c8..767edbc47d5 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 c5b8db591c4..e0e12051bff 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 6e485dc0a05..5b81ec0a7ed 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/admin/cli53/default.nix b/pkgs/tools/admin/cli53/default.nix
index 2fa54796e4c..3248ac63bf7 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 2c74a677b91..516fc20c5a7 100644
--- a/pkgs/tools/admin/letsencrypt/default.nix
+++ b/pkgs/tools/admin/letsencrypt/default.nix
@@ -1,6 +1,6 @@
 { stdenv, pythonPackages, fetchurl, dialog }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   version = "0.1.0";
   name = "letsencrypt-${version}";
 
diff --git a/pkgs/tools/admin/simp_le/default.nix b/pkgs/tools/admin/simp_le/default.nix
index f6b352056fa..77c45e0ad3f 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 {
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 00000000000..90ddeff9790
--- /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 570f1904ee2..2313f27f2e5 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/audio/beets/alternatives-plugin.nix b/pkgs/tools/audio/beets/alternatives-plugin.nix
index 1b0c9b3992b..75f74e71be5 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 91407331d7c..4532d642411 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 00000000000..0e2b11a1f06
--- /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 0e2462c5ec8..4f659428c00 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 1ea8095bd38..208c3d4b1aa 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, python3Packages, acl, lz4, openssl }:
 
-python3Packages.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   name = "borgbackup-${version}";
   version = "0.30.0";
   namePrefix = "";
diff --git a/pkgs/tools/backup/obnam/default.nix b/pkgs/tools/backup/obnam/default.nix
index c287efe8e11..0df9fa9d39f 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 b455c672b10..e94af89a7c6 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/wal-e/default.nix b/pkgs/tools/backup/wal-e/default.nix
index 025a998aed4..3b66ac1b491 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 82d9f085f78..428c751571c 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -1,9 +1,9 @@
 { stdenv, lib, fetchurl, intltool, pkgconfig, pythonPackages, bluez, polkit, gtk3
-, obex_data_server, xdg_utils, libnotify, dconf
+, obex_data_server, xdg_utils, libnotify, dconf, gsettings_desktop_schemas, dnsmasq, dhcp
 , withPulseAudio ? true, libpulseaudio }:
 
 let
-  binPath = lib.makeBinPath [ xdg_utils ];
+  binPath = lib.makeBinPath [ xdg_utils dnsmasq dhcp ];
 
 in stdenv.mkDerivation rec {
   name = "blueman-${version}";
@@ -16,7 +16,7 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ intltool pkgconfig pythonPackages.wrapPython pythonPackages.cython ];
 
-  buildInputs = [ bluez gtk3 pythonPackages.python libnotify dconf ]
+  buildInputs = [ bluez gtk3 pythonPackages.python libnotify dconf gsettings_desktop_schemas ]
                 ++ pythonPath
                 ++ lib.optional withPulseAudio libpulseaudio;
 
@@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
 
   pythonPath = with pythonPackages; [ dbus pygobject3 ];
 
-  propagatedUserEnvPkgs = [ obex_data_server ];
+  propagatedUserEnvPkgs = [ obex_data_server dconf ];
 
   configureFlags = [ (lib.enableFeature withPulseAudio "pulseaudio") ];
 
diff --git a/pkgs/tools/compression/dtrx/default.nix b/pkgs/tools/compression/dtrx/default.nix
index 343709dd957..d412a4e433e 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 e095b2d4e07..0d5ad10efcf 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 536cc26779b..3435a8c1432 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/gitfs/default.nix b/pkgs/tools/filesystems/gitfs/default.nix
index cd79f5db85b..9c44394697f 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/netatalk/default.nix b/pkgs/tools/filesystems/netatalk/default.nix
index d5a0cbbc419..7e4ea032bb3 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 00000000000..d1a9dcb0b3b
--- /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 d4129f4d390..d3b3b716ffa 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, udev ? null
 }:
 
 assert useNixUdev -> udev != 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 01a3caafc5d..1d983816895 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 udev;
@@ -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 7bc3f54c236..86479126d39 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 67f318c863e..721e5185be3 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 895ae99c309..ce00367c771 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/graphics/dpic/default.nix b/pkgs/tools/graphics/dpic/default.nix
new file mode 100644
index 00000000000..ea73a0e95b9
--- /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/inputmethods/fcitx-engines/fcitx-anthy/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-anthy/default.nix
new file mode 100644
index 00000000000..88ba436207c
--- /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 00000000000..58695434cb6
--- /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 00000000000..54b5335d9bb
--- /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 00000000000..ff42bbbbcc8
--- /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 00000000000..5366fe55877
--- /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 00000000000..40ef0b33aea
--- /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 2099220f2a1..00000000000
--- 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 fad7862cf3b..428e96e8674 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 d4efb332696..a0ae2618954 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 0b2382315a5..00000000000
--- 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 00000000000..89039745fd9
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, makeWrapper, ibus, anthy, intltool, pkgconfig, glib, gobjectIntrospection,
+  python, pythonPackages, gtk3, libtool, automake, autoconf }:
+
+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 ];
+  };
+
+  preConfigure = "./autogen.sh --prefix=$out";
+
+  configureFlags = "--with-anthy-zipcode=${anthy}/share/anthy/zipcode.t";
+
+  buildInputs = [ makeWrapper ibus anthy intltool pkgconfig glib gobjectIntrospection
+    python pythonPackages.pygobject3 gtk3 libtool automake autoconf ];
+
+  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 = fetchFromGitHub {
+    owner  = "ibus";
+    repo   = "ibus-anthy";
+    rev    = version;
+    sha256 = "1laxwpnhgihv4dz5cgcz6d0a0880r93n7039ciz1m53hdzapwi4a";
+  };
+}
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 00000000000..b682196d5d0
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, gnome, fetchFromGitHub, ibus, libhangul, autoconf, automake, gettext, libtool, librsvg,
+  intltool, pkgconfig, pythonPackages, makeWrapper, gtk3, python }:
+
+stdenv.mkDerivation rec {
+  name = "ibus-hangul-${version}";
+  version = "1.5.0";
+
+  src = fetchFromGitHub {
+    owner  = "choehwanjin";
+    repo   = "ibus-hangul";
+    rev    = version;
+    sha256 = "12l2spr32biqdbz01bzkamgq5gskbi6cd7ai343wqyy1ibjlkmp8";
+  };
+
+  buildInputs = [ ibus libhangul autoconf gettext automake libtool
+    intltool pkgconfig python pythonPackages.pygobject3 gtk3 makeWrapper ];
+
+  preConfigure = ''
+    autoreconf --verbose --force --install
+    intltoolize --automake --force --copy
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/ibus-setup-hangul \
+      --prefix PYTHONPATH : $PYTHONPATH \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix GDK_PIXBUF_MODULE_FILE : ${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache \
+      --prefix LD_LIBRARY_PATH : ${libhangul}/lib
+  '';
+
+  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 00000000000..30329c4306f
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, ibus, m17n_lib, m17n_db, automake, autoconf,
+  gettext, libtool, pkgconfig, python, pythonPackages }:
+
+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 automake autoconf gettext 
+    libtool pkgconfig python pythonPackages.pygobject3 
+  ];
+
+  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 20789a33a0c..e06d2b004ee 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 f356bcdee85..f3e3973a2c3 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-table/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
index 58b890b0c92..244169cf46b 100644
--- a/pkgs/tools/inputmethods/ibus-table/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -12,10 +12,11 @@ stdenv.mkDerivation rec {
   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 ];
+    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-qt/default.nix b/pkgs/tools/inputmethods/ibus/ibus-qt.nix
index 95c32532e40..95c32532e40 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 00000000000..270a2db7412
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus/wrapper.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildEnv, ibus, makeWrapper, plugins, hicolor_icon_theme }:
+
+let
+drv = buildEnv {
+  name = "ibus-with-plugins-" + (builtins.parseDrvName ibus.name).version;
+
+  paths = [ ibus hicolor_icon_theme ] ++ plugins;
+
+  postBuild = ''
+    # TODO: This could be avoided if buildEnv could be forced to create all directories
+    if [ -L $out/bin ]; then
+      rm $out/bin
+      mkdir $out/bin
+      for i in ${ibus}/bin/*; do
+        ln -s $i $out/bin
+      done
+    fi
+    wrapProgram $out/bin/ibus \
+      --set IBUS_COMPONENT_PATH "$out/share/ibus/component/"
+    wrapProgram $out/bin/ibus-daemon \
+      --set IBUS_COMPONENT_PATH "$out/share/ibus/component/"
+  '';
+  };
+in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })
diff --git a/pkgs/tools/inputmethods/uim/data-hook.patch b/pkgs/tools/inputmethods/uim/data-hook.patch
new file mode 100644
index 00000000000..07fdf873316
--- /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 19de302e7b1..99a415407c1 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 c2d08b661e3..00000000000
--- 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 219cb2139f5..e479167dc15 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/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index 8833f32c5a8..4a944f69878 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, gmp ? null
+{ lib, stdenv, fetchurl, perl, gmp ? null
 , aclSupport ? false, acl ? null
 , selinuxSupport? false, libselinux ? null, libsepol ? null
 , autoconf, automake114x, texinfo
@@ -8,37 +8,27 @@
 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";
     };
 
     # FIXME needs gcc 4.9 in bootstrap tools
     hardening_stackprotector = false;
 
-    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
-       '';
+    '';
 
     configureFlags = optionalString stdenv.isSunOS "ac_cv_func_inotify_init=no";
 
@@ -86,20 +76,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/;
@@ -112,11 +100,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/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 4c40afbaa0d..e54e83ef492 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -4,7 +4,7 @@
 , enableBloat ? false
 }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   name = "diffoscope-${version}";
   version = "49";
 
diff --git a/pkgs/tools/misc/gti/default.nix b/pkgs/tools/misc/gti/default.nix
new file mode 100644
index 00000000000..39e28073abc
--- /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/i3minator/default.nix b/pkgs/tools/misc/i3minator/default.nix
index 0c3907b89bf..45fd27b7f4f 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/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index 78835afddef..e3adbfe3887 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 df7cbc04a14..d6789bf52bc 100644
--- a/pkgs/tools/misc/vdirsyncer/default.nix
+++ b/pkgs/tools/misc/vdirsyncer/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pythonPackages }:
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   version = "0.9.0";
   name = "vdirsyncer-${version}";
   namePrefix = "";
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 8baa5cc9174..a7bb5a3083d 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 09e4531d925..8cb6172d87b 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/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 910d86066d9..c75cceb46a5 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -18,11 +18,11 @@ assert scpSupport -> libssh2 != null;
 assert c-aresSupport -> c-ares != null;
 
 stdenv.mkDerivation rec {
-  name = "curl-7.47.0";
+  name = "curl-7.47.1";
 
   src = fetchurl {
     url = "http://ngcobalt13.uxnr.de/mirror/curl/${name}.tar.bz2";
-    sha256 = "0riz70pjg82gbcfi2ndvsksb2dv55g31ir8piph2p6zvhy9ny29b";
+    sha256 = "13z9gba3q2ybp50z0gdkzhwcx9m0i7qkvm278yz4pql2jfml7inx";
   };
 
   nativeBuildInputs = [ pkgconfig perl ];
diff --git a/pkgs/tools/networking/ddclient/default.nix b/pkgs/tools/networking/ddclient/default.nix
index 1664fbf3707..53a0f4c3e6d 100644
--- a/pkgs/tools/networking/ddclient/default.nix
+++ b/pkgs/tools/networking/ddclient/default.nix
@@ -32,5 +32,8 @@ buildPerlPackage rec {
     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/getmail/default.nix b/pkgs/tools/networking/getmail/default.nix
index 8dd288b5588..d11e154817d 100644
--- a/pkgs/tools/networking/getmail/default.nix
+++ b/pkgs/tools/networking/getmail/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, buildPythonPackage }:
+{ stdenv, fetchurl, buildPythonApplication }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   version = "4.49.0";
   name = "getmail-${version}";
   namePrefix = "";
diff --git a/pkgs/tools/networking/gmvault/default.nix b/pkgs/tools/networking/gmvault/default.nix
index aa52e4f3ae2..4ccd09ac555 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 cc1531961b3..a3c52f7dd50 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/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index 8eb96913bca..d2bc7b4e772 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -3,11 +3,11 @@
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "miniupnpd-1.9.20160212";
+  name = "miniupnpd-1.9.20160222";
 
   src = fetchurl {
     url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
-    sha256 = "1fsl46f7lrhpb597m0a905nwijpf188cchgg6pz39fx2mgjjjk9l";
+    sha256 = "0q694dla4v36qsc0x50xqg2jjhwdi9pl7r2gl10yvhkahxqx1ng7";
     name = "${name}.tar.gz";
   };
 
diff --git a/pkgs/tools/networking/nbd/default.nix b/pkgs/tools/networking/nbd/default.nix
index 6cb75152af0..967b3863f20 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 c86b59d4835..c23b818e048 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/offlineimap/default.nix b/pkgs/tools/networking/offlineimap/default.nix
index 5331f71a96a..00061b3aeff 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/p2p/tahoe-lafs/default.nix b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
index dae985febbb..5f1d6b4ef1a 100644
--- a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
+++ b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
@@ -5,7 +5,7 @@
 # store path. The problem appears to be non-fatal, but there's probably
 # some loss of functionality because of it.
 
-pythonPackages.buildPythonPackage rec {
+pythonPackages.buildPythonApplication rec {
   version = "1.10.2";
   name = "tahoe-lafs-${version}";
   namePrefix = "";
diff --git a/pkgs/tools/networking/radvd/default.nix b/pkgs/tools/networking/radvd/default.nix
index 0dbbd759911..8b0b3d9a736 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 ];
@@ -17,6 +17,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 00000000000..423c58450c5
--- /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 2287671aef2..0ff741ef7e2 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/speedtest-cli/default.nix b/pkgs/tools/networking/speedtest-cli/default.nix
index 4e1391dfeb9..10b35298461 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/tinc/pre.nix b/pkgs/tools/networking/tinc/pre.nix
index b8a58db2d1e..5473a637b6a 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 eea7dfcccac..ae23978a756 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/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix
index ef420961a1f..8ad93095160 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/package-management/nixops/generic.nix b/pkgs/tools/package-management/nixops/generic.nix
index b9b9eee8d16..023ec07dba1 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 92edd915ad7..89e72307ead 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 1e84a81e524..0bc92314e02 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/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 667157978a3..9443eac01da 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 ff55411f32a..fb903003620 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 6258f231590..089dd0de2bd 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/munge/default.nix b/pkgs/tools/security/munge/default.nix
index f94eaabd2a4..96847c983f1 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/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix
index 8ccf1ba7ccd..97e66a250d7 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 b7cefdd86ea..b78eb43782e 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/volatility/default.nix b/pkgs/tools/security/volatility/default.nix
index 6aa3a9d5ea1..bed7d536957 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/honcho/default.nix b/pkgs/tools/system/honcho/default.nix
index b52c1c0f636..5aca54ad918 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 be3cffb47eb..aecab9c35d0 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 18500f898f1..00000000000
--- 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 7414da072ad..00000000000
--- 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 223ba59eecb..ca9de0590ca 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 961f96dcb97..00000000000
--- 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 2ea4a950145..da3a77e8d2e 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/typesetting/odpdown/default.nix b/pkgs/tools/typesetting/odpdown/default.nix
index 9ff33b2fb69..fe1e915e27b 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/video/vnc2flv/default.nix b/pkgs/tools/video/vnc2flv/default.nix
index 55f54e2cf3d..3675b5ab091 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 af2779e59e3..34b6226ff98 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 a87dd568322..7a93d96036f 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 = "";