summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/transcode/default.nix25
-rw-r--r--pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix11
-rw-r--r--pkgs/applications/editors/vim/configurable.nix2
-rw-r--r--pkgs/applications/editors/vim/default.nix2
-rw-r--r--pkgs/applications/graphics/photivo/default.nix2
-rw-r--r--pkgs/applications/misc/camlistore/default.nix31
-rw-r--r--pkgs/applications/misc/kdeconnect/default.nix10
-rw-r--r--pkgs/applications/misc/makeself/default.nix20
-rw-r--r--pkgs/applications/misc/nc-indicators/default.nix6
-rw-r--r--pkgs/applications/misc/ocropus/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/dwb/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix337
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb217
-rw-r--r--pkgs/applications/networking/instant-messengers/baresip/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/skype/default.nix19
-rw-r--r--pkgs/applications/networking/irc/bip/bip-0.8.8-yyparse.patch11
-rw-r--r--pkgs/applications/networking/irc/bip/default.nix13
-rw-r--r--pkgs/applications/office/libreoffice/default.nix95
-rwxr-xr-xpkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh38
-rw-r--r--pkgs/applications/office/libreoffice/libreoffice-srcs.nix445
-rw-r--r--pkgs/applications/office/libreoffice/ooxmlexport.diff31
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix4
-rw-r--r--pkgs/applications/science/logic/abc/default.nix2
-rw-r--r--pkgs/applications/science/logic/twelf/default.nix46
-rw-r--r--pkgs/applications/science/math/glsurf/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix3
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix35
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix4
-rw-r--r--pkgs/applications/version-management/gitolite/default.nix37
-rw-r--r--pkgs/applications/window-managers/tabbed/default.nix2
-rw-r--r--pkgs/build-support/cabal/default.nix4
-rw-r--r--pkgs/build-support/fetchbzr/builder.sh4
-rw-r--r--pkgs/build-support/fetchbzr/default.nix4
-rw-r--r--pkgs/build-support/fetchdarcs/builder.sh6
-rw-r--r--pkgs/build-support/fetchdarcs/default.nix4
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git4
-rw-r--r--pkgs/build-support/fetchhg/builder.sh4
-rw-r--r--pkgs/build-support/fetchhg/default.nix4
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix6
-rwxr-xr-xpkgs/build-support/fetchzip/nix-prefetch-zip153
-rw-r--r--pkgs/build-support/kernel/paths-from-graph.pl18
-rw-r--r--pkgs/build-support/upstream-updater/update-walker-service-specific.sh2
-rwxr-xr-xpkgs/build-support/upstream-updater/update-walker.sh53
-rw-r--r--pkgs/data/fonts/anonymous-pro/default.nix3
-rw-r--r--pkgs/data/fonts/ipafont/default.nix33
-rw-r--r--pkgs/data/fonts/kochi-substitute-naga10/default.nix34
-rw-r--r--pkgs/data/fonts/kochi-substitute/default.nix43
-rw-r--r--pkgs/desktops/gnome-2/desktop/vte/default.nix7
-rw-r--r--pkgs/desktops/gnome-2/desktop/vte/vte-0.28.2-limit-arguments.patch40
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix2
-rw-r--r--pkgs/development/compilers/go/gox.nix54
-rw-r--r--pkgs/development/compilers/jdk/jdk-linux-base.nix175
-rw-r--r--pkgs/development/compilers/jdk/jdk7-linux.nix178
-rw-r--r--pkgs/development/compilers/jdk/jdk8-linux.nix10
-rw-r--r--pkgs/development/compilers/nasm/default.nix7
-rw-r--r--pkgs/development/compilers/sbcl/bootstrap.nix31
-rw-r--r--pkgs/development/compilers/sbcl/default.nix89
-rw-r--r--pkgs/development/compilers/scala/2.9.nix6
-rw-r--r--pkgs/development/compilers/smlnj/bootstrap.nix43
-rw-r--r--pkgs/development/interpreters/lua-5/expat.nix26
-rw-r--r--pkgs/development/interpreters/perl/5.20/cpp-precomp.patch11
-rw-r--r--pkgs/development/interpreters/perl/5.20/default.nix68
-rw-r--r--pkgs/development/interpreters/perl/5.20/ld-shared.patch11
-rw-r--r--pkgs/development/interpreters/perl/5.20/no-libutil.patch12
-rw-r--r--pkgs/development/interpreters/perl/5.20/no-sys-dirs.patch250
-rw-r--r--pkgs/development/interpreters/perl/5.20/setup-hook.sh5
-rw-r--r--pkgs/development/interpreters/php/5.4.nix4
-rw-r--r--pkgs/development/libraries/gloox/default.nix32
-rw-r--r--pkgs/development/libraries/gnu-efi/default.nix29
-rw-r--r--pkgs/development/libraries/gperftools/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/SHA2/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/Yampa/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/bson/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/command-qq/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/deepseq-generics/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/extensible-effects/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/folds/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/ghc-mod/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/hcltest/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hdaemonize/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/ixset/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/monadloc-pp/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/mongoDB/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pipes-aeson/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/pipes-binary/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/pipes-bytestring/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/pipes-text/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/quickcheck-property-monad/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shellmate/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/simple-sendfile/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/snap/server.nix7
-rw-r--r--pkgs/development/libraries/haskell/tables/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/unix-compat/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/webdriver/default.nix27
-rw-r--r--pkgs/development/libraries/libatomic_ops/default.nix28
-rw-r--r--pkgs/development/libraries/libatomic_ops/default.upstream1
-rw-r--r--pkgs/development/libraries/libe-book/0.0.nix30
-rw-r--r--pkgs/development/libraries/libe-book/0.0.upstream4
-rw-r--r--pkgs/development/libraries/libe-book/default.nix29
-rw-r--r--pkgs/development/libraries/libe-book/default.upstream4
-rw-r--r--pkgs/development/libraries/libmwaw/0.2.nix29
-rw-r--r--pkgs/development/libraries/libmwaw/0.2.upstream4
-rw-r--r--pkgs/development/libraries/libmwaw/default.nix29
-rw-r--r--pkgs/development/libraries/libmwaw/default.upstream4
-rw-r--r--pkgs/development/libraries/libodfgen/default.nix29
-rw-r--r--pkgs/development/libraries/libodfgen/default.upstream4
-rw-r--r--pkgs/development/libraries/libre/default.nix8
-rw-r--r--pkgs/development/libraries/librem/default.nix8
-rw-r--r--pkgs/development/libraries/librevenge/default.nix29
-rw-r--r--pkgs/development/libraries/librevenge/default.upstream4
-rw-r--r--pkgs/development/libraries/mdds/default.nix12
-rw-r--r--pkgs/development/libraries/mdds/default.upstream10
-rw-r--r--pkgs/development/libraries/nix-plugins/default.nix25
-rw-r--r--pkgs/development/libraries/nvidia-texture-tools/default.nix41
-rw-r--r--pkgs/development/lisp-modules/lisp-packages.nix2
-rw-r--r--pkgs/development/tools/etcdctl/default.nix30
-rw-r--r--pkgs/development/tools/etcdctl/deps.nix27
-rw-r--r--pkgs/development/tools/gocode/default.nix29
-rw-r--r--pkgs/development/tools/gocode/deps.nix27
-rw-r--r--pkgs/development/tools/misc/arcanist/default.nix10
-rw-r--r--pkgs/development/tools/misc/openocd/default.nix63
-rw-r--r--pkgs/development/tools/ocaml/cppo/default.nix37
-rw-r--r--pkgs/development/tools/packer/default.nix35
-rw-r--r--pkgs/development/tools/packer/deps.nix307
-rw-r--r--pkgs/development/tools/selenium/chromedriver/default.nix4
-rw-r--r--pkgs/development/web/nodejs/default.nix4
-rw-r--r--pkgs/games/0ad/data.nix19
-rw-r--r--pkgs/games/0ad/default.nix120
-rw-r--r--pkgs/games/blobby/default.nix18
-rw-r--r--pkgs/games/blobby/default.upstream8
-rw-r--r--pkgs/games/dwarf-therapist/default.nix2
-rw-r--r--pkgs/games/openspades/default.nix36
-rw-r--r--pkgs/games/opentyrian/default.nix2
-rw-r--r--pkgs/misc/emulators/wine/winetricks.nix5
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/cfg80211_ibss_joined-channel-parameter.patch17
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix1
-rw-r--r--pkgs/os-specific/linux/iomelt/default.nix25
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix60
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.12.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.13.nix17
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.15.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix12
-rw-r--r--pkgs/os-specific/linux/keyutils/default.nix21
-rw-r--r--pkgs/os-specific/linux/syslinux/default.nix32
-rw-r--r--pkgs/servers/etcd/default.nix30
-rw-r--r--pkgs/servers/etcd/deps.nix54
-rw-r--r--pkgs/servers/fleet/default.nix30
-rw-r--r--pkgs/servers/fleet/deps.nix81
-rw-r--r--pkgs/servers/http/nix-binary-cache/default.nix61
-rw-r--r--pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in105
-rw-r--r--pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in97
-rw-r--r--pkgs/servers/nsq/default.nix37
-rw-r--r--pkgs/servers/nsq/deps.nix134
-rw-r--r--pkgs/servers/restund/default.nix4
-rw-r--r--pkgs/servers/samba/default.nix6
-rw-r--r--pkgs/servers/serfdom/default.nix144
-rw-r--r--pkgs/servers/serfdom/deps.nix185
-rw-r--r--pkgs/shells/fish/default.nix6
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix37
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix17
-rw-r--r--pkgs/tools/graphics/povray/default.nix4
-rw-r--r--pkgs/tools/misc/gummiboot/default.nix6
-rw-r--r--pkgs/tools/misc/ngrok/default.nix6
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix4
-rw-r--r--pkgs/tools/package-management/cabal-install/1.20.0.3.nix (renamed from pkgs/tools/package-management/cabal-install/1.20.0.2.nix)4
-rw-r--r--pkgs/tools/package-management/nix-prefetch-scripts/default.nix13
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix4
-rw-r--r--pkgs/tools/security/ecryptfs/default.nix35
-rw-r--r--pkgs/tools/security/gnupg/default.nix4
-rw-r--r--pkgs/tools/security/gnupg1/default.nix4
-rw-r--r--pkgs/tools/security/meo/default.nix2
-rw-r--r--pkgs/tools/security/sudo/default.nix40
-rw-r--r--pkgs/tools/system/storebrowse/default.nix2
-rw-r--r--pkgs/tools/system/syslog-ng/default.nix11
-rw-r--r--pkgs/tools/text/diffstat/default.nix2
-rw-r--r--pkgs/tools/typesetting/djvu2pdf/default.nix28
-rw-r--r--pkgs/top-level/all-packages.nix132
-rw-r--r--pkgs/top-level/haskell-defaults.nix4
-rw-r--r--pkgs/top-level/haskell-packages.nix39
-rw-r--r--pkgs/top-level/python-packages.nix53
185 files changed, 5092 insertions, 831 deletions
diff --git a/pkgs/applications/audio/transcode/default.nix b/pkgs/applications/audio/transcode/default.nix
new file mode 100644
index 00000000000..c414992a12d
--- /dev/null
+++ b/pkgs/applications/audio/transcode/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, flac, lame, zlib, libjpeg, libvorbis, libtheora, libxml2
+, lzo, libdvdread, pkgconfig, x264, libmpeg2, xvidcore }:
+
+stdenv.mkDerivation rec {
+  name = "transcode-1.1.7";
+  src = fetchurl {
+    url = "https://bitbucket.org/france/transcode-tcforge/downloads/${name}.tar.bz2";
+    sha256 = "1e4e72d8e0dd62a80b8dd90699f5ca64c9b0cb37a5c9325c184166a9654f0a92";
+  };
+
+  buildInputs = [ flac lame zlib libjpeg libvorbis libtheora libxml2 lzo
+                  libdvdread pkgconfig x264 libmpeg2 xvidcore ];
+  configureFlags = "--disable-ffmpeg --disable-libavcodec --disable-libavformat
+    --enable-lzo --enable-ogg --enable-vorbis --enable-theora --enable-libxml2
+    --enable-x264 --enable-libmpeg2 --enable-xvid";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Suite of command line utilities for transcoding video and audio codecs, and for converting beween different container formats";
+    homepage = http://www.transcoding.org/;
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix b/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
index a832c7d5942..a9c2478d451 100644
--- a/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
+++ b/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
@@ -1,15 +1,16 @@
-{ cabal, emacs, haskellSrcExts }:
+{ cabal, emacs, haskellMode, haskellSrcExts }:
 
 cabal.mkDerivation (self: {
   pname = "structured-haskell-mode";
-  version = "1.0.2";
-  sha256 = "1lwdhlr38y5hdr78nplplr3q0hrjhryw378f1857qh0lvp03gwl2";
+  version = "1.0.3";
+  sha256 = "0axmw8bj51q8v0wd4jp6giw9dnv0mp7kp8yd16s4nm4hcqgrh5h2";
   isLibrary = false;
   isExecutable = true;
-  buildDepends = [ haskellSrcExts ];
+  buildDepends = [ haskellSrcExts haskellMode ];
   buildTools = [ emacs ];
   postInstall = ''
-    emacs -L elisp --batch -f batch-byte-compile "elisp/"*.el
+    emacs -L elisp -L ${haskellMode}/share/emacs/site-lisp \
+      --batch -f batch-byte-compile "elisp/"*.el
     install -d $out/share/emacs/site-lisp
     install "elisp/"*.el "elisp/"*.elc  $out/share/emacs/site-lisp
   '';
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 9e2abffc451..e0d8de157b0 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -21,7 +21,7 @@ composableDerivation {
         # latest release
       args.fetchhg {
             url = "https://vim.googlecode.com/hg/";
-            tag = "v7-4-316";
+            rev = "v7-4-316";
             sha256 = "0scxx33p1ky0wihk04xqpd6rygp1crm0hx446zbjwbsjj6xxn7sx";
       };
 
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix
index 357de6249fa..bf947280173 100644
--- a/pkgs/applications/editors/vim/default.nix
+++ b/pkgs/applications/editors/vim/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
 
   src = fetchhg {
     url = "https://vim.googlecode.com/hg/";
-    tag = "v7-4-316";
+    rev = "v7-4-316";
     sha256 = "0scxx33p1ky0wihk04xqpd6rygp1crm0hx446zbjwbsjj6xxn7sx";
   };
 
diff --git a/pkgs/applications/graphics/photivo/default.nix b/pkgs/applications/graphics/photivo/default.nix
index 61e3f666dca..156966ac46c 100644
--- a/pkgs/applications/graphics/photivo/default.nix
+++ b/pkgs/applications/graphics/photivo/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchhg {
     url = "http://code.google.com/p/photivo/";
-    tag = "d687864489da";
+    rev = "d687864489da";
     sha256 = "0f6y18k7db2ci6xn664zcwm1g1k04sdv7gg1yd5jk41bndjb7z8h";
   };
 
diff --git a/pkgs/applications/misc/camlistore/default.nix b/pkgs/applications/misc/camlistore/default.nix
new file mode 100644
index 00000000000..80d8dd801a9
--- /dev/null
+++ b/pkgs/applications/misc/camlistore/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, go, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "0.7";
+  name = "camlistore-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/bradfitz/camlistore/archive/0.7.tar.gz";
+    sha256 = "0lc35x2b9llrnma0m5czivly0c3l4lh3ldw9hwn83lkh8n0bzn11";
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    go run make.go
+    rm bin/README
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp bin/* $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Camlistore is a way of storing, syncing, sharing, modelling and backing up content";
+    homepage = https://camlistore.org;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/misc/kdeconnect/default.nix b/pkgs/applications/misc/kdeconnect/default.nix
index 70f3855c3d6..f0a66d42101 100644
--- a/pkgs/applications/misc/kdeconnect/default.nix
+++ b/pkgs/applications/misc/kdeconnect/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, gettext, kdelibs, makeWrapper, qca2, qca2_ossl, qjson }:
+{ stdenv, fetchurl, gettext, kdelibs, libXtst, makeWrapper, qca2, qca2_ossl, qjson }:
 
 stdenv.mkDerivation rec {
   name = "kdeconnect-${version}";
-  version = "0.5.2.1";
+  version = "0.7";
 
   src = fetchurl {
-    url = "http://download.kde.org/unstable/kdeconnect/0.5.2/src/kdeconnect-kde-${version}.tar.xz";
-    sha256 = "0g632ha7xcqf839c4h0dz5637bz6gnn2gz76dc0qq09zbrq49i08";
+    url = "http://download.kde.org/unstable/kdeconnect/${version}/src/kdeconnect-kde-${version}.tar.xz";
+    sha256 = "0a8g3avg9x5j07cf3c16i4w65q3fn1cbs8zxgq0vl14rzdy09q2j";
   };
 
-  buildInputs = [ gettext kdelibs makeWrapper qca2 qca2_ossl qjson ];
+  buildInputs = [ gettext kdelibs libXtst makeWrapper qca2 qca2_ossl qjson ];
 
   postInstall = ''
     wrapProgram $out/lib/kde4/libexec/kdeconnectd --prefix QT_PLUGIN_PATH : ${qca2_ossl}/lib/qt4/plugins
diff --git a/pkgs/applications/misc/makeself/default.nix b/pkgs/applications/misc/makeself/default.nix
index 9ea5f18ee62..e433b83cdeb 100644
--- a/pkgs/applications/misc/makeself/default.nix
+++ b/pkgs/applications/misc/makeself/default.nix
@@ -1,23 +1,25 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  name = "makeself-2.1.5";
-  src = fetchurl {
-    url = "http://megastep.org/makeself/makeself.run";
-    sha256 = "0khs19xpid4ng0igrjyz3vsi6a5xyixrrrhgdxpdhd2wnf5nc9w2";
+  name = "makeself-2.2.0";
+  src = fetchgit {
+    url = "https://github.com/megastep/makeself.git";
+    rev = "b836b9281ae99abe1865608b065551da56c80719";
+    sha256 = "f7c97f0f8ad8128f2f1b54383319f2cc44cbb05b60ced222784debdf326f23ad";
   };
-  unpackPhase = "sh ${src}";
   installPhase = ''
-    cd ${name}
     mkdir -p $out/{bin,share/{${name},man/man1}}
-    mv makeself.lsm README $out/share/${name}
+    mv makeself.lsm README.md $out/share/${name}
     mv makeself.sh $out/bin/makeself
     mv makeself.1  $out/share/man/man1/
     mv makeself-header.sh $out/share/${name}
     sed -e 's|HEADER=`dirname $0`/makeself-header.sh|HEADER=`dirname $0`/../share/${name}/makeself-header.sh|' -i $out/bin/makeself
   '';
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://megastep.org/makeself;
     description = "Utility to create self-extracting packages";
+    license = licenses.gpl2;
+    maintainer = maintainers.wmertens;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/nc-indicators/default.nix b/pkgs/applications/misc/nc-indicators/default.nix
index a33cfbdf159..e3a1708326c 100644
--- a/pkgs/applications/misc/nc-indicators/default.nix
+++ b/pkgs/applications/misc/nc-indicators/default.nix
@@ -2,13 +2,13 @@
 
 cabal.mkDerivation (self: {
   pname = "nc-indicators";
-  version = "0.1";
-  sha256 = "19amwfcbwfxcj0gr7w0vgxl427l43q3l2s3n3zsxhqwkfblxmfy5";
+  version = "0.2";
+  sha256 = "0z3h0d3cl0xapysq5sh1rnbp8fg8adlq0x3i4ql9xin9in29q27q";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ attoparsec gtk hflags lens pipes stm ];
   meta = {
-    homepage = "https://github.com/nilcons/nc-indicators/issues";
+    homepage = "https://github.com/nilcons/nc-indicators";
     description = "CPU load and memory usage indicators for i3bar";
     license = self.stdenv.lib.licenses.asl20;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/applications/misc/ocropus/default.nix b/pkgs/applications/misc/ocropus/default.nix
index fef3209d11a..240a975e611 100644
--- a/pkgs/applications/misc/ocropus/default.nix
+++ b/pkgs/applications/misc/ocropus/default.nix
@@ -40,7 +40,7 @@ pythonPackages.buildPythonPackage rec {
 
   src = fetchhg {
     url = "https://code.google.com/p/ocropus.ocropy";
-    tag = "a6e0fbd820ce";
+    rev = "a6e0fbd820ce";
     sha256 = "1s0v0gd6psfjp6lghwl2dj49h18mgf2n2z8hqzw8430nzhglnlvr";
   };
 
diff --git a/pkgs/applications/networking/browsers/dwb/default.nix b/pkgs/applications/networking/browsers/dwb/default.nix
index 87a548cbb3b..3f490315515 100644
--- a/pkgs/applications/networking/browsers/dwb/default.nix
+++ b/pkgs/applications/networking/browsers/dwb/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, pkgconfig, makeWrapper, libsoup, webkit, gtk3, gnutls, json_c,
-  m4, glib_networking, gsettings_desktop_schemas }:
+  m4, glib_networking, gsettings_desktop_schemas, dconf }:
 
 stdenv.mkDerivation {
   name = "dwb-2014-06-17";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   preFixup=''
     wrapProgram "$out/bin/dwb" \
-     --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+     --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules:${dconf}/lib/gio/modules" \
      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
     wrapProgram "$out/bin/dwbem" \
      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules"
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
new file mode 100644
index 00000000000..b8e3124f185
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -0,0 +1,337 @@
+# This file is generated from generate_nix.rb
+# Execute the following command in a temporary directory to update the file.
+#
+# ruby generate_nix.rb > default.nix
+
+{ stdenv, fetchurl, config
+, alsaLib
+, atk
+, cairo
+, cups
+, dbus_glib
+, dbus_libs
+, fontconfig
+, freetype
+, gconf
+, gdk_pixbuf
+, glib
+, glibc
+, gst_plugins_base
+, gstreamer
+, gtk
+, libX11
+, libXScrnSaver
+, libXext
+, libXinerama
+, libXrender
+, libXt
+, libcanberra
+, libgnome
+, libgnomeui
+, mesa
+, nspr
+, nss
+, pango
+, heimdal
+, pulseaudio
+, systemd
+}:
+
+let
+  version = "30.0";
+  sources = [
+    { locale = "ach"; arch = "linux-i686"; sha256 = "44d2fc9d491b6c001e35cff6e5f1c38c8561d24f8fe2dfb4d79365bcabe965ea"; }
+    { locale = "ach"; arch = "linux-x86_64"; sha256 = "e9fb52a3b82a1434b7fa3bae606749819672c96ce8678c51f1fdbc68520e26bf"; }
+    { locale = "af"; arch = "linux-i686"; sha256 = "bfce74c891ea370ce4e0fe43d578c3c0050d2655fff7372806ed6be338b2c438"; }
+    { locale = "af"; arch = "linux-x86_64"; sha256 = "18408a9c3f3b8c4d9f8cfe067ac23ddcdd3d3a7a22892ba8d74de5679a064db6"; }
+    { locale = "an"; arch = "linux-i686"; sha256 = "601efbf7944408ba1ac35831eaa92c4910cd904bfadc32895ff8d756c70ae934"; }
+    { locale = "an"; arch = "linux-x86_64"; sha256 = "0ba4c272ebac9ecafe5dbfb7fbba1cd2790d126f5b1756ab9a323c94b644df0b"; }
+    { locale = "ar"; arch = "linux-i686"; sha256 = "23ea3168aea75b044fa217b78b01a2dc8c9dd92171d726c4a78c23cffc474469"; }
+    { locale = "ar"; arch = "linux-x86_64"; sha256 = "dae2c1634e17b8c3e276e4c758c4d4c3b1b0d6006adac8e420c13b6f09a6cf53"; }
+    { locale = "as"; arch = "linux-i686"; sha256 = "7d36bd4589556374822f2ab5dd102d557257b5e0b529d1c963f96e9ab6a08850"; }
+    { locale = "as"; arch = "linux-x86_64"; sha256 = "c13ccf3546bafcfeb41c33762e41af249306d4bcfd3ad7fc957db481372be0dc"; }
+    { locale = "ast"; arch = "linux-i686"; sha256 = "853310674d7011956d760883af15b8e343250f8fc3acb3067e0f5a3d978c06ff"; }
+    { locale = "ast"; arch = "linux-x86_64"; sha256 = "2b938081e8672ed5ae16c40c6300e585a26f54da278726f48b98f3ca3e065662"; }
+    { locale = "be"; arch = "linux-i686"; sha256 = "b9acce210f2adf188ba9a3d92774a846a263baa5e076bb9452b89ca5609d6ac8"; }
+    { locale = "be"; arch = "linux-x86_64"; sha256 = "dd2a33ee1ed8c848454b6e64a0c1527f193d070e4d867c4f13fa84f39c9bfecd"; }
+    { locale = "bg"; arch = "linux-i686"; sha256 = "ee060cd395ef28bbad4be74aa42e2a51e7ad866183d139bffbcc7634dc94d738"; }
+    { locale = "bg"; arch = "linux-x86_64"; sha256 = "11a5dd807083da8c3132d9d6518dc674642418eff1fccf68e451ac67b90f141a"; }
+    { locale = "bn-BD"; arch = "linux-i686"; sha256 = "339d286f7f8f469bb6f9f85a8b21a745ecc42717dc91c21c7db88822e9be661a"; }
+    { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "fc3f06743a84a7684e43cd4efedb02a126dd119f6141da49c6120f1bbcdf9392"; }
+    { locale = "bn-IN"; arch = "linux-i686"; sha256 = "c585982368f258a8a728f782c37428311f0b6a6512231c077a439dd93645c3a2"; }
+    { locale = "bn-IN"; arch = "linux-x86_64"; sha256 = "00b9af4425050ec42b4a45a3c4a16700edcc66297331b601950fb81421ef8eb4"; }
+    { locale = "br"; arch = "linux-i686"; sha256 = "b86d944592f16f5f0e558106e3464248e3d686f45527a40fb64aaa79d9f73422"; }
+    { locale = "br"; arch = "linux-x86_64"; sha256 = "b894c12508f0b0a892154ea61fb2bb01947929041a63518f7c405ed976cc4d3f"; }
+    { locale = "bs"; arch = "linux-i686"; sha256 = "f7da0fead608f63c4a5be92fed9e0109fbe7288948d15dde05e10bba80b47743"; }
+    { locale = "bs"; arch = "linux-x86_64"; sha256 = "1cb090f9b16bcae95055377bc14a531697c480ad50e3a098dbd572770924d558"; }
+    { locale = "ca"; arch = "linux-i686"; sha256 = "0b36330715f8909e1515c535a06f4e3fdd7660de11b3424b4ce88f336561935f"; }
+    { locale = "ca"; arch = "linux-x86_64"; sha256 = "c6e9e545d09e589fd5fbfd2c6482a5ef366c470e294823b3ba05c5e728bca2c2"; }
+    { locale = "cs"; arch = "linux-i686"; sha256 = "ff1ca239be0e99b923c63c5bbc425dd2989bc40dbdc82dd731d7173fd539406a"; }
+    { locale = "cs"; arch = "linux-x86_64"; sha256 = "fe8472d6a4bf9fcda3caef51449fc3e20e1fbadbb772b330a012ffa7219afae3"; }
+    { locale = "csb"; arch = "linux-i686"; sha256 = "db1b7dbc7b0cd564a04b3a37827e8d77277cd7ba6a59403c45115d34e637f463"; }
+    { locale = "csb"; arch = "linux-x86_64"; sha256 = "023dd75e02f41a2ce9991fb40a8a46767f1a10da876a390035a084c5b97bd9d2"; }
+    { locale = "cy"; arch = "linux-i686"; sha256 = "9a6ac60099b03bdeb71c1a7739dafeff4b1682ffc43997191196e1f590421afa"; }
+    { locale = "cy"; arch = "linux-x86_64"; sha256 = "a5f2030fb08c0dd6dff95310209ed7c6ee613680dd500f00e30e26c547f9c249"; }
+    { locale = "da"; arch = "linux-i686"; sha256 = "99a893ac19b0ca28177c8957d7296e6deef9ddb36a6b5b17823cb1e6fc9ec683"; }
+    { locale = "da"; arch = "linux-x86_64"; sha256 = "69f29e795f203fe47e22daf1259c2ecfb39c362babefbbccb31405f4632f236b"; }
+    { locale = "de"; arch = "linux-i686"; sha256 = "925aac0800ce63a88fadc945da40b00ed6dde327637821518a372d7affb6e450"; }
+    { locale = "de"; arch = "linux-x86_64"; sha256 = "d86c5d2102a95ff5a6e580a1ca7af25c2f470211182ef70e988b29b195be6dd4"; }
+    { locale = "el"; arch = "linux-i686"; sha256 = "af07fac82dea32d33bd6bc440e2a645eb160d196cf0d4883b878d3d2c584f81a"; }
+    { locale = "el"; arch = "linux-x86_64"; sha256 = "fcc96c25422837f19f9ff6cde02c81c4a5a3b7c8e6809b90c8761519571db1f6"; }
+    { locale = "en-GB"; arch = "linux-i686"; sha256 = "758f7bb669743d6067e416c26f43806b16ddd16511a6818373e70960cbbd7151"; }
+    { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "d46ba3d642bf43fca46dfb29efb5d08a15f114eb9facc868e86c31f7c9c98014"; }
+    { locale = "en-US"; arch = "linux-i686"; sha256 = "4bca44a1ba94bf5616f7ea650e37cd3e5a719546def9e4a08ee88aedbc3a4db6"; }
+    { locale = "en-US"; arch = "linux-x86_64"; sha256 = "3303cc600153d0198dace9826b6883aa510d4e380aa985b092b1da67ad865625"; }
+    { locale = "en-ZA"; arch = "linux-i686"; sha256 = "13736870573863aab644bf2be2219fe4b5c6bde4bd79b84f22e12d39e7cda6e0"; }
+    { locale = "en-ZA"; arch = "linux-x86_64"; sha256 = "7e88fa9f355f6787d38e75d86d5b592a1a2cec208255f276887f53a12beb9e97"; }
+    { locale = "eo"; arch = "linux-i686"; sha256 = "ae4446e223c0169dd0b56db58760fdb323a2bec8135e45c79d385d895b64cee8"; }
+    { locale = "eo"; arch = "linux-x86_64"; sha256 = "202f61dd8e5506594ae70bbee9150d86c8037887f8345871dc5c1c9e498b1d66"; }
+    { locale = "es-AR"; arch = "linux-i686"; sha256 = "8fb276ed26fd46fceb029fbade706cb6e55d2958f03400ec1290784c533888c4"; }
+    { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "78130525d30d7c592bb63d7cedf3ab5db804d457c4d127d90b93d94501ad7b3c"; }
+    { locale = "es-CL"; arch = "linux-i686"; sha256 = "ef6bf393a681f4a08031eeda61bba3614ebfab222fed43f9f8b21cfa8eb3862e"; }
+    { locale = "es-CL"; arch = "linux-x86_64"; sha256 = "e56224bca0ebfab9eedecafafd792e48cb67e3f8741c4d5a94c8f74f634cecf6"; }
+    { locale = "es-ES"; arch = "linux-i686"; sha256 = "9e007e6aa0f8aa3d1fac5dc13e98f81c23e6ff1e574545c021f8f7feeff86ce2"; }
+    { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "d4ff94f46fd086300992a30a1c4a8aa97ad7164d6cd26e82b20b5d0680b38169"; }
+    { locale = "es-MX"; arch = "linux-i686"; sha256 = "9db42a0557838b23ac4937adfec407804e624e679e9ffd6da739d17cdfbaab78"; }
+    { locale = "es-MX"; arch = "linux-x86_64"; sha256 = "d42d619d6da78d0bbcb32b0a93a2eaa623eadb3a5af43e5b8b14400e6e969779"; }
+    { locale = "et"; arch = "linux-i686"; sha256 = "5947822f3f02bd4ba530ad978de1a9d237981e3abdf1598e44095c650794d1ff"; }
+    { locale = "et"; arch = "linux-x86_64"; sha256 = "7521a4db287bb928f50b64817f3631e96ea4cead81b1a84ab7c3b930b3450e86"; }
+    { locale = "eu"; arch = "linux-i686"; sha256 = "44095e98e74205fa012a2c0c636de3fe9cfb79d5729abf15214c1e7734946014"; }
+    { locale = "eu"; arch = "linux-x86_64"; sha256 = "2032dfbc82a9aca1a2f4cf67e6089400bf305d13906f048c5c9b906a7201a9fb"; }
+    { locale = "fa"; arch = "linux-i686"; sha256 = "469b8008287c93e152e762e82fb61644384c1e2631a6c45033503652daed09b1"; }
+    { locale = "fa"; arch = "linux-x86_64"; sha256 = "61ea0d8941d22083f918d014d56a613788d1f4f549e5a62d50a1f9071439a36f"; }
+    { locale = "ff"; arch = "linux-i686"; sha256 = "81a0083e5e4136e3ab3e6db0e2adcedfae7572722655a9cb8b9ca388c6057342"; }
+    { locale = "ff"; arch = "linux-x86_64"; sha256 = "0efe16da918288754a3af816d72448a73690eb71b110cf3ff0586ee7505b9735"; }
+    { locale = "fi"; arch = "linux-i686"; sha256 = "a0ee069e7c3100b921aab7c54c5d32741df4e058f52cb7f42acb2643bd534b30"; }
+    { locale = "fi"; arch = "linux-x86_64"; sha256 = "55c84d504603d648e7d72a2fb8badb0bc9148cb376bb0cc6054f091867cb2613"; }
+    { locale = "fr"; arch = "linux-i686"; sha256 = "9c9abea13db23ef5ef8c9a3ccb5a0702b44a8db2402f43f01a478eb61e7ddf34"; }
+    { locale = "fr"; arch = "linux-x86_64"; sha256 = "ce26fc67cbc2031880ffa3529a59ca4122016258ab1c023e23247c26308b6a3e"; }
+    { locale = "fy-NL"; arch = "linux-i686"; sha256 = "4a734880ed65a207d98630647a341644df4f68149c50ce5e683bb21b5c27f2c6"; }
+    { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "bace955c686456d7894ca7bc1cf854eb158d6183050318efc73768e232c9a413"; }
+    { locale = "ga-IE"; arch = "linux-i686"; sha256 = "4801f40ebd820b8f229cfcd04a04351fcee9f78268af1c9863089ef6c64d736a"; }
+    { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "c417c0182e6f706473bc4b7cf8c14aec96f96e21c17b8593b71ff38c97f7e9d2"; }
+    { locale = "gd"; arch = "linux-i686"; sha256 = "15a9d316d472d2918eff0c6f02600e40a8f62d7ef53ab14c57537fdda0b5257a"; }
+    { locale = "gd"; arch = "linux-x86_64"; sha256 = "8fcdcf093148222865a905586774dae5d805ef22c01afadeaabe3f0c7b315dba"; }
+    { locale = "gl"; arch = "linux-i686"; sha256 = "83b0ccfe7cf7166899d17b2c9b1ea8effda9cf02024698f8db8f943a388bb3dc"; }
+    { locale = "gl"; arch = "linux-x86_64"; sha256 = "550026595e6e59405b5869183af056ba5a60a303270f1a176ef25e3db1c70289"; }
+    { locale = "gu-IN"; arch = "linux-i686"; sha256 = "7e7dc86fa805808931ba57455b99c9273a4b0aa60998affce3c4b06f0ae7fc70"; }
+    { locale = "gu-IN"; arch = "linux-x86_64"; sha256 = "e0f35d7fe7875785e3749131cf86c5cbea5cbd7b3abd2c2c69f5f8376d3e53d7"; }
+    { locale = "he"; arch = "linux-i686"; sha256 = "5c200c8da3209c2120a8576c30ab609331b52807d0640daaa1a70f665c776969"; }
+    { locale = "he"; arch = "linux-x86_64"; sha256 = "6923a64d1ac5453453f148d38f116faca41be5b1d0a13d4f128bb73db67cb8e2"; }
+    { locale = "hi-IN"; arch = "linux-i686"; sha256 = "6a7e5d06169d6dd87e505012604c93a28440156a3f81e6fe24d567f9c2b2a919"; }
+    { locale = "hi-IN"; arch = "linux-x86_64"; sha256 = "56801593b9dd5ecefed8d7eaf438879dd23006ffff9a31c543861259dedf8263"; }
+    { locale = "hr"; arch = "linux-i686"; sha256 = "4573cd0269639d122496bcaf842d8c741f4d54e8f57d0690b97d8e7e86ee7e74"; }
+    { locale = "hr"; arch = "linux-x86_64"; sha256 = "753984384829229601fbe55d0b6615f3432fdf9babe908fb642f6ac79c749727"; }
+    { locale = "hu"; arch = "linux-i686"; sha256 = "c330478e6e77eff117bce58e17661b83a30308f0a680f648fbf06d1c00f3883c"; }
+    { locale = "hu"; arch = "linux-x86_64"; sha256 = "9d118ba236aa7a9b517278c375aa4e4fa65f85c71b8bea9c41702f6ae7b815cb"; }
+    { locale = "hy-AM"; arch = "linux-i686"; sha256 = "48c1691073b6ede77f5c5d5ae07af7372f17b9f52fd92950c2cca0a01b3b340e"; }
+    { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "beda26cefeeeeee59ea52fdd28e1e3025ca4cc3124541fc6825100a61eb398d8"; }
+    { locale = "id"; arch = "linux-i686"; sha256 = "8cf6d0bc2d4bcc68a5ddc935c3bd6ed19a63284dc3227e849be729645a6171d4"; }
+    { locale = "id"; arch = "linux-x86_64"; sha256 = "8be5900b83840871ffb6faba08fea9b35f9f396cae08b228c68e333719fb819f"; }
+    { locale = "is"; arch = "linux-i686"; sha256 = "7c167389105063b84d507b09c689fa18bf854fd695010c8273b9711b21a24034"; }
+    { locale = "is"; arch = "linux-x86_64"; sha256 = "c79321c83c9e654f6eaf96ddf5d24f279d517fbf35dfdf923acf026124919598"; }
+    { locale = "it"; arch = "linux-i686"; sha256 = "a3eb17e0eda3cbf8ffbbd1ecd1716929ac87a801f060dd8ed5291298667775a9"; }
+    { locale = "it"; arch = "linux-x86_64"; sha256 = "3742453f0748911b393fed804e5827f014cc595a9df4516438dfa163d5050411"; }
+    { locale = "ja"; arch = "linux-i686"; sha256 = "fa030c64e04766ae5200370586c08b2f25627343586cd8a0486e583f345c466e"; }
+    { locale = "ja"; arch = "linux-x86_64"; sha256 = "fddeae03ffdfef0f6cc999807e001ea931c15b1833da48655bcb5845f1e017a3"; }
+    { locale = "kk"; arch = "linux-i686"; sha256 = "39d94b10fa751faf7423e5d43cd07ef4485ff26e21e47d106d2268058e2f33d9"; }
+    { locale = "kk"; arch = "linux-x86_64"; sha256 = "1dc7138dd5c08088479c5e7e8054d7ed640504860a0043ecea2c8b0c9c1892f9"; }
+    { locale = "km"; arch = "linux-i686"; sha256 = "0d12a305de4a63fc6c6394bd4044f44ca3626cbc41ca9ef1adad6d5041f6f1fd"; }
+    { locale = "km"; arch = "linux-x86_64"; sha256 = "7710091695dd100b7f33585fce58c54fec462a96540a7d791f1935088f21fadf"; }
+    { locale = "kn"; arch = "linux-i686"; sha256 = "b039e6a1114522ccae10b89ab794a222966fbf0914513b3c14f05c082a78b922"; }
+    { locale = "kn"; arch = "linux-x86_64"; sha256 = "cf82965b25d3990a57d861d688f1bd69e5b069fe281937274060ebe36ddbb8a6"; }
+    { locale = "ko"; arch = "linux-i686"; sha256 = "8b9378d39d7b42852c2bb537b0e85312760c343e6485826ed949ab4617293025"; }
+    { locale = "ko"; arch = "linux-x86_64"; sha256 = "4b946a0cbedad2b8d0c3598c04eeb058cea05d6d7e6388e4cfa3146a40f7c449"; }
+    { locale = "ku"; arch = "linux-i686"; sha256 = "11950c4a54c6a165e924fb6e68bcc46d63b5fddfcd2561c58a0ce401c0146d36"; }
+    { locale = "ku"; arch = "linux-x86_64"; sha256 = "37a07a4e059580c31433b419bcd61d928ad1db7e607cf8443378472d54b61b78"; }
+    { locale = "lij"; arch = "linux-i686"; sha256 = "c0efca49f31800a3773b0d05add56b195d1cbea287108803bb1ef5249a0dc94f"; }
+    { locale = "lij"; arch = "linux-x86_64"; sha256 = "6e4b2d8c5e9942bc469f722110ba310b2ccdc4dda6e3baee93ae54012ae658a2"; }
+    { locale = "lt"; arch = "linux-i686"; sha256 = "acde9010aa815f6645868b03f3d68d9a24c450ed830f063e2846ac1219ee628b"; }
+    { locale = "lt"; arch = "linux-x86_64"; sha256 = "c2491cd3e5d11c302d7ec3191d646e2073c46f69966fc382901a93d16fb0c902"; }
+    { locale = "lv"; arch = "linux-i686"; sha256 = "7411de62c4d8c01c8bb15b3f2dfc2e2ed17755e2f9856ead8e5e0fd05971ffd5"; }
+    { locale = "lv"; arch = "linux-x86_64"; sha256 = "e8e57e629396eb180e0041a50ae98ecb2292f514d423423748e4d4cebc54fb59"; }
+    { locale = "mai"; arch = "linux-i686"; sha256 = "26a053e48f4e6f04e4856a0dcb26e577a6ddb99afc883786d9c260d57e5e4a6d"; }
+    { locale = "mai"; arch = "linux-x86_64"; sha256 = "86be2c736aa5ccf926d44f24afdb2d40c28444b5bd6cf090f9a847199b38b492"; }
+    { locale = "mk"; arch = "linux-i686"; sha256 = "dcf7759bcde70158298ad9e2434e37d4e8240e00589a83dd8dbba53c35466a58"; }
+    { locale = "mk"; arch = "linux-x86_64"; sha256 = "056297d6404794a8da78aeceb620b0ebbcb38a693ee1079cc02e4d0411e40ec3"; }
+    { locale = "ml"; arch = "linux-i686"; sha256 = "2d632b3a5b60f18955906adca80b7ac7af3bfa39d03afd308efd1136cfc8971d"; }
+    { locale = "ml"; arch = "linux-x86_64"; sha256 = "b54a9d47cadeae4f92d22a362ca887a18a16ef64500149ac8eb9355dbbe5971b"; }
+    { locale = "mr"; arch = "linux-i686"; sha256 = "e66b22488bf2c772fa6d29cf43f3e9c1aa2a1a867620a1144af8cb92c2647651"; }
+    { locale = "mr"; arch = "linux-x86_64"; sha256 = "da982205e9b659dd66ab05ca815324642bed2117e668e67ad620bb2d87c5d1c8"; }
+    { locale = "ms"; arch = "linux-i686"; sha256 = "ad39ffa6d6d765c1e983d885f5d139a28e481d536068d517b4807137fa8d3036"; }
+    { locale = "ms"; arch = "linux-x86_64"; sha256 = "fb1b6ed5e2e7247beb69f3d0ad937f76ce7c1107ccdad742ff5085d4b3a8da98"; }
+    { locale = "nb-NO"; arch = "linux-i686"; sha256 = "5220da4627863f9fa1c11886e9c19c315547afafa96c98b22a1a4359c75f1056"; }
+    { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "5f9d60faadc7b76b010cd9cf35922b1881377b535e8afc5d9b974651156df866"; }
+    { locale = "nl"; arch = "linux-i686"; sha256 = "357b28841ea861b8297a4986460d1d265b27202c37bb296dcc69224f9b07fc51"; }
+    { locale = "nl"; arch = "linux-x86_64"; sha256 = "9a8505da2fe045ab6c2a2277d2d043374a26f106a5966b00f42e22fb26cf929a"; }
+    { locale = "nn-NO"; arch = "linux-i686"; sha256 = "f115bb50d1e052584caf7363db875ae222ee37449fa151e2f313c157a6274d76"; }
+    { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "2e7829a8a20c946bddce13b7b3d1b3600f90d90d2438f3eb69188d47203b264d"; }
+    { locale = "or"; arch = "linux-i686"; sha256 = "9ad48bdf2b7f1deedb05bdcc49740d5075ebf6ec228d82a7ed455c6bb36d7cb0"; }
+    { locale = "or"; arch = "linux-x86_64"; sha256 = "a007bc73fb1ea7765016e9faebac2c4f5e0111a45b3d75d1e55f4de8931796a2"; }
+    { locale = "pa-IN"; arch = "linux-i686"; sha256 = "8a38d2b1516ed4b58e36d266cd25a5bd10548f9e412076c9b4f1f27256c98c2a"; }
+    { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "664fa562261532d0f6bad10b84e15d47b69073768c2d12986c8d776eb1af8ddd"; }
+    { locale = "pl"; arch = "linux-i686"; sha256 = "3bb8963f1e3dcdb22cc55feebb2583fefd6f3760f4e6f2cc754174079d4ca07f"; }
+    { locale = "pl"; arch = "linux-x86_64"; sha256 = "710f1d86d2974d6ad3c63ebc0873518fd59f218ba07b27d06fb75c83af2c632e"; }
+    { locale = "pt-BR"; arch = "linux-i686"; sha256 = "cd2fafbd2291bad8481c4086db3c2973a7869b28a5e68a5ff199079814c6b3fc"; }
+    { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "f0ba5dc2366757841afb9c9f7799c40667304c36efe7da284202e8e7a45aa1fc"; }
+    { locale = "pt-PT"; arch = "linux-i686"; sha256 = "051af14810ad0cee4487757833f1f5b4a6f6f903f3cecf00d00410c1324d9ce4"; }
+    { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "82102b33dc1989bc3aa49da3915baf7e4012afe6e4bd7f80a301dfe847f3dbbe"; }
+    { locale = "rm"; arch = "linux-i686"; sha256 = "02051668e46d98f4e2e5becc3192f6173dfdf3a48cc82264c5821be06c5e12a0"; }
+    { locale = "rm"; arch = "linux-x86_64"; sha256 = "9600c1d272785b946058ffac9e57a8b1701d065f24fa940ad22e4b5aec2efad9"; }
+    { locale = "ro"; arch = "linux-i686"; sha256 = "7f17cbd3041396135eee08eac597c8c6a936e5a33d67d2b5de8ae157a56719ad"; }
+    { locale = "ro"; arch = "linux-x86_64"; sha256 = "ba1de85abe53a7d66f6311d6a202d91f86e871bace168cf60a759ab0e17eccdb"; }
+    { locale = "ru"; arch = "linux-i686"; sha256 = "9dcd0c2b5671fc5849b01f2932504a7217fca9a4b4eca8e9b6ff8f5a146517e2"; }
+    { locale = "ru"; arch = "linux-x86_64"; sha256 = "725214900968e4e648d3d13635bf72d34910eb31a30b83a3e7ba9c5c4085c2d7"; }
+    { locale = "si"; arch = "linux-i686"; sha256 = "d22ed75aa727351efcdba1cffe8e24ff305943c9a3072cac08b004677cf6a028"; }
+    { locale = "si"; arch = "linux-x86_64"; sha256 = "89d60c682413949a6dad4b7fd49cc4508c4e067fe5847c5f21d5e25a953f195f"; }
+    { locale = "sk"; arch = "linux-i686"; sha256 = "4ecbc58df00eaf4fafb1c33a93493bdd3e544562a67c60e2d4d93da90d369261"; }
+    { locale = "sk"; arch = "linux-x86_64"; sha256 = "75baa2c5153e282e2671d6222b7fc8c3b9cfc2b9ee0a595a4451fd314a928fb4"; }
+    { locale = "sl"; arch = "linux-i686"; sha256 = "53e2ae3525d0bd2005a86bf7ed3f27ca66906ddfceb85a738bd60e46ba2df773"; }
+    { locale = "sl"; arch = "linux-x86_64"; sha256 = "2dcc5592a49767dc3f2a7d40387bb550fd36724419ff567f9d107e32b2cf2d6d"; }
+    { locale = "son"; arch = "linux-i686"; sha256 = "d3b7372c59b21d0393768197517b3666ab78705b04a6e84a3345da031bad3776"; }
+    { locale = "son"; arch = "linux-x86_64"; sha256 = "fc017e7a18701880c7a54c23a0f77a6521aae17880dbc562e2b37167ba918fa0"; }
+    { locale = "sq"; arch = "linux-i686"; sha256 = "7f9c9100c559ebfbfff35adc694199079930f4bf9f1f6a820c0e17d80ea0e12b"; }
+    { locale = "sq"; arch = "linux-x86_64"; sha256 = "0f3fcddabab8263eb4c238942c45c0b5efc20c169948da24c56ed401a85209dc"; }
+    { locale = "sr"; arch = "linux-i686"; sha256 = "6281e2f849b3c530ff383cfd4cdc4ab06115362c3d57ba8133a9f799af08e815"; }
+    { locale = "sr"; arch = "linux-x86_64"; sha256 = "368ca83faa5ef3640f71d977916614369ebac1622681e828b75e9abf6ebeb425"; }
+    { locale = "sv-SE"; arch = "linux-i686"; sha256 = "9f77f497fc3e8c585bd546c0bb95c92f9f37d683e092c0762b3fe0022b6d39b5"; }
+    { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "0aa21764f0ca58591e3cfebba75196edd51a8fdbadb738f036994178c9612a67"; }
+    { locale = "ta"; arch = "linux-i686"; sha256 = "463ce70405d84945c201cca56c84171e097e6a0420d38cd453a0836fad82f09c"; }
+    { locale = "ta"; arch = "linux-x86_64"; sha256 = "db7e78bc1f4bcb573474806d19324eca58f42008fb0b0fa856f701f1430aeefd"; }
+    { locale = "te"; arch = "linux-i686"; sha256 = "18643daf675f8ef9785a0039d012c3a8ce96f4d228426651c5f09c292cbfb335"; }
+    { locale = "te"; arch = "linux-x86_64"; sha256 = "d9f8a260fc47b608fd523c61e9c6981776997f4b7fc247e794be32d177abfbc0"; }
+    { locale = "th"; arch = "linux-i686"; sha256 = "e03b80d55d2a545ab3219c5e88ed6b7d6974945e32321a2fc96039a6996638f6"; }
+    { locale = "th"; arch = "linux-x86_64"; sha256 = "0416fd2b7e7ddde59a101fcba8258622a83b739effb327984fa8405e634c2121"; }
+    { locale = "tr"; arch = "linux-i686"; sha256 = "75a49ce141c9a04254185b62af72c7e8c214e19e5257ff308b294aee6ac49a28"; }
+    { locale = "tr"; arch = "linux-x86_64"; sha256 = "0845a554b299b848d35894144d3ba5c7e0b808bcc9b2732e904463258ca73cb7"; }
+    { locale = "uk"; arch = "linux-i686"; sha256 = "a89f58c0f20a3ff7e609f572a4786f06b48886b7e2d303824417f42af49c8df2"; }
+    { locale = "uk"; arch = "linux-x86_64"; sha256 = "b45768588aaf80917c8ad40d62835cc96c3dadf97715234e66542b96eeb8db8e"; }
+    { locale = "vi"; arch = "linux-i686"; sha256 = "3fc35e59ecbbdf1b76b5b66e962a60eb724d9514d622879108725bcf7881fd1e"; }
+    { locale = "vi"; arch = "linux-x86_64"; sha256 = "88116edeeecbfe1ac03af0da26aff84bc3aa5ba00574e899ec08e0d68243f509"; }
+    { locale = "xh"; arch = "linux-i686"; sha256 = "a3afd3ac14049c72a9be28fb9a0849e4d3c5c2f13cb160c480988c4231679329"; }
+    { locale = "xh"; arch = "linux-x86_64"; sha256 = "569587e9cc4cd99899d2939367d56f2e4e9ae333b583064a648f05a8b0b58e2c"; }
+    { locale = "zh-CN"; arch = "linux-i686"; sha256 = "358e44998142e56356b839a51dff97fe85e6293424bd0c148decf61f01b6125b"; }
+    { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "7b5a84dbbe361a775aaadad8fd328e24f6cf2e336297f1d5906f51ff5d3dfae7"; }
+    { locale = "zh-TW"; arch = "linux-i686"; sha256 = "cf2cb9bed37dffe178a524ef5fe983e0e8b18f17c999e98474ae13e012da54da"; }
+    { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "aa0f1c5fb96dc4585e70fbcc291c6842be25e5d59be8bf39e8dc0232e9f1a76c"; }
+    { locale = "zu"; arch = "linux-i686"; sha256 = "775f6507ae8d6c2ef6e29e6b4d00453dcf9a0c9651eb9da482c78b5ebe64f2cd"; }
+    { locale = "zu"; arch = "linux-x86_64"; sha256 = "603510372a52497a8e41468dbc193afa25b0615f504f4548201deb89f27bd354"; }
+  ];
+
+  arch = if stdenv.system == "i686-linux"
+    then "linux-i686"
+    else "linux-x86_64";
+
+  isPrefixOf = prefix: string:
+    builtins.substring 0 (builtins.stringLength prefix) string == prefix;
+
+  sourceMatches = locale: source:
+      (isPrefixOf source.locale locale) && source.arch == arch;
+
+  systemLocale = config.i18n.defaultLocale or "en-US";
+
+  defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+
+  source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+
+in
+
+stdenv.mkDerivation {
+  name = "firefox-bin-${version}";
+
+  src = fetchurl {
+    url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/${version}/${source.arch}/${source.locale}/firefox-${version}.tar.bz2";
+    inherit (source) sha256;
+  };
+
+  phases = "unpackPhase installPhase";
+
+  libPath = stdenv.lib.makeLibraryPath
+    [ stdenv.gcc.gcc
+      alsaLib
+      atk
+      cairo
+      cups
+      dbus_glib
+      dbus_libs
+      fontconfig
+      freetype
+      gconf
+      gdk_pixbuf
+      glib
+      glibc
+      gst_plugins_base
+      gstreamer
+      gtk
+      libX11
+      libXScrnSaver
+      libXext
+      libXinerama
+      libXrender
+      libXt
+      libcanberra
+      libgnome
+      libgnomeui
+      mesa
+      nspr
+      nss
+      pango
+      heimdal
+      pulseaudio
+      systemd
+    ] + ":" + stdenv.lib.makeSearchPath "lib64" [
+      stdenv.gcc.gcc
+    ];
+
+  # "strip" after "patchelf" may break binaries.
+  # See: https://github.com/NixOS/patchelf/issues/10
+  dontStrip = 1;
+
+  installPhase =
+    ''
+      mkdir -p "$prefix/usr/lib/firefox-bin-${version}"
+      cp -r * "$prefix/usr/lib/firefox-bin-${version}"
+
+      mkdir -p "$out/bin"
+      ln -s "$prefix/usr/lib/firefox-bin-${version}/firefox" "$out/bin/"
+
+      for executable in \
+        firefox mozilla-xremote-client firefox-bin plugin-container \
+        updater crashreporter webapprt-stub
+      do
+        patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+          "$out/usr/lib/firefox-bin-${version}/$executable"
+      done
+
+      for executable in \
+        firefox mozilla-xremote-client firefox-bin plugin-container \
+        updater crashreporter webapprt-stub libxul.so
+      do
+        patchelf --set-rpath "$libPath" \
+          "$out/usr/lib/firefox-bin-${version}/$executable"
+      done
+
+      # Create a desktop item.
+      mkdir -p $out/share/applications
+      cat > $out/share/applications/firefox.desktop <<EOF
+      [Desktop Entry]
+      Type=Application
+      Exec=$out/bin/firefox
+      Icon=$out/lib/firefox-bin-${version}/chrome/icons/default/default256.png
+      Name=Firefox
+      GenericName=Web Browser
+      Categories=Application;Network;
+      EOF
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Mozilla Firefox, free web browser";
+    homepage = http://www.mozilla.org/firefox/;
+    license = {
+      shortName = "unfree"; # not sure
+      fullName = "unfree";
+      url = http://www.mozilla.org/en-US/foundation/trademarks/policy/;
+    };
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb b/pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb
new file mode 100644
index 00000000000..a768b1f8dff
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox-bin/generate_nix.rb
@@ -0,0 +1,217 @@
+# TODO share code with thunderbird-bin/generate_nix.rb
+
+version = if ARGV.empty?
+            "latest"
+          else
+            ARGV[0]
+          end
+
+base_path = "download-installer.cdn.mozilla.net/pub/firefox/releases"
+
+arches = ["linux-i686", "linux-x86_64"]
+
+arches.each do |arch|
+  system("wget", "--recursive", "--continue", "--no-parent", "--reject-regex", ".*\\?.*", "--reject", "xpi", "http://#{base_path}/#{version}/#{arch}/")
+end
+
+locales = Dir.glob("#{base_path}/#{version}/#{arches[0]}/*").map do |path|
+  File.basename(path)
+end.sort
+
+locales.delete("index.html")
+locales.delete("xpi")
+
+# real version number, e.g. "30.0" instead of "latest".
+real_version = Dir.glob("#{base_path}/#{version}/#{arches[0]}/#{locales[0]}/firefox-*")[0].match(/firefox-([0-9.]*)/)[1][0..-2]
+
+locale_arch_path_tuples = locales.flat_map do |locale|
+  arches.map do |arch|
+    path = Dir.glob("#{base_path}/#{version}/#{arch}/#{locale}/firefox-*")[0]
+
+    [locale, arch, path]
+  end
+end
+
+paths = locale_arch_path_tuples.map do |tuple| tuple[2] end
+
+hashes = IO.popen(["sha256sum", "--binary", *paths]) do |input|
+  input.each_line.map do |line|
+    $stderr.puts(line)
+
+    line.match(/^[0-9a-f]*/)[0]
+  end
+end
+
+
+puts(<<"EOH")
+# This file is generated from generate_nix.rb
+# Execute the following command in a temporary directory to update the file.
+#
+# ruby generate_nix.rb > default.nix
+
+{ stdenv, fetchurl, config
+, alsaLib
+, atk
+, cairo
+, cups
+, dbus_glib
+, dbus_libs
+, fontconfig
+, freetype
+, gconf
+, gdk_pixbuf
+, glib
+, glibc
+, gst_plugins_base
+, gstreamer
+, gtk
+, libX11
+, libXScrnSaver
+, libXext
+, libXinerama
+, libXrender
+, libXt
+, libcanberra
+, libgnome
+, libgnomeui
+, mesa
+, nspr
+, nss
+, pango
+, heimdal
+, pulseaudio
+, systemd
+}:
+
+let
+  version = "#{real_version}";
+  sources = [
+EOH
+
+locale_arch_path_tuples.zip(hashes) do |tuple, hash|
+  locale, arch, path = tuple
+
+  puts(%Q|    { locale = "#{locale}"; arch = "#{arch}"; sha256 = "#{hash}"; }|)
+end
+
+puts(<<'EOF')
+  ];
+
+  arch = if stdenv.system == "i686-linux"
+    then "linux-i686"
+    else "linux-x86_64";
+
+  isPrefixOf = prefix: string:
+    builtins.substring 0 (builtins.stringLength prefix) string == prefix;
+
+  sourceMatches = locale: source:
+      (isPrefixOf source.locale locale) && source.arch == arch;
+
+  systemLocale = config.i18n.defaultLocale or "en-US";
+
+  defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+
+  source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+
+in
+
+stdenv.mkDerivation {
+  name = "firefox-bin-${version}";
+
+  src = fetchurl {
+    url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/${version}/${source.arch}/${source.locale}/firefox-${version}.tar.bz2";
+    inherit (source) sha256;
+  };
+
+  phases = "unpackPhase installPhase";
+
+  libPath = stdenv.lib.makeLibraryPath
+    [ stdenv.gcc.gcc
+      alsaLib
+      atk
+      cairo
+      cups
+      dbus_glib
+      dbus_libs
+      fontconfig
+      freetype
+      gconf
+      gdk_pixbuf
+      glib
+      glibc
+      gst_plugins_base
+      gstreamer
+      gtk
+      libX11
+      libXScrnSaver
+      libXext
+      libXinerama
+      libXrender
+      libXt
+      libcanberra
+      libgnome
+      libgnomeui
+      mesa
+      nspr
+      nss
+      pango
+      heimdal
+      pulseaudio
+      systemd
+    ] + ":" + stdenv.lib.makeSearchPath "lib64" [
+      stdenv.gcc.gcc
+    ];
+
+  # "strip" after "patchelf" may break binaries.
+  # See: https://github.com/NixOS/patchelf/issues/10
+  dontStrip = 1;
+
+  installPhase =
+    ''
+      mkdir -p "$prefix/usr/lib/firefox-bin-${version}"
+      cp -r * "$prefix/usr/lib/firefox-bin-${version}"
+
+      mkdir -p "$out/bin"
+      ln -s "$prefix/usr/lib/firefox-bin-${version}/firefox" "$out/bin/"
+
+      for executable in \
+        firefox mozilla-xremote-client firefox-bin plugin-container \
+        updater crashreporter webapprt-stub
+      do
+        patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+          "$out/usr/lib/firefox-bin-${version}/$executable"
+      done
+
+      for executable in \
+        firefox mozilla-xremote-client firefox-bin plugin-container \
+        updater crashreporter webapprt-stub libxul.so
+      do
+        patchelf --set-rpath "$libPath" \
+          "$out/usr/lib/firefox-bin-${version}/$executable"
+      done
+
+      # Create a desktop item.
+      mkdir -p $out/share/applications
+      cat > $out/share/applications/firefox.desktop <<EOF
+      [Desktop Entry]
+      Type=Application
+      Exec=$out/bin/firefox
+      Icon=$out/lib/firefox-bin-${version}/chrome/icons/default/default256.png
+      Name=Firefox
+      GenericName=Web Browser
+      Categories=Application;Network;
+      EOF
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Mozilla Firefox, free web browser";
+    homepage = http://www.mozilla.org/firefox/;
+    license = {
+      shortName = "unfree"; # not sure
+      fullName = "unfree";
+      url = http://www.mozilla.org/en-US/foundation/trademarks/policy/;
+    };
+    platforms = platforms.linux;
+  };
+}
+EOF
diff --git a/pkgs/applications/networking/instant-messengers/baresip/default.nix b/pkgs/applications/networking/instant-messengers/baresip/default.nix
index 61cd62fefd4..b878427e876 100644
--- a/pkgs/applications/networking/instant-messengers/baresip/default.nix
+++ b/pkgs/applications/networking/instant-messengers/baresip/default.nix
@@ -4,11 +4,11 @@
 , gsm, speex, portaudio, spandsp, libuuid
 }:
 stdenv.mkDerivation rec {
-  version = "0.4.3";
+  version = "0.4.11";
   name = "baresip-${version}";
   src=fetchurl {
     url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
-    sha256 = "03vpzn0c3mybnwn84ha3yci780qsjm669dwja1srj0hbrq81rbil";
+    sha256 = "1ql5h9ily9jncp9w302v3b2ldx613kc60zlqv0v0ln8hsm8q6bc5";
   };
   buildInputs = [zlib openssl libre librem pkgconfig
     cairo mpg123 gstreamer gst_ffmpeg gst_plugins_base gst_plugins_bad gst_plugins_good
@@ -41,5 +41,9 @@ stdenv.mkDerivation rec {
     platforms = with stdenv.lib.platforms; linux;
     maintainers = with stdenv.lib.maintainers; [raskin];
     license = with stdenv.lib.licenses; bsd3;
+    inherit version;
+    downloadPage = "http://www.creytiv.com/pub/";
+    updateWalker = true;
+    downloadURLRegexp = "/baresip-.*[.]tar[.].*";
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/skype/default.nix b/pkgs/applications/networking/instant-messengers/skype/default.nix
index 20a304952a7..f1ac1063934 100644
--- a/pkgs/applications/networking/instant-messengers/skype/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skype/default.nix
@@ -1,20 +1,18 @@
-{ stdenv, fetchurl, alsaLib, libXv, libXi, libXrender, libXrandr, zlib, glib
+{ stdenv, fetchurl, libXv, libXi, libXrender, libXrandr, zlib, glib
 , libXext, libX11, libXScrnSaver, libSM, qt4, libICE, freetype, fontconfig
-, pulseaudio, usePulseAudio, lib }:
+, pulseaudio, lib, ... }:
 
 assert stdenv.system == "i686-linux";
 
 stdenv.mkDerivation rec {
-  name = "skype-4.2.0.13";
+  name = "skype-4.3.0.37";
 
   src = fetchurl {
     url = "http://download.skype.com/linux/${name}.tar.bz2";
-    sha256 = "137kp6c0v4z7n7pp4hwrx4gjgk4knwj815dc6swh44lb5cj1c5m5";
+    sha256 = "0bc9kck99rcsqzxzw3j6vnw5byvr8c9wixrx609zp255g0wxr6cc";
   };
 
-  buildInputs =
-    lib.optional usePulseAudio pulseaudio ++ [
-    alsaLib
+  buildInputs = [
     stdenv.glibc
     stdenv.gcc.gcc
     libXv
@@ -27,6 +25,7 @@ stdenv.mkDerivation rec {
     libXi
     libXrender
     libXrandr
+    pulseaudio
     freetype
     fontconfig
     zlib
@@ -44,13 +43,13 @@ stdenv.mkDerivation rec {
       fullPath=$fullPath''${fullPath:+:}$i/lib
     done
 
-    dynlinker="$(cat $NIX_GCC/nix-support/dynamic-linker)"
+    patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+        --set-rpath "$fullPath" $out/libexec/skype/skype
 
     cat > $out/bin/skype << EOF
     #!${stdenv.shell}
     export PULSE_LATENCY_MSEC=60  # workaround for pulseaudio glitches
-    export LD_LIBRARY_PATH=$fullPath:$LD_LIBRARY_PATH
-    $dynlinker $out/libexec/skype/skype --resources=$out/libexec/skype "\$@"
+    $out/libexec/skype/skype --resources=$out/libexec/skype "\$@"
     EOF
 
     chmod +x $out/bin/skype
diff --git a/pkgs/applications/networking/irc/bip/bip-0.8.8-yyparse.patch b/pkgs/applications/networking/irc/bip/bip-0.8.8-yyparse.patch
deleted file mode 100644
index 5d48fc99a0d..00000000000
--- a/pkgs/applications/networking/irc/bip/bip-0.8.8-yyparse.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- bip-0.8.8/src/lex.l.orig
-+++ bip-0.8.8/src/lex.l
-@@ -16,7 +16,7 @@
- int linec;
- #include "util.h"
- extern list_t *root_list;
--void yyparse(void);
-+int yyparse(void);
- void free_conf(list_t*);
- int conf_error;
- typedef struct bip bip_t;
diff --git a/pkgs/applications/networking/irc/bip/default.nix b/pkgs/applications/networking/irc/bip/default.nix
index 89fdf0d8df8..6f816e1db17 100644
--- a/pkgs/applications/networking/irc/bip/default.nix
+++ b/pkgs/applications/networking/irc/bip/default.nix
@@ -2,8 +2,8 @@
 
 let
 
-  version = "0.8.8";
-  sha256 = "7ca3fb96f5ee6b76eb398d7ea45344ea24855344ced11632241a33353bba05d7";
+  version = "0.8.9";
+  sha256 = "0q942g9lyd8pjvqimv547n6vik5759r9npw3ws3bdj4ixxqhz59w";
 
   # fetches patches from a gentoo mirror
   fetchPatch =
@@ -25,19 +25,12 @@ in stdenv.mkDerivation {
 
   # includes an important security patch
   patches = map fetchPatch [
-    { file = "bip-0.8.8-configure.patch";
-      sha256 = "286e169745e6cd768f0cb95bbc9589ca2bda497eb06461174549b80a459d901c";
-    }
-    { file = "bip-CVE-2012-0806.patch";
-      sha256 = "e47523095ee1d717c762ca0195520026c6ea2c30d8adcf434d276d42f052d506";
-    }
     { file = "bip-freenode.patch";
       sha256 = "a67e582f89cc6a32d5bb48c7e8ceb647b889808c2c8798ae3eb27d88869b892f";
     }
   ];
 
   postPatch = ''
-    patch -p1 < ${./bip-0.8.8-yyparse.patch}
   '';
 
   configureFlags = [ "--disable-pie" ];
@@ -48,5 +41,7 @@ in stdenv.mkDerivation {
     description = "An IRC proxy (bouncer)";
     homepage = http://bip.milkypond.org/;
     license = stdenv.lib.licenses.gpl2;
+    downloadPage= "https://projects.duckcorp.org/projects/bip/files";
+    inherit version;
   };
 }
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index f4da232c747..b1cbc6fd54f 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -14,62 +14,20 @@
 , autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
 , libwpg, dbus_glib, glibc, qt4, kde4, clucene_core, libcdr, lcms, vigra
 , unixODBC, mdds, saneBackends, mythes, libexttextcat, libvisio
-, fontsConf, pkgconfig, libzip, bluez5, libtool, maven
+, fontsConf, pkgconfig, libzip, bluez5, libtool, maven, libe-book_00
+, libmwaw_02, libatomic_ops, graphite2, harfbuzz
 , langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" ]
 }:
 
 let
   langsSpaces = stdenv.lib.concatStringsSep " " langs;
   major = "4";
-  minor = "0";
+  minor = "2";
   patch = "5";
   tweak = "2";
   subdir = "${major}.${minor}.${patch}";
   version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
 
-  # configure phase dependency
-  liborcus = stdenv.mkDerivation rec {
-     version = "0.3.0";
-     name = "liborcus-${version}";
-
-     src = fetchurl {
-       url = "http://dev-www.libreoffice.org/src/8755aac23317494a9028569374dc87b2-liborcus_0.3.0.tar.bz2";
-       sha256 = "0xrw13s390mcpm50apclydl38sw2sdq27csrr1k0d39jna2990ih";
-     };
-
-     configureFlags = "--disable-werror";
-
-     buildInputs = [ zlib boost mdds pkgconfig libixion libzip ];
-  };
-
-  # configure phase dependency
-  liblangtag = stdenv.mkDerivation rec {
-     version = "0.4.0";
-     name = "liblangtag-${version}";
-
-     src = fetchurl {
-       url = "http://dev-www.libreoffice.org/src/54e578c91b1b68e69c72be22adcb2195-${name}.tar.bz2";
-       sha256 = "1bjb0fxjmvzxlhr5by9wgisf6w5yvy6wgfzfkjyw6igk39fivdyb";
-     };
-
-     buildInputs = [ libtool pkgconfig libxml2 ];
-  };
-
-  # doesn't work with srcs versioning
-  libmspub = stdenv.mkDerivation rec {
-     version = "0.0.6";
-     name = "libmspub-${version}";
-
-     src = fetchurl {
-       url = "http://dev-www.libreoffice.org/src/${name}.tar.gz";
-       sha256 = "1zdcvnm0dpac5yqdv34hq9j38cnhyqzyjgb19iyp54ajnwfjhmcq";
-     };
-
-     configureFlags = "--disable-werror";
-
-     buildInputs = [ zlib libwpd libwpg pkgconfig boost icu ];
-  };
-
   # doesn't exist in srcs
   libixion = stdenv.mkDerivation rec {
      version = "0.5.0";
@@ -85,9 +43,12 @@ let
      buildInputs = [ boost mdds pkgconfig ];
   };
 
-  fetchThirdParty = {name, md5}: fetchurl {
+  fetchThirdParty = {name, md5, brief}: fetchurl {
     inherit name md5;
-    url = "http://dev-www.libreoffice.org/src/${md5}-${name}";
+    url = if brief then
+            "http://dev-www.libreoffice.org/src/${name}"
+          else
+            "http://dev-www.libreoffice.org/src/${md5}-${name}";
   };
 
   fetchSrc = {name, sha256}: fetchurl {
@@ -104,14 +65,14 @@ let
 
     translations = fetchSrc {
       name = "translations";
-      sha256 = "0x96wlwr5m7w4k3ygydzak3ycq35hjq60vfi6nfxczlr8pfjyjxv";
+      sha256 = "0nv47r043w151687ks06w786h8azi8gylxma9c7qyjbdj6cdb2ly";
     };
 
     # TODO: dictionaries
 
     help = fetchSrc {
       name = "help";
-      sha256 = "0nab5jcgrrgn0v1yrm18nl9avp4vifbas48l1absz3jmzf9wka7b";
+      sha256 = "1kbkdngq39gfq2804v6vnllax4gqs25zlfk6y561iiipld1ncc5v";
     };
 
   };
@@ -121,7 +82,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "195g1iab7j2x7sl326xbq7vya412ns57xrwpv9hqdrb7iiz2n8la";
+    sha256 = "4bf7898d7d0ba918a8f6668eff0904a549e5a2de837854716e6d996f121817d5";
   };
 
   # Openoffice will open libcups dynamically, so we link it directly
@@ -135,7 +96,7 @@ stdenv.mkDerivation rec {
 
   postUnpack = ''
     mkdir -v $sourceRoot/src
-  '' + (stdenv.lib.concatMapStrings (f: "ln -sv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\n") srcs.third_party)
+  '' + (stdenv.lib.concatMapStrings (f: "ln -sv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\nln -sv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
   + ''
     ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
     tar xf $sourceRoot/src/${srcs.help.name} -C $sourceRoot/../
@@ -149,6 +110,8 @@ stdenv.mkDerivation rec {
       -e 's,! */usr/bin/perl,!${perl}/bin/perl,' -e 's,! */usr/bin/env perl,!${perl}/bin/perl,' \
       -e 's,! */usr/bin/python,!${python3}/bin/${python3.executable},' -e 's,! */usr/bin/env python,!${python3}/bin/${python3.executable},'
     #sed -i 's,ANT_OPTS+="\(.*\)",ANT_OPTS+=\1,' apache-commons/java/*/makefile.mk
+
+    patch -Np1 -i ${./ooxmlexport.diff};
   '';
 
   QT4DIR = qt4;
@@ -162,6 +125,10 @@ stdenv.mkDerivation rec {
       "--with-parallelism=$NIX_BUILD_CORES"
       "--with-lang=${langsSpaces}"
     );
+
+    chmod a+x ./bin/unpack-sources
+    # It is used only as an indicator of the proper current directory
+    touch solenv/inc/target.mk
   '';
 
   makeFlags = "SHELL=${bash}/bin/bash";
@@ -172,9 +139,6 @@ stdenv.mkDerivation rec {
     # This is required as some cppunittests require fontconfig configured
     export FONTCONFIG_FILE=${fontsConf}
 
-    # Fix sysui: wants to create a tar for root
-    sed -i -e 's,--own.*root,,' sysui/desktop/slackware/makefile.mk
-
     # This to aovid using /lib:/usr/lib at linking
     sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
 
@@ -199,7 +163,7 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [
-    "--with-vender=NixOS"
+    "--with-vendor=NixOS"
 
     # Without these, configure does not finish
     "--without-junit"
@@ -219,11 +183,11 @@ stdenv.mkDerivation rec {
     "--without-doxygen"
 
     # I imagine this helps. Copied from go-oo.
-    "--disable-epm"
-    "--disable-mathmldtd"
+    # Modified on every upgrade, though
     "--disable-kde"
     "--disable-postgresql-sdbc"
     "--with-package-format=native"
+    "--enable-epm"
     "--with-jdk-home=${jdk}/lib/openjdk"
     "--with-ant-home=${ant}/lib/ant"
     "--without-afms"
@@ -235,10 +199,17 @@ stdenv.mkDerivation rec {
     "--without-system-jars"
     "--without-system-altlinuxhyph"
     "--without-system-lpsolve"
-    "--without-system-graphite"
     "--without-system-npapi-headers"
     "--without-system-libcmis"
-    "--without-system-mozilla"
+
+    "--without-system-libetonyek"
+    "--without-system-libfreehand"
+    "--without-system-libodfgen"
+    "--without-system-libabw"
+    "--without-system-firebird"
+    "--without-system-orcus"
+    "--without-system-liblangtag"
+    "--without-system-libmspub"
   ];
 
   checkPhase = ''
@@ -253,11 +224,11 @@ stdenv.mkDerivation rec {
       hunspell icu jdk kde4.kdelibs lcms libcdr libexttextcat unixODBC libjpeg
       libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
       libXaw libXext libXi libXinerama libxml2 libxslt libXtst
-      libXdmcp libpthreadstubs mdds mesa mythes
+      libXdmcp libpthreadstubs mesa mythes
       neon nspr nss openldap openssl ORBit2 pam perl pkgconfigUpstream poppler
       python3 sablotron saneBackends tcsh unzip vigra which zip zlib
-      mdds bluez5 glibc libmspub libixion liborcus liblangtag
-      libxshmfence
+      mdds bluez5 glibc libixion
+      libxshmfence libe-book_00 libmwaw_02 libatomic_ops graphite2 harfbuzz
     ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh b/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh
index ab6c4e3fb07..e5a867463bf 100755
--- a/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh
+++ b/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.sh
@@ -6,15 +6,39 @@ cat <<EOF
 [
 EOF
 
-read file
-while read file; do
-  if [[ "$file" == @* ]]; then
-    break
-  fi
+write_entry(){
   echo '{'
-  echo "  name = \"${file:33}\";"
-  echo "  md5 = \"${file:0:32}\";"
+  echo "  name = \"${name}\";"
+  echo "  md5 = \"${md5}\";"
+  echo "  brief = ${brief};"
   echo '}'
+}
+
+while read line; do
+  case "$line" in
+    \#*)
+      echo Skipping comment: "$line" >&2;
+      ;;
+    *_MD5SUM\ :=*)
+      read tbline;
+      line=${line##* };
+      tbline=${tbline##* };
+      md5=$line
+      name=$tbline;
+      brief=true;
+      write_entry;
+      ;;
+    *_TARBALL\ :=*)
+      line=${line##* };
+      md5=${line:0:32};
+      name=${line:33};
+      brief=false;
+      write_entry;
+      ;;
+    *)
+      echo Skipping: "$line" >&2;
+      ;;
+  esac
 done
 
 echo ']'
diff --git a/pkgs/applications/office/libreoffice/libreoffice-srcs.nix b/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
index 6ed1a5e2c63..cceb1a49e42 100644
--- a/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
+++ b/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
@@ -1,114 +1,467 @@
 [
 {
-  name = "glibc-2.1.3-stub.tar.gz";
-  md5 = "4a660ce8466c9df01f19036435425c3a";
+  name = "libabw-0.0.2.tar.bz2";
+  md5 = "40fa48e03b1e28ae0325cc34b35bc46d";
+  brief = true;
 }
 {
-  name = "ucpp-1.3.2.tar.gz";
-  md5 = "0168229624cfac409e766913506961a8";
+  name = "libcdr-0.0.15.tar.bz2";
+  md5 = "fbcd8619fc6646f41d527c1329102998";
+  brief = true;
+}
+{
+  name = "libe-book-0.0.3.tar.bz2";
+  md5 = "2f1ceaf2ac8752ed278e175447d9b978";
+  brief = true;
+}
+{
+  name = "libetonyek-0.0.4.tar.bz2";
+  md5 = "3c50bc60394d1f2675fbf9bd22581363";
+  brief = true;
+}
+{
+  name = "libfreehand-0.0.0.tar.bz2";
+  md5 = "496dd00028afcc19f896b01394769043";
+  brief = true;
+}
+{
+  name = "libmspub-0.0.6.tar.bz2";
+  md5 = "1120705cd0f0d9bd5506360bf57b6c2e";
+  brief = true;
+}
+{
+  name = "libmwaw-0.2.0.tar.bz2";
+  md5 = "d794625f156a9fb1c53b3f8a8aa13b5e";
+  brief = true;
+}
+{
+  name = "libodfgen-0.0.4.tar.bz2";
+  md5 = "e5483d1f0b71e64c367c1194b54b0f53";
+  brief = true;
+}
+{
+  name = "libvisio-0.0.31.tar.bz2";
+  md5 = "82628333418f101a20cd21f980cf9f40";
+  brief = true;
+}
+{
+  name = "Firebird-2.5.2.26540-0.tar.bz2";
+  md5 = "21154d2004e025c8a3666625b0357bb5";
+  brief = true;
+}
+{
+  name = "harfbuzz-0.9.23.tar.bz2";
+  md5 = "a4a9b548577e2ee22f0887937da5fd6c";
+  brief = true;
+}
+{
+  name = "libatomic_ops-7_2d.zip";
+  md5 = "c0b86562d5aa40761a87134f83e6adcf";
+  brief = true;
+}
+{
+  name = "libeot-0.01.tar.bz2";
+  md5 = "aa24f5dd2a2992f4a116aa72af817548";
+  brief = true;
+}
+{
+  name = "language-subtag-registry-2014-03-27.tar.bz2";
+  md5 = "504af523f5d1a5590bbeb6a4b55e8a97";
+  brief = true;
+}
+{
+  name = "Adobe-Core35_AFMs-314.tar.gz";
+  md5 = "1756c4fa6c616ae15973c104cd8cb256";
+  brief = false;
+}
+{
+  name = "commons-codec-1.6-src.tar.gz";
+  md5 = "2e482c7567908d334785ce7d69ddfff7";
+  brief = false;
+}
+{
+  name = "commons-httpclient-3.1-src.tar.gz";
+  md5 = "2c9b0f83ed5890af02c0df1c1776f39b";
+  brief = false;
+}
+{
+  name = "commons-lang-2.4-src.tar.gz";
+  md5 = "625ff5f2f968dd908bca43c9469d6e6b";
+  brief = false;
 }
 {
   name = "commons-logging-1.1.1-src.tar.gz";
   md5 = "3c219630e4302863a9a83d0efde889db";
+  brief = false;
 }
 {
-  name = "liblayout-0.2.10.zip";
-  md5 = "db60e4fde8dd6d6807523deb71ee34dc";
+  name = "boost_1_54_0.tar.bz2";
+  md5 = "15cb8c0803064faef0c4ddf5bc5ca279";
+  brief = false;
+}
+{
+  name = "bsh-2.0b1-src.tar.gz";
+  md5 = "ea570af93c284aa9e5621cd563f54f4d";
+  brief = false;
+}
+{
+  name = "cairo-1.10.2.tar.gz";
+  md5 = "f101a9e88b783337b20b2e26dfd26d5f";
+  brief = false;
+}
+{
+  name = "clucene-core-2.3.3.4.tar.gz";
+  md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
+  brief = false;
+}
+{
+  name = "libcmis-0.4.1.tar.gz";
+  md5 = "22f8a85daf4a012180322e1f52a7563b";
+  brief = false;
+}
+{
+  name = "cppunit-1.13.1.tar.gz";
+  md5 = "ac4781e01619be13461bb2d562b94a7b";
+  brief = false;
+}
+{
+  name = "ConvertTextToNumber-1.3.2.oxt";
+  md5 = "451ccf439a36a568653b024534669971";
+  brief = false;
+}
+{
+  name = "curl-7.33.0.tar.bz2";
+  md5 = "57409d6bf0bd97053b8378dbe0cadcef";
+  brief = false;
+}
+{
+  name = "epm-3.7.tar.gz";
+  md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
+  brief = false;
+}
+{
+  name = "expat-2.1.0.tar.gz";
+  md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
+  brief = false;
+}
+{
+  name = "fontconfig-2.8.0.tar.gz";
+  md5 = "77e15a92006ddc2adbb06f840d591c0e";
+  brief = false;
+}
+{
+  name = "crosextrafonts-20130214.tar.gz";
+  md5 = "368f114c078f94214a308a74c7e991bc";
+  brief = false;
+}
+{
+  name = "crosextrafonts-carlito-20130920.tar.gz";
+  md5 = "c74b7223abe75949b4af367942d96c7a";
+  brief = false;
+}
+{
+  name = "dejavu-fonts-ttf-2.33.zip";
+  md5 = "f872f4ac066433d8ff92f5e316b36ff9";
+  brief = false;
+}
+{
+  name = "gentiumbasic-fonts-1.10.zip";
+  md5 = "35efabc239af896dfb79be7ebdd6e6b9";
+  brief = false;
+}
+{
+  name = "liberation-fonts-ttf-1.07.3.tar.gz";
+  md5 = "b3174b11c2b6a341f5c99b31088bd67b";
+  brief = false;
+}
+{
+  name = "liberation-fonts-ttf-2.00.1.tar.gz";
+  md5 = "5c781723a0d9ed6188960defba8e91cf";
+  brief = false;
+}
+{
+  name = "LinLibertineG-20120116.zip";
+  md5 = "e7a384790b13c29113e22e596ade9687";
+  brief = false;
+}
+{
+  name = "open-sans-font-ttf-1.10.tar.gz";
+  md5 = "7a15edea7d415ac5150ea403e27401fd";
+  brief = false;
+}
+{
+  name = "pt-serif-font-1.0000W.tar.gz";
+  md5 = "c3c1a8ba7452950636e871d25020ce0d";
+  brief = false;
+}
+{
+  name = "source-code-font-1.009.tar.gz";
+  md5 = "0279a21fab6f245e85a6f85fea54f511";
+  brief = false;
+}
+{
+  name = "source-sans-font-1.036.tar.gz";
+  md5 = "1e9ddfe25ac9577da709d7b2ea36f939";
+  brief = false;
+}
+{
+  name = "freetype-2.4.8.tar.bz2";
+  md5 = "dbf2caca1d3afd410a29217a9809d397";
+  brief = false;
+}
+{
+  name = "graphite2-1.2.3.tgz";
+  md5 = "7042305e4208af4c2d5249d814ccce58";
+  brief = false;
 }
 {
   name = "hsqldb_1_8_0.zip";
   md5 = "17410483b5b5f267aa18b7e00b65e6e0";
+  brief = false;
 }
 {
-  name = "rhino1_5R5.zip";
-  md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
+  name = "hunspell-1.3.2.tar.gz";
+  md5 = "3121aaf3e13e5d88dfff13fb4a5f1ab8";
+  brief = false;
 }
 {
-  name = "bsh-2.0b1-src.tar.gz";
-  md5 = "ea570af93c284aa9e5621cd563f54f4d";
+  name = "hyphen-2.8.4.tar.gz";
+  md5 = "a2f6010987e1c601274ab5d63b72c944";
+  brief = false;
 }
 {
-  name = "xmlsec1-1.2.14.tar.gz";
-  md5 = "1f24ab1d39f4a51faf22244c94a6203f";
+  name = "icu4c-52_1-src.tgz";
+  md5 = "9e96ed4c1d99c0d14ac03c140f9f346c";
+  brief = false;
 }
 {
-  name = "librepository-1.1.6.zip";
-  md5 = "8ce2fcd72becf06c41f7201d15373ed9";
+  name = "flow-engine-0.9.4.zip";
+  md5 = "ba2930200c9f019c2d93a8c88c651a0f";
+  brief = false;
+}
+{
+  name = "flute-1.1.6.zip";
+  md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
+  brief = false;
 }
 {
   name = "libbase-1.1.6.zip";
   md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
+  brief = false;
 }
 {
-  name = "lp_solve_5.5.tar.gz";
-  md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
+  name = "libfonts-1.1.6.zip";
+  md5 = "3bdf40c0d199af31923e900d082ca2dd";
+  brief = false;
 }
 {
-  name = "libloader-1.1.6.zip";
-  md5 = "97b2d4dba862397f446b217e2b623e71";
+  name = "libformula-1.1.7.zip";
+  md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
+  brief = false;
 }
 {
-  name = "graphite2-1.2.0.tgz";
-  md5 = "f5ef3f7f10fa8c3542c6a085a233080b";
+  name = "liblayout-0.2.10.zip";
+  md5 = "db60e4fde8dd6d6807523deb71ee34dc";
+  brief = false;
 }
 {
-  name = "jakarta-tomcat-5.0.30-src.tar.gz";
-  md5 = "2a177023f9ea8ec8bd00837605c5df1b";
+  name = "libloader-1.1.6.zip";
+  md5 = "97b2d4dba862397f446b217e2b623e71";
+  brief = false;
 }
 {
-  name = "hyphen-2.8.4.tar.gz";
-  md5 = "a2f6010987e1c601274ab5d63b72c944";
+  name = "librepository-1.1.6.zip";
+  md5 = "8ce2fcd72becf06c41f7201d15373ed9";
+  brief = false;
 }
 {
   name = "libserializer-1.1.6.zip";
   md5 = "f94d9870737518e3b597f9265f4e9803";
-}
-{
-  name = "commons-lang-2.3-src.tar.gz";
-  md5 = "2ae988b339daec234019a7066f96733e";
+  brief = false;
 }
 {
   name = "libxml-1.1.7.zip";
   md5 = "ace6ab49184e329db254e454a010f56d";
+  brief = false;
 }
 {
-  name = "commons-httpclient-3.1-src.tar.gz";
-  md5 = "2c9b0f83ed5890af02c0df1c1776f39b";
+  name = "sacjava-1.3.zip";
+  md5 = "39bb3fcea1514f1369fcfc87542390fd";
+  brief = false;
 }
 {
-  name = "commons-codec-1.3-src.tar.gz";
-  md5 = "af3c3acf618de6108d65fcdc92b492e1";
+  name = "jpegsrc.v8d.tar.gz";
+  md5 = "52654eb3b2e60c35731ea8fc87f1bd29";
+  brief = false;
 }
 {
-  name = "libformula-1.1.7.zip";
-  md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
+  name = "JLanguageTool-1.7.0.tar.bz2";
+  md5 = "b63e6340a02ff1cacfeadb2c42286161";
+  brief = false;
+}
+{
+  name = "lcms2-2.4.tar.gz";
+  md5 = "861ef15fa0bc018f9ddc932c4ad8b6dd";
+  brief = false;
+}
+{
+  name = "libexttextcat-3.4.3.tar.bz2";
+  md5 = "ae330b9493bd4503ac390106ff6060d7";
+  brief = false;
+}
+{
+  name = "liblangtag-0.5.1.tar.bz2";
+  md5 = "36271d3fa0d9dec1632029b6d7aac925";
+  brief = false;
+}
+{
+  name = "xmlsec1-1.2.14.tar.gz";
+  md5 = "1f24ab1d39f4a51faf22244c94a6203f";
+  brief = false;
+}
+{
+  name = "libxml2-2.9.1.tar.gz";
+  md5 = "9c0cfef285d5c4a5c80d00904ddab380";
+  brief = false;
+}
+{
+  name = "libxslt-1.1.28.tar.gz";
+  md5 = "9667bf6f9310b957254fdcf6596600b7";
+  brief = false;
+}
+{
+  name = "lp_solve_5.5.tar.gz";
+  md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
+  brief = false;
+}
+{
+  name = "mariadb-native-client-1.0.0.tar.bz2";
+  md5 = "05f84c95b610c21c5fd510d10debcabf";
+  brief = false;
 }
 {
-  name = "libcmis-0.3.0.tar.gz";
-  md5 = "b2371dc7cf4811c9d32146eec913d296";
+  name = "mdds_0.10.3.tar.bz2";
+  md5 = "aa5ca9d1ed1082890835afab26400a39";
+  brief = false;
+}
+{
+  name = "mysql-connector-c++-1.1.0.tar.gz";
+  md5 = "0981bda6548a8c8233ffce2b6e4b2a23";
+  brief = false;
+}
+{
+  name = "mythes-1.2.3.tar.gz";
+  md5 = "46e92b68e31e858512b680b3b61dc4c1";
+  brief = false;
+}
+{
+  name = "neon-0.29.5.tar.gz";
+  md5 = "ff369e69ef0f0143beb5626164e87ae2";
+  brief = false;
+}
+{
+  name = "nss-3.15.3-with-nspr-4.10.2.tar.gz";
+  md5 = "06beb053e257d9e22641339c905c6eba";
+  brief = false;
+}
+{
+  name = "openldap-2.4.31.tgz";
+  md5 = "804c6cb5698db30b75ad0ff1c25baefd";
+  brief = false;
+}
+{
+  name = "openssl-1.0.1e.tar.gz";
+  md5 = "66bf6f10f060d561929de96f9dfe5b8c";
+  brief = false;
+}
+{
+  name = "liborcus-0.5.1.tar.bz2";
+  md5 = "ea2acaf140ae40a87a952caa75184f4d";
+  brief = false;
+}
+{
+  name = "pixman-0.24.4.tar.bz2";
+  md5 = "c63f411b3ad147db2bcce1bf262a0e02";
+  brief = false;
+}
+{
+  name = "libpng-1.5.10.tar.gz";
+  md5 = "9e5d864bce8f06751bbd99962ecf4aad";
+  brief = false;
+}
+{
+  name = "poppler-0.22.5.tar.gz";
+  md5 = "1cd27460f7e3379d1eb109cfd7bcdb39";
+  brief = false;
+}
+{
+  name = "postgresql-9.2.1.tar.bz2";
+  md5 = "c0b4799ea9850eae3ead14f0a60e9418";
+  brief = false;
+}
+{
+  name = "Python-3.3.3.tar.bz2";
+  md5 = "f3ebe34d4d8695bf889279b54673e10c";
+  brief = false;
+}
+{
+  name = "raptor2-2.0.9.tar.gz";
+  md5 = "4ceb9316488b0ea01acf011023cf7fff";
+  brief = false;
+}
+{
+  name = "rasqal-0.9.30.tar.gz";
+  md5 = "b12c5f9cfdb6b04efce5a4a186b8416b";
+  brief = false;
+}
+{
+  name = "redland-1.0.16.tar.gz";
+  md5 = "32f8e1417a64d3c6f2c727f9053f55ea";
+  brief = false;
+}
+{
+  name = "rhino1_5R5.zip";
+  md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
+  brief = false;
 }
 {
   name = "swingExSrc.zip";
   md5 = "35c94d2df8893241173de1d16b6034c0";
+  brief = false;
 }
 {
-  name = "flow-engine-0.9.4.zip";
-  md5 = "ba2930200c9f019c2d93a8c88c651a0f";
+  name = "ucpp-1.3.2.tar.gz";
+  md5 = "0168229624cfac409e766913506961a8";
+  brief = false;
 }
 {
-  name = "sacjava-1.3.zip";
-  md5 = "39bb3fcea1514f1369fcfc87542390fd";
+  name = "vigra1.6.0.tar.gz";
+  md5 = "d62650a6f908e85643e557a236ea989c";
+  brief = false;
 }
 {
-  name = "libwps-0.2.7.tar.bz2";
-  md5 = "d197bd6211669a2fa4ca648faf04bcb1";
+  name = "libwpd-0.9.9.tar.bz2";
+  md5 = "a3dcac551fae5ebbec16e844810828c4";
+  brief = false;
 }
 {
-  name = "libfonts-1.1.6.zip";
-  md5 = "3bdf40c0d199af31923e900d082ca2dd";
+  name = "libwpg-0.2.2.tar.bz2";
+  md5 = "b85436266b2ac91d351ab5684b181151";
+  brief = false;
 }
 {
-  name = "flute-1.1.6.zip";
-  md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
+  name = "libwps-0.2.9.tar.bz2";
+  md5 = "46eb0e7f213ad61bd5dee0c494132cb0";
+  brief = false;
+}
+{
+  name = "xsltml_2.1.2.zip";
+  md5 = "a7983f859eafb2677d7ff386a023bc40";
+  brief = false;
+}
+{
+  name = "zlib-1.2.7.tar.bz2";
+  md5 = "2ab442d169156f34c379c968f3f482dd";
+  brief = false;
 }
 ]
diff --git a/pkgs/applications/office/libreoffice/ooxmlexport.diff b/pkgs/applications/office/libreoffice/ooxmlexport.diff
new file mode 100644
index 00000000000..9c1d44612e2
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/ooxmlexport.diff
@@ -0,0 +1,31 @@
+--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx	2014-06-12 12:25:19.000000000 +0400
++++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx	2014-06-12 12:25:20.000000000 +0400
+@@ -547,17 +547,17 @@
+     getRun(xParagraph, 5, " After.");
+ }
+ 
+-DECLARE_OOXMLEXPORT_TEST(test1Table1Page, "1-table-1-page.docx")
+-{
+-    // 2 problem for this document after export:
+-    //   - invalid sectPr inserted at the beginning of the page
+-    //   - font of empty cell is not preserved, leading to change in rows height
+-    uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+-    uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
+-    uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
+-    xCursor->jumpToLastPage();
+-    CPPUNIT_ASSERT_EQUAL(sal_Int16(1), xCursor->getPage());
+-}
++///   DECLARE_OOXMLEXPORT_TEST(test1Table1Page, "1-table-1-page.docx")
++///   {
++///       // 2 problem for this document after export:
++///       //   - invalid sectPr inserted at the beginning of the page
++///       //   - font of empty cell is not preserved, leading to change in rows height
++///       uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
++///       uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
++///       uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
++///       xCursor->jumpToLastPage();
++///       CPPUNIT_ASSERT_EQUAL(sal_Int16(1), xCursor->getPage());
++///   }
+ 
+ DECLARE_OOXMLEXPORT_TEST(testTextFrames, "textframes.odt")
+ {
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 8adab57656e..0e81616a006 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -5,13 +5,13 @@ stdenv.mkDerivation rec {
 
   src = fetchbzr {
     url = "https://code.launchpad.net/~kicad-stable-committers/kicad/stable";
-    revision = 4024;
+    rev = 4024;
     sha256 = "1sv1l2zpbn6439ccz50p05hvqg6j551aqra551wck9h3929ghly5";
   };
 
   srcLibrary = fetchbzr {
     url = "http://bazaar.launchpad.net/~kicad-lib-committers/kicad/library";
-    revision = 293;
+    rev = 293;
     sha256 = "1wn9a4nhqyjzzfkq6xm7ag8n5n10xy7gkq6i7yry7wxini7pzv1i";
   };
 
diff --git a/pkgs/applications/science/logic/abc/default.nix b/pkgs/applications/science/logic/abc/default.nix
index a8076b9e29e..30c36ae29dc 100644
--- a/pkgs/applications/science/logic/abc/default.nix
+++ b/pkgs/applications/science/logic/abc/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchhg {
     url    = "https://bitbucket.org/alanmi/abc";
-    tag    = "03e221443d71e49e56cbc37f1907ee3b0ff3e7c9";
+    rev    = "03e221443d71e49e56cbc37f1907ee3b0ff3e7c9";
     sha256 = "0ahrqg718y7xpv939f6x8w1kqh7wsja4pw8hca7j67j0qjdgb4lm";
   };
 
diff --git a/pkgs/applications/science/logic/twelf/default.nix b/pkgs/applications/science/logic/twelf/default.nix
new file mode 100644
index 00000000000..1079c378321
--- /dev/null
+++ b/pkgs/applications/science/logic/twelf/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, smlnj, rsync }:
+
+stdenv.mkDerivation rec {
+  name = "twelf-${version}";
+  version = "1.7.1";
+
+  src = fetchurl {
+    url = "http://twelf.plparty.org/releases/twelf-src-${version}.tar.gz";
+    sha256 = "0fi1kbs9hrdrm1x4k13angpjasxlyd1gc3ys8ah54i75qbcd9c4i";
+  };
+
+  buildInputs = [ pkgconfig smlnj rsync ];
+
+  buildPhase = ''
+    export SMLNJ_HOME=${smlnj}
+    make smlnj
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    rsync -av bin/* $out/bin/
+
+    ensureDir $out/share/emacs/site-lisp/twelf/
+    rsync -av emacs/ $out/share/emacs/site-lisp/twelf/
+
+    ensureDir $out/share/twelf/examples
+    rsync -av examples/ $out/share/twelf/examples/
+    ensureDir $out/share/twelf/vim
+    rsync -av vim/ $out/share/twelf/vim/
+  '';
+
+  meta = {
+    description = "Twelf logic proof assistant";
+    longDescription = ''
+      Twelf is a language used to specify, implement, and prove properties of
+      deductive systems such as programming languages and logics. Large
+      research projects using Twelf include the TALT typed assembly language,
+      a foundational proof-carrying-code system, and a type safety proof for
+      Standard ML.
+    '';
+    homepage = http://twelf.org/wiki/Main_Page;
+    license = "MIT";
+    maintainers = with stdenv.lib.maintainers; [ jwiegley ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix
index a056a32c64c..c4352c46f92 100644
--- a/pkgs/applications/science/math/glsurf/default.nix
+++ b/pkgs/applications/science/math/glsurf/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   src = fetchdarcs {
     url = "http://lama.univ-savoie.fr/~raffalli/GlSurf";
-    tag = "3.3";
+    rev = "3.3";
     sha256 = ""; md5="";
   };
 
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 482866969a1..fd548296220 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -95,4 +95,7 @@ rec {
   darcsToGit = callPackage ./darcs-to-git { };
 
   gitflow = callPackage ./gitflow { };
+
+  git-remote-hg = callPackage ./git-remote-hg { };
+
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
new file mode 100644
index 00000000000..ffeb299f49b
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, mercurial, makeWrapper,
+  asciidoc, xmlto, dbus, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2
+}:
+
+stdenv.mkDerivation rec {
+  rev = "185852eac44c25ae2e8d3b3fb6c9630e754e6363";
+  version = "v0.2-185852eac44c25ae2e8d3b3fb6c9630e754e6363";
+  name = "git-remote-hg-${version}";
+
+  src = fetchgit {
+    inherit rev;
+    url = "git://github.com/felipec/git-remote-hg.git";
+    sha256 = "1hc65nvxq7if1imwffyxia0i6vnkbax09gfcl9vq9yffzi8xzzfy";
+  };
+
+  buildInputs = [ mercurial.python mercurial makeWrapper
+    asciidoc xmlto dbus docbook_xsl docbook_xml_dtd_45 libxslt libxml2
+  ];
+
+  doCheck = false;
+
+  installFlags = "HOME=\${out}";
+
+  postInstall = ''
+    wrapProgram $out/bin/git-remote-hg \
+      --prefix PYTHONPATH : "$(echo ${mercurial}/lib/python*/site-packages):$(echo ${mercurial.python}/lib/python*/site-packages)${stdenv.lib.concatMapStrings (x: ":$(echo ${x}/lib/python*/site-packages)") mercurial.pythonPackages}"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/felipec/git-remote-hg";
+    description = "semi-official Mercurial bridge from Git project, once installed, it allows you to clone, fetch and push to and from Mercurial repositories as if they were Git ones";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.garbas ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index f95b5a493a6..054b1c1b0f3 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -10,7 +10,7 @@
 
 let
 
-  version = "1.9.4";
+  version = "2.0.1";
 
   svn = subversionClient.override { perlBindings = true; };
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "1shxa49lsxn81qpfi60wh7rn5ci4zjgljvr0qczdmnqzd8w1zyvb";
+    sha256 = "1pylqr2qzndy92x3pq8hkwsb3garww2jxb167s6hshrva81s24mb";
   };
 
   patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ./cert-path.patch ];
diff --git a/pkgs/applications/version-management/gitolite/default.nix b/pkgs/applications/version-management/gitolite/default.nix
new file mode 100644
index 00000000000..2dcb13e5db5
--- /dev/null
+++ b/pkgs/applications/version-management/gitolite/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, perl, git, fetchgit }:
+
+stdenv.mkDerivation rec {
+  name = "gitolite-${version}";
+  version = "3.6.1";
+
+  src = fetchgit {
+    url    = "git://github.com/sitaramc/gitolite";
+    rev    = "refs/tags/v${version}";
+    sha256 = "47e0e9c3137b05af96c091494ba918d61d1d3396749a04d63e7949ebcc6c6dca";
+    leaveDotGit = true;
+  };
+
+  buildInputs = [ perl git ];
+  buildPhase = "true";
+
+  patchPhase = ''
+    substituteInPlace ./install --replace " 2>/dev/null" ""
+    substituteInPlace src/lib/Gitolite/Hooks/PostUpdate.pm \
+      --replace /usr/bin/perl "/usr/bin/env perl"
+    substituteInPlace src/lib/Gitolite/Hooks/Update.pm \
+      --replace /usr/bin/perl "/usr/bin/env perl"
+  '';
+  installPhase = ''
+    mkdir -p $out/bin
+    git tag v${version} # Gitolite requires a tag for the version information :/
+    perl ./install -to $out/bin
+  '';
+
+  meta = {
+    description = "Finely-grained git repository hosting";
+    homepage    = "http://gitolite.com/gitolite/index.html";
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/applications/window-managers/tabbed/default.nix b/pkgs/applications/window-managers/tabbed/default.nix
index 3ab950bf4d0..2dec3b2241f 100644
--- a/pkgs/applications/window-managers/tabbed/default.nix
+++ b/pkgs/applications/window-managers/tabbed/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
  
   src = fetchhg {
     url = http://hg.suckless.org/tabbed;
-    tag = "d7542a6f6dc5";
+    rev = "d7542a6f6dc5";
     sha256 = "1963jsazfmh5k7923c1mfwppz1xbh48z16j0sa64fiscq22as2gj";
   };
 
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix
index 67934ed0c29..6f454dc2b58 100644
--- a/pkgs/build-support/cabal/default.nix
+++ b/pkgs/build-support/cabal/default.nix
@@ -82,9 +82,7 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
             # the default download location for Cabal packages is Hackage,
             # you still have to specify the checksum
             src = fetchurl {
-              # cannot use mirrors system because of subtly different directory structures
-              urls = ["http://hackage.haskell.org/packages/archive/${self.pname}/${self.version}/${self.fname}.tar.gz"
-                      "http://hdiff.luite.com/packages/archive/${self.pname}/${self.fname}.tar.gz"];
+              url = "mirror://hackage/${self.pname}/${self.fname}.tar.gz";
               inherit (self) sha256;
             };
 
diff --git a/pkgs/build-support/fetchbzr/builder.sh b/pkgs/build-support/fetchbzr/builder.sh
index 17567fdadd2..af1257d3688 100644
--- a/pkgs/build-support/fetchbzr/builder.sh
+++ b/pkgs/build-support/fetchbzr/builder.sh
@@ -1,9 +1,9 @@
 source "$stdenv/setup"
 
-header "exporting \`$url' (revision $revision) into \`$out'"
+header "exporting \`$url' (revision $rev) into \`$out'"
 
 # Perform a lightweight checkout so that we don't end up importing
 # all the repository's history.
-bzr -Ossl.cert_reqs=none export -r "$revision" --format=dir "$out" "$url"
+bzr -Ossl.cert_reqs=none export -r "$rev" --format=dir "$out" "$url"
 
 stopNest
diff --git a/pkgs/build-support/fetchbzr/default.nix b/pkgs/build-support/fetchbzr/default.nix
index 721250beeb3..dd2c0363187 100644
--- a/pkgs/build-support/fetchbzr/default.nix
+++ b/pkgs/build-support/fetchbzr/default.nix
@@ -1,5 +1,5 @@
 { stdenv, bazaar }: 
-{ url, revision, sha256 }:
+{ url, rev, sha256 }:
 
 stdenv.mkDerivation {
   name = "bzr-export";
@@ -11,5 +11,5 @@ stdenv.mkDerivation {
   outputHashMode = "recursive";
   outputHash = sha256;
   
-  inherit url revision;
+  inherit url rev;
 }
diff --git a/pkgs/build-support/fetchdarcs/builder.sh b/pkgs/build-support/fetchdarcs/builder.sh
index efff5ff5ebf..301deb98307 100644
--- a/pkgs/build-support/fetchdarcs/builder.sh
+++ b/pkgs/build-support/fetchdarcs/builder.sh
@@ -2,9 +2,9 @@ source $stdenv/setup
 
 tagtext=""
 tagflags=""
-if test -n "$tag"; then
-    tagtext="(tag $tag) "
-    tagflags="--tag=$tag"
+if test -n "$rev"; then
+    tagtext="(tag $rev) "
+    tagflags="--tag=$rev"
 elif test -n "$context"; then
     tagtext="(context) "
     tagflags="--context=$context"
diff --git a/pkgs/build-support/fetchdarcs/default.nix b/pkgs/build-support/fetchdarcs/default.nix
index 63e4ecde88a..3c2e0524eea 100644
--- a/pkgs/build-support/fetchdarcs/default.nix
+++ b/pkgs/build-support/fetchdarcs/default.nix
@@ -1,4 +1,4 @@
-{stdenv, darcs, nix}: {url, tag ? null, context ? null, md5 ? "", sha256 ? ""}:
+{stdenv, darcs, nix}: {url, rev ? null, context ? null, md5 ? "", sha256 ? ""}:
 
 stdenv.mkDerivation {
   name = "fetchdarcs";
@@ -9,5 +9,5 @@ stdenv.mkDerivation {
   outputHashMode = "recursive";
   outputHash = if sha256 == "" then md5 else sha256;
   
-  inherit url tag context;
+  inherit url rev context;
 }
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 3574f3b7539..bd1d8b5c1af 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -217,7 +217,9 @@ clone_user_rev() {
             fi;;
     esac
 
-    echo "git revision is $(cd $dir && (git rev-parse $rev 2> /dev/null || git rev-parse refs/heads/fetchgit) | tail -n1)"
+    local full_revision=$(cd $dir && (git rev-parse $rev 2> /dev/null || git rev-parse refs/heads/fetchgit) | tail -n1)
+    echo "git revision is $full_revision"
+    echo "git human-readable version is $(cd $dir && (git describe $full_revision 2> /dev/null || git describe --tags $full_revision 2> /dev/null || echo -- none --))"
 
     # Allow doing additional processing before .git removal
     eval "$NIX_PREFETCH_GIT_CHECKOUT_HOOK"
diff --git a/pkgs/build-support/fetchhg/builder.sh b/pkgs/build-support/fetchhg/builder.sh
index 9699fb69b7f..0b51ef79b23 100644
--- a/pkgs/build-support/fetchhg/builder.sh
+++ b/pkgs/build-support/fetchhg/builder.sh
@@ -1,9 +1,9 @@
 source $stdenv/setup
-header "getting $url${tag:+ ($tag)} into $out"
+header "getting $url${rev:+ ($rev)} into $out"
 
 hg clone --insecure "$url" hg-clone
 
-hg archive -q -y ${tag:+-r "$tag"} --cwd hg-clone $out
+hg archive -q -y ${rev:+-r "$rev"} --cwd hg-clone $out
 rm -f $out/.hg_archival.txt
 
 stopNest
diff --git a/pkgs/build-support/fetchhg/default.nix b/pkgs/build-support/fetchhg/default.nix
index 1aebb7ecc87..4675cbe6ec8 100644
--- a/pkgs/build-support/fetchhg/default.nix
+++ b/pkgs/build-support/fetchhg/default.nix
@@ -1,4 +1,4 @@
-{stdenv, mercurial, nix}: {name ? null, url, tag ? null, md5 ? null, sha256 ? null}:
+{stdenv, mercurial, nix}: {name ? null, url, rev ? null, md5 ? null, sha256 ? null}:
 
 # TODO: statically check if mercurial as the https support if the url starts woth https.
 stdenv.mkDerivation {
@@ -13,6 +13,6 @@ stdenv.mkDerivation {
   outputHashMode = "recursive";
   outputHash = if md5 != null then md5 else sha256;
   
-  inherit url tag;
+  inherit url rev;
   preferLocalBuild = true;
 }
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 8417499cd00..38d3353202b 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -20,6 +20,12 @@ rec {
     http://kent.dl.sourceforge.net/sourceforge/
   ];
 
+  # SourceForge.jp.
+  sourceforgejp = [
+    http://osdn.dl.sourceforge.jp/
+    http://jaist.dl.sourceforge.jp/
+  ];
+
   # GNU (http://www.gnu.org/prep/ftp.html).
   gnu = [
     # This one redirects to a (supposedly) nearby and (supposedly) up-to-date
diff --git a/pkgs/build-support/fetchzip/nix-prefetch-zip b/pkgs/build-support/fetchzip/nix-prefetch-zip
new file mode 100755
index 00000000000..76255ab3674
--- /dev/null
+++ b/pkgs/build-support/fetchzip/nix-prefetch-zip
@@ -0,0 +1,153 @@
+#! /bin/sh -e
+
+usage(){
+    echo  >&2 "syntax: nix-prefetch-zip [OPTIONS] [URL [EXPECTED-HASH]]
+
+Options:
+      --url         url    The url of the archive to fetch.
+      --name        name   The name to use for the store path (defaults to \`basename \$url\`).
+      --hash        hash   The hash of unpacked archive.
+      --hash-type   type   Use the specified cryptographic hash algorithm, which can be one of md5, sha1, and sha256.
+      --leave-root         Keep the root directory of the archive.
+      --help               Show this help text.
+"
+    exit 1
+}
+
+
+argi=0
+argfun=""
+for arg; do
+  if test -z "$argfun"; then
+    case $arg in
+      --url) argfun=set_url;;
+      --name) argfun=set_name;;
+      --hash) argfun=set_expHash;;
+      --hash-type) argfun=set_hashType;;
+      --leave-root) leaveRoot=true;;
+      --help) usage;;
+      *) argi=$(($argi + 1))
+         case $argi in
+           1) url=$arg;;
+           2) rev=$arg;;
+           3) expHash=$arg;;
+           *) echo "Unexpected argument: $arg" >&2
+              usage
+              ;;
+         esac
+         ;;
+    esac
+  else
+    case $argfun in
+      set_*)
+        var=$(echo $argfun | sed 's,^set_,,')
+        eval "$var=\$arg"
+        ;;
+    esac
+    argfun=""
+  fi
+done
+
+if [ -z "$url" ]; then
+  echo "Error: No --url flag given" >&2
+  usage
+fi
+
+if [ -z "$name" ]; then
+  name=$(basename "$url")
+fi
+
+if test -z "$hashType"; then
+  hashType=sha256
+fi
+
+hashFormat="--base32"
+
+tmp=$(mktemp -d 2>/dev/null || mktemp -d -t "$$")
+trap "rm -rf '$tmp'" EXIT
+
+unpackDir=$tmp/unpacked/$name
+mkdir -p $unpackDir
+downloadedFile=$tmp/$name
+
+unpackFile() {
+  local curSrc="$1"
+
+  case "$curSrc" in
+    *.tar.xz | *.tar.lzma)
+      # Don't rely on tar knowing about .xz.
+      xz -d < $curSrc | tar xf -
+      ;;
+    *.tar | *.tar.* | *.tgz | *.tbz2)
+      # GNU tar can automatically select the decompression method
+      # (info "(tar) gzip").
+      tar xf $curSrc
+      ;;
+    *.zip)
+      unzip -qq $curSrc
+      ;;
+    *)
+      echo "source archive $curSrc has unknown type" >&2
+      exit 1
+      ;;
+  esac
+}
+
+# If the hash was given, a file with that hash may already be in the
+# store.
+if test -n "$expHash"; then
+  finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" "$name")
+  if ! nix-store --check-validity "$finalPath" 2> /dev/null; then
+    finalPath=
+  fi
+  hash=$expHash
+fi
+
+# If we don't know the hash or a path with that hash doesn't exist,
+# download the file and add it to the store.
+if test -z "$finalPath"; then
+  curl="curl \
+   --location --max-redirs 20 \
+   --disable-epsv \
+   --insecure"
+
+  if ! $curl --fail "$url" --output "$downloadedFile"; then
+    echo "error: could not download $url" >&2
+    exit 1
+  fi
+
+  cd $unpackDir
+  unpackFile "$downloadedFile"
+
+  # FIXME: handle zip files that contain a single regular file.
+  if [ -z "$leaveRoot" ]; then
+    shopt -s dotglob
+    if [ $(ls -d $unpackDir/* | wc -l) != 1 ]; then
+      echo "error: zip file must contain a single directory."
+      exit 1
+    fi
+    fn=$(cd "$unpackDir" && echo *)
+    mv $unpackDir/$fn/* "$unpackDir/"
+    rmdir "$unpackDir/$fn"
+  fi
+
+  # Compute the hash.
+  hash=$(nix-hash --type $hashType $hashFormat $unpackDir)
+  if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi
+
+  # Add the downloaded file to the Nix store.
+  finalPath=$(nix-store --add-fixed --recursive "$hashType" $unpackDir)
+
+  if test -n "$expHash" -a "$expHash" != "$hash"; then
+    echo "hash mismatch for URL \`$url'"
+    exit 1
+  fi
+fi
+
+if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi
+
+echo $hash
+
+if test -n "$PRINT_PATH"; then
+  echo $finalPath
+fi
diff --git a/pkgs/build-support/kernel/paths-from-graph.pl b/pkgs/build-support/kernel/paths-from-graph.pl
index f1866237210..9a199a2b304 100644
--- a/pkgs/build-support/kernel/paths-from-graph.pl
+++ b/pkgs/build-support/kernel/paths-from-graph.pl
@@ -1,9 +1,27 @@
+# Parses a /nix/store/*-closure file and prints
+# various information.
+# By default, the nodes in the graph are printed to stdout.
+# If the environment variable printManifest is set,
+# then the graph is written as a manifest.
+# If printRegistration is set, then the graph is written
+# as a registration file for a manifest is written
+# in the `nix-store --load-db' format.
+
 use strict;
 use File::Basename;
 
 my %storePaths;
 my %refs;
 
+# Each argument on the command line is a graph file.
+# The graph file contains line-triples and a variable
+# number of references:
+# <store-path>
+# <deriver>
+# <count>
+# <ref-#1>
+# ...
+# <ref-#count>
 foreach my $graph (@ARGV) {
     open GRAPH, "<$graph" or die;
 
diff --git a/pkgs/build-support/upstream-updater/update-walker-service-specific.sh b/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
index a979e24edf2..28c28f69587 100644
--- a/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
+++ b/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
@@ -5,7 +5,7 @@ SF_redirect () {
 }
 
 SF_version_dir () {
-  version_link 'http://sourceforge.net/.+/[0-9.]+/$'
+  version_link 'http://sourceforge.net/.+/'"$1"'[0-9.]+/$'
 }
 
 GH_latest () {
diff --git a/pkgs/build-support/upstream-updater/update-walker.sh b/pkgs/build-support/upstream-updater/update-walker.sh
index bc58f935f81..e11eb722e0e 100755
--- a/pkgs/build-support/upstream-updater/update-walker.sh
+++ b/pkgs/build-support/upstream-updater/update-walker.sh
@@ -2,15 +2,22 @@
 
 own_dir="$(cd "$(dirname "$0")"; pwd)"
 
+URL_WAS_SET=
+DL_URL_RE=
 CURRENT_URL=
 CURRENT_REV=
 PREFETCH_COMMAND=
 NEED_TO_CHOOSE_URL=1
 
 url () {
+  URL_WAS_SET=1
   CURRENT_URL="$1"
 }
 
+dl_url_re () {
+  DL_URL_RE="$1"
+}
+
 version_unpack () {
   sed -re '
     s/[.]/ /g; 
@@ -101,16 +108,27 @@ ensure_name () {
 
 ensure_attribute_name () {
   echo "Ensuring attribute name. CURRENT_ATTRIBUTE_NAME: $CURRENT_ATTRIBUTE_NAME" >&2
+  ensure_name
   [ -z "$CURRENT_ATTRIBUTE_NAME" ] && attribute_name "$CURRENT_NAME"
   echo "Resulting attribute name: $CURRENT_ATTRIBUTE_NAME"
 }
 
+ensure_url () {
+  echo "Ensuring starting URL. CURRENT_URL: $CURRENT_URL" >&2
+  ensure_attribute_name
+  [ -z "$CURRENT_URL" ] && CURRENT_URL="$(retrieve_meta downloadPage)"
+  [ -z "$CURRENT_URL" ] && CURRENT_URL="$(retrieve_meta downloadpage)"
+  [ -z "$CURRENT_URL" ] && CURRENT_URL="$(retrieve_meta homepage)"
+  echo "Resulting URL: $CURRENT_URL"
+}
+
 ensure_choice () {
   echo "Ensuring that choice is made." >&2
   echo "NEED_TO_CHOOSE_URL: [$NEED_TO_CHOOSE_URL]." >&2
   echo "CURRENT_URL: $CURRENT_URL" >&2
+  [ -z "$URL_WAS_SET" ] && [ -z "$CURRENT_URL" ] && ensure_url
   [ -n "$NEED_TO_CHOOSE_URL" ] && {
-    version_link '[.]tar[.]([^./])+$'
+    version_link "${DL_URL_RE:-[.]tar[.]([^./])+\$}"
     unset NEED_TO_CHOOSE_URL
   }
   [ -z "$CURRENT_URL" ] && {
@@ -153,8 +171,18 @@ attribute_name () {
   echo "CURRENT_ATTRIBUTE_NAME: $CURRENT_ATTRIBUTE_NAME" >&2
 }
 
+retrieve_meta () {
+  nix-instantiate --eval-only '<nixpkgs>' -A "$CURRENT_ATTRIBUTE_NAME".meta."$1" | xargs
+}
+
 retrieve_version () {
-  PACKAGED_VERSION="$(nix-instantiate --eval-only '<nixpkgs>' -A "$CURRENT_ATTRIBUTE_NAME".meta.version | xargs)"
+  PACKAGED_VERSION="$(retrieve_meta version)"
+}
+
+ensure_dl_url_re () {
+  echo "Ensuring DL_URL_RE. DL_URL_RE: $DL_URL_RE" >&2
+  [ -z "$DL_URL_RE" ] && dl_url_re "$(retrieve_meta downloadURLRegexp)"
+  echo "DL_URL_RE: $DL_URL_RE" >&2
 }
 
 directory_of () {
@@ -256,10 +284,27 @@ process_config () {
   CONFIG_DIR="$(directory_of "$1")"
   CONFIG_NAME="$(basename "$1")"
   BEGIN_EXPRESSION='# Generated upstream information';
-  source "$CONFIG_DIR/$CONFIG_NAME"
-  ensure_name
+  if [ -f  "$CONFIG_DIR/$CONFIG_NAME" ] &&
+      [ "${CONFIG_NAME}" = "${CONFIG_NAME%.nix}" ]; then
+    source "$CONFIG_DIR/$CONFIG_NAME"
+  else
+    CONFIG_NAME="${CONFIG_NAME%.nix}"
+    ensure_attribute_name
+    [ -n "$(retrieve_meta updateWalker)" ] ||
+        [ -n "$FORCE_UPDATE_WALKER" ] || {
+      echo "Error: package not marked as safe for update-walker" >&2
+      echo "Set FORCE_UPDATE_WALKER=1 to override" >&2
+      exit 1;
+    }
+    [ -z "$(retrieve_meta fullRegenerate)" ] && eval "
+      do_overwrite(){
+        do_overwrite_just_version
+      }
+    "
+  fi
   ensure_attribute_name
   retrieve_version
+  ensure_dl_url_re
   ensure_choice
   ensure_version
   ensure_target
diff --git a/pkgs/data/fonts/anonymous-pro/default.nix b/pkgs/data/fonts/anonymous-pro/default.nix
index 21a1c9bf5c8..cca775d941e 100644
--- a/pkgs/data/fonts/anonymous-pro/default.nix
+++ b/pkgs/data/fonts/anonymous-pro/default.nix
@@ -40,6 +40,9 @@ rec {
     ];
     platforms = with a.lib.platforms;
       all;
+    license = with a.lib.licenses; ofl;
+    hydraPlatforms = [];
+    homepage = "http://www.marksimonson.com/fonts/view/anonymous-pro";
   };
   passthru = {
     updateInfo = {
diff --git a/pkgs/data/fonts/ipafont/default.nix b/pkgs/data/fonts/ipafont/default.nix
new file mode 100644
index 00000000000..91bf95d1ea2
--- /dev/null
+++ b/pkgs/data/fonts/ipafont/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation {
+  name = "ipafont-003.03";
+
+  src = fetchurl {
+    url = "http://ipafont.ipa.go.jp/ipafont/IPAfont00303.php";
+    sha256 = "f755ed79a4b8e715bed2f05a189172138aedf93db0f465b4e20c344a02766fe5";
+  };
+
+  buildInputs = [ unzip ];
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    cp ./IPAfont00303/*.ttf $out/share/fonts/opentype/
+  '';
+
+  meta = {
+    description = "Japanese font package with Mincho and Gothic fonts";
+    longDescription = ''
+      IPAFont is a Japanese font developed by the Information-technology
+      Promotion Agency of Japan. It provides both Mincho and Gothic fonts,
+      suitable for both display and printing.
+    '';
+    homepage = http://ipafont.ipa.go.jp/ipafont/;
+    license = stdenv.lib.licenses.ipa;
+    maintainers = [ stdenv.lib.maintainers.auntie ];
+  };
+}
diff --git a/pkgs/data/fonts/kochi-substitute-naga10/default.nix b/pkgs/data/fonts/kochi-substitute-naga10/default.nix
new file mode 100644
index 00000000000..98ab8a3bcac
--- /dev/null
+++ b/pkgs/data/fonts/kochi-substitute-naga10/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl }:
+
+let version = "20030809";
+in
+stdenv.mkDerivation {
+  name = "kochi-substitute-naga10-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforgejp/efont/5411/kochi-substitute-${version}.tar.bz2";
+    sha256 = "f4d69b24538833bf7e2c4de5e01713b3f1440960a6cc2a5993cb3c68cd23148c";
+  };
+
+  sourceRoot = "kochi-substitute-${version}";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp ./kochi-gothic-subst.ttf $out/share/fonts/truetype/kochi-gothic-subst-naga10.ttf
+    cp ./kochi-mincho-subst.ttf $out/share/fonts/truetype/kochi-mincho-subst-naga10.ttf
+  '';
+
+  meta = {
+    description = "Japanese font, non-free replacement for MS Gothic and MS Mincho.";
+    longDescription = ''
+      Kochi Gothic and Kochi Mincho were developed as free replacements for the
+      MS Gothic and MS Mincho fonts from Microsoft. This version of the fonts
+      includes some non-free glyphs from the naga10 font, which stipulate that
+      this font may not be sold commercially. See kochi-substitute for the free
+      Debian version.
+    '';
+    homepage = http://sourceforge.jp/projects/efont/;
+    license = stdenv.lib.licenses.unfreeRedistributable;
+    maintainers = [ stdenv.lib.maintainers.auntie ];
+  };
+}
diff --git a/pkgs/data/fonts/kochi-substitute/default.nix b/pkgs/data/fonts/kochi-substitute/default.nix
new file mode 100644
index 00000000000..dec20fd5100
--- /dev/null
+++ b/pkgs/data/fonts/kochi-substitute/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, dpkg }:
+
+let version = "20030809";
+in
+stdenv.mkDerivation {
+  name = "kochi-substitute-${version}";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/t/ttf-kochi/ttf-kochi-gothic_${version}-15_all.deb";
+    sha256 = "6e2311cd8e880a9328e4d3eef34a1c1f024fc87fba0dce177a0e1584a7360fea";
+  };
+
+  src2 = fetchurl {
+    url = "mirror://debian/pool/main/t/ttf-kochi/ttf-kochi-mincho_${version}-15_all.deb";
+    sha256 = "91ce6c993a3a0f77ed85db76f62ce18632b4c0cbd8f864676359a17ae5e6fa3c";
+  };
+
+  buildInputs = [ dpkg ];
+
+  unpackCmd = ''
+    dpkg-deb --fsys-tarfile $src | tar xf - ./usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf
+    dpkg-deb --fsys-tarfile $src2 | tar xf - ./usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp ./share/fonts/truetype/kochi/kochi-gothic-subst.ttf $out/share/fonts/truetype/
+    cp ./share/fonts/truetype/kochi/kochi-mincho-subst.ttf $out/share/fonts/truetype/
+  '';
+
+  meta = {
+    description = "Japanese font, a free replacement for MS Gothic and MS Mincho.";
+    longDescription = ''
+      Kochi Gothic and Kochi Mincho were developed as free replacements for the
+      MS Gothic and MS Mincho fonts from Microsoft. These are the Debian
+      versions of the fonts, which remove some non-free glyphs that were added
+      from the naga10 font.
+    '';
+    homepage = http://sourceforge.jp/projects/efont/;
+    license = stdenv.lib.licenses.wadalab;
+    maintainers = [ stdenv.lib.maintainers.auntie ];
+  };
+}
diff --git a/pkgs/desktops/gnome-2/desktop/vte/default.nix b/pkgs/desktops/gnome-2/desktop/vte/default.nix
index aca30f87dfc..30c8bf07d41 100644
--- a/pkgs/desktops/gnome-2/desktop/vte/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/vte/default.nix
@@ -11,11 +11,8 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./alt.patch
-    ( fetchurl { # CVE-2012-2738
-      url = "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-libs/"
-        + "vte/files/vte-0.28.2-limit-arguments.patch?revision=1.1";
-      sha256 = "1s8agx74wa7wlv9ybd5h3dp4hzf4ddg7piyan37g2ab3fnvg4jhn";
-    } )
+    # CVE-2012-2738
+    ./vte-0.28.2-limit-arguments.patch
   ];
 
   buildInputs = [ intltool pkgconfig glib gtk ncurses ] ++
diff --git a/pkgs/desktops/gnome-2/desktop/vte/vte-0.28.2-limit-arguments.patch b/pkgs/desktops/gnome-2/desktop/vte/vte-0.28.2-limit-arguments.patch
new file mode 100644
index 00000000000..fd454079390
--- /dev/null
+++ b/pkgs/desktops/gnome-2/desktop/vte/vte-0.28.2-limit-arguments.patch
@@ -0,0 +1,40 @@
+From feeee4b5832b17641e505b7083e0d299fdae318e Mon Sep 17 00:00:00 2001
+From: Christian Persch <chpe@gnome.org>
+Date: Sat, 19 May 2012 17:36:09 +0000
+Subject: emulation: Limit integer arguments to 65535
+
+To guard against malicious sequences containing excessively big numbers,
+limit all parsed numbers to 16 bit range. Doing this here in the parsing
+routine is a catch-all guard; this doesn't preclude enforcing
+more stringent limits in the handlers themselves.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=676090
+---
+diff --git a/src/table.c b/src/table.c
+index 140e8c8..85cf631 100644
+--- a/src/table.c
++++ b/src/table.c
+@@ -550,7 +550,7 @@ _vte_table_extract_numbers(GValueArray **array,
+ 		if (G_UNLIKELY (*array == NULL)) {
+ 			*array = g_value_array_new(1);
+ 		}
+-		g_value_set_long(&value, total);
++		g_value_set_long(&value, CLAMP (total, 0, G_MAXUSHORT));
+ 		g_value_array_append(*array, &value);
+ 	} while (i++ < arginfo->length);
+ 	g_value_unset(&value);
+diff --git a/src/vteseq.c b/src/vteseq.c
+index 457c06a..46def5b 100644
+--- a/src/vteseq.c
++++ b/src/vteseq.c
+@@ -557,7 +557,7 @@ vte_sequence_handler_multiple(VteTerminal *terminal,
+                               GValueArray *params,
+                               VteTerminalSequenceHandler handler)
+ {
+-        vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXLONG);
++        vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXUSHORT);
+ }
+ 
+ static void
+--
+cgit v0.9.0.2
diff --git a/pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix b/pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix
index e5f6a0aa9b8..1875c1491f9 100644
--- a/pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/libcroco/default.nix
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
   buildInputs = [ pkgconfig libxml2 glib ];
 
   meta = with stdenv.lib; {
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/compilers/go/gox.nix b/pkgs/development/compilers/go/gox.nix
new file mode 100644
index 00000000000..705cb6e5c28
--- /dev/null
+++ b/pkgs/development/compilers/go/gox.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, go, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "github.com/mitchellh/gox";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "gox";
+        rev = "c7329055e2aeb253a947e5cc876586ff4ca19199";
+        sha256 = "0zhb88jjxqn3sdc4bpzvajqvgi9igp5gk03q12gaksaxhy2wl4jy";
+      };
+    }
+    {
+      root = "github.com/mitchellh/iochan";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "iochan";
+        rev = "b584a329b193e206025682ae6c10cdbe03b0cd77";
+        sha256 = "1fcwdhfci41ibpng2j4c1bqfng578cwzb3c00yw1lnbwwhaq9r6b";
+      };
+    }
+  ];
+  sources = stdenv.mkDerivation rec {
+    name = "go-deps";
+    buildCommand =
+      lib.concatStrings
+        (map (dep: ''
+                mkdir -p $out/src/`dirname ${dep.root}`
+                ln -s ${dep.src} $out/src/${dep.root}
+              '') goDeps);
+  };
+in
+
+stdenv.mkDerivation rec {
+  name = "gox";
+
+  src = sources;
+
+  propagatedBuildInputs = [ go ];
+
+  installPhase = ''
+    ensureDir $out/bin
+    export GOPATH=$src
+    go build -v -o $out/bin/gox github.com/mitchellh/gox
+  '';
+
+  meta = with lib; {
+    description = "A simple, no-frills tool for Go cross compilation that behaves a lot like standard go build";
+    homepage    = https://github.com/mitchellh/gox;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/jdk/jdk-linux-base.nix b/pkgs/development/compilers/jdk/jdk-linux-base.nix
new file mode 100644
index 00000000000..b29ae826d88
--- /dev/null
+++ b/pkgs/development/compilers/jdk/jdk-linux-base.nix
@@ -0,0 +1,175 @@
+{ productVersion
+, patchVersion
+, downloadUrl
+, sha256_i686
+, sha256_x86_64
+, jceName
+, jceDownloadUrl
+, sha256JCE
+}:
+
+{ swingSupport ? true
+, stdenv
+, requireFile
+, unzip
+, file
+, xlibs ? null
+, installjdk ? true
+, pluginSupport ? true
+, installjce ? false
+, glib
+, libxml2
+, libav_0_8
+, ffmpeg
+, libxslt
+, mesa_noglu
+, freetype
+, fontconfig
+, gnome
+, cairo
+, alsaLib
+, atk
+, gdk_pixbuf
+}:
+
+assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
+assert swingSupport -> xlibs != null;
+
+let
+
+  /**
+   * The JRE libraries are in directories that depend on the CPU.
+   */
+  architecture =
+    if stdenv.system == "i686-linux" then
+      "i386"
+    else if stdenv.system == "x86_64-linux" then
+      "amd64"
+    else
+      abort "jdk requires i686-linux or x86_64 linux";
+
+  jce =
+    if installjce then
+      requireFile {
+        name = jceName;
+        url = jceDownloadUrl;
+        sha256 = sha256JCE;
+      }
+    else
+      "";
+in
+
+stdenv.mkDerivation rec {
+  name =
+    if installjdk then "jdk-1.${productVersion}.0_${patchVersion}" else "jre-1.${productVersion}.0_${patchVersion}";
+
+  src =
+    if stdenv.system == "i686-linux" then
+      requireFile {
+        name = "jdk-${productVersion}u${patchVersion}-linux-i586.tar.gz";
+        url = downloadUrl;
+        sha256 = sha256_i686;
+      }
+    else if stdenv.system == "x86_64-linux" then
+
+      requireFile {
+        name = "jdk-${productVersion}u${patchVersion}-linux-x64.tar.gz";
+        url = downloadUrl;
+        sha256 = sha256_x86_64;
+      }
+    else
+      abort "jdk requires i686-linux or x86_64 linux";
+
+  nativeBuildInputs = [ file ]
+    ++ stdenv.lib.optional installjce unzip;
+
+  # See: https://github.com/NixOS/patchelf/issues/10
+  dontStrip = 1;
+  
+  installPhase = ''
+    cd ..
+
+    # Set PaX markings
+    exes=$(file $sourceRoot/bin/* $sourceRoot/jre/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
+    for file in $exes; do
+      paxmark m "$file"
+      # On x86 for heap sizes over 700MB disable SEGMEXEC and PAGEEXEC as well.
+      ${stdenv.lib.optionalString stdenv.isi686 ''paxmark msp "$file"''}
+    done
+
+    if test -z "$installjdk"; then
+      mv $sourceRoot/jre $out
+    else
+      mv $sourceRoot $out
+    fi
+
+    for file in $out/*
+    do
+      if test -f $file ; then
+        rm $file
+      fi
+    done
+
+    if test -n "$installjdk"; then
+      for file in $out/jre/*
+      do
+        if test -f $file ; then
+          rm $file
+        fi
+      done
+    fi
+
+    # construct the rpath
+    rpath=
+    for i in $libraries; do
+        rpath=$rpath''${rpath:+:}$i/lib:$i/lib64
+    done
+
+    if test -z "$installjdk"; then
+      jrePath=$out
+    else
+      jrePath=$out/jre
+    fi
+
+    if test -n "${jce}"; then
+      unzip ${jce}
+      cp -v UnlimitedJCEPolicy/*.jar $jrePath/lib/security
+    fi
+
+    rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}/jli
+    rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}/server
+    rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}/xawt
+    rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}
+    
+    # set all the dynamic linkers
+    find $out -type f -perm +100 \
+        -exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+        --set-rpath "$rpath" {} \;
+
+    find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
+
+    if test -z "$pluginSupport"; then
+      rm -f $out/bin/javaws
+      if test -n "$installjdk"; then
+        rm -f $out/jre/bin/javaws
+      fi
+    fi
+
+    mkdir $jrePath/lib/${architecture}/plugins
+    ln -s $jrePath/lib/${architecture}/libnpjp2.so $jrePath/lib/${architecture}/plugins
+  '';
+
+  inherit installjdk pluginSupport;
+
+  /**
+   * libXt is only needed on amd64
+   */
+  libraries =
+    [stdenv.gcc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu xlibs.libXxf86vm alsaLib fontconfig freetype gnome.pango gnome.gtk cairo gdk_pixbuf atk] ++
+    (if swingSupport then [xlibs.libX11 xlibs.libXext xlibs.libXtst xlibs.libXi xlibs.libXp xlibs.libXt xlibs.libXrender stdenv.gcc.gcc] else []);
+
+  passthru.mozillaPlugin = if installjdk then "/jre/lib/${architecture}/plugins" else "/lib/${architecture}/plugins";
+
+  meta.license = "unfree";
+}
+
diff --git a/pkgs/development/compilers/jdk/jdk7-linux.nix b/pkgs/development/compilers/jdk/jdk7-linux.nix
index 7683ad81e59..46544dc390f 100644
--- a/pkgs/development/compilers/jdk/jdk7-linux.nix
+++ b/pkgs/development/compilers/jdk/jdk7-linux.nix
@@ -1,170 +1,10 @@
-{ swingSupport ? true
-, stdenv
-, requireFile
-, unzip
-, file
-, xlibs ? null
-, installjdk ? true
-, pluginSupport ? true
-, installjce ? false
-, glib
-, libxml2
-, libav_0_8
-, ffmpeg
-, libxslt
-, mesa_noglu
-, freetype
-, fontconfig
-, gnome
-, cairo
-, alsaLib
-, atk
-, gdk_pixbuf
-}:
-
-assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
-assert swingSupport -> xlibs != null;
-
-let
-
-  /**
-   * The JRE libraries are in directories that depend on the CPU.
-   */
-  architecture =
-    if stdenv.system == "i686-linux" then
-      "i386"
-    else if stdenv.system == "x86_64-linux" then
-      "amd64"
-    else
-      abort "jdk requires i686-linux or x86_64 linux";
-
-  jce =
-    if installjce then
-      requireFile {
-        name = "UnlimitedJCEPolicyJDK7.zip";
-        url = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
-        sha256 = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";
-      }
-    else
-      "";
-in
-
-stdenv.mkDerivation rec {
-  patchversion = "55";
-
-  name =
-    if installjdk then "jdk-1.7.0_${patchversion}" else "jre-1.7.0_${patchversion}";
-
-  src =
-    if stdenv.system == "i686-linux" then
-      requireFile {
-        name = "jdk-7u${patchversion}-linux-i586.tar.gz";
-        url = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;
-        sha256 = "0y0v5ilbkdmf14jrvwa23x91rfdw90jji4y7hq0l494iy4wjnyc1";
-      }
-    else if stdenv.system == "x86_64-linux" then
-
-      requireFile {
-        name = "jdk-7u${patchversion}-linux-x64.tar.gz";
-        url = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;
-        sha256 = "15sncxhjasv5i6p7hfrr92xq5ph9g6g12i4m52vp45l031bw5y46";
-      }
-    else
-      abort "jdk requires i686-linux or x86_64 linux";
-
-  nativeBuildInputs = [ file ]
-    ++ stdenv.lib.optional installjce unzip;
-
-  installPhase = ''
-    cd ..
-
-    # Set PaX markings
-    exes=$(file $sourceRoot/bin/* $sourceRoot/jre/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
-    for file in $exes; do
-      paxmark m "$file"
-      # On x86 for heap sizes over 700MB disable SEGMEXEC and PAGEEXEC as well.
-      ${stdenv.lib.optionalString stdenv.isi686 ''paxmark msp "$file"''}
-    done
-
-    if test -z "$installjdk"; then
-      mv $sourceRoot/jre $out
-    else
-      mv $sourceRoot $out
-    fi
-
-    for file in $out/*
-    do
-      if test -f $file ; then
-        rm $file
-      fi
-    done
-
-    if test -n "$installjdk"; then
-      for file in $out/jre/*
-      do
-        if test -f $file ; then
-          rm $file
-        fi
-      done
-    fi
-
-    # construct the rpath
-    rpath=
-    for i in $libraries; do
-        rpath=$rpath''${rpath:+:}$i/lib''${rpath:+:}$i/lib64
-    done
-
-    if test -z "$installjdk"; then
-      jrePath=$out
-    else
-      jrePath=$out/jre
-    fi
-
-    if test -n "${jce}"; then
-      unzip ${jce}
-      cp -v UnlimitedJCEPolicy/*.jar $jrePath/lib/security
-    fi
-
-    rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}/jli
-    rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}/server
-    rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}/xawt
-    rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}
-
-    # set all the dynamic linkers
-    find $out -type f -perm +100 \
-        -exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
-        --set-rpath "$rpath" {} \;
-
-    find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
-
-    # HACK: For some reason, appending atk to the global patchelf rpath paths causes:
-    #   java: relocation error: java: symbol , version GLIBC_2.2.5 not defined in file libc.so.6 with link time reference
-    # Because only libglass.so needs atk, we put it only in it's rpath.
-    # This seems to work fine.
-    test -f $out/jre/lib/${architecture}/libglass.so && patchelf --set-rpath "$rpath:${atk}/lib" $out/jre/lib/${architecture}/libglass.so
-
-    if test -z "$pluginSupport"; then
-      rm -f $out/bin/javaws
-      if test -n "$installjdk"; then
-        rm -f $out/jre/bin/javaws
-      fi
-    fi
-
-    mkdir $jrePath/lib/${architecture}/plugins
-    ln -s $jrePath/lib/${architecture}/libnpjp2.so $jrePath/lib/${architecture}/plugins
-  '';
-
-  inherit installjdk pluginSupport;
-
-  /**
-   * libXt is only needed on amd64
-   */
-  libraries =
-    [stdenv.gcc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu xlibs.libXxf86vm alsaLib fontconfig freetype gnome.pango gnome.gtk cairo gdk_pixbuf] ++
-    (if swingSupport then [xlibs.libX11 xlibs.libXext xlibs.libXtst xlibs.libXi xlibs.libXp xlibs.libXt xlibs.libXrender stdenv.gcc.gcc] else []);
-
-  passthru.mozillaPlugin = if installjdk then "/jre/lib/${architecture}/plugins" else "/lib/${architecture}/plugins";
-
-  meta.license = "unfree";
+import ./jdk-linux-base.nix {
+  productVersion = "7";
+  patchVersion = "60";
+  downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;
+  sha256_i686 = "d736fb4fd7c8ef50b76411daa640c6feeb48a5c275d29a90ffeb916a78d47a48";
+  sha256_x86_64 = "c7232b717573b057dbe828d937ee406b7a75fbc6aba7f1de98a049cbd42c6ae8";
+  jceName = "UnlimitedJCEPolicyJDK7.zip";
+  jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
+  sha256JCE = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";
 }
-
diff --git a/pkgs/development/compilers/jdk/jdk8-linux.nix b/pkgs/development/compilers/jdk/jdk8-linux.nix
new file mode 100644
index 00000000000..0c3eed75f4c
--- /dev/null
+++ b/pkgs/development/compilers/jdk/jdk8-linux.nix
@@ -0,0 +1,10 @@
+import ./jdk-linux-base.nix {
+  productVersion = "8";
+  patchVersion = "5";
+  downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
+  sha256_i686 = "779f83efb8dc9ce7c1143ba9bbd38fa2d8a1c49dcb61f7d36972d37d109c5fc9";
+  sha256_x86_64 = "44901389e9fb118971534ad0f58558ba8c43f315b369117135bd6617ae631edc";
+  jceName = "jce_policy-8.zip";
+  jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
+  sha256JCE = "f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59";
+}
diff --git a/pkgs/development/compilers/nasm/default.nix b/pkgs/development/compilers/nasm/default.nix
index 8098b9d278f..8219882a2a2 100644
--- a/pkgs/development/compilers/nasm/default.nix
+++ b/pkgs/development/compilers/nasm/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "nasm-2.11.01";
+  name = "nasm-${version}";
+  version = "2.11.05";
   
   src = fetchurl {
-    url = "http://www.nasm.us/pub/nasm/releasebuilds/2.11.01/${name}.tar.bz2";
-    sha256 = "0p0rhq18in2hyv3gircgxj72n2b1mvr8bvjlqscpaz8m62cyvam7";
+    url = "http://www.nasm.us/pub/nasm/releasebuilds/${version}/${name}.tar.bz2";
+    sha256 = "1sgspnascc0asmwlv3jm1mq4vzx653sa7vlg48z20pfybk7pnhaa";
   };
 
   meta = {
diff --git a/pkgs/development/compilers/sbcl/bootstrap.nix b/pkgs/development/compilers/sbcl/bootstrap.nix
new file mode 100644
index 00000000000..c3335ea6d22
--- /dev/null
+++ b/pkgs/development/compilers/sbcl/bootstrap.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name    = "sbcl-bootstrap-${version}";
+  version = "1.1.8";
+
+  src = if stdenv.isDarwin
+    then fetchurl {
+      url = mirror://sourceforge/project/sbcl/sbcl/1.1.8/sbcl-1.1.8-x86-64-darwin-binary.tar.bz2;
+      sha256 = "006pr88053wclvbjfjdypnbiw8wymbzdzi7a6kbkpdfn4zf5943j";
+    }
+    else fetchurl {
+      url = mirror://sourceforge/project/sbcl/sbcl/1.1.8/sbcl-1.1.8-x86-64-linux-binary.tar.bz2;
+      sha256 = "0lh1jglxlfwk4cm6sgwk1jnb6ikhbrkx7p5aha2nbmkd6zl96prx";
+    };
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp -p src/runtime/sbcl $out/bin
+    ensureDir $out/share/sbcl
+    cp -p output/sbcl.core $out/share/sbcl
+  '';
+
+  meta = {
+    description = "Lisp compiler";
+    homepage = "http://www.sbcl.org";
+    license = "bsd";
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index e1de4c53de5..579d5ec11eb 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -1,36 +1,18 @@
-a :  
-let 
-  fetchurl = a.fetchurl;
-  s= # Generated upstream information
-  rec {
-    baseName="sbcl";
-    version="1.2.0";
-    name="${baseName}-${version}";
-    hash="13k20sys1v4lvgis8cnbczww6zs93rw176vz07g4jx06418k53x2";
-    url="mirror://sourceforge/project/sbcl/sbcl/1.2.0/sbcl-1.2.0-source.tar.bz2";
-    sha256="13k20sys1v4lvgis8cnbczww6zs93rw176vz07g4jx06418k53x2";
-  };
-  buildInputs = with a; [
-    clisp makeWrapper
-  ];
-in
-rec {
-  src = a.fetchUrlFromSrcInfo s;
+{ stdenv, fetchurl, sbclBootstrap, clisp}:
 
-  inherit buildInputs;
-  configureFlags = [];
+stdenv.mkDerivation rec {
+  name    = "sbcl-${version}";
+  version = "1.2.0";
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["setVars" "doFixNewer" "doFixTests" "setVersion" "doPatch" "doBuild" "doInstall" "doWrap"];
+  src = fetchurl {
+    url    = mirror://sourceforge/project/sbcl/sbcl/1.2.0/sbcl-1.2.0-source.tar.bz2;
+    sha256 = "13k20sys1v4lvgis8cnbczww6zs93rw176vz07g4jx06418k53x2";
+  };
 
-  setVars = a.fullDepEntry (''
-    export INSTALL_ROOT=$out
-    mkdir test-home
-    export HOME=$PWD/test-home
-  '') ["minInit"];
+  buildInputs = [ sbclBootstrap ] ++ stdenv.lib.optional stdenv.isLinux clisp;
 
-  setVersion = a.fullDepEntry (''
-    echo '"${s.version}.nixos"' > version.lisp-expr
+  patchPhase = ''
+    echo '"${version}.nixos"' > version.lisp-expr
     echo "
     (lambda (features)
       (flet ((enable (x)
@@ -38,14 +20,11 @@ rec {
              (disable (x)
                (setf features (remove x features))))
         (enable :sb-thread))) " > customize-target-features.lisp
-  '') ["minInit" "doUnpack"];
 
-  /* SBCL checks whether files are up-to-date in many places.. Unfortunately, same timestamp 
-     is not good enought
-  */
-  doFixNewer = a.fullDepEntry(''
     pwd
 
+    # SBCL checks whether files are up-to-date in many places..
+    # Unfortunately, same timestamp is not good enough
     sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
     sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
     sed -i src/cold/slam.lisp -e \
@@ -56,13 +35,8 @@ rec {
       '/date defaulted-fasl/a)'
     sed -i src/code/target-load.lisp -e \
       '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
-  '') ["minInit" "doUnpack"];
 
-  doWrap = a.fullDepEntry (''
-    wrapProgram "$out/bin/sbcl" --set "SBCL_HOME" "$out/lib/sbcl"
-  '') ["minInit" "addInputs"];
-
-  doFixTests = a.fullDepEntry (''
+    # Fix the tests
     sed -e '/deftest pwent/inil' -i contrib/sb-posix/posix-tests.lisp
     sed -e '/deftest grent/inil' -i contrib/sb-posix/posix-tests.lisp
     sed -e '/deftest .*ent.non-existing/,+5d' -i contrib/sb-posix/posix-tests.lisp
@@ -70,24 +44,31 @@ rec {
 
     sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
     sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
-  '') ["minInit" "doUnpack"];
+  '';
+
+  preBuild = ''
+    export INSTALL_ROOT=$out
+    ensureDir test-home
+    export HOME=$PWD/test-home
+  '';
 
-  doBuild = a.fullDepEntry (''
-    sh make.sh clisp
-  '') ["minInit" "doUnpack" "addInputs"];
+  buildPhase = if stdenv.isLinux
+    then ''
+      sh make.sh clisp --prefix=$out
+    ''
+    else ''
+      sh make.sh --prefix=$out --xc-host='${sbclBootstrap}/bin/sbcl --core ${sbclBootstrap}/share/sbcl/sbcl.core --disable-debugger --no-userinit --no-sysinit'
+    '';
 
-  doInstall = a.fullDepEntry (''
-    sh install.sh
-  '') ["doBuild" "minInit" "addInputs"];
+  installPhase = ''
+    INSTALL_ROOT=$out sh install.sh
+  '';
 
-  inherit(s) name;
-  inherit(s) version;
   meta = {
     description = "Lisp compiler";
-    homepage = "http://www.sbcl.org";
-    license = "bsd";
-    maintainers = [a.lib.maintainers.raskin];
-    platforms = with a.lib.platforms; all;
-    inherit(s) version;
+    homepage = http://www.sbcl.org;
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/compilers/scala/2.9.nix b/pkgs/development/compilers/scala/2.9.nix
index a7c9dbc9073..41f377dbfa3 100644
--- a/pkgs/development/compilers/scala/2.9.nix
+++ b/pkgs/development/compilers/scala/2.9.nix
@@ -3,11 +3,11 @@
 # at runtime, need jre or jdk
 
 stdenv.mkDerivation rec {
-  name = "scala-2.9.2";
+  name = "scala-2.9.3";
 
   src = fetchurl {
-    url = "http://www.scala-lang.org/downloads/distrib/files/${name}.tgz";
-    sha256 = "0s1shpzw2hyz7bwxdqq19rcrzbpq4d7b0kvdvjvhy7h05x496b46";
+    url = "http://www.scala-lang.org/files/archive/${name}.tgz";
+    sha256 = "faaab229f78c945063e8fd31c045bc797c731194296d7a4f49863fd87fc4e7b9";
   };
 
   installPhase = ''
diff --git a/pkgs/development/compilers/smlnj/bootstrap.nix b/pkgs/development/compilers/smlnj/bootstrap.nix
new file mode 100644
index 00000000000..27fdf75cc25
--- /dev/null
+++ b/pkgs/development/compilers/smlnj/bootstrap.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, cpio, rsync, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "smlnj-bootstrap-${version}";
+
+  version = "110.76";
+
+  src = fetchurl {
+    url = "http://smlnj.cs.uchicago.edu/dist/working/${version}/smlnj-x86-${version}.pkg";
+    sha256 = "0n3kdlqffqw97piya7i4lddrhjml2dp1q9hfq2jrd2hbzln8vdjf";
+  };
+
+  buildInputs = [ cpio rsync makeWrapper ];
+
+  unpackPhase = ''
+    /usr/bin/xar -xf $src
+    cd smlnj.pkg
+  '';
+
+  buildPhase = ''
+    cat Payload | gunzip -dc | cpio -i
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    rsync -av bin/ $out/bin/
+
+    ensureDir $out/lib
+    rsync -av lib/ $out/lib/
+  '';
+
+  postInstall = ''
+    wrapProgram "$out/bin/sml" --set "SMLNJ_HOME" "$out"
+  '';
+
+  meta = {
+    description = "Compiler for the Standard ML '97 programming language";
+    homepage    = http://www.smlnj.org;
+    license     = stdenv.lib.licenses.free;
+    platforms   = stdenv.lib.platforms.darwin;
+    maintainers = [ stdenv.lib.maintainers.jwiegley ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/interpreters/lua-5/expat.nix b/pkgs/development/interpreters/lua-5/expat.nix
new file mode 100644
index 00000000000..a2b42cb37c5
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/expat.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, lua5, expat }:
+
+stdenv.mkDerivation rec {
+  version = "1.3.0";
+  name = "lua-expat-${version}";
+  isLibrary = true;
+  src = fetchurl {
+    url = "https://matthewwild.co.uk/projects/luaexpat/luaexpat-${version}.tar.gz";
+    sha256 = "1hvxqngn0wf5642i5p3vcyhg3pmp102k63s9ry4jqyyqc1wkjq6h";
+  };
+
+  buildInputs = [ lua5 expat ];
+
+  preBuild = ''
+    makeFlagsArray=(
+      LUA_LDIR="$out/share/lua/${lua5.luaversion}"
+      LUA_INC="-I${lua5}/include" LUA_CDIR="$out/lib/lua/${lua5.luaversion}"
+      EXPAT_INC="-I${expat}/include");
+  '';
+
+  meta = {
+    homepage = "http://matthewwild.co.uk/projects/luaexpat";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.flosse ];
+  };
+}
diff --git a/pkgs/development/interpreters/perl/5.20/cpp-precomp.patch b/pkgs/development/interpreters/perl/5.20/cpp-precomp.patch
new file mode 100644
index 00000000000..231853fe51a
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.20/cpp-precomp.patch
@@ -0,0 +1,11 @@
+--- a/hints/darwin.sh	2013-05-08 11:13:45.000000000 -0600
++++ b/hints/darwin.sh	2013-05-08 11:15:04.000000000 -0600
+@@ -129,7 +129,7 @@
+ 
+ # Avoid Apple's cpp precompiler, better for extensions
+ if [ "X`echo | ${cc} -no-cpp-precomp -E - 2>&1 >/dev/null`" = "X" ]; then
+-    cppflags="${cppflags} -no-cpp-precomp"
++    #cppflags="${cppflags} -no-cpp-precomp"
+ 
+     # This is necessary because perl's build system doesn't
+     # apply cppflags to cc compile lines as it should.
diff --git a/pkgs/development/interpreters/perl/5.20/default.nix b/pkgs/development/interpreters/perl/5.20/default.nix
new file mode 100644
index 00000000000..d9fb32aa43e
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.20/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchurl }:
+
+let
+
+  libc = if stdenv.gcc.libc or null != null then stdenv.gcc.libc else "/usr";
+
+in
+
+with {
+  inherit (stdenv.lib) optional optionalString;
+};
+
+stdenv.mkDerivation rec {
+  name = "perl-5.20.0";
+
+  src = fetchurl {
+    url = "mirror://cpan/src/${name}.tar.gz";
+    sha256 = "00ndpgw4bjing9gy2y6jvs3q46mv2ll6zrxjkhpr12fcdsnji32f";
+  };
+
+  patches =
+    [ # Do not look in /usr etc. for dependencies.
+      ./no-sys-dirs.patch
+    ]
+    ++ optional stdenv.isSunOS ./ld-shared.patch
+    ++ stdenv.lib.optional stdenv.isDarwin [ ./cpp-precomp.patch ./no-libutil.patch ] ;
+
+  # Build a thread-safe Perl with a dynamic libperls.o.  We need the
+  # "installstyle" option to ensure that modules are put under
+  # $out/lib/perl5 - this is the general default, but because $out
+  # contains the string "perl", Configure would select $out/lib.
+  # Miniperl needs -lm. perl needs -lrt.
+  configureFlags =
+    [ "-de"
+      "-Dcc=gcc"
+      "-Uinstallusrbinperl"
+      "-Dinstallstyle=lib/perl5"
+      "-Duseshrplib"
+      "-Dlocincpth=${libc}/include"
+      "-Dloclibpth=${libc}/lib"
+    ]
+    ++ optional (stdenv ? glibc) "-Dusethreads";
+
+  configureScript = "${stdenv.shell} ./Configure";
+
+  dontAddPrefix = true;
+
+  enableParallelBuilding = true;
+
+  preConfigure =
+    ''
+      configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
+
+      ${optionalString stdenv.isArm ''
+        configureFlagsArray=(-Dldflags="-lm -lrt")
+      ''}
+    '';
+
+  preBuild = optionalString (!(stdenv ? gcc && stdenv.gcc.nativeTools))
+    ''
+      # Make Cwd work on NixOS (where we don't have a /bin/pwd).
+      substituteInPlace dist/PathTools/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
+    '';
+
+  setupHook = ./setup-hook.sh;
+
+  passthru.libPrefix = "lib/perl5/site_perl";
+}
diff --git a/pkgs/development/interpreters/perl/5.20/ld-shared.patch b/pkgs/development/interpreters/perl/5.20/ld-shared.patch
new file mode 100644
index 00000000000..be45230c8a7
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.20/ld-shared.patch
@@ -0,0 +1,11 @@
+--- perl-5.16.2/hints/solaris_2.sh.orig	2013-02-14 19:29:49.453988140 +0000
++++ perl-5.16.2/hints/solaris_2.sh	2013-02-14 19:30:31.681631019 +0000
+@@ -568,7 +568,7 @@
+ #		    ccflags="$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
+ #		fi
+ 		ldflags="$ldflags -m64"
+-		lddlflags="$lddlflags -G -m64"
++		lddlflags="$lddlflags -shared -m64"
+ 		;;
+ 	    *)
+ 		getconfccflags="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
diff --git a/pkgs/development/interpreters/perl/5.20/no-libutil.patch b/pkgs/development/interpreters/perl/5.20/no-libutil.patch
new file mode 100644
index 00000000000..68d44612bfe
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.20/no-libutil.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
+--- perl-5.14.2-orig/Configure	2011-09-26 11:44:34.000000000 +0200
++++ perl-5.14.2/Configure	2012-02-16 17:24:50.779839039 +0100
+@@ -1368,7 +1368,7 @@
+ : List of libraries we want.
+ : If anyone needs extra -lxxx, put those in a hint file.
+ libswanted="socket bind inet nsl nm ndbm gdbm dbm db malloc dl ld sun"
+-libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
++libswanted="$libswanted m crypt sec c cposix posix ucb bsd BSD"
+ : We probably want to search /usr/shlib before most other libraries.
+ : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
+ glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
diff --git a/pkgs/development/interpreters/perl/5.20/no-sys-dirs.patch b/pkgs/development/interpreters/perl/5.20/no-sys-dirs.patch
new file mode 100644
index 00000000000..1793273a76f
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.20/no-sys-dirs.patch
@@ -0,0 +1,250 @@
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/Configure perl-5.20.0/Configure
+--- perl-5.20.0-orig/Configure	2014-05-26 15:34:18.000000000 +0200
++++ perl-5.20.0/Configure	2014-06-25 10:43:35.368285986 +0200
+@@ -106,15 +106,7 @@
+ fi
+ 
+ : Proper PATH setting
+-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
+-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
+-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
+-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
+-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
+-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
+-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
+-paths="$paths /sbin /usr/sbin /usr/libexec"
+-paths="$paths /system/gnu_library/bin"
++paths=''
+ 
+ for p in $paths
+ do
+@@ -1337,8 +1329,7 @@
+ archname=''
+ : Possible local include directories to search.
+ : Set locincpth to "" in a hint file to defeat local include searches.
+-locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
+-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
++locincpth=""
+ :
+ : no include file wanted by default
+ inclwanted=''
+@@ -1349,17 +1340,12 @@
+ 
+ libnames=''
+ : change the next line if compiling for Xenix/286 on Xenix/386
+-xlibpth='/usr/lib/386 /lib/386'
++xlibpth=''
+ : Possible local library directories to search.
+-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
+-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
++loclibpth=""
+ 
+ : general looking path for locating libraries
+-glibpth="/lib /usr/lib $xlibpth"
+-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+-test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
+-test -f /shlib/libc.so     && glibpth="/shlib $glibpth"
+-test -d /usr/lib64         && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
++glibpth=""
+ 
+ : Private path used by Configure to find libraries.  Its value
+ : is prepended to libpth. This variable takes care of special
+@@ -1391,8 +1377,6 @@
+ libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
+ : We probably want to search /usr/shlib before most other libraries.
+ : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
+-glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
+-glibpth="/usr/shlib $glibpth"
+ : Do not use vfork unless overridden by a hint file.
+ usevfork=false
+ 
+@@ -2446,7 +2430,6 @@
+ zip
+ "
+ pth=`echo $PATH | sed -e "s/$p_/ /g"`
+-pth="$pth $sysroot/lib $sysroot/usr/lib"
+ for file in $loclist; do
+ 	eval xxx=\$$file
+ 	case "$xxx" in
+@@ -4936,7 +4919,7 @@
+ : Set private lib path
+ case "$plibpth" in
+ '') if ./mips; then
+-	plibpth="$incpath/usr/lib $sysroot/usr/local/lib $sysroot/usr/ccs/lib"
++	plibpth="$incpath/usr/lib"
+     fi;;
+ esac
+ case "$libpth" in
+@@ -8600,13 +8583,8 @@
+ echo " "
+ case "$sysman" in
+ '')
+-	syspath='/usr/share/man/man1 /usr/man/man1'
+-	syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
+-	syspath="$syspath /usr/man/u_man/man1"
+-	syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
+-	syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
+-	syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
+-	sysman=`./loc . /usr/man/man1 $syspath`
++	syspath=''
++	sysman=''
+ 	;;
+ esac
+ if $test -d "$sysman"; then
+@@ -19900,9 +19878,10 @@
+ case "$full_ar" in
+ '') full_ar=$ar ;;
+ esac
++full_ar=ar
+ 
+ : Store the full pathname to the sed program for use in the C program
+-full_sed=$sed
++full_sed=sed
+ 
+ : see what type gids are declared as in the kernel
+ echo " "
+Only in perl-5.20.0/: Configure.orig
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/ext/Errno/Errno_pm.PL perl-5.20.0/ext/Errno/Errno_pm.PL
+--- perl-5.20.0-orig/ext/Errno/Errno_pm.PL	2014-05-26 15:34:20.000000000 +0200
++++ perl-5.20.0/ext/Errno/Errno_pm.PL	2014-06-25 10:31:24.317970047 +0200
+@@ -126,11 +126,7 @@
+ 	if ($dep =~ /(\S+errno\.h)/) {
+ 	     $file{$1} = 1;
+ 	}
+-    } elsif ($^O eq 'linux' &&
+-	      $Config{gccversion} ne '' && 
+-	      $Config{gccversion} !~ /intel/i
+-	      # might be using, say, Intel's icc
+-	     ) {
++    } elsif (0) {
+     # When cross-compiling we may store a path for gcc's "sysroot" option:
+     my $sysroot = $Config{sysroot} || '';
+ 	# Some Linuxes have weird errno.hs which generate
+Only in perl-5.20.0/ext/Errno: Errno_pm.PL.orig
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/hints/freebsd.sh perl-5.20.0/hints/freebsd.sh
+--- perl-5.20.0-orig/hints/freebsd.sh	2014-01-31 22:55:51.000000000 +0100
++++ perl-5.20.0/hints/freebsd.sh	2014-06-25 10:25:53.263964680 +0200
+@@ -119,21 +119,21 @@
+         objformat=`/usr/bin/objformat`
+         if [ x$objformat = xaout ]; then
+             if [ -e /usr/lib/aout ]; then
+-                libpth="/usr/lib/aout /usr/local/lib /usr/lib"
+-                glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
++                libpth=""
++                glibpth=""
+             fi
+             lddlflags='-Bshareable'
+         else
+-            libpth="/usr/lib /usr/local/lib"
+-            glibpth="/usr/lib /usr/local/lib"
++            libpth=""
++            glibpth=""
+             ldflags="-Wl,-E "
+             lddlflags="-shared "
+         fi
+         cccdlflags='-DPIC -fPIC'
+         ;;
+ *)
+-       libpth="/usr/lib /usr/local/lib"
+-       glibpth="/usr/lib /usr/local/lib"
++       libpth=""
++       glibpth=""
+        ldflags="-Wl,-E "
+         lddlflags="-shared "
+         cccdlflags='-DPIC -fPIC'
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/hints/linux.sh perl-5.20.0/hints/linux.sh
+--- perl-5.20.0-orig/hints/linux.sh	2014-05-26 15:34:20.000000000 +0200
++++ perl-5.20.0/hints/linux.sh	2014-06-25 10:33:47.354883843 +0200
+@@ -150,25 +150,6 @@
+     ;;
+ esac
+ 
+-# Ubuntu 11.04 (and later, presumably) doesn't keep most libraries
+-# (such as -lm) in /lib or /usr/lib.  So we have to ask gcc to tell us
+-# where to look.  We don't want gcc's own libraries, however, so we
+-# filter those out.
+-# This could be conditional on Unbuntu, but other distributions may
+-# follow suit, and this scheme seems to work even on rather old gcc's.
+-# This unconditionally uses gcc because even if the user is using another
+-# compiler, we still need to find the math library and friends, and I don't
+-# know how other compilers will cope with that situation.
+-# Morever, if the user has their own gcc earlier in $PATH than the system gcc,
+-# we don't want its libraries. So we try to prefer the system gcc
+-# Still, as an escape hatch, allow Configure command line overrides to
+-# plibpth to bypass this check.
+-if [ -x /usr/bin/gcc ] ; then
+-    gcc=/usr/bin/gcc
+-else
+-    gcc=gcc
+-fi
+-
+ case "$plibpth" in
+ '') plibpth=`LANG=C LC_ALL=C $gcc $ccflags $ldflags -print-search-dirs | grep libraries |
+ 	cut -f2- -d= | tr ':' $trnl | grep -v 'gcc' | sed -e 's:/$::'`
+@@ -178,32 +159,6 @@
+     ;;
+ esac
+ 
+-case "$libc" in
+-'')
+-# If you have glibc, then report the version for ./myconfig bug reporting.
+-# (Configure doesn't need to know the specific version since it just uses
+-# gcc to load the library for all tests.)
+-# We don't use __GLIBC__ and  __GLIBC_MINOR__ because they
+-# are insufficiently precise to distinguish things like
+-# libc-2.0.6 and libc-2.0.7.
+-    for p in $plibpth
+-    do
+-        for trylib in libc.so.6 libc.so
+-        do
+-            if $test -e $p/$trylib; then
+-                libc=`ls -l $p/$trylib | awk '{print $NF}'`
+-                if $test "X$libc" != X; then
+-                    break
+-                fi
+-            fi
+-        done
+-        if $test "X$libc" != X; then
+-            break
+-        fi
+-    done
+-    ;;
+-esac
+-
+ # Are we using ELF?  Thanks to Kenneth Albanowski <kjahds@kjahds.com>
+ # for this test.
+ cat >try.c <<'EOM'
+@@ -367,33 +322,6 @@
+ 	;;
+ esac
+ 
+-# SuSE8.2 has /usr/lib/libndbm* which are ld scripts rather than
+-# true libraries. The scripts cause binding against static
+-# version of -lgdbm which is a bad idea. So if we have 'nm'
+-# make sure it can read the file
+-# NI-S 2003/08/07
+-case "$nm" in
+-    '') ;;
+-    *)
+-    for p in $plibpth
+-    do
+-        if $test -r $p/libndbm.so; then
+-            if $nm $p/libndbm.so >/dev/null 2>&1 ; then
+-                echo 'Your shared -lndbm seems to be a real library.'
+-                _libndbm_real=1
+-                break
+-            fi
+-        fi
+-    done
+-    if $test "X$_libndbm_real" = X; then
+-        echo 'Your shared -lndbm is not a real library.'
+-        set `echo X "$libswanted "| sed -e 's/ ndbm / /'`
+-        shift
+-        libswanted="$*"
+-    fi
+-    ;;
+-esac
+-
+ # Linux on Synology.
+ if [ -f /etc/synoinfo.conf -a -d /usr/syno ]; then
+     # Tested on Synology DS213 and DS413
diff --git a/pkgs/development/interpreters/perl/5.20/setup-hook.sh b/pkgs/development/interpreters/perl/5.20/setup-hook.sh
new file mode 100644
index 00000000000..6a144a7f780
--- /dev/null
+++ b/pkgs/development/interpreters/perl/5.20/setup-hook.sh
@@ -0,0 +1,5 @@
+addPerlLibPath () {
+    addToSearchPath PERL5LIB $1/lib/perl5/site_perl
+}
+
+envHooks=(${envHooks[@]} addPerlLibPath)
diff --git a/pkgs/development/interpreters/php/5.4.nix b/pkgs/development/interpreters/php/5.4.nix
index b692e4d8a99..c194c3aa8a0 100644
--- a/pkgs/development/interpreters/php/5.4.nix
+++ b/pkgs/development/interpreters/php/5.4.nix
@@ -9,7 +9,7 @@ in
 
 composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
 
-  version = "5.4.29";
+  version = "5.4.30";
 
   name = "php-${version}";
 
@@ -243,7 +243,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
 
   src = fetchurl {
     url = "http://www.php.net/distributions/php-${version}.tar.bz2";
-    sha256 = "19z2n6h1fvj30n6hl2mwhw2f4i1vwhbj3j7abq3gc16gcfh3rkk2";
+    sha256 = "1rkc977b4k0y6qg5nf8729g5zpica31h1isyds6khmrdwi23df1j";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/gloox/default.nix b/pkgs/development/libraries/gloox/default.nix
new file mode 100644
index 00000000000..4e271a8c678
--- /dev/null
+++ b/pkgs/development/libraries/gloox/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl
+, zlibSupport ? true, zlib ? null
+, sslSupport ? true, openssl ? null
+, idnSupport ? true, libidn ? null
+}:
+
+assert zlibSupport -> zlib != null;
+assert sslSupport -> openssl != null;
+assert idnSupport -> libidn != null;
+
+let
+  version = "1.0.10";
+in
+stdenv.mkDerivation rec {
+  name = "gloox-${version}";
+
+  src = fetchurl {
+    url = "http://camaya.net/download/gloox-${version}.tar.bz2";
+    sha256 = "300e756af97d43f3f70f1e68e4d4c7129d587dface61633f50d2c490876f58a3";
+  };
+
+  buildInputs = [ ]
+    ++ stdenv.lib.optional zlibSupport zlib
+    ++ stdenv.lib.optional sslSupport openssl
+    ++ stdenv.lib.optional idnSupport libidn;
+
+  meta = {
+    description = "A portable high-level Jabber/XMPP library for C++";
+    homepage = "http://camaya.net/gloox";
+    license = [ "GPLv3" ];
+  };
+}
diff --git a/pkgs/development/libraries/gnu-efi/default.nix b/pkgs/development/libraries/gnu-efi/default.nix
index 07c3c668793..a78d9890729 100644
--- a/pkgs/development/libraries/gnu-efi/default.nix
+++ b/pkgs/development/libraries/gnu-efi/default.nix
@@ -1,23 +1,15 @@
-{ stdenv
-, fetchurl
-}:
+{ stdenv, fetchurl }:
 
-let version = "3.0u"; in stdenv.mkDerivation {
-
-  name = "gnu-efi-${version}";
+stdenv.mkDerivation rec {
+  name = "gnu-efi_${version}";
+  version = "3.0u";
 
   src = fetchurl {
-    url = "mirror://sourceforge/gnu-efi/gnu-efi_${version}.orig.tar.gz";
+    url = "mirror://sourceforge/gnu-efi/${name}.orig.tar.gz";
     sha256 = "0klkdxh1aqwwfm393q67nxww6liffyp2lfybbnh4q819b06la39w";
   };
 
-  meta = {
-    description = "GNU EFI development toolchain";
-    homepage = http://sourceforge.net/projects/gnu-efi/;
-    license = "GPL";
-    maintainers = [ stdenv.lib.maintainers.shlevy ];
-    platforms = ["x86_64-linux" "i686-linux"];
-  };
+  arch = with stdenv.lib; head (splitString "-" stdenv.system);
 
   makeFlags = [
     "CC=gcc"
@@ -34,8 +26,17 @@ let version = "3.0u"; in stdenv.mkDerivation {
   '';
 
   installPhase = ''
+    mkdir -pv $out/include/efi/{protocol,$arch}
     make PREFIX="$out" $makeFlags install
     mkdir -pv $out/share/gnu-efi
     install -D -m644 apps/*.efi $out/share/gnu-efi
   '';
+
+  meta = with stdenv.lib; {
+    description = "GNU EFI development toolchain";
+    homepage = http://sourceforge.net/projects/gnu-efi/;
+    license = licenses.bsd3;
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix
index c7c639f2adb..9ffccac1e0f 100644
--- a/pkgs/development/libraries/gperftools/default.nix
+++ b/pkgs/development/libraries/gperftools/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ks9gsnhxrs2vccc6ha9m8xmj83lmw09xcws4zc0k57q4jcy5bgk";
   };
 
-  buildInputs = [ libunwind ];
+  buildInputs = stdenv.lib.optional stdenv.isLinux libunwind;
 
   # some packages want to link to the static tcmalloc_minimal
   # to drop the runtime dependency on gperftools
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = https://code.google.com/p/gperftools/;
     description = "Fast, multi-threaded malloc() and nifty performance analysis tools";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
   };
 }
diff --git a/pkgs/development/libraries/haskell/SHA2/default.nix b/pkgs/development/libraries/haskell/SHA2/default.nix
new file mode 100644
index 00000000000..435d51ae0fe
--- /dev/null
+++ b/pkgs/development/libraries/haskell/SHA2/default.nix
@@ -0,0 +1,14 @@
+{ cabal, aes, monadsTf, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "SHA2";
+  version = "0.2.5";
+  sha256 = "1zs79a327x6myfam3p2vr8lmszcaqnkll2qz8n4sy835vz328j40";
+  buildDepends = [ aes monadsTf transformers ];
+  meta = {
+    description = "Fast, incremental SHA hashing for bytestrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
+
diff --git a/pkgs/development/libraries/haskell/Yampa/default.nix b/pkgs/development/libraries/haskell/Yampa/default.nix
new file mode 100644
index 00000000000..7d941101eb3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Yampa/default.nix
@@ -0,0 +1,14 @@
+{ cabal, random }:
+
+cabal.mkDerivation (self: {
+  pname = "Yampa";
+  version = "0.9.5";
+  sha256 = "0r6fm2ccls7gbc5s0vbrzrqv6marnzlzc7zr4afkgfk9jsqfmqjh";
+  buildDepends = [ random ];
+  meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Yampa";
+    description = "Library for programming hybrid systems";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/bson/default.nix b/pkgs/development/libraries/haskell/bson/default.nix
index da4629e93fb..028b2e7d969 100644
--- a/pkgs/development/libraries/haskell/bson/default.nix
+++ b/pkgs/development/libraries/haskell/bson/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "bson";
-  version = "0.2.4";
-  sha256 = "1fr0xx9q2l3cb72j5lgrwdlr2gba7idh2v80s8d6dr69dhwaccd9";
+  version = "0.3";
+  sha256 = "0787z6970lf93mgrsyqcilnkx5bynny88ag15z2f07l1rhva6ac4";
   buildDepends = [
     binary cryptohash dataBinaryIeee754 mtl network text time
   ];
diff --git a/pkgs/development/libraries/haskell/command-qq/default.nix b/pkgs/development/libraries/haskell/command-qq/default.nix
new file mode 100644
index 00000000000..c48701efe0e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/command-qq/default.nix
@@ -0,0 +1,16 @@
+{ cabal, doctest, hspec, text }:
+
+cabal.mkDerivation (self: {
+  pname = "command-qq";
+  version = "0.3.0.0";
+  sha256 = "1bqfb4gc5ja9d9jygijqpf6014bmfcxnsvpv7c5n4f1z2aj07jy5";
+  buildDepends = [ text ];
+  testDepends = [ doctest hspec text ];
+  doCheck = false;
+  meta = {
+    homepage = "http://biegunka.github.io/command-qq/";
+    description = "Quasiquoters for external commands";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/deepseq-generics/default.nix b/pkgs/development/libraries/haskell/deepseq-generics/default.nix
new file mode 100644
index 00000000000..6b3edd59ab2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/deepseq-generics/default.nix
@@ -0,0 +1,15 @@
+{ cabal, deepseq, HUnit, testFramework, testFrameworkHunit }:
+
+cabal.mkDerivation (self: {
+  pname = "deepseq-generics";
+  version = "0.1.1.1";
+  sha256 = "1icc2gxsbnjjl150msnyysvr9r14kb6s2gm3izrj5a3mwf6l7s08";
+  buildDepends = [ deepseq ];
+  testDepends = [ deepseq HUnit testFramework testFrameworkHunit ];
+  meta = {
+    homepage = "https://github.com/hvr/deepseq-generics";
+    description = "GHC.Generics-based Control.DeepSeq.rnf implementation";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/extensible-effects/default.nix b/pkgs/development/libraries/haskell/extensible-effects/default.nix
index 8c188bf6820..a4c4f8ecc7c 100644
--- a/pkgs/development/libraries/haskell/extensible-effects/default.nix
+++ b/pkgs/development/libraries/haskell/extensible-effects/default.nix
@@ -11,6 +11,7 @@ cabal.mkDerivation (self: {
     HUnit QuickCheck testFramework testFrameworkHunit
     testFrameworkQuickcheck2
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/RobotGymnast/extensible-effects";
     description = "An Alternative to Monad Transformers";
@@ -18,5 +19,4 @@ cabal.mkDerivation (self: {
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.ocharles ];
   };
-  jailbreak = true;
 })
diff --git a/pkgs/development/libraries/haskell/folds/default.nix b/pkgs/development/libraries/haskell/folds/default.nix
new file mode 100644
index 00000000000..6317182f305
--- /dev/null
+++ b/pkgs/development/libraries/haskell/folds/default.nix
@@ -0,0 +1,22 @@
+{ cabal, comonad, contravariant, deepseq, doctest, filepath, hlint
+, lens, mtl, pointed, profunctors, reflection, semigroupoids
+, semigroups, tagged, transformers, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "folds";
+  version = "0.6.1";
+  sha256 = "13p4kyr48g917ib87n14qpqaka6isp73cwy7mvvsqgprj1fghyj1";
+  buildDepends = [
+    comonad contravariant lens pointed profunctors reflection
+    semigroupoids tagged transformers vector
+  ];
+  testDepends = [ deepseq doctest filepath hlint mtl semigroups ];
+  doCheck = false;
+  meta = {
+    homepage = "http://github.com/ekmett/folds";
+    description = "Beautiful Folding";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ghc-mod/default.nix b/pkgs/development/libraries/haskell/ghc-mod/default.nix
index 31d1d7689b1..5d29ec8474e 100644
--- a/pkgs/development/libraries/haskell/ghc-mod/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-mod/default.nix
@@ -21,6 +21,7 @@ cabal.mkDerivation (self: {
   configureFlags = "--datasubdir=${self.pname}-${self.version}";
   postInstall = ''
     cd $out/share/$pname-$version
+    sed -i -e 's/"-b" "\\n" "-l"/"-l" "-b" "\\"\\\\n\\""/' ghc-process.el
     make
     rm Makefile
     cd ..
diff --git a/pkgs/development/libraries/haskell/hcltest/default.nix b/pkgs/development/libraries/haskell/hcltest/default.nix
index 170c885d240..fa2ab9a145a 100644
--- a/pkgs/development/libraries/haskell/hcltest/default.nix
+++ b/pkgs/development/libraries/haskell/hcltest/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hcltest";
-  version = "0.3.1";
-  sha256 = "0qnf6ib01njcbjfbwxff8y4sqmrj6nyy9y9hb0l0kw21cxsgl7c9";
+  version = "0.3.2";
+  sha256 = "0q5b0v2gh0b3a15hg25bqj7scbckrkka2ckk49g2mrdz2gpr28bq";
   buildDepends = [
     dlist either filepath free lens mmorph monadControl mtl
     optparseApplicative randomShuffle split stm tagged tasty temporary
diff --git a/pkgs/development/libraries/haskell/hdaemonize/default.nix b/pkgs/development/libraries/haskell/hdaemonize/default.nix
new file mode 100644
index 00000000000..203eb33844e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hdaemonize/default.nix
@@ -0,0 +1,14 @@
+{ cabal, extensibleExceptions, filepath, hsyslog, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "hdaemonize";
+  version = "0.4.5.0";
+  sha256 = "1b9aic08pgmp95qy74qcrmq9dn33k6knycy7mn1dg8c5svmchb2w";
+  buildDepends = [ extensibleExceptions filepath hsyslog mtl ];
+  meta = {
+    homepage = "http://github.com/madhadron/hdaemonize";
+    description = "Library to handle the details of writing daemons for UNIX";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ixset/default.nix b/pkgs/development/libraries/haskell/ixset/default.nix
new file mode 100644
index 00000000000..f45e95b5e86
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ixset/default.nix
@@ -0,0 +1,14 @@
+{ cabal, safecopy, syb, sybWithClass }:
+
+cabal.mkDerivation (self: {
+  pname = "ixset";
+  version = "1.0.5";
+  sha256 = "1hznn7f8f13x5125n76dchayi16z72050qbwifnkrca54nf9q2ns";
+  buildDepends = [ safecopy syb sybWithClass ];
+  meta = {
+    homepage = "http://happstack.com";
+    description = "Efficient relational queries on Haskell sets";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monadloc-pp/default.nix b/pkgs/development/libraries/haskell/monadloc-pp/default.nix
new file mode 100644
index 00000000000..5ec05316ba0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monadloc-pp/default.nix
@@ -0,0 +1,18 @@
+{ cabal, filepath, haskellSrcExts, monadloc, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "monadloc-pp";
+  version = "0.3";
+  sha256 = "0jr9ngcj3l6kd5cscll5kr3a4bp52sdjgrdxd1j5a21jyc3gdyvn";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ filepath haskellSrcExts monadloc syb ];
+  jailbreak = true;
+  meta = {
+    homepage = "http://github.com/pepeiborra/monadloc";
+    description = "A preprocessor for generating monadic call traces";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.tomberek ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mongoDB/default.nix b/pkgs/development/libraries/haskell/mongoDB/default.nix
index 259a8e2fc2d..c97676b64d8 100644
--- a/pkgs/development/libraries/haskell/mongoDB/default.nix
+++ b/pkgs/development/libraries/haskell/mongoDB/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mongoDB";
-  version = "1.5.0";
-  sha256 = "0dvy8pa79c26hcngds6nnwnayrhsyz1flj18m9bcyrcvwb5q3dd6";
+  version = "2.0";
+  sha256 = "1dspx1x20903i44i825ziwmvaax75m8g08kz97cv34077bdir80h";
   buildDepends = [
     binary bson cryptohash hashtables liftedBase monadControl mtl
     network parsec random randomShuffle text transformersBase
diff --git a/pkgs/development/libraries/haskell/pipes-aeson/default.nix b/pkgs/development/libraries/haskell/pipes-aeson/default.nix
index aa226aa4e3b..2f4bd30994a 100644
--- a/pkgs/development/libraries/haskell/pipes-aeson/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-aeson/default.nix
@@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
     aeson attoparsec pipes pipesAttoparsec pipesBytestring pipesParse
     transformers
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/k0001/pipes-aeson";
     description = "Encode and decode JSON streams using Aeson and Pipes";
diff --git a/pkgs/development/libraries/haskell/pipes-binary/default.nix b/pkgs/development/libraries/haskell/pipes-binary/default.nix
index e48ad2a96a4..55a332a6c29 100644
--- a/pkgs/development/libraries/haskell/pipes-binary/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-binary/default.nix
@@ -13,6 +13,7 @@ cabal.mkDerivation (self: {
     binary lensFamilyCore pipes pipesParse smallcheck tasty tastyHunit
     tastySmallcheck transformers
   ];
+  jailbreak = true;
   doCheck = false;
   meta = {
     homepage = "https://github.com/k0001/pipes-binary";
diff --git a/pkgs/development/libraries/haskell/pipes-bytestring/default.nix b/pkgs/development/libraries/haskell/pipes-bytestring/default.nix
index 348847e6e9a..4fc5b1993a3 100644
--- a/pkgs/development/libraries/haskell/pipes-bytestring/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-bytestring/default.nix
@@ -1,5 +1,4 @@
-{ cabal, pipes, pipesGroup, pipesParse, transformers
-}:
+{ cabal, pipes, pipesGroup, pipesParse, transformers }:
 
 cabal.mkDerivation (self: {
   pname = "pipes-bytestring";
diff --git a/pkgs/development/libraries/haskell/pipes-text/default.nix b/pkgs/development/libraries/haskell/pipes-text/default.nix
index 7156b889789..4b5a7973c52 100644
--- a/pkgs/development/libraries/haskell/pipes-text/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-text/default.nix
@@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
     pipes pipesBytestring pipesGroup pipesParse pipesSafe profunctors
     streamingCommons text transformers
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/michaelt/text-pipes";
     description = "Text pipes";
diff --git a/pkgs/development/libraries/haskell/quickcheck-property-monad/default.nix b/pkgs/development/libraries/haskell/quickcheck-property-monad/default.nix
index 203f22146b1..0c9a22b5974 100644
--- a/pkgs/development/libraries/haskell/quickcheck-property-monad/default.nix
+++ b/pkgs/development/libraries/haskell/quickcheck-property-monad/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "quickcheck-property-monad";
-  version = "0.2.1";
-  sha256 = "1ln8bcsc8hd8jyhd9rp2j90p5h5nhmwidb5my91p09h43y4z9xds";
+  version = "0.2.2";
+  sha256 = "1liixl4xxpx9f3877sss16m67y5bkwhxdmr8h40rpqdi7dz9s0mj";
   buildDepends = [ either QuickCheck transformers ];
   testDepends = [ doctest filepath QuickCheck ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/shellmate/default.nix b/pkgs/development/libraries/haskell/shellmate/default.nix
new file mode 100644
index 00000000000..37383792de1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/shellmate/default.nix
@@ -0,0 +1,14 @@
+{ cabal, filepath, temporary, time, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "shellmate";
+  version = "0.1.6";
+  sha256 = "17fpl0h58cw5hp6jzrajkl629mw2c6x15cmlcbdxqk9xlxqrg4hr";
+  buildDepends = [ filepath temporary time transformers ];
+  meta = {
+    homepage = "http://github.com/valderman/shellmate";
+    description = "Simple interface for shell scripting in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/simple-sendfile/default.nix b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
index 52c5fd7fe68..604f3f065a9 100644
--- a/pkgs/development/libraries/haskell/simple-sendfile/default.nix
+++ b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "simple-sendfile";
-  version = "0.2.14";
-  sha256 = "00k9cachx7y4811b71f8p468kx018hzvpvw6jgf7zmjhc9v922ni";
+  version = "0.2.15";
+  sha256 = "1fa20h2zcvxwdb5j5a0nnhl38bry1p5ckya1l7lrxx9r2bvjkyj9";
   buildDepends = [ network resourcet ];
   testDepends = [
     conduit conduitExtra hspec HUnit network networkConduit resourcet
diff --git a/pkgs/development/libraries/haskell/snap/server.nix b/pkgs/development/libraries/haskell/snap/server.nix
index a59252fb38c..b72020b7f86 100644
--- a/pkgs/development/libraries/haskell/snap/server.nix
+++ b/pkgs/development/libraries/haskell/snap/server.nix
@@ -1,5 +1,5 @@
 { cabal, attoparsec, attoparsecEnumerator, blazeBuilder
-, blazeBuilderEnumerator, caseInsensitive, enumerator
+, blazeBuilderEnumerator, caseInsensitive, enumerator, HsOpenSSL
 , MonadCatchIOTransformers, mtl, network, snapCore, text, time
 , unixCompat
 }:
@@ -10,9 +10,10 @@ cabal.mkDerivation (self: {
   sha256 = "09399vlqgic0iwmx31c01bjpbdblw8gayxnz71lwzkixqibkbbip";
   buildDepends = [
     attoparsec attoparsecEnumerator blazeBuilder blazeBuilderEnumerator
-    caseInsensitive enumerator MonadCatchIOTransformers mtl network
-    snapCore text time unixCompat
+    caseInsensitive enumerator HsOpenSSL MonadCatchIOTransformers mtl
+    network snapCore text time unixCompat
   ];
+  configureFlags = "-fopenssl";
   meta = {
     homepage = "http://snapframework.com/";
     description = "A fast, iteratee-based, epoll-enabled web server for the Snap Framework";
diff --git a/pkgs/development/libraries/haskell/tables/default.nix b/pkgs/development/libraries/haskell/tables/default.nix
new file mode 100644
index 00000000000..f97512c7f7f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tables/default.nix
@@ -0,0 +1,23 @@
+{ cabal, binary, cereal, comonad, deepseq, doctest, filepath
+, hashable, lens, profunctors, safecopy, transformers
+, transformersCompat, unorderedContainers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "tables";
+  version = "0.4.1";
+  sha256 = "131c97lgni0b9pmkdfd5y0lwrb9yh9qyahknhrim8dzpkkfynk49";
+  buildDepends = [
+    binary cereal comonad deepseq hashable lens profunctors safecopy
+    transformers transformersCompat unorderedContainers
+  ];
+  testDepends = [
+    doctest filepath lens transformers unorderedContainers
+  ];
+  meta = {
+    homepage = "http://github.com/ekmett/tables/";
+    description = "In-memory storage with multiple keys using lenses and traversals";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/unix-compat/default.nix b/pkgs/development/libraries/haskell/unix-compat/default.nix
index 9742b193e7b..a43da3b7194 100644
--- a/pkgs/development/libraries/haskell/unix-compat/default.nix
+++ b/pkgs/development/libraries/haskell/unix-compat/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "unix-compat";
-  version = "0.4.1.1";
-  sha256 = "1cjny6zca5wdj7d56kjkaxlad85kknn91pisrizjy6wngszyaigf";
+  version = "0.4.1.3";
+  sha256 = "1vfw3ffzdk9mshhgyp3dnbn8rihkz8qg6n5zqak8966dsdqhm4xb";
   meta = {
     homepage = "http://github.com/jystic/unix-compat";
     description = "Portable POSIX-compatibility layer";
diff --git a/pkgs/development/libraries/haskell/webdriver/default.nix b/pkgs/development/libraries/haskell/webdriver/default.nix
new file mode 100644
index 00000000000..4af61ece80a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/webdriver/default.nix
@@ -0,0 +1,27 @@
+{ cabal, aeson, attoparsec, base64Bytestring, cond, dataDefault
+, directoryTree, exceptions, filepath, HTTP, liftedBase
+, monadControl, mtl, network, parallel, scientific, temporary, text
+, time, transformers, transformersBase, unorderedContainers, vector
+, zipArchive
+}:
+
+cabal.mkDerivation (self: {
+  pname = "webdriver";
+  version = "0.5.4";
+  sha256 = "0839vw7drjn5iray4ma17f0pfgwx44q10ad8m564jvjgcml4yhvq";
+  buildDepends = [
+    aeson attoparsec base64Bytestring cond dataDefault directoryTree
+    exceptions filepath HTTP liftedBase monadControl mtl network
+    scientific temporary text time transformers transformersBase
+    unorderedContainers vector zipArchive
+  ];
+  testDepends = [ parallel text ];
+  jailbreak = true;
+  doCheck = false;
+  meta = {
+    homepage = "https://github.com/kallisti-dev/hs-webdriver";
+    description = "a Haskell client for the Selenium WebDriver protocol";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/libatomic_ops/default.nix b/pkgs/development/libraries/libatomic_ops/default.nix
new file mode 100644
index 00000000000..0e8dae7bb91
--- /dev/null
+++ b/pkgs/development/libraries/libatomic_ops/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="libatomic_ops";
+    version="7.4.2";
+    name="${baseName}-${version}";
+    hash="1pdm0h1y7bgkczr8byg20r6bq15m5072cqm5pny4f9crc9gn3yh4";
+    url="http://www.ivmaisoft.com/_bin/atomic_ops/libatomic_ops-7.4.2.tar.gz";
+    sha256="1pdm0h1y7bgkczr8byg20r6bq15m5072cqm5pny4f9crc9gn3yh4";
+  };
+  buildInputs = [
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  meta = {
+    inherit (s) version;
+    description = ''A library for semi-portable access to hardware-provided atomic memory update operations'';
+    license = stdenv.lib.licenses.gpl2Plus ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libatomic_ops/default.upstream b/pkgs/development/libraries/libatomic_ops/default.upstream
new file mode 100644
index 00000000000..c9fd4554e4a
--- /dev/null
+++ b/pkgs/development/libraries/libatomic_ops/default.upstream
@@ -0,0 +1 @@
+url https://github.com/ivmai/libatomic_ops/wiki/Download
diff --git a/pkgs/development/libraries/libe-book/0.0.nix b/pkgs/development/libraries/libe-book/0.0.nix
new file mode 100644
index 00000000000..2dc8de67039
--- /dev/null
+++ b/pkgs/development/libraries/libe-book/0.0.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, gperf, pkgconfig, librevenge, libxml2, boost, icu, cppunit
+, libwpd}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="libe-book";
+    version="0.0.3";
+    name="${baseName}-${version}";
+    hash="06xhg319wbqrkj8914npasv5lr7k2904mmy7wa78063mkh31365i";
+    url="mirror://sourceforge/project/libebook/libe-book-0.0.3/libe-book-0.0.3.tar.xz";
+    sha256="06xhg319wbqrkj8914npasv5lr7k2904mmy7wa78063mkh31365i";
+  };
+  buildInputs = [
+    gperf pkgconfig librevenge libxml2 boost icu cppunit libwpd
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  meta = {
+    inherit (s) version;
+    description = ''Library for import of reflowable e-book formats'';
+    license = stdenv.lib.licenses.lgpl21Plus ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libe-book/0.0.upstream b/pkgs/development/libraries/libe-book/0.0.upstream
new file mode 100644
index 00000000000..e2994f52691
--- /dev/null
+++ b/pkgs/development/libraries/libe-book/0.0.upstream
@@ -0,0 +1,4 @@
+url http://sourceforge.net/projects/libebook/files/
+SF_version_dir libe-book-0.0.
+version_link '[.]tar.xz/download$'
+SF_redirect
diff --git a/pkgs/development/libraries/libe-book/default.nix b/pkgs/development/libraries/libe-book/default.nix
new file mode 100644
index 00000000000..6dc384de204
--- /dev/null
+++ b/pkgs/development/libraries/libe-book/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, gperf, pkgconfig, librevenge, libxml2, boost, icu, cppunit}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="libe-book";
+    version="0.1.1";
+    name="${baseName}-${version}";
+    hash="0awv96q92qgxk22w2vrf4vg90cab5qfsrkbhgz252722mrkd5p4a";
+    url="mirror://sourceforge/project/libebook/libe-book-0.1.1/libe-book-0.1.1.tar.xz";
+    sha256="0awv96q92qgxk22w2vrf4vg90cab5qfsrkbhgz252722mrkd5p4a";
+  };
+  buildInputs = [
+    gperf pkgconfig librevenge libxml2 boost icu cppunit
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  meta = {
+    inherit (s) version;
+    description = ''Library for import of reflowable e-book formats'';
+    license = stdenv.lib.licenses.lgpl21Plus ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libe-book/default.upstream b/pkgs/development/libraries/libe-book/default.upstream
new file mode 100644
index 00000000000..30a6d390787
--- /dev/null
+++ b/pkgs/development/libraries/libe-book/default.upstream
@@ -0,0 +1,4 @@
+url http://sourceforge.net/projects/libebook/files/
+SF_version_dir libe-book-
+version_link '[.]tar.xz/download$'
+SF_redirect
diff --git a/pkgs/development/libraries/libmwaw/0.2.nix b/pkgs/development/libraries/libmwaw/0.2.nix
new file mode 100644
index 00000000000..d66414b6814
--- /dev/null
+++ b/pkgs/development/libraries/libmwaw/0.2.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, boost, pkgconfig, cppunit, zlib, libwpg, libwpd, librevenge}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="libmwaw";
+    version="0.2.1";
+    name="${baseName}-${version}";
+    hash="1fil1ll84pq0k3g6rcc2xfg1yrigkljp4ay5p2wpwd9qlmfvvvqn";
+    url="mirror://sourceforge/project/libmwaw/libmwaw/libmwaw-0.2.1/libmwaw-0.2.1.tar.xz";
+    sha256="1fil1ll84pq0k3g6rcc2xfg1yrigkljp4ay5p2wpwd9qlmfvvvqn";
+  };
+  buildInputs = [
+    boost pkgconfig cppunit zlib libwpg libwpd librevenge
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  meta = {
+    inherit (s) version;
+    description = ''Import library for some old mac text documents'';
+    license = stdenv.lib.licenses.mpl20 ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libmwaw/0.2.upstream b/pkgs/development/libraries/libmwaw/0.2.upstream
new file mode 100644
index 00000000000..8ce00ecf767
--- /dev/null
+++ b/pkgs/development/libraries/libmwaw/0.2.upstream
@@ -0,0 +1,4 @@
+url http://sourceforge.net/projects/libmwaw/files/libmwaw/
+SF_version_dir libmwaw-0.2.
+version_link '[.]tar.xz/download$'
+SF_redirect
diff --git a/pkgs/development/libraries/libmwaw/default.nix b/pkgs/development/libraries/libmwaw/default.nix
new file mode 100644
index 00000000000..0a7b76edab1
--- /dev/null
+++ b/pkgs/development/libraries/libmwaw/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, boost, pkgconfig, cppunit, zlib, libwpg, libwpd, librevenge}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="libmwaw";
+    version="0.3.1";
+    name="${baseName}-${version}";
+    hash="0fa6nf4pxl853xnh2kdjw1nk3w6i39diixiampml7g9qygbd0vqb";
+    url="mirror://sourceforge/project/libmwaw/libmwaw/libmwaw-0.3.1/libmwaw-0.3.1.tar.xz";
+    sha256="0fa6nf4pxl853xnh2kdjw1nk3w6i39diixiampml7g9qygbd0vqb";
+  };
+  buildInputs = [
+    boost pkgconfig cppunit zlib libwpg libwpd librevenge
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  meta = {
+    inherit (s) version;
+    description = ''Import library for some old mac text documents'';
+    license = stdenv.lib.licenses.mpl20 ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libmwaw/default.upstream b/pkgs/development/libraries/libmwaw/default.upstream
new file mode 100644
index 00000000000..0db6d23a52f
--- /dev/null
+++ b/pkgs/development/libraries/libmwaw/default.upstream
@@ -0,0 +1,4 @@
+url http://sourceforge.net/projects/libmwaw/files/libmwaw/
+SF_version_dir libmwaw-
+version_link '[.]tar.xz/download$'
+SF_redirect
diff --git a/pkgs/development/libraries/libodfgen/default.nix b/pkgs/development/libraries/libodfgen/default.nix
new file mode 100644
index 00000000000..2e6c58c804e
--- /dev/null
+++ b/pkgs/development/libraries/libodfgen/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, boost, pkgconfig, cppunit, zlib, libwpg, libwpd, librevenge}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="libodfgen";
+    version="0.1.1";
+    name="${baseName}-${version}";
+    hash="1p335m2l19c7glsss30rrm5dxfcyajk9fvj7rsclgn0kmb4y48cm";
+    url="mirror://sourceforge/project/libwpd/libodfgen/libodfgen-0.1.1/libodfgen-0.1.1.tar.xz";
+    sha256="1p335m2l19c7glsss30rrm5dxfcyajk9fvj7rsclgn0kmb4y48cm";
+  };
+  buildInputs = [
+    boost pkgconfig cppunit zlib libwpg libwpd librevenge
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  meta = {
+    inherit (s) version;
+    description = ''A base library for generating ODF documents'';
+    license = stdenv.lib.licenses.mpl20 ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libodfgen/default.upstream b/pkgs/development/libraries/libodfgen/default.upstream
new file mode 100644
index 00000000000..44f66561bd8
--- /dev/null
+++ b/pkgs/development/libraries/libodfgen/default.upstream
@@ -0,0 +1,4 @@
+url http://sourceforge.net/projects/libwpd/files/libodfgen/
+SF_version_dir libodfgen-
+version_link '[.]tar.xz/download$'
+SF_redirect
diff --git a/pkgs/development/libraries/libre/default.nix b/pkgs/development/libraries/libre/default.nix
index cc9139d664e..c67df46e89c 100644
--- a/pkgs/development/libraries/libre/default.nix
+++ b/pkgs/development/libraries/libre/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, zlib, openssl}:
 stdenv.mkDerivation rec {
-  version = "0.4.2";
+  version = "0.4.9";
   name = "libre-${version}";
   src=fetchurl {
     url = "http://www.creytiv.com/pub/re-${version}.tar.gz";
-    sha256 = "1c99ygs46qhd4a0ardxhdyjaw5p8clhzmsm8jydqxnmbakwy518m";
+    sha256 = "1i98z9qw3jpkaq419189vr8h3qcxqlz40dls77rbn4c0agc69703";
   };
   buildInputs = [zlib openssl];
   makeFlags = [
@@ -19,5 +19,9 @@ stdenv.mkDerivation rec {
     platforms = with stdenv.lib.platforms; linux;
     maintainers = with stdenv.lib.maintainers; [raskin];
     license = with stdenv.lib.licenses; bsd3;
+    inherit version;
+    downloadPage = "http://www.creytiv.com/pub/";
+    updateWalker = true;
+    downloadURLRegexp = "/re-.*[.]tar[.].*";
   };
 }
diff --git a/pkgs/development/libraries/librem/default.nix b/pkgs/development/libraries/librem/default.nix
index 04f3cc97bf3..fe49609ce68 100644
--- a/pkgs/development/libraries/librem/default.nix
+++ b/pkgs/development/libraries/librem/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, zlib, openssl, libre}:
 stdenv.mkDerivation rec {
-  version = "0.4.2";
+  version = "0.4.6";
   name = "librem-${version}";
   src=fetchurl {
     url = "http://www.creytiv.com/pub/rem-${version}.tar.gz";
-    sha256 = "55c66118e3026c5ed42d8b9e0c668149baefe83f1aa76394cddba2d72f45d5c7";
+    sha256 = "0rgqy9pqn730ijxvz1gk0virsf6jwjmq02s99jqqrfm3p0g6zs3w";
   };
   buildInputs = [zlib openssl libre];
   makeFlags = [
@@ -20,5 +20,9 @@ stdenv.mkDerivation rec {
     platforms = with stdenv.lib.platforms; linux;
     maintainers = with stdenv.lib.maintainers; [raskin];
     license = with stdenv.lib.licenses; bsd3;
+    inherit version;
+    downloadPage = "http://www.creytiv.com/pub/";
+    updateWalker = true;
+    downloadURLRegexp = "/rem-.*[.]tar[.].*";
   };
 }
diff --git a/pkgs/development/libraries/librevenge/default.nix b/pkgs/development/libraries/librevenge/default.nix
new file mode 100644
index 00000000000..8ddf026a1bc
--- /dev/null
+++ b/pkgs/development/libraries/librevenge/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, boost, pkgconfig, cppunit, zlib}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="librevenge";
+    version="0.0.1";
+    name="${baseName}-${version}";
+    hash="0zgfxvbqf11pypyc0vmcan73x197f7ia1ywin9qqy9hvvmrjgchc";
+    url="mirror://sourceforge/project/libwpd/librevenge/librevenge-0.0.1/librevenge-0.0.1.tar.xz";
+    sha256="0zgfxvbqf11pypyc0vmcan73x197f7ia1ywin9qqy9hvvmrjgchc";
+  };
+  buildInputs = [
+    boost pkgconfig cppunit zlib
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  meta = {
+    inherit (s) version;
+    description = ''A base library for writing document import filters'';
+    license = stdenv.lib.licenses.mpl20 ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/librevenge/default.upstream b/pkgs/development/libraries/librevenge/default.upstream
new file mode 100644
index 00000000000..48b678a392a
--- /dev/null
+++ b/pkgs/development/libraries/librevenge/default.upstream
@@ -0,0 +1,4 @@
+url http://sourceforge.net/projects/libwpd/files/librevenge/
+SF_version_dir librevenge-
+version_link '[.]tar.xz/download$'
+SF_redirect
diff --git a/pkgs/development/libraries/mdds/default.nix b/pkgs/development/libraries/mdds/default.nix
index 8ff2cac539c..296744e1d56 100644
--- a/pkgs/development/libraries/mdds/default.nix
+++ b/pkgs/development/libraries/mdds/default.nix
@@ -1,15 +1,21 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "0.8.1";
+  version = "0.10.3";
   name = "mdds-${version}";
 
   src = fetchurl {
-    url = "http://multidimalgorithm.googlecode.com/files/mdds_${version}.tar.bz2";
-    sha256 = "12w8rs8kb8yffndsw0g7qfjvy4gpnppkdzc7r7vvc9n800ixl1gn";
+    url = "http://kohei.us/files/mdds/src/mdds_${version}.tar.bz2";
+    sha256 = "1hp0472mcsgzrz1v60jpywxrrqmpb8bchfsi7ydmp6vypqnr646v";
   };
 
+  postInstall = ''
+   mkdir -p "$out/lib/pkgconfig"
+   cp "$out/share/pkgconfig/"* "$out/lib/pkgconfig"
+  '';
+
   meta = {
+    inherit version;
     homepage = https://code.google.com/p/multidimalgorithm/;
     description = "A collection of multi-dimensional data structure and indexing algorithm";
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/development/libraries/mdds/default.upstream b/pkgs/development/libraries/mdds/default.upstream
new file mode 100644
index 00000000000..5c07878fdf2
--- /dev/null
+++ b/pkgs/development/libraries/mdds/default.upstream
@@ -0,0 +1,10 @@
+url https://code.google.com/p/multidimalgorithm/wiki/Downloads
+version_link '[.]tar[.][a-z0-9]+$'
+version '.*_([0-9.]+)[.]tar[.].*' '\1'
+
+do_overwrite(){
+  ensure_hash
+  ensure_version
+  set_var_value version $CURRENT_VERSION
+  set_var_value sha256 $CURRENT_HASH
+}
diff --git a/pkgs/development/libraries/nix-plugins/default.nix b/pkgs/development/libraries/nix-plugins/default.nix
new file mode 100644
index 00000000000..3b4f7da94f3
--- /dev/null
+++ b/pkgs/development/libraries/nix-plugins/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, nix }:
+
+stdenv.mkDerivation {
+  name = "nix-plugins-1.0.0";
+
+  src = fetchgit {
+    url = git://github.com/shlevy/nix-plugins.git;
+    rev = "refs/tags/1.0.0";
+    sha256 = "e624de55cabc9014e77f21978d657089ae94ce161584b3d9dc3c9763658421b3";
+  };
+
+  buildInputs = [ nix ];
+
+  buildFlags = [ "NIX_INCLUDE=${nix}/include" ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = {
+    description = "Collection of miscellaneous plugins for the nix expression language";
+    homepage = https://github.com/shlevy/nix-plugins;
+    license = stdenv.lib.licenses.mit;
+    maintaners = [ stdenv.lib.maintainers.shlevy ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/nvidia-texture-tools/default.nix b/pkgs/development/libraries/nvidia-texture-tools/default.nix
new file mode 100644
index 00000000000..852d72cb9aa
--- /dev/null
+++ b/pkgs/development/libraries/nvidia-texture-tools/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchsvn, cmake, libpng, ilmbase, libtiff, zlib, libjpeg
+, mesa, libX11
+}:
+
+stdenv.mkDerivation rec {
+  # No support yet for cg, cuda, glew, glut, openexr.
+
+  name = "nvidia-texture-tools";
+
+  src = fetchsvn {
+    url = "http://nvidia-texture-tools.googlecode.com/svn/trunk";
+    rev = "1388";
+    sha256 = "0pwxqx5l16nqidzm6mwd3rd4gbbknkz6q8cxnvf7sggjpbcvm2d6";
+  };
+
+  buildInputs = [ cmake libpng ilmbase libtiff zlib libjpeg mesa libX11 ];
+
+  patchPhase = ''
+    # Fix build due to missing dependnecies.
+    echo 'target_link_libraries(bc7 nvmath)' >> src/nvtt/bc7/CMakeLists.txt
+    echo 'target_link_libraries(bc6h nvmath)' >> src/nvtt/bc6h/CMakeLists.txt
+
+    # Make a recently added pure virtual function just virtual,
+    # to keep compatibility.
+    sed -i 's/virtual void endImage() = 0;/virtual void endImage() {}/' src/nvtt/nvtt.h
+
+    # Fix building shared libraries.
+    sed -i 's/SET(NVIMAGE_SHARED TRUE)/SET(NVIMAGE_SHARED TRUE)\nSET(NVTHREAD_SHARED TRUE)/' CMakeLists.txt
+  '';
+
+  cmakeFlags = [
+    "-DNVTT_SHARED=TRUE"
+  ];
+
+  meta = {
+    description = "A set of cuda-enabled texture tools and compressors";
+    homepage = "http://developer.nvidia.com/object/texture_tools.html";
+    license = "MIT";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/lisp-modules/lisp-packages.nix b/pkgs/development/lisp-modules/lisp-packages.nix
index f7d6dd2676d..14c996fa05a 100644
--- a/pkgs/development/lisp-modules/lisp-packages.nix
+++ b/pkgs/development/lisp-modules/lisp-packages.nix
@@ -37,7 +37,7 @@ let lispPackages = rec {
     src = pkgs.fetchdarcs {
       url = "http://common-lisp.net/project/iterate/darcs/iterate";
       sha256 = "0m3q0s7h5s8varwx584m2akgdslj14df7kg4w1bj1fbgzsag5m1w";
-      tag=version;
+      rev = version;
     };
     overrides = x: {
       configurePhase="buildPhase(){ true; }";
diff --git a/pkgs/development/tools/etcdctl/default.nix b/pkgs/development/tools/etcdctl/default.nix
new file mode 100644
index 00000000000..a37ef26f541
--- /dev/null
+++ b/pkgs/development/tools/etcdctl/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  version = "0.4.3";
+  name = "etcdctl-${version}";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    export GOPATH=$src
+    go build -v -o etcdctl github.com/coreos/etcdctl
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    mv etcdctl $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A simple command line client for etcd";
+    homepage = http://coreos.com/using-coreos/etcd/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/etcdctl/deps.nix b/pkgs/development/tools/etcdctl/deps.nix
new file mode 100644
index 00000000000..98bdda95a43
--- /dev/null
+++ b/pkgs/development/tools/etcdctl/deps.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "github.com/coreos/etcdctl";
+      src = fetchFromGitHub {
+        owner = "coreos";
+        repo = "etcdctl";
+        rev = "061135b2a02797a6b3c2b6c01183517c1bc76a2c";
+        sha256 = "1hl9cz9ygr2k4d67qj9q1xj0n64b28qjy5sv7zylgg9h9ag2j2p4";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/development/tools/gocode/default.nix b/pkgs/development/tools/gocode/default.nix
new file mode 100644
index 00000000000..6057c288cf6
--- /dev/null
+++ b/pkgs/development/tools/gocode/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "gocode";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    export GOPATH=$src
+    go build -v -o gocode github.com/nsf/gocode
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    mv gocode $out/bin
+  '';
+
+  meta = with lib; {
+    description = "An autocompletion daemon for the Go programming language";
+    homepage = https://github.com/nsf/gocode;
+    license = licenses.mit;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/gocode/deps.nix b/pkgs/development/tools/gocode/deps.nix
new file mode 100644
index 00000000000..4fd0578496d
--- /dev/null
+++ b/pkgs/development/tools/gocode/deps.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "github.com/nsf/gocode";
+      src = fetchFromGitHub {
+        owner = "nsf";
+        repo = "gocode";
+        rev = "9b760fdb16f18eafbe0cd274527efd2bd89dfa78";
+        sha256 = "0d1wl0x8jkaav6lcfzs70cr6gy0p88cbk5n3p19l6d0h9xz464ax";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/development/tools/misc/arcanist/default.nix b/pkgs/development/tools/misc/arcanist/default.nix
index 7e3a3a6d15c..4236cffadfc 100644
--- a/pkgs/development/tools/misc/arcanist/default.nix
+++ b/pkgs/development/tools/misc/arcanist/default.nix
@@ -3,18 +3,18 @@
 let
   libphutil = fetchgit {
     url    = "git://github.com/facebook/libphutil.git";
-    rev    = "0027e97cd6cbafcbdc626b4ac6cf315b9508a14f";
-    sha256 = "4781a4e3e1cb72da24e97f89a9b879803be8e1cf6baa2a4517801dfb893eec26";
+    rev    = "8d1b522333caf4984180ac830be8635437bacedb";
+    sha256 = "e83da381cd8845b64a1cd3244d17736fb736aeabce37efd19754447f47cd4fe1";
   };
   arcanist = fetchgit {
     url    = "git://github.com/facebook/arcanist.git";
-    rev    = "680ec3670cd9d9195debf3e9b674b1b232156e61";
-    sha256 = "a70cde586960676c0d69f4d98e6936633e0d79c37c6f6cc5b0213146a6b18c83";
+    rev    = "0971c728fea89ac45a67e06cdb89349ad8040c60";
+    sha256 = "33e595b81dcbef181d3c71072ecf1c22db3f86f49dbb5276c671caefe83c8594";
   };
 in
 stdenv.mkDerivation rec {
   name    = "arcanist-${version}";
-  version = "20140617";
+  version = "20140627";
 
   src = [ arcanist libphutil ];
   buildInputs = [ php makeWrapper flex ];
diff --git a/pkgs/development/tools/misc/openocd/default.nix b/pkgs/development/tools/misc/openocd/default.nix
index 36a57e8fe96..ea9278c2b3d 100644
--- a/pkgs/development/tools/misc/openocd/default.nix
+++ b/pkgs/development/tools/misc/openocd/default.nix
@@ -1,43 +1,52 @@
-{ stdenv, fetchurl, libftdi, libusb1 }:
+{ stdenv, fetchurl, libftdi, libusb1, pkgconfig }:
+
+# TODO: Add "hidapi" as dependency to gain access to CMSIS-DAP debuggers.
+# Support should be auto-detected, but if not, pass "--enable-cmsis-dap" to
+# configure.
 
 stdenv.mkDerivation rec {
   name = "openocd-${version}";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/openocd/openocd-${version}.tar.bz2";
-    sha256 = "0qwfyd821sy5p0agz0ybgn5nd7vplipw4mhm485ldj1hcmw7n8sj";
+    sha256 = "0byk7hnccgmhw0f84qlkfhps38gp2xp628bfrsc03vq08hr6q1sv";
   };
 
-  configureFlags = [ "--enable-ft2232_libftdi"
-                     "--enable-jlink"
-                     "--enable-rlink"
-                     "--enable-ulink"
-                     "--enable-stlink" ];
-
-  buildInputs = [ libftdi libusb1 ];
+  buildInputs = [ libftdi libusb1 pkgconfig ];
+
+  configureFlags = [
+    "--enable-jtag_vpi"
+    "--enable-usb_blaster_libftdi"
+    "--enable-amtjtagaccel"
+    "--enable-gw16012"
+    "--enable-presto_libftdi"
+    "--enable-openjtag_ftdi"
+    "--enable-oocd_trace"
+    "--enable-buspirate"
+    "--enable-sysfsgpio"
+    "--enable-remote-bitbang"
+  ];
 
   postInstall = ''
     mkdir -p "$out/etc/udev/rules.d"
-    ln -s "$out/share/openocd/contrib/openocd.udev" "$out/etc/udev/rules.d/99-openocd.rules"
+    ln -s "$out/share/openocd/contrib/99-openocd.udev" "$out/etc/udev/rules.d/99-openocd.rules"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
+    description = "Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing";
+    longDescription = ''
+      OpenOCD provides on-chip programming and debugging support with a layered
+      architecture of JTAG interface and TAP support, debug target support
+      (e.g. ARM, MIPS), and flash chip drivers (e.g. CFI, NAND, etc.).  Several
+      network interfaces are available for interactiving with OpenOCD: HTTP,
+      telnet, TCL, and GDB.  The GDB server enables OpenOCD to function as a
+      "remote target" for source-level debugging of embedded systems using the
+      GNU GDB program.
+    '';
     homepage = http://openocd.sourceforge.net/;
-    description = "OpenOCD, an on-chip debugger";
-
-    longDescription =
-      '' OpenOCD provides on-chip programming and debugging support with a
-         layered architecture of JTAG interface and TAP support, debug target
-         support (e.g. ARM, MIPS), and flash chip drivers (e.g. CFI, NAND,
-         etc.).  Several network interfaces are available for interactiving
-         with OpenOCD: HTTP, telnet, TCL, and GDB.  The GDB server enables
-         OpenOCD to function as a "remote target" for source-level debugging
-         of embedded systems using the GNU GDB program.
-      '';
-
-    license = "GPLv2+";
-    maintainers = with stdenv.lib.maintainers; [ viric bjornfor ];
-    platforms = with stdenv.lib.platforms; linux;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ viric bjornfor ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/ocaml/cppo/default.nix b/pkgs/development/tools/ocaml/cppo/default.nix
new file mode 100644
index 00000000000..04475959f3d
--- /dev/null
+++ b/pkgs/development/tools/ocaml/cppo/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, ocaml, findlib}:
+let
+  pname = "cppo";
+  version = "0.9.4";
+  webpage = "http://mjambon.com/${pname}.html";
+in
+stdenv.mkDerivation rec {
+
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://mjambon.com/releases/${pname}/${name}.tar.gz";
+    sha256 = "1m7cbja7cf74l45plqnmjrjjz55v8x65rvx0ikk9mg1ak8lcmvxa";
+  };
+
+  buildInputs = [ ocaml findlib ];
+
+  createFindlibDestdir = true;
+
+  makeFlags = "PREFIX=$(out)";
+
+  preBuild = ''
+    mkdir $out/bin
+  '';
+
+  meta = {
+    description = "The C preprocessor for OCaml";
+    longDescription = ''
+      Cppo is an equivalent of the C preprocessor targeted at the OCaml language and its variants.
+    '';
+    homepage = "${webpage}";
+    license = "bsd";
+  };
+}
+
+
+
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
new file mode 100644
index 00000000000..5cea753dd9c
--- /dev/null
+++ b/pkgs/development/tools/packer/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, gox, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "packer-0.6.0";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
+
+  buildInputs = [ gox ];
+
+  installPhase = ''
+    export GOPATH=$src
+    XC_ARCH=$(go env GOARCH)
+    XC_OS=$(go env GOOS)
+
+    ensureDir $out/bin
+
+    cd $src/src/github.com/mitchellh/packer
+    gox \
+        -os="''${XC_OS}" \
+        -arch="''${XC_ARCH}" \
+        -output "$out/bin/packer-{{.Dir}}" \
+        ./...
+    mv $out/bin/packer{*packer*,}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A tool for creating identical machine images for multiple platforms from a single source configuration";
+    homepage    = "http://www.packer.io";
+    license     = licenses.mpl20;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/packer/deps.nix b/pkgs/development/tools/packer/deps.nix
new file mode 100644
index 00000000000..ce56ecad8a2
--- /dev/null
+++ b/pkgs/development/tools/packer/deps.nix
@@ -0,0 +1,307 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "github.com/mitchellh/packer";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "packer";
+        rev = "12e28f257f66299e3bb13a053bf06ccd236e7efd";
+        sha256 = "1r5j864kr7lx137c23kk5s82znk11hsrgq98zfz5r8sbzq1xpbzw";
+      };
+    }
+    {
+      root = "code.google.com/p/go.crypto";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.crypto";
+        rev = "199";
+        sha256 = "0ibrpc6kknzl6a2g2fkxn03mvrd635lcnvf4a9rk1dfrpjbpcixh";
+      };
+    }
+    {
+      root = "code.google.com/p/goauth2";
+      src = fetchhg {
+        url = "http://code.google.com/p/goauth2";
+        rev = "67";
+        sha256 = "053vajj8hd9869by7z9qfgzn84h6avpcjvyxcyw5jml8dsln4bah";
+      };
+    }
+    {
+      root = "code.google.com/p/google-api-go-client";
+      src = fetchhg {
+        url = "http://code.google.com/p/google-api-go-client";
+        rev = "111";
+        sha256 = "1ib8i1c2mb86lkrr5w7bgwb70gkqmp860wa3h1j8080gxdx3yy16";
+      };
+    }
+    {
+      root = "code.google.com/p/gosshold";
+      src = fetchhg {
+        url = "http://code.google.com/p/gosshold";
+        rev = "2";
+        sha256 = "1ljl8pcxxfz5rv89b2ajd31gxxzifl57kzpksvdhyjdxh98gkvg8";
+      };
+    }
+    {
+      root = "github.com/ActiveState/tail";
+      src = fetchFromGitHub {
+        owner = "ActiveState";
+        repo = "tail";
+        rev = "8dcd1ad3e57aa8ce5614a837cbbdb21945fbb55a";
+        sha256 = "1jxj576dd7mawawwg5nzwf6k7sks0r3lp2x8f6kxaps50n3k1wiz";
+      };
+    }
+    {
+      root = "github.com/howeyc/fsnotify";
+      src = fetchFromGitHub {
+        owner = "howeyc";
+        repo = "fsnotify";
+        rev = "441bbc86b167f3c1f4786afae9931403b99fdacf";
+        sha256 = "1v5vrwhmidxjj6sppinyizf85v60zrmn7i6c9xk0pvx6k0kw2mr2";
+      };
+    }
+    {
+      root = "launchpad.net/tomb";
+      src = fetchbzr {
+        url = "https://launchpad.net/tomb";
+        rev = "17";
+        sha256 = "1cjw0sr9hald1darq6n8akfpkzcgrk3mcq59hga3ibf2lrg35ha0";
+      };
+    }
+    {
+      root = "github.com/going/toolkit";
+      src = fetchFromGitHub {
+        owner = "going";
+        repo = "toolkit";
+        rev = "6185c1893604d52d36a97dd6bb1247ace93a9b80";
+        sha256 = "1kzy5yppalcidsmv5yxmr6lpqplqj07kdqpn77fdp6fbb0y0sg11";
+      };
+    }
+    {
+      root = "code.google.com/p/goprotobuf";
+      src = fetchhg {
+        url = "http://code.google.com/p/goprotobuf";
+        rev = "246";
+        sha256 = "0k4wcv1dnkwcp0gdrajj6kr25f1lg4lgpbi0h5v9l9n7sdwzplf4";
+      };
+    }
+    {
+      root = "github.com/bmizerany/assert";
+      src = fetchFromGitHub {
+        owner = "bmizerany";
+        repo = "assert";
+        rev = "e17e99893cb6509f428e1728281c2ad60a6b31e3";
+        sha256 = "1lfrvqqmb09y6pcr76yjv4r84cshkd4s7fpmiy7268kfi2cvqnpc";
+      };
+    }
+    {
+      root = "github.com/kr/pretty";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "pretty";
+        rev = "bc9499caa0f45ee5edb2f0209fbd61fbf3d9018f";
+        sha256 = "1m61y592qsnwsqn76v54mm6h2pcvh4wlzbzscc1ag645x0j33vvl";
+      };
+    }
+    {
+      root = "github.com/kr/text";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "text";
+        rev = "6807e777504f54ad073ecef66747de158294b639";
+        sha256 = "1wkszsg08zar3wgspl9sc8bdsngiwdqmg3ws4y0bh02sjx5a4698";
+      };
+    }
+    {
+      root = "github.com/kr/pty";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "pty";
+        rev = "67e2db24c831afa6c64fc17b4a143390674365ef";
+        sha256 = "1l3z3wbb112ar9br44m8g838z0pq2gfxcp5s3ka0xvm1hjvanw2d";
+      };
+    }
+    {
+      root = "github.com/xiocode/toolkit";
+      src = fetchFromGitHub {
+        owner = "xiocode";
+        repo = "toolkit";
+        rev = "352fd7c6700074a81056cdfc9e82b3e8c5681ac5";
+        sha256 = "0p33zh57xpxyk2wyp9xahdxyrkq48ysihpr0n9kj713q0dh7x4a3";
+      };
+    }
+    {
+      root = "launchpad.net/gocheck";
+      src = fetchbzr {
+        url = "https://launchpad.net/gocheck";
+        rev = "87";
+        sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0";
+      };
+    }
+    {
+      root = "github.com/hashicorp/go-version";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "go-version";
+        rev = "bb92dddfa9792e738a631f04ada52858a139bcf7";
+        sha256 = "0fl5a6j6nk1xsxwjdpa24a24fxvgnvm3jjlgpyrnmbdn380zil3m";
+      };
+    }
+    {
+      root = "github.com/mitchellh/go-fs";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "go-fs";
+        rev = "faaa223588dd7005e49bf66fa2d19e35c8c4d761";
+        sha256 = "19jsvy35g14f18ckymzxasy0zfd6n99zlqg6grpj1yqdfxfvqn9b";
+      };
+    }
+    {
+      root = "github.com/mitchellh/go-vnc";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "go-vnc";
+        rev = "fc93dd80f5da4ccde0a9d97f0c73e56e04e0cf72";
+        sha256 = "03rwsp1frvfx6c7yxr711lq7jdgsr1gcwg14jw26xvbzzxwjvnsf";
+      };
+    }
+    {
+      root = "github.com/mitchellh/goamz";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "goamz";
+        rev = "c3ff5f734c89f1ea1f290c6aadbbceeeb19a623c";
+        sha256 = "1nyi1p5yh21r161icnwkcgmj2y38b4m1jis47vvjbqinrp45w1gq";
+      };
+    }
+    {
+      root = "github.com/motain/gocheck";
+      src = fetchFromGitHub {
+        owner = "motain";
+        repo = "gocheck";
+        rev = "9beb271d26e640863a5bf4a3c5ea40ccdd466b84";
+        sha256 = "07arpwfdb51b5f7kzqnm5s5ndfmxv5j793hpn30nbdcya46diwjd";
+      };
+    }
+    {
+      root = "github.com/mitchellh/iochan";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "iochan";
+        rev = "b584a329b193e206025682ae6c10cdbe03b0cd77";
+        sha256 = "1fcwdhfci41ibpng2j4c1bqfng578cwzb3c00yw1lnbwwhaq9r6b";
+      };
+    }
+    {
+      root = "github.com/mitchellh/mapstructure";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "mapstructure";
+        rev = "743fcf103ac7cdbc159e540d9d0e3a7889b87d68";
+        sha256 = "1qqxsnxabd7c04n0ip1wmpr2g913qchqrbmblq0shrf5p1hnszgn";
+      };
+    }
+    {
+      root = "github.com/mitchellh/multistep";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "multistep";
+        rev = "162146fc57112954184d90266f4733e900ed05a5";
+        sha256 = "0ydhbxziy9204qr43pjdh88y2jg34g2mhzdapjyfpf8a1rin6dn3";
+      };
+    }
+    {
+      root = "github.com/mitchellh/osext";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "osext";
+        rev = "0dd3f918b21bec95ace9dc86c7e70266cfc5c702";
+        sha256 = "02pczqml6p1mnfdrygm3rs02g0r65qx8v1bi3x24dx8wv9dr5y23";
+      };
+    }
+    {
+      root = "github.com/mitchellh/panicwrap";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "panicwrap";
+        rev = "1aedff2aaa8b8ff7f65ab58e94ef9f593e2e3bf4";
+        sha256 = "05brbpc7kizzbs1a128fmjddh7rdyg0jzzxgbvrl58cgklh4yzaa";
+      };
+    }
+    {
+      root = "github.com/rackspace/gophercloud";
+      src = fetchFromGitHub {
+        owner = "rackspace";
+        repo = "gophercloud";
+        rev = "2285a429874c1365ef6c6d3ceb08b1d428e26aca";
+        sha256 = "0py3h64r4wkl2r9j7xlh81nazpg2b0r5ba9iblh6d1380yk4fa7f";
+      };
+    }
+    {
+      root = "github.com/racker/perigee";
+      src = fetchFromGitHub {
+        owner = "racker";
+        repo = "perigee";
+        rev = "01db3191866051f2ec854c2d876ac1a179d3049c";
+        sha256 = "05pmlgwjynbr59bw50zhrklzhr5pgnij9ym5hqvijjrpw3qd9ivf";
+      };
+    }
+    {
+      root = "github.com/ugorji/go";
+      src = fetchFromGitHub {
+        owner = "ugorji";
+        repo = "go";
+        rev = "71c2886f5a673a35f909803f38ece5810165097b";
+        sha256 = "157f24xnkhclrjwwa1b7lmpj112ynlbf7g1cfw0c657iqny5720j";
+      };
+    }
+    {
+      root = "github.com/vmihailenco/msgpack";
+      src = fetchFromGitHub {
+        owner = "vmihailenco";
+        repo = "msgpack";
+        rev = "20c1b88a6c7fc5432037439f4e8c582e236fb205";
+        sha256 = "1dj5scpfhgnw0yrh0w6jlrb9d03halvsv4l3wgjhazrrimdqf0q0";
+      };
+    }
+    {
+      root = "github.com/ugorji/go-msgpack";
+      src = fetchFromGitHub {
+        owner = "ugorji";
+        repo = "go-msgpack";
+        rev = "75092644046c5e38257395b86ed26c702dc95b92";
+        sha256 = "1bmqi16bfiqw7qhb3d5hbh0dfzhx2bbq1g15nh2pxwxckwh80x98";
+      };
+    }
+    {
+      root = "launchpad.net/mgo";
+      src = fetchbzr {
+        url = "https://launchpad.net/mgo";
+        rev = "2";
+        sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x";
+      };
+    }
+    {
+      root = "github.com/vmihailenco/bufio";
+      src = fetchFromGitHub {
+        owner = "vmihailenco";
+        repo = "bufio";
+        rev = "24e7e48f60fc2d9e99e43c07485d9fff42051e66";
+        sha256 = "0x46qnf2f15v7m0j2dcb16raxjamk5rdc7hqwgyxfr1sqmmw3983";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index 90f7647aa05..30430671342 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
   name = "chromedriver_linux64";
 
   src = fetchurl {
-    url = "http://chromedriver.storage.googleapis.com/2.9/${name}.zip";
-    sha256 = "1m5xl5pz445igvhj31hby97xbizlw05b8fc6w53zq7faw7mzm665";
+    url = "http://chromedriver.storage.googleapis.com/2.10/${name}.zip";
+    sha256 = "1949lhrv4hrmgapvypsgwzyr75w7vpy7nkkkwjkjxn61dkwmx4jw";
   };
 
   buildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index 4b79a500b1f..c53cee4a20e 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -6,7 +6,7 @@ let
     ln -sv /usr/sbin/dtrace $out/bin
   '';
 
-  version = "0.10.28";
+  version = "0.10.29";
 
   # !!! Should we also do shared libuv?
   deps = {
@@ -30,7 +30,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz";
-    sha256 = "043pc6sb3y2b0aiakmmjvzvafgki7wly0id0v1p8y80g3r2cdpdb";
+    sha256 = "0pdib215ldypc149ad03wlfj0i8fwdfydd4q2hd7ry35yw0rsds7";
   };
 
   configureFlags = concatMap sharedConfigureFlags (builtins.attrNames deps);
diff --git a/pkgs/games/0ad/data.nix b/pkgs/games/0ad/data.nix
new file mode 100644
index 00000000000..6f3c85183da
--- /dev/null
+++ b/pkgs/games/0ad/data.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, version, releaseType }:
+
+stdenv.mkDerivation rec {
+  name = "0ad-data-${version}";
+
+  src = fetchurl {
+    url = "http://releases.wildfiregames.com/0ad-${version}-${releaseType}-unix-data.tar.xz";
+    sha256 = "0f16d41e81d7349fb16490f3abbfd38bcb3f2b89648355b2b281c5045ddafadc";
+  };
+
+  patchPhase = ''
+    rm binaries/data/tools/fontbuilder/fonts/*.txt
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/0ad
+    cp -r binaries/data/* $out/share/0ad/
+  '';
+}
diff --git a/pkgs/games/0ad/default.nix b/pkgs/games/0ad/default.nix
new file mode 100644
index 00000000000..efbd59dbbe3
--- /dev/null
+++ b/pkgs/games/0ad/default.nix
@@ -0,0 +1,120 @@
+{ stdenv, stdenvType, callPackage, fetchurl, python27
+, pkgconfig, spidermonkey_24, boost, icu, libxml2, libpng
+, libjpeg, zlib, curl, libogg, libvorbis, enet, miniupnpc
+, openalSoft, mesa, xproto, libX11, libXcursor, nspr, SDL
+, gloox, nvidia-texture-tools
+, withEditor ? true, wxGTK ? null
+}:
+
+assert withEditor -> wxGTK != null;
+
+let
+  version = "0.0.16";
+
+  releaseType = "alpha";
+
+  zeroadData = callPackage ./data.nix { inherit version releaseType; };
+
+  archForPremake =
+    if stdenv.lib.hasPrefix "x86_64-" stdenvType then "x64" else
+    if stdenv.lib.hasPrefix "i686-" stdenvType then "x32" else "ERROR";
+
+in
+stdenv.mkDerivation rec {
+  name = "0ad-${version}";
+
+  src = fetchurl {
+    url = "http://releases.wildfiregames.com/0ad-${version}-${releaseType}-unix-build.tar.xz";
+    sha256 = "cb965ef7e292bc3a2f1f598a9695e16ff4d786398f384a1ec7d5f9bfe2626de5";
+  };
+
+  buildInputs = [
+    zeroadData python27 pkgconfig spidermonkey_24 boost icu
+    libxml2 libpng libjpeg zlib curl libogg libvorbis enet
+    miniupnpc openalSoft mesa xproto libX11 libXcursor nspr
+    SDL gloox nvidia-texture-tools
+  ] ++ stdenv.lib.optional withEditor wxGTK;
+
+  NIX_CFLAGS_COMPILE = [
+    "-I${xproto}/include/X11"
+    "-I${libX11}/include/X11"
+    "-I${libXcursor}/include/X11"
+  ];
+
+  configurePhase = ''
+    # Delete shipped libraries which we don't need.
+    rm -rf libraries/source/{enet,miniupnpc,nvtt,spidermonkey}
+
+    # Build shipped premake.
+    make -C build/premake/premake4/build/gmake.unix
+
+    # Run premake.
+    pushd build/premake
+    ./premake4/bin/release/premake4 \
+      --file="premake4.lua" \
+      --outpath="../workspaces/gcc/" \
+      --platform=${archForPremake} \
+      --os=linux \
+      --with-system-nvtt \
+      --with-system-enet \
+      --with-system-miniupnpc \
+      --with-system-mozjs24 \
+      ${ if withEditor then "--atlas" else "" } \
+      --collada \
+      --bindir="$out"/bin \
+      --libdir="$out"/lib/0ad \
+      --datadir="$out"/share/0ad \
+      gmake
+    popd
+  '';
+
+  buildPhase = ''
+    # Build bundled fcollada.
+    make -C libraries/source/fcollada/src
+
+    # Build 0ad.
+    make -C build/workspaces/gcc verbose=1
+  '';
+
+  installPhase = ''
+    # Copy executables.
+    mkdir -p "$out"/bin
+    cp binaries/system/pyrogenesis "$out"/bin/
+    ((${ toString withEditor })) && cp binaries/system/ActorEditor "$out"/bin/
+
+    # Copy l10n data.
+    mkdir -p "$out"/share/0ad
+    cp -r binaries/data/l10n "$out"/share/0ad/
+
+    # Copy libraries.
+    mkdir -p "$out"/lib/0ad
+    cp binaries/system/libCollada.so "$out"/lib/0ad/
+    ((${ toString withEditor })) && cp binaries/system/libAtlasUI.so "$out"/lib/0ad/
+
+    # Create links to data files.
+    ln -s -t "$out"/share/0ad "${zeroadData}"/share/0ad/*
+
+    # Copy icon.
+    mkdir -p "$out"/share/icons
+    cp build/resources/0ad.png "$out"/share/icons/
+
+    # Copy/fix desktop item.
+    mkdir -p "$out"/share/applications
+    while read LINE; do
+      if [[ $LINE = "Exec=0ad" ]]; then
+        echo "Exec=$out/bin/pyrogenesis"
+      elif [[ $LINE = "Icon=0ad" ]]; then
+        echo "Icon=$out/share/icons/0ad.png"
+      else
+        echo "$LINE"
+      fi
+    done <build/resources/0ad.desktop >"$out"/share/applications/0ad.desktop
+  '';
+
+  meta = {
+    description = "A free, open-source game of ancient warfare";
+    homepage = "http://wildfiregames.com/0ad/";
+    license = [ "GPLv2" "LGPLv2.1" "MIT" "CC BY-SA 3.0" "zlib" ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/pkgs/games/blobby/default.nix b/pkgs/games/blobby/default.nix
index faf7366f249..801b7ea7277 100644
--- a/pkgs/games/blobby/default.nix
+++ b/pkgs/games/blobby/default.nix
@@ -1,17 +1,18 @@
-{stdenv, fetchurl, SDL, SDL_image, mesa, cmake, physfs, boost, zip, zlib}:
+{stdenv, fetchurl, SDL2, SDL2_image, mesa, cmake, physfs, boost, zip, zlib
+, pkgconfig}:
 stdenv.mkDerivation rec {
-  version = "1.0-rc3";
+  version = "1.0";
   name = "blobby-volley-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/blobby/Blobby%20Volley%202%20%28Linux%29/1.0RC3/blobby2-linux-1.0rc3.tar.gz";
-    sha256 = "10f50b2ygw8cb9mp33wpdwv9p6lc10qlwc1xd44bbcby1d9v5ga5";
+    url = "http://softlayer-ams.dl.sourceforge.net/project/blobby/Blobby%20Volley%202%20%28Linux%29/1.0/blobby2-linux-1.0.tar.gz";
+    sha256 = "1qpmbdlyhfbrdsq4vkb6cb3b8mh27fpizb71q4a21ala56g08yms";
   };
 
-  buildInputs = [SDL SDL_image mesa cmake physfs boost zip zlib];
+  buildInputs = [SDL2 SDL2_image mesa cmake physfs boost zip zlib pkgconfig];
 
-  preConfigure = ''
-    sed -re '1i#include <cassert>' -i src/CrossCorrelation.h
+  preConfigure=''
+    sed -e '1i#include <iostream>' -i src/NetworkMessage.cpp
   '';
 
   meta = {
@@ -19,5 +20,8 @@ stdenv.mkDerivation rec {
     license = with stdenv.lib.licenses; bsd3;
     platforms = with stdenv.lib.platforms; linux;
     maintainers = with stdenv.lib.maintainers; [raskin];
+    homepage = "http://blobby.sourceforge.net/";
+    downloadPage = "http://sourceforge.net/projects/blobby/files/Blobby%20Volley%202%20%28Linux%29/";
+    inherit version;
   };
 }
diff --git a/pkgs/games/blobby/default.upstream b/pkgs/games/blobby/default.upstream
new file mode 100644
index 00000000000..e9ab417f5d2
--- /dev/null
+++ b/pkgs/games/blobby/default.upstream
@@ -0,0 +1,8 @@
+url http://sourceforge.net/projects/blobby/files/Blobby%20Volley%202%20%28Linux%29/
+SF_version_dir
+version_link '[.]tar[.][^.]+/download$'
+SF_redirect
+do_overwrite(){
+  do_overwrite_just_version
+  set_var_value url $CURRENT_URL
+}
diff --git a/pkgs/games/dwarf-therapist/default.nix b/pkgs/games/dwarf-therapist/default.nix
index c7e594f89bd..1a026132e52 100644
--- a/pkgs/games/dwarf-therapist/default.nix
+++ b/pkgs/games/dwarf-therapist/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchhg {
     url = "https://code.google.com/r/splintermind-attributes/";
-    tag = rev;
+    inherit rev;
     sha256 = "0a9m967q6p2q3plrl6qysg1xrdmg65jzil6awjh2wr3g10x2x15z";
   };
 
diff --git a/pkgs/games/openspades/default.nix b/pkgs/games/openspades/default.nix
new file mode 100644
index 00000000000..7f11fc82903
--- /dev/null
+++ b/pkgs/games/openspades/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, cmake, curl, glew, makeWrapper, mesa, SDL2,
+  SDL2_image, unzip, wget, zlib, withOpenal ? true, openal ? null }:
+
+assert withOpenal -> openal != null;
+
+stdenv.mkDerivation rec {
+  name = "openspades-${version}";
+  version = "0.0.12";
+
+  src = fetchurl {
+    url = "https://github.com/yvt/openspades/archive/v${version}.tar.gz";
+    sha256 = "1aa848cck8qrp67ha9vrkzm3k24r2aiv1v4dxla6pi22rw98yxzm";
+  };
+
+  nativeBuildInputs = 
+    with stdenv.lib;
+    [ cmake curl glew makeWrapper mesa SDL2 SDL2_image unzip wget zlib ]
+    ++ optional withOpenal openal;
+
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DOPENSPADES_INSTALL_BINARY=bin" ];
+
+  # OpenAL is loaded dynamicly
+  postInstall = 
+    if withOpenal then ''
+      wrapProgram "$out/bin/openspades" \
+        --prefix LD_LIBRARY_PATH : "${openal}/lib"
+    '' 
+    else null;
+
+  meta = with stdenv.lib; {
+    description = "OpenSpades is a compatible client of Ace of Spades 0.75";
+    homepage    = "https://github.com/yvt/openspades/";
+    license     = licenses.gpl3;
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/games/opentyrian/default.nix b/pkgs/games/opentyrian/default.nix
index 5e2ecdbcc5c..cfae6a4bb3e 100644
--- a/pkgs/games/opentyrian/default.nix
+++ b/pkgs/games/opentyrian/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchhg {
     url = "https://opentyrian.googlecode.com/hg/";
-    tag = "13ef8ce47362";
+    rev = "13ef8ce47362";
     md5 = "95c8f9e7ff3d4207f1c692c7cec6c9b0";
   };
 
diff --git a/pkgs/misc/emulators/wine/winetricks.nix b/pkgs/misc/emulators/wine/winetricks.nix
index f47902cd0bf..3dd3d4bc731 100644
--- a/pkgs/misc/emulators/wine/winetricks.nix
+++ b/pkgs/misc/emulators/wine/winetricks.nix
@@ -2,13 +2,13 @@
 , cabextract, unzip, p7zip, gnused, gnugrep, bash } :
 
 stdenv.mkDerivation rec {
-  rev = "1083";
+  rev = "1199";
   name = "winetricks-${rev}";
 
   src = fetchsvn {
     url = "http://winetricks.googlecode.com/svn/trunk";
     inherit rev;
-    sha256 = "0zakwn7g2ni6xw92i1y3pngyaxsr93714s4jy11adf7rxdkj0a32";
+    sha256 = "1kji1n6ps09g8xnl9m7vqk3vkl03abzwnc43c52i8p0adnv06khb";
   };
 
   buildInputs = [ perl which ];
@@ -28,4 +28,3 @@ stdenv.mkDerivation rec {
     maintainers = with stdenv.lib.maintainers; [ the-kenny ];
   };
 }
-
diff --git a/pkgs/os-specific/linux/broadcom-sta/cfg80211_ibss_joined-channel-parameter.patch b/pkgs/os-specific/linux/broadcom-sta/cfg80211_ibss_joined-channel-parameter.patch
new file mode 100644
index 00000000000..5596c0ebcf2
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/cfg80211_ibss_joined-channel-parameter.patch
@@ -0,0 +1,17 @@
+Add channel parameter to cfg80211_ibss_joined call
+
+--- a/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -1841,7 +1841,12 @@ wl_notify_connect_status(struct wl_cfg80211_priv *wl, struct net_device *ndev,
+ 			wl_get_assoc_ies(wl);
+ 			memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
+ 			wl_update_bss_info(wl);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0)
+ 			cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
++#else
++			cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid,
++			                     &wl->conf->channel, GFP_KERNEL);
++#endif
+ 			set_bit(WL_STATUS_CONNECTED, &wl->status);
+ 			wl->profile->active = true;
+ 		}
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index 5955543f8e1..1ed13c2e450 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
   patches = [
     ./linux-recent.patch
     ./license.patch
+    ./cfg80211_ibss_joined-channel-parameter.patch
   ];
 
   makeFlags = "KBASE=${kernel.dev}/lib/modules/${kernel.modDirVersion}";
diff --git a/pkgs/os-specific/linux/iomelt/default.nix b/pkgs/os-specific/linux/iomelt/default.nix
new file mode 100644
index 00000000000..df267d304c1
--- /dev/null
+++ b/pkgs/os-specific/linux/iomelt/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, fetchurl }:
+
+let version = "0.7";
+in stdenv.mkDerivation {
+  name = "iomelt-${version}";
+  src = fetchurl {
+    url = "http://iomelt.com/s/iomelt-${version}.tar.gz";
+    sha256 = "1jhrdm5b7f1bcbrdwcc4yzg26790jxl4d2ndqiwd9brl2g5537im";
+  };
+
+  preBuild = ''
+    ensureDir $out/bin
+    ensureDir $out/share/man/man1
+
+    substituteInPlace Makefile \
+      --replace /usr $out
+  '';
+
+  meta = with lib; {
+    description = "A simple yet effective way to benchmark disk IO in Linux systems";
+    homepage    = http://www.iomelt.com;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms   = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index b089e962397..7e7dd2dfda9 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -78,17 +78,17 @@ with stdenv.lib;
   CLS_U32_MARK y
 
   # Wireless networking.
-  CFG80211_WEXT y # Without it, ipw2200 drivers don't build
-  IPW2100_MONITOR y # support promiscuous mode
-  IPW2200_MONITOR y # support promiscuous mode
-  HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
-  HOSTAP_FIRMWARE_NVRAM y
-  ATH9K_PCI y # Detect Atheros AR9xxx cards on PCI(e) bus
-  ATH9K_AHB y # Ditto, AHB bus
+  CFG80211_WEXT? y # Without it, ipw2200 drivers don't build
+  IPW2100_MONITOR? y # support promiscuous mode
+  IPW2200_MONITOR? y # support promiscuous mode
+  HOSTAP_FIRMWARE? y # Support downloading firmware images with Host AP driver
+  HOSTAP_FIRMWARE_NVRAM? y
+  ATH9K_PCI? y # Detect Atheros AR9xxx cards on PCI(e) bus
+  ATH9K_AHB? y # Ditto, AHB bus
   ${optionalString (versionAtLeast version "3.2") ''
-    B43_PHY_HT y
+    B43_PHY_HT? y
   ''}
-  BCMA_HOST_PCI y
+  BCMA_HOST_PCI? y
 
   # Enable various FB devices.
   FB y
@@ -110,7 +110,7 @@ with stdenv.lib;
   # Enable KMS for devices whose X.org driver supports it.
   DRM_I915_KMS y
   ${optionalString (versionOlder version "3.9") ''
-    DRM_RADEON_KMS y
+    DRM_RADEON_KMS? y
   ''}
   # Hybrid graphics support
   VGA_SWITCHEROO y
@@ -145,18 +145,18 @@ with stdenv.lib;
   EXT2_FS_XIP y # Ext2 execute in place support
   EXT4_FS_POSIX_ACL y
   EXT4_FS_SECURITY y
-  REISERFS_FS_XATTR y
-  REISERFS_FS_POSIX_ACL y
-  REISERFS_FS_SECURITY y
-  JFS_POSIX_ACL y
-  JFS_SECURITY y
-  XFS_QUOTA y
-  XFS_POSIX_ACL y
-  XFS_RT y # XFS Realtime subvolume support
-  OCFS2_DEBUG_MASKLOG n
+  REISERFS_FS_XATTR? y
+  REISERFS_FS_POSIX_ACL? y
+  REISERFS_FS_SECURITY? y
+  JFS_POSIX_ACL? y
+  JFS_SECURITY? y
+  XFS_QUOTA? y
+  XFS_POSIX_ACL? y
+  XFS_RT? y # XFS Realtime subvolume support
+  OCFS2_DEBUG_MASKLOG? n
   BTRFS_FS_POSIX_ACL y
   UBIFS_FS_XATTR? y
-  UBIFS_FS_ADVANCED_COMPR y
+  UBIFS_FS_ADVANCED_COMPR? y
   NFSD_V2_ACL y
   NFSD_V3 y
   NFSD_V3_ACL y
@@ -192,14 +192,14 @@ with stdenv.lib;
   ${optionalString (versionAtLeast version "3.3" && versionOlder version "3.13") ''
     AUDIT_LOGINUID_IMMUTABLE y
   ''}
-  B43_PCMCIA y
+  B43_PCMCIA? y
   BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
   BLK_DEV_IDEACPI y # IDE ACPI support
   BLK_DEV_INTEGRITY y
   BSD_PROCESS_ACCT_V3 y
-  BT_HCIUART_BCSP y
-  BT_HCIUART_H4 y # UART (H4) protocol support
-  BT_HCIUART_LL y
+  BT_HCIUART_BCSP? y
+  BT_HCIUART_H4? y # UART (H4) protocol support
+  BT_HCIUART_LL? y
   BT_RFCOMM_TTY? y # RFCOMM TTY support
   CRASH_DUMP? n
   ${optionalString (versionOlder version "3.1") ''
@@ -213,10 +213,10 @@ with stdenv.lib;
   FUSION y # Fusion MPT device support
   IDE_GD_ATAPI y # ATAPI floppy support
   IRDA_ULTRA y # Ultra (connectionless) protocol
-  JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
-  JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
-  JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
-  JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
+  JOYSTICK_IFORCE_232? y # I-Force Serial joysticks and wheels
+  JOYSTICK_IFORCE_USB? y # I-Force USB joysticks and wheels
+  JOYSTICK_XPAD_FF? y # X-Box gamepad rumble support
+  JOYSTICK_XPAD_LEDS? y # LED Support for Xbox360 controller 'BigX' LED
   LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
   LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
   LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
@@ -315,8 +315,8 @@ with stdenv.lib;
   ''}
 
   # Enable the 9P cache to speed up NixOS VM tests.
-  9P_FSCACHE y
-  9P_FS_POSIX_ACL y
+  9P_FSCACHE? y
+  9P_FS_POSIX_ACL? y
 
   # Enable transparent support for huge pages.
   TRANSPARENT_HUGEPAGE? y
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 8ba677d6dfe..08611e44856 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -95,6 +95,8 @@ let
     '';
 
     installPhase = "mv .config $out";
+
+    enableParallelBuilding = true;
   };
 
   kernel = buildLinux {
diff --git a/pkgs/os-specific/linux/kernel/linux-3.10.nix b/pkgs/os-specific/linux/kernel/linux-3.10.nix
index a08ad5ea53d..6ee5345f498 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.10.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.10.44";
+  version = "3.10.45";
   extraMeta.branch = "3.10";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "06brvvxkgx4im4jzyl08y8hifgqb8ndxlhdkczwlqx3cgs6769c0";
+    sha256 = "0bsmqszc86d33g6qpwgrdckgrd1x37087br3vsc5151s2p22rk1f";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.12.nix b/pkgs/os-specific/linux/kernel/linux-3.12.nix
index 33bed4213b4..7d5ff606eb9 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.12.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.12.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.12.22";
+  version = "3.12.23";
   extraMeta.branch = "3.12";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0c9rw11iihjimqb6mdmwn4q67ds7jg4qibj5ijj5pdmkdqzj7g54";
+    sha256 = "0aa9vnyk4p6hg4fp4rm4a95cn4p16j2dfrhc3cfznpcdkpi5q9m7";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.13.nix b/pkgs/os-specific/linux/kernel/linux-3.13.nix
deleted file mode 100644
index d84cec235ce..00000000000
--- a/pkgs/os-specific/linux/kernel/linux-3.13.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, ... } @ args:
-
-import ./generic.nix (args // rec {
-  version = "3.13.11";
-  extraMeta.branch = "3.13";
-
-  src = fetchurl {
-    url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "1nhi5m0nnrb7v2gqpa3181p32k5hm5jwkf647vs80r14750gxlpw";
-  };
-
-  features.iwlwifi = true;
-  features.efiBootStub = true;
-  features.needsCifsUtils = true;
-  features.canDisableNetfilterConntrackHelpers = true;
-  features.netfilterRPFilter = true;
-} // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-3.14.nix b/pkgs/os-specific/linux/kernel/linux-3.14.nix
index 4fbca05501d..f867309529f 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.14.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.14.8";
+  version = "3.14.9";
   extraMeta.branch = "3.14";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0l2k7c8i3vzcs8mwdy3h1yzlqli6vr56wbn6bxp4nyvxkwxlhs5d";
+    sha256 = "0rm68hzkxzzh6a1nw6fsxbg43d4b88957ail7b9ga589cagf3p94";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.15.nix b/pkgs/os-specific/linux/kernel/linux-3.15.nix
index 531b85b789a..68f58f83a2f 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.15.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.15.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.15.1";
+  version = "3.15.2";
   extraMeta.branch = "3.15";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0bmzag945bb9v20xc2f6i4syx456prai3qj5cxhm8cb76wby4s8b";
+    sha256 = "09nq8q84xn6lwzdnn36pzfiqhn1lapi60yxn4hifb7v9ymhc5sv6";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.4.nix b/pkgs/os-specific/linux/kernel/linux-3.4.nix
index 8308340f3f5..27efaac4488 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.4.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.4.94";
+  version = "3.4.95";
   extraMeta.branch = "3.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0kc1s38zij39z8mrk9x29wizhbn4i7c7gyd796s1ib4826p3k48k";
+    sha256 = "1rv2jsfc2m12nk293v12rvvqnicyh73pwp6bcb28jdqdhm95k6l6";
   };
 
   kernelPatches = args.kernelPatches ++
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index bafac2fc58d..f44f3d32792 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -2,13 +2,13 @@
 
 import ./generic.nix (args // rec {
   # Reason to add:  RTL8192EE
-  version = "3.16-rc2";
-  modDirVersion = "3.16.0-rc2";
+  version = "3.16-rc3";
+  modDirVersion = "3.16.0-rc3";
   extraMeta.branch = "3.16";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/testing/linux-${version}.tar.xz";
-    sha256 = "12bxf62qqsf471ak6rj4gbvvjsybsamgwj9p8bphr98dp14js27w";
+    sha256 = "17jgv1hnx2im68f8721x11yfg8mpas7lsxg0j00qxv2fc6km2glm";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index eb4d7a100be..5a6a7d15c3c 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -60,17 +60,17 @@ rec {
   };
 
   grsecurity_stable = grsecPatch
-    { kversion  = "3.14.8";
-      revision  = "201406222110";
+    { kversion  = "3.14.9";
+      revision  = "201406262057";
       branch    = "stable";
-      sha256    = "0jar710hqpjkp4g3ldrbcpgc170v9qp8ykajq5fi8mxx4j54gjwa";
+      sha256    = "0rrcmlaz69028fwl45xnif1dc9wnl7lnrry1280mdg764wrc6g0n";
     };
 
   grsecurity_unstable = grsecPatch
-    { kversion  = "3.15.1";
-      revision  = "201406222112";
+    { kversion  = "3.15.2";
+      revision  = "201406262058";
       branch    = "test";
-      sha256    = "04sbpmzgfgn7hjiln9baynpgr7k67lm0b5wn2z8i2jsjigfmv0r4";
+      sha256    = "02r9xasg1hiw3bynwh50r9cqjzwffmhsyg4gmiyzs58izivl1hvd";
     };
 
   grsec_fix_path =
diff --git a/pkgs/os-specific/linux/keyutils/default.nix b/pkgs/os-specific/linux/keyutils/default.nix
index 8673981ecd5..fc05fc23452 100644
--- a/pkgs/os-specific/linux/keyutils/default.nix
+++ b/pkgs/os-specific/linux/keyutils/default.nix
@@ -1,29 +1,28 @@
 { stdenv, fetchurl, gnumake, file }:
 
 stdenv.mkDerivation rec {
-  name = "keyutils-1.5.8";
+  name = "keyutils-1.5.9";
   
   src = fetchurl {
     url = "http://people.redhat.com/dhowells/keyutils/${name}.tar.bz2";
-    sha256 = "17419fr7mph8wlhxpqb1bdrghz0db15bmjdgxg1anfgbf9ra6zbc";
+    sha256 = "1bl3w03ygxhc0hz69klfdlwqn33jvzxl1zfl2jmnb2v85iawb8jd";
   };
 
   buildInputs = [ file ];
 
   patchPhase = ''
-    sed -i -e "s,/usr/bin/make,${gnumake}/bin/make," \
-        -e "s, /etc, $out/etc," \
-        -e "s, /bin, $out/bin," \
-        -e "s, /sbin, $out/sbin," \
-        -e "s, /lib, $out/lib," \
-        -e "s, /lib64, $out/lib64," \
-        -e "s,/usr,$out," \
+    sed -i -e "s, /usr/bin/make, ${gnumake}/bin/make," \
+        -e "s, /usr, ," \
+        -e "s,\$(LNS) \$(LIBDIR)/\$(SONAME),\$(LNS) \$(SONAME)," \
         Makefile
   '';
+
+  installPhase = "make install DESTDIR=$out";
   
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://people.redhat.com/dhowells/keyutils/;
     description = "Tools used to control the Linux kernel key management system";
-    license = "GPLv2+";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix
index 95f482a8230..734613c44ac 100644
--- a/pkgs/os-specific/linux/syslinux/default.nix
+++ b/pkgs/os-specific/linux/syslinux/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, nasm, perl, libuuid }:
 
 stdenv.mkDerivation rec {
-  name = "syslinux-4.07";
+  name = "syslinux-6.02";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/utils/boot/syslinux/4.xx/${name}.tar.bz2";
-    sha256 = "0nm0lx45h4c5nxnsr538bvryzvqvj1p1p4vqxzd8nlcv47ja8h0j";
+    url = "mirror://kernel/linux/utils/boot/syslinux/${name}.tar.xz";
+    sha256 = "0y2ld2s64s6vc5pf8rj36w71rq2cfax3c1iafp0w1qbjpxy1p8xg";
   };
 
   patches = [ ./perl-deps.patch ];
@@ -14,15 +14,27 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  preBuild =
-    ''
-      substituteInPlace gpxe/src/Makefile.housekeeping --replace /bin/echo $(type -P echo)
-      substituteInPlace gpxe/src/Makefile --replace /usr/bin/perl $(type -P perl)
-      makeFlagsArray=(BINDIR=$out/bin SBINDIR=$out/sbin LIBDIR=$out/lib INCDIR=$out/include DATADIR=$out/share MANDIR=$out/share/man PERL=perl)
-    '';
+  preBuild = ''
+    substituteInPlace Makefile --replace /bin/pwd $(type -P pwd)
+    substituteInPlace gpxe/src/Makefile.housekeeping --replace /bin/echo $(type -P echo)
+    substituteInPlace gpxe/src/Makefile --replace /usr/bin/perl $(type -P perl)
+  '';
 
-  meta = {
+  makeFlags = [
+    "BINDIR=$(out)/bin"
+    "SBINDIR=$(out)/sbin"
+    "LIBDIR=$(out)/lib"
+    "INCDIR=$(out)/include"
+    "DATADIR=$(out)/share"
+    "MANDIR=$(out)/share/man"
+    "PERL=perl"
+    "bios"
+  ];
+
+  meta = with stdenv.lib; {
     homepage = http://www.syslinux.org/;
     description = "A lightweight bootloader";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/etcd/default.nix b/pkgs/servers/etcd/default.nix
new file mode 100644
index 00000000000..1fb21f2b8ab
--- /dev/null
+++ b/pkgs/servers/etcd/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  version = "0.4.3";
+  name = "etcd-${version}";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    export GOPATH=$src
+    go build -v -o etcd github.com/coreos/etcd
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    mv etcd $out/bin/etcd
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A highly-available key value store for shared configuration and service discovery";
+    homepage = http://coreos.com/using-coreos/etcd/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/etcd/deps.nix b/pkgs/servers/etcd/deps.nix
new file mode 100644
index 00000000000..e9fd4a50d3e
--- /dev/null
+++ b/pkgs/servers/etcd/deps.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "github.com/coreos/etcd";
+      src = fetchFromGitHub {
+        owner = "coreos";
+        repo = "etcd";
+        rev = "9970141f76241c909977af7bafe7b6f2c4923de8";
+        sha256 = "1bva46gfy4rkfw8k8pb3lsfzfg16csds01f0nvfrkh99pr7sp0sy";
+      };
+    }
+    {
+      root = "github.com/stathat/go";
+      src = fetchFromGitHub {
+        owner = "stathat";
+        repo = "go";
+        rev = "01d012b9ee2ecc107cb28b6dd32d9019ed5c1d77";
+        sha256 = "0mrn70wjfcs4rfkmga3hbfqmbjk33skcsc8pyqxp02bzpwdpc4bi";
+      };
+    }
+    {
+      root = "github.com/stretchr/objx";
+      src = fetchFromGitHub {
+        owner = "stretchr";
+        repo = "objx";
+        rev = "cbeaeb16a013161a98496fad62933b1d21786672";
+        sha256 = "1xn7iibjik77h6h0jilfvcjkkzaqz45baf44p3rb2i03hbmkqkp1";
+      };
+    }
+    {
+      root = "github.com/stretchr/testify";
+      src = fetchFromGitHub {
+        owner = "stretchr";
+        repo = "testify";
+        rev = "3e03dde72495487a4deb74152ac205d0619fbc8d";
+        sha256 = "1xd9sbi6y68cfwkxgybcz0dbfx4r6jmxq51wjj6six3wm9p7m8ls";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/servers/fleet/default.nix b/pkgs/servers/fleet/default.nix
new file mode 100644
index 00000000000..627c1ff0cf9
--- /dev/null
+++ b/pkgs/servers/fleet/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  version = "0.5.0";
+  name = "fleet-${version}";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    export GOPATH=$src
+    go build -v -o fleet github.com/coreos/fleet
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    mv fleet $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A distributed init system";
+    homepage = http://coreos.com/using-coreos/clustering/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/fleet/deps.nix b/pkgs/servers/fleet/deps.nix
new file mode 100644
index 00000000000..d0529db37a2
--- /dev/null
+++ b/pkgs/servers/fleet/deps.nix
@@ -0,0 +1,81 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "code.google.com/p/gogoprotobuf";
+      src = fetchgit {
+        url = "https://code.google.com/p/gogoprotobuf";
+        rev = "7fd1620f09261338b6b1ca1289ace83aee0ec946";
+        sha256 = "0f13y29zpxkv7b7kwnszygvg04fd5m9r8vpkl1wa3gxnc6az54i9";
+      };
+    }
+    {
+      root = "github.com/coreos/etcd";
+      src = fetchFromGitHub {
+        owner = "coreos";
+        repo = "etcd";
+        rev = "1359d29fa451b059bb76b51260610d92853e7316";
+        sha256 = "0iz3vmf3nfp1i5r8al207wm0jvj68i47a814w90b1jl8g4f2amp7";
+      };
+    }
+    {
+      root = "github.com/coreos/fleet";
+      src = fetchFromGitHub {
+        owner = "coreos";
+        repo = "fleet";
+        rev = "da0a02ed3b07d83b0b542dcdee56e08d2457ab9c";
+        sha256 = "0b8aq4ppyv1fjvf3f2qjq80mvjvf9r104bf4048wgsrs0pccs6s8";
+      };
+    }
+    {
+      root = "github.com/coreos/raft";
+      src = fetchFromGitHub {
+        owner = "coreos";
+        repo = "raft";
+        rev = "67dca7288f1665b59860421673d46314f4348e45";
+        sha256 = "1l27kjkwcxgx89d2m537plagbp1wh6qlzxirza6lliblrgxry6mw";
+      };
+    }
+    {
+      root = "github.com/stathat/go";
+      src = fetchFromGitHub {
+        owner = "stathat";
+        repo = "go";
+        rev = "01d012b9ee2ecc107cb28b6dd32d9019ed5c1d77";
+        sha256 = "0mrn70wjfcs4rfkmga3hbfqmbjk33skcsc8pyqxp02bzpwdpc4bi";
+      };
+    }
+    {
+      root = "github.com/stretchr/objx";
+      src = fetchFromGitHub {
+        owner = "stretchr";
+        repo = "objx";
+        rev = "cbeaeb16a013161a98496fad62933b1d21786672";
+        sha256 = "1xn7iibjik77h6h0jilfvcjkkzaqz45baf44p3rb2i03hbmkqkp1";
+      };
+    }
+    {
+      root = "github.com/stretchr/testify";
+      src = fetchFromGitHub {
+        owner = "stretchr";
+        repo = "testify";
+        rev = "3e03dde72495487a4deb74152ac205d0619fbc8d";
+        sha256 = "1xd9sbi6y68cfwkxgybcz0dbfx4r6jmxq51wjj6six3wm9p7m8ls";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
+
diff --git a/pkgs/servers/http/nix-binary-cache/default.nix b/pkgs/servers/http/nix-binary-cache/default.nix
new file mode 100644
index 00000000000..b007c09b056
--- /dev/null
+++ b/pkgs/servers/http/nix-binary-cache/default.nix
@@ -0,0 +1,61 @@
+{stdenv, fetchurl
+, coreutils, findutils, nix, xz, bzip2, gnused, gnugrep, openssl
+, lighttpd, iproute }:
+stdenv.mkDerivation rec {
+  version = "2014-06-29-1";
+  name = "nix-binary-cache-${version}";
+
+  phases = ["installPhase"];
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    substitute "${./nix-binary-cache.cgi.in}" "$out"/bin/nix-binary-cache.cgi \
+      --replace @out@ "$out/bin" \
+      --replace @shell@ "${stdenv.shell}" \
+      --replace @coreutils@ "${coreutils}/bin" \
+      --replace @findutils@ "${findutils}/bin" \
+      --replace @nix@ "${nix}/bin" \
+      --replace @xz@ "${xz}/bin" \
+      --replace @bzip2@ "${bzip2}/bin" \
+      --replace @gnused@ "${gnused}/bin" \
+      --replace @gnugrep@ "${gnugrep}/bin" \
+      --replace @openssl@ "${openssl}/bin" \
+      --replace @lighttpd@ "${lighttpd}/sbin" \
+      --replace @iproute@ "${iproute}/sbin" \
+      --replace "xXxXx" "xXxXx"
+
+    chmod a+x "$out/bin/nix-binary-cache.cgi"
+
+    substitute "${./nix-binary-cache-start.in}" "$out"/bin/nix-binary-cache-start \
+      --replace @out@ "$out/bin" \
+      --replace @shell@ "${stdenv.shell}" \
+      --replace @coreutils@ "${coreutils}/bin" \
+      --replace @findutils@ "${findutils}/bin" \
+      --replace @nix@ "${nix}/bin" \
+      --replace @xz@ "${xz}/bin" \
+      --replace @bzip2@ "${bzip2}/bin" \
+      --replace @gnused@ "${gnused}/bin" \
+      --replace @gnugrep@ "${gnugrep}/bin" \
+      --replace @openssl@ "${openssl}/bin" \
+      --replace @lighttpd@ "${lighttpd}/sbin" \
+      --replace @iproute@ "${iproute}/sbin" \
+      --replace "xXxXx" "xXxXx"
+
+    chmod a+x "$out/bin/nix-binary-cache-start"
+  '';
+
+  meta = {
+    description = ''A set of scripts to serve the Nix store as a binary cache'';
+    longDescription = ''
+      This package installs a CGI script that serves Nix store path in the 
+      binary cache format. It also installs a launcher called 
+      nix-binary-cache-start that can be run without any setup to launch
+      a binary cache and get the example arguments for its usage.
+    '';
+    maintainers = [stdenv.lib.maintainers.raskin];
+    license = stdenv.lib.licenses.gpl2Plus;
+    inherit version;
+    platforms = stdenv.lib.platforms.all;
+    hydraPlatforms = [];
+  };
+}
diff --git a/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in b/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in
new file mode 100644
index 00000000000..2a2356f39ab
--- /dev/null
+++ b/pkgs/servers/http/nix-binary-cache/nix-binary-cache-start.in
@@ -0,0 +1,105 @@
+#! @shell@
+
+parse_opts () {
+  while @coreutils@/test -n "$1" && @coreutils@/test "x$1" != x-- ; do 
+    case "$1" in
+      --store-dir)
+        shift;
+        echo "STORE_DIR='$1'"
+        shift;
+        ;;
+      --priority)
+        shift;
+        echo "PRIORITY=$1";
+        shift;
+        ;;
+      --compression)
+        shift;
+        echo "COMPRESSION=$1";
+        shift;
+        ;;
+      --key)
+        shift;
+        echo "KEY=${1#*:}"
+        echo "KEYNAME=${1%%:*}"
+        shift;
+        ;;
+      --nix-remote)
+        shift;
+        echo "NIX_REMOTE=$1"
+        shift;
+        ;;
+      --mass-query)
+        shift;
+        echo "MASS_QUERY=$1"
+        shift;
+        ;;
+      --port)
+        shift;
+        echo "PORT=$1"
+        shift;
+        ;;
+      --help)
+        cat <<EOF >&2
+"$0": start the Nix binary cache serving the Nix store dynamically.
+
+Recognized options:
+
+--port           server port
+--store-dir      served Nix store
+
+--priority       binary cache priority
+--mass-query     0 or 1 - whether binary cache expects queries for nix-env -qas
+
+--compression    compression to use: bzip2 or xz
+--key            name:/path/to/key - key to use for narinfo signing
+
+--nix-remote     'daemon' or empty string '' - whether to use daemon for store
+                   operations
+
+--help           show help and exit
+EOF
+	exit 1;
+        ;;
+      *) shift ;;
+    esac;
+  done
+}
+
+workingdir="$(@coreutils@/mktemp -d)"
+cd "$workingdir"
+
+PORT=8080
+(echo "STORE_DIR=${NIX_STORE_DIR:-/nix/store}"; parse_opts "$@" 
+  ) > nix-binary-cache.conf || exit
+. "$workingdir/nix-binary-cache.conf"
+
+echo "
+server.port = $PORT
+server.modules = ( \"mod_cgi\", \"mod_setenv\", )
+server.document-root = \"$workingdir\"
+cgi.assign = ( \".cgi\" => \"@shell@\" )
+setenv.add-request-header = ( \"NIX_BINARY_CACHE_CONFIG\" => \"$workingdir/nix-binary-cache.conf\" )
+" > lighttpd.conf
+
+cp @out@/nix-binary-cache.cgi . 
+cp @out@/nix-binary-cache.cgi ./nix-bc.cgi 
+
+ip="$(@iproute@/ip a | @gnugrep@/grep 'inet .* scope global' | @coreutils@/head -n 1)"
+ip="${ip%%/*}"
+ip="${ip##* }"
+
+url="http://$ip:$PORT/nix-bc.cgi?"
+
+echo "Working directory: $workingdir"
+echo
+echo "Address of the binary cache: $url"
+echo
+echo "Usage example: NIX_REMOTE= nix-store --option binary-caches '$url'"
+echo
+echo
+
+@lighttpd@/lighttpd -D -f "$workingdir/lighttpd.conf"
+
+cd /
+@coreutils@/rm -rf "$workingdir"
diff --git a/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in b/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in
new file mode 100644
index 00000000000..219ab9763ad
--- /dev/null
+++ b/pkgs/servers/http/nix-binary-cache/nix-binary-cache.cgi.in
@@ -0,0 +1,97 @@
+#! @shell@
+
+STORE_DIR="${NIX_STORE_DIR:-/nix/store}"
+MASS_QUERY=0
+PRIORITY=75
+COMPRESSION=bzip2
+KEY=
+KEYNAME=na
+
+export NIX_REMOTE=daemon
+
+config="${NIX_BINARY_CACHE_CONFIG:-${HTTP_NIX_BINARY_CACHE_CONFIG:-/etc/nix/nix-binary-cache.cgi.conf}}"
+config="$(cd "$(@coreutils@/dirname "$config")"; 
+  @coreutils@/pwd)/$(@coreutils@/basename "$config")"
+@coreutils@/test -e "$config" && . "$config"
+
+header(){
+	echo "Content-Type: text/plain; charset=utf-8"
+	echo 
+}
+
+clean_path() {
+	@gnused@/sed -re "s@^$STORE_DIR/?@@" | @findutils@/xargs
+}
+
+storeq(){
+	@nix@/nix-store -q "$@"
+}
+
+sign(){
+	test -n "$1" && 
+	  @coreutils@/sha256sum | @gnused@/sed -e 's/ .*//' | 
+	  @openssl@/openssl rsautl -sign -inkey "$@" | @coreutils@/base64 -w 0
+}
+
+case "$QUERY_STRING" in 
+	"")
+		header
+		echo "Hello, this is a dynamically-generated Nix binary cache"
+		;;
+	/debug)
+		header
+		set
+		;;
+	/nix-cache-info)
+		header
+		echo "StoreDir: $STORE_DIR"
+		echo "WantMassQuery: $MASS_QUERY"
+		echo "Priority: $PRIORITY"
+		;;
+	*.narinfo)
+		hash=${QUERY_STRING%.narinfo}
+		hash=${hash#/}
+		path="$(echo "$STORE_DIR/$hash-"* )"
+		if [ -n "$path" ] && [ -e "$path" ]; then
+			header
+			info="$(
+			echo "StorePath: $path"
+			echo "URL: $(@coreutils@/basename "$path"
+			  ).nar.$COMPRESSION"
+			echo "Compression: $COMPRESSION"
+			echo "NarHash: $(storeq --hash "$path")"
+			echo "NarSize: $(storeq --size "$path")"
+			echo "References: $(storeq --references "$path" | 
+			  @coreutils@/tac | clean_path )"
+			echo "Deriver: $(storeq --deriver "$path" | 
+			  clean_path )"
+			)"
+			signature="$(echo "$info" | sign "$KEY")"
+
+			echo "$info"
+			echo "Signature: 1;$KEYNAME;$signature"
+
+		else
+			exit 1
+		fi
+		;;
+	*.nar.xz)
+		path="$STORE_DIR${QUERY_STRING%.nar.xz}"
+		if [ -n "$path" ] && [ -e "$path" ]; then
+			header
+			@nix@/nix-store --dump "$path" | @xz@/xz
+		else
+			exit 1
+		fi
+		;;
+	*.nar.bzip2)
+		path="$STORE_DIR${QUERY_STRING%.nar.bzip2}"
+		echo "$path" >&2;
+		if [ -n "$path" ] && [ -e "$path" ]; then
+			header
+			@nix@/nix-store --dump "$path" | @bzip2@/bzip2
+		else
+			exit 1
+		fi
+		;;
+esac
diff --git a/pkgs/servers/nsq/default.nix b/pkgs/servers/nsq/default.nix
new file mode 100644
index 00000000000..b1570d96c7b
--- /dev/null
+++ b/pkgs/servers/nsq/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  version = "0.2.28";
+  name = "nsq-${version}";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    export GOPATH=$src
+    apps=(nsq_pubsub nsq_stat nsq_tail nsq_to_file nsq_to_http nsq_to_nsq nsqd nsqlookupd)
+
+    mkdir build
+
+    go build -v -o build/nsqadmin github.com/bitly/nsq/nsqadmin
+    for app in "''${apps[@]}"; do
+      go build -v -o build/$app github.com/bitly/nsq/apps/$app
+    done
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    mv build/* $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A realtime distributed messaging platform";
+    homepage = http://nsq.io/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/nsq/deps.nix b/pkgs/servers/nsq/deps.nix
new file mode 100644
index 00000000000..bd98357ece6
--- /dev/null
+++ b/pkgs/servers/nsq/deps.nix
@@ -0,0 +1,134 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "code.google.com/p/snappy-go";
+      src = fetchhg {
+        url = "http://code.google.com/p/snappy-go";
+        rev = "14";
+        sha256 = "0ywa52kcii8g2a9lbqcx8ghdf6y56lqq96sl5nl9p6h74rdvmjr7";
+      };
+    }
+    {
+      root = "github.com/BurntSushi/toml";
+      src = fetchFromGitHub {
+        owner = "BurntSushi";
+        repo = "toml";
+        rev = "f87ce853111478914f0bcffa34d43a93643e6eda";
+        sha256 = "0g8203y9ycf34j2q3ymxb8nh4habgwdrjn9vdgrginllx73yq565";
+      };
+    }
+    {
+      root = "github.com/bitly/go-hostpool";
+      src = fetchFromGitHub {
+        owner = "bitly";
+        repo = "go-hostpool";
+        rev = "fed86fae5cacdc77e7399937e2f8836563620a2e";
+        sha256 = "0nbssfp5ksj4hhc0d8lfq54afd9nqv6qzk3vi6rinxr3fgplrj44";
+      };
+    }
+    {
+      root = "github.com/bitly/go-nsq";
+      src = fetchFromGitHub {
+        owner = "bitly";
+        repo = "go-nsq";
+        rev = "c79a282f05364e340eadc2ce2f862a3d44eea9c0";
+        sha256 = "19jlwj5419p5xwjzfnzlddjnbh5g7ifnqhd00i5p0b6ww1gk011p";
+      };
+    }
+    {
+      root = "github.com/bitly/go-simplejson";
+      src = fetchFromGitHub {
+        owner = "bitly";
+        repo = "go-simplejson";
+        rev = "1cfceb0e12f47ec02665ef480212d7b531d6f4c5";
+        sha256 = "1d8x0himl58qn87lv418djy6mbs66p9ai3zpqq13nhkfl67fj3bi";
+      };
+    }
+    {
+      root = "github.com/bitly/nsq";
+      src = fetchFromGitHub {
+        owner = "bitly";
+        repo = "nsq";
+        rev = "048691a8242c9ec224fc46bf7d05f321026b69f8";
+        sha256 = "0drmf1j5w3q4l6f7xjy3y7d7cl50gcx0qwci6mahxsyaaclx60yx";
+      };
+    }
+    {
+      root = "github.com/bmizerany/assert";
+      src = fetchFromGitHub {
+        owner = "bmizerany";
+        repo = "assert";
+        rev = "e17e99893cb6509f428e1728281c2ad60a6b31e3";
+        sha256 = "1lfrvqqmb09y6pcr76yjv4r84cshkd4s7fpmiy7268kfi2cvqnpc";
+      };
+    }
+    {
+      root = "github.com/bmizerany/perks";
+      src = fetchFromGitHub {
+        owner = "bmizerany";
+        repo = "perks";
+        rev = "aac9e2eab5a334037057336897fd10b0289a5ae8";
+        sha256 = "1d027jgc327qz5xmal0hrpqvsj45i9yqmm9pxk3xp3hancvz3l3k";
+      };
+    }
+    {
+      root = "github.com/kr/pretty";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "pretty";
+        rev = "bc9499caa0f45ee5edb2f0209fbd61fbf3d9018f";
+        sha256 = "1m61y592qsnwsqn76v54mm6h2pcvh4wlzbzscc1ag645x0j33vvl";
+      };
+    }
+    {
+      root = "github.com/kr/pty";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "pty";
+        rev = "67e2db24c831afa6c64fc17b4a143390674365ef";
+        sha256 = "1l3z3wbb112ar9br44m8g838z0pq2gfxcp5s3ka0xvm1hjvanw2d";
+      };
+    }
+    {
+      root = "github.com/kr/text";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "text";
+        rev = "6807e777504f54ad073ecef66747de158294b639";
+        sha256 = "1wkszsg08zar3wgspl9sc8bdsngiwdqmg3ws4y0bh02sjx5a4698";
+      };
+    }
+    {
+      root = "github.com/mreiferson/go-options";
+      src = fetchFromGitHub {
+        owner = "mreiferson";
+        repo = "go-options";
+        rev = "896a539cd709f4f39d787562d1583c016ce7517e";
+        sha256 = "0hg0n5grcjcj5719rqchz0plp39wfk3znqxw8y354k4jwsqwmn17";
+      };
+    }
+    {
+      root = "github.com/mreiferson/go-snappystream";
+      src = fetchFromGitHub {
+        owner = "mreiferson";
+        repo = "go-snappystream";
+        rev = "97c96e6648e99c2ce4fe7d169aa3f7368204e04d";
+        sha256 = "08ylvx9r6b1fi76v6cqjvny4yqsvcqjfsg93jdrgs7hi4mxvxynn";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/servers/restund/default.nix b/pkgs/servers/restund/default.nix
index e817151e778..d6952e9700e 100644
--- a/pkgs/servers/restund/default.nix
+++ b/pkgs/servers/restund/default.nix
@@ -24,5 +24,9 @@ stdenv.mkDerivation rec {
     platforms = with stdenv.lib.platforms; linux;
     maintainers = with stdenv.lib.maintainers; [raskin];
     license = with stdenv.lib.licenses; bsd3;
+    inherit version;
+    downloadPage = "http://www.creytiv.com/pub/";
+    updateWalker = true;
+    downloadURLRegexp = "/restund-.*[.]tar[.]";
   };
 }
diff --git a/pkgs/servers/samba/default.nix b/pkgs/servers/samba/default.nix
index ade79e2c99c..08f12d97506 100644
--- a/pkgs/servers/samba/default.nix
+++ b/pkgs/servers/samba/default.nix
@@ -18,11 +18,11 @@
 assert useKerberos -> kerberos != null;
 
 stdenv.mkDerivation rec {
-  name = "samba-3.6.22";
+  name = "samba-3.6.24";
 
   src = fetchurl {
-    url = "http://us3.samba.org/samba/ftp/stable/${name}.tar.gz";
-    sha256 = "1sny3irf1p4fjli5qa29swr3l217grg90cva35rmay48fw7g5g9h";
+    url = "http://samba.org/samba/ftp/stable/${name}.tar.gz";
+    sha256 = "19rln8m1k359bz6dhmlv39kzyjg7p296dz4y4mq1jwrlnw2bvl0i";
   };
 
   buildInputs = [ readline pam openldap popt iniparser libunwind fam acl cups ]
diff --git a/pkgs/servers/serfdom/default.nix b/pkgs/servers/serfdom/default.nix
index 9274ba86a70..2c11372ee31 100644
--- a/pkgs/servers/serfdom/default.nix
+++ b/pkgs/servers/serfdom/default.nix
@@ -1,126 +1,30 @@
-{ stdenv, fetchurl, fetchgit, fetchhg, go, lib }:
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
 
-let
-  goDeps = [
-    {
-      dir     = "github.com/hashicorp";
-      name    = "serf";
-      rev     = "c5b41a9d1d261135117a8d501d3293efade3cc74";
-      sha256  = "a314d3c13fb370842a8f7c6650abfa907b51172a09c64f9184a240fab05b43df";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/armon";
-      name    = "go-metrics";
-      rev     = "e12c3591b520e819e8234bd585d592774f2b2ad5";
-      sha256  = "79476efefb68876fcad7e71e76d95f4a7eece2cfcdc5a9c10f998af3178230ba";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/hashicorp";
-      name    = "logutils";
-      rev     = "8e0820fe7ac5eb2b01626b1d99df47c5449eb2d8";
-      sha256  = "184lnn7x1v3xvj6zz1rg9s0252wkkd59kij2iyrrm7y80bym2jys";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/hashicorp";
-      name    = "memberlist";
-      rev     = "d5be01d1f4d75b086eba4ae808f2767c08cbbf73";
-      sha256  = "4ab2b610d439e96c169d9caf9ac0e009d71d3ef9a2fd2c812870b71eb6b27dfc";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/ugorji";
-      name    = "go";
-      rev     = "71c2886f5a673a35f909803f38ece5810165097b";
-      sha256  = "128853bcc5f114c300772cbce316b55e84206fa56705c5b9cc94c1693b11ee94";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/mitchellh";
-      name    = "cli";
-      rev     = "69f0b65ce53b27f729b1b807b88dc88007f41dd3";
-      sha256  = "0hnnqd8vg5ca2hglkrj141ba2akdh7crl2lsrgz8d6ipw6asszx3";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/armon";
-      name    = "mdns";
-      rev     = "8be7e3ac4e941555169a99d01abcabd3c982d87a";
-      sha256  = "87cd3a0ada3b094ee8fc4c4742158e0d051cde893da1ea320158a47d6254f69d";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/miekg";
-      name    = "dns";
-      rev     = "7ebb4c59b39d5984952a355086606dd91f6cfe86";
-      sha256  = "8418ad2d27e607cef1dc0003471416294443e467f2de9df135e3a2ab411e2512";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/mitchellh";
-      name    = "mapstructure";
-      rev     = "57bb2fa7a7e00b26c80e4c4b0d4f15a210d94039";
-      sha256  = "13lvd5vw8y6h5zl3samkrb7237kk778cky7k7ys1cm46mfd957zy";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/ryanuber";
-      name    = "columnize";
-      rev     = "d066e113d6e13232f45bda646a915dffeee7f1a4";
-      sha256  = "2aaec396a223fc4b45117a595e74c0a874bd5cd9604c742b8c4747436b4721e9";
-      fetcher = git;
-    }
-    {
-      dir     = "code.google.com/p";
-      name    = "go.net";
-      rev     = "89dbba2db2d4";
-      sha256  = "0168inai10nkdrz4g0rjlj8b5v34mv135v8bhyvh501vnqql50jn";
-      fetcher = hg;
-    }
-  ];
-  git = desc: fetchgit { url = "https://${desc.dir}/${desc.name}";
-                         inherit (desc) rev sha256; };
-  hg = desc: fetchhg { url = "https://${desc.dir}/${desc.name}";
-                       tag = desc.rev;
-                       inherit (desc) sha256; };
-  createGoPathCmds =
-    lib.concatStrings
-      (map (desc:
-            let fetched = desc.fetcher desc; in ''
-              mkdir -p $GOPATH/src/${desc.dir}
-              ln -s ${fetched} $GOPATH/src/${desc.dir}/${desc.name}
-            '') goDeps);
-in
-  stdenv.mkDerivation rec {
-    version = "0.5.0";
-    name = "serfdom-${version}";
+stdenv.mkDerivation rec {
+  version = "0.6.2";
+  name = "serfdom-${version}";
 
-    src = fetchurl {
-      url = "https://github.com/hashicorp/serf/archive/v${version}.tar.gz";
-      sha256 = "1p2cpkdx0gck1ypxc98im7gsv3275avpkizhsif3nxvl1xd8g1qp";
-    };
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
 
-    buildInputs = [ go ];
+  buildInputs = [ go ];
 
-    buildPhase = ''
-      mkdir $TMPDIR/go
-      export GOPATH=$TMPDIR/go
-      ${createGoPathCmds}
-      go build -v -o bin/serf
-    '';
+  buildPhase = ''
+    export GOPATH=$src
+    go build -v -o serf github.com/hashicorp/serf
+  '';
 
-    installPhase = ''
-      mkdir -p $out/bin
-      cp bin/serf $out/bin
-    '';
+  installPhase = ''
+    mkdir -p $out/bin
+    mv serf $out/bin/serf
+  '';
 
-    meta = with stdenv.lib; {
-      description = "Serf is a service discovery and orchestration tool that is decentralized, highly available, and fault tolerant";
-      homepage = http://www.serfdom.io/;
-      license = licenses.mpl20;
-      maintainers = [ maintainers.msackman ];
-      platforms = platforms.linux;
-    };
-  }
+  meta = with stdenv.lib; {
+    description = "A service discovery and orchestration tool that is decentralized, highly available, and fault tolerant";
+    homepage = http://www.serfdom.io/;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ msackman cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/serfdom/deps.nix b/pkgs/servers/serfdom/deps.nix
new file mode 100644
index 00000000000..b933c608824
--- /dev/null
+++ b/pkgs/servers/serfdom/deps.nix
@@ -0,0 +1,185 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "code.google.com/p/go.net";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.net";
+        rev = "134";
+        sha256 = "1jycpgrfwgkfac60zjbx6babcz7sgyn9xgy6cr3l811j6k8r2pbv";
+      };
+    }
+    {
+      root = "code.google.com/p/go.text";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.text";
+        rev = "85";
+        sha256 = "1x8h6vq9g5gbi7iiwla6dkaaqqf7wmkdm4szj7wvzlsijf2x8dwr";
+      };
+    }
+    {
+      root = "github.com/armon/circbuf";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "circbuf";
+        rev = "f092b4f207b6e5cce0569056fba9e1a2735cb6cf";
+        sha256 = "06kwwdwa3hskdh6ws7clj1vim80dyc3ldim8k9y5qpd30x0avn5s";
+      };
+    }
+    {
+      root = "github.com/armon/go-metrics";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "go-metrics";
+        rev = "02567bbc4f518a43853d262b651a3c8257c3f141";
+        sha256 = "08fk3zmw0ywmdfp2qhrpv0vrk1y97hzqczrgr3y2yip3x8sr37ar";
+      };
+    }
+    {
+      root = "github.com/armon/mdns";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "mdns";
+        rev = "70462deb060d44247356ee238ebafd7699ddcffe";
+        sha256 = "0xkm3d0hsixdm1yrkx9c39723kfjkb3wvrzrmx3np9ylcwn6h5p5";
+      };
+    }
+    {
+      root = "github.com/hashicorp/go-syslog";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "go-syslog";
+        rev = "ac3963b72ac367e48b1e68a831e62b93fb69091c";
+        sha256 = "1r9s1gsa4azcs05gx1179ixk7qvrkrik3v92wr4s8gwm00m0gf81";
+      };
+    }
+    {
+      root = "github.com/hashicorp/logutils";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "logutils";
+        rev = "8e0820fe7ac5eb2b01626b1d99df47c5449eb2d8";
+        sha256 = "033rbkc066g657r0dnzysigjz2bs4biiz0kmiypd139d34jvslwz";
+      };
+    }
+    {
+      root = "github.com/hashicorp/memberlist";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "memberlist";
+        rev = "17d39b695094be943bfb98442a80b082e6b9ac47";
+        sha256 = "0nvgjnwmfqhv2wvr77d2q5mq1bfw4xbpil6wgyj4fyrmhsfzrv3g";
+      };
+    }
+    {
+      root = "github.com/hashicorp/serf";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "serf";
+        rev = "4232a3f7b52f755084caf6b2cc2789efa2948555";
+        sha256 = "1hxxqrjz08882d205ylakhvvwciahiqdzkwi2a7zwrmx6sxna7sr";
+      };
+    }
+    {
+      root = "github.com/miekg/dns";
+      src = fetchFromGitHub {
+        owner = "miekg";
+        repo = "dns";
+        rev = "fc67c4b981930a377f8a26a5a1f2c0ccd5dd1514";
+        sha256 = "1csjmkx0gl34r4hmkhdbdxb0693f1p10yrjaj8f2jwli9p9sl4mg";
+      };
+    }
+    {
+      root = "github.com/mitchellh/cli";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "cli";
+        rev = "8262fe3f76f0da53b5674eb35c8c6436430794c3";
+        sha256 = "0pqkxh1q49kkxihggrfjs8174d927g4c5qqx00ggw8sqqsgrw6vn";
+      };
+    }
+    {
+      root = "github.com/mitchellh/mapstructure";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "mapstructure";
+        rev = "6fb2c832bcac61d01212ab1d172f7a14a8585b07";
+        sha256 = "0mx855lwhv0rk461wmbnbzbpkhmq5p2ipmrm5bhzimagrr1w17hw";
+      };
+    }
+    {
+      root = "github.com/ryanuber/columnize";
+      src = fetchFromGitHub {
+        owner = "ryanuber";
+        repo = "columnize";
+        rev = "785d943a7b6886e0bb2f139a60487b823dd8d9de";
+        sha256 = "1h3sxzhiwz65vf3cvclirlf6zhdr97v01dpn5cmf3m09rxxpnp3f";
+      };
+    }
+    {
+      root = "github.com/ugorji/go";
+      src = fetchFromGitHub {
+        owner = "ugorji";
+        repo = "go";
+        rev = "71c2886f5a673a35f909803f38ece5810165097b";
+        sha256 = "157f24xnkhclrjwwa1b7lmpj112ynlbf7g1cfw0c657iqny5720j";
+      };
+    }
+    {
+      root = "github.com/ugorji/go-msgpack";
+      src = fetchFromGitHub {
+        owner = "ugorji";
+        repo = "go-msgpack";
+        rev = "75092644046c5e38257395b86ed26c702dc95b92";
+        sha256 = "1bmqi16bfiqw7qhb3d5hbh0dfzhx2bbq1g15nh2pxwxckwh80x98";
+      };
+    }
+    {
+      root = "github.com/vmihailenco/bufio";
+      src = fetchFromGitHub {
+        owner = "vmihailenco";
+        repo = "bufio";
+        rev = "24e7e48f60fc2d9e99e43c07485d9fff42051e66";
+        sha256 = "0x46qnf2f15v7m0j2dcb16raxjamk5rdc7hqwgyxfr1sqmmw3983";
+      };
+    }
+    {
+      root = "github.com/vmihailenco/msgpack";
+      src = fetchFromGitHub {
+        owner = "vmihailenco";
+        repo = "msgpack";
+        rev = "20c1b88a6c7fc5432037439f4e8c582e236fb205";
+        sha256 = "1dj5scpfhgnw0yrh0w6jlrb9d03halvsv4l3wgjhazrrimdqf0q0";
+      };
+    }
+    {
+      root = "launchpad.net/gocheck";
+      src = fetchbzr {
+        url = "https://launchpad.net/gocheck";
+        rev = "87";
+        sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0";
+      };
+    }
+    {
+      root = "launchpad.net/mgo";
+      src = fetchbzr {
+        url = "https://launchpad.net/mgo";
+        rev = "2";
+        sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index e69c033cf40..adfe44b3bac 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses, python27, which, groff, gettext, man_db, bc }:
+{ stdenv, fetchurl, ncurses, python, which, groff, gettext, man_db, bc }:
 
 stdenv.mkDerivation rec {
   name = "fish-${version}";
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ];
 
   # Required binaries during execution
-  # Python27: Autocompletion generated from manpages and config editing
-  propagatedBuildInputs = [ python27 which groff gettext man_db bc ];
+  # Python: Autocompletion generated from manpages and config editing
+  propagatedBuildInputs = [ python which groff gettext man_db bc ];
 
   postInstall = ''
     sed -i "s|bc|${bc}/bin/bc|" "$out/share/fish/functions/seq.fish"
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
new file mode 100644
index 00000000000..7a8b85a8945
--- /dev/null
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchgit, libatomic_ops, autoconf, automake, boost, btrfsProgs, cryptopp, curl, expat,
+ fcgi, fuse, gperftools, keyutils, leveldb, libaio, libedit, libtool,
+ libuuid, linuxHeaders, openssl, pkgconfig, python, snappy, which, xfsprogs, xz}:
+
+stdenv.mkDerivation rec {
+  baseName="ceph";
+  version="0.79";
+  name="${baseName}-${version}";
+  buildInputs = [
+    fuse linuxHeaders pkgconfig libatomic_ops autoconf automake boost btrfsProgs cryptopp expat
+    fcgi fuse gperftools keyutils leveldb libaio libedit libtool libuuid openssl pkgconfig
+    python snappy which xfsprogs.lib xz
+  ];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  installFlags = "DESTDIR=\${out}";
+
+  enableParallelBuilding = true;
+  src = fetchgit {
+    url = "https://github.com/ceph/ceph";
+    rev = "4c2d73a5095f527c3a2168deb5fa54b3c8991a6e";
+    sha256 = "0850m817wqqmw2qdnwm5jvbdgifzlc7kcd05jv526pdvmq1x92rf";
+  };
+
+  meta = {
+    inherit version;
+    description = "Distributed storage system";
+    maintainers = [
+      stdenv.lib.maintainers.ak
+    ];
+    platforms = with stdenv.lib.platforms; 
+      linux;
+  };
+}
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index 400890e95f3..7c9cd05009d 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -12,11 +12,26 @@ stdenv.mkDerivation rec {
     sed -i s,/bin/bash,`type -P bash`, install-sh
   '';
 
+  outputs = ["out" "lib"];
+
+  postInstall = ''
+    (cd include; make install-dev)
+    # The make install-dev target is broken when --disable-shared
+    mkdir -p $lib/lib $lib/include
+    cp ./libhandle/.libs/libhandle.a \
+       ./libxcmd/.libs/libxcmd.a \
+       ./libxlog/.libs/libxlog.a \
+       ./libxfs/.libs/libxfs.a $lib/lib
+    mv $out/include/* $lib/include
+  '';
+
+  enableParallelBuilding = true;
+
   buildInputs = [ libtool gettext libuuid ];
 
   configureFlags = "MAKE=make MSGFMT=msgfmt MSGMERGE=msgmerge XGETTEXT=xgettext ZIP=gzip AWK=gawk --disable-shared";
   preConfigure = ''
-    configureFlags="$configureFlags root_sbindir=$out/sbin root_libdir=$out/lib"
+    configureFlags="$configureFlags root_sbindir=$out/sbin root_libdir=$lib/lib"
   '';
   disableStatic = false;
 
diff --git a/pkgs/tools/graphics/povray/default.nix b/pkgs/tools/graphics/povray/default.nix
index 12f307ca9de..6272bdae780 100644
--- a/pkgs/tools/graphics/povray/default.nix
+++ b/pkgs/tools/graphics/povray/default.nix
@@ -4,8 +4,8 @@ stdenv.mkDerivation {
   name = "povray-3.6";
 
   src = fetchurl {
-    url = http://www.povray.org/redirect/www.povray.org/ftp/pub/povray/Official/Unix/povray-3.6.tar.bz2;
-    sha256 = "0wvsfgkybx28mj2p76nnsq9rdq50192g5qb7d0xk81s8skn7z2jf";
+    url = http://www.povray.org/ftp/pub/povray/Old-Versions/Official-3.62/Unix/povray-3.6.tar.bz2;
+    sha256 = "4e8a7fecd44807343b6867e1f2440aa0e09613d6d69a7385ac48f4e5e7737a73";
   };
 
   # the installPhase wants to put files into $HOME. I let it put the files
diff --git a/pkgs/tools/misc/gummiboot/default.nix b/pkgs/tools/misc/gummiboot/default.nix
index 502d9044c5d..2d0b0015f9d 100644
--- a/pkgs/tools/misc/gummiboot/default.nix
+++ b/pkgs/tools/misc/gummiboot/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, gnu-efi, unzip, pkgconfig, utillinux, libxslt, docbook_xsl, docbook_xml_dtd_42 }:
 
 stdenv.mkDerivation rec {
-  name = "gummiboot-43";
+  name = "gummiboot-45";
 
   buildInputs = [ gnu-efi pkgconfig libxslt utillinux ];
 
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
   ];
 
   src = fetchurl {
-    url = http://pkgs.fedoraproject.org/repo/pkgs/gummiboot/gummiboot-43.tar.xz/c9b46a3504a2f7e335404a1475818d98/gummiboot-43.tar.xz;
-    sha256 = "1hwaan3985ap9r5ncf9bykbaixbm0xn4x09silssngwfl2srn4iv";
+    url = http://pkgs.fedoraproject.org/repo/pkgs/gummiboot/gummiboot-45.tar.xz/5d4957390e959cb9f325b87712ddd3f1/gummiboot-45.tar.xz;
+    md5 = "5d4957390e959cb9f325b87712ddd3f1";
   };
 
   meta = {
diff --git a/pkgs/tools/misc/ngrok/default.nix b/pkgs/tools/misc/ngrok/default.nix
index e517dba7c55..6435923b48a 100644
--- a/pkgs/tools/misc/ngrok/default.nix
+++ b/pkgs/tools/misc/ngrok/default.nix
@@ -30,16 +30,16 @@ let
     url = "https://launchpad.net/goyaml";
     sha256 = "03is37cgw62cha316xrs5h7q97im46ry5qldkfvbhimjq3ww0swj";
     # Branch: "branch:lp:goyaml"
-    revision = 47;
+    rev = 47;
   };
   log4go = fetchhg {
     url = "https://code.google.com/p/log4go/";
-    tag = "c3294304d93f";
+    rev = "c3294304d93f";
     sha256 = "0q906sxrmwir295virfibqvdzlaj340qh2r4ysx1ccjrjazc0q5p";
   };
   osext = fetchhg {
     url = "https://bitbucket.org/kardianos/osext";
-    tag = "364fb57";
+    rev = "364fb57";
     sha256 = "1w9x2zj716agfd5x5497ajb9nz3ljar74768vjidsyly143vzjws";
   };
 in stdenv.mkDerivation rec {
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index 352a908c1d7..850981c5d33 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -2,7 +2,7 @@
 , libnotify, libsecret, dbus_glib, polkit, isocodes, libgnome_keyring 
 , mobile_broadband_provider_info, glib_networking, gsettings_desktop_schemas
 , makeWrapper, networkmanager_openvpn, networkmanager_vpnc
-, networkmanager_openconnect, networkmanager_pptp, udev, hicolor_icon_theme }:
+, networkmanager_openconnect, networkmanager_pptp, udev, hicolor_icon_theme, dconf }:
 
 let
   pn = "network-manager-applet";
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     wrapProgram "$out/bin/nm-applet" \
-      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules:${dconf}/lib/gio/modules" \
       --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
       --set GCONF_CONFIG_SOURCE "xml::~/.gconf" \
       --prefix PATH ":" "${gnome3.gconf}/bin"
diff --git a/pkgs/tools/package-management/cabal-install/1.20.0.2.nix b/pkgs/tools/package-management/cabal-install/1.20.0.3.nix
index dba92ab9321..ffcaee203b7 100644
--- a/pkgs/tools/package-management/cabal-install/1.20.0.2.nix
+++ b/pkgs/tools/package-management/cabal-install/1.20.0.3.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-install";
-  version = "1.20.0.2";
-  sha256 = "1nsc8qklhlg2xpaj7k158gg45rlrp7mn15zyfsgjpaqf3rjm9dl4";
+  version = "1.20.0.3";
+  sha256 = "050b9dc4khfc1fs283p1635zni25z4b55gi5ffwvg4mfpkrmdgfj";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
index d7210b2f616..84439136d49 100644
--- a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, makeWrapper, git, subversion, mercurial, bazaar, cvs }:
+{ stdenv, makeWrapper, git, subversion, mercurial, bazaar, cvs, unzip, curl, gnused }:
 
 stdenv.mkDerivation {
   name = "nix-prefetch-scripts";
@@ -11,9 +11,13 @@ stdenv.mkDerivation {
     function copyScript {
       local name=nix-prefetch-$1;
       local src=$2;
-      local exe=$3/bin;
+      local wrapArgs=""
       cp $src $out/bin/$name;
-      wrapProgram $out/bin/$name --suffix PATH : "$exe"
+      for dep in ''${@:3}; do
+        wrapArgs="$wrapArgs --prefix PATH : $dep/bin"
+      done
+      wrapArgs="$wrapArgs --prefix PATH : ${gnused}/bin"
+      wrapProgram $out/bin/$name $wrapArgs
     }
 
     copyScript "hg" ${../../../build-support/fetchhg/nix-prefetch-hg} ${mercurial}
@@ -21,6 +25,7 @@ stdenv.mkDerivation {
     copyScript "svn" ${../../../build-support/fetchsvn/nix-prefetch-svn} ${subversion}
     copyScript "bzr" ${../../../build-support/fetchbzr/nix-prefetch-bzr} ${bazaar}
     copyScript "cvs" ${../../../build-support/fetchcvs/nix-prefetch-cvs} ${cvs}
+    copyScript "zip" ${../../../build-support/fetchzip/nix-prefetch-zip} ${unzip} ${curl}
   '';
 
   meta = with stdenv.lib; {
@@ -30,4 +35,4 @@ stdenv.mkDerivation {
     # Quicker to build than to download, I hope
     hydraPlatforms = [];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index f61b9eb818a..b81ab7cad42 100644
--- a/pkgs/tools/package-management/nix/unstable.nix
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -14,7 +14,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ perl pkgconfig ];
 
-  buildInputs = [ curl openssl boehmgc sqlite ];
+  buildInputs = [ curl openssl sqlite ];
+
+  propagatedBuildInputs = [ boehmgc ];
 
   # Note: bzip2 is not passed as a build input, because the unpack phase
   # would end up using the wrong bzip2 when cross-compiling.
diff --git a/pkgs/tools/security/ecryptfs/default.nix b/pkgs/tools/security/ecryptfs/default.nix
index d1ed6f420ec..13046aa0b2d 100644
--- a/pkgs/tools/security/ecryptfs/default.nix
+++ b/pkgs/tools/security/ecryptfs/default.nix
@@ -1,18 +1,37 @@
-{stdenv, fetchurl, fuse, python, perl, keyutils, pam, nss, nspr}:
+{ stdenv, fetchurl, pkgconfig, perl, keyutils, nss, nspr, python, pam
+, intltool, makeWrapper, coreutils, gettext, cryptsetup, lvm2, rsync, which }:
+
 stdenv.mkDerivation {
-  name = "ecryptfs-82";
+  name = "ecryptfs-104";
 
   src = fetchurl {
-    url = http://launchpad.net/ecryptfs/trunk/82/+download/ecryptfs-utils_82.orig.tar.gz;
-    sha256 = "1w3swispgp71prz8h56hqby2wwnvam5vllqvc69rn8cf605i69a6";
+    url = http://launchpad.net/ecryptfs/trunk/104/+download/ecryptfs-utils_104.orig.tar.gz;
+    sha256 = "0f3lzpjw97vcdqzzgii03j3knd6pgwn1y0lpaaf46iidaiv0282a";
   };
 
-  NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss";
+  buildInputs = [ pkgconfig perl nss nspr python pam intltool makeWrapper ];
+  propagatedBuildInputs = [ coreutils gettext cryptsetup lvm2 rsync keyutils which ];
 
-  buildInputs = [ python perl keyutils pam nss nspr ];
+  postInstall = ''
+    FILES="$(grep -r '/bin/sh' $out/bin | sed 's,:.*,,' | uniq)"
+    for file in $FILES; do
+      sed -i $file -e "s,\(/sbin/u\?mount.ecryptfs\(_private\)\?\),$out\1," \
+        -e "s,\(/sbin/cryptsetup\),${cryptsetup}\1," \
+        -e "s,\(/sbin/dmsetup\),${lvm2}\1," \
+        -e 's,/sbin/\(unix_chkpwd\),\1,'
+      wrapProgram $file \
+        --prefix PATH ":" "${coreutils}/bin" \
+        --prefix PATH ":" "${gettext}/bin" \
+        --prefix PATH ":" "${rsync}/bin" \
+        --prefix PATH ":" "${keyutils}/bin" \
+        --prefix PATH ":" "${which}/bin" \
+        --prefix PATH ":" "$out/bin"
+    done
+  '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Enterprise-class stacked cryptographic filesystem";
-    license = "GPLv2+";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix
index f242c3f323a..9b8d33b6b69 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.22";
+  name = "gnupg-2.0.24";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "0lg210acj2rxq291q4cwamg9gx6gh2prb1xa93y5jhw5b6r0lza3";
+    sha256 = "0ch2hbindk832cy7ca00a7whw84ndm0nhqrl24a5fw4ldkca2x6r";
   };
 
   buildInputs
diff --git a/pkgs/tools/security/gnupg1/default.nix b/pkgs/tools/security/gnupg1/default.nix
index 362ec3a25bb..a25ae35b6cc 100644
--- a/pkgs/tools/security/gnupg1/default.nix
+++ b/pkgs/tools/security/gnupg1/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, readline, bzip2 }:
 
 stdenv.mkDerivation rec {
-  name = "gnupg-1.4.16";
+  name = "gnupg-1.4.17";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "0bsa1yqa3ybhvmc4ys73amdpcmckrlq1fsxjl2980cxada778fvv";
+    sha256 = "0nvv1bd8v13gh2m1429azws7ks0ix9y1yv87ak9k9i1dsqcrvpg6";
   };
 
   buildInputs = [ readline bzip2 ];
diff --git a/pkgs/tools/security/meo/default.nix b/pkgs/tools/security/meo/default.nix
index 820919d1a2e..2dfdf466c28 100644
--- a/pkgs/tools/security/meo/default.nix
+++ b/pkgs/tools/security/meo/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
   
   src = fetchhg {
     url = http://oss.stamfest.net/hg/meo;
-    tag = "b48e5f16cff8";
+    rev = "b48e5f16cff8";
     sha256 = "0ifg7y28s89i9gwda6fyj1jbrykbcvq8bf1m6rxmdcv5afi3arbq";
   };
 
diff --git a/pkgs/tools/security/sudo/default.nix b/pkgs/tools/security/sudo/default.nix
index b4c2d7f1c1f..ab46af5a1cd 100644
--- a/pkgs/tools/security/sudo/default.nix
+++ b/pkgs/tools/security/sudo/default.nix
@@ -11,39 +11,43 @@ stdenv.mkDerivation rec {
     sha256 = "002l6h27pnhb77b65frhazbhknsxvrsnkpi43j7i0qw1lrgi7nkf";
   };
 
-  postConfigure = ''
-    cat >> pathnames.h <<EOF
-    #undef  _PATH_SUDO_LOGFILE
-    #define _PATH_SUDO_LOGFILE "/var/log/sudo.log"
-    #undef  _PATH_SUDO_TIMEDIR
-    #define _PATH_SUDO_TIMEDIR "/run/sudo"
-    #undef  _PATH_VI
-    #define _PATH_VI "/run/current-system/sw/bin/nano"
-    #undef  _PATH_MV
-    #define _PATH_MV "${coreutils}/bin/mv"
+  configureFlags = [
+    "--with-env-editor"
+    "--with-editor=/run/current-system/sw/bin/nano"
+    "--with-rundir=/var/run"
+    "--with-vardir=/var/db/sudo"
+    "--with-logpath=/var/log/sudo.log"
+  ];
+
+  postConfigure =
+    ''
+    cat >> pathnames.h <<'EOF'
+      #undef _PATH_MV
+      #define _PATH_MV "${coreutils}/bin/mv"
     EOF
-
     makeFlags="install_uid=$(id -u) install_gid=$(id -g)"
-    installFlags="sudoers_uid=$(id -u) sudoers_gid=$(id -g) sysconfdir=$out/etc timedir=$TMPDIR/dummy"
-  '';
+    installFlags="sudoers_uid=$(id -u) sudoers_gid=$(id -g) sysconfdir=$out/etc rundir=$TMPDIR/dummy vardir=$TMPDIR/dummy"
+    '';
 
   buildInputs = [ coreutils pam groff ];
 
   enableParallelBuilding = true;
 
-  postInstall = ''
-    rm $out/share/doc/sudo/ChangeLog
-  '';
+  postInstall = 
+    ''
+    rm -f $out/share/doc/sudo/ChangeLog
+    '';
 
   meta = {
     description = "A command to run commands as root";
 
-    longDescription = ''
+    longDescription = 
+      ''
       Sudo (su "do") allows a system administrator to delegate
       authority to give certain users (or groups of users) the ability
       to run some (or all) commands as root or another user while
       providing an audit trail of the commands and their arguments.
-    '';
+      '';
 
     homepage = http://www.sudo.ws/;
 
diff --git a/pkgs/tools/system/storebrowse/default.nix b/pkgs/tools/system/storebrowse/default.nix
index a997e38ba4a..ccb0f26e435 100644
--- a/pkgs/tools/system/storebrowse/default.nix
+++ b/pkgs/tools/system/storebrowse/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   # This source has license BSD
   srcGoSqlite = fetchhg {
     url = "https://code.google.com/p/gosqlite/";
-    tag = "5baefb109e18";
+    rev = "5baefb109e18";
     sha256 = "0mqfnx06jj15cs8pq9msny2z18x99hgk6mchnaxpg343nzdiz4zk";
   };
 
diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
index cbffd8648d4..9102482d3d6 100644
--- a/pkgs/tools/system/syslog-ng/default.nix
+++ b/pkgs/tools/system/syslog-ng/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, eventlog, pkgconfig, glib, python }:
+{ stdenv, fetchurl, eventlog, pkgconfig, glib, python, systemd, perl }:
 
 stdenv.mkDerivation {
   name = "syslog-ng-3.5.4.1";
@@ -8,8 +8,13 @@ stdenv.mkDerivation {
     sha256 = "0rkgrmnyx1x6m3jw5n49k7r1dcg79lxh900g74rgvd3j86g9dilj";
   };
 
-  buildInputs = [ eventlog pkgconfig glib python ];
-  configureFlags = "--enable-dynamic-linking";
+  buildInputs = [ eventlog pkgconfig glib python systemd perl ];
+
+  configureFlags = [
+    "--enable-dynamic-linking"
+    "--enable-systemd"
+    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+  ];
 
   meta = {
     homepage = "http://www.balabit.com/network-security/syslog-ng/";
diff --git a/pkgs/tools/text/diffstat/default.nix b/pkgs/tools/text/diffstat/default.nix
index 94c2df9aabe..e70dfaedddf 100644
--- a/pkgs/tools/text/diffstat/default.nix
+++ b/pkgs/tools/text/diffstat/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://invisible-island.net/diffstat/;
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/tools/typesetting/djvu2pdf/default.nix b/pkgs/tools/typesetting/djvu2pdf/default.nix
new file mode 100644
index 00000000000..c7729ac676f
--- /dev/null
+++ b/pkgs/tools/typesetting/djvu2pdf/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, pkgconfig, djvulibre, ghostscript }:
+
+stdenv.mkDerivation rec {
+  version = "0.9.2";
+  name = "djvu2pdf-${version}";
+
+  src = fetchurl {
+    url = "http://0x2a.at/site/projects/djvu2pdf/djvu2pdf-${version}.tar.gz";
+    sha256 = "0v2ax30m7j1yi4m02nzn9rc4sn4vzqh5vywdh96r64j4pwvn5s5g";
+  };
+
+  buildInputs = [ pkgconfig ];
+  propagatedUserEnvPkgs = [ djvulibre ghostscript ];
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp -p djvu2pdf $out/bin
+    ensureDir $out/man/man1
+    cp -p djvu2pdf.1.gz $out/man/man1
+  '';
+
+  meta = {
+    description = "Creates djvu files from PDF files";
+    homepage = http://0x2a.at/s/projects/djvu2pdf;
+    license = stdenv.lib.licenses.gpl2;
+    inherit version;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d61c789cb4f..bd5bb4f1832 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -320,6 +320,8 @@ let
 
   fetchmtn = callPackage ../build-support/fetchmtn (config.fetchmtn or {});
 
+  packer = callPackage ../development/tools/packer { };
+
   fetchpatch = callPackage ../build-support/fetchpatch { };
 
   fetchsvn = import ../build-support/fetchsvn {
@@ -726,6 +728,8 @@ let
 
   cdrkit = callPackage ../tools/cd-dvd/cdrkit { };
 
+  ceph = callPackage ../tools/filesystems/ceph { };
+
   cfdg = builderDefsPackage ../tools/graphics/cfdg {
     inherit libpng bison flex ffmpeg;
   };
@@ -1594,7 +1598,7 @@ let
 
   networkmanager_openconnect = callPackage ../tools/networking/network-manager/openconnect.nix { };
 
-  networkmanagerapplet = newScope gnome ../tools/networking/network-manager-applet { };
+  networkmanagerapplet = newScope gnome ../tools/networking/network-manager-applet { dconf = gnome3.dconf; };
 
   newsbeuter = callPackage ../applications/networking/feedreaders/newsbeuter { };
 
@@ -2474,7 +2478,9 @@ let
 
   dash = callPackage ../shells/dash { };
 
-  fish = callPackage ../shells/fish { };
+  fish = callPackage ../shells/fish {
+    python = python27Full;
+  };
 
   tcsh = callPackage ../shells/tcsh { };
 
@@ -2971,6 +2977,8 @@ let
 
   go = go_1_3;
 
+  gox = callPackage ../development/compilers/go/gox.nix { };
+
   gprolog = callPackage ../development/compilers/gprolog { };
 
   gwt240 = callPackage ../development/compilers/gwt/2.4.0.nix { };
@@ -3012,7 +3020,7 @@ let
   jdk = if stdenv.isDarwin || stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"
     then pkgs.openjdk
     else pkgs.oraclejdk;
-  jre = if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"
+  jre = if stdenv.isDarwin || stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"
     then pkgs.openjre
     else pkgs.oraclejre;
 
@@ -3020,10 +3028,14 @@ let
 
   oraclejdk7 = pkgs.oraclejdk7distro true false;
 
+  oraclejdk8 = pkgs.oraclejdk8distro true false;
+
   oraclejre = lowPrio (pkgs.jdkdistro false false);
 
   oraclejre7 = lowPrio (pkgs.oraclejdk7distro false false);
 
+  oraclejre8 = lowPrio (pkgs.oraclejdk8distro false false);
+
   jrePlugin = lowPrio (pkgs.jdkdistro false true);
 
   supportsJDK =
@@ -3040,6 +3052,11 @@ let
     (if pluginSupport then appendToName "with-plugin" else x: x)
       (callPackage ../development/compilers/jdk/jdk7-linux.nix { inherit installjdk; });
 
+  oraclejdk8distro = installjdk: pluginSupport:
+    assert supportsJDK;
+    (if pluginSupport then appendToName "with-plugin" else x: x)
+      (callPackage ../development/compilers/jdk/jdk8-linux.nix { inherit installjdk; });
+
   jikes = callPackage ../development/compilers/jikes { };
 
   juliaGit = callPackage ../development/compilers/julia/git-20131013.nix {
@@ -3162,6 +3179,8 @@ let
 
     ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
 
+    cppo = callPackage ../development/tools/ocaml/cppo { };
+
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
 
     deriving = callPackage ../development/tools/ocaml/deriving { };
@@ -3278,8 +3297,8 @@ let
 
   rust = callPackage ../development/compilers/rust {};
 
-  sbcl = builderDefsPackage (import ../development/compilers/sbcl) {
-    inherit makeWrapper;
+  sbclBootstrap = callPackage ../development/compilers/sbcl/bootstrap.nix {};
+  sbcl = callPackage ../development/compilers/sbcl {
     clisp = clisp_2_44_1;
   };
 
@@ -3290,6 +3309,7 @@ let
 
   sdcc = callPackage ../development/compilers/sdcc { };
 
+  smlnjBootstrap = callPackage ../development/compilers/smlnj/bootstrap.nix { };
   smlnj = callPackage_i686 ../development/compilers/smlnj { };
 
   stalin = callPackage ../development/compilers/stalin { };
@@ -3435,6 +3455,7 @@ let
   lua5 = lua5_1;
 
   lua5_sockets = callPackage ../development/interpreters/lua-5/sockets.nix {};
+  lua5_expat = callPackage ../development/interpreters/lua-5/expat.nix {};
 
   luarocks = callPackage ../development/tools/misc/luarocks {
      lua = lua5;
@@ -3483,6 +3504,8 @@ let
     fetchurl = fetchurlBoot;
   };
 
+  perl520 = callPackage ../development/interpreters/perl/5.20 { };
+
   perl = if system != "i686-cygwin" then perl516 else sysPerl;
 
   php = php54;
@@ -4605,6 +4628,15 @@ let
         ln -s $glibc32/lib $out/lib/32
         ln -s lib $out/lib64
 
+        # fixing ldd RLTDLIST
+        rm $out/bin
+        cp -rs $glibc64/bin $out
+        chmod u+w $out/bin
+        rm $out/bin/ldd
+        sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-2.19.so $out/lib/32/ld-linux.so.2\"|g" \
+            $glibc64/bin/ldd > $out/bin/ldd
+        chmod 555 $out/bin/ldd
+
         rm $out/include
         cp -rs $glibc32/include $out
         chmod -R u+w $out/include
@@ -4616,6 +4648,8 @@ let
 
   glog = callPackage ../development/libraries/glog { };
 
+  gloox = callPackage ../development/libraries/gloox { };
+
   glpk = callPackage ../development/libraries/glpk { };
 
   glsurf = callPackage ../applications/science/math/glsurf {
@@ -4949,6 +4983,8 @@ let
 
   libassuan2_1 = callPackage ../development/libraries/libassuan/git.nix { };
 
+  libatomic_ops = callPackage ../development/libraries/libatomic_ops {};
+
   libav = libav_10;
   libav_all = callPackage ../development/libraries/libav { };
   inherit (libav_all) libav_0_8 libav_9 libav_10;
@@ -5081,6 +5117,9 @@ let
 
   liblscp = callPackage ../development/libraries/liblscp { };
 
+  libe-book = callPackage ../development/libraries/libe-book {};
+  libe-book_00 = callPackage ../development/libraries/libe-book/0.0.nix {};
+
   libev = builderDefsPackage ../development/libraries/libev { };
 
   libevent14 = callPackage ../development/libraries/libevent/1.4.nix { };
@@ -5179,6 +5218,8 @@ let
 
   libresample = callPackage ../development/libraries/libresample {};
 
+  librevenge = callPackage ../development/libraries/librevenge {};
+
   librevisa = callPackage ../development/libraries/librevisa { };
 
   libsamplerate = callPackage ../development/libraries/libsamplerate {
@@ -5287,6 +5328,9 @@ let
 
   libmusicbrainz = libmusicbrainz3;
 
+  libmwaw = callPackage ../development/libraries/libmwaw { };
+  libmwaw_02 = callPackage ../development/libraries/libmwaw/0.2.nix { };
+
   libmx = callPackage ../development/libraries/libmx { };
 
   libnet = callPackage ../development/libraries/libnet { };
@@ -5303,6 +5347,8 @@ let
 
   libnxml = callPackage ../development/libraries/libnxml { };
 
+  libodfgen = callPackage ../development/libraries/libodfgen { };
+
   libofa = callPackage ../development/libraries/libofa { };
 
   libofx = callPackage ../development/libraries/libofx { };
@@ -5680,6 +5726,10 @@ let
 
   newt = callPackage ../development/libraries/newt { };
 
+  nix-plugins = callPackage ../development/libraries/nix-plugins {
+    nix = pkgs.nixUnstable;
+  };
+
   nspr = callPackage ../development/libraries/nspr { };
 
   nss = lowPrio (callPackage ../development/libraries/nss { });
@@ -5690,6 +5740,8 @@ let
 
   ntrack = callPackage ../development/libraries/ntrack { };
 
+  nvidia-texture-tools = callPackage ../development/libraries/nvidia-texture-tools { };
+
   ode = builderDefsPackage (import ../development/libraries/ode) { };
 
   ogre = callPackage ../development/libraries/ogre {};
@@ -5748,6 +5800,8 @@ let
     ffmpeg = ffmpeg_0_10;
   };
 
+  openspades = callPackage ../games/openspades {};
+
   openssl = callPackage ../development/libraries/openssl {
     fetchurl = fetchurlBoot;
     cryptodevHeaders = linuxPackages.cryptodev.override {
@@ -6631,12 +6685,16 @@ let
 
   dovecot_pigeonhole = callPackage ../servers/mail/dovecot-pigeonhole { };
 
+  etcd = callPackage ../servers/etcd { };
+
   ejabberd = callPackage ../servers/xmpp/ejabberd {
     erlang = erlangR16;
   };
 
   elasticmq = callPackage ../servers/elasticmq { };
 
+  etcdctl = callPackage ../development/tools/etcdctl { };
+
   fcgiwrap = callPackage ../servers/fcgiwrap { };
 
   felix = callPackage ../servers/felix { };
@@ -6648,6 +6706,8 @@ let
   firebird = callPackage ../servers/firebird { icu = null; };
   firebirdSuper = callPackage ../servers/firebird { superServer = true; };
 
+  fleet = callPackage ../servers/fleet { };
+
   freepops = callPackage ../servers/mail/freepops { };
 
   freeswitch = callPackage ../servers/sip/freeswitch { };
@@ -6708,8 +6768,12 @@ let
 
   ngircd = callPackage ../servers/irc/ngircd { };
 
+  nix-binary-cache = callPackage ../servers/http/nix-binary-cache {};
+
   nsd = callPackage ../servers/dns/nsd { };
 
+  nsq = callPackage ../servers/nsq { };
+
   opensmtpd = callPackage ../servers/mail/opensmtpd { };
 
   petidomo = callPackage ../servers/mail/petidomo { };
@@ -7103,6 +7167,8 @@ let
 
   ifplugd = callPackage ../os-specific/linux/ifplugd { };
 
+  iomelt = callPackage ../os-specific/linux/iomelt { };
+
   iotop = callPackage ../os-specific/linux/iotop { };
 
   iproute = callPackage ../os-specific/linux/iproute { };
@@ -7215,15 +7281,6 @@ let
       ];
   };
 
-  linux_3_13 = makeOverridable (import ../os-specific/linux/kernel/linux-3.13.nix) {
-    inherit fetchurl stdenv perl buildLinux;
-    kernelPatches = lib.optionals ((platform.kernelArch or null) == "mips")
-      [ kernelPatches.mips_fpureg_emu
-        kernelPatches.mips_fpu_sigill
-        kernelPatches.mips_ext3_n32
-      ];
-  };
-
   linux_3_14 = makeOverridable (import ../os-specific/linux/kernel/linux-3.14.nix) {
     inherit fetchurl stdenv perl buildLinux;
     kernelPatches = lib.optionals ((platform.kernelArch or null) == "mips")
@@ -7388,7 +7445,6 @@ let
   linuxPackages_3_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_10 linuxPackages_3_10);
   linuxPackages_3_10_tuxonice = linuxPackagesFor pkgs.linux_3_10_tuxonice linuxPackages_3_10_tuxonice;
   linuxPackages_3_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_12 linuxPackages_3_12);
-  linuxPackages_3_13 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_13 linuxPackages_3_13);
   linuxPackages_3_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_14 linuxPackages_3_14);
   linuxPackages_3_15 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_15 linuxPackages_3_15);
   linuxPackages_testing = recurseIntoAttrs (linuxPackagesFor pkgs.linux_testing linuxPackages_testing);
@@ -7481,6 +7537,8 @@ let
 
   numactl = callPackage ../os-specific/linux/numactl { };
 
+  gocode = callPackage ../development/tools/gocode { };
+
   gogoclient = callPackage ../os-specific/linux/gogoclient { };
 
   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
@@ -7843,8 +7901,14 @@ let
 
   inconsolata = callPackage ../data/fonts/inconsolata {};
 
+  ipafont = callPackage ../data/fonts/ipafont {};
+
   junicode = callPackage ../data/fonts/junicode { };
 
+  kochi-substitute = callPackage ../data/fonts/kochi-substitute {};
+
+  kochi-substitute-naga10 = callPackage ../data/fonts/kochi-substitute-naga10 {};
+
   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
 
   libertine = builderDefsPackage (import ../data/fonts/libertine) {
@@ -8065,6 +8129,8 @@ let
 
   calibre = callPackage ../applications/misc/calibre { };
 
+  camlistore = callPackage ../applications/misc/camlistore { };
+
   carrier = builderDefsPackage (import ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 openssl nss
       gtkspell aspell gettext ncurses avahi dbus dbus_glib python
@@ -8188,6 +8254,8 @@ let
 
   djvulibre = callPackage ../applications/misc/djvulibre { };
 
+  djvu2pdf = callPackage ../tools/typesetting/djvu2pdf { };
+
   djview = callPackage ../applications/graphics/djview { };
   djview4 = pkgs.djview;
 
@@ -8212,7 +8280,7 @@ let
 
   dvdauthor = callPackage ../applications/video/dvdauthor { };
 
-  dwb = callPackage ../applications/networking/browsers/dwb { };
+  dwb = callPackage ../applications/networking/browsers/dwb { dconf = gnome3.dconf; };
 
   dwm = callPackage ../applications/window-managers/dwm {
     patches = config.dwm.patches or [];
@@ -8542,6 +8610,13 @@ let
 
   firefoxWrapper = wrapFirefox { browser = firefoxPkgs.firefox; };
 
+  firefox-bin = callPackage ../applications/networking/browsers/firefox-bin {
+    gconf = pkgs.gnome.GConf;
+    inherit (pkgs.gnome) libgnome libgnomeui;
+    inherit (pkgs.xlibs) libX11 libXScrnSaver libXext
+      libXinerama libXrender libXt;
+  };
+
   flac = callPackage ../applications/audio/flac { };
 
   flashplayer = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-11 {
@@ -8607,6 +8682,8 @@ let
     python = python27;
   };
 
+  gitolite = callPackage ../applications/version-management/gitolite { };
+
   inherit (gnome3) gitg;
 
   giv = callPackage ../applications/graphics/giv {
@@ -8924,7 +9001,7 @@ let
     inherit (perlPackages) ArchiveZip CompressZlib;
     inherit (gnome) GConf ORBit2 gnome_vfs;
     zip = zip.override { enableNLS = false; };
-    boost = boost149;
+    boost = boost155;
     jdk = openjdk;
     fontsConf = makeFontsConf {
       fontDirectories = [
@@ -8933,7 +9010,9 @@ let
     };
     clucene_core = clucene_core_2;
     lcms = lcms2;
-    mdds = mdds_0_7_1;
+    harfbuzz = harfbuzz.override {
+      withIcu = true; withGraphite2 = true;
+    };
   };
 
   liferea = callPackage ../applications/networking/newsreaders/liferea { };
@@ -9417,9 +9496,7 @@ let
 
   siproxd = callPackage ../applications/networking/siproxd { };
 
-  skype = callPackage_i686 ../applications/networking/instant-messengers/skype {
-    usePulseAudio = config.pulseaudio or true;
-  };
+  skype = callPackage_i686 ../applications/networking/instant-messengers/skype { };
 
   skype4pidgin = callPackage ../applications/networking/instant-messengers/pidgin-plugins/skype4pidgin { };
 
@@ -9618,6 +9695,8 @@ let
 
   toxic = callPackage ../applications/networking/instant-messengers/toxic { };
 
+  transcode = callPackage ../applications/audio/transcode { };
+
   transmission = callPackage ../applications/networking/p2p/transmission { };
   transmission_gtk = transmission.override { enableGTK3 = true; };
 
@@ -9999,9 +10078,7 @@ let
 
   blackshadeselite = callPackage ../games/blackshadeselite { };
 
-  blobby = callPackage ../games/blobby {
-    boost = boost149;
-  };
+  blobby = callPackage ../games/blobby { };
 
   bsdgames = callPackage ../games/bsdgames { };
 
@@ -10317,6 +10394,7 @@ let
 
   keen4 = callPackage ../games/keen4 { };
 
+  zeroad = callPackage ../games/0ad { };
 
   ### DESKTOP ENVIRONMENTS
 
@@ -10712,6 +10790,12 @@ let
 
   tptp = callPackage ../applications/science/logic/tptp {};
 
+  twelf = callPackage ../applications/science/logic/twelf {
+    smlnj = if stdenv.isDarwin
+      then smlnjBootstrap
+      else smlnj;
+  };
+
   verifast = callPackage ../applications/science/logic/verifast {};
 
   why3 = callPackage ../applications/science/logic/why3 {};
diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix
index a770cbdda8f..ba785f3ef55 100644
--- a/pkgs/top-level/haskell-defaults.nix
+++ b/pkgs/top-level/haskell-defaults.nix
@@ -15,13 +15,13 @@
   # Older compilers inherit the overrides from newer ones.
 
   ghcHEADPrefs = self : super : super // {
-    cabalInstall_1_20_0_2 = super.cabalInstall_1_20_0_2.override { Cabal = null; };
+    cabalInstall_1_20_0_3 = super.cabalInstall_1_20_0_3.override { Cabal = null; };
     mtl = self.mtl_2_2_1;
     transformersCompat = super.transformersCompat_0_3_3;
   };
 
   ghc782Prefs = self : super : ghcHEADPrefs self super // {
-    cabalInstall_1_20_0_2 = super.cabalInstall_1_20_0_2.override { Cabal = self.Cabal_1_20_0_1; };
+    cabalInstall_1_20_0_3 = super.cabalInstall_1_20_0_3.override { Cabal = self.Cabal_1_20_0_1; };
     codex = super.codex.override { hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_20_0_1; }; };
     mtl = self.mtl_2_1_2;
   };
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 608108a1847..560b0b77ce6 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -437,7 +437,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   compactStringFix = callPackage ../development/libraries/haskell/compact-string-fix {};
 
-  compdata = callPackage ../development/libraries/haskell/compdata {};
+  compdata = if (pkgs.stdenv.lib.versionOlder "7.8" ghc.version)
+               then callPackage ../development/libraries/haskell/compdata {}
+               else null;
 
   composition = callPackage ../development/libraries/haskell/composition {};
 
@@ -587,6 +589,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   deepseq_1_3_0_2 = callPackage ../development/libraries/haskell/deepseq/1.3.0.2.nix {};
   deepseq = null;               # core package since ghc >= 7.4.x
 
+  deepseqGenerics = callPackage ../development/libraries/haskell/deepseq-generics {};
+
   deepseqTh = callPackage ../development/libraries/haskell/deepseq-th {};
 
   derive = callPackage ../development/libraries/haskell/derive {};
@@ -636,7 +640,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   directoryTree = callPackage ../development/libraries/haskell/directory-tree {};
 
   distributedStatic = callPackage ../development/libraries/haskell/distributed-static {};
-  
+
   distributedProcess = callPackage ../development/libraries/haskell/distributed-process {};
 
   distributive = callPackage ../development/libraries/haskell/distributive {};
@@ -799,6 +803,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   foldl = callPackage ../development/libraries/haskell/foldl {};
 
+  folds = callPackage ../development/libraries/haskell/folds {};
+
   forceLayout = callPackage ../development/libraries/haskell/force-layout {};
 
   free = callPackage ../development/libraries/haskell/free {};
@@ -1066,6 +1072,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   HaXml = callPackage ../development/libraries/haskell/HaXml {};
 
+  hdaemonize = callPackage ../development/libraries/haskell/hdaemonize {};
+
   HDBC = callPackage ../development/libraries/haskell/HDBC/HDBC.nix {};
 
   HDBCOdbc = callPackage ../development/libraries/haskell/HDBC/HDBC-odbc.nix {
@@ -1280,6 +1288,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
     preprocessorTools = self.preprocessorTools_0_1_3;
   };
 
+  ixset = callPackage ../development/libraries/haskell/ixset {};
+
   ixShapable = callPackage ../development/libraries/haskell/ix-shapable {};
 
   jack = callPackage ../development/libraries/haskell/jack {};
@@ -1466,6 +1476,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   monadloc = callPackage ../development/libraries/haskell/monadloc {};
 
+  monadlocPp = callPackage ../development/libraries/haskell/monadloc-pp {};
+
   monadLoops = callPackage ../development/libraries/haskell/monad-loops {};
 
   monadLogger = callPackage ../development/libraries/haskell/monad-logger {};
@@ -1960,6 +1972,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   setlocale = callPackage ../development/libraries/haskell/setlocale {};
 
+  shellmate = callPackage ../development/libraries/haskell/shellmate {};
+
   shelly_0_15_4_1 = callPackage ../development/libraries/haskell/shelly/0.15.4.1.nix {};
   shelly_1_5_3_1 = callPackage ../development/libraries/haskell/shelly {};
   shelly = self.shelly_1_5_3_1;
@@ -2080,6 +2094,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   SHA = callPackage ../development/libraries/haskell/SHA {};
 
+  SHA2 = callPackage ../development/libraries/haskell/SHA2 {};
+
   shake = callPackage ../development/libraries/haskell/shake {};
 
   shakespeare = callPackage ../development/libraries/haskell/shakespeare {};
@@ -2160,6 +2176,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   TableAlgebra = callPackage ../development/libraries/haskell/TableAlgebra {};
 
+  tables = callPackage ../development/libraries/haskell/tables {};
+
   tabular = callPackage ../development/libraries/haskell/tabular {};
 
   tagged = callPackage ../development/libraries/haskell/tagged {};
@@ -2462,6 +2480,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   wcwidth = callPackage ../development/libraries/haskell/wcwidth {};
 
+  webdriver = callPackage ../development/libraries/haskell/webdriver {};
+
   webRoutes = callPackage ../development/libraries/haskell/web-routes {};
 
   webRoutesBoomerang = callPackage ../development/libraries/haskell/web-routes-boomerang {};
@@ -2547,6 +2567,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   xssSanitize = callPackage ../development/libraries/haskell/xss-sanitize {};
 
+  Yampa = callPackage ../development/libraries/haskell/Yampa {};
+
   yaml = callPackage ../development/libraries/haskell/yaml {};
 
   yamlLight = callPackage ../development/libraries/haskell/yaml-light {};
@@ -2785,9 +2807,10 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   cabalDelete = callPackage ../development/tools/haskell/cabal-delete {};
 
   cabalBounds = callPackage ../development/tools/haskell/cabal-bounds {
-    Cabal = if pkgs.stdenv.lib.versionOlder "7.7" ghc.version
-              then null
-              else self.Cabal_1_18_1_3;
+    Cabal = self.Cabal_1_20_0_1;
+    cabalLenses = self.cabalLenses.override {
+      Cabal = self.Cabal_1_20_0_1;
+    };
   };
 
   cabalMeta = callPackage ../development/tools/haskell/cabal-meta {};
@@ -2803,11 +2826,13 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   cabalInstall_0_14_0 = callPackage ../tools/package-management/cabal-install/0.14.0.nix {};
   cabalInstall_1_16_0_2 = callPackage ../tools/package-management/cabal-install/1.16.0.2.nix { Cabal = self.Cabal_1_16_0_3; };
   cabalInstall_1_18_0_3 = callPackage ../tools/package-management/cabal-install/1.18.0.3.nix { Cabal = self.Cabal_1_18_1_3; };
-  cabalInstall_1_20_0_2 = callPackage ../tools/package-management/cabal-install/1.20.0.2.nix { Cabal = self.Cabal_1_20_0_1; };
-  cabalInstall = self.cabalInstall_1_20_0_2;
+  cabalInstall_1_20_0_3 = callPackage ../tools/package-management/cabal-install/1.20.0.3.nix { Cabal = self.Cabal_1_20_0_1; };
+  cabalInstall = self.cabalInstall_1_20_0_3;
 
   codex = callPackage ../development/tools/haskell/codex {};
 
+  commandQq = callPackage ../development/libraries/haskell/command-qq {};
+
   gitAnnex = callPackage ../applications/version-management/git-and-tools/git-annex {};
 
   githubBackup = callPackage ../applications/version-management/git-and-tools/github-backup {};
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index f21bf4f4df9..2db19dbdf8b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -67,6 +67,28 @@ rec {
     inherit python;
   };
 
+  discid = buildPythonPackage rec {
+    name = "discid-1.1.0";
+
+    meta = with stdenv.lib; {
+      description = "Python binding of libdiscid";
+      homepage    = "https://python-discid.readthedocs.org/";
+      license     = licenses.lgpl3Plus;
+      platforms   = platforms.linux;
+      maintainer  = with maintainers; [ iyzsong ];
+    };
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/discid/${name}.tar.gz";
+      md5 = "2ad2141452dd10b03ad96ccdad075235";
+    };
+
+    patchPhase = ''
+      substituteInPlace discid/libdiscid.py \
+        --replace '_open_library(_LIB_NAME)' "_open_library('${pkgs.libdiscid}/lib/libdiscid.so.0')"
+    '';
+  };
+
   ipython = import ../shells/ipython {
     inherit (pkgs) stdenv fetchurl sip pyqt4;
     inherit buildPythonPackage pythonPackages;
@@ -2264,6 +2286,37 @@ rec {
     };
   };
 
+  radicale = buildPythonPackage rec {
+    name = "radicale-${version}";
+    namePrefix = "";
+    version = "0.9b1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/R/Radicale/Radicale-${version}.tar.gz";
+      sha256 = "3a8451909de849f173f577ddec0a085f19040dbb6aa13d5256208a0f8e11d88d";
+    };
+
+    propagatedBuildInputs = with pythonPackages; [
+      flup
+      ldap
+      sqlalchemy
+    ];
+
+    doCheck = false;
+
+    meta = {
+      homepage = "http://www.radicale.org/";
+      longDescription = ''
+        The Radicale Project is a complete CalDAV (calendar) and CardDAV
+        (contact) server solution. Calendars and address books are available for
+        both local and remote access, possibly limited through authentication
+        policies. They can be viewed and edited by calendar and contact clients
+        on mobile phones or computers.
+      '';
+      license = stdenv.lib.licenses.gpl3Plus;
+      maintainers = [ stdenv.lib.maintainers.edwtjo ];
+    };
+  };
 
   raven = buildPythonPackage rec {
     name = "raven-3.4.1";