about summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/arandr/default.nix28
-rw-r--r--pkgs/tools/X11/autocutsel/default.nix2
-rw-r--r--pkgs/tools/X11/bgs/default.nix24
-rw-r--r--pkgs/tools/X11/keynav/default.nix2
-rw-r--r--pkgs/tools/X11/winswitch/default.nix2
-rw-r--r--pkgs/tools/X11/x2x/default.nix2
-rw-r--r--pkgs/tools/X11/xpra/default.nix1
-rw-r--r--pkgs/tools/admin/analog/default.nix2
-rw-r--r--pkgs/tools/archivers/zpaq/default.nix15
-rw-r--r--pkgs/tools/archivers/zpaq/zpaqd.nix49
-rw-r--r--pkgs/tools/archivers/zpaq/zpaqd.upstream5
-rw-r--r--pkgs/tools/backup/httrack/default.nix2
-rw-r--r--pkgs/tools/backup/obnam/default.nix2
-rw-r--r--pkgs/tools/backup/rsnapshot/default.nix22
-rw-r--r--pkgs/tools/compression/gzrt/default.nix23
-rw-r--r--pkgs/tools/compression/lrzip/default.nix4
-rw-r--r--pkgs/tools/filesystems/archivemount/default.nix2
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/default.nix3
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix10
-rw-r--r--pkgs/tools/filesystems/netatalk/default.nix27
-rw-r--r--pkgs/tools/filesystems/nixpart/default.nix1
-rw-r--r--pkgs/tools/graphics/argyllcms/default.nix2
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix10
-rw-r--r--pkgs/tools/graphics/cuneiform/default.nix1
-rw-r--r--pkgs/tools/graphics/ditaa/default.nix41
-rw-r--r--pkgs/tools/graphics/dmtx/default.nix2
-rw-r--r--pkgs/tools/graphics/optipng/default.nix4
-rw-r--r--pkgs/tools/graphics/pngquant/default.nix26
-rw-r--r--pkgs/tools/inputmethods/fcitx/default.nix12
-rw-r--r--pkgs/tools/misc/autojump/default.nix11
-rw-r--r--pkgs/tools/misc/autorandr/default.nix40
-rw-r--r--pkgs/tools/misc/byobu/default.nix2
-rw-r--r--pkgs/tools/misc/colord/default.nix57
-rw-r--r--pkgs/tools/misc/coreutils/8.19.nix70
-rw-r--r--pkgs/tools/misc/coreutils/default.nix23
-rw-r--r--pkgs/tools/misc/detox/default.nix2
-rw-r--r--pkgs/tools/misc/disper/default.nix2
-rw-r--r--pkgs/tools/misc/expect/default.nix2
-rw-r--r--pkgs/tools/misc/fdupes/default.nix2
-rw-r--r--pkgs/tools/misc/gnuvd/default.nix2
-rw-r--r--pkgs/tools/misc/grc/default.nix2
-rw-r--r--pkgs/tools/misc/gsmartcontrol/default.nix11
-rw-r--r--pkgs/tools/misc/gummiboot/default.nix21
-rw-r--r--pkgs/tools/misc/gummiboot/no-usr.patch79
-rw-r--r--pkgs/tools/misc/hdf5/default.nix4
-rw-r--r--pkgs/tools/misc/logstash/default.nix6
-rw-r--r--pkgs/tools/misc/mcrypt/default.nix7
-rw-r--r--pkgs/tools/misc/megacli/default.nix35
-rw-r--r--pkgs/tools/misc/memtest86+/default.nix (renamed from pkgs/tools/misc/memtest86/plus.nix)18
-rw-r--r--pkgs/tools/misc/ncdu/default.nix2
-rw-r--r--pkgs/tools/misc/ngrok/default.nix94
-rw-r--r--pkgs/tools/misc/plantuml/default.nix37
-rw-r--r--pkgs/tools/misc/ponysay/default.nix2
-rw-r--r--pkgs/tools/misc/pv/default.nix4
-rw-r--r--pkgs/tools/misc/refind/default.nix4
-rw-r--r--pkgs/tools/misc/rockbox-utility/default.nix10
-rw-r--r--pkgs/tools/misc/screen/default.nix5
-rw-r--r--pkgs/tools/misc/stow/default.nix2
-rw-r--r--pkgs/tools/misc/ttmkfdir/default.nix2
-rw-r--r--pkgs/tools/misc/unclutter/default.nix2
-rw-r--r--pkgs/tools/misc/units/default.nix2
-rw-r--r--pkgs/tools/misc/venus/default.nix7
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/aria/default.nix2
-rw-r--r--pkgs/tools/networking/axel/default.nix2
-rw-r--r--pkgs/tools/networking/bwm-ng/default.nix2
-rw-r--r--pkgs/tools/networking/chrony/default.nix2
-rw-r--r--pkgs/tools/networking/connect/default.nix2
-rw-r--r--pkgs/tools/networking/curl/7.15.nix75
-rw-r--r--pkgs/tools/networking/filegive/default.nix7
-rw-r--r--pkgs/tools/networking/fping/default.nix2
-rw-r--r--pkgs/tools/networking/gmvault/default.nix2
-rw-r--r--pkgs/tools/networking/haproxy/default.nix12
-rw-r--r--pkgs/tools/networking/mosh/default.nix10
-rw-r--r--pkgs/tools/networking/mu/default.nix36
-rw-r--r--pkgs/tools/networking/netcat-openbsd/default.nix32
-rw-r--r--pkgs/tools/networking/netrw/default.nix2
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager/default.nix7
-rw-r--r--pkgs/tools/networking/network-manager/openconnect.nix2
-rw-r--r--pkgs/tools/networking/network-manager/openvpn.nix2
-rw-r--r--pkgs/tools/networking/network-manager/pptp.nix2
-rw-r--r--pkgs/tools/networking/network-manager/vpnc.nix6
-rw-r--r--pkgs/tools/networking/networkmanagement/default.nix4
-rw-r--r--pkgs/tools/networking/nylon/default.nix2
-rw-r--r--pkgs/tools/networking/offlineimap/default.nix2
-rw-r--r--pkgs/tools/networking/openssh/default.nix2
-rw-r--r--pkgs/tools/networking/p2p/amule/default.nix2
-rw-r--r--pkgs/tools/networking/p2p/bit-tornado/default.nix2
-rw-r--r--pkgs/tools/networking/pdsh/default.nix2
-rw-r--r--pkgs/tools/networking/proxychains/default.nix2
-rw-r--r--pkgs/tools/networking/tinc/default.nix4
-rw-r--r--pkgs/tools/networking/trickle/default.nix2
-rw-r--r--pkgs/tools/networking/unbound/default.nix2
-rw-r--r--pkgs/tools/package-management/cabal-install/1.18.0.2.nix (renamed from pkgs/tools/package-management/cabal-install/1.18.0.1.nix)4
-rw-r--r--pkgs/tools/package-management/nix-repl/default.nix35
-rw-r--r--pkgs/tools/package-management/nix/default.nix6
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix8
-rw-r--r--pkgs/tools/package-management/nixops/default.nix6
-rw-r--r--pkgs/tools/security/apg/default.nix2
-rw-r--r--pkgs/tools/security/clamav/default.nix2
-rw-r--r--pkgs/tools/security/fail2ban/default.nix68
-rw-r--r--pkgs/tools/security/gnupg/default.nix6
-rw-r--r--pkgs/tools/security/gnupg1/default.nix27
-rw-r--r--pkgs/tools/security/haveged/default.nix27
-rw-r--r--pkgs/tools/security/mkpasswd/default.nix4
-rw-r--r--pkgs/tools/security/pass/default.nix23
-rw-r--r--pkgs/tools/security/prey/default.nix46
-rw-r--r--pkgs/tools/security/pwgen/default.nix4
-rw-r--r--pkgs/tools/security/seccure/default.nix (renamed from pkgs/tools/security/seccure/0.4.nix)0
-rw-r--r--pkgs/tools/security/sshuttle/default.nix34
-rw-r--r--pkgs/tools/security/tcpcrypt/0001-Run-tcpcryptd-under-uid-93-instead-of-666.patch25
-rw-r--r--pkgs/tools/security/tcpcrypt/default.nix10
-rw-r--r--pkgs/tools/security/tor/torsocks.nix13
-rw-r--r--pkgs/tools/security/torbutton/default.nix7
-rw-r--r--pkgs/tools/system/gptfdisk/default.nix13
-rw-r--r--pkgs/tools/system/logcheck/default.nix2
-rw-r--r--pkgs/tools/system/lshw/default.nix2
-rw-r--r--pkgs/tools/system/pciutils/default.nix7
-rw-r--r--pkgs/tools/system/rsyslog/default.nix3
-rw-r--r--pkgs/tools/system/sleuthkit/default.nix56
-rw-r--r--pkgs/tools/system/syslog-ng/default.nix3
-rw-r--r--pkgs/tools/system/vboot_reference/default.nix2
-rw-r--r--pkgs/tools/text/poedit/default.nix20
-rw-r--r--pkgs/tools/text/source-highlight/default.nix2
-rw-r--r--pkgs/tools/text/wgetpaste/default.nix2
-rw-r--r--pkgs/tools/text/xml/html-xml-utils/default.nix20
-rw-r--r--pkgs/tools/text/xml/html-xml-utils/no-Boolean-type.patch20
-rw-r--r--pkgs/tools/typesetting/asciidoc/default.nix257
-rw-r--r--pkgs/tools/typesetting/fop/default.nix56
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/auctex/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/dblatex/default.nix45
-rw-r--r--pkgs/tools/typesetting/tex/tex4ht/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/texlive/aggregate.nix17
-rw-r--r--pkgs/tools/typesetting/tex/texlive/cm-super.nix20
-rw-r--r--pkgs/tools/typesetting/tex/texlive/context.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix52
-rw-r--r--pkgs/tools/typesetting/tex/texlive/extra.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/moderncv.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/moderntimeline.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/pgf.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/xcolor.nix12
144 files changed, 1614 insertions, 528 deletions
diff --git a/pkgs/tools/X11/arandr/default.nix b/pkgs/tools/X11/arandr/default.nix
new file mode 100644
index 000000000000..8c3886cebff3
--- /dev/null
+++ b/pkgs/tools/X11/arandr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, python, xrandr, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "arandr-0.1.7.1";
+
+  src = fetchurl {
+    url = "http://christian.amsuess.com/tools/arandr/files/${name}.tar.gz";
+    sha256 = "1nj84ww1kf024n5xgxwqmzscv8i1gixx7nmg05dbjj2xs28alwxb";
+  };
+
+  buildPhase = ''
+    rm -rf data/po/*
+    python setup.py build
+  '';
+
+  # no tests
+  doCheck = false;
+
+  buildInputs = [pythonPackages.docutils];
+  propagatedBuildInputs = [ xrandr pythonPackages.pygtk ];
+
+  meta = {
+    homepage = http://christian.amsuess.com/tools/arandr/;
+    description = "A simple visual front end for XRandR";
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ stdenv.lib.maintainers.iElectric ];
+  };
+}
diff --git a/pkgs/tools/X11/autocutsel/default.nix b/pkgs/tools/X11/autocutsel/default.nix
index f4776933e53d..bc7679b1670e 100644
--- a/pkgs/tools/X11/autocutsel/default.nix
+++ b/pkgs/tools/X11/autocutsel/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://www.nongnu.org/autocutsel/";
-    description = "Autocutsel tracks changes in the server's cutbuffer and CLIPBOARD selection.";
+    description = "Tracks changes in the server's cutbuffer and CLIPBOARD selection";
     license = "GPLv2+";
     platforms = with stdenv.lib.platforms; all;
   };
diff --git a/pkgs/tools/X11/bgs/default.nix b/pkgs/tools/X11/bgs/default.nix
new file mode 100644
index 000000000000..0c6951aa3e76
--- /dev/null
+++ b/pkgs/tools/X11/bgs/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, libX11, libXinerama, imlib2}:
+
+stdenv.mkDerivation rec {
+
+  name = "bgs-${version}";
+  version = "0.5";
+
+  src = fetchurl {
+    url = "https://github.com/Gottox/bgs/archive/${version}.tar.gz";
+    sha256 = "67fe16e3483f30f940005856fbb3246e1f99cf58371470e0d6668a27acbaefb9";
+  };
+
+  buildInputs = [ libX11 libXinerama imlib2 ];
+
+  preConfigure = ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'';
+
+  meta = { 
+      description = "Extremely fast and small background setter for X";
+      license = "MIT";
+      platforms = with stdenv.lib.platforms; all;
+      maintainers = with stdenv.lib.maintainers; [pSub]; 
+  };
+}
+
diff --git a/pkgs/tools/X11/keynav/default.nix b/pkgs/tools/X11/keynav/default.nix
index 19de62990e2c..02b6321d18c8 100644
--- a/pkgs/tools/X11/keynav/default.nix
+++ b/pkgs/tools/X11/keynav/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    description = "A tool to generate X11 mouse clicks from keyboard.";
+    description = "Generate X11 mouse clicks from keyboard";
   };
 }
diff --git a/pkgs/tools/X11/winswitch/default.nix b/pkgs/tools/X11/winswitch/default.nix
index b53db509dafe..bd160940b573 100644
--- a/pkgs/tools/X11/winswitch/default.nix
+++ b/pkgs/tools/X11/winswitch/default.nix
@@ -38,6 +38,8 @@ let
     '';
 
     doCheck = false;
+
+    meta.platforms = stdenv.lib.platforms.mesaPlatforms;
   };
 in stdenv.lib.overrideDerivation base (b: {
   postFixup = b.postFixup + ''
diff --git a/pkgs/tools/X11/x2x/default.nix b/pkgs/tools/X11/x2x/default.nix
index 5d68e1da1ba9..237ea6140599 100644
--- a/pkgs/tools/X11/x2x/default.nix
+++ b/pkgs/tools/X11/x2x/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "x2x allows the keyboard, mouse on one X display to be used to control another X display.";
+    description = "Allows the keyboard, mouse on one X display to be used to control another X display";
     homepage = http://x2x.dottedmag.net;
     license = "BSD";
   };
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix
index 71c5d5f3a44e..b8995430f92a 100644
--- a/pkgs/tools/X11/xpra/default.nix
+++ b/pkgs/tools/X11/xpra/default.nix
@@ -40,5 +40,6 @@ buildPythonPackage rec {
   meta = {
     homepage = http://xpra.org/;
     description = "Persistent remote applications for X";
+    platforms = stdenv.lib.platforms.mesaPlatforms;
   };
 }
diff --git a/pkgs/tools/admin/analog/default.nix b/pkgs/tools/admin/analog/default.nix
index debd6e4c2b77..ec139e7240d3 100644
--- a/pkgs/tools/admin/analog/default.nix
+++ b/pkgs/tools/admin/analog/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "http://www.analog.cx/";
     license = "GPL";
-    description = "a powerful tool to generate web server statistics";
+    description = "Powerful tool to generate web server statistics";
     maintainers = [ stdenv.lib.maintainers.simons ];
     platforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/tools/archivers/zpaq/default.nix b/pkgs/tools/archivers/zpaq/default.nix
index 6b04fe172687..3159bae1826f 100644
--- a/pkgs/tools/archivers/zpaq/default.nix
+++ b/pkgs/tools/archivers/zpaq/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="zpaq";
-    version="625";
+    version="642";
     name="${baseName}-${version}";
-    hash="0d3ly8l6mzbqxkg68yz7mid3dr056fgr5n49rlkjwcfg533c5gwx";
-    url="http://mattmahoney.net/dc/zpaq625.zip";
-    sha256="0d3ly8l6mzbqxkg68yz7mid3dr056fgr5n49rlkjwcfg533c5gwx";
+    hash="020nd5gzzynhccldbf1kh4x1cc3445b7ig2cl30xvxaz16h1r2p5";
+    url="http://mattmahoney.net/dc/zpaq642.zip";
+    sha256="020nd5gzzynhccldbf1kh4x1cc3445b7ig2cl30xvxaz16h1r2p5";
   };
   buildInputs = [
     unzip
@@ -29,14 +29,13 @@ stdenv.mkDerivation {
   };
   sourceRoot = ".";
   buildPhase = ''
-    g++ -shared -O3 libzpaq.cpp divsufsort.c ${compileFlags} -o libzpaq.so
-    g++ -O3 -L. -L"$out/lib" -lzpaq zpaq.cpp -o zpaq
-    g++ -O3 -L. -L"$out/lib" -lzpaq zpaqd.cpp -o zpaqd
+    g++ -shared -O3 libzpaq.cpp ${compileFlags} -o libzpaq.so
+    g++ -O3 -L. -L"$out/lib" -lzpaq divsufsort.c zpaq.cpp -o zpaq
   '';
   installPhase = ''
     mkdir -p "$out"/{bin,include,lib,share/doc/zpaq}
     cp libzpaq.so "$out/lib"
-    cp zpaq zpaqd "$out/bin"
+    cp zpaq "$out/bin"
     cp libzpaq.h divsufsort.h "$out/include"
     cp readme.txt "$out/share/doc/zpaq"
   '';
diff --git a/pkgs/tools/archivers/zpaq/zpaqd.nix b/pkgs/tools/archivers/zpaq/zpaqd.nix
new file mode 100644
index 000000000000..cfb76d2ff9bf
--- /dev/null
+++ b/pkgs/tools/archivers/zpaq/zpaqd.nix
@@ -0,0 +1,49 @@
+{stdenv, fetchurl, unzip}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="zpaqd";
+    version="633";
+    name="${baseName}-${version}";
+    hash="00zgc4mcmsd3d4afgzmrp6ymcyy8gb9kap815d5a3f9zhhzkz4dx";
+    url="http://mattmahoney.net/dc/zpaqd633.zip";
+    sha256="00zgc4mcmsd3d4afgzmrp6ymcyy8gb9kap815d5a3f9zhhzkz4dx";
+  };
+  buildInputs = [
+    unzip
+  ];
+  isUnix = stdenv.isLinux || stdenv.isGNU || stdenv.isDarwin || stdenv.isBSD;
+  isx86 = stdenv.isi686 || stdenv.isx86_64;
+  compileFlags = ""
+    + (stdenv.lib.optionalString isUnix " -Dunix -pthread ")
+    + (stdenv.lib.optionalString (!isx86) " -DNOJIT ")
+    + " -DNDEBUG "
+    + " -fPIC "
+    ;
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  sourceRoot = ".";
+  buildPhase = ''
+    g++ -shared -O3 libzpaq.cpp ${compileFlags} -o libzpaq.so
+    g++ -O3 -L. -L"$out/lib" -lzpaq zpaqd.cpp -o zpaqd
+  '';
+  installPhase = ''
+    mkdir -p "$out"/{bin,include,lib,share/doc/zpaq}
+    cp libzpaq.so "$out/lib"
+    cp zpaqd "$out/bin"
+    cp libzpaq.h "$out/include"
+    cp readme_zpaqd.txt "$out/share/doc/zpaq"
+  '';
+  meta = {
+    inherit (s) version;
+    description = ''ZPAQ archiver decompressor and algorithm development tool'';
+    license = stdenv.lib.licenses.gpl3Plus ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/archivers/zpaq/zpaqd.upstream b/pkgs/tools/archivers/zpaq/zpaqd.upstream
new file mode 100644
index 000000000000..ef83c58e4600
--- /dev/null
+++ b/pkgs/tools/archivers/zpaq/zpaqd.upstream
@@ -0,0 +1,5 @@
+url http://mattmahoney.net/dc/zpaqutil.html
+version_link 'zpaqd[0-9]+[.]zip'
+version "[^0-9]*([0-9]+)[^0-9]*" '\1'
+name zpaqd
+attribute_name zpaqd
diff --git a/pkgs/tools/backup/httrack/default.nix b/pkgs/tools/backup/httrack/default.nix
index ecdf40be0a5a..c02a16d821ac 100644
--- a/pkgs/tools/backup/httrack/default.nix
+++ b/pkgs/tools/backup/httrack/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.httrack.com";
-    description = "HTTrack is a free (GPL, libre/free software) and easy-to-use offline browser utility.";
+    description = "Easy-to-use offline browser utility";
     license = "GPL";
   };
 }
diff --git a/pkgs/tools/backup/obnam/default.nix b/pkgs/tools/backup/obnam/default.nix
index 69927e015827..6d550e95a9df 100644
--- a/pkgs/tools/backup/obnam/default.nix
+++ b/pkgs/tools/backup/obnam/default.nix
@@ -18,7 +18,7 @@ pythonPackages.buildPythonPackage rec {
 
   meta = {
     homepage = http://liw.fi/obnam/;
-    description = "A backup program supporting deduplication, compression and encryption.";
+    description = "Backup program supporting deduplication, compression and encryption";
     maintainers = [ stdenv.lib.maintainers.rickynils ];
     platforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/tools/backup/rsnapshot/default.nix b/pkgs/tools/backup/rsnapshot/default.nix
index 3da2fad21f29..9b147d68230f 100644
--- a/pkgs/tools/backup/rsnapshot/default.nix
+++ b/pkgs/tools/backup/rsnapshot/default.nix
@@ -1,10 +1,25 @@
-{fetchurl, stdenv, perl, openssh, rsync, logger}:
+{ fetchurl, stdenv, writeText, perl, openssh, rsync, logger,
+  configFile ? "/etc/rsnapshot.conf" }:
 
+let patch = writeText "rsnapshot-config.patch" ''
+--- rsnapshot-program.pl	2013-10-05 20:31:08.715991442 +0200
++++ rsnapshot-program.pl	2013-10-05 20:31:42.496193633 +0200
+@@ -383,7 +383,7 @@
+ 	}
+ 	
+ 	# set global variable
+-	$config_file = $default_config_file;
++	$config_file = '${configFile}';
+ }
+ 
+ # accepts no args
+'';
+in
 stdenv.mkDerivation rec {
-  name = "rsnapshot-1.3.0";
+  name = "rsnapshot-1.3.1";
   src = fetchurl {
     url = "mirror://sourceforge/rsnapshot/${name}.tar.gz";
-    sha256 = "19p35ycm73a8vd4ccjpah18h5jagvcr11rqca6ya87sg8k0a5h9z";
+    sha256 = "0pn7vlg3yxl7xrvfwmp4zlrg3cckmlldq6qr5bs3b2b281zcgdll";
   };
 
   propagatedBuildInputs = [perl openssh rsync logger];
@@ -12,6 +27,7 @@ stdenv.mkDerivation rec {
   patchPhase = ''
     substituteInPlace "Makefile.in" --replace \
       "/usr/bin/pod2man" "${perl}/bin/pod2man"
+    patch -p0 <${patch}
   '';
 
   meta = {
diff --git a/pkgs/tools/compression/gzrt/default.nix b/pkgs/tools/compression/gzrt/default.nix
new file mode 100644
index 000000000000..44073f84a5d8
--- /dev/null
+++ b/pkgs/tools/compression/gzrt/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "gzrt-0.8";
+
+  src = fetchurl {
+    url = "http://www.urbanophile.com/arenn/coding/gzrt/${name}.tar.gz";
+    sha256 = "1vhzazj47xfpbfhzkwalz27cc0n5gazddmj3kynhk0yxv99xrdxh";
+  };
+
+  buildInputs = [ zlib ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp gzrecover $out/bin
+  '';
+
+  meta = {
+    homepage = http://www.urbanophile.com/arenn/hacking/gzrt/;
+    description = "The gzip Recovery Toolkit";
+    license = stdenv.lib.licenses.gpl3;
+  };
+}
diff --git a/pkgs/tools/compression/lrzip/default.nix b/pkgs/tools/compression/lrzip/default.nix
index 23b516e32e4d..6fd1ae97d960 100644
--- a/pkgs/tools/compression/lrzip/default.nix
+++ b/pkgs/tools/compression/lrzip/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, zlib, lzo, bzip2, nasm, perl}:
 
 stdenv.mkDerivation rec {
-  version = "0.614";
+  version = "0.616";
   name = "lrzip-${version}";
 
   src = fetchurl {
     url = "http://ck.kolivas.org/apps/lrzip/${name}.tar.bz2";
-    sha256 = "16i6mz2z6gx8xiva7zb0j78yvkwq1bjbdkl7w3i10195ll097ad8";
+    sha256 = "1bimlbsfzjvippbma08ifm1grcy9i7avryrkdvnvrfyqnj6mlbcq";
   };
 
   buildInputs = [ zlib lzo bzip2 nasm perl ];
diff --git a/pkgs/tools/filesystems/archivemount/default.nix b/pkgs/tools/filesystems/archivemount/default.nix
index c05d2e98af32..8c7593121bbe 100644
--- a/pkgs/tools/filesystems/archivemount/default.nix
+++ b/pkgs/tools/filesystems/archivemount/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   buildInputs = [ pkgconfig fuse libarchive ];
 
   meta = {
-    description = "Gateway between FUSE and libarchive: allows mounting of cpio, .tar.gz, .tar.bz2 archives.";
+    description = "Gateway between FUSE and libarchive: allows mounting of cpio, .tar.gz, .tar.bz2 archives";
     license = "GPL2";
 
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/tools/filesystems/btrfsprogs/default.nix b/pkgs/tools/filesystems/btrfsprogs/default.nix
index 9c8d18231f0f..0661755d2e17 100644
--- a/pkgs/tools/filesystems/btrfsprogs/default.nix
+++ b/pkgs/tools/filesystems/btrfsprogs/default.nix
@@ -13,6 +13,9 @@ stdenv.mkDerivation {
 
   buildInputs = [ zlib libuuid acl attr e2fsprogs lzo ];
 
+  # for btrfs to get the rpath to libgcc_s, needed for pthread_cancel to work
+  NIX_CFLAGS_LINK = "-lgcc_s";
+
   postPatch = ''
     cp ${./btrfs-set-received-uuid.c} btrfs-set-received-uuid.c
   '';
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index 712cd32d9c33..c01342511cc0 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libuuid }:
 
 stdenv.mkDerivation rec {
-  name = "e2fsprogs-1.42.7";
+  name = "e2fsprogs-1.42.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/e2fsprogs/${name}.tar.gz";
-    sha256 = "0ibkkvp6kan0hn0d1anq4n2md70j5gcm7mwna515w82xwyr02rfw";
+    sha256 = "b984aaf1fe888d6a4cf8c2e8d397207879599b5368f1d33232c1ec9d68d00c97";
   };
 
   buildInputs = [ pkgconfig libuuid ];
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index 7cae84a19c71..9d4168b2d7da 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information 
   rec {
     baseName="glusterfs";
-    version="3.3.1";
-    name="glusterfs-3.3.1";
-    hash="06bmnyl3vh8s21kk98idm2fl7kq38na94k5l67l9l1grl3iyzahr";
-    url="http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.1/glusterfs-3.3.1.tar.gz";
-    sha256="06bmnyl3vh8s21kk98idm2fl7kq38na94k5l67l9l1grl3iyzahr";
+    version="3.4.1";
+    name="${baseName}-${version}";
+    hash="0fdp3bifd7n20xlmsmj374pbp11k7np71f7ibzycsvmqqviv9wdm";
+    url="http://download.gluster.org/pub/gluster/glusterfs/3.4/3.4.1/glusterfs-3.4.1.tar.gz";
+    sha256="0fdp3bifd7n20xlmsmj374pbp11k7np71f7ibzycsvmqqviv9wdm";
   };
   buildInputs = [
     fuse bison flex openssl python ncurses readline
diff --git a/pkgs/tools/filesystems/netatalk/default.nix b/pkgs/tools/filesystems/netatalk/default.nix
new file mode 100644
index 000000000000..21a93774758f
--- /dev/null
+++ b/pkgs/tools/filesystems/netatalk/default.nix
@@ -0,0 +1,27 @@
+{ fetchurl, stdenv, pkgconfig, db48, libgcrypt, avahi, libiconv, pam, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "netatalk-3.0.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/netatalk/netatalk/${name}.tar.bz2";
+    sha256 = "1adlcj509czxsx60r1s96qlznspp5nz7dxc5fws11danidr4fhl8";
+  };
+
+  buildInputs = [ pkgconfig db48 libgcrypt avahi libiconv pam openssl ];
+
+  configureFlags = [
+    "--with-bdb=${db48}"
+    "--with-openssl=${openssl}"
+  ];
+
+  enableParallelBuild = true;
+
+  meta = {
+    description = "Apple File Protocl Server";
+    homepage = http://netatalk.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ jcumming ];
+  };
+}
diff --git a/pkgs/tools/filesystems/nixpart/default.nix b/pkgs/tools/filesystems/nixpart/default.nix
index 2cd40bb08675..633f04320c37 100644
--- a/pkgs/tools/filesystems/nixpart/default.nix
+++ b/pkgs/tools/filesystems/nixpart/default.nix
@@ -24,5 +24,6 @@ in buildPythonPackage rec {
     description = "NixOS storage manager/partitioner";
     license = stdenv.lib.licenses.gpl2Plus;
     maintainers = [ stdenv.lib.maintainers.aszlig ];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/graphics/argyllcms/default.nix b/pkgs/tools/graphics/argyllcms/default.nix
index 934a27ef25b7..d9eed4df224a 100644
--- a/pkgs/tools/graphics/argyllcms/default.nix
+++ b/pkgs/tools/graphics/argyllcms/default.nix
@@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = http://www.argyllcms.com;
-    description = "An ICC compatible color management system";
+    description = "Color management system (compatible with ICC)";
     license = licenses.gpl3;
     maintainers = [ maintainers.rickynils ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index e32a3901a92b..e9f61228bedb 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -11,11 +11,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="asymptote";
-    version="2.21";
-    name="asymptote-2.21";
-    hash="07lkj0xnxpanfscmbm30lw6j9484rlmmqpnl0mhs7nx9h2lczrjz";
-    url="mirror://sourceforge/project/asymptote/2.21/asymptote-2.21.src.tgz";
-    sha256="07lkj0xnxpanfscmbm30lw6j9484rlmmqpnl0mhs7nx9h2lczrjz";
+    version="2.24";
+    name="asymptote-2.24";
+    hash="0iypv3n89h8mx46b0c3msl0ldmg7fxf8v9fl4zy4sxfszazrvivl";
+    url="mirror://sourceforge/project/asymptote/2.24/asymptote-2.24.src.tgz";
+    sha256="0iypv3n89h8mx46b0c3msl0ldmg7fxf8v9fl4zy4sxfszazrvivl";
   };
   buildInputs = with a; [
     freeglut ghostscriptX imagemagick fftw boehmgc
diff --git a/pkgs/tools/graphics/cuneiform/default.nix b/pkgs/tools/graphics/cuneiform/default.nix
index 3c75af4bcf38..2638594903ab 100644
--- a/pkgs/tools/graphics/cuneiform/default.nix
+++ b/pkgs/tools/graphics/cuneiform/default.nix
@@ -36,6 +36,7 @@ rec {
 
   name = "cuneiform-" + version;
   meta = {
+    inherit version;
     description = "Cuneiform OCR";
   };
 }
diff --git a/pkgs/tools/graphics/ditaa/default.nix b/pkgs/tools/graphics/ditaa/default.nix
new file mode 100644
index 000000000000..86ff9ec8fae5
--- /dev/null
+++ b/pkgs/tools/graphics/ditaa/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, unzip, jre }:
+
+stdenv.mkDerivation rec {
+  name = "ditaa-0.9";
+
+  src = fetchurl {
+    name = "${name}.zip";
+    url = "mirror://sourceforge/project/ditaa/ditaa/0.9/ditaa0_9.zip";
+    sha256 = "12g6k3hacvyw3s9pijli7vfnkspyp37qkr29qgbmq1hbp0ryk2fn";
+  };
+
+  buildInputs = [ unzip ];
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    unzip "$src"
+    
+    mkdir -p "$out/bin"
+    mkdir -p "$out/lib"
+    mkdir -p "$out/share/ditaa"
+
+    cp dita*.jar "$out/lib/ditaa.jar"
+    cp COPYING HISTORY "$out/share/ditaa"
+
+    cat > "$out/bin/ditaa" << EOF
+    #!${stdenv.shell}
+    exec ${jre}/bin/java -jar "$out/lib/ditaa.jar" "\$@"
+    EOF
+
+    chmod a+x "$out/bin/ditaa"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Convert ascii art diagrams into proper bitmap graphics";
+    homepage = http://ditaa.sourceforge.net/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/pkgs/tools/graphics/dmtx/default.nix b/pkgs/tools/graphics/dmtx/default.nix
index 29c6b5ebf795..74b1a2bf4edf 100644
--- a/pkgs/tools/graphics/dmtx/default.nix
+++ b/pkgs/tools/graphics/dmtx/default.nix
@@ -24,7 +24,7 @@ rec {
       
   name = "dmtx-" + version;
   meta = {
-    description = "DataMatrix (2D bar code) processing tools.";
+    description = "DataMatrix (2D bar code) processing tools";
     maintainers = [args.lib.maintainers.raskin];
     platforms = args.lib.platforms.linux;
   };
diff --git a/pkgs/tools/graphics/optipng/default.nix b/pkgs/tools/graphics/optipng/default.nix
index a7cb20ca1cf7..1b2fc6dbb90c 100644
--- a/pkgs/tools/graphics/optipng/default.nix
+++ b/pkgs/tools/graphics/optipng/default.nix
@@ -3,11 +3,11 @@
 # This package comes with its own copy of zlib, libpng and pngxtern
 
 stdenv.mkDerivation rec {
-  name = "optipng-0.6.5";
+  name = "optipng-0.7.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/optipng/${name}.tar.gz";
-    sha256 = "0i2vpakj60bb0zgy4bynly2mwxiv5fq48yjqjzmrbnqwjh1y5619";
+    sha256 = "1zrphbz17rhhfl1l95q5s979rrhifbwczl2xj1fdrnq5jid5s2sj";
   };
 
   meta = {
diff --git a/pkgs/tools/graphics/pngquant/default.nix b/pkgs/tools/graphics/pngquant/default.nix
new file mode 100644
index 000000000000..560352c481ea
--- /dev/null
+++ b/pkgs/tools/graphics/pngquant/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchgit, libpng }:
+
+stdenv.mkDerivation rec {
+  name = "pngquant-${version}";
+  version = "2.0.1";
+
+  src = fetchgit {
+    url = https://github.com/pornel/pngquant.git;
+    rev = "refs/tags/${version}";
+    sha256 = "00mrv9wgxbwy517l8i4n7n3jpzirjdgi0zass3wj29i7xyipwlhf";
+  };
+
+  buildInputs = [ libpng ];
+
+  preInstall = ''
+    mkdir -p $out/bin
+    export PREFIX=$out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/pornel/pngquant;
+    description = "pngquant converts 24/32-bit RGBA PNGs to 8-bit palette with alpha channel preserved";
+    platforms = platforms.all;
+    license = licenses.bsd2; # Not exactly bsd2, but alike
+  };
+}
diff --git a/pkgs/tools/inputmethods/fcitx/default.nix b/pkgs/tools/inputmethods/fcitx/default.nix
index ac60cd6134f9..94d819680ab1 100644
--- a/pkgs/tools/inputmethods/fcitx/default.nix
+++ b/pkgs/tools/inputmethods/fcitx/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchurl, pkgconfig, cmake, intltool, gettext
 , libxml2, enchant, isocodes, icu, libpthreadstubs
-, pango, cairo, libxkbfile, xorg
+, pango, cairo, libxkbfile, libXau, libXdmcp
 }:
 
 stdenv.mkDerivation rec {
-  name = "fcitx-4.2.7";
+  name = "fcitx-4.2.8.3";
   src = fetchurl {
-    url = "https://fcitx.googlecode.com/files/${name}_dict.tar.xz";
-    sha256 = "1dfvr77j9vnlg76155clrjxnm59r5fzv0d3n6c6yn10zb0bjd40c";
+    url = "http://download.fcitx-im.org/fcitx/${name}_dict.tar.xz";
+    sha256 = "05dw6cbjh2jyjrkr4qx2bcq6nyhhrs0akf6fcjk5a72bgphhwqnb";
   };
 
   buildInputs = [
     cmake enchant pango gettext libxml2 isocodes pkgconfig libxkbfile
-    intltool cairo icu libpthreadstubs xorg.libXau xorg.libXdmcp
+    intltool cairo icu libpthreadstubs libXau libXdmcp
   ];
 
   cmakeFlags = ''
@@ -28,5 +28,7 @@ stdenv.mkDerivation rec {
     homepage = "https://code.google.com/p/fcitx/";
     description = "A Flexible Input Method Framework";
     license = "GPLv2";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [iyzsong];
   };
 }
diff --git a/pkgs/tools/misc/autojump/default.nix b/pkgs/tools/misc/autojump/default.nix
index 9b9155a1edbb..a92b4ae3b1bb 100644
--- a/pkgs/tools/misc/autojump/default.nix
+++ b/pkgs/tools/misc/autojump/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, stdenv, python, bash }:
 
 let 
-  version = "21.5.8";
+  version = "21.6.9";
 in
   stdenv.mkDerivation rec {
     name = "autojump-${version}";
@@ -9,7 +9,7 @@ in
     src = fetchurl {
       url = "http://github.com/joelthelion/autojump/archive/release-v${version}.tar.gz";
       name = "autojump-${version}.tar.gz";
-      sha256 = "07jf5pa9xwmbswsc0h6law9f5qwczsj25w7h034s379imid5h62f";
+      sha256 = "0js6jp9l83zxhd9bn8hjn4yf8gydnldrlmafgvlg3rd4i1v82649";
     };
 
     buildInputs = [ python bash ];
@@ -19,18 +19,17 @@ in
       # don't check shell support (we're running with bash anyway)
       sed -i -e 150,153d install.sh
 
-      bash ./install.sh -d $out
+      bash ./install.sh -d $out -p ""
+      chmod +x $out/etc/profile.d/*
 
       mkdir -p "$out/etc/bash_completion.d"
       cp -v $out/etc/profile.d/autojump.bash "$out/etc/bash_completion.d"
-      mkdir -p $out/bin
-      ln -s $out/usr/local/bin/autojump $out/bin/j
 
       # FIXME: What's the right place for `autojump.zsh'?
     '';
 
     meta = {
-      description = "Autojump, a `cd' command that learns";
+      description = "A `cd' command that learns";
       longDescription = ''
         One of the most used shell commands is “cd”.  A quick survey
         among my friends revealed that between 10 and 20% of all
diff --git a/pkgs/tools/misc/autorandr/default.nix b/pkgs/tools/misc/autorandr/default.nix
new file mode 100644
index 000000000000..2c7505260a69
--- /dev/null
+++ b/pkgs/tools/misc/autorandr/default.nix
@@ -0,0 +1,40 @@
+{ fetchgit
+, stdenv
+, enableXRandr ? true, xrandr ? null
+, enableDisper ? false, disper ? null
+, xdpyinfo }:
+
+assert enableXRandr -> xrandr != null;
+assert enableDisper -> disper != null;
+
+let
+  rev = "4f5e2401ef";
+in
+  stdenv.mkDerivation {
+    name = "autorandr-${rev}";
+
+    src = fetchgit {
+      inherit rev;
+      url = "https://github.com/wertarbyte/autorandr.git";
+    };
+
+    patchPhase = ''
+      substituteInPlace "autorandr" \
+        --replace "/usr/bin/xrandr" "${if enableXRandr then xrandr else "/nowhere"}/bin/xrandr" \
+        --replace "/usr/bin/disper" "${if enableDisper then disper else "/nowhere"}/bin/disper" \
+        --replace "/usr/bin/xdpyinfo" "${xdpyinfo}/bin/xdpyinfo"
+    '';
+
+    installPhase = ''
+      mkdir -p "$out/etc/bash_completion.d"
+      cp -v bash_completion/autorandr "$out/etc/bash_completion.d"
+      mkdir -p "$out/bin"
+      cp -v autorandr auto-disper $out/bin
+    '';
+
+    meta = {
+      description = "Automatic display configuration selector based on connected devices";
+      homepage = https://github.com/wertarbyte/autorandr;
+      maintainer = [ stdenv.lib.maintainers.coroa ];
+    };
+  }
diff --git a/pkgs/tools/misc/byobu/default.nix b/pkgs/tools/misc/byobu/default.nix
index 6766e0bb474f..03b3719c9f0a 100644
--- a/pkgs/tools/misc/byobu/default.nix
+++ b/pkgs/tools/misc/byobu/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = https://launchpad.net/byobu/;
-    description = "Byobu is a GPLv3 open source text-based window manager and terminal multiplexer.";
+    description = "Text-based window manager and terminal multiplexer";
 
     longDescription =
       ''Byobu is a GPLv3 open source text-based window manager and terminal multiplexer. 
diff --git a/pkgs/tools/misc/colord/default.nix b/pkgs/tools/misc/colord/default.nix
new file mode 100644
index 000000000000..e6787ec76c8a
--- /dev/null
+++ b/pkgs/tools/misc/colord/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, fetchgit
+, glib, polkit, pkgconfig, intltool, gusb, libusb1, lcms2, sqlite, systemd, dbus
+
+, automake, autoconf, libtool, gtk_doc, which, gobjectIntrospection
+, version ? "git"
+}:
+
+# colord wants to write to the etc/colord.conf and var/run/colord/mapping.db
+# thus they get symlinked to /etc and /var
+
+stdenv.mkDerivation (stdenv.lib.mergeAttrsByVersion "colord" version {
+  "0.1.33" = {
+    name = "colord-0.1.33";
+    src = fetchurl {
+      url = http://www.freedesktop.org/software/colord/releases/colord-0.1.32.tar.xz;
+      sha256 = "1smbkh4z1c2jjwxg626f12sslv7ff3yzak1zqrc493cl467ll0y7";
+    };
+  };
+  "git" = {
+    name = "colord-git-11dca";
+    src = fetchgit {
+      url = "https://github.com/hughsie/colord.git";
+      rev = "11dcaba034edff3955ceff53795df82c57c34adc";
+      sha256 = "1280q7zbfm5wqql872kcxmk5rmwjs7cv7cgz8nx0i9g4ac8j2mrf";
+    };
+
+    preConfigure = ''
+      ./autogen.sh
+    '';
+    buildInputs = [ automake autoconf libtool gtk_doc which gobjectIntrospection ];
+  };
+} {
+
+  enableParallelBuilding = true;
+
+  preConfigure = ''
+    configureFlags="$configureFlags --with-udevrulesdir=$out/lib/udev/rules.d --with-systemdsystemunitdir=$out/lib/udev/rules.d"
+  '';
+
+  buildInputs = [glib polkit pkgconfig intltool gusb libusb1 lcms2 sqlite systemd dbus];
+
+  postInstall = ''
+    sed -i '/usb_id\|usb-db/d' $out/lib/udev/rules.d/69-cd-sensors.rules
+    mv $out/etc/colord.conf{,.default}
+    ln -s /etc/colord.conf $out/etc/colord.conf
+    rm -fr $out/var/lib/colord
+    ln -s /var/lib/colord $out/var/lib/colord
+  '';
+
+  meta = {
+    description = "system service that makes it easy to manage, install and generate color profiles to accurately color manage input and output devices";
+    homepage = http://www.freedesktop.org/software/colord/intro.html;
+    license = stdenv.lib.licenses.lgpl2Plus;
+    maintainers = [stdenv.lib.maintainers.marcweber];
+    platforms = stdenv.lib.platforms.linux;
+  };
+})
diff --git a/pkgs/tools/misc/coreutils/8.19.nix b/pkgs/tools/misc/coreutils/8.19.nix
deleted file mode 100644
index 23db167f3070..000000000000
--- a/pkgs/tools/misc/coreutils/8.19.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{ stdenv, fetchurl, perl, gmp ? null
-, aclSupport ? false, acl ? null
-, selinuxSupport? false, libselinux ? null, libsepol ? null
-}:
-
-assert aclSupport -> acl != null;
-assert selinuxSupport -> libselinux != null && libsepol != null;
-
-stdenv.mkDerivation rec {
-  name = "coreutils-8.19";
-
-  src = fetchurl {
-    url = "mirror://gnu/coreutils/${name}.tar.xz";
-    sha256 = "1rx9x3fp848w4nny7irdkcpkan9fcx24d99v5dkwgkyq7wc76f5d";
-  };
-
-  nativeBuildInputs = [ perl ];
-  buildInputs = [ gmp ]
-    ++ stdenv.lib.optional aclSupport acl
-    ++ stdenv.lib.optional selinuxSupport libselinux
-    ++ stdenv.lib.optional selinuxSupport libsepol;
-
-  crossAttrs = ({
-    buildInputs = [ gmp ]
-      ++ stdenv.lib.optional aclSupport acl.crossDrv
-      ++ stdenv.lib.optional selinuxSupport libselinux.crossDrv
-      ++ stdenv.lib.optional selinuxSupport libsepol.crossDrv
-      ++ stdenv.lib.optional (stdenv.gccCross.libc ? libiconv)
-        stdenv.gccCross.libc.libiconv.crossDrv;
-
-    # Needed for fstatfs()
-    # I don't know why it is not properly detected cross building with glibc.
-    configureFlags = [ "fu_cv_sys_stat_statfs2_bsize=yes" ];
-    doCheck = false;
-  }
-
-  //
-
-  # XXX: Temporary workaround to allow GNU/Hurd builds with newer libcs.
-  (stdenv.lib.optionalAttrs (stdenv.cross.config == "i586-pc-gnu") {
-    patches = [ ./gets-undeclared.patch ];
-  }));
-
-  # The tests are known broken on Cygwin
-  # (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19025),
-  # Darwin (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19351),
-  # and {Open,Free}BSD.
-  doCheck = stdenv ? glibc;
-
-  enableParallelBuilding = true;
-
-  NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol";
-
-  meta = {
-    homepage = http://www.gnu.org/software/coreutils/;
-    description = "The basic file, shell and text manipulation utilities of the GNU operating system";
-
-    longDescription = ''
-      The GNU Core Utilities are the basic file, shell and text
-      manipulation utilities of the GNU operating system.  These are
-      the core utilities which are expected to exist on every
-      operating system.
-    '';
-
-    license = "GPLv3+";
-
-    maintainers = [ ];
-  };
-}
-
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index da3e8d09a237..65a3bec555ef 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -6,8 +6,11 @@
 assert aclSupport -> acl != null;
 assert selinuxSupport -> libselinux != null && libsepol != null;
 
+
+with { inherit (stdenv.lib) optional optionals optionalString optionalAttrs; };
+
 let
-  self = stdenv.mkDerivation rec {
+  self = stdenv.mkDerivation (rec {
     name = "coreutils-8.21";
 
     src = fetchurl {
@@ -17,16 +20,14 @@ let
 
     nativeBuildInputs = [ perl ];
     buildInputs = [ gmp ]
-      ++ stdenv.lib.optional aclSupport acl
-      ++ stdenv.lib.optional selinuxSupport libselinux
-      ++ stdenv.lib.optional selinuxSupport libsepol;
+      ++ optional aclSupport acl
+      ++ optionals selinuxSupport [ libselinux libsepol ];
 
     crossAttrs = {
       buildInputs = [ gmp ]
-        ++ stdenv.lib.optional aclSupport acl.crossDrv
-        ++ stdenv.lib.optional selinuxSupport libselinux.crossDrv
-        ++ stdenv.lib.optional selinuxSupport libsepol.crossDrv
-        ++ stdenv.lib.optional (stdenv.gccCross.libc ? libiconv)
+        ++ optional aclSupport acl.crossDrv
+        ++ optionals selinuxSupport [ libselinux.crossDrv libsepol.crossDrv ]
+        ++ optional (stdenv.gccCross.libc ? libiconv)
           stdenv.gccCross.libc.libiconv.crossDrv;
 
       buildPhase = ''
@@ -57,7 +58,7 @@ let
 
     enableParallelBuilding = true;
 
-    NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol";
+    NIX_LDFLAGS = optionalString selinuxSupport "-lsepol";
 
     meta = {
       homepage = http://www.gnu.org/software/coreutils/;
@@ -74,6 +75,8 @@ let
 
       maintainers = [ ];
     };
-  };
+  } // optionalAttrs stdenv.isDarwin {
+    makeFlags = "CFLAGS=-D_FORTIFY_SOURCE=0";
+  });
 in
   self
diff --git a/pkgs/tools/misc/detox/default.nix b/pkgs/tools/misc/detox/default.nix
index ade13382033c..435115ffc596 100644
--- a/pkgs/tools/misc/detox/default.nix
+++ b/pkgs/tools/misc/detox/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   buildInputs = [flex];
 
   meta = {
-    description = "Detox is a utility designed to clean up filenames.";
+    description = "Utility designed to clean up filenames";
     longDescription = ''
       Detox is a utility designed to clean up filenames. It replaces
       difficult to work with characters, such as spaces, with standard
diff --git a/pkgs/tools/misc/disper/default.nix b/pkgs/tools/misc/disper/default.nix
index cc11427f65aa..b4a159745d46 100644
--- a/pkgs/tools/misc/disper/default.nix
+++ b/pkgs/tools/misc/disper/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "Disper is an on-the-fly display switch utility.";
+    description = "On-the-fly display switch utility";
     homepage = http://willem.engen.nl/projects/disper/;
   };
 
diff --git a/pkgs/tools/misc/expect/default.nix b/pkgs/tools/misc/expect/default.nix
index 885fd040e47d..2b1108846d73 100644
--- a/pkgs/tools/misc/expect/default.nix
+++ b/pkgs/tools/misc/expect/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation {
     substituteInPlace configure --replace /bin/stty "$(type -tP stty)"
     sed -e '1i\#include <tclInt.h>' -i exp_inter.c
     export NIX_LDFLAGS="-rpath $out/lib $NIX_LDFLAGS"
+  '' + stdenv.lib.optionalString stdenv.isFreeBSD ''
+    ln -s libexpect.so.1 libexpect545.so
   '';
 
   configureFlags = [
diff --git a/pkgs/tools/misc/fdupes/default.nix b/pkgs/tools/misc/fdupes/default.nix
index 2de9efdac58a..14e6a2f6681f 100644
--- a/pkgs/tools/misc/fdupes/default.nix
+++ b/pkgs/tools/misc/fdupes/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   makeFlags = "PREFIX=\${out}";
 
   meta = {
-    description = "identifies duplicate files residing within specified directories.";
+    description = "Identifies duplicate files residing within specified directories";
     longDescription = ''
       FDUPES uses md5sums and then a byte by byte comparison to finde duplicate
       files within a set of directories.
diff --git a/pkgs/tools/misc/gnuvd/default.nix b/pkgs/tools/misc/gnuvd/default.nix
index 6436a14047ab..122694af4567 100644
--- a/pkgs/tools/misc/gnuvd/default.nix
+++ b/pkgs/tools/misc/gnuvd/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "gnuvd is a command-line dutch dictionary application.";
+    description = "Command-line dutch dictionary application";
     homepage = http://www.djcbsoftware.nl/code/gnuvd/;
   };
 }
diff --git a/pkgs/tools/misc/grc/default.nix b/pkgs/tools/misc/grc/default.nix
index ea54ab4a543d..cd3ea6eda6f0 100644
--- a/pkgs/tools/misc/grc/default.nix
+++ b/pkgs/tools/misc/grc/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Yet another colouriser for beautifying your logfiles or output of commands.";
+    description = "Yet another colouriser for beautifying your logfiles or output of commands";
     homepage    = http://korpus.juls.savba.sk/~garabik/software/grc.html;
     license     = licenses.gpl2;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/tools/misc/gsmartcontrol/default.nix b/pkgs/tools/misc/gsmartcontrol/default.nix
index abbd8f20fd08..6cb528cca1dd 100644
--- a/pkgs/tools/misc/gsmartcontrol/default.nix
+++ b/pkgs/tools/misc/gsmartcontrol/default.nix
@@ -14,7 +14,16 @@ stdenv.mkDerivation rec {
   #installTargets = "install datainstall";
 
   meta = {
-    description = "GSmartControl is a graphical user interface for smartctl (from smartmontools package), which is a tool for querying and controlling SMART (Self-Monitoring, Analysis, and Reporting Technology) data on modern hard disk drives.";
+    description = "Hard disk drive health inspection tool";
+    longDescription = ''
+      GSmartControl is a graphical user interface for smartctl (from
+      smartmontools package), which is a tool for querying and controlling
+      SMART (Self-Monitoring, Analysis, and Reporting Technology) data on
+      modern hard disk drives.
+
+      It allows you to inspect the drive's SMART data to determine its health,
+      as well as run various tests on it.
+    '';
     homepage = http://gsmartcontrol.berlios.de;
     license = "GPLv2+";
     maintainers = with stdenv.lib.maintainers; [qknight];
diff --git a/pkgs/tools/misc/gummiboot/default.nix b/pkgs/tools/misc/gummiboot/default.nix
index cf2fe713461f..1098e9d09207 100644
--- a/pkgs/tools/misc/gummiboot/default.nix
+++ b/pkgs/tools/misc/gummiboot/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl, gnu_efi, unzip, pkgconfig, utillinux, libxslt, docbook_xsl, docbook_xml_dtd_42 }:
+{ stdenv, fetchurl, gnu-efi, unzip, pkgconfig, utillinux, libxslt, docbook_xsl, docbook_xml_dtd_42 }:
 
 stdenv.mkDerivation rec {
-  name = "gummiboot-23";
+  name = "gummiboot-38";
 
-  buildInputs = [ unzip pkgconfig utillinux libxslt docbook_xsl docbook_xml_dtd_42 ];
+  buildInputs = [ gnu-efi pkgconfig libxslt utillinux ];
 
-  patches = [ ./no-usr.patch ];
-
-  buildFlags = [ "GNU_EFI=${gnu_efi}" ];
-
-  makeFlags = [ "PREFIX=$(out)" ];
+  # Sigh, gummiboot should be able to find this in buildInputs
+  configureFlags = [
+    "--with-efi-includedir=${gnu-efi}/include"
+    "--with-efi-libdir=${gnu-efi}/lib"
+    "--with-efi-ldsdir=${gnu-efi}/lib"
+  ];
 
   src = fetchurl {
-    url = "http://cgit.freedesktop.org/gummiboot/snapshot/${name}.zip";
-    sha256 = "1lmfk4k52ha00ppna5g7h51vhd27i9fipf5k7mc2d9jkm2480z4j";
+    url = http://pkgs.fedoraproject.org/repo/pkgs/gummiboot/gummiboot-38.tar.xz/0504791387e1998bf2075728c237f27e/gummiboot-38.tar.xz;
+    sha256 = "1aid2a29ym8dqldxpcihnrls7vrr9ijbla3dad0r8qwkca43d4lm";
   };
 
   meta = {
diff --git a/pkgs/tools/misc/gummiboot/no-usr.patch b/pkgs/tools/misc/gummiboot/no-usr.patch
deleted file mode 100644
index db9068947407..000000000000
--- a/pkgs/tools/misc/gummiboot/no-usr.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -Naur gummiboot-23-orig/Makefile gummiboot-23/Makefile
---- gummiboot-23-orig/Makefile	2013-02-20 00:55:44.000000000 -0500
-+++ gummiboot-23/Makefile	2013-02-21 12:00:35.783637645 -0500
-@@ -10,7 +10,8 @@
- export E Q
- 
- ARCH=$(shell $(CC) -dumpmachine | sed "s/\(-\).*$$//")
--LIBDIR=$(shell echo $$(cd /usr/lib/$$(gcc -print-multi-os-directory); pwd))
-+PREFIX=/usr
-+LIBDIR=$(GNU_EFI)/lib
- LIBEFIDIR=$(or $(wildcard $(LIBDIR)/gnuefi), $(LIBDIR))
- 
- ifeq ($(ARCH),i686)
-@@ -25,13 +26,13 @@
- 		-mno-red-zone
- endif
- 
--all: gummiboot$(MACHINE_TYPE_NAME).efi gummiboot
-+all: gummiboot$(MACHINE_TYPE_NAME).efi gummiboot man
- 
- # ------------------------------------------------------------------------------
- CPPFLAGS = \
- 	-I. \
--	-I/usr/include/efi \
--	-I/usr/include/efi/$(ARCH)
-+	-I$(GNU_EFI)/include/efi \
-+	-I$(GNU_EFI)/include/efi/$(ARCH)
- 
- CFLAGS = \
- 	-DVERSION=$(VERSION) \
-@@ -82,6 +83,7 @@
- 	  `pkg-config --cflags --libs blkid` \
- 	  src/setup/setup.c \
- 	  src/setup/efivars.c \
-+	  -DPREFIX=\"$(PREFIX)\" \
- 	  -o $@
- 
- # ------------------------------------------------------------------------------
-@@ -101,11 +103,11 @@
- 	rm -f src/efi/gummiboot.o src/efi/gummiboot.so gummiboot gummiboot$(MACHINE_TYPE_NAME).efi
- 
- install: all
--	mkdir -p $(DESTDIR)/usr/bin/
--	cp gummiboot $(DESTDIR)/usr/bin
--	mkdir -p $(DESTDIR)/usr/lib/gummiboot/
--	cp gummiboot$(MACHINE_TYPE_NAME).efi $(DESTDIR)/usr/lib/gummiboot/
--	[ -e gummiboot.1 ] && mkdir -p $(DESTDIR)/usr/share/man/man1/ && cp gummiboot.1 $(DESTDIR)/usr/share/man/man1/ || :
-+	mkdir -p $(DESTDIR)$(PREFIX)/bin/
-+	cp gummiboot $(DESTDIR)$(PREFIX)/bin
-+	mkdir -p $(DESTDIR)$(PREFIX)/lib/gummiboot/
-+	cp gummiboot$(MACHINE_TYPE_NAME).efi $(DESTDIR)$(PREFIX)/lib/gummiboot/
-+	[ -e gummiboot.1 ] && mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1/ && cp gummiboot.1 $(DESTDIR)$(PREFIX)/share/man/man1/ || :
- 
- tar:
- 	git archive --format=tar --prefix=gummiboot-$(VERSION)/ $(VERSION) | xz > gummiboot-$(VERSION).tar.xz
-diff -Naur gummiboot-23-orig/src/setup/setup.c gummiboot-23/src/setup/setup.c
---- gummiboot-23-orig/src/setup/setup.c	2013-02-20 00:55:44.000000000 -0500
-+++ gummiboot-23/src/setup/setup.c	2013-02-21 11:57:43.295324700 -0500
-@@ -736,7 +736,7 @@
-         char *p = NULL, *q = NULL, *v = NULL;
-         int r;
- 
--        if (asprintf(&p, "/usr/lib/gummiboot/%s", name) < 0) {
-+        if (asprintf(&p, PREFIX "/lib/gummiboot/%s", name) < 0) {
-                 fprintf(stderr, "Out of memory.\n");
-                 r = -ENOMEM;
-                 goto finish;
-@@ -791,9 +791,9 @@
-                         return r;
-         }
- 
--        d = opendir("/usr/lib/gummiboot");
-+        d = opendir(PREFIX "/lib/gummiboot");
-         if (!d) {
--                fprintf(stderr, "Failed to open /usr/lib/gummiboot: %m\n");
-+                fprintf(stderr, "Failed to open " PREFIX "/lib/gummiboot: %m\n");
-                 return -errno;
-         }
- 
diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index 0aacf744b1ab..01820aaf7780 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -13,9 +13,9 @@ stdenv.mkDerivation {
   patches = [./bin-mv.patch];
   
   meta = {
-    description = "HDF5 is a data model, library, and file format for storing and managing data.";
+    description = "Data model, library, and file format for storing and managing data";
     longDescription = ''
-      It supports an unlimited variety of datatypes, and is designed for flexible and efficient 
+      HDF5 supports an unlimited variety of datatypes, and is designed for flexible and efficient
       I/O and for high volume and complex data. HDF5 is portable and is extensible, allowing 
       applications to evolve in their use of HDF5. The HDF5 Technology suite includes tools and 
       applications for managing, manipulating, viewing, and analyzing data in the HDF5 format.
diff --git a/pkgs/tools/misc/logstash/default.nix b/pkgs/tools/misc/logstash/default.nix
index b273e4630a3f..6ee427bc5066 100644
--- a/pkgs/tools/misc/logstash/default.nix
+++ b/pkgs/tools/misc/logstash/default.nix
@@ -1,11 +1,11 @@
 { fetchurl }:
 
-let version = "1.1.0"; in
+let version = "1.2.1"; in
 
 fetchurl {
-  url = "http://semicomplete.com/files/logstash/logstash-${version}-monolithic.jar";
+  url = "https://logstash.objects.dreamhost.com/release/logstash-${version}-flatjar.jar";
 
   name = "logstash-${version}.jar";
 
-  sha256 = "03s9g2appsmdg973212dl37ldws36fgsvxi9w1lxbvmmclc4k7vc";
+  sha256 = "08zfhq6klhkqapqnyzbdikgryd8bj2fp0wdb5d6dawdan5psbf6h";
 }
diff --git a/pkgs/tools/misc/mcrypt/default.nix b/pkgs/tools/misc/mcrypt/default.nix
index 7701f0e20590..761b2c5bdbfb 100644
--- a/pkgs/tools/misc/mcrypt/default.nix
+++ b/pkgs/tools/misc/mcrypt/default.nix
@@ -12,7 +12,12 @@ stdenv.mkDerivation rec {
   buildInputs = [libmcrypt libmhash];
  
   meta = {
-    description = "mcrypt, and the accompanying libmcrypt, are intended to be replacements for the old Unix crypt, except that they are under the GPL and support an ever-wider range of algorithms and modes.";
+    description = "Replacement for old UNIX crypt(1)";
+    longDescription = ''
+      mcrypt, and the accompanying libmcrypt, are intended to be replacements
+      for the old Unix crypt, except that they are under the GPL and support an
+      ever-wider range of algorithms and modes.
+    '';
     homepage = http://mcrypt.sourceforge.net;
     license = "GPLv2";
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/tools/misc/megacli/default.nix b/pkgs/tools/misc/megacli/default.nix
new file mode 100644
index 000000000000..2b15d4470c36
--- /dev/null
+++ b/pkgs/tools/misc/megacli/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, rpm, cpio, ncurses, patchelf, makeWrapper, requireFile, unzip }:
+
+assert stdenv.system == "x86_64-linux";
+
+stdenv.mkDerivation rec {
+  name = "megacli-8.07.07";
+
+  src =
+    requireFile {
+      name = "8.07.07_MegaCLI.zip";
+      url = http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/8.07.07_MegaCLI.zip;
+      sha256 = "11jzvh25mlygflazd37gi05xv67im4rgq7sbs5nwgw3gxdh4xfjj";
+    };
+
+  buildInputs = [rpm cpio ncurses unzip makeWrapper];
+  libPath =
+    stdenv.lib.makeLibraryPath
+       [ stdenv.gcc.gcc stdenv.gcc.libc ncurses ];
+
+  buildCommand = ''
+    ensureDir $out/bin
+    cd $out
+    unzip ${src}
+    rpm2cpio linux/MegaCli-8.07.07-1.noarch.rpm | cpio -idmv
+    ${patchelf}/bin/patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" --set-rpath ${libPath}:$out/opt/lsi/3rdpartylibs/x86_64:$out/opt/lsi/3rdpartylibs:${stdenv.gcc.gcc}/lib64:${stdenv.gcc.gcc}/lib opt/MegaRAID/MegaCli/MegaCli64
+    wrapProgram $out/opt/MegaRAID/MegaCli/MegaCli64 --set LD_LIBRARY_PATH $out/opt/lsi/3rdpartylibs/x86_64
+    ln -s $out/opt/MegaRAID/MegaCli/MegaCli64 $out/bin/MegaCli64
+    eval fixupPhase
+  '';
+
+  meta = {
+    description = "CLI program for LSI MegaRAID cards, which also works with some Dell PERC RAID cards";
+    license = "unfree";
+  };
+}
diff --git a/pkgs/tools/misc/memtest86/plus.nix b/pkgs/tools/misc/memtest86+/default.nix
index 262811d330d6..500d7e815d26 100644
--- a/pkgs/tools/misc/memtest86/plus.nix
+++ b/pkgs/tools/misc/memtest86+/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "memtest86+-4.20";
-  
+stdenv.mkDerivation rec {
+  name = "memtest86+-5.01";
+
   src = fetchurl {
-    url = http://www.memtest.org/download/4.20/memtest86+-4.20.tar.gz;
-    sha256 = "0dw7kvfxiwqdmhapbz6ds1j9fralbky56hnzj4c6fsqfinbwwc2n";
+    url = "http://www.memtest.org/download/5.01/${name}.tar.gz";
+    sha256 = "0fch1l55753y6jkk0hj8f6vw4h1kinkn9ysp22dq5g9zjnvjf88l";
   };
 
   preBuild = ''
@@ -18,14 +18,18 @@ stdenv.mkDerivation {
   '';
 
   NIX_CFLAGS_COMPILE = "-I.";
-  
+
+  buildFlags = "memtest.bin";
+
   installPhase = ''
     mkdir -p $out
+    chmod -x memtest.bin
     cp memtest.bin $out/
   '';
 
   meta = {
     homepage = http://www.memtest.org/;
-    description = "A tool to detect memory errors, fork from memtest86";
+    description = "A tool to detect memory errors";
+    license = stdenv.lib.licenses.gpl2;
   };
 }
diff --git a/pkgs/tools/misc/ncdu/default.nix b/pkgs/tools/misc/ncdu/default.nix
index 2d3a67db8c55..47b96023ce0f 100644
--- a/pkgs/tools/misc/ncdu/default.nix
+++ b/pkgs/tools/misc/ncdu/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ];
 
   meta = {
-    description = "An ncurses disk usage analyzer.";
+    description = "Ncurses disk usage analyzer";
     homepage = http://dev.yorhel.nl/ncdu;
     license = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/tools/misc/ngrok/default.nix b/pkgs/tools/misc/ngrok/default.nix
new file mode 100644
index 000000000000..971c42aac71c
--- /dev/null
+++ b/pkgs/tools/misc/ngrok/default.nix
@@ -0,0 +1,94 @@
+{ stdenv, fetchurl, go, fetchgit, fetchbzr, fetchhg }:
+
+let
+  go-websocket = fetchgit {
+    url = "git://github.com/garyburd/go-websocket";
+    rev = "refs/heads/master";
+    sha256 = "1e4fcff29c961cd7433ba1b655412d466edfeb1f0829b41f578764857bc801fe";
+  };
+  go-metrics = fetchgit {
+    url = "https://github.com/inconshreveable/go-metrics";
+    sha256 = "3dc8c229ce5123d86269c0c48401a9cdd2cde7558d85374c9dbc4bbd531e86d5";
+  };
+  termbox-go = fetchgit {
+    url = "https://github.com/nsf/termbox-go";
+    sha256 = "6b23e8eabb1c7a99dc8c5a7dd5ecb2c2ae736c7f54e485548d08ac337b3a0400";
+  };
+  go-bindata = fetchgit {
+    url = "https://github.com/inconshreveable/go-bindata";
+    sha256 = "518a5b61cfbe58f8bc55bd6139adcd69997b6ba474536a70b538879aaf118578";
+  };
+  go-update = fetchgit {
+    url = "https://github.com/inconshreveable/go-update";
+    sha256 = "34647689a50b9d12e85a280d9034cc1772079163481c4778ee4b3e6c4b41e2f4";
+  };
+  goyaml = fetchbzr {
+    url = "https://launchpad.net/goyaml";
+    sha256 = "03is37cgw62cha316xrs5h7q97im46ry5qldkfvbhimjq3ww0swj";
+    revision = "branch:lp:goyaml";
+  };
+  log4go = fetchhg {
+    url = "https://code.google.com/p/log4go/";
+    sha256 = "0q906sxrmwir295virfibqvdzlaj340qh2r4ysx1ccjrjazc0q5p";
+  };
+  osext = fetchhg {
+    url = "https://bitbucket.org/kardianos/osext";
+    sha256 = "1w9x2zj716agfd5x5497ajb9nz3ljar74768vjidsyly143vzjws";
+  };
+in stdenv.mkDerivation rec {
+  name = "ngrok-${version}";
+  version = "1.6";
+
+  src = fetchurl {
+    url = "https://github.com/inconshreveable/ngrok/archive/${version}.tar.gz";
+    sha256 = "0w54ck00ma8wd87gc3dligypdjs7vrzbi9py46sqphsid3rihkjr";
+  };
+
+  buildInputs = [ go ];
+
+  preBuild = ''
+    export HOME="$PWD"
+
+    mkdir -p src/github.com/garyburd/go-websocket/
+    ln -s ${go-websocket}/* src/github.com/garyburd/go-websocket
+
+    mkdir -p src/github.com/inconshreveable/go-metrics/
+    ln -s ${go-metrics}/* src/github.com/inconshreveable/go-metrics
+
+    mkdir -p src/github.com/inconshreveable/go-bindata
+    ln -s ${go-bindata}/* src/github.com/inconshreveable/go-bindata
+
+    mkdir -p src/github.com/inconshreveable/go-update
+    ln -s ${go-update}/* src/github.com/inconshreveable/go-update
+
+    mkdir -p src/github.com/nsf/termbox-go/
+    ln -s ${termbox-go}/* src/github.com/nsf/termbox-go
+
+    mkdir -p src/launchpad.net/goyaml
+    ln -s ${goyaml}/* src/launchpad.net/goyaml
+
+    mkdir -p src/code.google.com/p/log4go
+    ln -s ${log4go}/* src/code.google.com/p/log4go
+
+    mkdir -p src/bitbucket.org/kardianos/osext
+    ln -s ${osext}/* src/bitbucket.org/kardianos/osext
+
+    # don't download dependencies as we already have them
+    sed -i '/go get/d' Makefile
+  '';
+
+  installPhase = ''
+    make release-client
+    mkdir -p $out/bin
+    cp bin/ngrok $out/bin
+    cp -R assets $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Reverse proxy that creates a secure tunnel between from a public endpoint to a locally running web service";
+    homepage = https://ngrok.com/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ iElectric ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
new file mode 100644
index 000000000000..10886e969a2c
--- /dev/null
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, jre, graphviz }:
+
+stdenv.mkDerivation rec {
+  version = "7982";
+  name = "plantuml-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/plantuml/plantuml.${version}.jar";
+    sha256 = "0hxs0whjgx36j5azdcna40rw2c7smhg0qm3kzld9vx88m0c51dgl";
+  };
+
+  # It's only a .jar file and a shell wrapper
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    mkdir -p "$out/lib"
+
+    cp "$src" "$out/lib/plantuml.jar"
+
+    cat > "$out/bin/plantuml" << EOF
+    #!${stdenv.shell}
+    export GRAPHVIZ_DOT="${graphviz}/bin/dot"
+    exec "${jre}/bin/java" -jar "$out/lib/plantuml.jar" "\$@"
+    EOF
+    chmod a+x "$out/bin/plantuml"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Draw UML diagrams using a simple and human readable text description";
+    homepage = http://plantuml.sourceforge.net/;
+    # "java -jar plantuml.jar -license" says GPLv3 or later
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.bjornfor ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/ponysay/default.nix b/pkgs/tools/misc/ponysay/default.nix
index 17be93dda8f7..1da0d70a14fa 100644
--- a/pkgs/tools/misc/ponysay/default.nix
+++ b/pkgs/tools/misc/ponysay/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "cowsay reimplemention for ponies.";
+    description = "Cowsay reimplemention for ponies";
     homepage = http://terse.tk/ponysay/;
     license = "GPLv3";
     maintainers = with stdenv.lib.maintainers; [ bodil ];
diff --git a/pkgs/tools/misc/pv/default.nix b/pkgs/tools/misc/pv/default.nix
index 444408fec41d..bf0c44de1419 100644
--- a/pkgs/tools/misc/pv/default.nix
+++ b/pkgs/tools/misc/pv/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl } :
 
 stdenv.mkDerivation rec {
-  name = "pv-1.3.4";
+  name = "pv-1.4.12";
 
   src = fetchurl {
     url = "http://www.ivarch.com/programs/sources/${name}.tar.bz2";
-    sha256 = "114b730pghgg4gv9d798817n3am88p2b0xgdavch1vhklzh33c16";
+    sha256 = "0hnpv4l5kidfwxzba7ibm9wjs71ing9gzx0m80bgr3ia8k4s8nka";
   };
 
   meta = {
diff --git a/pkgs/tools/misc/refind/default.nix b/pkgs/tools/misc/refind/default.nix
index 1fbb177afa06..6f4e031e4419 100644
--- a/pkgs/tools/misc/refind/default.nix
+++ b/pkgs/tools/misc/refind/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gnu_efi, unzip }:
+{ stdenv, fetchurl, gnu-efi, unzip }:
 
 let version = "0.4.5"; in
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ unzip ];
 
-  buildFlags = [ "prefix=" "EFIINC=${gnu_efi}/include/efi" "GNUEFILIB=${gnu_efi}/lib" "EFILIB=${gnu_efi}/lib" "EFICRT0=${gnu_efi}/lib" "LOCAL_CFLAGS=-I${gnu_efi}/include" ];
+  buildFlags = [ "prefix=" "EFIINC=${gnu-efi}/include/efi" "GNUEFILIB=${gnu-efi}/lib" "EFILIB=${gnu-efi}/lib" "EFICRT0=${gnu-efi}/lib" "LOCAL_CFLAGS=-I${gnu-efi}/include" ];
 
   installPhase = ''
     mkdir -pv $out
diff --git a/pkgs/tools/misc/rockbox-utility/default.nix b/pkgs/tools/misc/rockbox-utility/default.nix
index 4f271bcd6237..adb2a456b88f 100644
--- a/pkgs/tools/misc/rockbox-utility/default.nix
+++ b/pkgs/tools/misc/rockbox-utility/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, libusb, qt4 }:
+{ stdenv, fetchurl, libusb1, qt4 }:
 
 stdenv.mkDerivation  rec {
   name = "rockbox-utility-${version}";
-  version = "1.2.8";
+  version = "1.3.1";
 
   src = fetchurl {
-    url = "http://download.rockbox.org/rbutil/source/rbutil_${version}-src.tar.bz2";
-    sha256 = "1gjwlyrwvzfdhqdwvq1chdnjkcn9lk21ixp92h5y74826j3ahdgs";
+    url = "http://download.rockbox.org/rbutil/source/RockboxUtility-v${version}-src.tar.bz2";
+    sha256 = "6c04b5c7eaad1762577908dedb9e40f5b0cee675150ae5ba844ea2c9bea294ca";
   };
 
-  buildInputs = [ libusb qt4 ];
+  buildInputs = [ libusb1 qt4 ];
 
   preBuild = ''
     cd rbutil/rbutilqt
diff --git a/pkgs/tools/misc/screen/default.nix b/pkgs/tools/misc/screen/default.nix
index 7363719b66d3..c2c0a5aa534f 100644
--- a/pkgs/tools/misc/screen/default.nix
+++ b/pkgs/tools/misc/screen/default.nix
@@ -22,7 +22,8 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnu.org/software/screen/;
-    description = "GNU Screen, a window manager that multiplexes a physical terminal";
+    description = "a window manager that multiplexes a physical terminal";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     longDescription =
       '' GNU Screen is a full-screen window manager that multiplexes a physical
@@ -46,8 +47,6 @@ stdenv.mkDerivation rec {
          terminal.
       '';
 
-    license = stdenv.lib.licenses.gpl2Plus;
-
     platforms = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
diff --git a/pkgs/tools/misc/stow/default.nix b/pkgs/tools/misc/stow/default.nix
index e0d7985ae07c..58f30a021fa3 100644
--- a/pkgs/tools/misc/stow/default.nix
+++ b/pkgs/tools/misc/stow/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   meta = {
-    description = "Stow is a tool for managing the installation of multiple software packages in the same run-time directory tree.";
+    description = "A tool for managing the installation of multiple software packages in the same run-time directory tree";
 
     longDescription = ''
       GNU Stow is a symlink farm manager which takes distinct packages
diff --git a/pkgs/tools/misc/ttmkfdir/default.nix b/pkgs/tools/misc/ttmkfdir/default.nix
index 3f05d600944b..12adb5318a89 100644
--- a/pkgs/tools/misc/ttmkfdir/default.nix
+++ b/pkgs/tools/misc/ttmkfdir/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation {
   buildInputs = [freetype fontconfig libunwind libtool flex bison];
 
   meta = {
-    description = "Create fonts.dir for TTF font directory.";
+    description = "Create fonts.dir for TTF font directory";
   };
 }
diff --git a/pkgs/tools/misc/unclutter/default.nix b/pkgs/tools/misc/unclutter/default.nix
index b267074e77fa..542530532de0 100644
--- a/pkgs/tools/misc/unclutter/default.nix
+++ b/pkgs/tools/misc/unclutter/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    description = "Hides mouse pointer while not in use.";
+    description = "Hides mouse pointer while not in use";
     longDescription = ''
       Unclutter hides your X mouse cursor when you do not need it, to prevent
       it from getting in the way. You have only to move the mouse to restore
diff --git a/pkgs/tools/misc/units/default.nix b/pkgs/tools/misc/units/default.nix
index d4cd07aa4c6f..c609d2275dad 100644
--- a/pkgs/tools/misc/units/default.nix
+++ b/pkgs/tools/misc/units/default.nix
@@ -8,6 +8,6 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "Unit conversion tool.";
+    description = "Unit conversion tool";
   };
 }
diff --git a/pkgs/tools/misc/venus/default.nix b/pkgs/tools/misc/venus/default.nix
index b4f9732dec6c..b7f2be179c47 100644
--- a/pkgs/tools/misc/venus/default.nix
+++ b/pkgs/tools/misc/venus/default.nix
@@ -41,7 +41,12 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Planet Venus is an awesome ‘river of news’ feed reader. It downloads news feeds published by web sites and aggregates their content together into a single combined feed, latest news first.";
+    description = "News feed reader";
+    longDescription = ''
+      Planet Venus is an awesome ‘river of news’ feed reader. It downloads news
+      feeds published by web sites and aggregates their content together into a
+      single combined feed, latest news first.
+    '';
     homepage = "http://intertwingly.net/code/venus/docs/index.html";
     license = stdenv.lib.licenses.psfl;
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index e4d934968b2e..86ef76178081 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, python, zip }:
 
 let
-  version = "2013.06.21";
+  version = "2013.10.23.2";
 in
 stdenv.mkDerivation rec {
   name = "youtube-dl-${version}";
 
   src = fetchurl {
     url = "http://youtube-dl.org/downloads/${version}/${name}.tar.gz";
-    sha256 = "3d4e9cc38af3c2fccfafd83d0c6382080531fd03e9067ceccc6864dfbea92b1e";
+    sha256 = "d3f4c9e0da165395856e690314caa5eef4382bd994dd46f041a520bf9747c35d";
   };
 
   buildInputs = [ python ];
diff --git a/pkgs/tools/networking/aria/default.nix b/pkgs/tools/networking/aria/default.nix
index 4f58463ecf93..f6432f8aa225 100644
--- a/pkgs/tools/networking/aria/default.nix
+++ b/pkgs/tools/networking/aria/default.nix
@@ -16,6 +16,6 @@ rec {
       
   name = "aria-" + version;
   meta = {
-    description = "aria - multiprotocol DL manager";
+    description = "Multiprotocol download manager";
   };
 }
diff --git a/pkgs/tools/networking/axel/default.nix b/pkgs/tools/networking/axel/default.nix
index 0ee018509402..8a6d63d164c0 100644
--- a/pkgs/tools/networking/axel/default.nix
+++ b/pkgs/tools/networking/axel/default.nix
@@ -8,6 +8,6 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "A console downloading program. Has some features for parallel connections for faster downloading.";
+    description = "Console downloading program with some features for parallel connections for faster downloading";
   };
 }
diff --git a/pkgs/tools/networking/bwm-ng/default.nix b/pkgs/tools/networking/bwm-ng/default.nix
index 88460d86730c..4d18c4adb373 100644
--- a/pkgs/tools/networking/bwm-ng/default.nix
+++ b/pkgs/tools/networking/bwm-ng/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ];
 
   meta = with stdenv.lib; {
-    description = "Bandwidth Monitor NG is a small and simple console-based live network and disk io bandwidth monitor.";
+    description = "Bandwidth Monitor NG is a small and simple console-based live network and disk io bandwidth monitor";
     homepage = "http://www.gropp.org/?id=projects&sub=bwm-ng";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/tools/networking/chrony/default.nix b/pkgs/tools/networking/chrony/default.nix
index d7fe07570574..d15559961f6b 100644
--- a/pkgs/tools/networking/chrony/default.nix
+++ b/pkgs/tools/networking/chrony/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ readline ] ++ stdenv.lib.optional stdenv.isLinux libcap;
 
   meta = with stdenv.lib; {
-    description = "A pair of programs which are used to maintain the accuracy of the system clock on a computer.";
+    description = "Sets your computer's clock from time servers on the Net";
     homepage = "http://chrony.tuxfamily.org/";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/tools/networking/connect/default.nix b/pkgs/tools/networking/connect/default.nix
index 67f2b63c2928..c6291efad312 100644
--- a/pkgs/tools/networking/connect/default.nix
+++ b/pkgs/tools/networking/connect/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "make network connection via SOCKS and https proxy.";
+    description = "Make network connection via SOCKS and https proxy";
     longDescription = ''
       This proxy traversal tool is intended to assist OpenSSH (via ProxyCommand
       in ~/.ssh/config) and GIT (via $GIT_PROXY_COMMAND) utilize SOCKS and https proxies. 
diff --git a/pkgs/tools/networking/curl/7.15.nix b/pkgs/tools/networking/curl/7.15.nix
new file mode 100644
index 000000000000..0a87eaa944cd
--- /dev/null
+++ b/pkgs/tools/networking/curl/7.15.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl
+, zlibSupport ? false, zlib ? null
+, sslSupport ? false, openssl ? null
+, scpSupport ? false, libssh2 ? null
+, gssSupport ? false, gss ? null
+, c-aresSupport ? false, c-ares ? null
+, linkStatic ? false
+}:
+
+assert zlibSupport -> zlib != null;
+assert sslSupport -> openssl != null;
+assert scpSupport -> libssh2 != null;
+assert c-aresSupport -> c-ares != null;
+
+stdenv.mkDerivation rec {
+  name = "curl-7.15.0";
+
+  src = fetchurl {
+    url = "http://curl.haxx.se/download/archeology/${name}.tar.gz";
+    sha256 = "061bgjm6rv0l9804vmm4jvr023l52qvmy9qq4zjv4lgqhlljvhz3";
+  };
+
+  # Zlib and OpenSSL must be propagated because `libcurl.la' contains
+  # "-lz -lssl", which aren't necessary direct build inputs of
+  # applications that use Curl.
+  propagatedBuildInputs = with stdenv.lib;
+    optional zlibSupport zlib ++
+    optional gssSupport gss ++
+    optional c-aresSupport c-ares ++
+    optional sslSupport openssl;
+
+  preConfigure = ''
+    sed -e 's|/usr/bin|/no-such-path|g' -i.bak configure
+  '';
+  configureFlags = [
+      ( if sslSupport then "--with-ssl=${openssl}" else "--without-ssl" )
+      ( if scpSupport then "--with-libssh2=${libssh2}" else "--without-libssh2" )
+    ]
+    ++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}"
+    ++ stdenv.lib.optional gssSupport "--with-gssapi=${gss}"
+    ++ stdenv.lib.optionals linkStatic [ "--enable-static" "--disable-shared" ]
+  ;
+
+  dontDisableStatic = linkStatic;
+
+  CFLAGS = if stdenv ? isDietLibC then "-DHAVE_INET_NTOA_R_2_ARGS=1" else "";
+  LDFLAGS = if linkStatic then "-static" else "";
+  CXX = "g++";
+  CXXCPP = "g++ -E";
+
+  # libtool hack to get a static binary. Notice that to 'configure' I passed
+  # other LDFLAGS, because it doesn't use libtool for linking in the tests.
+  makeFlags = if linkStatic then "LDFLAGS=-all-static" else "";
+
+  crossAttrs = {
+    # We should refer to the cross built openssl
+    # For the 'urandom', maybe it should be a cross-system option
+    configureFlags = [
+        ( if sslSupport then "--with-ssl=${openssl.crossDrv}" else "--without-ssl" )
+        "--with-random /dev/urandom"
+      ]
+      ++ stdenv.lib.optionals linkStatic [ "--enable-static" "--disable-shared" ]
+    ;
+  };
+
+  passthru = {
+    inherit sslSupport openssl;
+  };
+
+  meta = {
+    homepage = "http://curl.haxx.se/";
+    description = "A command line tool for transferring files with URL syntax";
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/networking/filegive/default.nix b/pkgs/tools/networking/filegive/default.nix
index fc2b56efd105..443feee2ea03 100644
--- a/pkgs/tools/networking/filegive/default.nix
+++ b/pkgs/tools/networking/filegive/default.nix
@@ -11,15 +11,16 @@ let
     sha256 = "1swwfyzaj3l40yh9np3x4fcracgs79nwryc85sxbdakx8wwxs2xb";
   };
 
-  version = "0.6.1";
+  version = "0.7.1";
 
 in
 stdenv.mkDerivation rec {
   name = "filegive-${version}";
 
   src = fetchurl {
-    url = "http://viric.name/cgi-bin/filegive/tarball/${name}.tar.gz";
-    sha256 = "11rjw906nr73kysm9l84yg443rxzh22l934hir7892h02924i4c4";
+    url = "http://viric.name/cgi-bin/filegive/tarball/${name}.tar.gz?uuid=v${version}";
+    name = "${name}.tar.gz";
+    sha256 = "14yyif6q89ihn28kliszaf19vywjg9f7192q1ak8823da1svbq8a";
   };
 
   buildInputs = [ go ];
diff --git a/pkgs/tools/networking/fping/default.nix b/pkgs/tools/networking/fping/default.nix
index c51c8f59ff76..4bda944c68a5 100644
--- a/pkgs/tools/networking/fping/default.nix
+++ b/pkgs/tools/networking/fping/default.nix
@@ -10,6 +10,6 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://fping.org/";
-    description = "A program to send ICMP echo probes to network hosts.";
+    description = "Send ICMP echo probes to network hosts";
   };
 }
diff --git a/pkgs/tools/networking/gmvault/default.nix b/pkgs/tools/networking/gmvault/default.nix
index 8ab939481915..e78dfa5b2cae 100644
--- a/pkgs/tools/networking/gmvault/default.nix
+++ b/pkgs/tools/networking/gmvault/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   '';
 
   meta = {
-    description = "Gmvault Gmail Backup - Backup and restore your gmail account at will.";
+    description = "Backup and restore your gmail account";
     homepage = "http://gmvault.org";
     license = pkgs.lib.licenses.agpl3Plus;
   };
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index d44c9f831f34..e4a32e14260c 100644
--- a/pkgs/tools/networking/haproxy/default.nix
+++ b/pkgs/tools/networking/haproxy/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   version = "1.4.24";
   name = "haproxy-${version}";
-  
+
   src = fetchurl {
     url = "http://haproxy.1wt.eu/download/1.4/src/${name}.tar.gz";
     sha256 = "1vy7jz7l8qdd6ah3y65zarz9x9pf3bs02icxnrckpgh1s3s2h2b8";
@@ -17,7 +17,15 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications.";
+    description = "Reliable, high performance TCP/HTTP load balancer";
+    longDescription = ''
+      HAProxy is a free, very fast and reliable solution offering high
+      availability, load balancing, and proxying for TCP and HTTP-based
+      applications. It is particularly suited for web sites crawling under very
+      high loads while needing persistence or Layer7 processing. Supporting
+      tens of thousands of connections is clearly realistic with todays
+      hardware.
+    '';
     homepage = http://haproxy.1wt.eu;
     maintainers = [ stdenv.lib.maintainers.garbas ];
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/tools/networking/mosh/default.nix b/pkgs/tools/networking/mosh/default.nix
index f9562f7eff60..2708210af805 100644
--- a/pkgs/tools/networking/mosh/default.nix
+++ b/pkgs/tools/networking/mosh/default.nix
@@ -17,7 +17,15 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://mosh.mit.edu/;
-    description = "Remote terminal application that allows roaming, local echo, etc.";
+    description = "Mobile shell (ssh replacement)";
+    longDescription = ''
+      Remote terminal application that allows roaming, supports intermittent
+      connectivity, and provides intelligent local echo and line editing of
+      user keystrokes.
+
+      Mosh is a replacement for SSH. It's more robust and responsive,
+      especially over Wi-Fi, cellular, and long-distance links.
+    '';
     license = "GPLv3+";
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux;
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
index 7495c3bcd7f0..e42dfee7cae2 100644
--- a/pkgs/tools/networking/mu/default.nix
+++ b/pkgs/tools/networking/mu/default.nix
@@ -1,25 +1,39 @@
-{ fetchurl, stdenv, sqlite, pkgconfig, xapian, glib, gmime, texinfo, emacs, guile }:
+{ fetchurl, stdenv, sqlite, pkgconfig, xapian, glib, gmime, texinfo, emacs, guile
+, gtk3, webkit, libsoup, icu }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.9";
+  version = "0.9.9.5";
   name = "mu-${version}";
 
   src = fetchurl {
     url = "https://mu0.googlecode.com/files/mu-${version}.tar.gz";
-    sha256 = "04r0y05awsyb5hqwaxn1hq9jxijw20hwsgdbacqrma519f0y5y43";
+    sha256 = "1hwkliyb8fjrz5sw9fcisssig0jkdxzhccw0ld0l9a10q1l9mqhp";
   };
 
-  buildInputs = [ sqlite pkgconfig xapian glib gmime texinfo emacs guile ];
+  buildInputs = [ sqlite pkgconfig xapian glib gmime texinfo emacs guile
+                  gtk3 webkit libsoup icu ];
 
-  meta = {
-    description = "mu is a collection of utilties for indexing and searching Maildirs";
-
-    licenses = [ "GPLv3+" ];
+  preBuild = ''
+    # Fix mu4e-builddir (set it to $out)
+    substituteInPlace mu4e/mu4e-meta.el.in \
+      --replace "@abs_top_builddir@" "$out"
 
-    homepage = "http://www.djcbsoftware.nl/code/mu/";
+    # We install msg2pdf to bin/msg2pdf, fix its location in elisp
+    substituteInPlace mu4e/mu4e-actions.el \
+      --replace "/toys/msg2pdf/msg2pdf" "/bin/msg2pdf"
+  '';
 
-    platforms = stdenv.lib.platforms.all;
+  # Install mug and msg2pdf
+  postInstall = ''
+    cp -v toys/msg2pdf/msg2pdf $out/bin/
+    cp -v toys/mug/mug $out/bin/
+  '';
 
-    maintainers = [ stdenv.lib.maintainers.antono ];
+  meta = {
+    description = "A collection of utilties for indexing and searching Maildirs";
+    license = "GPLv3+";
+    homepage = "http://www.djcbsoftware.nl/code/mu/";
+    platforms = stdenv.lib.platforms.mesaPlatforms;
+    maintainers = with stdenv.lib.maintainers; [ antono the-kenny ];
   };
 }
diff --git a/pkgs/tools/networking/netcat-openbsd/default.nix b/pkgs/tools/networking/netcat-openbsd/default.nix
new file mode 100644
index 000000000000..c7bbf3892d29
--- /dev/null
+++ b/pkgs/tools/networking/netcat-openbsd/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, pkgconfig, libbsd}:
+
+stdenv.mkDerivation rec {
+  name = "netcat-openbsd-1.105";
+  version = "1.105";
+
+  srcs = [
+    (fetchurl {
+      url = "mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_1.105.orig.tar.gz";
+      md5 = "7e67b22f1ad41a1b7effbb59ff28fca1";
+    })
+    (fetchurl {
+      url = "mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_1.105-7.debian.tar.gz";
+      md5 = "e914f8eb7eda5c75c679dd77787ac76b";
+    })
+  ];
+
+  buildInputs = [ pkgconfig libbsd ];
+  sourceRoot = name;
+  patches = [ "../debian/patches/*.patch" ];
+
+  installPhase = ''
+    install -Dm0755 nc $out/bin/nc
+  '';
+
+  meta = {
+    homepage = "http://packages.debian.org/netcat-openbsd";
+    description = "TCP/IP swiss army knife. OpenBSD variant.";
+    platforms = stdenv.lib.platforms.linux;
+  };
+
+}
diff --git a/pkgs/tools/networking/netrw/default.nix b/pkgs/tools/networking/netrw/default.nix
index 23ff6ddba55a..77ef6e0ad306 100644
--- a/pkgs/tools/networking/netrw/default.nix
+++ b/pkgs/tools/networking/netrw/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A simple tool for transporting data over the network.";
+    description = "Simple tool for transporting data over the network";
     license = stdenv.lib.licenses.gpl2;
     homepage = "http://mamuti.net/netrw/index.en.html";
   };
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index 81bf7c908eff..a196c309197e 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -7,7 +7,7 @@
 let
   pn = "network-manager-applet";
   major = "0.9";
-  version = "${major}.8.2";
+  version = networkmanager.version;
 in
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pn}/${major}/${name}.tar.xz";
-    sha256 = "1ixd19b7ap29lz9lq4mmlq9lqsmnisix1a33hrxrl68wjx1wfh55";
+    sha256 = "130rdin3wh9vlwhscbgh3lsssi89p5n4maws4y3l9ja720llk27n";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index af35e3f71da2..25494d75f0dc 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "network-manager-${version}";
-  version = "0.9.8.0";
+  version = "0.9.8.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/0.9/NetworkManager-${version}.tar.xz";
-    sha256 = "0sq9yvln0yjff1sgk483m98ca2x2sqk5vh4kmn382k9msvgbqrn3";
+    sha256 = "168dv290mc19szgv1l108i8gyha47wmyr41jlzwqvvibynmg17sc";
   };
 
   preConfigure = ''
@@ -59,6 +59,9 @@ stdenv.mkDerivation rec {
       
       # FIXME: Workaround until NixOS' dbus+systemd supports at_console policy
       substituteInPlace $out/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf --replace 'at_console="true"' 'group="networkmanager"'
+
+      # As NixOS doesn't seem to handle systemd Aliases, we just rename the dispatcher service file
+      mv $out/etc/systemd/system/NetworkManager-dispatcher.service $out/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service
     '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/network-manager/openconnect.nix b/pkgs/tools/networking/network-manager/openconnect.nix
index ccb5badd9031..fc9a964004e5 100644
--- a/pkgs/tools/networking/network-manager/openconnect.nix
+++ b/pkgs/tools/networking/network-manager/openconnect.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "16sdgrabbh2y7j6g9ic9lm5z6sxn7iz3j0xininkiwnjgbsqf961";
+    sha256 = "1dl7wcmibrzf9qnpchgk9fxfhw0j2hzzzqmylkm2c41iv81xrd4r";
   };
 
   buildInputs = [ openconnect networkmanager ]
diff --git a/pkgs/tools/networking/network-manager/openvpn.nix b/pkgs/tools/networking/network-manager/openvpn.nix
index c51bf09f99c0..b72312a1af2d 100644
--- a/pkgs/tools/networking/network-manager/openvpn.nix
+++ b/pkgs/tools/networking/network-manager/openvpn.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "1klmhcizp6fmbxjbyihsk2w0alnkyiw2a3ldgijq8s224k0z95j1";
+    sha256 = "11v63s1f3bsa7pmkvr7x65rsigh48wfqzsnixrwc3wqslsv5535g";
   };
 
   buildInputs = [ openvpn networkmanager ]
diff --git a/pkgs/tools/networking/network-manager/pptp.nix b/pkgs/tools/networking/network-manager/pptp.nix
index 41dda0086e4b..dc2c800e7971 100644
--- a/pkgs/tools/networking/network-manager/pptp.nix
+++ b/pkgs/tools/networking/network-manager/pptp.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "7f46ea61376d13d03685eca3f26a26e0022f6e92e6f1fc356034ca9717eb6dac";
+    sha256 = "7f46ea61376d13d03685eca3f26a26e0022f6e92e6f1fc356034ca9717eb6daa";
   };
 
   buildInputs = [ networkmanager pptp ppp ]
diff --git a/pkgs/tools/networking/network-manager/vpnc.nix b/pkgs/tools/networking/network-manager/vpnc.nix
index 683a7e76948d..10a497e0238f 100644
--- a/pkgs/tools/networking/network-manager/vpnc.nix
+++ b/pkgs/tools/networking/network-manager/vpnc.nix
@@ -4,11 +4,13 @@
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-vpnc";
-  version = networkmanager.version;
+  # TODO: version doesn't match due to bad release
+  #version = networkmanager.version;
+  version = "0.9.8.6";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "1hdigqfvsjlr1zr23lwmcsvcv1x74cqhfpwrd0j0zhhmjdb4ql74";
+    sha256 = "1mmbm3q27b3dbbs4vs976cxif8jdcs92j3ajdbgykrnl2gbnqc20";
   };
 
   buildInputs = [ vpnc networkmanager ]
diff --git a/pkgs/tools/networking/networkmanagement/default.nix b/pkgs/tools/networking/networkmanagement/default.nix
index 474a46387588..1c3191f3bf57 100644
--- a/pkgs/tools/networking/networkmanagement/default.nix
+++ b/pkgs/tools/networking/networkmanagement/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "networkmanagement";
-  version = "0.9.0.4";
+  version = "0.9.0.9";
   name = "${pname}-${version}";
 in
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://kde/unstable/${pname}/${version}/src/${name}.tar.bz2";
-    sha256 = "0mp2jai6f2qpywjwgvxcl1nh27idgy740vwiahfamq8w2y90a3aj";
+    sha256 = "1jiij9iz8v9mgcq811svmlyfvmvkazpclkf4yk7193m4y8yn19yn";
   };
 
   buildInputs = [ kdelibs kde_workspace networkmanager ];
diff --git a/pkgs/tools/networking/nylon/default.nix b/pkgs/tools/networking/nylon/default.nix
index 3d1563f9520d..9050423cfafb 100644
--- a/pkgs/tools/networking/nylon/default.nix
+++ b/pkgs/tools/networking/nylon/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://monkey.org/~marius/nylon;
-    description = "Proxy server, supporting SOCKS 4 and 5, as well as a mirror mode.";
+    description = "Proxy server, supporting SOCKS 4 and 5, as well as a mirror mode";
     license = "free";
   };
 }
diff --git a/pkgs/tools/networking/offlineimap/default.nix b/pkgs/tools/networking/offlineimap/default.nix
index a5b46ebbc3c6..fa1d2fb805a7 100644
--- a/pkgs/tools/networking/offlineimap/default.nix
+++ b/pkgs/tools/networking/offlineimap/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "OfflineImap synchronizes emails between two repositories, so that you can read the same mailbox from multiple computers.";
+    description = "Synchronize emails between two repositories, so that you can read the same mailbox from multiple computers";
     homepage = "http://offlineimap.org";
     license = pkgs.lib.licenses.gpl2Plus;
     maintainers = [ pkgs.lib.maintainers.garbas ];
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 6d3120e7b996..35586031ef55 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
     homepage = http://www.openssh.org/;
     description = "An implementation of the SSH protocol";
     license = "bsd";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
     maintainers = stdenv.lib.maintainers.eelco;
   };
 }
diff --git a/pkgs/tools/networking/p2p/amule/default.nix b/pkgs/tools/networking/p2p/amule/default.nix
index 43de92afe9aa..44384507a79d 100644
--- a/pkgs/tools/networking/p2p/amule/default.nix
+++ b/pkgs/tools/networking/p2p/amule/default.nix
@@ -46,7 +46,7 @@ mkDerivation rec {
 
   meta = {
     homepage = http://amule.org/;
-    description = "aMule, a peer-to-peer client for the eD2K and Kademlia networks";
+    description = "Peer-to-peer client for the eD2K and Kademlia networks";
 
     longDescription = ''
       aMule is an eMule-like client for the eD2k and Kademlia
diff --git a/pkgs/tools/networking/p2p/bit-tornado/default.nix b/pkgs/tools/networking/p2p/bit-tornado/default.nix
index 14e13a17559f..92458b3d1459 100644
--- a/pkgs/tools/networking/p2p/bit-tornado/default.nix
+++ b/pkgs/tools/networking/p2p/bit-tornado/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "Bittorrent client with IPv6 support.";
+    description = "Bittorrent client with IPv6 support";
   };
 }
diff --git a/pkgs/tools/networking/pdsh/default.nix b/pkgs/tools/networking/pdsh/default.nix
index ec0b7c6f60b7..80fc075107c1 100644
--- a/pkgs/tools/networking/pdsh/default.nix
+++ b/pkgs/tools/networking/pdsh/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://code.google.com/p/pdsh/";
-    description = "A high-performance, parallel remote shell utility.";
+    description = "High-performance, parallel remote shell utility";
     license = "GPLv2";
 
     longDescription = ''
diff --git a/pkgs/tools/networking/proxychains/default.nix b/pkgs/tools/networking/proxychains/default.nix
index e2eeb73fc649..6778cf94907e 100644
--- a/pkgs/tools/networking/proxychains/default.nix
+++ b/pkgs/tools/networking/proxychains/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "Proxifier for SOCKS proxies.";
+    description = "Proxifier for SOCKS proxies";
     homepage = http://proxychains.sourceforge.net;
     license = "GPLv2+";
   };
diff --git a/pkgs/tools/networking/tinc/default.nix b/pkgs/tools/networking/tinc/default.nix
index dd6bfb82aab0..c2b25e863f20 100644
--- a/pkgs/tools/networking/tinc/default.nix
+++ b/pkgs/tools/networking/tinc/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, lzo, openssl, zlib}:
 
 stdenv.mkDerivation rec {
-  version = "1.0.21";
+  version = "1.0.22";
   name = "tinc-${version}";
 
   src = fetchurl {
     url = "http://www.tinc-vpn.org/packages/tinc-${version}.tar.gz";
-    sha256 = "12v1x9p4f8y9967ypwxhkr10q6pk4cdallr0k4lic0kcfsmmxhba";
+    sha256 = "0b2w5jic0zs8smfq2a9w99ql7lspb7jph3psmqaflw0hq4gdsfa7";
   };
 
   buildInputs = [ lzo openssl zlib ];
diff --git a/pkgs/tools/networking/trickle/default.nix b/pkgs/tools/networking/trickle/default.nix
index 646108525d3c..254dc168ec8c 100644
--- a/pkgs/tools/networking/trickle/default.nix
+++ b/pkgs/tools/networking/trickle/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   configureFlags = "--with-libevent";
 
   meta = {
-    description = "Trickle, a portable lightweight userspace bandwidth shaper.";
+    description = "Lightweight userspace bandwidth shaper";
     license = "BSD";
     homepage = http://monkey.org/~marius/pages/?page=trickle;
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index 98fc8e4d1451..ea9719dd9b29 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     "--localstatedir=/var" ];
 
   meta = {
-    description = "Unbound, a validating, recursive, and caching DNS resolver.";
+    description = "Validating, recursive, and caching DNS resolver";
     license = "BSD";
     homepage = http://www.unbound.net;
     platforms = with stdenv.lib.platforms; linux;
diff --git a/pkgs/tools/package-management/cabal-install/1.18.0.1.nix b/pkgs/tools/package-management/cabal-install/1.18.0.2.nix
index ceb54effdd97..9b56f60546ce 100644
--- a/pkgs/tools/package-management/cabal-install/1.18.0.1.nix
+++ b/pkgs/tools/package-management/cabal-install/1.18.0.2.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-install";
-  version = "1.18.0.1";
-  sha256 = "0b44w4iqzaq5119zjkpagd3a2279kz6xq5pk5rqnlnfn8a8ihdbb";
+  version = "1.18.0.2";
+  sha256 = "0ah9yzp486p3cvs9b7nid0jmf0a56fg65s3jx2r8lb84pi50d92c";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/tools/package-management/nix-repl/default.nix b/pkgs/tools/package-management/nix-repl/default.nix
new file mode 100644
index 000000000000..648abe882c4f
--- /dev/null
+++ b/pkgs/tools/package-management/nix-repl/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, nix, readline, boehmgc }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "nix-repl-${getVersion nix}-${substring 0 7 src.rev}";
+
+  src = fetchgit {
+    url = https://github.com/edolstra/nix-repl.git;
+    rev = "81d658fe4afda234028cd4551e12491db4303957";
+    sha256 = "067mj8as99n0hkrr2qss3y3hnr8c5zy4n8bqx3z900n3j43cwzyc";
+  };
+
+  buildInputs = [ nix readline boehmgc ];
+
+  buildPhase = "true";
+
+  # FIXME: unfortunate cut&paste.
+  installPhase =
+    ''
+      mkdir -p $out/bin
+      g++ -O3 -Wall -std=c++0x \
+        -o $out/bin/nix-repl nix-repl.cc \
+        -I${nix}/include/nix -L${nix}/lib/nix \
+        -lformat -lutil -lstore -lexpr -lmain -lreadline -lgc
+    '';
+
+  meta = {
+    homepage = https://github.com/edolstra/nix-repl;
+    description = "An interactive environment for evaluating and building Nix expressions";
+    maintainers = [ maintainers.eelco ];
+    license = licenses.gpl3;
+    platforms = nix.meta.platforms;
+  };
+}
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 89cf2d1e00e3..9b0b8b3f24e8 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-1.6";
+  name = "nix-1.6.1";
 
   src = fetchurl {
     url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
-    sha256 = "2e451a6ad0b43997d8df71d29a7d20ef42f7715fe16efbf4b53bdcdd1d5227fe";
+    sha256 = "31d15f99b2405924a4be278334cc973a71999303631e6798c1d294db9be4bf84";
   };
 
   nativeBuildInputs = [ perl pkgconfig ];
@@ -69,5 +69,7 @@ stdenv.mkDerivation rec {
     description = "The Nix Deployment System";
     homepage = http://nixos.org/;
     license = "LGPLv2+";
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index 17e860f7d7cd..7bdc8d1aefb6 100644
--- a/pkgs/tools/package-management/nix/unstable.nix
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-1.6pre3220_fecad91";
+  name = "nix-1.7pre3267_2d9bb56";
 
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/6038922/download/5/${name}.tar.xz";
-    sha256 = "0251b8cb7ad2a4974a9c8002c65f1c6e1b334be082d3dd2f085929594637f947";
+    url = "http://hydra.nixos.org/build/6611474/download/5/${name}.tar.xz";
+    sha256 = "f62b48910651c4651cd4473a0bb433d65cf60c93c0f80d589b26fec52b3b82b3";
   };
 
   nativeBuildInputs = [ perl pkgconfig ];
@@ -69,5 +69,7 @@ stdenv.mkDerivation rec {
     description = "The Nix Deployment System";
     homepage = http://nixos.org/;
     license = "LGPLv2+";
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/nixops/default.nix b/pkgs/tools/package-management/nixops/default.nix
index 3381e3644fe5..b23c8139309d 100644
--- a/pkgs/tools/package-management/nixops/default.nix
+++ b/pkgs/tools/package-management/nixops/default.nix
@@ -1,12 +1,12 @@
 { lib, pythonPackages, fetchurl, libxslt, docbook5_xsl, openssh }:
 
 pythonPackages.buildPythonPackage rec {
-  name = "nixops-1.1";
+  name = "nixops-1.1.1";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://nixos.org/releases/nixops/${name}/${name}.tar.bz2";
-    sha256 = "1i0v4v83s663izw6al63avhs0378rp3nxchy8nkb1zam5rj097z2";
+    sha256 = "0hb77cf9l8qcjp6a1gzkzv7k10j5zvp23ilxgx5x6j93602d5jwb";
   };
 
   buildInputs = [ libxslt ];
@@ -40,6 +40,6 @@ pythonPackages.buildPythonPackage rec {
     homepage = https://github.com/NixOS/nixops;
     description = "NixOS cloud provisioning and deployment tool";
     maintainers = [ lib.maintainers.eelco lib.maintainers.rob ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/apg/default.nix b/pkgs/tools/security/apg/default.nix
index 28f66e1e4929..2190a1ffbe63 100644
--- a/pkgs/tools/security/apg/default.nix
+++ b/pkgs/tools/security/apg/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   patches = [ ./apg.patch ];
 
   meta = {
-    description = "A tool set for random password generation.";
+    description = "Tools for random password generation";
     longDescription = ''
       APG (Automated Password Generator) is the tool set for random
       password generation.
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index cb32085a8cfe..ec00137b36f7 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = http://www.clamav.net;
-    description = "an open source (GPL) antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats.";
+    description = "Antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats";
     license = licenses.gpl2;
     maintainers = [ maintainers.phreedom ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 5ac059070801..1a443fc18b61 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -1,53 +1,53 @@
 { stdenv, fetchurl, pythonPackages, unzip, gamin }:
 
-let version = "0.8.6"; in
+let version = "0.8.10"; in
 
 pythonPackages.buildPythonPackage {
   name = "fail2ban-${version}";
   namePrefix = "";
 
   src = fetchurl {
-    url = "https://github.com/fail2ban/fail2ban/zipball/${version}";
-    name = "fail2ban-${version}.zip";
-    sha256 = "1linfz5qxmm4225lzi9vawsa79y41d3rcdahvrzlyqlhb02ipd55";
+    url    = "https://github.com/fail2ban/fail2ban/zipball/${version}";
+    name   = "fail2ban-${version}.zip";
+    sha256 = "0zbjwnghpdnzan7hn40cjjh2r06p2ph5kblpm0w1r72djwsk67x9";
   };
 
   buildInputs = [ unzip ];
 
   pythonPath = [ gamin ];
 
-  preConfigure =
-    ''
-      substituteInPlace setup.cfg \
-        --replace /usr $out
-
-      substituteInPlace setup.py \
-        --replace /etc $out/etc \
-        --replace /var $TMPDIR/var \
-
-      for i in fail2ban-client fail2ban-regex fail2ban-server; do
-        substituteInPlace $i \
-          --replace /usr/share/fail2ban $out/share/fail2ban
-      done
-      
-      for i in config/action.d/sendmail*.conf; do
-        substituteInPlace $i \
-          --replace /usr/sbin/sendmail sendmail \
-          --replace /usr/bin/whois whois
-      done
-    '';
+  preConfigure = ''
+    substituteInPlace setup.cfg \
+      --replace /usr $out
+
+    substituteInPlace setup.py \
+      --replace /usr $out \
+      --replace /etc $out/etc \
+      --replace /var $TMPDIR/var \
+
+    for i in fail2ban-client fail2ban-regex fail2ban-server; do
+      substituteInPlace $i \
+        --replace /usr/share/fail2ban $out/share/fail2ban
+    done
+
+    for i in config/action.d/sendmail*.conf; do
+      substituteInPlace $i \
+        --replace /usr/sbin/sendmail sendmail \
+        --replace /usr/bin/whois whois
+    done
+  '';
 
   doCheck = false;
-  
-  installCommand =
-    ''
-      python setup.py install --prefix=$out
-    '';
-
-  meta = {
-    homepage = http://www.fail2ban.org/;
+
+  installCommand = ''
+    python setup.py install --prefix=$out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage    = http://www.fail2ban.org/;
     description = "A program that scans log files for repeated failing login attempts and bans IP addresses";
-    license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
+    license     = licenses.gpl2Plus;
+    maintainers = with maintainers; [ eelco lovek323 ];
+    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix
index baa8dd87ec1f..f242c3f323ae 100644
--- a/pkgs/tools/security/gnupg/default.nix
+++ b/pkgs/tools/security/gnupg/default.nix
@@ -13,11 +13,11 @@ assert useUsb -> (libusb != null);
 assert useCurl -> (curl != null);
 
 stdenv.mkDerivation rec {
-  name = "gnupg-2.0.21";
+  name = "gnupg-2.0.22";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "1xgf1q1phdawk6y66haaqcvfnlsqk12jmjin1m2d5x6fqw18kpq0";
+    sha256 = "0lg210acj2rxq291q4cwamg9gx6gh2prb1xa93y5jhw5b6r0lza3";
   };
 
   buildInputs
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://gnupg.org/";
-    description = "GNU Privacy Guard (GnuPG), GNU Project's implementation of the OpenPGP standard";
+    description = "free implementation of the OpenPGP standard for encrypting and signing data";
     license = stdenv.lib.licenses.gpl3Plus;
 
     longDescription = ''
diff --git a/pkgs/tools/security/gnupg1/default.nix b/pkgs/tools/security/gnupg1/default.nix
index f9b959061da0..192970b5caed 100644
--- a/pkgs/tools/security/gnupg1/default.nix
+++ b/pkgs/tools/security/gnupg1/default.nix
@@ -1,38 +1,19 @@
-{ # Support for the IDEA cipher (used by the old PGP) should only be
-  # enabled if it is legal for you to do so.
-  ideaSupport ? false
-
-, stdenv, fetchurl, readline, bzip2
-}:
-
-let
-
-  idea = fetchurl {
-    url = http://tarballs.nixos.org/idea.c.gz;
-    md5 = "9dc3bc086824a8c7a331f35e09a3e57f";
-  };
-
-in
+{ stdenv, fetchurl, readline, bzip2 }:
 
 stdenv.mkDerivation rec {
-  name = "gnupg-1.4.13";
+  name = "gnupg-1.4.15";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha1 = "17a75c54d292bd0923f0a1817a1b02ded37d1de1";
+    sha1 = "63ebf0ab375150903c65738070e4105200197fd4";
   };
 
   buildInputs = [ readline bzip2 ];
 
-  preConfigure = stdenv.lib.optionalString ideaSupport
-    ''
-      gunzip < ${idea} > ./cipher/idea.c
-    '';
-
   doCheck = true;
 
   meta = {
-    description = "GnuPG, a free implementation of the OpenPGP standard for encrypting and signing data";
+    description = "free implementation of the OpenPGP standard for encrypting and signing data";
     homepage = http://www.gnupg.org/;
     license = "GPLv3+";
     platforms = stdenv.lib.platforms.gnu; # arbitrary choice
diff --git a/pkgs/tools/security/haveged/default.nix b/pkgs/tools/security/haveged/default.nix
new file mode 100644
index 000000000000..48f9727b3c03
--- /dev/null
+++ b/pkgs/tools/security/haveged/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "haveged-${version}";
+  version = "1.7c";
+
+  src = fetchurl {
+    url = "http://www.issihosts.com/haveged/haveged-${version}.tar.gz";
+    sha256 = "08gi3d9lbrllk5lyxw8l65py88xhia48w758lqjddh3gv7g7wfa0";
+  };
+
+  meta = {
+    description = "A simple entropy daemon";
+    longDescription = ''
+      The haveged project is an attempt to provide an easy-to-use, unpredictable
+      random number generator based upon an adaptation of the HAVEGE algorithm.
+      Haveged was created to remedy low-entropy conditions in the Linux random device
+      that can occur under some workloads, especially on headless servers. Current development
+      of haveged is directed towards improving overall reliablity and adaptability while minimizing
+      the barriers to using haveged for other tasks.
+    '';
+    homepage = http://www.issihosts.com/haveged/;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = stdenv.lib.maintainers.iElectric;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/tools/security/mkpasswd/default.nix b/pkgs/tools/security/mkpasswd/default.nix
index f131fcef4ce2..b27707a00159 100644
--- a/pkgs/tools/security/mkpasswd/default.nix
+++ b/pkgs/tools/security/mkpasswd/default.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   name = "mkpasswd-${version}";
 
-  version = "5.0.25";
+  version = "5.0.26";
 
   src = fetchurl {
     url = "http://ftp.debian.org/debian/pool/main/w/whois/whois_${version}.tar.xz";
-    sha256 = "0qb859vwd6g93cb5zbf19gpw2g2b9s1qlq4nqia1a966pjkvw1qj";
+    sha256 = "729625ef81425f4771e06492bb4f3e9f24bff75b8176044ce8d2f605f7ad6af5";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/security/pass/default.nix b/pkgs/tools/security/pass/default.nix
index ba86b0b1d9ce..e78002837c72 100644
--- a/pkgs/tools/security/pass/default.nix
+++ b/pkgs/tools/security/pass/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, getopt }:
+{ stdenv, fetchurl
+, coreutils, gnused, getopt, pwgen, git, tree, gnupg
+, makeWrapper }:
 
 stdenv.mkDerivation rec {
   version = "1.4.2";
@@ -9,11 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "00m3q6dihrhw8cxsrham3bdqg5841an8ch4s3a4k5fynlcb802m1";
   };
 
+  buildInputs = [ makeWrapper ];
+
   meta = with stdenv.lib; {
-    description = "Stores, retrieves, generates, and synchronizes passwords securely.";
+    description = "Stores, retrieves, generates, and synchronizes passwords securely";
     homepage    = http://zx2c4.com/projects/password-store/;
     license     = licenses.gpl2Plus;
-    maintainers = with maintainers; [ lovek323 ];
+    maintainers = with maintainers; [ lovek323 the-kenny ];
     platforms   = platforms.unix;
 
     longDescription = ''
@@ -25,8 +29,6 @@ stdenv.mkDerivation rec {
     '';
   };
 
-  propagatedBuildInputs = [ getopt ];
-
   installPhase = ''
     # link zsh and fish completions
     sed -ie '22s/^#//' Makefile
@@ -44,5 +46,14 @@ stdenv.mkDerivation rec {
     sed -ie '34c GETOPT="${getopt}/bin/getopt"' \
       "$out/lib/password-store.platform.sh"
   '';
-}
 
+  postFixup = ''
+    # Fix program name in --help
+    substituteInPlace $out/bin/pass \
+      --replace "\$program" "pass"
+
+    # Ensure all dependencies are in PATH
+    wrapProgram $out/bin/pass \
+      --prefix PATH : "${coreutils}/bin:${gnused}/bin:${getopt}/bin:${gnupg}/bin:${git}/bin:${tree}/bin:${pwgen}/bin"
+  '';
+}
diff --git a/pkgs/tools/security/prey/default.nix b/pkgs/tools/security/prey/default.nix
new file mode 100644
index 000000000000..fe71806301dd
--- /dev/null
+++ b/pkgs/tools/security/prey/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, fetchgit, curl, scrot, imagemagick, xawtv, inetutils, makeWrapper, coreutils
+, apiKey ? ""
+, deviceKey ? "" }:
+
+# TODO: this should assert keys are set, somehow if set through .override assertion fails
+#assert apiKey != "";
+#assert deviceKey != "";
+
+let
+  modulesSrc = fetchgit {
+    url = "git://github.com/prey/prey-bash-client-modules.git";
+    rev = "aba260ef110834cb2e92923a31f50c15970639ee";
+  };
+in stdenv.mkDerivation rec {
+  name = "prey-bash-client-${version}";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "https://github.com/prey/prey-bash-client/archive/v${version}.tar.gz";
+    sha256 = "09cb15jh4jdwvix9nx048ajkw2r5jaflk68y3rkha541n8n0qwh0";
+  };
+
+  buildInputs = [ curl scrot imagemagick xawtv makeWrapper ];
+
+  phases = "unpackPhase installPhase";
+
+  installPhase = ''
+    substituteInPlace config --replace api_key=\'\' "api_key='${apiKey}'"
+    substituteInPlace config --replace device_key=\'\' "device_key='${deviceKey}'"
+
+    substituteInPlace prey.sh --replace /bin/bash $(type -Pp bash)
+    mkdir -p $out/modules
+    cp -R . $out
+    cp -R ${modulesSrc}/* $out/modules/
+    wrapProgram "$out/prey.sh" \
+      --prefix PATH ":" "${xawtv}/bin:${imagemagick}/bin:${curl}/bin:${scrot}/bin:${inetutils}/bin:${coreutils}/bin" \
+      --set CURL_CA_BUNDLE "/etc/ssl/certs/ca-bundle.crt"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://preyproject.com;
+    description = "Proven tracking software that helps you find, lock and recover your devices when stolen or missing";
+    maintainers = with maintainers; [ iElectric ];
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/tools/security/pwgen/default.nix b/pkgs/tools/security/pwgen/default.nix
index aaa3b577657f..ef91e69428a3 100644
--- a/pkgs/tools/security/pwgen/default.nix
+++ b/pkgs/tools/security/pwgen/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
     sha256 = "1afxbkdl9b81760pyb972k18dmidrciy3vzcnspp3jg0aa316yn8";
   };
   meta = {
-	description = "Small, GPL'ed password generator which creates passwords which can be easily memorized by a human.";
-        platforms = stdenv.lib.platforms.all;
+    description = "Password generator which creates passwords which can be easily memorized by a human";
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/security/seccure/0.4.nix b/pkgs/tools/security/seccure/default.nix
index 33a77c078446..33a77c078446 100644
--- a/pkgs/tools/security/seccure/0.4.nix
+++ b/pkgs/tools/security/seccure/default.nix
diff --git a/pkgs/tools/security/sshuttle/default.nix b/pkgs/tools/security/sshuttle/default.nix
new file mode 100644
index 000000000000..61ba63862afa
--- /dev/null
+++ b/pkgs/tools/security/sshuttle/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, iptables, python, pythonPackages }:
+  
+stdenv.mkDerivation rec {
+  name = "sshuttle-${version}";
+  version = "0.61";
+
+  src = fetchurl {
+    url = "https://github.com/apenwarr/sshuttle/archive/sshuttle-0.61.tar.gz";
+    sha256 = "1v2v1kbwnmx6ygzhbgqcmyafx914s2p7vjp7l0pf52sa7qkliy9b";
+  };
+
+  preBuild = ''
+   substituteInPlace Documentation/all.do --replace "/bin/ls" "$(type -tP ls)";
+   substituteInPlace Documentation/md2man.py --replace "/usr/bin/env python" "${python}/bin/python"
+  '';
+
+  phases = "unpackPhase installPhase";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -R . $out
+    ln -s $out/sshuttle $out/bin/sshuttle
+  '';
+  
+
+  buildInputs = [ iptables python pythonPackages.markdown pythonPackages.beautifulsoup ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/apenwarr/sshuttle;
+    description = "Transparent proxy server that works as a poor man's VPN";
+    maintainers = with maintainers; [ iElectric ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/security/tcpcrypt/0001-Run-tcpcryptd-under-uid-93-instead-of-666.patch b/pkgs/tools/security/tcpcrypt/0001-Run-tcpcryptd-under-uid-93-instead-of-666.patch
new file mode 100644
index 000000000000..addf00796a8a
--- /dev/null
+++ b/pkgs/tools/security/tcpcrypt/0001-Run-tcpcryptd-under-uid-93-instead-of-666.patch
@@ -0,0 +1,25 @@
+From 4ef50d76a2da61be60fea448690e24f35bc37299 Mon Sep 17 00:00:00 2001
+From: Peter Simons <simons@cryp.to>
+Date: Wed, 11 Sep 2013 17:19:29 +0200
+Subject: [PATCH] Run tcpcryptd under uid 93 instead of 666.
+
+---
+ user/src/linux.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/user/src/linux.c b/user/src/linux.c
+index b51e6b2..8199193 100644
+--- a/user/src/linux.c
++++ b/user/src/linux.c
+@@ -198,7 +198,7 @@ void linux_drop_privs(void)
+ 
+ 	cap_free(caps);
+ 
+-	if (setuid(666) == -1)
++	if (setuid(93) == -1)
+ 		err(1, "setuid()");
+ 
+ 	caps = cap_init();
+-- 
+1.8.3.4
+
diff --git a/pkgs/tools/security/tcpcrypt/default.nix b/pkgs/tools/security/tcpcrypt/default.nix
index 3026ed66d72f..17c6993826d8 100644
--- a/pkgs/tools/security/tcpcrypt/default.nix
+++ b/pkgs/tools/security/tcpcrypt/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv
+{ fetchurl, stdenv, autoconf, automake, libtool
 , openssl, libcap, libnfnetlink, libnetfilter_queue
 }:
 
@@ -14,9 +14,13 @@ stdenv.mkDerivation rec {
     name = "${name}.tar.gz";
   };
 
-  buildInputs = [ openssl libcap libnfnetlink libnetfilter_queue ];
+  dontStrip = true;
 
-  preConfigure = "cd user";
+  buildInputs = [ autoconf automake libtool openssl libcap libnfnetlink libnetfilter_queue ];
+
+  patches = [ ./0001-Run-tcpcryptd-under-uid-93-instead-of-666.patch ];
+
+  preConfigure = "cd user; autoreconf -i";
 
   meta = {
     homepage = "http://tcpcrypt.org/";
diff --git a/pkgs/tools/security/tor/torsocks.nix b/pkgs/tools/security/tor/torsocks.nix
index ac60ccb16a1f..0254b143edfd 100644
--- a/pkgs/tools/security/tor/torsocks.nix
+++ b/pkgs/tools/security/tor/torsocks.nix
@@ -1,14 +1,16 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchgit, autoreconfHook }:
 stdenv.mkDerivation rec {
   pname = "torsocks";
   name = "${pname}-${version}";
-  version = "1.2";
+  version = "1.3";
   
-  src = fetchurl {
-    url = "http://${pname}.googlecode.com/files/${name}.tar.gz";
-    sha256 = "1m0is5q24sf7jjlkl0icfkdc0m53nbkg0q72s57p48yp4hv7v9dy";
+  src = fetchgit {
+    url = meta.repositories.git;
+    rev = "refs/tags/${version}";
+    sha256 = "1cqplb36fkdb81kzf48xlxclf64wnp8r56x1gjayax1h6x4aal1w";
   };
 
+  buildInputs = [ autoreconfHook ];
   preConfigure = ''
       export configureFlags="$configureFlags --libdir=$out/lib"
   '';
@@ -16,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "use socks-friendly applications with Tor";
     homepage = http://code.google.com/p/torsocks/;
+    repositories.git = https://git.torproject.org/torsocks.git;
     license = "GPLv2";
   };
 }
diff --git a/pkgs/tools/security/torbutton/default.nix b/pkgs/tools/security/torbutton/default.nix
index 348d96b00247..05bab06d3827 100644
--- a/pkgs/tools/security/torbutton/default.nix
+++ b/pkgs/tools/security/torbutton/default.nix
@@ -21,7 +21,12 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = https://www.torproject.org/torbutton/;
-    description = "the component in Tor Browser Bundle that takes care of application-level security and privacy concerns in Firefox. To keep you safe, Torbutton disables many types of active content.";
+    description = "Part of the Tor Browser Bundle";
+    longDescription = ''
+      The component in Tor Browser Bundle that takes care of application-level
+      security and privacy concerns in Firefox. To keep you safe, Torbutton
+      disables many types of active content.
+    '';
     license = licenses.mit;
     maintainers = [ maintainers.phreedom ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/gptfdisk/default.nix b/pkgs/tools/system/gptfdisk/default.nix
index 9db39411854b..7c8c2ec09ed3 100644
--- a/pkgs/tools/system/gptfdisk/default.nix
+++ b/pkgs/tools/system/gptfdisk/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libuuid, popt, icu, ncurses }:
 
 stdenv.mkDerivation rec {
-  name = "gptfdisk-0.8.5";
+  name = "gptfdisk-0.8.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/gptfdisk/${name}.tar.gz";
-    sha256 = "1yaax2mga7n847x1ihbgvv4drzvndgnn4mii0mz1ab1150gnkk0m";
+    sha256 = "1cj7lribq8f3i4q6463q08bs42pvlzfj0iz2f2cnjn94hiacsya5";
   };
 
   buildInputs = [ libuuid popt icu ncurses ];
@@ -13,9 +13,11 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/sbin
     mkdir -p $out/share/man/man8
-    install -v -m755 gdisk sgdisk fixparts $out/sbin
-    install -v -m644 gdisk.8 sgdisk.8 fixparts.8 \
-        $out/share/man/man8
+    for prog in gdisk sgdisk fixparts cgdisk
+    do
+        install -v -m755 $prog $out/sbin
+        install -v -m644 $prog.8 $out/share/man/man8
+    done
   '';
 
   meta = {
@@ -26,6 +28,7 @@ stdenv.mkDerivation rec {
     homepage = http://www.rodsbooks.com/gdisk/;
 
     maintainers = stdenv.lib.maintainers.shlevy;
+
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/logcheck/default.nix b/pkgs/tools/system/logcheck/default.nix
index 1c57711940bf..7d15ade348cf 100644
--- a/pkgs/tools/system/logcheck/default.nix
+++ b/pkgs/tools/system/logcheck/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
  ];
 
   meta = {
-    description = "Mails anomalies in the system logfiles to the administrator.";
+    description = "Mails anomalies in the system logfiles to the administrator";
     longDescription = ''
       Mails anomalies in the system logfiles to the administrator.
 
diff --git a/pkgs/tools/system/lshw/default.nix b/pkgs/tools/system/lshw/default.nix
index a0f838cfcf93..930cb7b7bff0 100644
--- a/pkgs/tools/system/lshw/default.nix
+++ b/pkgs/tools/system/lshw/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = http://ezix.org/project/wiki/HardwareLiSter;
-    description = "A small tool to provide detailed information on the hardware configuration of the machine.";
+    description = "Provide detailed information on the hardware configuration of the machine";
     license = licenses.gpl2;
     maintainers = [ maintainers.phreedom ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
index 3f63d077c7fa..93486d3decf2 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -3,8 +3,8 @@
 let
   pciids = fetchurl {
     # Obtained from http://pciids.sourceforge.net/v2.2/pci.ids.bz2.
-    url = http://tarballs.nixos.org/pci.ids.20120929.bz2;
-    sha256 = "1q3i479ay88wam1zz1vbgkbqb2axg8av9qjxaigrqbnw2pv0srmb";
+    url = http://tarballs.nixos.org/pci.ids.20131006.bz2;
+    sha256 = "1vmshcgxqminiyh52pdcak24lm24qlic49py9cmkp96y1s48lvsc";
   };
 in
 stdenv.mkDerivation rec {
@@ -17,8 +17,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ pkgconfig zlib kmod which ];
 
-  # currently up-to-date
-  #preBuild = "bunzip2 < ${pciids} > pci.ids";
+  preBuild = "bunzip2 < ${pciids} > pci.ids";
 
   makeFlags = "SHARED=yes PREFIX=\${out}";
 
diff --git a/pkgs/tools/system/rsyslog/default.nix b/pkgs/tools/system/rsyslog/default.nix
index 0189d04902a2..3b5c06483845 100644
--- a/pkgs/tools/system/rsyslog/default.nix
+++ b/pkgs/tools/system/rsyslog/default.nix
@@ -14,9 +14,8 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://www.rsyslog.com/";
-    description = "Rsyslog is an enhanced syslogd. It can be used as a drop-in replacement for stock sysklogd.";
+    description = "Enhanced syslog implementation";
     license = "GPLv3";
-
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/sleuthkit/default.nix b/pkgs/tools/system/sleuthkit/default.nix
index 86ec54ecb8fa..0148e3c699eb 100644
--- a/pkgs/tools/system/sleuthkit/default.nix
+++ b/pkgs/tools/system/sleuthkit/default.nix
@@ -1,48 +1,24 @@
-x@{builderDefsPackage
-  , libewf, afflib, openssl, zlib
-  , ...}:
-builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
+{ stdenv, fetchurl, libewf, afflib, openssl, zlib }:
 
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    baseName="sleuthkit";
-    version="3.2.2";
-    name="${baseName}-${version}";
-    url="mirror://sourceforge/project/${baseName}/${baseName}/${version}/${name}.tar.gz";
-    hash="02hik5xvbgh1dpisvc3wlhhq1aprnlsk0spbw6h5khpbq9wqnmgj";
-  };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+stdenv.mkDerivation rec {
+  name = "sleuthkit-3.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/sleuthkit/${name}.tar.gz";
+    sha256 = "02hik5xvbgh1dpisvc3wlhhq1aprnlsk0spbw6h5khpbq9wqnmgj";
   };
 
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
+  enableParallelBuilding = true;
+
+  buildInputs = [ libewf afflib openssl zlib ];
+
+  # Hack to fix the RPATH.
+  preFixup = "rm -rf */.libs";
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall"];
-      
   meta = {
     description = "A forensic/data recovery tool";
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
-      linux;
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+    platforms = stdenv.lib.platforms.linux;
     license = "IBM Public License";
   };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://sourceforge.net/projects/sleuthkit/files/sleuthkit";
-    };
-  };
-}) x
-
+}
diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
index f5ee2f1bcbba..f2cb221cb321 100644
--- a/pkgs/tools/system/syslog-ng/default.nix
+++ b/pkgs/tools/system/syslog-ng/default.nix
@@ -13,9 +13,8 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://www.balabit.com/network-security/syslog-ng/";
-    description = "Next-generation syslogd with advanced networking and filtering capabilities.";
+    description = "Next-generation syslogd with advanced networking and filtering capabilities";
     license = "GPLv2";
-
     platforms = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
diff --git a/pkgs/tools/system/vboot_reference/default.nix b/pkgs/tools/system/vboot_reference/default.nix
index ed48a9976d4c..e1c4734bbdaf 100644
--- a/pkgs/tools/system/vboot_reference/default.nix
+++ b/pkgs/tools/system/vboot_reference/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Chrome OS partitioning and kernel signing tools.";
+    description = "Chrome OS partitioning and kernel signing tools";
     license = stdenv.lib.licenses.bsd3;
     platforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/tools/text/poedit/default.nix b/pkgs/tools/text/poedit/default.nix
new file mode 100644
index 000000000000..10822f1809fb
--- /dev/null
+++ b/pkgs/tools/text/poedit/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, wxGTK29, boost }:
+
+stdenv.mkDerivation rec {
+  name = "poedit-1.5.7";
+
+  src = fetchurl {
+    url = "http://prdownloads.sourceforge.net/poedit/${name}.tar.gz";
+    sha256 = "0y0gbkb1jvp61qhh8sh7ar8849mwirizc42pk57zpxy84an5qlr4";
+  };
+
+  buildInputs = [ wxGTK29 boost ];
+
+  meta = with stdenv.lib; {
+    description = "Cross-platform gettext catalogs (.po files) editor";
+    homepage = http://www.poedit.net/;
+    license = licenses.mit;
+    platforms = with platforms; unix;
+    maintainers = with maintainers; [ iElectric ];
+  };
+}
diff --git a/pkgs/tools/text/source-highlight/default.nix b/pkgs/tools/text/source-highlight/default.nix
index 148bbfce99da..e5928e162560 100644
--- a/pkgs/tools/text/source-highlight/default.nix
+++ b/pkgs/tools/text/source-highlight/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   meta = {
-    description = "GNU Source-Highlight, source code renderer with syntax highlighting";
+    description = "source code renderer with syntax highlighting";
     homepage = "http://www.gnu.org/software/src-highlite/";
     license = "GPLv3+";
     maintainers = [ ];
diff --git a/pkgs/tools/text/wgetpaste/default.nix b/pkgs/tools/text/wgetpaste/default.nix
index 04102093aae4..a47eb2ddf9f9 100644
--- a/pkgs/tools/text/wgetpaste/default.nix
+++ b/pkgs/tools/text/wgetpaste/default.nix
@@ -19,7 +19,7 @@
     '';
 
     meta = {
-      description = "wgetpaste";
+      description = "Command-line interface to various pastebins";
       homepage = http://wgetpaste.zlin.dk/;
       license = "publicDomain";
       maintainers = with stdenv.lib.maintainers; [qknight];
diff --git a/pkgs/tools/text/xml/html-xml-utils/default.nix b/pkgs/tools/text/xml/html-xml-utils/default.nix
new file mode 100644
index 000000000000..f52855dfc538
--- /dev/null
+++ b/pkgs/tools/text/xml/html-xml-utils/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "html-xml-utils-6.4";
+
+  src = fetchurl {
+    url = "http://www.w3.org/Tools/HTML-XML-utils/${name}.tar.gz";
+
+    sha256 = "0dqa8vjk5my728hmb7dhl6nbg7946fh905j0yzlwx7p7rg2zrxcp";
+  };
+
+  patches = [ ./no-Boolean-type.patch ];
+
+  meta = {
+    description = "Utilities for manipulating HTML and XML files";
+    homepage = http://www.w3.org/Tools/HTML-XML-utils/;
+    license = "free-non-copyleft";
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}
diff --git a/pkgs/tools/text/xml/html-xml-utils/no-Boolean-type.patch b/pkgs/tools/text/xml/html-xml-utils/no-Boolean-type.patch
new file mode 100644
index 000000000000..f675c4280e78
--- /dev/null
+++ b/pkgs/tools/text/xml/html-xml-utils/no-Boolean-type.patch
@@ -0,0 +1,20 @@
+diff -Naur html-xml-utils-6.4-orig/openurl.c html-xml-utils-6.4/openurl.c
+--- html-xml-utils-6.4-orig/openurl.c	2012-10-23 09:55:12.000000000 -0400
++++ html-xml-utils-6.4/openurl.c	2013-10-17 14:05:11.424077842 -0400
+@@ -66,6 +66,7 @@
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <assert.h>
++#include <stdbool.h>
+ #include "export.h"
+ #if HAVE_LIBCURL && !HAVE_FOPENCOOKIE
+ # include "fopencookie.e"	/* Use our own fopencookie() */
+@@ -505,7 +506,7 @@
+ 			const conststring path, Dictionary request,
+ 			Dictionary response, int maxredirs, int *status)
+ {
+-  Boolean delete_response = !response;
++  bool delete_response = !response;
+   conststring h, v;
+   char buf[BUFLEN];
+   int fd, n, i;
diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix
index f392ad065cc8..aeeaf04e7bad 100644
--- a/pkgs/tools/typesetting/asciidoc/default.nix
+++ b/pkgs/tools/typesetting/asciidoc/default.nix
@@ -1,32 +1,263 @@
-{ fetchurl, stdenv, python }:
+{ fetchurl, stdenv, python
+
+, enableStandardFeatures ? false
+, sourceHighlight ? null
+, highlight ? null
+, pygments ? null
+, graphviz ? null
+, tetex ? null
+, dblatexFull ? null
+, libxslt ? null
+, w3m ? null
+, lynx ? null
+, imagemagick ? null
+, lilypond ? null
+, libxml2 ? null
+, docbook_xml_dtd_45 ? null
+, docbook5_xsl ? null
+, docbook_xsl ? null
+, fop ? null
+# TODO: Package this:
+#, epubcheck ? null
+, gnused ? null
+, coreutils ? null
+
+, unzip ? null
+# filters
+, enableDitaaFilter ? false, jre ? null
+, enableMscgenFilter ? false, mscgen ? null
+, enableDiagFilter ? false, blockdiag ? null, seqdiag ? null, actdiag ? null, nwdiag ? null
+, enableQrcodeFilter ? false, qrencode ? null
+, enableMatplotlibFilter ? false, matplotlib ? null, numpy ? null
+, enableAafigureFilter ? false, aafigure ? null, recursivePthLoader ? null
+# backends
+, enableDeckjsBackend ? false
+, enableOdfBackend ? false
+}:
+
+assert enableStandardFeatures ->
+  sourceHighlight != null &&
+  highlight != null &&
+  pygments != null &&
+  graphviz != null &&
+  tetex != null &&
+  dblatexFull != null &&
+  libxslt != null &&
+  w3m != null &&
+  lynx != null &&
+  imagemagick != null &&
+  lilypond != null &&
+  libxml2 != null &&
+  docbook_xml_dtd_45 != null &&
+  docbook5_xsl != null &&
+  docbook_xsl != null &&
+  fop != null &&
+# TODO: Package this:
+#  epubcheck != null &&
+  gnused != null &&
+  coreutils != null;
+
+# filters
+assert (enableDitaaFilter || enableMscgenFilter || enableDiagFilter || enableQrcodeFilter || enableAafigureFilter) -> unzip != null;
+assert enableDitaaFilter -> jre != null;
+assert enableMscgenFilter -> mscgen != null;
+assert enableDiagFilter -> blockdiag != null && seqdiag != null && actdiag != null && nwdiag != null;
+assert enableMatplotlibFilter -> matplotlib != null && numpy != null;
+assert enableAafigureFilter -> aafigure != null && recursivePthLoader != null;
+# backends
+assert (enableDeckjsBackend || enableOdfBackend) -> unzip != null;
+
+let
+
+  #
+  # filters
+  #
+
+  ditaaFilterSrc = fetchurl {
+    url = "https://asciidoc-ditaa-filter.googlecode.com/files/ditaa-filter-1.1.zip";
+    sha256 = "0p7hm2a1xywx982ia3vg4c0lam5sz0xknsc10i2a5vswy026naf6";
+  };
+
+  mscgenFilterSrc = fetchurl {
+    url = "https://asciidoc-mscgen-filter.googlecode.com/files/mscgen-filter-1.2.zip";
+    sha256 = "1nfwmj375gpv5dn9i770pjv59aihzy2kja0fflsk96xwnlqsqq61";
+  };
+
+  diagFilterSrc = fetchurl {
+    # unfortunately no version number
+    url = "https://asciidoc-diag-filter.googlecode.com/files/diag_filter.zip";
+    sha256 = "1qlqrdbqkdqqgfdhjsgdws1al0sacsyq6jmwxdfy7r8k7bv7n7mm";
+  };
+
+  qrcodeFilterSrc = fetchurl {
+    url = "https://asciidoc-qrencode-filter.googlecode.com/files/qrcode-filter-1.0.zip";
+    sha256 = "0h4bql1nb4y4fmg2yvlpfjhvy22ln8jsaxdr10f8bfcg5lr0zkxs";
+  };
+
+  # there are no archives or tags, using latest commit in master branch as per 2013-09-22
+  matplotlibFilterSrc = let commit = "75f0d009629f93f33fab04b83faca20cc35dd358"; in fetchurl rec {
+    name = "mplw-${commit}.tar.gz";
+    url = "https://api.github.com/repos/lvv/mplw/tarball/${commit}";
+    sha256 = "0yfhkm2dr8gnp0fcg25x89hwiymkri2m5cyqzmzragzwj0hbmcf1";
+  };
+
+  aafigureFilterSrc = fetchurl {
+    url = "https://asciidoc-aafigure-filter.googlecode.com/files/aafigure-filter-1.1.zip";
+    sha256 = "1hq2s30dvmv5dqvj0xm1qwdwafhgm9w1iyr0lr0c40cyk8h00j8j";
+  };
+
+  #
+  # backends
+  #
+
+  deckjsBackendSrc = fetchurl {
+    url = "https://github.com/downloads/houqp/asciidoc-deckjs/deckjs-1.6.2.zip";
+    sha256 = "1siy1j8naj5irrrrv5bfgl4d8nal6j9pyahy4f50wmrr9wv59s46";
+  };
+
+  # the odf backend is actually two plugins: odt + odp
+  odtBackendSrc = fetchurl {
+    url = "https://github.com/downloads/dagwieers/asciidoc-odf/odt-backend-0.1.zip";
+    sha256 = "1zaa97h9sx6ncxcdkl1x3ggydi7f8kjgvrnpjnkjiizi45k350kw";
+  };
+  odpBackendSrc = fetchurl {
+    url = "https://github.com/downloads/dagwieers/asciidoc-odf/odp-backend-0.1.zip";
+    sha256 = "08ya4bskygzqkfqwjllpg31qc5k08xp2k78z9b2480g8y57bfy10";
+  };
+
+in
 
 stdenv.mkDerivation rec {
   name = "asciidoc-8.6.8";
+
   src = fetchurl {
     url = "mirror://sourceforge/asciidoc/${name}.tar.gz";
     sha256 = "ffb67f59dccaf6f15db72fcd04fdf21a2f9b703d31f94fcd0c49a424a9fcfbc4";
   };
 
-  patchPhase = ''
-    for n in `find . -name \*.py `; do
-      sed -i -e "s,^#!/usr/bin/env python,#!${python}/bin/python,g" "$n"
+  buildInputs = [ python unzip ];
+
+  # install filters early, so their shebangs are patched too
+  patchPhase = with stdenv.lib; ''
+    mkdir -p "$out/etc/asciidoc/filters"
+    mkdir -p "$out/etc/asciidoc/backends"
+  '' + optionalString enableDitaaFilter ''
+    echo "Extracting ditaa filter"
+    unzip -d "$out/etc/asciidoc/filters/ditaa" "${ditaaFilterSrc}"
+    sed -i -e "s|java -jar|${jre}/bin/java -jar|" \
+        "$out/etc/asciidoc/filters/ditaa/ditaa2img.py"
+  '' + optionalString enableMscgenFilter ''
+    echo "Extracting mscgen filter"
+    unzip -d "$out/etc/asciidoc/filters/mscgen" "${mscgenFilterSrc}"
+    sed -i -e "s|filter-wrapper.py mscgen|filter-wrapper.py ${mscgen}/bin/mscgen|" \
+        "$out/etc/asciidoc/filters/mscgen/mscgen-filter.conf"
+  '' + optionalString enableDiagFilter ''
+    echo "Extracting diag filter"
+    unzip -d "$out/etc/asciidoc/filters/diag" "${diagFilterSrc}"
+    sed -i \
+        -e "s|filter='blockdiag|filter=\'${blockdiag}/bin/blockdiag|" \
+        -e "s|filter='seqdiag|filter=\'${seqdiag}/bin/seqdiag|" \
+        -e "s|filter='actdiag|filter=\'${actdiag}/bin/actdiag|" \
+        -e "s|filter='nwdiag|filter=\'${nwdiag}/bin/nwdiag|" \
+        -e "s|filter='packetdiag|filter=\'${nwdiag}/bin/packetdiag|" \
+        "$out/etc/asciidoc/filters/diag/diag-filter.conf"
+  '' + optionalString enableQrcodeFilter ''
+    echo "Extracting qrcode filter"
+    unzip -d "$out/etc/asciidoc/filters/qrcode" "${qrcodeFilterSrc}"
+    sed -i -e "s|systemcmd('qrencode|systemcmd('${qrencode}/bin/qrencode|" \
+        "$out/etc/asciidoc/filters/qrcode/qrcode2img.py"
+  '' + optionalString enableMatplotlibFilter ''
+    echo "Extracting mpl (matplotlib) filter"
+    mkdir -p "$out/etc/asciidoc/filters/mpl"
+    tar xvf "${matplotlibFilterSrc}" -C "$out/etc/asciidoc/filters/mpl" --strip-components=1
+    # Stop asciidoc from loading mpl/.old/chart-filter.conf
+    rm -rf "$out/etc/asciidoc/filters/mpl/.old"
+    # Add matplotlib and numpy to sys.path
+    matplotlib_path="$(toPythonPath ${matplotlib})"
+    numpy_path="$(toPythonPath ${numpy})"
+    sed -i "/^import.*sys/asys.path.append(\"$matplotlib_path\"); sys.path.append(\"$numpy_path\");" \
+        "$out/etc/asciidoc/filters/mpl/mplw.py"
+  '' + optionalString enableAafigureFilter ''
+    echo "Extracting aafigure filter"
+    unzip -d "$out/etc/asciidoc/filters/aafigure" "${aafigureFilterSrc}"
+    # Add aafigure to sys.path (and it needs recursive-pth-loader)
+    pth_loader_path="$(toPythonPath ${recursivePthLoader})"
+    aafigure_path="$(toPythonPath ${aafigure})"
+    sed -i "/^import.*sys/asys.path.append(\"$pth_loader_path\"); sys.path.append(\"$aafigure_path\"); import sitecustomize" \
+        "$out/etc/asciidoc/filters/aafigure/aafig2img.py"
+  '' + optionalString enableDeckjsBackend ''
+    echo "Extracting deckjs backend"
+    unzip -d "$out/etc/asciidoc/backends/deckjs" "${deckjsBackendSrc}"
+  '' + optionalString enableOdfBackend ''
+    echo "Extracting odf backend (odt + odp)"
+    unzip -d "$out/etc/asciidoc/backends/odt" "${odtBackendSrc}"
+    unzip -d "$out/etc/asciidoc/backends/odp" "${odpBackendSrc}"
+    # The odt backend has a TODO note about removing this hardcoded path, but
+    # the odp backend already has that fix. Copy it here until fixed upstream.
+    sed -i "s|'/etc/asciidoc/backends/odt/asciidoc.ott'|os.path.dirname(__file__),'asciidoc.ott'|" \
+        "$out/etc/asciidoc/backends/odt/a2x-backend.py"
+  '' + optionalString enableStandardFeatures ''
+    sed -e "s|dot|${graphviz}/bin/dot|g" \
+        -e "s|neato|${graphviz}/bin/neato|g" \
+        -e "s|twopi|${graphviz}/bin/circo|g" \
+        -e "s|circo|${graphviz}/bin/circo|g" \
+        -e "s|fdp|${graphviz}/bin/fdp|g" \
+        -i "filters/graphviz/graphviz2png.py"
+
+    sed -e "s|run('latex|run('${tetex}/bin/latex|g" \
+        -e "s|cmd = 'dvipng'|cmd = '${tetex}/bin/dvipng'|g" \
+        -i "filters/latex/latex2png.py"
+
+    sed -e "s|run('abc2ly|run('${lilypond}/bin/abc2ly|g" \
+        -e "s|run('lilypond|run('${lilypond}/bin/lilypond|g" \
+        -e "s|run('convert|run('${imagemagick}/bin/convert|g" \
+        -i "filters/music/music2png.py"
+
+    sed -e 's|filter="source-highlight|filter="${sourceHighlight}/bin/source-highlight|' \
+        -e 's|filter="highlight|filter="${highlight}/bin/highlight|' \
+        -e 's|filter="pygmentize|filter="${pygments}/bin/pygmentize|' \
+        -i "filters/source/source-highlight-filter.conf"
+
+    # ENV is custom environment passed to programs that a2x invokes. Here we
+    # use it to work around an impurity in the tetex package; tetex tools
+    # cannot find their neighbours (e.g. pdflatex doesn't find mktextfm).
+    # We can remove PATH= when those impurities are fixed.
+    sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook5_xsl}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml', PATH='${tetex}/bin:${coreutils}/bin:${gnused}/bin')|" \
+        -e "s|^ASCIIDOC =.*|ASCIIDOC = '$out/bin/asciidoc'|" \
+        -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt}/bin/xsltproc'|" \
+        -e "s|^DBLATEX =.*|DBLATEX = '${dblatexFull}/bin/dblatex'|" \
+        -e "s|^FOP =.*|FOP = '${fop}/bin/fop'|" \
+        -e "s|^W3M =.*|W3M = '${w3m}/bin/w3m'|" \
+        -e "s|^LYNX =.*|LYNX = '${lynx}/bin/lynx'|" \
+        -e "s|^XMLLINT =.*|XMLLINT = '${libxml2}/bin/xmllint'|" \
+        -e "s|^EPUBCHECK =.*|EPUBCHECK = 'nixpkgs_is_missing_epubcheck'|" \
+        -i a2x.py
+  '' + ''
+    for n in $(find "$out" . -name \*.py); do
+      sed -i -e "s,^#![[:space:]]*.*/bin/env python,#!${python}/bin/python,g" "$n"
       chmod +x "$n"
     done
+
     sed -i -e "s,/etc/vim,,g" Makefile.in
   '';
 
   preInstall = "mkdir -p $out/etc/vim";
 
-  buildInputs = [ python ];
-
-  meta = {
-    homepage = "http://www.methods.co.nz/asciidoc/";
-    description = "ASCII text-based document generation system";
-    license = "GPLv2+";
-
+  meta = with stdenv.lib; {
+    description = "Text-based document generation system";
     longDescription = ''
-      AsciiDoc is a text-based document generation system.  AsciiDoc
-      input files can be translated to HTML and DocBook markups.
+      AsciiDoc is a text document format for writing notes, documentation,
+      articles, books, ebooks, slideshows, web pages, man pages and blogs.
+      AsciiDoc files can be translated to many formats including HTML, PDF,
+      EPUB, man page.
+
+      AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
+      the backend output markups (which can be almost any type of SGML/XML
+      markup) can be customized and extended by the user.
     '';
+    homepage = "http://www.methods.co.nz/asciidoc/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/tools/typesetting/fop/default.nix b/pkgs/tools/typesetting/fop/default.nix
new file mode 100644
index 000000000000..bc4486ed49cf
--- /dev/null
+++ b/pkgs/tools/typesetting/fop/default.nix
@@ -0,0 +1,56 @@
+{ fetchurl, stdenv, ant, jdk }:
+
+stdenv.mkDerivation rec {
+  name = "fop-1.1";
+
+  src = fetchurl {
+    url = "http://apache.uib.no/xmlgraphics/fop/source/${name}-src.tar.gz";
+    sha256 = "08i56d57w5dl5bqchr34x9165hvi5h4bhiflxhi0a4wd56rlq5jq";
+  };
+
+  buildInputs = [ ant jdk ];
+
+  buildPhase = ''
+    ant
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    mkdir -p "$out/lib"
+    mkdir -p "$out/share/doc/fop"
+
+    cp build/*.jar lib/*.jar "$out/lib/"
+    cp -r README examples/ "$out/share/doc/fop/"
+
+    # There is a fop script in the source archive, but it has many impurities.
+    # Instead of patching out 90 % of the script, we write our own.
+    cat > "$out/bin/fop" <<EOF
+    #!${stdenv.shell}
+    java_exec_args="-Djava.awt.headless=true"
+    # Note the wildcard; it will be passed to java and java will expand it
+    LOCALCLASSPATH="$out/lib/*"
+    exec "${jdk}/bin/java" \$java_exec_args -classpath "\$LOCALCLASSPATH" org.apache.fop.cli.Main "\$@"
+    EOF
+    chmod a+x "$out/bin/fop"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "XML formatter driven by XSL Formatting Objects (XSL-FO)";
+    longDescription = ''
+      FOP is a Java application that reads a formatting object tree and then
+      turns it into a wide variety of output presentations (including AFP, PCL,
+      PDF, PNG, PostScript, RTF, TIFF, and plain text), or displays the result
+      on-screen.
+
+      The formatting object tree can be in the form of an XML document (output
+      by an XSLT engine like xalan) or can be passed in memory as a DOM
+      Document or (in the case of xalan) SAX events.
+
+      This package contains the fop command line tool.
+    '';
+    homepage = http://xmlgraphics.apache.org/fop/;
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.nix b/pkgs/tools/typesetting/pdf2djvu/default.nix
index b7204b957842..b97252e74de0 100644
--- a/pkgs/tools/typesetting/pdf2djvu/default.nix
+++ b/pkgs/tools/typesetting/pdf2djvu/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, pkgconfig, djvulibre, poppler, fontconfig, libjpeg }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.16";
+  version = "0.7.17";
   name = "pdf2djvu-${version}";
 
   src = fetchurl {
     url = "http://pdf2djvu.googlecode.com/files/pdf2djvu_${version}.tar.gz";
-    sha256 = "1yg4ppqxpfda89yi4c3rrq2zhar5dzyqypvqdvdd0r7is2321nnv";
+    sha256 = "1nplcabb8526bs5707k9212pi000wnskq3c9hbq9acgmdlnnwvgy";
   };
 
   buildInputs = [ pkgconfig djvulibre poppler fontconfig libjpeg ];
diff --git a/pkgs/tools/typesetting/tex/auctex/default.nix b/pkgs/tools/typesetting/tex/auctex/default.nix
index 9774d7d1a948..3a8b41da6609 100644
--- a/pkgs/tools/typesetting/tex/auctex/default.nix
+++ b/pkgs/tools/typesetting/tex/auctex/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation ( rec {
   name = "${pname}-${version}";
 
   meta = {
-    description = "AUCTeX is an extensible package for writing and formatting TeX files in GNU Emacs and XEmacs.";
+    description = "Extensible package for writing and formatting TeX files in GNU Emacs and XEmacs";
     homepage = http://www.gnu.org/software/auctex;
   };
 
diff --git a/pkgs/tools/typesetting/tex/dblatex/default.nix b/pkgs/tools/typesetting/tex/dblatex/default.nix
index fa4746a562ea..6993158291c2 100644
--- a/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -1,4 +1,15 @@
-{ stdenv, fetchurl, python, libxslt, tetex }:
+{ stdenv, fetchurl, python, libxslt, tetex
+, enableAllFeatures ? false, imagemagick ? null, transfig ? null, inkscape ? null, fontconfig ? null, ghostscript ? null }:
+
+# NOTE: enableAllFeatures just purifies the expression, it doesn't actually
+# enable any extra features.
+
+assert enableAllFeatures ->
+  imagemagick != null &&
+  transfig != null &&
+  inkscape != null &&
+  fontconfig != null &&
+  ghostscript != null;
 
 stdenv.mkDerivation rec {
   name = "dblatex-0.3.4";
@@ -8,15 +19,39 @@ stdenv.mkDerivation rec {
     sha256 = "120w3wm07qx0k1grgdhjwm2vpwil71icshjvqznskp1f6ggch290";
   };
 
+  buildInputs = [ python libxslt tetex ]
+    ++ stdenv.lib.optionals enableAllFeatures [ imagemagick transfig ];
+
+  # TODO: dblatex tries to execute texindy command, but nixpkgs doesn't have
+  # that yet. In Ubuntu, texindy is a part of the xindy package.
+  preConfigure = ''
+    sed -i 's|self.install_layout == "deb"|False|' setup.py
+  '' + stdenv.lib.optionalString enableAllFeatures ''
+    for file in $(find -name "*.py"); do
+        sed -e 's|cmd = \["xsltproc|cmd = \["${libxslt}/bin/xsltproc|g' \
+            -e 's|Popen(\["xsltproc|Popen(\["${libxslt}/bin/xsltproc|g' \
+            -e 's|cmd = \["texindy|cmd = ["nixpkgs_is_missing_texindy|g' \
+            -e 's|cmd = "epstopdf|cmd = "${tetex}/bin/epstopdf|g' \
+            -e 's|cmd = \["makeindex|cmd = ["${tetex}/bin/makeindex|g' \
+            -e 's|doc.program = "pdflatex"|doc.program = "${tetex}/bin/pdflatex"|g' \
+            -e 's|self.program = "latex"|self.program = "${tetex}/bin/latex"|g' \
+            -e 's|Popen("pdflatex|Popen("${tetex}/bin/pdflatex|g' \
+            -e 's|"fc-match"|"${fontconfig}/bin/fc-match"|g' \
+            -e 's|"fc-list"|"${fontconfig}/bin/fc-list"|g' \
+            -e 's|cmd = "inkscape|cmd = "${inkscape}/bin/inkscape|g' \
+            -e 's|cmd = "fig2dev|cmd = "${transfig}/bin/fig2dev|g' \
+            -e 's|cmd = \["ps2pdf|cmd = ["${ghostscript}/bin/ps2pdf|g' \
+            -e 's|cmd = "convert|cmd = "${imagemagick}/bin/convert|g' \
+            -i "$file"
+    done
+  '';
+
   buildPhase = "true";
   
   installPhase = ''
-    sed -i 's|self.install_layout == "deb"|False|' setup.py
-    python ./setup.py install --prefix=$out
+    python ./setup.py install --prefix="$out" --use-python-path --verbose
   '';
 
-  buildInputs = [ python libxslt tetex ];
-
   meta = {
     description = "A program to convert DocBook to DVI, PostScript or PDF via LaTeX or ConTeXt";
     homepage = http://dblatex.sourceforge.net/;
diff --git a/pkgs/tools/typesetting/tex/tex4ht/default.nix b/pkgs/tools/typesetting/tex/tex4ht/default.nix
index 24612de549e0..f903ef5792f4 100644
--- a/pkgs/tools/typesetting/tex/tex4ht/default.nix
+++ b/pkgs/tools/typesetting/tex/tex4ht/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     for f in src/tex4ht src/t4ht src/htcmd "bin/unix/"*; do
       mv $f $out/bin/
     done
-    mv texmf $out/
+    mv texmf $out/texmf-dist
   '';
 
   meta = {
diff --git a/pkgs/tools/typesetting/tex/texlive/aggregate.nix b/pkgs/tools/typesetting/tex/texlive/aggregate.nix
index 84fa1cfab75a..2d1de93fed87 100644
--- a/pkgs/tools/typesetting/tex/texlive/aggregate.nix
+++ b/pkgs/tools/typesetting/tex/texlive/aggregate.nix
@@ -3,6 +3,7 @@ rec {
   name = "TeXLive-linkdir";
 
   buildInputs = lib.closePropagation paths
+    ++ [perl]
     ++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
 
   phaseNames = [ "doAggregate" ];
@@ -11,12 +12,15 @@ rec {
     mkdir -p $out/bin
     for currentPath in ${lib.concatStringsSep " " buildInputs}; do
         echo Symlinking "$currentPath"
+        find $currentPath/share/info $currentPath/share/man $(echo $currentPath/texmf*/) -type d | while read; do
+            REPLY="''${REPLY#$currentPath}"
+            mkdir -p $out/"$REPLY"
+	done
         find $currentPath/share/info $currentPath/share/man $(echo $currentPath/texmf*/) ! -type d | while read; do
             REPLY="''${REPLY#$currentPath}"
-            mkdir -p $out/"$(dirname "$REPLY")"
             ln -fs $currentPath/"$REPLY" $out/"$REPLY"
             echo
-        done | while read; do head -n 99 >/dev/null; echo -n .; done
+        done | while read; do head -n 999 >/dev/null; echo -n .; done
 
         for i in "$currentPath/bin/"* :; do
             test "$i" != : || continue
@@ -31,8 +35,8 @@ rec {
 
     ln -s $out/texmf* $out/share/
 
-    rm -r $out/texmf-config
-    find $out/texmf/ -type d | while read; do
+    rm -rf $out/texmf-config
+    find $out/texmf*/ -type d | while read; do
       REPLY="''${REPLY#$out/texmf}"
       mkdir -p $out/texmf-config/"$REPLY"
     done
@@ -45,9 +49,10 @@ rec {
         chmod a+x $out/bin/$(basename $i)
     done
 
-    rm $out/texmf*/ls-R
+    rm -f $out/texmf*/ls-R
     for i in web2c texconfig fonts/map; do
-        cp -Lr $out/texmf/$i/* $out/texmf-config/$i || true
+        mkdir -p $out/texmf-config/$i 
+        cp -Lr $out/texmf*/$i/* $out/texmf-config/$i || true
     done
     chmod -R u+w $out/texmf-config
 
diff --git a/pkgs/tools/typesetting/tex/texlive/cm-super.nix b/pkgs/tools/typesetting/tex/texlive/cm-super.nix
index e23b39368507..4d161c3e0536 100644
--- a/pkgs/tools/typesetting/tex/texlive/cm-super.nix
+++ b/pkgs/tools/typesetting/tex/texlive/cm-super.nix
@@ -10,16 +10,16 @@ rec {
   doCopy = fullDepEntry (''
     mkdir -p $out/share/
 
-    mkdir -p $out/texmf/fonts/enc
-    mkdir -p $out/texmf/fonts/map
-    mkdir -p $out/texmf/fonts/type1/public/cm-super
-    cp pfb/*.pfb $out/texmf/fonts/type1/public/cm-super
-    mkdir -p $out/texmf/dvips/cm-super
-    cp dvips/*.{map,enc}  $out/texmf/dvips/cm-super
-    cp dvips/*.enc  $out/texmf/fonts/enc
-    cp dvips/*.map  $out/texmf/fonts/map
-    mkdir -p $out/texmf/dvipdfm/config
-    cp dvipdfm/*.map  $out/texmf/dvipdfm/config
+    mkdir -p $out/texmf-dist/fonts/enc
+    mkdir -p $out/texmf-dist/fonts/map
+    mkdir -p $out/texmf-dist/fonts/type1/public/cm-super
+    cp pfb/*.pfb $out/texmf-dist/fonts/type1/public/cm-super
+    mkdir -p $out/texmf-dist/dvips/cm-super
+    cp dvips/*.{map,enc}  $out/texmf-dist/dvips/cm-super
+    cp dvips/*.enc  $out/texmf-dist/fonts/enc
+    cp dvips/*.map  $out/texmf-dist/fonts/map
+    mkdir -p $out/texmf-dist/dvipdfm/config
+    cp dvipdfm/*.map  $out/texmf-dist/dvipdfm/config
 
     ln -s $out/texmf* $out/share/
   '') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
diff --git a/pkgs/tools/typesetting/tex/texlive/context.nix b/pkgs/tools/typesetting/tex/texlive/context.nix
index a7161cea4c1b..c0c702cd4189 100644
--- a/pkgs/tools/typesetting/tex/texlive/context.nix
+++ b/pkgs/tools/typesetting/tex/texlive/context.nix
@@ -11,8 +11,8 @@ rec {
   doCopy = fullDepEntry (''
     mkdir -p $out/share/
 
-    mkdir -p $out/texmf
-    cp -r * $out/texmf
+    mkdir -p $out/texmf-dist
+    cp -r * $out/texmf-dist
 
     ln -s $out/texmf* $out/share/
   '') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index 820d6f7038fb..9119ded9c136 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -1,18 +1,18 @@
 args : with args;
 rec {
   src = fetchurl {
-    url = mirror://debian/pool/main/t/texlive-bin/texlive-bin_2012.20120628.orig.tar.xz;
-    sha256 = "0k94df3lfvghngzdzi2d4fz2z0gs8iglz7h3w2lxvlhiwwpmx601";
+    url = mirror://debian/pool/main/t/texlive-bin/texlive-bin_2013.20130729.30972.orig.tar.xz;
+    sha256 = "1idgyim6r4bi3id245k616qrdarfh65xv3gi2psarqqmsw504yhd";
   };
 
   texmfSrc = fetchurl {
-    url = mirror://debian/pool/main/t/texlive-base/texlive-base_2012.20120611.orig.tar.xz;
-    sha256 = "116zm0qdq9rd4vakhd2py9q7lq3ihspc7hy33bh8wy5v1rgiqsm6";
+    url = mirror://debian/pool/main/t/texlive-base/texlive-base_2013.20130918.orig.tar.xz;
+    sha256 = "0h7x49zsd2gs8fr28f4h04dv5m8p2mpgqxk2vvl5xlf4wwxxbm2p";
   };
 
   langTexmfSrc = fetchurl {
-    url = mirror://debian/pool/main/t/texlive-lang/texlive-lang_2012.20120611.orig.tar.xz;
-    sha256 = "0zh9svszfkbjx72i7sa9gg0gak93wf05845mxpjv56h8qwk4bffv";
+    url = mirror://debian/pool/main/t/texlive-lang/texlive-lang_2013.20131010.orig.tar.xz;
+    sha256 = "17wfd2qmyafv74ac3ssy9aga12g09l2q0r1p19fb4vvs0wrkwzbz";
   };
 
   setupHook = ./setup-hook.sh;
@@ -34,6 +34,8 @@ rec {
     sed -e 's@\<env python@${python}/bin/python@' -i $(grep 'env python' -rl . )
 
     sed -e '/ubidi_open/i#include <unicode/urename.h>' -i $(find . -name configure)
+    sed -e 's/-lttf/-lfreetype/' -i $(find . -name configure)
+
     sed -e s@ncurses/curses.h@curses.h@g -i $(grep ncurses/curses.h -rl . )
     sed -e '1i\#include <string.h>\n\#include <stdlib.h>' -i $( find libs/teckit -name '*.cpp' -o -name '*.c' )
 
@@ -44,7 +46,7 @@ rec {
     cd Work
   '' ) [ "minInit" "doUnpack" "addInputs" "defEnsureDir" ];
 
-  doPostInstall = fullDepEntry( ''
+  promoteLibexec = fullDepEntry (''
     mkdir -p $out/libexec/
     mv $out/bin $out/libexec/$(uname -m)
     mkdir -p $out/bin
@@ -61,13 +63,15 @@ rec {
           rm "$out/libexec/$(basename "$i")"
       fi;
     done
+  '') ["doMakeInstall"];
 
-    [ -d $out/texmf-config ] || ln -s $out/texmf $out/texmf-config
-    ln -s -v "$out/"*texmf* "$out/share/" || true
-
-    sed -e 's/.*pyhyph.*/=&/' -i $out/texmf-config/tex/generic/config/language.dat
+  doPostInstall = fullDepEntry( ''
+    cp -r "$out/"texmf* "$out/share/" || true
+    rm -rf "$out"/texmf*
+    [ -d $out/share/texmf-config ] || ln -s $out/share/texmf-dist $out/share/texmf-config
+    ln -s "$out"/share/texmf* "$out"/
 
-    PATH=$PATH:$out/bin mktexlsr $out/texmf*
+    PATH=$PATH:$out/bin mktexlsr $out/share/texmf*
 
     HOME=. PATH=$PATH:$out/bin updmap-sys --syncwithtrees
 
@@ -80,25 +84,37 @@ rec {
     #
     # I find it acceptable, hence the "|| true".
     echo "building format files..."
-    mkdir -p "$out/texmf-var/web2c"
+    mkdir -p "$out/share/texmf-var/web2c"
+    ln -sf "$out"/out/share/texmf* "$out"/
     PATH="$PATH:$out/bin" fmtutil-sys --all || true
 
-    PATH=$PATH:$out/bin mktexlsr $out/texmf*
+    PATH=$PATH:$out/bin mktexlsr $out/share/texmf*
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
     for prog in $out/bin/*; do
       wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler}/lib"
     done
-  '' ) [ "minInit" "defEnsureDir" "doUnpack" "doMakeInstall" ];
+  '' ) [ "minInit" "defEnsureDir" "doUnpack" "doMakeInstall" "promoteLibexec" "patchShebangsInterim"];
+
+  patchShebangsInterimBin = doPatchShebangs ''$out/bin/'';
+  patchShebangsInterimLibexec = doPatchShebangs ''$out/libexec/'';
+  patchShebangsInterimShareTexmfDist = doPatchShebangs ''$out/share/texmf-dist/scripts/'';
+  patchShebangsInterimTexmfDist = doPatchShebangs ''$out/texmf-dist/scripts/'';
+
+  patchShebangsInterim = fullDepEntry ("") ["patchShebangsInterimBin" 
+    "patchShebangsInterimLibexec" "patchShebangsInterimTexmfDist" 
+    "patchShebangsInterimShareTexmfDist"];
 
   buildInputs = [ zlib bzip2 ncurses libpng flex bison libX11.out libICE xproto
     freetype t1lib gd libXaw icu ghostscript ed libXt libXpm libXmu libXext
     xextproto perl libSM ruby expat curl libjpeg python fontconfig xz pkgconfig
-    poppler silgraphite lesstif zziplib ]
+    poppler graphite2 lesstif zziplib harfbuzz texinfo ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ makeWrapper ];
 
   configureFlags = [ "--with-x11" "--enable-ipc" "--with-mktexfmt"
     "--enable-shared" "--disable-native-texlive-build" "--with-system-zziplib"
-    "--with-system-libgs" "--with-system-t1lib" "--with-system-freetype2" ]
+    "--with-system-libgs" "--with-system-t1lib" "--with-system-freetype2" 
+    "--with-system-freetype=no" "--disable-ttf2pk" "--enable-ttf2pk2"
+    ]
     ++ ( if stdenv.isDarwin
          # ironically, couldn't get xetex compiling on darwin
          then [ "--disable-xetex" "--disable-xdv2pdf" "--disable-xdvipdfmx" ]
@@ -107,7 +123,7 @@ rec {
 
   phaseNames = [ "addInputs" "doMainBuild" "doMakeInstall" "doPostInstall" ];
 
-  name = "texlive-core-2012";
+  name = "texlive-core-2013";
 
   meta = with stdenv.lib; {
     description = "A TeX distribution";
diff --git a/pkgs/tools/typesetting/tex/texlive/extra.nix b/pkgs/tools/typesetting/tex/texlive/extra.nix
index 180019bb205f..6613578e2c67 100644
--- a/pkgs/tools/typesetting/tex/texlive/extra.nix
+++ b/pkgs/tools/typesetting/tex/texlive/extra.nix
@@ -1,9 +1,9 @@
 args: with args;
 rec {
-  name = "texlive-extra-2012";
+  name = "texlive-extra-2013";
   src = fetchurl {
-    url = mirror://debian/pool/main/t/texlive-extra/texlive-extra_2012.20120611.orig.tar.xz;
-    sha256 = "1wn2gwifb5ww6nb15zdbkk5yz5spynvwqscvrgxzb84p0z3hy8dq";
+    url = mirror://debian/pool/main/t/texlive-extra/texlive-extra_2013.20131010.orig.tar.xz;
+    sha256 = "1wciyjwp0swny22amwcnr6vvdwjy423856q7c3l1sd5b31xfbc18";
   };
 
   buildInputs = [texLive xz];
diff --git a/pkgs/tools/typesetting/tex/texlive/moderncv.nix b/pkgs/tools/typesetting/tex/texlive/moderncv.nix
index 28329cff9167..0ce1afbb41b3 100644
--- a/pkgs/tools/typesetting/tex/texlive/moderncv.nix
+++ b/pkgs/tools/typesetting/tex/texlive/moderncv.nix
@@ -10,9 +10,9 @@ rec {
   buildInputs = [texLive unzip];
   phaseNames = ["doCopy"];
   doCopy = fullDepEntry (''
-    mkdir -p $out/texmf/tex/latex/moderncv $out/texmf/doc $out/share
-    mv *.cls *.sty $out/texmf/tex/latex/moderncv/
-    mv examples $out/texmf/doc/moderncv
+    mkdir -p $out/texmf-dist/tex/latex/moderncv $out/texmf-dist/doc $out/share
+    mv *.cls *.sty $out/texmf-dist/tex/latex/moderncv/
+    mv examples $out/texmf-dist/doc/moderncv
     ln -s $out/texmf* $out/share/
   '') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
 
diff --git a/pkgs/tools/typesetting/tex/texlive/moderntimeline.nix b/pkgs/tools/typesetting/tex/texlive/moderntimeline.nix
index d129cc62020e..4cb93794edfe 100644
--- a/pkgs/tools/typesetting/tex/texlive/moderntimeline.nix
+++ b/pkgs/tools/typesetting/tex/texlive/moderntimeline.nix
@@ -13,9 +13,9 @@ rec {
   buildInputs = [texLive unzip];
   phaseNames = ["doCopy"];
   doCopy = fullDepEntry (''
-    mkdir -p $out/texmf/tex/latex/moderntimeline $out/texmf/doc/moderntimeline $out/share
-    mv *.dtx *.ins $out/texmf/tex/latex/moderntimeline/
-    mv *.pdf $out/texmf/doc/moderntimeline/
+    mkdir -p $out/texmf-dist/tex/latex/moderntimeline $out/texmf-dist/doc/moderntimeline $out/share
+    mv *.dtx *.ins $out/texmf-dist/tex/latex/moderntimeline/
+    mv *.pdf $out/texmf-dist/doc/moderntimeline/
     ln -s $out/texmf* $out/share/
   '') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
 
diff --git a/pkgs/tools/typesetting/tex/texlive/pgf.nix b/pkgs/tools/typesetting/tex/texlive/pgf.nix
index 1f7abc126c3a..b46229e98285 100644
--- a/pkgs/tools/typesetting/tex/texlive/pgf.nix
+++ b/pkgs/tools/typesetting/tex/texlive/pgf.nix
@@ -14,8 +14,8 @@ rec {
   phaseNames = ["doCopy"];
   doCopy = fullDepEntry (''
     mkdir -p $out/share/
-    mkdir -p $out/texmf/tex/generic/pgf
-    cp -r * $out/texmf/tex/generic/pgf
+    mkdir -p $out/texmf-dist/tex/generic/pgf
+    cp -r * $out/texmf-dist/tex/generic/pgf
     ln -s $out/texmf* $out/share/
   '') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
 
diff --git a/pkgs/tools/typesetting/tex/texlive/xcolor.nix b/pkgs/tools/typesetting/tex/texlive/xcolor.nix
index e59a58ce9b26..892734afe461 100644
--- a/pkgs/tools/typesetting/tex/texlive/xcolor.nix
+++ b/pkgs/tools/typesetting/tex/texlive/xcolor.nix
@@ -12,11 +12,11 @@ rec {
     export HOME=$PWD
     mkdir -p $out/share/
 
-    mkdir -p $out/texmf/tex/latex/xcolor
-    mkdir -p $out/texmf/dvips/xcolor
+    mkdir -p $out/texmf-dist/tex/latex/xcolor
+    mkdir -p $out/texmf-dist/dvips/xcolor
     latex xcolor.ins 
-    cp *.sty *.def $out/texmf/tex/latex/xcolor
-    cp *.pro $out/texmf/dvips/xcolor
+    cp *.sty *.def $out/texmf-dist/tex/latex/xcolor
+    cp *.pro $out/texmf-dist/dvips/xcolor
 
     #latex xcolor.dtx
     #latex xcolor.dtx
@@ -25,8 +25,8 @@ rec {
     #latex xcolor.dtx
 
     rm *.sty *.pro *.ins *.def *.dtx
-    mkdir -p $out/texmf/doc/latex-xcolor
-    cp *  $out/texmf/doc/latex-xcolor
+    mkdir -p $out/texmf-dist/doc/latex-xcolor
+    cp *  $out/texmf-dist/doc/latex-xcolor
 
     ln -s $out/texmf* $out/share/
   '') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];