diff --git a/pkgs/applications/editors/emacs-modes/magit/default.nix b/pkgs/applications/editors/emacs-modes/magit/default.nix
index f096d3b0057..580b2761fa9 100644
--- a/pkgs/applications/editors/emacs-modes/magit/default.nix
+++ b/pkgs/applications/editors/emacs-modes/magit/default.nix
@@ -1,22 +1,32 @@
-{ stdenv, fetchurl, emacs, texinfo }:
+{ stdenv, fetchurl, emacs, texinfo, unzip }:
 
 let
-  version = "1.1.1";
+  version = "1.2.0";
 in
 stdenv.mkDerivation {
   name = "magit-${version}";
 
   src = fetchurl {
-    url = "http://github.com/downloads/magit/magit/magit-${version}.tar.gz";
-    sha256 = "0zp5qxippmalin2fr73w2alf2w7ilcahmybzdvgn4ch2s3dgvzcz";
+    url = "https://github.com/magit/magit/zipball/${version}";
+    sha256 = "1877s8ikvcb457mmljmw366h6pgg4zzx98qfazhqj8snl4yqsj4i";
+    name = "magit-${version}.zip";
   };
 
-  buildInputs = [emacs texinfo];
+  buildInputs = [ emacs texinfo unzip ];
 
   configurePhase = "makeFlagsArray=( PREFIX=$out SYSCONFDIR=$out/etc )";
 
+  # Add (require 'magit-site-init) to your ~/.emacs file to set-up magit mode.
+  postInstall = ''
+    mv $out/etc/emacs/site-start.d/50magit.el $out/share/emacs/site-lisp/magit-site-init.el
+    sed -i -e 's|50magit|magit-site-init|' $out/share/emacs/site-lisp/magit-site-init.el
+    rmdir $out/etc/emacs/site-start.d $out/etc/emacs $out/etc
+  '';
+
   meta = {
+    homepage = "https://github.com/magit/magit";
     description = "Magit, an Emacs interface to Git";
+    license = "GPLv3+";
 
     longDescription = ''
       With Magit, you can inspect and modify your Git repositories with
@@ -30,8 +40,6 @@ stdenv.mkDerivation {
       save you from learning Git itself.
     '';
 
-    license = "GPLv3+";
-    homepage = "https://github.com/magit/magit";
     platforms = stdenv.lib.platforms.all;
     maintainers = with stdenv.lib.maintainers; [ simons ludo ];
   };
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 7e03fd6b7b3..9e6b700f9ef 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -46,14 +46,14 @@ composableDerivation {} {
       ;
 
   cfg = {
-    pythonSupport    = getConfig [ "vim" "python" ] true;
-    darwinSupport    = getConfig [ "vim" "darwin" ] false;
-    nlsSupport       = getConfig [ "vim" "nls" ] false;
-    tclSupport       = getConfig [ "vim" "tcl" ] false;
-    multibyteSupport = getConfig [ "vim" "multibyte" ] false;
-    cscopeSupport    = getConfig [ "vim" "cscope" ] false;
+    pythonSupport    = config.vim.python or true;
+    darwinSupport    = config.vim.darwin or false;
+    nlsSupport       = config.vim.nls or false;
+    tclSupport       = config.vim.tcl or false;
+    multibyteSupport = config.vim.multibyte or false;
+    cscopeSupport    = config.vim.cscope or false;
     # add .nix filetype detection and minimal syntax highlighting support
-    ftNixSupport     = getConfig [ "vim" "ftNix" ] true;
+    ftNixSupport     = config.vim.ftNix or true;
   };
 
   #--enable-gui=OPTS     X11 GUI default=auto OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon
diff --git a/pkgs/applications/graphics/gimp/2.8.nix b/pkgs/applications/graphics/gimp/2.8.nix
index bf29ae13e5e..44d9330043f 100644
--- a/pkgs/applications/graphics/gimp/2.8.nix
+++ b/pkgs/applications/graphics/gimp/2.8.nix
@@ -4,11 +4,11 @@
 , python, pygtk, libart_lgpl, libexif, gettext, xlibs }:
 
 stdenv.mkDerivation rec {
-  name = "gimp-2.8.0";
+  name = "gimp-2.8.2";
   
   src = fetchurl {
     url = "ftp://ftp.gimp.org/pub/gimp/v2.8/${name}.tar.bz2";
-    md5 = "28997d14055f15db063eb92e1c8a7ebb";
+    md5 = "b542138820ca3a41cbd63fc331907955";
   };
   
   buildInputs = 
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index e8307a79cf7..828d55ad478 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -20,7 +20,9 @@ stdenv.mkDerivation rec {
     "-DPYTHON_LIBPATH=${python}/lib"
   ];
 
-  NIX_CFLAGS_COMPILE = "-iquote ${ilmbase}/include/OpenEXR -I${python}/include/${python.libPrefix}";
+  NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR -I${python}/include/${python.libPrefix}";
+
+  enableParallelBuilding = true;
 
   meta = {
     description = "3D Creation/Animation/Publishing System";
diff --git a/pkgs/applications/misc/grass/default.nix b/pkgs/applications/misc/grass/default.nix
index 067e4354573..6abf6da4a69 100644
--- a/pkgs/applications/misc/grass/default.nix
+++ b/pkgs/applications/misc/grass/default.nix
@@ -1,4 +1,4 @@
-{getConfig, ...}@a:
+{ config, ... }@a:
 
 # You can set gui by exporting GRASS_GUI=..
 # see http://grass.itc.it/gdp/html_grass64/g.gui.html
@@ -36,31 +36,31 @@ a.composableDerivation.composableDerivation {} (fix: {
   ];
 
   cfg = {
-    _64bitSupport = getConfig ["grass" "64bitSupport"] true;
-    cursesSupport = getConfig ["grass" "curses"] true;
-    gdalSupport = getConfig ["grass" "gdal"] true;
-    pythonSupport = getConfig ["grass" "python"] true;
-    wxwidgetsSupport = getConfig ["grass" "wxwidgets"] true;
-    readlineSupport = getConfig ["grass" "readline"] true;
-    jpegSupport = getConfig ["grass" "jpeg"] true;
-    tiffSupport = getConfig ["grass" "tiff"] true;
-    pngSupport = getConfig ["grass" "png"] true;
-    tcltkSupport = getConfig ["grass" "tcltk"] true;
-    postgresSupport = getConfig ["grass" "postgres"] true;
-    mysqlSupport = getConfig ["grass" "mysql"] true;
-    sqliteSupport = getConfig ["grass" "sqlite"] true;
-    ffmpegSupport = getConfig ["grass" "ffmpeg"] true;
-    openglSupport = getConfig ["grass" "opengl"] true;
-    odbcSupport = getConfig ["grass" "odbc"] false; # fails to find libodbc - why ?
-    fftwSupport = getConfig ["grass" "fftw"] true;
-    blasSupport = getConfig ["grass" "blas"] true;
-    lapackSupport = getConfig ["grass" "lapack"] true;
-    cairoSupport = getConfig ["grass" "cairo"] true;
-    motifSupport = getConfig ["grass" "motif"] true;
-    freetypeSupport = getConfig ["grass" "freetype"] true;
-    projSupport = getConfig ["grass" "proj"] true;
-    opendwgSupport = getConfig ["grass" "dwg"] false;
-    largefileSupport = getConfig ["grass" "largefile"] true;
+    _64bitSupport = config.grass."64bitSupport" or true;
+    cursesSupport = config.grass.curses or true;
+    gdalSupport = config.grass.gdal or true;
+    pythonSupport = config.grass.python or true;
+    wxwidgetsSupport = config.grass.wxwidgets or true;
+    readlineSupport = config.grass.readline or true;
+    jpegSupport = config.grass.jpeg or true;
+    tiffSupport = config.grass.tiff or true;
+    pngSupport = config.grass.png or true;
+    tcltkSupport = config.grass.tcltk or true;
+    postgresSupport = config.grass.postgres or true;
+    mysqlSupport = config.grass.mysql or true;
+    sqliteSupport = config.grass.sqlite or true;
+    ffmpegSupport = config.grass.ffmpeg or true;
+    openglSupport = config.grass.opengl or true;
+    odbcSupport = config.grass.odbc or false; # fails to find libodbc - why ?
+    fftwSupport = config.grass.fftw or true;
+    blasSupport = config.grass.blas or true;
+    lapackSupport = config.grass.lapack or true;
+    cairoSupport = config.grass.cairo or true;
+    motifSupport = config.grass.motif or true;
+    freetypeSupport = config.grass.freetype or true;
+    projSupport = config.grass.proj or true;
+    opendwgSupport = config.grass.dwg or false;
+    largefileSupport = config.grass.largefile or true;
   };
 
   # ?? NLS support:                no
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 7a3c387deda..33f9283b47a 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, getConfig, fetchurl, makeWrapper, which
+{ stdenv, config, fetchurl, makeWrapper, which
 
 # default dependencies
 , bzip2, flac, speex
@@ -22,10 +22,12 @@
 , libselinux # config.selinux
 }:
 
-let
-  mkConfigurable = stdenv.lib.mapAttrs (flag: default: getConfig ["chromium" flag] default);
+with stdenv.lib;
 
-  config = mkConfigurable {
+let
+  mkConfigurable = mapAttrs (flag: default: attrByPath ["chromium" flag] default config);
+
+  cfg = mkConfigurable {
     channel = "stable";
     selinux = false;
     nacl = false;
@@ -34,18 +36,19 @@ let
     gnomeKeyring = false;
     proprietaryCodecs = true;
     cups = false;
-    pulseaudio = getConfig ["pulseaudio"] true;
+    pulseaudio = config.pulseaudio or true;
   };
 
-  sourceInfo = builtins.getAttr config.channel (import ./sources.nix);
+  sourceInfo = builtins.getAttr cfg.channel (import ./sources.nix);
 
-  mkGypFlags = with stdenv.lib; let
-    sanitize = value:
-      if value == true then "1"
-      else if value == false then "0"
-      else "${value}";
-    toFlag = key: value: "-D${key}=${sanitize value}";
-  in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
+  mkGypFlags =
+    let
+      sanitize = value:
+        if value == true then "1"
+        else if value == false then "0"
+        else "${value}";
+      toFlag = key: value: "-D${key}=${sanitize value}";
+    in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
 
   gypFlagsUseSystemLibs = {
     use_system_bzip2 = true;
@@ -56,7 +59,7 @@ let
     use_system_libpng = true;
     use_system_libxml = true;
     use_system_speex = true;
-    use_system_ssl = config.openssl;
+    use_system_ssl = cfg.openssl;
     use_system_stlport = true;
     use_system_xdg_utils = true;
     use_system_yasm = true;
@@ -78,12 +81,12 @@ let
   ];
 
   seccompPatch = let
-    pre22 = stdenv.lib.versionOlder sourceInfo.version "22.0.0.0";
+    pre22 = versionOlder sourceInfo.version "22.0.0.0";
   in if pre22 then ./enable_seccomp.patch else ./enable_seccomp22.patch;
 
   # XXX: this reverts r151720 to prevent http://crbug.com/143623
   maybeRevertZlibChanges = let
-    below22 = stdenv.lib.versionOlder sourceInfo.version "22.0.0.0";
+    below22 = versionOlder sourceInfo.version "22.0.0.0";
     patch = fetchurl {
       name = "revert-r151720";
       url = "http://git.chromium.org/gitweb/?p=chromium.git;a=commitdiff_plain;"
@@ -91,7 +94,7 @@ let
           + "h=0fabb4fda7059a8757422e8a44e70deeab28e698";
       sha256 = "0n0d6mkg89g8q63cifapzpg9dxfs2n6xvk4k13szhymvf67b77pf";
     };
-  in stdenv.lib.optional (!below22) patch;
+  in optional (!below22) patch;
 
 in stdenv.mkDerivation rec {
   name = "${packageName}-${version}";
@@ -108,28 +111,28 @@ in stdenv.mkDerivation rec {
     which makeWrapper
     python perl pkgconfig
     nspr udev
-    (if config.openssl then openssl else nss)
+    (if cfg.openssl then openssl else nss)
     utillinux alsaLib
     gcc bison gperf
     krb5
     glib gtk dbus_glib
     libXScrnSaver libXcursor mesa
-  ] ++ stdenv.lib.optional config.gnomeKeyring libgnome_keyring
-    ++ stdenv.lib.optionals config.gnome [ gconf libgcrypt ]
-    ++ stdenv.lib.optional config.selinux libselinux
-    ++ stdenv.lib.optional config.cups libgcrypt
-    ++ stdenv.lib.optional config.pulseaudio pulseaudio;
+  ] ++ optional cfg.gnomeKeyring libgnome_keyring
+    ++ optionals cfg.gnome [ gconf libgcrypt ]
+    ++ optional cfg.selinux libselinux
+    ++ optional cfg.cups libgcrypt
+    ++ optional cfg.pulseaudio pulseaudio;
 
-  opensslPatches = stdenv.lib.optional config.openssl openssl.patches;
+  opensslPatches = optional cfg.openssl openssl.patches;
 
   prePatch = "patchShebangs .";
 
-  patches = stdenv.lib.optional (!config.selinux) seccompPatch
-         ++ stdenv.lib.optional config.cups ./cups_allow_deprecated.patch
-         ++ stdenv.lib.optional config.pulseaudio ./pulseaudio_array_bounds.patch
+  patches = optional (!cfg.selinux) seccompPatch
+         ++ optional cfg.cups ./cups_allow_deprecated.patch
+         ++ optional cfg.pulseaudio ./pulseaudio_array_bounds.patch
          ++ maybeRevertZlibChanges;
 
-  postPatch = stdenv.lib.optionalString config.openssl ''
+  postPatch = optionalString cfg.openssl ''
     cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
   '';
 
@@ -137,21 +140,21 @@ in stdenv.mkDerivation rec {
     linux_use_gold_binary = false;
     linux_use_gold_flags = false;
     proprietary_codecs = false;
-    use_gnome_keyring = config.gnomeKeyring;
-    use_gconf = config.gnome;
-    use_gio = config.gnome;
-    use_pulseaudio = config.pulseaudio;
-    disable_nacl = !config.nacl;
-    use_openssl = config.openssl;
-    selinux = config.selinux;
-    use_cups = config.cups;
-  } // stdenv.lib.optionalAttrs config.proprietaryCodecs {
+    use_gnome_keyring = cfg.gnomeKeyring;
+    use_gconf = cfg.gnome;
+    use_gio = cfg.gnome;
+    use_pulseaudio = cfg.pulseaudio;
+    disable_nacl = !cfg.nacl;
+    use_openssl = cfg.openssl;
+    selinux = cfg.selinux;
+    use_cups = cfg.cups;
+  } // optionalAttrs cfg.proprietaryCodecs {
     # enable support for the H.264 codec
     proprietary_codecs = true;
     ffmpeg_branding = "Chrome";
-  } // stdenv.lib.optionalAttrs (stdenv.system == "x86_64-linux") {
+  } // optionalAttrs (stdenv.system == "x86_64-linux") {
     target_arch = "x64";
-  } // stdenv.lib.optionalAttrs (stdenv.system == "i686-linux") {
+  } // optionalAttrs (stdenv.system == "i686-linux") {
     target_arch = "ia32";
   });
 
@@ -203,11 +206,11 @@ in stdenv.mkDerivation rec {
     done
   '';
 
-  meta =  with stdenv.lib; {
+  meta = {
     description = "Chromium, an open source web browser";
     homepage = http://www.chromium.org/;
-    maintainers = with stdenv.lib.maintainers; [ goibhniu chaoflow ];
+    maintainers = with maintainers; [ goibhniu chaoflow ];
     license = licenses.bsd3;
-    platforms = with stdenv.lib.platforms; linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/baresip/default.nix b/pkgs/applications/networking/instant-messengers/baresip/default.nix
new file mode 100644
index 00000000000..ba530374c71
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/baresip/default.nix
@@ -0,0 +1,45 @@
+{stdenv, fetchurl, zlib, openssl, libre, librem, pkgconfig
+, cairo, mpg123, gstreamer, gst_ffmpeg, gst_plugins_base, gst_plugins_bad
+, gst_plugins_good, alsaLib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg
+, gsm, speex, portaudio, spandsp, libuuid
+}:
+stdenv.mkDerivation rec {
+  version = "0.4.2";
+  name = "baresip-${version}";
+  src=fetchurl {
+    url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
+    sha256 = "3ac15b3d3cf17b2417ba871e7eaaaf41ab10cb30b900adcee357d5e91ea033e7";
+  };
+  buildInputs = [zlib openssl libre librem pkgconfig
+    cairo mpg123 gstreamer gst_ffmpeg gst_plugins_base gst_plugins_bad gst_plugins_good
+    alsaLib SDL libv4l celt libsndfile srtp ffmpeg gsm speex portaudio spandsp libuuid
+    ];
+  makeFlags = [
+    "LIBRE_MK=${libre}/share/re/re.mk"
+    "LIBRE_INC=${libre}/include/re"
+    "LIBRE_SO=${libre}/lib"
+    "LIBREM_PATH=${librem}"
+    ''PREFIX=$(out)''
+    "USE_VIDEO=1"
+
+    "USE_ALSA=1" "USE_AMR=1" "USE_CAIRO=1" "USE_CELT=1" 
+    "USE_CONS=1" "USE_EVDEV=1" "USE_FFMPEG=1"  "USE_GSM=1" "USE_GST=1" 
+    "USE_L16=1" "USE_MPG123=1" "USE_OSS=1" "USE_PLC=1" 
+    "USE_PORTAUDIO=1" "USE_SDL=1" "USE_SNDFILE=1" "USE_SPEEX=1" 
+    "USE_SPEEX_AEC=1" "USE_SPEEX_PP=1" "USE_SPEEX_RESAMP=1" "USE_SRTP=1" 
+    "USE_STDIO=1" "USE_SYSLOG=1" "USE_UUID=1" "USE_V4L2=1" "USE_X11=1"
+
+    "USE_BV32=" "USE_COREAUDIO=" "USE_G711=" "USE_G722=" "USE_G722_1=" 
+    "USE_ILBC=" "USE_OPUS=" "USE_SILK=" 
+  ]
+  ++ stdenv.lib.optional (stdenv.gcc.gcc != null) "SYSROOT_ALT=${stdenv.gcc.gcc}"
+  ++ stdenv.lib.optional (stdenv.gcc.libc != null) "SYSROOT=${stdenv.gcc.libc}"
+  ;
+  NIX_CFLAGS_COMPILE='' -I${librem}/include/rem -I${gsm}/include/gsm '';
+  meta = {
+    homepage = "http://www.creytiv.com/baresip.html";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = with stdenv.lib.licenses; bsd3;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix
index cfd89874f49..1def7e2b1f0 100644
--- a/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -8,7 +8,8 @@ let
     pkgconfig makeWrapper libglade pyopenssl libXScrnSaver
     libXt xproto libXext xextproto libX11 gtkspell aspell
     scrnsaverproto pycrypto pythonDBus pythonSexy 
-    docutils pyasn1
+    docutils pyasn1 farstream gst_plugins_bad gstreamer
+    gst_ffmpeg gst_python
   ];
 in
 rec {
@@ -37,6 +38,7 @@ rec {
       sed -e 's^'"$i"'^'"$out/bin-wrapped/$name"'^' -i "$out/bin/$name"
       sed -e "2aexport LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}${a.gtkspell}/lib:${a.gtkspell}/lib64\"" -i "$out/bin/gajim"
       sed -e "2aexport NIX_LDFLAGS=\"\$NIX_LDFLAGS -L${a.gtkspell}/lib -L${a.gtkspell}/lib64\"" -i "$out/bin/gajim"
+      sed -e "2aexport GST_PLUGIN_PATH=\"\$GST_PLUGIN_PATH''${GST_PLUGIN_PATH:+:}$(echo ${a.gst_plugins_bad}/lib/gstreamer-*):$(echo ${a.gst_ffmpeg}/lib/gstreamer-*):$(echo ${a.farstream}/lib/gstreamer-*)\"" -i "$out/bin/gajim"
     done
   '') ["wrapBinContentsPython"];
 
diff --git a/pkgs/applications/version-management/darcs/default.nix b/pkgs/applications/version-management/darcs/default.nix
index 3fb667b9461..a6b4b9a60de 100644
--- a/pkgs/applications/version-management/darcs/default.nix
+++ b/pkgs/applications/version-management/darcs/default.nix
@@ -15,6 +15,10 @@ cabal.mkDerivation (self: {
     zlib
   ];
   extraLibraries = [ curl ];
+  postInstall = ''
+    mkdir -p $out/etc/bash_completion.d
+    mv contrib/darcs_completion $out/etc/bash_completion.d/darcs
+  '';
   meta = {
     homepage = "http://darcs.net/";
     description = "a distributed, interactive, smart revision control system";
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 b48c5f05d9e..916aa69b05f 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -9,7 +9,7 @@
 
 let
 
-  version = "1.7.12";
+  version = "1.7.12.1";
 
   svn = subversionClient.override { perlBindings = true; };
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://git-core.googlecode.com/files/git-${version}.tar.gz";
-    sha256 = "3b8661782dc280d3d4be5193bcb8a1895c1ba272cf02efb70857bbcc4415f505";
+    sha256 = "a0c2b7e122ac2e40fe5b69baeeaac24b237a1341f08ba848cadaa835a0dbcfcd";
   };
 
   patches = [ ./docbook2texi.patch ];
diff --git a/pkgs/build-support/source-from-head-fun.nix b/pkgs/build-support/source-from-head-fun.nix
index 3281cec5444..c6d6cfcc95b 100644
--- a/pkgs/build-support/source-from-head-fun.nix
+++ b/pkgs/build-support/source-from-head-fun.nix
@@ -9,8 +9,8 @@
    The documentation is availible at http://github.com/MarcWeber/nix-repository-manager/raw/master/README
 
 */
-{ getConfig }:
+{ config }:
   localTarName: publishedSrcSnapshot:
-  if getConfig ["sourceFromHead" "useLocalRepos"] false then
-    "${getConfig ["sourceFromHead" "managedRepoDir"] "/set/sourceFromHead.managedRepoDir/please"}/dist/${localTarName}"
+  if config.sourceFromHead.useLocalRepos or false then
+    "${config.sourceFromHead.managedRepoDir or "/set/sourceFromHead.managedRepoDir/please"}/dist/${localTarName}"
   else publishedSrcSnapshot
diff --git a/pkgs/desktops/kde-4.7/kdelibs.nix b/pkgs/desktops/kde-4.7/kdelibs.nix
index 31df83e5ee9..429fbb2a709 100644
--- a/pkgs/desktops/kde-4.7/kdelibs.nix
+++ b/pkgs/desktops/kde-4.7/kdelibs.nix
@@ -1,4 +1,4 @@
-{ kde, gcc, cmake, perl
+{ kde, gcc, cmake, perl, aspell
 , qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
 , openexr, avahi, kerberos, acl, attr, shared_desktop_ontologies, libXScrnSaver
 , automoc4, strigi, soprano, qca2, attica, enchant, libdbusmenu_qt
@@ -10,7 +10,7 @@ kde {
   buildInputs =
     [ acl attr attica avahi bzip2 enchant fam getopt giflib herqq jasper
       libdbusmenu_qt libXScrnSaver libxslt pcre polkit_qt_1 qca2
-      shared_desktop_ontologies xz udev libxml2 libjpeg kerberos
+      shared_desktop_ontologies xz udev libxml2 libjpeg kerberos aspell
     ];
 
   propagatedBuildInputs = [ qt4 soprano strigi phonon ];
diff --git a/pkgs/desktops/xfce-4.6/applications/mousepad.nix b/pkgs/desktops/xfce-4.6/applications/mousepad.nix
deleted file mode 100644
index 5912b21c766..00000000000
--- a/pkgs/desktops/xfce-4.6/applications/mousepad.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, libxfcegui4, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "mousepad-0.2.16";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/mousepad/0.2/${name}.tar.bz2";
-    sha1 = "4e63033e0a71578f3ec9a0d2e6a505efd0424ef9";
-  };
-
-  buildInputs = [ pkgconfig intltool libxfce4util libxfcegui4 gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/mousepad/;
-    description = "A simple text editor for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/ristretto.nix b/pkgs/desktops/xfce-4.6/applications/ristretto.nix
deleted file mode 100644
index aefabcb65fb..00000000000
--- a/pkgs/desktops/xfce-4.6/applications/ristretto.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libexif, gtk, thunar
-, exo, dbus_glib, libxfce4util, libxfcegui4, xfconf }:
-
-stdenv.mkDerivation rec {
-  name = "ristretto-0.0.22";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/ristretto/0.0/${name}.tar.gz";
-    sha1 = "bddbc8618ba67699ccf5ee4ea0b538b1be7fdb0a";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool libexif gtk thunar exo dbus_glib
-      libxfce4util libxfcegui4 xfconf
-    ];
-
-  NIX_LDFLAGS = "-lX11";
-
-  meta = {
-    homepage = http://goodies.xfce.org/projects/applications/ristretto;
-    description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/terminal.nix b/pkgs/desktops/xfce-4.6/applications/terminal.nix
deleted file mode 100644
index bd198a12af4..00000000000
--- a/pkgs/desktops/xfce-4.6/applications/terminal.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl
-, pkgconfig, ncurses
-, intltool, vte
-, exo, libxfce4util
-, gtk
-}:
-
-stdenv.mkDerivation {
-  name = "xfce-terminal-0.4.5";
-  
-  src = fetchurl {
-    url = http://archive.xfce.org/src/apps/terminal/0.4/Terminal-0.4.5.tar.bz2;
-    sha256 = "14w8mhmyrq6dd9574zfvq0pymknljckq6qgcv1r6c1r22jydrzcj";
-  };
-
-  buildInputs = [ pkgconfig intltool exo gtk vte libxfce4util ncurses ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/terminal;
-    description = "A modern terminal emulator primarily for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix b/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix
deleted file mode 100644
index 76cc5ea028f..00000000000
--- a/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, gstreamer, gst_plugins_base
-, gtk, libxfce4util, libxfcegui4, xfce4panel, xfconf, makeWrapper }:
-
-let
-
-  # The usual Gstreamer plugins package has a zillion dependencies
-  # that we don't need for a simple mixer, so build a minimal package.
-  gst_plugins_minimal = gst_plugins_base.override {
-    minimalDeps = true;
-  };
-
-in
-
-stdenv.mkDerivation rec {
-  name = "xfce4-mixer-4.6.1";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-mixer/4.6/${name}.tar.bz2";
-    sha1 = "e86163782fc4fc31671c7cb212d23d34106ad3af";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool glib gstreamer gst_plugins_minimal gtk
-      libxfce4util libxfcegui4 xfce4panel xfconf makeWrapper
-    ];
-
-  postInstall =
-    ''
-      mkdir -p $out/nix-support
-      echo ${gst_plugins_minimal} > $out/nix-support/propagated-user-env-packages
-    '';
-
-  meta = {
-    homepage = http://www.xfce.org/projects/xfce4-mixer;
-    description = "A volume control application for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix b/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix
deleted file mode 100644
index 65e906f5d83..00000000000
--- a/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, dbus_glib, xfconf
-, libxfcegui4, libxfce4util, libnotify, xfce4panel }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-power-manager-0.8.5";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-power-manager/0.8/${name}.tar.bz2";
-    sha1 = "b1ce0f120733ec1a6267d50ba5c2990bbbbccfd4";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk dbus_glib xfconf libxfcegui4 libxfce4util
-      libnotify xfce4panel
-    ];
-
-  NIX_CFLAGS_COMPILE = "-I${libxfcegui4}/include/xfce4";
-
-  meta = {
-    homepage = http://goodies.xfce.org/projects/applications/xfce4-power-manager;
-    description = "A power manager for the Xfce Desktop Environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix b/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix
deleted file mode 100644
index f42790c6216..00000000000
--- a/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-icon-theme-4.4.3";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/art/xfce4-icon-theme/4.4/${name}.tar.bz2";
-    sha1 = "0c0d0c45cd4a7f609310db8e9d17c1c4a131a6e7";
-  };
-
-  buildInputs = [ pkgconfig intltool gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Icons for Xfce";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/exo.nix b/pkgs/desktops/xfce-4.6/core/exo.nix
deleted file mode 100644
index 5115a402c0d..00000000000
--- a/pkgs/desktops/xfce-4.6/core/exo.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, URI, glib, gtk, libxfce4util
-, enableHAL ? true, hal, dbus_glib }:
-
-stdenv.mkDerivation rec {
-  name = "exo-0.3.107";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha256 = "18z2xmdl577r60ln2waai10dd7i384k0bxrmf7gchrxd9c9aq4ha";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool URI glib gtk libxfce4util ] ++
-    stdenv.lib.optionals enableHAL [ hal dbus_glib ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/exo;
-    description = "Application library for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix b/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix
deleted file mode 100644
index 156da1c6483..00000000000
--- a/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "gtk-xfce-engine-2.6.0";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "a7be2f330833d150c5fb37f68a4c2138348b5446";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "GTK+ theme engine for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix b/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix
deleted file mode 100644
index fda09979819..00000000000
--- a/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool, gtk, libxfce4util }:
-
-stdenv.mkDerivation rec {
-  name = "libxfce4menu-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce-4.6.2/src/${name}.tar.bz2";
-    sha1 = "32a85c1ad31360347d5a2f240c4ddc08b444d124";
-  };
-
-  buildInputs = [ pkgconfig glib intltool gtk libxfce4util ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce menu support library";
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/libxfce4util.nix b/pkgs/desktops/xfce-4.6/core/libxfce4util.nix
deleted file mode 100644
index ca90822cfd0..00000000000
--- a/pkgs/desktops/xfce-4.6/core/libxfce4util.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool }:
-
-stdenv.mkDerivation rec {
-  name = "libxfce4util-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce-4.6.2/src/${name}.tar.bz2";
-    sha256 = "10wcw7r8cjb0farffic037pcjr5bwrjrm8s3jrcb7c0b038pwbmf";
-  };
-
-  buildInputs = [ pkgconfig glib intltool ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Basic utility non-GUI functions for Xfce";
-    license = "bsd";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/libxfcegui4.nix b/pkgs/desktops/xfce-4.6/core/libxfcegui4.nix
deleted file mode 100644
index 056853f9eb1..00000000000
--- a/pkgs/desktops/xfce-4.6/core/libxfcegui4.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, xfconf
-, libglade, libstartup_notification }:
-
-stdenv.mkDerivation rec {
-  name = "libxfcegui4-4.6.4";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce-4.6.2/src/${name}.tar.bz2";
-    sha1 = "a12c79f8fa14c5d1fc0fca5615a451b7d23f8695";
-  };
-
-  # By default, libxfcegui4 tries to install into libglade's prefix.
-  # Install into our own prefix instead.
-  preConfigure =
-    ''
-      configureFlags="--with-libglade-module-path=$out/lib/libglade/2.0"
-    '';
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util xfconf libglade
-      libstartup_notification
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Basic GUI library for Xfce";
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/thunar.nix b/pkgs/desktops/xfce-4.6/core/thunar.nix
deleted file mode 100644
index 2fecb7814b1..00000000000
--- a/pkgs/desktops/xfce-4.6/core/thunar.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util
-, dbus_glib, libstartup_notification, xfconf, hal, xfce4panel
-, gamin }:
-
-stdenv.mkDerivation rec {
-  name = "thunar-1.0.2";
-  
-  src = fetchurl {
-    url = http://archive.xfce.org/xfce/4.6.2/src/Thunar-1.0.2.tar.bz2;
-    sha1 = "f7ae00c32402e4bc502aba15477b78e2c558c7c3";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool exo gtk libxfce4util
-      dbus_glib libstartup_notification xfconf xfce4panel gamin
-    ];
-
-  propagatedBuildInputs = [ hal ];
-
-  meta = {
-    homepage = http://thunar.xfce.org/;
-    description = "Xfce file manager";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce-utils.nix b/pkgs/desktops/xfce-4.6/core/xfce-utils.nix
deleted file mode 100644
index ed2bfc56108..00000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce-utils.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4 }:
-
-stdenv.mkDerivation rec {
-  name = "xfce-utils-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "6373886c3d70e576859741bde747a235567ffd8e";
-  };
-
-  configureFlags = "--with-xsession-prefix=$(out)/share/xsessions";
-
-  buildInputs = [ pkgconfig intltool gtk libxfce4util libxfcegui4 ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Utilities and scripts for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix b/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix
deleted file mode 100644
index 7708d019b90..00000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4
-, libwnck, exo, libstartup_notification }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-panel-4.6.4";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "d2b310c036be84ed9886c06ae35b7a1a8eabfcb8";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util exo libwnck
-      libstartup_notification
-    ];
-
-  propagatedBuildInputs = [ libxfcegui4 ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce panel";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce4-session.nix b/pkgs/desktops/xfce-4.6/core/xfce4-session.nix
deleted file mode 100644
index fc56be085c4..00000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce4-session.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4
-, libwnck, dbus_glib, xfconf, libglade, xorg }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-session-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "2a5778a1543f97845f118a186e2dbb8a8ea3ff4b";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libxfcegui4 libwnck dbus_glib
-      xfconf libglade xorg.iceauth
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Session manager for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix b/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix
deleted file mode 100644
index 0935955231e..00000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfcegui4
-, libglade, xfconf, xorg, libwnck, libnotify }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-settings-4.6.5";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "c036cc2f3100a46b2649e678dff7c0106b219263";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool exo gtk libxfce4util libxfcegui4 libglade
-      xfconf xorg.libXi xorg.libXcursor libwnck libnotify
-    #gtk libxfce4util libxfcegui4 libwnck dbus_glib
-      #xfconf libglade xorg.iceauth
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Settings manager for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfconf.nix b/pkgs/desktops/xfce-4.6/core/xfconf.nix
deleted file mode 100644
index 2fc88bd1258..00000000000
--- a/pkgs/desktops/xfce-4.6/core/xfconf.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, dbus_glib }:
-
-stdenv.mkDerivation rec {
-  name = "xfconf-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "2b9656a1b7f323d2600ddc929191afb50c8018f8";
-  };
-
-  buildInputs = [ pkgconfig intltool glib libxfce4util ];
-
-  propagatedBuildInputs = [ dbus_glib ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Simple client-server configuration storage and query system for Xfce";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfdesktop.nix b/pkgs/desktops/xfce-4.6/core/xfdesktop.nix
deleted file mode 100644
index 90a69bd8692..00000000000
--- a/pkgs/desktops/xfce-4.6/core/xfdesktop.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4
-, libwnck, xfconf, libglade, libxfce4menu, xfce4panel, thunar, exo }:
-
-stdenv.mkDerivation rec {
-  name = "xfdesktop-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "cefcd1c1386d34386d4e900cbf88b7c24ef3bafb";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libxfcegui4 libwnck xfconf
-      libglade libxfce4menu xfce4panel thunar exo
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce desktop manager";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfwm4.nix b/pkgs/desktops/xfce-4.6/core/xfwm4.nix
deleted file mode 100644
index 6e88ef9cd0d..00000000000
--- a/pkgs/desktops/xfce-4.6/core/xfwm4.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gtk, intltool, libglade, libxfce4util
-, libxfcegui4, xfconf, libwnck, libstartup_notification, xorg }:
-
-stdenv.mkDerivation rec {
-  name = "xfwm4-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha256 = "0a2q2pr5mzp6hsrd0llr90i9wii2qj2054shkpvkain20gp1ja11";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libglade libxfce4util libxfcegui4 xfconf
-      libwnck libstartup_notification
-      xorg.libXcomposite xorg.libXfixes xorg.libXdamage
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Window manager for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/default.nix b/pkgs/desktops/xfce-4.6/default.nix
deleted file mode 100644
index 1769c3f7a04..00000000000
--- a/pkgs/desktops/xfce-4.6/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ callPackage, pkgs }:
-
-rec {
-  inherit (pkgs) gtk glib;
-
-  #### CORE
-
-  exo = callPackage ./core/exo.nix {
-    inherit (pkgs.perlPackages) URI;
-  };
-
-  libxfce4util = callPackage ./core/libxfce4util.nix { };
-
-  libxfcegui4 = callPackage ./core/libxfcegui4.nix {
-    inherit (pkgs.gnome) libglade;
-  };
-
-  libxfce4menu = callPackage ./core/libxfce4menu.nix { };
-
-  xfconf = callPackage ./core/xfconf.nix { };
-
-  xfwm4 = callPackage ./core/xfwm4.nix {
-    inherit (pkgs.gnome) libglade libwnck;
-  };
-
-  xfceutils = callPackage ./core/xfce-utils.nix { };
-
-  xfce4session = callPackage ./core/xfce4-session.nix {
-    inherit (pkgs.gnome) libglade libwnck;
-  };
-
-  xfce4settings = callPackage ./core/xfce4-settings.nix {
-    inherit (pkgs.gnome) libglade libwnck;
-  };
-
-  xfce4panel = callPackage ./core/xfce4-panel.nix {
-    inherit (pkgs.gnome) libwnck;
-  };
-
-  xfdesktop = callPackage ./core/xfdesktop.nix {
-    inherit (pkgs.gnome) libwnck libglade;
-  };
-
-  thunar = callPackage ./core/thunar.nix { };
-
-  gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { };
-
-  #### APPLICATIONS
-  
-  terminal = callPackage ./applications/terminal.nix {
-    inherit (pkgs.gnome) vte;
-  };
-
-  mousepad = callPackage ./applications/mousepad.nix { };
-
-  ristretto = callPackage ./applications/ristretto.nix { };
-
-  xfce4_power_manager = callPackage ./applications/xfce4-power-manager.nix { };
-
-  xfce4mixer = callPackage ./applications/xfce4-mixer.nix { };
-
-  #### ART
-
-  xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { };
-  
-}
diff --git a/pkgs/development/compilers/gcc/4.7/default.nix b/pkgs/development/compilers/gcc/4.7/default.nix
index 02733d04203..2a45dc50c6d 100644
--- a/pkgs/development/compilers/gcc/4.7/default.nix
+++ b/pkgs/development/compilers/gcc/4.7/default.nix
@@ -49,7 +49,7 @@ assert langGo -> langCC;
 with stdenv.lib;
 with builtins;
 
-let version = "4.7.1";
+let version = "4.7.2";
 
     # Whether building a cross-compiler for GNU/Hurd.
     crossGNU = cross != null && cross.config == "i586-pc-gnu";
@@ -164,7 +164,7 @@ stdenv.mkDerivation ({
 
   src = fetchurl {
     url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
-    sha256 = "0vs0v89zzgkngkw2p8kdynyk7j8ky4wf6zyrg3rsschpl1pky28n";
+    sha256 = "115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la";
   };
 
   inherit patches;
diff --git a/pkgs/development/compilers/ghc/with-packages.nix b/pkgs/development/compilers/ghc/with-packages.nix
index 9313c54b908..f4f567f30b3 100644
--- a/pkgs/development/compilers/ghc/with-packages.nix
+++ b/pkgs/development/compilers/ghc/with-packages.nix
@@ -59,6 +59,11 @@ stdenv.mkDerivation rec {
           ln -s $f $out/bin
           echo -n .
         done
+        for f in "$currentPath/etc/bash_completion.d/"*; do
+	  mkdir -p $out/etc/bash_completion.d
+          ln -s $f $out/etc/bash_completion.d/
+          echo -n .
+        done
         for f in "$currentPkgDir/"*.conf; do
           ln -s $f $linkedPkgDir
           echo -n .
diff --git a/pkgs/development/compilers/idris/default.nix b/pkgs/development/compilers/idris/default.nix
index 99b8cbb7337..deb97a19b1c 100644
--- a/pkgs/development/compilers/idris/default.nix
+++ b/pkgs/development/compilers/idris/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "idris";
-  version = "0.9.3";
-  sha256 = "1g8mb5g4w6zgcfx2g7l5ksr0lsjfghznxgh684yzlg8pfzah0hqh";
+  version = "0.9.3.1";
+  sha256 = "1dqb7gd5jn5f062hfwrirrfxv6ac1f6khkfax912j01mg147hv9a";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/compilers/julia/default.nix b/pkgs/development/compilers/julia/default.nix
index c1b607b725b..a01aa3aded4 100644
--- a/pkgs/development/compilers/julia/default.nix
+++ b/pkgs/development/compilers/julia/default.nix
@@ -7,11 +7,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "julia";
-  date = "20120904";
+  date = "20120922";
   name = "${pname}-git-${date}";
 
   grisu_ver = "1.1.1";
-  dsfmt_ver = "2.1";
+  dsfmt_ver = "2.2";
   openblas_ver = "v0.2.2";
   lapack_ver = "3.4.1";
   arpack_ver = "3.1.2";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   dsfmt_src = fetchurl {
     url = "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${dsfmt_ver}.tar.gz";
     name = "dsfmt-${dsfmt_ver}.tar.gz";
-    sha256 = "e9d3e04bc984ec3b14033342f5ebdcd5202d8d8e40128dd737f566945612378f";
+    sha256 = "bc3947a9b2253a869fcbab8ff395416cb12958be9dba10793db2cd7e37b26899";
   };
   openblas_src = fetchurl {
     url = "https://github.com/xianyi/OpenBLAS/tarball/${openblas_ver}";
@@ -54,8 +54,8 @@ stdenv.mkDerivation rec {
 
   src = fetchgit {
     url = "git://github.com/JuliaLang/julia.git";
-    rev = "b842bf4ae4d80f28803ec54f3da412a0248046a9";
-    sha256 = "4d67f4f4d35c76ea8981198e42feb1c30a50ac7e1e15b752fa41b26ebadcd828";
+    rev = "e1ba1ebf09da42a5bd7f4ed18f1595ae06032b4c";
+    sha256 = "187e67a7c6bf44469e0e0dda41072ac8f3a40380ea9364ed07a4cadc08965663";
   };
 
   buildInputs = [ gfortran perl m4 gmp pcre llvm readline zlib
diff --git a/pkgs/development/interpreters/octave/hg.nix b/pkgs/development/interpreters/octave/hg.nix
index a908ddc0fc8..f414dd71965 100644
--- a/pkgs/development/interpreters/octave/hg.nix
+++ b/pkgs/development/interpreters/octave/hg.nix
@@ -1,5 +1,5 @@
 {stdenv, fetchurl, gfortran, readline, ncurses, perl, flex,
- bison, autoconf, automake, sourceFromHead, getConfig, lib, atlas, gperf, python, glibc, gnuplot, texinfo, texLive, qhull, libX11}:
+ bison, autoconf, automake, sourceFromHead, config, lib, atlas, gperf, python, glibc, gnuplot, texinfo, texLive, qhull, libX11}:
 
 let commonBuildInputs = [gfortran readline ncurses perl glibc qhull libX11 texinfo]; in
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation ({
       license = "GPL-3";
     };
 } // (
-  if (getConfig ["octave" "devVersion"] false) then {
+  if (config.octave.devVersion or false) then {
     name = "octave-hg"; # developement version mercurial repo
     # REGION AUTO UPDATE:   { name="octave"; type = "hg"; url = "http://www.octave.org/hg/octave"; }
     src = sourceFromHead "octave-03b414516dd8.tar.gz"
@@ -27,7 +27,7 @@ stdenv.mkDerivation ({
         export HOME=$TMP
         '';
     buildInputs = commonBuildInputs ++ [ flex bison autoconf automake gperf gnuplot texLive ]
-                  ++ lib.optionals (getConfig ["octave" "atlas"] true) [ python atlas ];
+                  ++ lib.optionals (config.octave.atlas or true) [ python atlas ];
     # it does build, but documentation doesn't.. So just remove that directory
     # from the buildfile
     buildPhase = ''
@@ -44,6 +44,6 @@ stdenv.mkDerivation ({
       sha256 = "1lm4v85kdic4n5yxwzrdb0v6dc6nw06ljgx1q8hfkmi146kpg7s6";
     };
     buildInputs = commonBuildInputs ++ [ flex bison autoconf automake python ]
-                  ++ lib.optionals (getConfig ["octave" "atlas"] true) [ python atlas ];
+                  ++ lib.optionals (config.octave.atlas or true) [ python atlas ];
   }
 ))
diff --git a/pkgs/development/interpreters/php/5.2.nix b/pkgs/development/interpreters/php/5.2.nix
index f98d178663f..4395c0f498c 100644
--- a/pkgs/development/interpreters/php/5.2.nix
+++ b/pkgs/development/interpreters/php/5.2.nix
@@ -121,23 +121,23 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
     };
 
   cfg = {
-    mysqlSupport = getConfig ["php" "mysql"] true;
-    mysqliSupport = getConfig ["php" "mysqli"] true;
-    pdo_mysqlSupport = getConfig ["php" "pdo_mysql"] true;
-    libxml2Support = getConfig ["php" "libxml2"] true;
-    apxs2Support = getConfig ["php" "apxs2"] true;
-    bcmathSupport = getConfig ["php" "bcmath"] true;
-    socketsSupport = getConfig ["php" "sockets"] true;
-    curlSupport = getConfig ["php" "curl"] true;
-    gettextSupport = getConfig ["php" "gettext"] true;
-    postgresqlSupport = getConfig ["php" "postgresql"] true;
-    readlineSupport = getConfig ["php" "readline"] true;
-    sqliteSupport = getConfig ["php" "sqlite"] true;
-    soapSupport = getConfig ["php" "soap"] true;
-    zlibSupport = getConfig ["php" "zlib"] true;
-    opensslSupport = getConfig ["php" "openssl"] true;
-    mbstringSupport = getConfig ["php" "mbstring"] true;
-    gdSupport = getConfig ["php" "gd"] true;
+    mysqlSupport = config.php.mysql or true;
+    mysqliSupport = config.php.mysqli or true;
+    pdo_mysqlSupport = config.php.pdo_mysql or true;
+    libxml2Support = config.php.libxml2 or true;
+    apxs2Support = config.php.apxs2 or true;
+    bcmathSupport = config.php.bcmath or true;
+    socketsSupport = config.php.sockets or true;
+    curlSupport = config.php.curl or true;
+    gettextSupport = config.php.gettext or true;
+    postgresqlSupport = config.php.postgresql or true;
+    readlineSupport = config.php.readline or true;
+    sqliteSupport = config.php.sqlite or true;
+    soapSupport = config.php.soap or true;
+    zlibSupport = config.php.zlib or true;
+    opensslSupport = config.php.openssl or true;
+    mbstringSupport = config.php.mbstring or true;
+    gdSupport = config.php.gd or true;
   };
 
   configurePhase = ''
diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix
index b4f00ab1f7d..d4aebc77637 100644
--- a/pkgs/development/interpreters/php/5.3.nix
+++ b/pkgs/development/interpreters/php/5.3.nix
@@ -121,23 +121,23 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
     };
 
   cfg = {
-    mysqlSupport = getConfig ["php" "mysql"] true;
-    mysqliSupport = getConfig ["php" "mysqli"] true;
-    pdo_mysqlSupport = getConfig ["php" "pdo_mysql"] true;
-    libxml2Support = getConfig ["php" "libxml2"] true;
-    apxs2Support = getConfig ["php" "apxs2"] true;
-    bcmathSupport = getConfig ["php" "bcmath"] true;
-    socketsSupport = getConfig ["php" "sockets"] true;
-    curlSupport = getConfig ["php" "curl"] true;
-    gettextSupport = getConfig ["php" "gettext"] true;
-    postgresqlSupport = getConfig ["php" "postgresql"] true;
-    readlineSupport = getConfig ["php" "readline"] true;
-    sqliteSupport = getConfig ["php" "sqlite"] true;
-    soapSupport = getConfig ["php" "soap"] true;
-    zlibSupport = getConfig ["php" "zlib"] true;
-    opensslSupport = getConfig ["php" "openssl"] true;
-    mbstringSupport = getConfig ["php" "mbstring"] true;
-    gdSupport = getConfig ["php" "gd"] true;
+    mysqlSupport = config.php.mysql or true;
+    mysqliSupport = config.php.mysqli or true;
+    pdo_mysqlSupport = config.php.pdo_mysql or true;
+    libxml2Support = config.php.libxml2 or true;
+    apxs2Support = config.php.apxs2 or true;
+    bcmathSupport = config.php.bcmath or true;
+    socketsSupport = config.php.sockets or true;
+    curlSupport = config.php.curl or true;
+    gettextSupport = config.php.gettext or true;
+    postgresqlSupport = config.php.postgresql or true;
+    readlineSupport = config.php.readline or true;
+    sqliteSupport = config.php.sqlite or true;
+    soapSupport = config.php.soap or true;
+    zlibSupport = config.php.zlib or true;
+    opensslSupport = config.php.openssl or true;
+    mbstringSupport = config.php.mbstring or true;
+    gdSupport = config.php.gd or true;
   };
 
   configurePhase = ''
diff --git a/pkgs/development/interpreters/ruby/libs.nix b/pkgs/development/interpreters/ruby/libs.nix
index 9aa9203f10f..1b4b7aec2b1 100644
--- a/pkgs/development/interpreters/ruby/libs.nix
+++ b/pkgs/development/interpreters/ruby/libs.nix
@@ -1,4 +1,4 @@
-{stdenv, getConfig, fetchurl, callPackage}:
+{ stdenv, config, fetchurl, callPackage }:
 
 let
   inherit (stdenv.lib) fold optional;
@@ -36,7 +36,7 @@ in
           if builtins.pathExists file then import (builtins.toPath file)
           else null;
       in
-      getConfig [ "gems" name ] fallback;
+      stdenv.lib.attrByPath [ "gems" name ] fallback config;
   in
 {
   generated = getLocalGemFun "generated";
diff --git a/pkgs/development/libraries/boost/1.50.nix b/pkgs/development/libraries/boost/1.50.nix
deleted file mode 100644
index 3d6c6010a20..00000000000
--- a/pkgs/development/libraries/boost/1.50.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ stdenv, fetchurl, icu, expat, zlib, bzip2, python
-, enableRelease ? true
-, enableDebug ? false
-, enableSingleThreaded ? false
-, enableMultiThreaded ? true
-, enableShared ? true
-, enableStatic ? false
-, enablePIC ? false
-, enableExceptions ? false
-, taggedLayout ? ((enableRelease && enableDebug) || (enableSingleThreaded && enableMultiThreaded) || (enableShared && enableStatic))
-}:
-
-let
-
-  variant = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableRelease "release" ++
-     stdenv.lib.optional enableDebug "debug");
-
-  threading = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableSingleThreaded "single" ++
-     stdenv.lib.optional enableMultiThreaded "multi");
-
-  link = stdenv.lib.concatStringsSep ","
-    (stdenv.lib.optional enableShared "shared" ++
-     stdenv.lib.optional enableStatic "static");
-
-  # To avoid library name collisions
-  layout = if taggedLayout then "tagged" else "system";
-
-  cflags = if (enablePIC && enableExceptions) then
-             "cflags=-fPIC -fexceptions cxxflags=-fPIC linkflags=-fPIC"
-           else if (enablePIC) then
-             "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC"
-           else if (enableExceptions) then
-             "cflags=-fexceptions"
-           else
-             "";
-in
-
-stdenv.mkDerivation {
-  name = "boost-1.50.0";
-
-  meta = {
-    homepage = "http://boost.org/";
-    description = "Boost C++ Library Collection";
-    license = "boost-license";
-
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.simons ];
-  };
-
-  src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_50_0.tar.bz2";
-    sha256 = "0ac5b82g6b5pdhzypgddql0i3i9vvrwf9iqp3lyp19hzr2wf5b69";
-  };
-
-  enableParallelBuilding = true;
-
-  buildInputs = [icu expat zlib bzip2 python];
-
-  configureScript = "./bootstrap.sh";
-  configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python";
-
-  buildPhase = "./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${layout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
-
-  installPhase = ":";
-
-  crossAttrs = rec {
-    buildInputs = [ expat.hostDrv zlib.hostDrv bzip2.hostDrv ];
-    # all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
-    # override them.
-    propagatedBuildInputs = buildInputs;
-    # We want to substitute the contents of configureFlags, removing thus the
-    # usual --build and --host added on cross building.
-    preConfigure = ''
-      export configureFlags="--prefix=$out --without-icu"
-    '';
-    buildPhase = ''
-      set -x
-      cat << EOF > user-config.jam
-      using gcc : cross : $crossConfig-g++ ;
-      EOF
-      ./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat.hostDrv}/include -sEXPAT_LIBPATH=${expat.hostDrv}/lib --layout=${layout} --user-config=user-config.jam toolset=gcc-cross variant=${variant} threading=${threading} link=${link} ${cflags} --without-python install
-    '';
-  };
-}
diff --git a/pkgs/development/libraries/boost/1.50-headers.nix b/pkgs/development/libraries/boost/1.51-headers.nix
similarity index 62%
rename from pkgs/development/libraries/boost/1.50-headers.nix
rename to pkgs/development/libraries/boost/1.51-headers.nix
index b901d73da73..4b1c1f80c54 100644
--- a/pkgs/development/libraries/boost/1.50-headers.nix
+++ b/pkgs/development/libraries/boost/1.51-headers.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "boost-1.50.0-headers";
+  name = "boost-1.51.0-headers";
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_50_0.tar.bz2";
-    sha256 = "0ac5b82g6b5pdhzypgddql0i3i9vvrwf9iqp3lyp19hzr2wf5b69";
+    url = "mirror://sourceforge/boost/boost_1_51_0.tar.bz2";
+    sha256 = "fb2d2335a29ee7fe040a197292bfce982af84a645c81688a915c84c925b69696";
   };
 
   phases = [ "installPhase" ];
 
   installPhase = ''
     mkdir -p $out/include
-    tar xvf $src -C $out/include --strip-components=1 boost_1_50_0/boost
+    tar xf $src -C $out/include --strip-components=1 ./boost_1_51_0/boost
   '';
 
   meta = {
diff --git a/pkgs/development/libraries/cyrus-sasl/default.nix b/pkgs/development/libraries/cyrus-sasl/default.nix
index a03f753a114..c5aefbe3214 100644
--- a/pkgs/development/libraries/cyrus-sasl/default.nix
+++ b/pkgs/development/libraries/cyrus-sasl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl, db4, gettext }:
+{ stdenv, fetchurl, openssl, db4, gettext, pam }:
 
 stdenv.mkDerivation rec {
   name = "cyrus-sasl-2.1.25";
@@ -8,12 +8,13 @@ stdenv.mkDerivation rec {
     sha256 = "418c16e6240a4f9b637cbe3d62937b9675627bad27c622191d47de8686fe24fe";
   };
 
-  buildInputs = [ openssl db4 gettext ];
+  buildInputs = [ openssl db4 gettext ] ++ stdenv.lib.optional stdenv.isLinux pam;
 
   # Set this variable at build-time to make sure $out can be evaluated.
   preConfigure = ''
     configureFlagsArray=( --with-plugindir=$out/lib/sasl2
                           --with-configdir=$out/lib/sasl2
+			  --with-saslauthd=/run/saslauthd
 			  --enable-login
 			)
   '';
diff --git a/pkgs/development/libraries/farstream/default.nix b/pkgs/development/libraries/farstream/default.nix
index b2b8ca6255b..3babcb82833 100644
--- a/pkgs/development/libraries/farstream/default.nix
+++ b/pkgs/development/libraries/farstream/default.nix
@@ -1,5 +1,7 @@
 { stdenv, fetchurl, libnice, pkgconfig, python, gstreamer, gst_plugins_base
-, pygobject, gst_python, gupnp_igd }:
+, pygobject, gst_python, gupnp_igd
+, gst_plugins_good, gst_plugins_bad, gst_ffmpeg
+}:
 
 stdenv.mkDerivation rec {
   name = "farstream-0.1.2";
@@ -8,11 +10,13 @@ stdenv.mkDerivation rec {
     sha256 = "1nbkbvq959f70zhr03fwdibhs0sbf1k7zmbz9w99vda7gdcl0nps";
   };
 
-  buildInputs = [ libnice python pygobject gst_python gupnp_igd ];
+  buildInputs = [ libnice python pygobject gupnp_igd ];
 
   buildNativeInputs = [ pkgconfig ];
 
-  propagatedBuildInputs = [ gstreamer gst_plugins_base ];
+  propagatedBuildInputs = [ gstreamer gst_plugins_base gst_python 
+    gst_plugins_good gst_plugins_bad gst_ffmpeg
+    ];
 
   meta = {
     homepage = http://www.freedesktop.org/wiki/Software/Farstream;
diff --git a/pkgs/development/libraries/freeimage/default.nix b/pkgs/development/libraries/freeimage/default.nix
index ec381dc433a..c3cfa6e8c87 100644
--- a/pkgs/development/libraries/freeimage/default.nix
+++ b/pkgs/development/libraries/freeimage/default.nix
@@ -1,9 +1,9 @@
 {stdenv, fetchurl, unzip}:
 stdenv.mkDerivation {
-  name = "freeimage-3.15.0";
+  name = "freeimage-3.15.3";
   src = fetchurl {
-    url = mirror://sourceforge/freeimage/FreeImage3150.zip;
-    sha256 = "0diyj862sdqwjqb7v2nccf8cl6886v937jkw6dgszp86qpwsfx3n";
+    url = mirror://sourceforge/freeimage/FreeImage3153.zip;
+    sha256 = "0i60fn1n9rw55dci0yw92zrw7k1jz3f9kv2z1wxmh84s5ngxa626";
   };
   buildInputs = [ unzip ];
   prePatch = ''
diff --git a/pkgs/development/libraries/haskell/Cabal/1.16.0.nix b/pkgs/development/libraries/haskell/Cabal/1.16.0.nix
new file mode 100644
index 00000000000..14e811b5e94
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Cabal/1.16.0.nix
@@ -0,0 +1,15 @@
+{ cabal, filepath }:
+
+cabal.mkDerivation (self: {
+  pname = "Cabal";
+  version = "1.16.0";
+  sha256 = "0ia2ysqbnnbfv75l8617bys5iaq8aygcbd1ijqcbzd3asf8flyms";
+  buildDepends = [ filepath ];
+  meta = {
+    homepage = "http://www.haskell.org/cabal/";
+    description = "A framework for packaging Haskell software";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HStringTemplate/default.nix b/pkgs/development/libraries/haskell/HStringTemplate/default.nix
index 6754c15f3f4..e966fb1283e 100644
--- a/pkgs/development/libraries/haskell/HStringTemplate/default.nix
+++ b/pkgs/development/libraries/haskell/HStringTemplate/default.nix
@@ -1,13 +1,14 @@
-{ cabal, deepseq, filepath, mtl, parsec, syb, sybWithClass, text
-, time, utf8String
+{ cabal, blazeBuilder, deepseq, filepath, mtl, parsec, syb
+, sybWithClass, text, time, utf8String
 }:
 
 cabal.mkDerivation (self: {
   pname = "HStringTemplate";
-  version = "0.6.9";
-  sha256 = "0xa665q5gya51vjkg1i6f6qk67jx28xcbxs5v1d9yr1f8djh5d9v";
+  version = "0.6.10";
+  sha256 = "0asv8n4l2j819cngxgdk5p0b4bqcxnmdc2mlp9b3s7mrs15ljxkk";
   buildDepends = [
-    deepseq filepath mtl parsec syb sybWithClass text time utf8String
+    blazeBuilder deepseq filepath mtl parsec syb sybWithClass text time
+    utf8String
   ];
   meta = {
     description = "StringTemplate implementation in Haskell";
diff --git a/pkgs/development/libraries/haskell/JuicyPixels/default.nix b/pkgs/development/libraries/haskell/JuicyPixels/default.nix
index f6f37cb9692..8ec3a41a709 100644
--- a/pkgs/development/libraries/haskell/JuicyPixels/default.nix
+++ b/pkgs/development/libraries/haskell/JuicyPixels/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "JuicyPixels";
-  version = "2.0";
-  sha256 = "1qvdp0b2fn0cgp9vrm2p35jx8qcz1ikpvjzwkdkc8q84yr1x0457";
+  version = "2.0.1";
+  sha256 = "0irisyrqz9cyyjd428qnnxyybrqc54s1qi5vyz0md0acz7mr5anh";
   buildDepends = [
     cereal deepseq mtl primitive transformers vector zlib
   ];
diff --git a/pkgs/development/libraries/haskell/MissingH/default.nix b/pkgs/development/libraries/haskell/MissingH/default.nix
index 52e26fe1f83..659a1158d0f 100644
--- a/pkgs/development/libraries/haskell/MissingH/default.nix
+++ b/pkgs/development/libraries/haskell/MissingH/default.nix
@@ -1,15 +1,15 @@
 { cabal, filepath, hslogger, HUnit, mtl, network, parsec, random
-, regexCompat
+, regexCompat, time
 }:
 
 cabal.mkDerivation (self: {
   pname = "MissingH";
-  version = "1.1.1.0";
-  sha256 = "1i2fdr6p0jnn9w865ngjcchbsamrvnvdf9c4vzhjhzy500z2k1ry";
+  version = "1.2.0.0";
+  sha256 = "0bqg1j2pvm0ixrbnsxrr5kgibhbp191irhcavqlwfwgaxhrpqnm1";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    filepath hslogger HUnit mtl network parsec random regexCompat
+    filepath hslogger HUnit mtl network parsec random regexCompat time
   ];
   meta = {
     homepage = "http://software.complete.org/missingh";
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.5.nix b/pkgs/development/libraries/haskell/QuickCheck/2.5.1.1.nix
similarity index 65%
rename from pkgs/development/libraries/haskell/QuickCheck/2.5.nix
rename to pkgs/development/libraries/haskell/QuickCheck/2.5.1.1.nix
index 127d90ca5e7..24e16a4955f 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/2.5.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.5.1.1.nix
@@ -1,10 +1,10 @@
-{ cabal, extensibleExceptions, random }:
+{ cabal, random }:
 
 cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "2.5";
-  sha256 = "0a4ibyw5abm7ds6pds41147phjkccx8v60vqdj05c5n28hbzbgbh";
-  buildDepends = [ extensibleExceptions random ];
+  version = "2.5.1.1";
+  sha256 = "1ff2mhm27l8cc8nrsbw2z65dc9m7h879jykl5g7yqip5l88j0jcq";
+  buildDepends = [ random ];
   meta = {
     homepage = "http://code.haskell.org/QuickCheck";
     description = "Automatic testing of Haskell programs";
diff --git a/pkgs/development/libraries/haskell/SDL/default.nix b/pkgs/development/libraries/haskell/SDL/default.nix
index a83518f9e10..62731657e82 100644
--- a/pkgs/development/libraries/haskell/SDL/default.nix
+++ b/pkgs/development/libraries/haskell/SDL/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "SDL";
-  version = "0.6.3";
-  sha256 = "0m3ick3rw8623ja42yfj4pa57naa6yb20ym8lv252gwb18ghp4sp";
+  version = "0.6.4";
+  sha256 = "1zrfx2nw0k8lfkr6vnwsp5wr3yz62v0bq60p4sdzj7gm01bz92g0";
   extraLibraries = [ SDL ];
   meta = {
     description = "Binding to libSDL";
diff --git a/pkgs/development/libraries/haskell/attoparsec-binary/attoparsec-binary-ghc7.6.1.patch b/pkgs/development/libraries/haskell/attoparsec-binary/attoparsec-binary-ghc7.6.1.patch
new file mode 100644
index 00000000000..dae949b2570
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec-binary/attoparsec-binary-ghc7.6.1.patch
@@ -0,0 +1,20 @@
+diff --git a/Data/Attoparsec/Binary.hs b/Data/Attoparsec/Binary.hs
+index fab76c6..01d6c8b 100644
+--- a/Data/Attoparsec/Binary.hs
++++ b/Data/Attoparsec/Binary.hs
+@@ -23,7 +23,7 @@ import Data.Word
+ byteSize :: (Bits a) => a -> Int
+ byteSize = (`div` 8) . bitSize
+ 
+-pack :: (Bits a) => B.ByteString -> a
++pack :: (Bits a, Num a) => B.ByteString -> a
+ pack = B.foldl' (\n h -> (n `shiftL` 8) .|. fromIntegral h) 0
+ 
+ anyWordN :: (Bits a) => (B.ByteString -> a) -> Parser a
+@@ -84,4 +84,4 @@ word64be = wordN unpack
+ 
+ -- |Match a specific 64-bit little-endian word.
+ word64le :: Word64 -> Parser Word64
+-word64le = wordN $ B.reverse . unpack
+\ No newline at end of file
++word64le = wordN $ B.reverse . unpack
diff --git a/pkgs/development/libraries/haskell/attoparsec-binary/default.nix b/pkgs/development/libraries/haskell/attoparsec-binary/default.nix
new file mode 100644
index 00000000000..623ae104090
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec-binary/default.nix
@@ -0,0 +1,13 @@
+{ cabal, attoparsec }:
+
+cabal.mkDerivation (self: {
+  pname = "attoparsec-binary";
+  version = "0.2";
+  sha256 = "02vswxsgayw50xli7mbacsjmk1diifzkfgnyfn9ck5mk41dl9rh5";
+  buildDepends = [ attoparsec ];
+  meta = {
+    description = "Binary processing extensions to Attoparsec";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix b/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
index e887b2d539c..97a6c67f6b2 100644
--- a/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "attoparsec-conduit";
-  version = "0.5.0.1";
-  sha256 = "1qrg524gr9ajdxaqd9gmxpj45d7ga21q27ykr76kjdwxfpqaq6n8";
+  version = "0.5.0.2";
+  sha256 = "183p4jd2cfzvv9lhp4w5z4xrb3ki5l1h8kmlwv8523plnk7x7486";
   buildDepends = [ attoparsec conduit text transformers ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
diff --git a/pkgs/development/libraries/haskell/binary/default.nix b/pkgs/development/libraries/haskell/binary/default.nix
index 83ad3df7071..f0757bcca02 100644
--- a/pkgs/development/libraries/haskell/binary/default.nix
+++ b/pkgs/development/libraries/haskell/binary/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "binary";
-  version = "0.6.0.0";
-  sha256 = "0p72w7f9nn19g2wggsh8x4z7y9s174f3drz9a5ln4x7h554swcxv";
+  version = "0.6.1.0";
+  sha256 = "0d423k37973f5v9mz9401zmsfdgspnf9h6s9xgr3zh19giz7c3js";
   meta = {
     homepage = "https://github.com/kolmodin/binary";
     description = "Binary serialisation for Haskell values using lazy ByteStrings";
diff --git a/pkgs/development/libraries/haskell/bmp/default.nix b/pkgs/development/libraries/haskell/bmp/default.nix
index 705b462a6d5..e018ac7a8d2 100644
--- a/pkgs/development/libraries/haskell/bmp/default.nix
+++ b/pkgs/development/libraries/haskell/bmp/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "bmp";
-  version = "1.2.1.1";
-  sha256 = "0s5srqkaccrwh9gsxn9kmyh4jf0qf40ix8ipi0b70fbbffr97hmk";
+  version = "1.2.2.1";
+  sha256 = "0yxkkvpgavk9im9i9f6zpzc1n5nj2g4qsk4ck51aqz2fv6z1rhiy";
   buildDepends = [ binary ];
   meta = {
     homepage = "http://code.ouroborus.net/bmp";
diff --git a/pkgs/development/libraries/haskell/cabal-file-th/default.nix b/pkgs/development/libraries/haskell/cabal-file-th/default.nix
index c57e46cb8bb..55b4fea36fe 100644
--- a/pkgs/development/libraries/haskell/cabal-file-th/default.nix
+++ b/pkgs/development/libraries/haskell/cabal-file-th/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-file-th";
-  version = "0.2.2";
-  sha256 = "1ql2gmg3mdfkmnk1m3966npr6l1in15fzlkbn7dr1cp4s90igqhy";
+  version = "0.2.3";
+  sha256 = "0kawvb5n56rkq4453l6pia3wrr6jvvdwkghi6i176n1gm2zf2ri8";
   buildDepends = [ Cabal ];
   meta = {
     homepage = "http://github.com/nkpart/cabal-file-th";
diff --git a/pkgs/development/libraries/haskell/certificate/default.nix b/pkgs/development/libraries/haskell/certificate/default.nix
index 91efd96e683..18114de5ec2 100644
--- a/pkgs/development/libraries/haskell/certificate/default.nix
+++ b/pkgs/development/libraries/haskell/certificate/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "certificate";
-  version = "1.2.7";
-  sha256 = "02fsip23k97p6wx94d867z5v37yfamrlxv4qvv9wcgjzmh2694ay";
+  version = "1.2.8";
+  sha256 = "0lcyvkr0iqywwid9zlpzfvzpg70gvw7y0ij51ljadrwp882nj0ws";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ asn1Data cryptoPubkeyTypes mtl pem time ];
diff --git a/pkgs/development/libraries/haskell/dstring/default.nix b/pkgs/development/libraries/haskell/dstring/default.nix
index e025b00f837..4b5dd2b3888 100644
--- a/pkgs/development/libraries/haskell/dstring/default.nix
+++ b/pkgs/development/libraries/haskell/dstring/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "dstring";
-  version = "0.4.0.3";
-  sha256 = "0wzj1wzls7w79ac84sc5msblh2dmfmcxm77drpdqdirl1pwdlq9c";
+  version = "0.4.0.4";
+  sha256 = "15zy1dhfs87hxq1qm54ym0pdhvg7l76m7vy5y06dnksb1sblhaqm";
   buildDepends = [ baseUnicodeSymbols dlist ];
   meta = {
     homepage = "https://github.com/basvandijk/dstring";
diff --git a/pkgs/development/libraries/haskell/gloss/default.nix b/pkgs/development/libraries/haskell/gloss/default.nix
index a4b613dd756..e988eae9adf 100644
--- a/pkgs/development/libraries/haskell/gloss/default.nix
+++ b/pkgs/development/libraries/haskell/gloss/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "gloss";
-  version = "1.7.5.2";
-  sha256 = "1lasq106slq57k832pqhaq5wh7hwxn5bzg7rjk95rf3rrq5xb9f5";
+  version = "1.7.6.1";
+  sha256 = "1gwmrnwn1x0hs9jp2qsjp737wahbdsjrp2kp7gpz9pkq4a6jmjmx";
   buildDepends = [ bmp GLUT OpenGL ];
   meta = {
     homepage = "http://gloss.ouroborus.net";
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index e0b7d4637d5..c3e10a31572 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "3.4.2.0";
-  sha256 = "18yqbiw75wjzc48s5v2aisdc5w2q1rkijxa5p4f4i17flif72j2n";
+  version = "3.4.2.1";
+  sha256 = "0h2xs4qwy2lqdg4v7zbzfmkvr411j34fba3dm05skq7d908wjji0";
   buildDepends = [
     binary blazeHtml blazeMarkup citeprocHs cryptohash filepath hamlet
     lrucache mtl pandoc parsec regexBase regexTdfa snapCore snapServer
diff --git a/pkgs/development/libraries/haskell/hamlet/default.nix b/pkgs/development/libraries/haskell/hamlet/default.nix
index 31d1ad66d2e..4fd567f75aa 100644
--- a/pkgs/development/libraries/haskell/hamlet/default.nix
+++ b/pkgs/development/libraries/haskell/hamlet/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hamlet";
-  version = "1.1.0.2";
-  sha256 = "0knkc43ldz3jhn3pmsysqbzlsp8akh9kiyy2jncra9y0xhminpqy";
+  version = "1.1.1";
+  sha256 = "0003rp40px3zd5j2k8mm6igafbw8npn0zxm3ip27pq506ak2a0p9";
   buildDepends = [
     blazeBuilder blazeHtml blazeMarkup failure parsec shakespeare text
   ];
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-server.nix b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
index 06b882c20bb..5d4b4365f39 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-server.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
@@ -1,19 +1,19 @@
 { cabal, base64Bytestring, blazeHtml, extensibleExceptions
 , filepath, hslogger, html, monadControl, mtl, network, parsec
-, sendfile, syb, systemFilepath, text, time, transformers
+, sendfile, syb, systemFilepath, text, threads, time, transformers
 , transformersBase, utf8String, xhtml, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "happstack-server";
-  version = "7.0.4";
-  sha256 = "168201z5slm6mrkckpdpshgaiz29k9j1j97vmbrybprj0zhcrl7r";
+  version = "7.0.5";
+  sha256 = "11ialzvjdqmf62yl5r9yxir8fg5agfg1fysf3c3ja5456k07b466";
   buildDepends = [
     base64Bytestring blazeHtml extensibleExceptions filepath hslogger
     html monadControl mtl network parsec sendfile syb systemFilepath
-    text time transformers transformersBase utf8String xhtml zlib
+    text threads time transformers transformersBase utf8String xhtml
+    zlib
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://happstack.com";
     description = "Web related tools and services";
diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix
index b1cb2bac6ab..3597204eda6 100644
--- a/pkgs/development/libraries/haskell/http-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/http-conduit/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-conduit";
-  version = "1.6.0.3";
-  sha256 = "101h4ba92h8gh74pl9kkgfg94sx3nivv6cc2lfm7i85lrp2fwyjr";
+  version = "1.6.0.4";
+  sha256 = "1gnr65nkgn99cvll71zka6wrpg9ihhn38mg89841q1w2y0xf1mb0";
   buildDepends = [
     asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder
     blazeBuilderConduit caseInsensitive certificate conduit cookie
diff --git a/pkgs/development/libraries/haskell/json/default.nix b/pkgs/development/libraries/haskell/json/default.nix
index 63a6d176c94..09ebeb847b9 100644
--- a/pkgs/development/libraries/haskell/json/default.nix
+++ b/pkgs/development/libraries/haskell/json/default.nix
@@ -2,10 +2,9 @@
 
 cabal.mkDerivation (self: {
   pname = "json";
-  version = "0.5";
-  sha256 = "12jbvq0lp7z5q6g94pv8s5455yydfyh9h2xlr76wqzfh3myvy6fl";
+  version = "0.6";
+  sha256 = "1f5l1992r2gm8fivqfljhgs3nix4qf7h3rji78rsq1kf3r9shz32";
   buildDepends = [ mtl parsec syb ];
-  patchPhase = "sed -i json.cabal -e '1iExtensions: FlexibleInstances'";
   meta = {
     description = "Support for serialising Haskell to and from JSON";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/liblastfm/default.nix b/pkgs/development/libraries/haskell/liblastfm/default.nix
index 45cdfb09d66..17489b157a2 100644
--- a/pkgs/development/libraries/haskell/liblastfm/default.nix
+++ b/pkgs/development/libraries/haskell/liblastfm/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "liblastfm";
-  version = "0.0.3.5";
-  sha256 = "185vk5648m2xf74fmv7ccrbzvqd5qmlfa9fnn0ywv3ikmf61y0fg";
+  version = "0.0.3.6";
+  sha256 = "0xmrciv489dvksgpg9g83kna34x1amsx45wvpngcpnx4m44fcp4w";
   buildDepends = [
     aeson curl mtl pureMD5 urlencoded utf8String xml
   ];
diff --git a/pkgs/development/libraries/haskell/monad-logger/default.nix b/pkgs/development/libraries/haskell/monad-logger/default.nix
index 740b68edb96..0a5f52512c6 100644
--- a/pkgs/development/libraries/haskell/monad-logger/default.nix
+++ b/pkgs/development/libraries/haskell/monad-logger/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "monad-logger";
-  version = "0.2.0.1";
-  sha256 = "151brb5h92xc0mhfqcapmxib7vh2k36rsw493fxbn3256xkzc8gk";
+  version = "0.2.1";
+  sha256 = "00ssh60rxw7dg1dcfh8kr4mg9p7pvvvmjf9xd8kvxbrb9s3nkc4s";
   buildDepends = [ fastLogger resourcet text transformers ];
   meta = {
     homepage = "https://github.com/kazu-yamamoto/logger";
diff --git a/pkgs/development/libraries/haskell/murmur-hash/default.nix b/pkgs/development/libraries/haskell/murmur-hash/default.nix
index 8f1ee9fa6a3..0c4058eb111 100644
--- a/pkgs/development/libraries/haskell/murmur-hash/default.nix
+++ b/pkgs/development/libraries/haskell/murmur-hash/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "murmur-hash";
-  version = "0.1.0.5";
-  sha256 = "1m7rm57bxkrl4i9fbvmx5m29axyxddrs4ss7plbd19pw3wsvgmr0";
+  version = "0.1.0.6";
+  sha256 = "0wnkwl3a9x0f4rvsj4wf129n03vpw8qk4kzx6vmrapwwb4r80npz";
   meta = {
     homepage = "http://github.com/nominolo/murmur-hash";
     description = "MurmurHash2 implementation for Haskell";
diff --git a/pkgs/development/libraries/haskell/network-conduit/default.nix b/pkgs/development/libraries/haskell/network-conduit/default.nix
index 4c989e17698..d5c04d8e2b8 100644
--- a/pkgs/development/libraries/haskell/network-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/network-conduit/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "network-conduit";
-  version = "0.5.0.1";
-  sha256 = "1rk8a8n1yily20y3jr51zbd00m2c6ic8gxw9rnmkr2cfs963l2v5";
+  version = "0.5.0.2";
+  sha256 = "0ragnwhc8szh680iyzyz6fbprqd3drr8sb970h1p2l4i22srkm39";
   buildDepends = [
     conduit liftedBase monadControl network transformers
   ];
diff --git a/pkgs/development/libraries/haskell/network/2.4.0.0.nix b/pkgs/development/libraries/haskell/network/2.4.0.1.nix
similarity index 80%
rename from pkgs/development/libraries/haskell/network/2.4.0.0.nix
rename to pkgs/development/libraries/haskell/network/2.4.0.1.nix
index 421f023ab73..e0aa44c38bd 100644
--- a/pkgs/development/libraries/haskell/network/2.4.0.0.nix
+++ b/pkgs/development/libraries/haskell/network/2.4.0.1.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "network";
-  version = "2.4.0.0";
-  sha256 = "1l4gdhjac7nnl4zd03bndjbjm9fizmxhimz2bznjw19q6gbp3rp0";
+  version = "2.4.0.1";
+  sha256 = "00jj3pf2gchkx5wmipm2ijxcmhy37g86ggnp6pb92i5nmb93h1iw";
   buildDepends = [ parsec ];
   meta = {
     homepage = "https://github.com/haskell/network";
diff --git a/pkgs/development/libraries/haskell/path-pieces/default.nix b/pkgs/development/libraries/haskell/path-pieces/default.nix
index d4f52aef58e..5abc6309146 100644
--- a/pkgs/development/libraries/haskell/path-pieces/default.nix
+++ b/pkgs/development/libraries/haskell/path-pieces/default.nix
@@ -2,11 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "path-pieces";
-  version = "0.1.1";
-  sha256 = "17ymk2azgz2c1hwnzqd9xy77hh51mvrgz4zs7lz4ik6rnvvihraz";
+  version = "0.1.2";
+  sha256 = "1cxsa8lq1f2jf86iv6f17nraiav8k2vzjxln1y7z45qhcp1sbbaa";
   buildDepends = [ text time ];
   meta = {
-    homepage = "http://github.com/snoyberg/path-pieces";
     description = "Components of paths";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/pathtype/default.nix b/pkgs/development/libraries/haskell/pathtype/default.nix
index f08ded72968..f0be81e64ae 100644
--- a/pkgs/development/libraries/haskell/pathtype/default.nix
+++ b/pkgs/development/libraries/haskell/pathtype/default.nix
@@ -1,10 +1,10 @@
-{ cabal, QuickCheck }:
+{ cabal, QuickCheck, time }:
 
 cabal.mkDerivation (self: {
   pname = "pathtype";
-  version = "0.5.2";
-  sha256 = "0rbmq6kzz2l07q9a5k888scpn62hnw2hmzz4ysprhfgdnn5b2cvi";
-  buildDepends = [ QuickCheck ];
+  version = "0.5.3";
+  sha256 = "11plb7xw4j8vjziw1q0ymx33p6185cxd2hqrxw2hgsfzf2b9dvqg";
+  buildDepends = [ QuickCheck time ];
   meta = {
     homepage = "http://code.haskell.org/pathtype";
     description = "Type-safe replacement for System.FilePath etc";
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index f87e6348963..8d09c593170 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-template";
-  version = "1.0.0.1";
-  sha256 = "0dvhxcyzqv4h3n5nnaglgq2pipynax2nrsdsgj3wgyk1a5k8wdrw";
+  version = "1.0.0.2";
+  sha256 = "0skd1gfrxq8mpa2g56b2wn83zw4zca5q2dxyjf6d7k6sh9sc9iz8";
   buildDepends = [ aeson monadControl persistent text transformers ];
   meta = {
     homepage = "http://www.yesodweb.com/book/persistent";
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index 73bb01d7075..b4010959d77 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent";
-  version = "1.0.1.1";
-  sha256 = "05jzraw8g87vbd5qqrpvivzaz8k50sm9dlabd86a6n1hpcd7xaka";
+  version = "1.0.1.2";
+  sha256 = "0gw635mhbn6w8aswiw9j41rdpi7rhnnhay2qgvlc8103s0g5lp9j";
   buildDepends = [
     aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
     liftedBase monadControl monadLogger pathPieces poolConduit
diff --git a/pkgs/development/libraries/haskell/repa-algorithms/default.nix b/pkgs/development/libraries/haskell/repa-algorithms/default.nix
index d8a1e61c5d7..2385066116a 100644
--- a/pkgs/development/libraries/haskell/repa-algorithms/default.nix
+++ b/pkgs/development/libraries/haskell/repa-algorithms/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "repa-algorithms";
-  version = "3.2.1.1";
-  sha256 = "19gc2vbkqxysnm0argksn8c3cv7vf30hkdycgv8fdfn0yc95xz0v";
+  version = "3.2.2.1";
+  sha256 = "1g6cf70bmkglx0b92kxazaaap75s55fqpp1g7qiskbj2vzvppsg3";
   buildDepends = [ repa vector ];
   extraLibraries = [ llvm ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/repa-examples/default.nix b/pkgs/development/libraries/haskell/repa-examples/default.nix
index 1f3e66e5e08..6d87b10f429 100644
--- a/pkgs/development/libraries/haskell/repa-examples/default.nix
+++ b/pkgs/development/libraries/haskell/repa-examples/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "repa-examples";
-  version = "3.2.1.1";
-  sha256 = "0nbdp3vwg7ha9vhz7f2kys3jxdlwiihxz031cfpkv2si5ci3gy1b";
+  version = "3.2.2.1";
+  sha256 = "17v7ay33fwxjm0ip09jhh979rc6hzfxrrj1hkwj7x4x9gkd79yn7";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ random repa repaAlgorithms repaIo vector ];
diff --git a/pkgs/development/libraries/haskell/repa-io/default.nix b/pkgs/development/libraries/haskell/repa-io/default.nix
index 293a7bc6d58..98111abcc14 100644
--- a/pkgs/development/libraries/haskell/repa-io/default.nix
+++ b/pkgs/development/libraries/haskell/repa-io/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "repa-io";
-  version = "3.2.1.1";
-  sha256 = "156amnlqsxhwalnc4nypcd66znv2f8c71d5xi8ja5g8d9f1yg02g";
+  version = "3.2.2.1";
+  sha256 = "0wcg4a8z6qf7jg353b89ci4pzqvb7pnzgb6ml3av6l54n9rg4vsp";
   buildDepends = [ binary bmp repa vector ];
   meta = {
     homepage = "http://repa.ouroborus.net";
diff --git a/pkgs/development/libraries/haskell/repa/default.nix b/pkgs/development/libraries/haskell/repa/default.nix
index b6102d45572..e0a8e591a5b 100644
--- a/pkgs/development/libraries/haskell/repa/default.nix
+++ b/pkgs/development/libraries/haskell/repa/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "repa";
-  version = "3.2.1.1";
-  sha256 = "0jzcy3xdlwmcjq1mpfqh0axcgbj3i03nxg7blw2sly8qrgfl0ri1";
+  version = "3.2.2.1";
+  sha256 = "0k8i4gm74gc19kfmg2790x1i6im58nqfblq2fq2bilh6rsj8hxh0";
   buildDepends = [ QuickCheck vector ];
   meta = {
     homepage = "http://repa.ouroborus.net";
diff --git a/pkgs/development/libraries/haskell/repr/default.nix b/pkgs/development/libraries/haskell/repr/default.nix
index 2558f4fbd31..c44735eda00 100644
--- a/pkgs/development/libraries/haskell/repr/default.nix
+++ b/pkgs/development/libraries/haskell/repr/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "repr";
-  version = "0.4.1.2";
-  sha256 = "09rv23p1hvvfw5wnhiawgrpqgqa4i0d00skyj9z1jj6bfxk5avjs";
+  version = "0.4.1.3";
+  sha256 = "1y1zl81yjc9jrci83bm6bn8hrfqf6x25vxzkhrkydhhwcwqfqaj5";
   buildDepends = [
     baseUnicodeSymbols dstring random stringCombinators
   ];
diff --git a/pkgs/development/libraries/haskell/shakespeare-css/default.nix b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
index a64e9acc7d7..54bc170f069 100644
--- a/pkgs/development/libraries/haskell/shakespeare-css/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-css";
-  version = "1.0.1.4";
-  sha256 = "0avixf7z3hcvgcijgrm7hisr8i8waa8nb435gv8lv5vvz8yq3k0n";
+  version = "1.0.1.5";
+  sha256 = "0arfc64wsyn0af34blbjgxxr9xxk9k61p7zy4b7m3ynnpxqh2hzn";
   buildDepends = [ parsec shakespeare text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
diff --git a/pkgs/development/libraries/haskell/shakespeare-js/default.nix b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
index ff2f0c09e0c..bed71a7c14e 100644
--- a/pkgs/development/libraries/haskell/shakespeare-js/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-js";
-  version = "1.0.0.5";
-  sha256 = "1d4na2q1q798ki5f84gpf89ri26qmrxqrwbw7mmlrfwkj1qw69rs";
+  version = "1.0.0.6";
+  sha256 = "0ilzg5g2pvq36cv5fhyv9sqz3nnj9gscrc2y4vlqkm6f1ks3gyg8";
   buildDepends = [ shakespeare text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
diff --git a/pkgs/development/libraries/haskell/shakespeare-text/default.nix b/pkgs/development/libraries/haskell/shakespeare-text/default.nix
index fbc31e3eda1..4e9516d107c 100644
--- a/pkgs/development/libraries/haskell/shakespeare-text/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-text/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-text";
-  version = "1.0.0.4";
-  sha256 = "14kas2m7kbv1f49qpx6z097r707l3gqp9lwvh0q42cc6rlwab5l7";
+  version = "1.0.0.5";
+  sha256 = "176yzx43sh0fnxpszn8kximd6i96yf2s374z55kvc1kspf7jk736";
   buildDepends = [ shakespeare text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
diff --git a/pkgs/development/libraries/haskell/shakespeare/default.nix b/pkgs/development/libraries/haskell/shakespeare/default.nix
index 3cc2456a7d5..fca3d04a305 100644
--- a/pkgs/development/libraries/haskell/shakespeare/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare";
-  version = "1.0.1.3";
-  sha256 = "1m0ca3b73fiph939kpd94mxh4a606mv3hafbwg9j4is38mv5kn8d";
+  version = "1.0.1.4";
+  sha256 = "01gw31g75v8r8hjvkv7mxvx7736ib9x9nqpxavpbrfplyxgk2y31";
   buildDepends = [ parsec text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
diff --git a/pkgs/development/libraries/haskell/shelly/default.nix b/pkgs/development/libraries/haskell/shelly/default.nix
index 0c266ab1b29..838e6c30faf 100644
--- a/pkgs/development/libraries/haskell/shelly/default.nix
+++ b/pkgs/development/libraries/haskell/shelly/default.nix
@@ -3,11 +3,12 @@
 
 cabal.mkDerivation (self: {
   pname = "shelly";
-  version = "0.14.0.1";
-  sha256 = "062c3zqr6ad61p0s423h8rhimqfld6p95z3qzrmag9f29a5f4fbz";
+  version = "0.14.1";
+  sha256 = "1cvfak5siysnpms1znra6dk762zp0gv1sam3xfdp67a7ir0hpcpp";
   buildDepends = [
     mtl systemFileio systemFilepath text time unixCompat
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/yesodweb/Shelly.hs";
     description = "shell-like (systems) programming in Haskell";
diff --git a/pkgs/development/libraries/haskell/snap/core.nix b/pkgs/development/libraries/haskell/snap/core.nix
index 1d51b9d9933..a39442aef07 100644
--- a/pkgs/development/libraries/haskell/snap/core.nix
+++ b/pkgs/development/libraries/haskell/snap/core.nix
@@ -1,20 +1,18 @@
-{ cabal, attoparsec, attoparsecEnumerator, base16Bytestring
-, blazeBuilder, blazeBuilderEnumerator, bytestringMmap
-, bytestringNums, caseInsensitive, deepseq, dlist, enumerator
-, filepath, HUnit, MonadCatchIOTransformers, mtl, mwcRandom
-, regexPosix, text, time, transformers, unixCompat
+{ cabal, attoparsec, attoparsecEnumerator, blazeBuilder
+, blazeBuilderEnumerator, bytestringMmap, caseInsensitive, deepseq
+, enumerator, filepath, HUnit, MonadCatchIOTransformers, mtl
+, random, regexPosix, text, time, transformers, unixCompat
 , unorderedContainers, vector, zlibEnum
 }:
 
 cabal.mkDerivation (self: {
   pname = "snap-core";
-  version = "0.9.0";
-  sha256 = "1fsjamv9sl19in2ws97v246sbvlnj05rm9dljc0pz7kasawyqsb7";
+  version = "0.9.2.1";
+  sha256 = "18i0hfzc37q12nyp7g4sc87s4xcqz1crjwpnhh4y5fw66glzmq3q";
   buildDepends = [
-    attoparsec attoparsecEnumerator base16Bytestring blazeBuilder
-    blazeBuilderEnumerator bytestringMmap bytestringNums
-    caseInsensitive deepseq dlist enumerator filepath HUnit
-    MonadCatchIOTransformers mtl mwcRandom regexPosix text time
+    attoparsec attoparsecEnumerator blazeBuilder blazeBuilderEnumerator
+    bytestringMmap caseInsensitive deepseq enumerator filepath HUnit
+    MonadCatchIOTransformers mtl random regexPosix text time
     transformers unixCompat unorderedContainers vector zlibEnum
   ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/snap/server.nix b/pkgs/development/libraries/haskell/snap/server.nix
index 20a6af0ba90..4971fec3b1d 100644
--- a/pkgs/development/libraries/haskell/snap/server.nix
+++ b/pkgs/development/libraries/haskell/snap/server.nix
@@ -1,19 +1,18 @@
 { cabal, attoparsec, attoparsecEnumerator, binary, blazeBuilder
-, blazeBuilderEnumerator, bytestringNums, caseInsensitive
-, directoryTree, enumerator, filepath, MonadCatchIOTransformers
-, mtl, murmurHash, network, snapCore, text, time, transformers
-, unixCompat, vector, vectorAlgorithms
+, blazeBuilderEnumerator, caseInsensitive, directoryTree
+, enumerator, filepath, MonadCatchIOTransformers, mtl, network
+, snapCore, text, time, transformers, unixCompat
 }:
 
 cabal.mkDerivation (self: {
   pname = "snap-server";
-  version = "0.9.0";
-  sha256 = "12mjy1w6gsnw93bcpsnxnw7kc2v73dfps7gk542iw73lldfhh3va";
+  version = "0.9.2.3";
+  sha256 = "0wl7clzwrd34d32sikd6vkj3pla9yni26mmdsnrjw1s3lq412yqd";
   buildDepends = [
     attoparsec attoparsecEnumerator binary blazeBuilder
-    blazeBuilderEnumerator bytestringNums caseInsensitive directoryTree
-    enumerator filepath MonadCatchIOTransformers mtl murmurHash network
-    snapCore text time transformers unixCompat vector vectorAlgorithms
+    blazeBuilderEnumerator caseInsensitive directoryTree enumerator
+    filepath MonadCatchIOTransformers mtl network snapCore text time
+    transformers unixCompat
   ];
   meta = {
     homepage = "http://snapframework.com/";
diff --git a/pkgs/development/libraries/haskell/snap/snap.nix b/pkgs/development/libraries/haskell/snap/snap.nix
index e40aee63bc1..9ff0bceb3c3 100644
--- a/pkgs/development/libraries/haskell/snap/snap.nix
+++ b/pkgs/development/libraries/haskell/snap/snap.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "snap";
-  version = "0.9.1.1";
-  sha256 = "1g8jvnwrhna5g064dmv4v4khrpwwn0vcqw8l7rcpkp75l46fq29z";
+  version = "0.9.2.1";
+  sha256 = "0gxnkr6icx2g16w3ab54cqy4x15xj6y9cs6qv8dg0xamm7kyyfhl";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -19,10 +19,9 @@ cabal.mkDerivation (self: {
     snapServer stm syb text time transformers unorderedContainers
     utf8String vector vectorAlgorithms xmlhtml
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://snapframework.com/";
-    description = "Snap: A Haskell Web Framework: project starter executable and glue code library";
+    description = "Top-level package for the Snap Web Framework";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/split/default.nix b/pkgs/development/libraries/haskell/split/default.nix
index 42d33d10a06..e106b2687f5 100644
--- a/pkgs/development/libraries/haskell/split/default.nix
+++ b/pkgs/development/libraries/haskell/split/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "split";
-  version = "0.2.0.0";
-  sha256 = "1gk0nx6bw5j9gxaa6ki70wqszbllz7c1ccfnwg49fl3qfabg1i7c";
+  version = "0.2.1.1";
+  sha256 = "1zzp4dwf846s74a4lhw2gf4awsk9iblhl5zcg2zccgv1lr4w2dmz";
   meta = {
     description = "Combinator library for splitting lists";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/string-combinators/default.nix b/pkgs/development/libraries/haskell/string-combinators/default.nix
index 03587d24d02..bfc38fb07e8 100644
--- a/pkgs/development/libraries/haskell/string-combinators/default.nix
+++ b/pkgs/development/libraries/haskell/string-combinators/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "string-combinators";
-  version = "0.6.0.3";
-  sha256 = "18jawxqvcj7zpvb0wf1zln12s03mp6nglhv5ccywrkb5x0r0557j";
+  version = "0.6.0.4";
+  sha256 = "0r1za5ypx9fz073h1yljjdkxmz0h77vg94bk827ndwkfgzgpzvh7";
   buildDepends = [ baseUnicodeSymbols ];
   meta = {
     homepage = "https://github.com/basvandijk/string-combinators";
diff --git a/pkgs/development/libraries/haskell/strptime/default.nix b/pkgs/development/libraries/haskell/strptime/default.nix
index f0b9c638946..bb30fe71cc3 100644
--- a/pkgs/development/libraries/haskell/strptime/default.nix
+++ b/pkgs/development/libraries/haskell/strptime/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "strptime";
-  version = "1.0.6";
-  sha256 = "1brzh22nrs2mg5h815vj8vlz0qn2jwm4y4sdp5zlszjxfsqc2hp7";
+  version = "1.0.8";
+  sha256 = "0cd4wzrg9zpnwrfpp6lxs1ib06h0fcsdqd3idsw663wr5lllfgdq";
   buildDepends = [ time ];
   meta = {
     description = "Efficient parsing of LocalTime using a binding to C's strptime, with some extra features (i.e. fractional seconds)";
diff --git a/pkgs/development/libraries/haskell/stylish-haskell/default.nix b/pkgs/development/libraries/haskell/stylish-haskell/default.nix
index 2f76c16a2a4..f2ebed7cc6a 100644
--- a/pkgs/development/libraries/haskell/stylish-haskell/default.nix
+++ b/pkgs/development/libraries/haskell/stylish-haskell/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "stylish-haskell";
-  version = "0.5.0.2";
-  sha256 = "0am63hw24c1yja1sb2xsbi1bcyfxb1qsypszkpaylvks797czmc7";
+  version = "0.5.1.0";
+  sha256 = "0vriwgx7z8azqmci9lq7xlvn0v12p5nj9s6i4jvxsjam538qll94";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/threads/default.nix b/pkgs/development/libraries/haskell/threads/default.nix
new file mode 100644
index 00000000000..8f5008032f6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/threads/default.nix
@@ -0,0 +1,14 @@
+{ cabal, baseUnicodeSymbols, stm }:
+
+cabal.mkDerivation (self: {
+  pname = "threads";
+  version = "0.5.0.1";
+  sha256 = "0amyaxa70q6v021nab6v3cfqc40mwj5dr2fwla9d4bm6ppmq6lyy";
+  buildDepends = [ baseUnicodeSymbols stm ];
+  meta = {
+    homepage = "https://github.com/basvandijk/threads";
+    description = "Fork threads and wait for their result";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/tls/default.nix b/pkgs/development/libraries/haskell/tls/default.nix
index 2154aa347d2..5f5452044df 100644
--- a/pkgs/development/libraries/haskell/tls/default.nix
+++ b/pkgs/development/libraries/haskell/tls/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tls";
-  version = "0.9.10";
-  sha256 = "1kiwb5skirdla32gjicgmjyk09p8f701jgs6krxbi38gmmfj1dxf";
+  version = "0.9.11";
+  sha256 = "1a0kfwhmlwl581yr63g2plw9680ry0030rqm3bxhvnjbb2xac3k9";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/unix-compat/default.nix b/pkgs/development/libraries/haskell/unix-compat/default.nix
index df329ba1d90..7c5cb6c63c4 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.3.0.2";
-  sha256 = "0rikix2l8d0n948pzri2rdis9k5q0m73h7vxsxjz1vh24ryjj59f";
+  version = "0.4.0.0";
+  sha256 = "0xhhvqdjcmcyavf0g2q2sjghj2h4si1ijg4nc4s8kidbd957z9r8";
   meta = {
     homepage = "http://github.com/jystic/unix-compat";
     description = "Portable POSIX-compatibility layer";
diff --git a/pkgs/development/libraries/haskell/vector-space-points/default.nix b/pkgs/development/libraries/haskell/vector-space-points/default.nix
index 7497ed59c4f..1debf3f0f71 100644
--- a/pkgs/development/libraries/haskell/vector-space-points/default.nix
+++ b/pkgs/development/libraries/haskell/vector-space-points/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "vector-space-points";
-  version = "0.1.1.1";
-  sha256 = "08lar9ydni87w79y86xk2blddsgx5n6gwz3262w8z32dgy9lrmwx";
+  version = "0.1.2.0";
+  sha256 = "19azl6g14rsxs0qbik6x637qw9jv4xl01w65xd0xh7833mypmj6d";
   buildDepends = [ newtype vectorSpace ];
   meta = {
     description = "A type for points, as distinct from vectors";
diff --git a/pkgs/development/libraries/haskell/wai-app-static/default.nix b/pkgs/development/libraries/haskell/wai-app-static/default.nix
index f073d36f502..f7f858b17f2 100644
--- a/pkgs/development/libraries/haskell/wai-app-static/default.nix
+++ b/pkgs/development/libraries/haskell/wai-app-static/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai-app-static";
-  version = "1.3.0.1";
-  sha256 = "0rgbqbcj4jd6xpjm3nqa5hdf3an7208in536dl6x9n88w9a6qngp";
+  version = "1.3.0.2";
+  sha256 = "0z49s4kc365q3brfkgdnja964h3h3yc3wypccnkj71dl11n040zq";
   buildDepends = [
     base64Bytestring blazeBuilder blazeHtml blazeMarkup cereal
     cryptoConduit cryptohash fileEmbed httpDate httpTypes mimeTypes
diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix
index 0debe101b4f..7c460681fcb 100644
--- a/pkgs/development/libraries/haskell/wai-extra/default.nix
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai-extra";
-  version = "1.3.0.1";
-  sha256 = "0mclhaxdgj1vcqa6q22zl5zv4znfis1zyivwypl1pwv0r267siy5";
+  version = "1.3.0.2";
+  sha256 = "0w69wjfbzgg523n0rcs700qx0gsdhvlr0qjvqg1hppvi188llpwl";
   buildDepends = [
     ansiTerminal blazeBuilder blazeBuilderConduit caseInsensitive
     conduit dataDefault dateCache fastLogger httpTypes network
diff --git a/pkgs/development/libraries/haskell/wai/default.nix b/pkgs/development/libraries/haskell/wai/default.nix
index a67da394a65..56421b213d5 100644
--- a/pkgs/development/libraries/haskell/wai/default.nix
+++ b/pkgs/development/libraries/haskell/wai/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai";
-  version = "1.3.0";
-  sha256 = "08y0s7b5db5nyvxv0bvraj6ih7054h5n4lkwdlm3nkbm8s9k8hwv";
+  version = "1.3.0.1";
+  sha256 = "0z6byx71awhjb7fycz1ixsyzzlsrv1i69qwjrfzh9y5wnbchj9yl";
   buildDepends = [
     blazeBuilder conduit httpTypes network text transformers vault
   ];
diff --git a/pkgs/development/libraries/haskell/warp/default.nix b/pkgs/development/libraries/haskell/warp/default.nix
index 30bbbef9a0b..b0c3c7205b3 100644
--- a/pkgs/development/libraries/haskell/warp/default.nix
+++ b/pkgs/development/libraries/haskell/warp/default.nix
@@ -1,16 +1,16 @@
 { cabal, blazeBuilder, blazeBuilderConduit, caseInsensitive
-, conduit, httpTypes, liftedBase, network, networkConduit
+, conduit, hashable, httpTypes, liftedBase, network, networkConduit
 , simpleSendfile, transformers, unixCompat, void, wai
 }:
 
 cabal.mkDerivation (self: {
   pname = "warp";
-  version = "1.3.1";
-  sha256 = "12f4v080v8jgm02swqbbgq9yvbajmbr8ja2p6ljc7bhf3rkpwplr";
+  version = "1.3.1.2";
+  sha256 = "11y1dwzvfhr4fhlh5j2ydwj4d3r92qm55rn9xwbfxmr0vmvm78b5";
   buildDepends = [
-    blazeBuilder blazeBuilderConduit caseInsensitive conduit httpTypes
-    liftedBase network networkConduit simpleSendfile transformers
-    unixCompat void wai
+    blazeBuilder blazeBuilderConduit caseInsensitive conduit hashable
+    httpTypes liftedBase network networkConduit simpleSendfile
+    transformers unixCompat void wai
   ];
   meta = {
     homepage = "http://github.com/yesodweb/wai";
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 5a6d6e1c41c..c0bef5018ba 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "1.1.1.2";
-  sha256 = "1q0p4hnmd0mg3pqkydqcv61p3hrmnqnrsya005dyvxf320anya0y";
+  version = "1.1.2";
+  sha256 = "1pgwqghj9kc9kh90515nswz5ssbmm2y6miw5j6sx4dha0xncqvgs";
   buildDepends = [
     aeson blazeBuilder blazeHtml blazeMarkup caseInsensitive cereal
     clientsession conduit cookie failure fastLogger hamlet httpTypes
diff --git a/pkgs/development/libraries/haskell/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix
index 8f3cf37149f..a562897cf14 100644
--- a/pkgs/development/libraries/haskell/yesod-form/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-form/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-form";
-  version = "1.1.1.1";
-  sha256 = "0239sbnpl022g53iwbg9pnphiyadxysdwrqz3f8spf6x3w2gs6vg";
+  version = "1.1.3";
+  sha256 = "1af1wdzwbw1a2bf991pgx52d9dap3cqpsr5h4yy4mid6p980slrb";
   buildDepends = [
     attoparsec blazeBuilder blazeHtml blazeMarkup cryptoApi dataDefault
     emailValidate hamlet network persistent shakespeareCss
diff --git a/pkgs/development/libraries/haskell/yesod-test/default.nix b/pkgs/development/libraries/haskell/yesod-test/default.nix
index 2e504ca0f6d..5c88b652f86 100644
--- a/pkgs/development/libraries/haskell/yesod-test/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-test/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-test";
-  version = "0.3.0";
-  sha256 = "194m4va6am2fmnsvs60jclym6bvjmwp35nyv3srbdnqwg3r983h4";
+  version = "0.3.0.1";
+  sha256 = "0dfdvhk3mspqhqicjapqvjzmi0hpd2641zb1899fk6mank8yfz0m";
   buildDepends = [
     attoparsec blazeHtml blazeMarkup caseInsensitive hspec htmlConduit
     httpTypes HUnit monadControl network persistent poolConduit text
diff --git a/pkgs/development/libraries/haskell/yesod/default.nix b/pkgs/development/libraries/haskell/yesod/default.nix
index 46ebf6c8b85..10d8013f1b3 100644
--- a/pkgs/development/libraries/haskell/yesod/default.nix
+++ b/pkgs/development/libraries/haskell/yesod/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod";
-  version = "1.1.0.3";
-  sha256 = "07rj7dyicnklp6hs1m0kjj6xz983d1zryv2f3sqhf620bc2d70fx";
+  version = "1.1.1";
+  sha256 = "0666g2ap6ignqif9vwis2bnsb45jb19llw9z20nsfs0q3wj8ykn3";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -19,6 +19,7 @@ cabal.mkDerivation (self: {
     transformers unixCompat unorderedContainers wai waiExtra warp yaml
     yesodAuth yesodCore yesodForm yesodJson yesodPersistent zlib
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://www.yesodweb.com/";
     description = "Creation of type-safe, RESTful web applications";
diff --git a/pkgs/development/libraries/libre/default.nix b/pkgs/development/libraries/libre/default.nix
new file mode 100644
index 00000000000..cc9139d664e
--- /dev/null
+++ b/pkgs/development/libraries/libre/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, zlib, openssl}:
+stdenv.mkDerivation rec {
+  version = "0.4.2";
+  name = "libre-${version}";
+  src=fetchurl {
+    url = "http://www.creytiv.com/pub/re-${version}.tar.gz";
+    sha256 = "1c99ygs46qhd4a0ardxhdyjaw5p8clhzmsm8jydqxnmbakwy518m";
+  };
+  buildInputs = [zlib openssl];
+  makeFlags = [
+    "USE_ZLIB=1" "USE_OPENSSL=1" 
+    ''PREFIX=$(out)''
+  ]
+  ++ stdenv.lib.optional (stdenv.gcc.gcc != null) "SYSROOT_ALT=${stdenv.gcc.gcc}"
+  ++ stdenv.lib.optional (stdenv.gcc.libc != null) "SYSROOT=${stdenv.gcc.libc}"
+  ;
+  meta = {
+    homepage = "http://www.creytiv.com/re.html";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = with stdenv.lib.licenses; bsd3;
+  };
+}
diff --git a/pkgs/development/libraries/librem/default.nix b/pkgs/development/libraries/librem/default.nix
new file mode 100644
index 00000000000..04f3cc97bf3
--- /dev/null
+++ b/pkgs/development/libraries/librem/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, zlib, openssl, libre}:
+stdenv.mkDerivation rec {
+  version = "0.4.2";
+  name = "librem-${version}";
+  src=fetchurl {
+    url = "http://www.creytiv.com/pub/rem-${version}.tar.gz";
+    sha256 = "55c66118e3026c5ed42d8b9e0c668149baefe83f1aa76394cddba2d72f45d5c7";
+  };
+  buildInputs = [zlib openssl libre];
+  makeFlags = [
+    "LIBRE_MK=${libre}/share/re/re.mk"
+    "LIBRE_INC=${libre}/include/re"
+    ''PREFIX=$(out)''
+  ]
+  ++ stdenv.lib.optional (stdenv.gcc.gcc != null) "SYSROOT_ALT=${stdenv.gcc.gcc}"
+  ++ stdenv.lib.optional (stdenv.gcc.libc != null) "SYSROOT=${stdenv.gcc.libc}"
+  ;
+  meta = {
+    homepage = "http://www.creytiv.com/rem.html";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = with stdenv.lib.licenses; bsd3;
+  };
+}
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 575b57eb872..48574a332c8 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, perl }:
+{ stdenv, fetchurl, perl
+, withCryptodev ? false, cryptodevHeaders }:
 
 let
   name = "openssl-1.0.0i";
@@ -45,6 +46,8 @@ stdenv.mkDerivation {
 
   patches = patchesCross false;
 
+  buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders;
+
   buildNativeInputs = [ perl ];
 
   # On x86_64-darwin, "./config" misdetects the system as
@@ -52,7 +55,8 @@ stdenv.mkDerivation {
   configureScript =
     if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc" else "./config";
 
-  configureFlags = "shared --libdir=lib";
+  configureFlags = "shared --libdir=lib" +
+    stdenv.lib.optionalString withCryptodev " -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS";
 
   makeFlags = "MANDIR=$(out)/share/man";
 
diff --git a/pkgs/development/libraries/spandsp/default.nix b/pkgs/development/libraries/spandsp/default.nix
new file mode 100644
index 00000000000..f88ab48e027
--- /dev/null
+++ b/pkgs/development/libraries/spandsp/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, audiofile, libtiff}:
+stdenv.mkDerivation rec {
+  version = "0.0.5";
+  name = "spandsp-${version}";
+  src=fetchurl {
+    url = "http://www.soft-switch.org/downloads/spandsp/spandsp-${version}.tgz";
+    sha256 = "07f42a237c77b08fa765c3a148c83cdfa267bf24c0ab681d80b90d30dd0b3dbf";
+  };
+  buildInputs = [];
+  propagatedBuildInputs = [audiofile libtiff];
+  meta = {
+    homepage = "http://www.creytiv.com/baresip.html";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = with stdenv.lib.licenses; gpl2;
+  };
+}
+
diff --git a/pkgs/development/libraries/srtp/default.nix b/pkgs/development/libraries/srtp/default.nix
index 887c0c7c1a3..1b8b654ca80 100644
--- a/pkgs/development/libraries/srtp/default.nix
+++ b/pkgs/development/libraries/srtp/default.nix
@@ -27,8 +27,12 @@ rec {
   inherit buildInputs;
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall"];
-      
+  phaseNames = ["setVars" "doConfigure" "doMakeInstall"];
+
+  setVars = a.fullDepEntry ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC"
+  '' ["minInit"];
+
   meta = {
     description = "Secure RTP";
     maintainers = with a.lib.maintainers;
diff --git a/pkgs/development/tools/haskell/hslogger/default.nix b/pkgs/development/tools/haskell/hslogger/default.nix
index 4128f6b7d09..4443637def4 100644
--- a/pkgs/development/tools/haskell/hslogger/default.nix
+++ b/pkgs/development/tools/haskell/hslogger/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hslogger";
-  version = "1.2.0";
-  sha256 = "17ipnz7zd403x2gi2086chrgcnk76304hdxr5mv4phg4rm8w226y";
+  version = "1.2.1";
+  sha256 = "1vfdf7i6fd4mb3rn57z3wn7bhw4z5g47f4vggb4sms5rg4zqqly5";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ mtl network time ];
diff --git a/pkgs/development/tools/parsing/happy/1.18.10.nix b/pkgs/development/tools/parsing/happy/1.18.10.nix
new file mode 100644
index 00000000000..d342d3381c8
--- /dev/null
+++ b/pkgs/development/tools/parsing/happy/1.18.10.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, perl }:
+
+cabal.mkDerivation (self: {
+  pname = "happy";
+  version = "1.18.10";
+  sha256 = "0jq6p5vvdh4wbam80q2d6j2fa6bmbgnbmqk1w9904x06g7vj1jf1";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl ];
+  buildTools = [ perl ];
+  meta = {
+    homepage = "http://www.haskell.org/happy/";
+    description = "Happy is a parser generator for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/web/nodejs/build-node-package.nix b/pkgs/development/web/nodejs/build-node-package.nix
index 41550a72529..95d10db167f 100644
--- a/pkgs/development/web/nodejs/build-node-package.nix
+++ b/pkgs/development/web/nodejs/build-node-package.nix
@@ -7,7 +7,7 @@ with stdenv.lib;
 let npmFlags = concatStringsSep " " (map (v: "--${v}") flags);
     sources = runCommand "node-sources" {} ''
       tar xf ${nodejs.src}
-      mv node-v${nodejs.version} $out
+      mv *node* $out
     '';
 
 in
diff --git a/pkgs/games/oilrush/default.nix b/pkgs/games/oilrush/default.nix
index 4605f04e3ae..339c3bbd1a8 100644
--- a/pkgs/games/oilrush/default.nix
+++ b/pkgs/games/oilrush/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, getConfig, fetchurl, libX11, libXext, libXinerama, libXrandr
+{ stdenv, config, fetchurl, libX11, libXext, libXinerama, libXrandr
 , libXrender, fontconfig, freetype, openal }:
+
 stdenv.mkDerivation {
   name = "oilrush";
   src = 
   let
-    url = getConfig [ "oilrush" "url" ] null;
-    sha256 = getConfig [ "oilrush" "sha256" ] null;
+    url = config.oilrush.url or null;
+    sha256 = config.oilrush.sha256 or null;
   in
     assert url != null && sha256 != null;
     fetchurl { inherit url sha256; };
diff --git a/pkgs/games/warsow/default.nix b/pkgs/games/warsow/default.nix
index c584319bdc9..66c33842b89 100644
--- a/pkgs/games/warsow/default.nix
+++ b/pkgs/games/warsow/default.nix
@@ -1,32 +1,33 @@
-{ stdenv, fetchurl, unzip, pkgconfig, zlib, curl, libjpeg, libvorbis
-, libXxf86dga, libXxf86vm, libXinerama, SDL, mesa, openal
+{ stdenv, fetchurl, unzip, pkgconfig, zlib, curl, libjpeg, libpng, libvorbis
+, libtheora, libXxf86dga, libXxf86vm, libXinerama, SDL, mesa, openal
 }:
 stdenv.mkDerivation rec {
   name = "warsow-${version}";
-  version = "0.62";
-  mversion = "0.61";  # sometimes only engine is updated
+  version = "1.0";
+  mversion = "1.0";  # sometimes only engine is updated
   src1 = fetchurl {
-    url = "http://www.zcdn.org/dl/warsow_${version}_sdk.zip";
-    sha256 = "0nb1z55lzmwarnn71dcyg9b3k7r7wxagqxks8a7rnlq7acsnra71";
+    url = "http://www.warsow.net/download?dl=sdk";
+    name = "warsow_${version}_sdk.tar.gz";
+    sha256 = "08hfhx3ggb8v8lsb62ki5rhdhscg8j9sndlnllinf85da1f4nf9f";
   };
   src2 = fetchurl {
-    url = "http://www.zcdn.org/dl/warsow_${mversion}_unified.zip";
-    sha256 = "1b5bv4dsly7i7c4fqlkckv4da1knxl9m3kg8nlgkgr8waczgvazv";
+    url = "http://www.warsow.net/download?dl=linux";
+    name = "warsow_${mversion}_unified.tar.gz";
+    sha256 = "1v455v4lpqda7lf2yviasdrlibvb6bsyxcadgl8bd4jcvr8x4czr";
   };
   unpackPhase = ''
-    mkdir warsow_${version}_sdk
+    tar xf "$src1"
     cd warsow_${version}_sdk
-    unzip $src1
-    unzip $src2
+    tar xf "$src2"
     mkdir -p source/release/
-    mv warsow_${mversion}_unified/basewsw source/release/
+    mv warsow_${mversion}/basewsw source/release/
     cd source
   '';
   patchPhase = ''
     substituteInPlace snd_openal/snd_main.c --replace libopenal.so.1 ${openal}/lib/libopenal.so.1
   '';
-  buildInputs = [ unzip pkgconfig zlib curl libjpeg libvorbis libXxf86dga
-                  libXxf86vm libXinerama SDL mesa openal ];
+  buildInputs = [ unzip pkgconfig zlib curl libjpeg libpng libvorbis libtheora
+                  libXxf86dga libXxf86vm libXinerama SDL mesa openal ];
   installPhase = ''
     dest=$out/opt/warsow
     cd release
diff --git a/pkgs/os-specific/linux/alsa-utils/default.nix b/pkgs/os-specific/linux/alsa-utils/default.nix
index ca3a45bddfd..7e4a97a1ab1 100644
--- a/pkgs/os-specific/linux/alsa-utils/default.nix
+++ b/pkgs/os-specific/linux/alsa-utils/default.nix
@@ -1,16 +1,17 @@
 {stdenv, fetchurl, alsaLib, gettext, ncurses}:
 
 stdenv.mkDerivation rec {
-  name = "alsa-utils-1.0.25";
-  
+  name = "alsa-utils-1.0.26";
+
   src = fetchurl {
-    url = "ftp://ftp.alsa-project.org/pub/utils/${name}.tar.bz2";
-    sha256 = "0b1hbdq1bdkbz72zdfy5cgp75jqpysb0mqb0n9wy5gsbccpnlrrf";
+    # url = "ftp://ftp.alsa-project.org/pub/utils/${name}.tar.bz2";
+    url = "http://alsa.cybermirror.org/utils/${name}.tar.bz2";
+    sha256 = "1rw1n3w8syqky9i7kwy5xd2rzfdbihxas32vwfxpb177lqx2lpzq";
   };
-  
+
   buildInputs = [ alsaLib ncurses ];
   buildNativeInputs = [ gettext ];
-  
+
   configureFlags = "--disable-xmlto --with-udev-rules-dir=$(out)/lib/udev/rules.d";
 
   installFlags = "ASOUND_STATE_DIR=$(TMPDIR)/dummy";
diff --git a/pkgs/os-specific/linux/cryptodev/default.nix b/pkgs/os-specific/linux/cryptodev/default.nix
new file mode 100644
index 00000000000..c64d47d0d4d
--- /dev/null
+++ b/pkgs/os-specific/linux/cryptodev/default.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv, kernel, onlyHeaders ? false }:
+
+stdenv.mkDerivation rec {
+  name = "cryptodev-linux-1.5";
+
+  src = fetchurl {
+    url = "http://download.gna.org/cryptodev-linux/${name}.tar.gz";
+    sha256 = "13hybl5p0ck0vgi2gxmiwa2810gcfk78kdy17ai8nczj8il15mn0";
+  };
+
+  buildPhase = if (!onlyHeaders) then ''
+    make -C ${kernel}/lib/modules/${kernel.modDirVersion}/build \
+      SUBDIRS=`pwd` INSTALL_PATH=$out
+  '' else ":";
+
+  installPhase = stdenv.lib.optionalString (!onlyHeaders) ''
+    make -C ${kernel}/lib/modules/${kernel.modDirVersion}/build \
+      INSTALL_MOD_PATH=$out SUBDIRS=`pwd` modules_install
+  '' + ''
+    mkdir -p $out/include/crypto
+    cp crypto/cryptodev.h $out/include/crypto
+  '';
+
+  meta = {
+    description = "Device that allows access to Linux kernel cryptographic drivers";
+    homepage = http://home.gna.org/cryptodev-linux/;
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/builder.sh b/pkgs/os-specific/linux/kernel/builder.sh
index 4c095bf8bbc..14d8108ba16 100644
--- a/pkgs/os-specific/linux/kernel/builder.sh
+++ b/pkgs/os-specific/linux/kernel/builder.sh
@@ -140,6 +140,10 @@ installPhase() {
         (cd arch/$archDir/include && cp -a asm/* $includeDir/asm/ || true)
         (cd arch/$archDir/include && cp -a generated/asm/* $includeDir/asm/ || true)
         (cd arch/$archDir/include/asm/mach-generic && cp -a * $includeDir/ || true)
+            # include files for special arm architectures 
+            if [ "$archDir" == "arm" ]; then
+                cp -a --parents arch/arm/mach-*/include $out/lib/modules/$version/build
+            fi
         fi
     fi
 
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 9e8ee74acb1..48f050f98cc 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -27,9 +27,6 @@
   # optionally be compressed with gzip or bzip2.
   kernelPatches ? []
 
-, # Whether to build a User-Mode Linux kernel.
-  userModeLinux ? false
-
 , # Allows you to set your own kernel version suffix (e.g.,
   # "-my-kernel").
   localVersion ? ""
@@ -63,7 +60,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = if userModeLinux then "user-mode-linux-${version}" else "linux-${version}";
+  name = "linux-${version}";
 
   enableParallelBuilding = true;
 
@@ -84,7 +81,7 @@ stdenv.mkDerivation {
   kernelConfig = kernelConfigFun config;
 
   # For UML and non-PC, just ignore all options that don't apply (We are lazy).
-  ignoreConfigErrors = (userModeLinux || stdenv.platform.name != "pc");
+  ignoreConfigErrors = stdenv.platform.name != "pc";
 
   buildNativeInputs = [ perl mktemp ];
   buildInputs = lib.optional (stdenv.platform.uboot != null)
@@ -98,7 +95,6 @@ stdenv.mkDerivation {
   # Should we trust platform.kernelArch? We can only do
   # that once we differentiate i686/x86_64 in platforms.
   arch =
-    if userModeLinux then "um" else
     if stdenv.system == "i686-linux" then "i386" else
     if stdenv.system == "x86_64-linux" then "x86_64" else
     if stdenv.isArm then "arm" else
@@ -129,10 +125,7 @@ stdenv.mkDerivation {
 
   meta = {
     description =
-      (if userModeLinux then
-        "User-Mode Linux"
-       else
-        "The Linux kernel") +
+      "The Linux kernel" +
       (if kernelPatches == [] then "" else
         " (with patches: "
         + lib.concatStrings (lib.intersperse ", " (map (x: x.name) kernelPatches))
diff --git a/pkgs/os-specific/linux/kernel/linux-3.0.nix b/pkgs/os-specific/linux/kernel/linux-3.0.nix
index f2a0c326ef8..def318a1f3a 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.0.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.0.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
diff --git a/pkgs/os-specific/linux/kernel/linux-3.1.nix b/pkgs/os-specific/linux/kernel/linux-3.1.nix
index 76e2942c6a3..0ec50303ee2 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.1.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.1.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
diff --git a/pkgs/os-specific/linux/kernel/linux-3.2.nix b/pkgs/os-specific/linux/kernel/linux-3.2.nix
index adac94e328b..2f36792d353 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.2.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.2.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
@@ -237,7 +237,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.2.29";
+    version = "3.2.30";
     testing = false;
 
     modDirVersion = version;
@@ -248,7 +248,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.0/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "1rnsfw59xwzf18s7z28f5qa74ndf0pc2jca42pdnysgq1wjq631p";
+      sha256 = "1yg353alkk7vddd8b2d7dlgpwaxjigk8i9qq1xifln3i842zinvw";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.3.nix b/pkgs/os-specific/linux/kernel/linux-3.3.nix
index c56df955b79..395b93e9f3f 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.3.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.3.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
diff --git a/pkgs/os-specific/linux/kernel/linux-3.4.nix b/pkgs/os-specific/linux/kernel/linux-3.4.nix
index 9cf27901142..dbff9bba07e 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.4.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
diff --git a/pkgs/os-specific/linux/kernel/linux-3.5.nix b/pkgs/os-specific/linux/kernel/linux-3.5.nix
index 8eb4a1dec2c..9bcc6514f49 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.5.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.5.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 796aa9c32f8..34409c296e9 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -1,23 +1,29 @@
 { stdenv, fetchurl, pkgconfig, intltool, gperf, libcap, dbus, kmod
 , xz, pam, acl, cryptsetup, libuuid, m4, utillinux, usbutils, pciutils
-, glib, kbd
+, glib, kbd, libxslt
 }:
 
 assert stdenv.gcc.libc or null != null;
 
 stdenv.mkDerivation rec {
-  name = "systemd-188";
+  name = "systemd-191";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz";
-    sha256 = "0nr1cg1mizbwcafjcqw3c30mx6xdv596jpbgjlxr6myvc5hfsfg8";
+    sha256 = "0r0xz8dksacm20516kakqf6xchydhcc1lkvz3m75z1gbl6sa581g";
   };
 
-  patches = [ ./fail-after-reaching-respawn-limit.patch ];
+  patches = [ ./reexec.patch ] ++
+            # Remove this patch after the next update.
+            stdenv.lib.optional (stdenv.system == "i686-linux") (fetchurl {
+              url = "https://bugs.freedesktop.org/attachment.cgi?id=67621";
+	      name = "fix-32-bit-build.patch";
+	      sha256 = "1i4xn6lc6iapaasd2lz717b1zrq5ds5g18i7m509fgfwy7w7x95l";
+            });
 
   buildInputs =
     [ pkgconfig intltool gperf libcap dbus kmod xz pam acl
-      /* cryptsetup */ libuuid m4 usbutils pciutils glib
+      /* cryptsetup */ libuuid m4 usbutils pciutils glib libxslt
     ];
 
   configureFlags =
diff --git a/pkgs/os-specific/linux/systemd/fail-after-reaching-respawn-limit.patch b/pkgs/os-specific/linux/systemd/fail-after-reaching-respawn-limit.patch
deleted file mode 100644
index 7271b5578d5..00000000000
--- a/pkgs/os-specific/linux/systemd/fail-after-reaching-respawn-limit.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/core/service.c b/src/core/service.c
-index 1c127bd..eafdbe5 100644
---- a/src/core/service.c
-+++ b/src/core/service.c
-@@ -2487,6 +2487,7 @@ static int service_start(Unit *u) {
-         r = service_start_limit_test(s);
-         if (r < 0) {
-                 service_notify_sockets_dead(s, true);
-+                service_set_state(s, SERVICE_FAILED);
-                 return r;
-         }
- 
diff --git a/pkgs/os-specific/linux/systemd/reexec.patch b/pkgs/os-specific/linux/systemd/reexec.patch
new file mode 100644
index 00000000000..ff13a44ca0b
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/reexec.patch
@@ -0,0 +1,15 @@
+Make "systemctl daemon-reexec" do the right thing on NixOS.
+
+diff --git a/src/core/main.c b/src/core/main.c
+index 04fc0b3..0f5b0e9 100644
+--- a/src/core/main.c
++++ b/src/core/main.c
+@@ -1819,7 +1819,7 @@ finish:
+                         char_array_0(sfd);
+ 
+                         i = 0;
+-                        args[i++] = SYSTEMD_BINARY_PATH;
++                        args[i++] = "/run/current-system/systemd/lib/systemd/systemd";
+                         if (switch_root_dir)
+                                 args[i++] = "--switched-root";
+                         args[i++] = arg_running_as == SYSTEMD_SYSTEM ? "--system" : "--user";
diff --git a/pkgs/os-specific/linux/uml-utilities/builder.sh b/pkgs/os-specific/linux/uml-utilities/builder.sh
deleted file mode 100644
index 00b40278889..00000000000
--- a/pkgs/os-specific/linux/uml-utilities/builder.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-buildinputs=""
-source $stdenv/setup
-
-tar xvfj $src
-cd tools
-[ -n "$tunctl" ] && sed -e '1s/.*/TUNCTL = tunctl/' -i Makefile
-[ -z "$mconsole" ] && sed -e 's/mconsole//' -i Makefile
-
-mkdir $out
-mkdir $out/bin
-mkdir $out/lib
-mkdir $out/lib/uml
-make BIN_DIR=$out/bin LIB_DIR=$out/lib/uml
-make BIN_DIR=$out/bin LIB_DIR=$out/lib/uml install
-ln -s $out/lib/uml/port-helper $out/bin/port-helper
-[ -z "$tunctl" ] || [ -f $out/bin/tunctl ] || fail_no_tunctl
-[ -z "$mconsole" ] || [ -f $out/bin/uml_mconsole ] || fail_no_mconsole
diff --git a/pkgs/os-specific/linux/uml-utilities/default.nix b/pkgs/os-specific/linux/uml-utilities/default.nix
deleted file mode 100644
index 4ed7c6e8a3a..00000000000
--- a/pkgs/os-specific/linux/uml-utilities/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{lib, stdenv, fetchurl, linuxHeaders , readline, tunctl ? false, mconsole ? false}:
-
-stdenv.mkDerivation {
-  inherit tunctl mconsole;
-  buildInputs = lib.optional tunctl linuxHeaders
-            ++ lib.optional mconsole readline;
-  name = "uml-utilities-20040114";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = http://nixos.org/tarballs/uml_utilities_20040114.tar.bz2;
-    md5 = "1fd5b791ef32c6a3ed4ae42c4a53a316";
-  };
-}
diff --git a/pkgs/servers/mail/dovecot/1.0.3.nix b/pkgs/servers/mail/dovecot/1.0.3.nix
deleted file mode 100644
index 70e84fa51b0..00000000000
--- a/pkgs/servers/mail/dovecot/1.0.3.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{stdenv, fetchurl
-  , openssl
-  , pam
-}:
-
-stdenv.mkDerivation {
-  name = "dovecot-1.0.3";
-
-  buildInputs = [openssl pam];
-
-  src = fetchurl {
-    url = http://dovecot.org/releases/1.0/dovecot-1.0.3.tar.gz;
-    sha256 = "14b3sbvj9xpm5mjwfavwrcwmzfdgian51ncspl8j83cd8j01jdjz";
-  };
-  
-}
diff --git a/pkgs/servers/mail/dovecot/1.1.1.nix b/pkgs/servers/mail/dovecot/1.1.1.nix
deleted file mode 100644
index 103f79652fd..00000000000
--- a/pkgs/servers/mail/dovecot/1.1.1.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{stdenv, fetchurl
-  , openssl
-  , pam
-}:
-
-let 
-  version = "1.1.1"; 
-in
-
-stdenv.mkDerivation {
-  name = "dovecot-${version}";
-
-  buildInputs = [openssl pam];
-
-  src = fetchurl {
-    url = "http://dovecot.org/releases/1.1/dovecot-${version}.tar.gz";
-    sha256 = "0plzrzz07k0cylk9323gs9fzlv176y6nd6am660b6dch4p884sck";
-  };
-  
-}
diff --git a/pkgs/servers/mail/dovecot/2.x.nix b/pkgs/servers/mail/dovecot/default.nix
similarity index 87%
rename from pkgs/servers/mail/dovecot/2.x.nix
rename to pkgs/servers/mail/dovecot/default.nix
index 1b4fbe7c7cc..cb29c9ebc89 100644
--- a/pkgs/servers/mail/dovecot/2.x.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -18,10 +18,10 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    homepage = http://dovecot.org/;
+    homepage = "http://dovecot.org/";
     description = "Open source IMAP and POP3 email server written with security primarily in mind";
-    maintainers = with stdenv.lib.maintainers; [viric];
+    maintainers = with stdenv.lib.maintainers; [viric simons];
     platforms = with stdenv.lib.platforms; linux;
   };
-  
+
 }
diff --git a/pkgs/servers/restund/default.nix b/pkgs/servers/restund/default.nix
new file mode 100644
index 00000000000..e817151e778
--- /dev/null
+++ b/pkgs/servers/restund/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, zlib, openssl, libre, librem, mysql}:
+stdenv.mkDerivation rec {
+  version = "0.4.2";
+  name = "restund-${version}";
+  src=fetchurl {
+    url = "http://www.creytiv.com/pub/restund-${version}.tar.gz";
+    sha256 = "db5260939d40cb2ce531075bef02b9d6431067bdd52f3168a6f25246bdf7b9f2";
+  };
+  buildInputs = [zlib openssl libre librem mysql];
+  makeFlags = [
+    "LIBRE_MK=${libre}/share/re/re.mk"
+    "LIBRE_INC=${libre}/include/re"
+    "LIBRE_SO=${libre}/lib"
+    "LIBREM_PATH=${librem}"
+    ''PREFIX=$(out)''
+    "USE_MYSQL=1"
+  ]
+  ++ stdenv.lib.optional (stdenv.gcc.gcc != null) "SYSROOT_ALT=${stdenv.gcc.gcc}"
+  ++ stdenv.lib.optional (stdenv.gcc.libc != null) "SYSROOT=${stdenv.gcc.libc}"
+  ;
+  NIX_LDFLAGS='' -L${mysql}/lib/mysql '';
+  meta = {
+    homepage = "http://www.creytiv.com/restund.html";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = with stdenv.lib.licenses; bsd3;
+  };
+}
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index bdde709c2c2..e9baac43cbd 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -3,11 +3,11 @@ a @ {
   boehmgc,mesa,ncurses,readline,gsl,libsigsegv,
   python,zlib, perl, texLive, texinfo, lzma,
 
-  noDepEntry, fullDepEntry, fetchUrlFromSrcInfo, 
+  noDepEntry, fullDepEntry, fetchUrlFromSrcInfo,
   lib,
 
   ...}:
-let 
+let
   s = import ./src-for-default.nix;
   buildInputs = with a; [
     freeglut ghostscriptX imagemagick fftw boehmgc
@@ -54,8 +54,9 @@ rec {
     description = "A tool for programming graphics intended to replace Metapost";
     maintainers = [
       a.lib.maintainers.raskin
+      a.lib.maintainers.simons
     ];
-    platforms = with a.lib.platforms; 
+    platforms = with a.lib.platforms;
       linux;
   };
 }
diff --git a/pkgs/tools/graphics/asymptote/src-for-default.nix b/pkgs/tools/graphics/asymptote/src-for-default.nix
index e9d822904af..ddd0860ccd1 100644
--- a/pkgs/tools/graphics/asymptote/src-for-default.nix
+++ b/pkgs/tools/graphics/asymptote/src-for-default.nix
@@ -1,7 +1,7 @@
 rec {
-   version="2.16";
-   name="asymptote-2.16";
-   hash="1yj8dx320s1ypqbpb2116y4kkc8lwg5q4d49n992ds3g59w98djj";
+   version="2.18";
+   name="asymptote-2.18";
+   hash="0i7jm12lzj983gvpa95a85wxb4v4ksk3cxb0cq359x2kka0b6g5m";
    url="http://downloads.sourceforge.net/project/asymptote/${version}/asymptote-${version}.src.tgz";
-   advertisedUrl="http://downloads.sourceforge.net/project/asymptote/2.16/asymptote-2.16.src.tgz";
+   advertisedUrl="http://downloads.sourceforge.net/project/asymptote/2.18/asymptote-2.18.src.tgz";
 }
diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix
index c9c975d557c..d3198cee32c 100644
--- a/pkgs/tools/networking/modemmanager/default.nix
+++ b/pkgs/tools/networking/modemmanager/default.nix
@@ -5,8 +5,8 @@ stdenv.mkDerivation rec {
 
   src = fetchurl_gnome {
     project = "ModemManager";
-    major = "0"; minor = "5"; extension = "xz";
-    sha256 = "0zvwrni4l21d856nq28khigrhwgrq5cc7nh45zidwjj8q7bsxiz7";
+    major = "0"; minor = "5"; patchlevel = "4.0"; extension = "xz";
+    sha256 = "1fdf5d5cc494825afe9f551248e00a2d91e220e88435b47f109ca2a707a40f1f";
   };
 
   buildNativeInputs = [ intltool pkgconfig ];
diff --git a/pkgs/tools/package-management/cabal-install/0.14.0.nix b/pkgs/tools/package-management/cabal-install/0.14.0.nix
index ecbd46de52c..15fe5f1e22c 100644
--- a/pkgs/tools/package-management/cabal-install/0.14.0.nix
+++ b/pkgs/tools/package-management/cabal-install/0.14.0.nix
@@ -9,6 +9,10 @@ cabal.mkDerivation (self: {
   buildDepends = [
     Cabal filepath HTTP mtl network random time zlib
   ];
+  postInstall = ''
+    mkdir $out/etc
+    mv bash-completion $out/etc/bash_completion.d
+  '';
   meta = {
     homepage = "http://www.haskell.org/cabal/";
     description = "The command-line interface for Cabal and Hackage";
diff --git a/pkgs/tools/system/hardlink/default.nix b/pkgs/tools/system/hardlink/default.nix
index 1655fdba6f4..192f7d871a1 100644
--- a/pkgs/tools/system/hardlink/default.nix
+++ b/pkgs/tools/system/hardlink/default.nix
@@ -1,33 +1,27 @@
-{ fetchurl, stdenv }:
+{ fetchurl, stdenv, unzip }:
 
 let
-  rev = "269cc6";
-
-  src = fetchurl {
-    url = "http://pkgs.fedoraproject.org/gitweb/?p=hardlink.git;a=blob_plain;f=hardlink.c;hb=${rev}";
-    sha256 = "721c54e653772e11bf0d30fb02aa21b96b147a1b68c0acb4f05cb87e7718bc12";
-    name = "hardlink.c";
-  };
-
-  man =  fetchurl {
-    url = "pkgs.fedoraproject.org/gitweb/?p=hardlink.git;a=blob_plain;f=hardlink.1;hb=${rev}";
-    sha256 = "2f7e18a0259a2ceae316592e8b18bee525eb7e83fe3bb6b881e5dafa24747f2d";
-    name = "hardlink.1";
-  };
+  rev = "3ec908d539";
 in
 stdenv.mkDerivation {
-  name = "hardlink-2010.1.${rev}";
+  name = "hardlink-2012.9.${rev}";
 
-  phases = ["buildPhase"];
+  src = fetchurl {
+    url = "pkgs.fedoraproject.org/cgit/hardlink.git/snapshot/hardlink-${rev}.zip";
+    sha256 = "fea1803170b538d5fecf6a8d312ded1d25d516e9386a3797441a247487551647";
+    name = "hardlink-${rev}.zip";
+  };
 
-  buildPhase = ''
+  installPhase = ''
     mkdir -p $out/bin $out/share/man/man1
-    gcc -O2 ${src} -o $out/bin/hardlink
-    install -m 444 ${man} $out/share/man/man1/hardlink.1
+    gcc -O2 hardlink.c -o $out/bin/hardlink
+    mv hardlink.1 $out/share/man/man1/hardlink.1
   '';
 
+  buildInputs = [ unzip ];
+
   meta = {
-    homepage = "http://pkgs.fedoraproject.org/gitweb/?p=hardlink.git;a=summary";
+    homepage = "http://pkgs.fedoraproject.org/cgit/hardlink.git/";
     description = "consolidate duplicate files via hardlinks";
     license = stdenv.lib.licenses.gpl2Plus;
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 36517d48457..bb162c97f16 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -78,11 +78,7 @@ let
 
   # Allow setting the platform in the config file. Otherwise, let's use a reasonable default (pc)
   platform = if platform_ != null then platform_
-    else getConfig [ "platform" ] (import ./platforms.nix).pc;
-
-  # Return an attribute from the Nixpkgs configuration file, or
-  # a default value if the attribute doesn't exist.
-  getConfig = attrPath: default: lib.attrByPath attrPath default config;
+    else config.platform or (import ./platforms.nix).pc;
 
 
   # Helper functions that are exported through `pkgs'.
@@ -101,7 +97,7 @@ let
   # (un-overriden) set of packages, allowing packageOverrides
   # attributes to refer to the original attributes (e.g. "foo =
   # ... pkgs.foo ...").
-  pkgs = applyGlobalOverrides (getConfig ["packageOverrides"] (pkgs: {}));
+  pkgs = applyGlobalOverrides (config.packageOverrides or (pkgs: {}));
 
 
   # Return the complete set of packages, after applying the overrides
@@ -178,7 +174,7 @@ let
   ### Helper functions.
 
 
-  inherit lib config getConfig stdenvAdapters;
+  inherit lib config stdenvAdapters;
 
   inherit (lib) lowPrio hiPrio appendToName makeOverridable;
 
@@ -206,8 +202,7 @@ let
 
   defaultStdenv = allStdenvs.stdenv // { inherit platform; };
 
-  stdenvCross = makeStdenvCross defaultStdenv crossSystem binutilsCross
-    gccCrossStageFinal;
+  stdenvCross = lowPrio (makeStdenvCross defaultStdenv crossSystem binutilsCross gccCrossStageFinal);
 
   stdenv =
     if bootStdenv != null then (bootStdenv // {inherit platform;}) else
@@ -215,7 +210,7 @@ let
         stdenvCross
       else
         let
-            changer = getConfig ["replaceStdenv"] null;
+            changer = config.replaceStdenv or null;
         in if changer != null then
           changer {
             # We import again all-packages to avoid recursivities.
@@ -233,11 +228,11 @@ let
   # A stdenv capable of building 32-bit binaries.  On x86_64-linux,
   # it uses GCC compiled with multilib support; on i686-linux, it's
   # just the plain stdenv.
-  stdenv_32bit =
+  stdenv_32bit = lowPrio (
     if system == "x86_64-linux" then
       overrideGCC stdenv gcc43_multi
     else
-      stdenv;
+      stdenv);
 
 
   ### BUILD SUPPORT
@@ -278,7 +273,7 @@ let
 
   fetchgitrevision = import ../build-support/fetchgitrevision runCommand git;
 
-  fetchmtn = callPackage ../build-support/fetchmtn (getConfig ["fetchmtn"] {});
+  fetchmtn = callPackage ../build-support/fetchmtn (config.fetchmtn or {});
 
   fetchsvn = import ../build-support/fetchsvn {
     inherit stdenv subversion openssh;
@@ -418,7 +413,7 @@ let
   autojump = callPackage ../tools/misc/autojump { };
 
   avahi = callPackage ../development/libraries/avahi {
-    qt4Support = getConfig [ "avahi" "qt4Support" ] false;
+    qt4Support = config.avahi.qt4Support or false;
   };
 
   aws = callPackage ../tools/virtualization/aws { };
@@ -838,7 +833,7 @@ let
   };
 
   grub = callPackage_i686 ../tools/misc/grub {
-    buggyBiosCDSupport = getConfig ["grub" "buggyBiosCDSupport"] true;
+    buggyBiosCDSupport = config.grub.buggyBiosCDSupport or true;
   };
 
   grub2 = callPackage ../tools/misc/grub/2.0x.nix { };
@@ -1636,7 +1631,7 @@ let
   };
 
   truecrypt = callPackage ../applications/misc/truecrypt {
-    wxGUI = getConfig [ "truecrypt" "wxGUI" ] true;
+    wxGUI = config.truecrypt.wxGUI or true;
   };
 
   ttmkfdir = callPackage ../tools/misc/ttmkfdir { };
@@ -1821,7 +1816,7 @@ let
   clang = wrapClang clangUnwrapped;
 
   #Use this instead of stdenv to build with clang
-  clangStdenv = stdenvAdapters.overrideGCC stdenv clang;
+  clangStdenv = lowPrio (stdenvAdapters.overrideGCC stdenv clang);
 
   clean = callPackage ../development/compilers/clean { };
 
@@ -2745,14 +2740,14 @@ let
     inherit
       stdenv fetchurl lib composableDerivation autoconf automake
       flex bison apacheHttpd mysql libxml2 readline
-      zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
+      zlib curl gd postgresql openssl pkgconfig sqlite config libiconv libjpeg libpng;
   };
 
   php5_3 = makeOverridable (import ../development/interpreters/php/5.3.nix) {
     inherit
       stdenv fetchurl lib composableDerivation autoconf automake
       flex bison apacheHttpd mysql libxml2 readline
-      zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
+      zlib curl gd postgresql openssl pkgconfig sqlite config libiconv libjpeg libpng;
   };
 
   php_apc = callPackage ../development/libraries/php-apc { };
@@ -2822,7 +2817,7 @@ let
   rubySqlite3 = callPackage ../development/ruby-modules/sqlite3 { };
 
   rLang = callPackage ../development/interpreters/r-lang {
-    withBioconductor = getConfig ["rLang" "withBioconductor"] false;
+    withBioconductor = config.rLang.withBioconductor or false;
   };
 
   rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/rubygems.nix) {
@@ -2860,7 +2855,7 @@ let
   */
 
   sourceFromHead = import ../build-support/source-from-head-fun.nix {
-    inherit getConfig;
+    inherit config;
   };
 
   ecj = callPackage ../development/eclipse/ecj { };
@@ -2991,7 +2986,7 @@ let
   #
   ccacheWrapper = makeOverridable ({ extraConfig ? "" }:
      wrapGCC (ccache.links extraConfig)) {};
-  ccacheStdenv = overrideGCC stdenv ccacheWrapper;
+  ccacheStdenv = lowPrio (overrideGCC stdenv ccacheWrapper);
 
   cgdb = callPackage ../development/tools/misc/cgdb { };
 
@@ -3176,10 +3171,10 @@ let
   radare = callPackage ../development/tools/analysis/radare {
     inherit (gnome) vte;
     lua = lua5;
-    useX11 = getConfig ["radare" "useX11"] false;
-    pythonBindings = getConfig ["radare" "pythonBindings"] false;
-    rubyBindings = getConfig ["radare" "rubyBindings"] false;
-    luaBindings = getConfig ["radare" "luaBindings"] false;
+    useX11 = config.radare.useX11 or false;
+    pythonBindings = config.radare.pythonBindings or false;
+    rubyBindings = config.radare.rubyBindings or false;
+    luaBindings = config.radare.luaBindings or false;
   };
 
   ragel = callPackage ../development/tools/parsing/ragel { };
@@ -3318,13 +3313,12 @@ let
   boost146 = callPackage ../development/libraries/boost/1.46.nix { };
   boost147 = callPackage ../development/libraries/boost/1.47.nix { };
   boost149 = callPackage ../development/libraries/boost/1.49.nix { };
-  boost150 = callPackage ../development/libraries/boost/1.50.nix { };
   boost151 = callPackage ../development/libraries/boost/1.51.nix { };
   boost = boost151;
 
   boostHeaders149 = callPackage ../development/libraries/boost/1.49-headers.nix { };
-  boostHeaders150 = callPackage ../development/libraries/boost/1.50-headers.nix { };
-  boostHeaders = boostHeaders150;
+  boostHeaders151 = callPackage ../development/libraries/boost/1.51-headers.nix { };
+  boostHeaders = boostHeaders151;
 
   botan = callPackage ../development/libraries/botan { };
 
@@ -3611,19 +3605,19 @@ let
 
   glibc29 = callPackage ../development/libraries/glibc/2.9 {
     kernelHeaders = linuxHeaders;
-    installLocales = getConfig [ "glibc" "locales" ] false;
+    installLocales = config.glibc.locales or false;
   };
 
   glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc/2.9) {
     inherit stdenv fetchurl;
     gccCross = gccCrossStageStatic;
     kernelHeaders = linuxHeadersCross;
-    installLocales = getConfig [ "glibc" "locales" ] false;
+    installLocales = config.glibc.locales or false;
   });
 
   glibc213 = (callPackage ../development/libraries/glibc/2.13 {
     kernelHeaders = linuxHeaders;
-    installLocales = getConfig [ "glibc" "locales" ] false;
+    installLocales = config.glibc.locales or false;
     machHeaders = null;
     hurdHeaders = null;
     gccCross = null;
@@ -3635,7 +3629,7 @@ let
        inherit stdenv fetchurl;
        gccCross = gccCrossStageStatic;
        kernelHeaders = if crossGNU then gnu.hurdHeaders else linuxHeadersCross;
-       installLocales = getConfig [ "glibc" "locales" ] false;
+       installLocales = config.glibc.locales or false;
      }
      // lib.optionalAttrs crossGNU {
         inherit (gnu) machHeaders hurdHeaders libpthreadHeaders mig;
@@ -3644,7 +3638,7 @@ let
 
   glibc214 = (callPackage ../development/libraries/glibc/2.14 {
     kernelHeaders = linuxHeaders;
-    installLocales = getConfig [ "glibc" "locales" ] false;
+    installLocales = config.glibc.locales or false;
     machHeaders = null;
     hurdHeaders = null;
     gccCross = null;
@@ -3656,7 +3650,7 @@ let
        inherit stdenv fetchurl;
        gccCross = gccCrossStageStatic;
        kernelHeaders = if crossGNU then gnu.hurdHeaders else linuxHeadersCross;
-       installLocales = getConfig [ "glibc" "locales" ] false;
+       installLocales = config.glibc.locales or false;
      }
      // lib.optionalAttrs crossGNU {
         inherit (gnu) machHeaders hurdHeaders libpthreadHeaders mig;
@@ -3675,7 +3669,7 @@ let
 
   eglibc = callPackage ../development/libraries/eglibc {
     kernelHeaders = linuxHeaders;
-    installLocales = getConfig [ "glibc" "locales" ] false;
+    installLocales = config.glibc.locales or false;
   };
 
   glibcLocales = callPackage ../development/libraries/glibc/2.13/locales.nix { };
@@ -3783,11 +3777,11 @@ let
   };
 
   gnutls = callPackage ../development/libraries/gnutls {
-    guileBindings = getConfig ["gnutls" "guile"] true;
+    guileBindings = config.gnutls.guile or true;
   };
 
   gnutls2 = callPackage ../development/libraries/gnutls/2.12.nix {
-    guileBindings = getConfig ["gnutls" "guile"] true;
+    guileBindings = config.gnutls.guile or true;
   };
 
   gnutls_without_guile = gnutls.override { guileBindings = false; };
@@ -3976,7 +3970,7 @@ let
   libaal = callPackage ../development/libraries/libaal { };
 
   libao = callPackage ../development/libraries/libao {
-    usePulseAudio = getConfig [ "pulseaudio" ] true;
+    usePulseAudio = config.pulseaudio or true;
   };
 
   libarchive = callPackage ../development/libraries/libarchive { };
@@ -4147,7 +4141,7 @@ let
   libimobiledevice = callPackage ../development/libraries/libimobiledevice { };
 
   libiodbc = callPackage ../development/libraries/libiodbc {
-    useGTK = getConfig [ "libiodbc" "gtk" ] false;
+    useGTK = config.libiodbc.gtk or false;
   };
 
   liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
@@ -4172,6 +4166,9 @@ let
 
   libQGLViewer = callPackage ../development/libraries/libqglviewer { };
 
+  libre = callPackage ../development/libraries/libre {};
+  librem = callPackage ../development/libraries/librem {};
+
   libsamplerate = callPackage ../development/libraries/libsamplerate { };
 
   libspectre = callPackage ../development/libraries/libspectre { };
@@ -4610,6 +4607,10 @@ let
 
   openssl = callPackage ../development/libraries/openssl {
     fetchurl = fetchurlBoot;
+    cryptodevHeaders = linuxPackages.cryptodev.override {
+      fetchurl = fetchurlBoot;
+      onlyHeaders = true;
+    };
   };
 
   ortp = callPackage ../development/libraries/ortp { };
@@ -4619,12 +4620,12 @@ let
   pangoxsl = callPackage ../development/libraries/pangoxsl { };
 
   pcre = callPackage ../development/libraries/pcre {
-    unicodeSupport = getConfig ["pcre" "unicode"] true;
+    unicodeSupport = config.pcre.unicode or true;
     cplusplusSupport = !stdenv ? isDietLibC;
   };
 
   pcre_8_30 = callPackage ../development/libraries/pcre/8.30.nix {
-    unicodeSupport = getConfig ["pcre" "unicode"] true;
+    unicodeSupport = config.pcre.unicode or true;
     cplusplusSupport = !stdenv ? isDietLibC;
   };
 
@@ -4814,6 +4815,8 @@ let
 
   sord = callPackage ../development/libraries/sord {};
 
+  spandsp = callPackage ../development/libraries/spandsp {};
+
   speechd = callPackage ../development/libraries/speechd { };
 
   speech_tools = callPackage ../development/libraries/speech-tools {};
@@ -5272,10 +5275,7 @@ let
     inherit stdenv lib dict;
   };
 
-  dovecot = callPackage ../servers/mail/dovecot/1.0.3.nix { };
-  dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
-  dovecot_2 = callPackage ../servers/mail/dovecot/2.x.nix { };
-  dovecot_2_0 = pkgs.dovecot_2; # Actually, 2.1
+  dovecot = callPackage ../servers/mail/dovecot { };
 
   ejabberd = callPackage ../servers/xmpp/ejabberd { };
 
@@ -5358,7 +5358,7 @@ let
   #monetdb = callPackage ../servers/sql/monetdb { };
 
   mongodb = callPackage ../servers/nosql/mongodb {
-    useV8 = (getConfig ["mongodb" "useV8"] false);
+    useV8 = (config.mongodb.useV8 or false);
   };
 
   mysql4 = import ../servers/sql/mysql {
@@ -5424,6 +5424,8 @@ let
 
   redstore = callPackage ../servers/http/redstore { };
 
+  restund = callPackage ../servers/restund {};
+
   spamassassin = callPackage ../servers/mail/spamassassin {
     inherit (perlPackages) HTMLParser NetDNS NetAddrIP DBFile
       HTTPDate MailDKIM;
@@ -5874,6 +5876,8 @@ let
 
     blcr = callPackage ../os-specific/linux/blcr { };
 
+    cryptodev = callPackage ../os-specific/linux/cryptodev { };
+
     e1000e = callPackage ../os-specific/linux/e1000e {};
 
     exmap = callPackage ../os-specific/linux/exmap { };
@@ -6075,8 +6079,8 @@ let
   pam_usb = callPackage ../os-specific/linux/pam_usb { };
 
   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
-    firmware = getConfig ["pcmciaUtils" "firmware"] [];
-    config = getConfig ["pcmciaUtils" "config"] null;
+    firmware = config.pcmciaUtils.firmware or [];
+    config = config.pcmciaUtils.config or null;
   };
 
   phat = callPackage ../development/libraries/phat {
@@ -6194,14 +6198,6 @@ let
 
   udisks = callPackage ../os-specific/linux/udisks { };
 
-  uml = linux.override {
-    userModeLinux = true;
-  };
-
-  umlutilities = callPackage ../os-specific/linux/uml-utilities {
-    tunctl = true; mconsole = true;
-  };
-
   untie = callPackage ../os-specific/linux/untie { };
 
   upower = callPackage ../os-specific/linux/upower { };
@@ -6516,6 +6512,8 @@ let
     cairo = cairo.override { xcbSupport = true; };
   };
 
+  baresip = callPackage ../applications/networking/instant-messengers/baresip {};
+
   batik = callPackage ../applications/graphics/batik { };
 
   bazaar = callPackage ../applications/version-management/bazaar { };
@@ -6668,7 +6666,7 @@ let
   dvswitch = callPackage ../applications/video/dvswitch { };
 
   dwm = callPackage ../applications/window-managers/dwm {
-    patches = getConfig [ "dwm" "patches" ] [];
+    patches = config.dwm.patches or [];
   };
 
   eaglemode = callPackage ../applications/misc/eaglemode { };
@@ -6701,8 +6699,8 @@ let
          literal backslashes have changed.  */
       else overrideGCC stdenv gcc44;
 
-    xaw3dSupport = getConfig [ "emacs" "xaw3dSupport" ] false;
-    gtkGUI = getConfig [ "emacs" "gtkSupport" ] true;
+    xaw3dSupport = config.emacs.xaw3dSupport or false;
+    gtkGUI = config.emacs.gtkSupport or true;
   };
 
   emacs23 = callPackage ../applications/editors/emacs-23 {
@@ -6878,7 +6876,7 @@ let
   grass = import ../applications/misc/grass {
     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
       libXaw libXrender;
-    inherit getConfig composableDerivation stdenv fetchurl
+    inherit config composableDerivation stdenv fetchurl
       lib flex bison cairo fontconfig
       gdal zlib ncurses gdbm proj pkgconfig swig
       blas liblapack libjpeg libpng mysql unixODBC mesa postgresql python
@@ -6943,11 +6941,11 @@ let
   flashplayer9 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-9 { };
 
   flashplayer10 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
-    debug = getConfig ["flashplayer" "debug"] false;
+    debug = config.flashplayer.debug or false;
   };
 
   flashplayer11 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-11 {
-    debug = getConfig ["flashplayer" "debug"] false;
+    debug = config.flashplayer.debug or false;
     # !!! Fix the dependency on two different builds of nss.
   };
 
@@ -7041,7 +7039,7 @@ let
   gnunet08 = callPackage ../applications/networking/p2p/gnunet/0.8.nix {
     inherit (gnome) libglade;
     guile = guile_1_8;
-    gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
+    gtkSupport = config.gnunet.gtkSupport or true;
   };
 
   gnunet = callPackage ../applications/networking/p2p/gnunet { };
@@ -7402,7 +7400,7 @@ let
     avahi = avahi.override {
       withLibdnssdCompat = true;
     };
-    jackSupport = getConfig [ "mumble" "jackSupport" ] false;
+    jackSupport = config.mumble.jackSupport or false;
   };
 
   mutt = callPackage ../applications/networking/mailreaders/mutt { };
@@ -7494,9 +7492,9 @@ let
   picard = callPackage ../applications/audio/picard { };
 
   pidgin = callPackage ../applications/networking/instant-messengers/pidgin {
-    openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
-    gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
-    libgcrypt = if (getConfig ["pidgin" "gnutls"] false) then libgcrypt else null;
+    openssl = if (config.pidgin.openssl or true) then openssl else null;
+    gnutls = if (config.pidgin.gnutls or false) then gnutls else null;
+    libgcrypt = if (config.pidgin.gnutls or false) then libgcrypt else null;
     inherit (gnome) startupnotification;
   };
 
@@ -7585,7 +7583,7 @@ let
 
   rsync = callPackage ../applications/networking/sync/rsync {
     enableACLs = !(stdenv.isDarwin || stdenv.isSunOS);
-    enableCopyDevicesPatch = (getConfig ["rsync" "enableCopyDevicesPatch"] false);
+    enableCopyDevicesPatch = (config.rsync.enableCopyDevicesPatch or false);
   };
 
   rxvt = callPackage ../applications/misc/rxvt { };
@@ -7618,7 +7616,7 @@ let
   siproxd = callPackage ../applications/networking/siproxd { };
 
   skype_linux = callPackage_i686 ../applications/networking/instant-messengers/skype {
-    usePulseAudio = getConfig [ "pulseaudio" ] false; # disabled by default (the 100% cpu bug)
+    usePulseAudio = config.pulseaudio or false; # disabled by default (the 100% cpu bug)
   };
 
   st = callPackage ../applications/misc/st { };
@@ -7713,7 +7711,7 @@ let
   taskjuggler = callPackage ../applications/misc/taskjuggler {
     # KDE support is not working yet.
     inherit (kde3) kdelibs kdebase;
-    withKde = getConfig [ "taskJuggler" "kde" ] false;
+    withKde = config.taskJuggler.kde or false;
   };
 
   taskwarrior = callPackage ../applications/misc/taskwarrior { };
@@ -7769,7 +7767,7 @@ let
 
   unison = callPackage ../applications/networking/sync/unison {
     inherit (ocamlPackages) lablgtk;
-    enableX11 = getConfig [ "unison" "enableX11" ] true;
+    enableX11 = config.unison.enableX11 or true;
   };
 
   uucp = callPackage ../tools/misc/uucp { };
@@ -7799,19 +7797,15 @@ let
   vimHugeX = vim_configurable;
 
   vim_configurable = import ../applications/editors/vim/configurable.nix {
-    inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib
-      getConfig;
-    inherit (pkgs.xlibs) libX11 libXext libSM libXpm
-        libXt libXaw libXau libXmu libICE;
+    inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib config;
+    inherit (pkgs.xlibs) libX11 libXext libSM libXpm libXt libXaw libXau libXmu libICE;
     inherit (pkgs) glib gtk;
     features = "huge"; # one of  tiny, small, normal, big or huge
     # optional features by passing
     # python
     # TODO mzschemeinterp perlinterp
     inherit (pkgs) python perl tcl ruby /*x11*/;
-
     lua = pkgs.lua5;
-
     # optional features by flags
     flags = [ "X11" ]; # only flag "X11" by now
   };
@@ -7860,7 +7854,7 @@ let
     libixp = libixp_for_wmii;
     inherit fetchurl /* fetchhg */ stdenv gawk;
     inherit (xlibs) libX11 xextproto libXt libXext;
-    includeUnpack = getConfig ["stdenv" "includeUnpack"] false;
+    includeUnpack = config.stdenv.includeUnpack or false;
   };
 
   wordnet = callPackage ../applications/misc/wordnet { };
@@ -7872,23 +7866,23 @@ let
       inherit stdenv makeWrapper makeDesktopItem browser browserName desktopName nameSuffix icon;
       plugins =
         let
-          enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
-          enableGnash = getConfig [ browserName "enableGnash" ] false;
+          enableAdobeFlash = config.browserNameenableAdobeFlash or true;
+          enableGnash = config.browserNameenableGnash or false;
         in
          assert !(enableGnash && enableAdobeFlash);
          ([ ]
           ++ lib.optional enableGnash gnash
           ++ lib.optional enableAdobeFlash flashplayer
           # RealPlayer is disabled by default for legal reasons.
-          ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
-          ++ lib.optional (getConfig [browserName "enableDjvu"] false) (djview4)
-          ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
-          ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
-          ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
-          ++ lib.optional (getConfig [browserName "enableGoogleTalkPlugin"] false) google_talk_plugin
+          ++ lib.optional (system != "i686-linux" && config.browserNameenableRealPlayer or false) RealPlayer
+          ++ lib.optional (config.browserNameenableDjvu or false) (djview4)
+          ++ lib.optional (config.browserNameenableMPlayer or false) (MPlayerPlugin browser)
+          ++ lib.optional (config.browserNameenableGeckoMediaPlayer or false) gecko_mediaplayer
+          ++ lib.optional (supportsJDK && config.browserNamejre or false && jrePlugin ? mozillaPlugin) jrePlugin
+          ++ lib.optional (config.browserNameenableGoogleTalkPlugin or false) google_talk_plugin
          );
       libs =
-        if getConfig [ browserName "enableQuakeLive" ] false
+        if config.browserNameenableQuakeLive or false
         then with xlibs; [ stdenv.gcc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ]
         else [ ];
     };
@@ -8446,10 +8440,6 @@ let
 
   xfce = xfce48;
 
-  xfce46 = recurseIntoAttrs
-    (let callPackage = newScope pkgs.xfce46; in
-     import ../desktops/xfce-4.6 { inherit callPackage pkgs; });
-
   xfce48 = recurseIntoAttrs
     (let callPackage = newScope pkgs.xfce48; in
      import ../desktops/xfce-4.8 { inherit callPackage pkgs; });
@@ -8704,7 +8694,7 @@ let
   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
       pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
-      docutils gtk;
+      docutils gtk farstream gst_plugins_bad gstreamer gst_ffmpeg gst_python;
     dbus = dbus.libs;
     inherit (gnome) libglade;
     inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
@@ -8717,8 +8707,8 @@ let
 
   ghostscript = callPackage ../misc/ghostscript {
     x11Support = false;
-    cupsSupport = getConfig [ "ghostscript" "cups" ] true;
-    gnuFork = getConfig [ "ghostscript" "gnu" ] false;
+    cupsSupport = config.ghostscript.cups or true;
+    gnuFork = config.ghostscript.gnu or false;
   };
 
   ghostscriptX = appendToName "with-X" (ghostscript.override {
@@ -8754,13 +8744,13 @@ let
   nix = nixStable;
 
   nixStable = callPackage ../tools/package-management/nix {
-    storeDir = getConfig [ "nix" "storeDir" ] "/nix/store";
-    stateDir = getConfig [ "nix" "stateDir" ] "/nix/var";
+    storeDir = config.nix.storeDir or "/nix/store";
+    stateDir = config.nix.stateDir or "/nix/var";
   };
 
   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
-    storeDir = getConfig [ "nix" "storeDir" ] "/nix/store";
-    stateDir = getConfig [ "nix" "stateDir" ] "/nix/var";
+    storeDir = config.nix.storeDir or "/nix/store";
+    stateDir = config.nix.stateDir or "/nix/var";
   };
 
   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
@@ -8780,13 +8770,13 @@ let
   disnix = callPackage ../tools/package-management/disnix { };
 
   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts {
-    enableApacheWebApplication = getConfig ["disnix" "enableApacheWebApplication"] false;
-    enableAxis2WebService = getConfig ["disnix" "enableAxis2WebService"] false;
-    enableEjabberdDump = getConfig ["disnix" "enableEjabberdDump"] false;
-    enableMySQLDatabase = getConfig ["disnix" "enableMySQLDatabase"] false;
-    enablePostgreSQLDatabase = getConfig ["disnix" "enablePostgreSQLDatabase"] false;
-    enableSubversionRepository = getConfig ["disnix" "enableSubversionRepository"] false;
-    enableTomcatWebApplication = getConfig ["disnix" "enableTomcatWebApplication"] false;
+    enableApacheWebApplication = config.disnix.enableApacheWebApplication or false;
+    enableAxis2WebService = config.disnix.enableAxis2WebService or false;
+    enableEjabberdDump = config.disnix.enableEjabberdDump or false;
+    enableMySQLDatabase = config.disnix.enableMySQLDatabase or false;
+    enablePostgreSQLDatabase = config.disnix.enablePostgreSQLDatabase or false;
+    enableSubversionRepository = config.disnix.enableSubversionRepository or false;
+    enableTomcatWebApplication = config.disnix.enableTomcatWebApplication or false;
   };
 
   disnixos = callPackage ../tools/package-management/disnix/disnixos { };
@@ -8831,12 +8821,12 @@ let
   xlockmore = callPackage ../misc/screensavers/xlockmore { };
 
   saneBackends = callPackage ../misc/sane-backends {
-    gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
-    hotplugSupport = getConfig ["sane" "hotplugSupport"] true;
+    gt68xxFirmware = config.sane.gt68xxFirmware or null;
+    hotplugSupport = config.sane.hotplugSupport or true;
   };
 
   saneBackendsSnapshot = callPackage ../misc/sane-backends/snapshot.nix {
-    gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
+    gt68xxFirmware = config.sane.gt68xxFirmware or null;
   };
 
   saneFrontends = callPackage ../misc/sane-front { };
diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix
index 01b4f2e75ab..4b2f5fc4613 100644
--- a/pkgs/top-level/haskell-defaults.nix
+++ b/pkgs/top-level/haskell-defaults.nix
@@ -8,7 +8,7 @@
 # The actual Haskell packages are composed in haskell-packages.nix. There is
 # more documentation in there.
 
-{ makeOverridable, lowPrio, stdenv, pkgs, newScope, getConfig, callPackage } : rec {
+{ makeOverridable, lowPrio, stdenv, pkgs, newScope, config, callPackage } : rec {
 
   # Preferences functions.
   #
@@ -41,7 +41,6 @@
   ghc704Prefs =
     self : self.haskellPlatformArgs_2011_4_0_0 self // {
       haskellPlatform = self.haskellPlatform_2011_4_0_0;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; };
       monadPar = self.monadPar_0_1_0_3;
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.Cabal_1_14_0; };
@@ -50,7 +49,6 @@
   ghc703Prefs =
     self : self.haskellPlatformArgs_2011_2_0_1 self // {
       haskellPlatform = self.haskellPlatform_2011_2_0_1;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
       monadPar = self.monadPar_0_1_0_3;
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.Cabal_1_14_0; };
@@ -61,7 +59,6 @@
   ghc701Prefs =
     self : self.haskellPlatformArgs_2011_2_0_0 self // {
       haskellPlatform = self.haskellPlatform_2011_2_0_0;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
       monadPar = self.monadPar_0_1_0_3;
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.Cabal_1_14_0; };
@@ -73,7 +70,6 @@
     self : self.haskellPlatformArgs_2010_2_0_0 self // {
       haskellPlatform = self.haskellPlatform_2010_2_0_0;
       mtl1 = self.mtl_1_1_0_2;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
       monadPar = self.monadPar_0_1_0_3;
       deepseq = self.deepseq_1_1_0_2;
@@ -86,7 +82,6 @@
       haskellPlatform = self.haskellPlatform_2010_1_0_0;
       mtl1 = self.mtl_1_1_0_2;
       extensibleExceptions = self.extensibleExceptions_0_1_1_0;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       deepseq = self.deepseq_1_1_0_2;
       monadPar = self.monadPar_0_1_0_3;
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.Cabal_1_14_0; };
@@ -100,7 +95,6 @@
       mtl1 = self.mtl_1_1_0_2;
       extensibleExceptions = self.extensibleExceptions_0_1_1_0;
       text = self.text_0_11_0_6;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
       deepseq = self.deepseq_1_1_0_2;
       monadPar = self.monadPar_0_1_0_3;
@@ -123,13 +117,13 @@
         # prefFun = self : super : self;
         enableLibraryProfiling =
           if profExplicit then profDefault
-                          else getConfig [ "cabal" "libraryProfiling" ] profDefault;
+                          else config.cabal.libraryProfiling or profDefault;
         ghc = callPackage ghcPath { ghc = ghcBinary; };
       });
 
   defaultVersionPrioFun =
     profDefault :
-    if getConfig [ "cabal" "libraryProfiling" ] false == profDefault
+    if config.cabal.libraryProfiling or false == profDefault
       then (x : x)
       else lowPrio;
 
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index b5e9e4506d6..e7157bc507b 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -123,16 +123,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     cgi          = self.cgi_3001_1_8_3;         # 7.6 ok
     fgl          = self.fgl_5_4_2_4;            # 7.6 ok
     GLUT         = self.GLUT_2_3_0_0;           # 7.6 ok
-    haskellSrc   = self.haskellSrc_1_0_1_5;     # 7.6 fail
+    haskellSrc   = self.haskellSrc_1_0_1_5;     # 7.6 ok
     html         = self.html_1_0_1_2;           # 7.6 ok
     HTTP         = self.HTTP_4000_2_5;          # 7.6 ok
     HUnit        = self.HUnit_1_2_5_1;          # 7.6 ok
     mtl          = self.mtl_2_1_2;              # 7.6 ok
-    network      = self.network_2_4_0_0;        # 7.6 ok
+    network      = self.network_2_4_0_1;        # 7.6 ok
     OpenGL       = self.OpenGL_2_5_0_0;         # 7.6 ok
     parallel     = self.parallel_3_2_0_3;       # 7.6 ok
     parsec       = self.parsec_3_1_3;           # 7.6 ok
-    QuickCheck   = self.QuickCheck_2_5;         # 7.6 ok
+    QuickCheck   = self.QuickCheck_2_5_1_1;     # 7.6 ok
     random       = self.random_1_0_1_1;         # 7.6 ok
     regexBase    = self.regexBase_0_93_2;       # 7.6 ok
     regexCompat  = self.regexCompat_0_95_1;     # 7.6 ok
@@ -146,7 +146,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     cabalInstall = self.cabalInstall_0_14_0;    # 7.6 ok
     alex         = self.alex_3_0_1;             # 7.6 ok
     haddock      = self.haddock_2_12_0;         # 7.6 ok
-    happy        = self.happy_1_18_9;           # 7.6 fail
+    happy        = self.happy_1_18_10;          # 7.6 ok
   };
 
   haskellPlatformArgs_2012_2_0_0 = self : {
@@ -425,6 +425,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   attoparsec = callPackage ../development/libraries/haskell/attoparsec {};
 
+  attoparsecBinary = callPackage ../development/libraries/haskell/attoparsec-binary {};
+
   attoparsecConduit = callPackage ../development/libraries/haskell/attoparsec-conduit {};
 
   attoparsecEnumerator = callPackage ../development/libraries/haskell/attoparsec/enumerator.nix {};
@@ -495,6 +497,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   };
 
   Cabal_1_14_0 = callPackage ../development/libraries/haskell/Cabal/1.14.0.nix { cabal = self.cabal.override { Cabal = null; }; };
+  Cabal_1_16_0 = callPackage ../development/libraries/haskell/Cabal/1.16.0.nix { cabal = self.cabal.override { Cabal = null; }; };
   Cabal = null; # core package in GHC
 
   cabalFileTh = callPackage ../development/libraries/haskell/cabal-file-th {};
@@ -1130,8 +1133,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   network_2_3_0_2 = callPackage ../development/libraries/haskell/network/2.3.0.2.nix {};
   network_2_3_0_5 = callPackage ../development/libraries/haskell/network/2.3.0.5.nix {};
   network_2_3_0_13 = callPackage ../development/libraries/haskell/network/2.3.0.13.nix {};
-  network_2_4_0_0 = callPackage ../development/libraries/haskell/network/2.4.0.0.nix {};
-  network = self.network_2_4_0_0;
+  network_2_4_0_1 = callPackage ../development/libraries/haskell/network/2.4.0.1.nix {};
+  network = self.network_2_4_0_1;
 
   networkConduit = callPackage ../development/libraries/haskell/network-conduit {};
 
@@ -1258,9 +1261,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   QuickCheck_2_4_0_1 = callPackage ../development/libraries/haskell/QuickCheck/2.4.0.1.nix {};
   QuickCheck_2_4_1_1 = callPackage ../development/libraries/haskell/QuickCheck/2.4.1.1.nix {};
   QuickCheck_2_4_2 = callPackage ../development/libraries/haskell/QuickCheck/2.4.2.nix {};
-  QuickCheck_2_5 = callPackage ../development/libraries/haskell/QuickCheck/2.5.nix {};
+  QuickCheck_2_5_1_1 = callPackage ../development/libraries/haskell/QuickCheck/2.5.1.1.nix {};
   QuickCheck1 = self.QuickCheck_1_2_0_1;
-  QuickCheck2 = self.QuickCheck_2_5;
+  QuickCheck2 = self.QuickCheck_2_5_1_1;
   QuickCheck  = self.QuickCheck2;
 
   RangedSets = callPackage ../development/libraries/haskell/Ranged-sets {};
@@ -1513,6 +1516,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   threadmanager = callPackage ../development/libraries/haskell/threadmanager {};
 
+  threads = callPackage ../development/libraries/haskell/threads {};
+
   time_1_1_2_4 = callPackage ../development/libraries/haskell/time/1.1.2.4.nix {};
   time_1_1_3   = callPackage ../development/libraries/haskell/time/1.1.3.nix {};
   time_1_2_0_3 = callPackage ../development/libraries/haskell/time/1.2.0.3.nix {};
@@ -1760,7 +1765,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   happy_1_18_6 = callPackage ../development/tools/parsing/happy/1.18.6.nix {};
   happy_1_18_8 = callPackage ../development/tools/parsing/happy/1.18.8.nix {};
   happy_1_18_9 = callPackage ../development/tools/parsing/happy/1.18.9.nix {};
-  happy = self.happy_1_18_9;
+  happy_1_18_10 = callPackage ../development/tools/parsing/happy/1.18.10.nix {};
+  happy = self.happy_1_18_10;
 
   happyMeta = callPackage ../development/tools/haskell/happy-meta {};
 
diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix
index 8bcabbdf595..5c6301ed2e0 100644
--- a/pkgs/top-level/node-packages.nix
+++ b/pkgs/top-level/node-packages.nix
@@ -445,6 +445,19 @@ let self = {
     ];
   };
 
+  "knox" = self."knox-*";
+
+  "knox-*" = self.buildNodePackage rec {
+    name = "knox-0.3.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/knox/-/${name}.tgz";
+      sha256 = "d62623482cc2f8b2fe08ff0c0cf2ed7f35a320e806ebdfa6ac36df5486018517";
+    };
+    deps = [
+      self."mime"
+    ];
+  };
+
   "less" = self."less-1.3.0";
 
   "less-1.3.0" = self.buildNodePackage rec {
@@ -471,18 +484,9 @@ let self = {
     ];
   };
 
-  "mime" = self."mime-1.2.6";
+  "mime" = self."mime-*";
 
-  "mime->= 0.0.1" = self.buildNodePackage rec {
-    name = "mime-1.2.7";
-    src = fetchurl {
-      url = "http://registry.npmjs.org/mime/-/${name}.tgz";
-      sha256 = "a80244918c9c75fa4d0b37f311920c7d5270aab9a05aca9a74783764ad152df6";
-    };
-    deps = [
-
-    ];
-  };
+  "mime->= 0.0.1" = self."mime-*";
 
   "mime-1.2.6" = self.buildNodePackage rec {
     name = "mime-1.2.6";
@@ -495,6 +499,17 @@ let self = {
     ];
   };
 
+  "mime-*" = self.buildNodePackage rec {
+    name = "mime-1.2.7";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime/-/${name}.tgz";
+      sha256 = "a80244918c9c75fa4d0b37f311920c7d5270aab9a05aca9a74783764ad152df6";
+    };
+    deps = [
+
+    ];
+  };
+
   "minimatch" = self."minimatch-0.2";
 
   "minimatch-0.2" = self.buildNodePackage rec {
@@ -547,6 +562,20 @@ let self = {
     ];
   };
 
+  "node-expat" = self."node-expat-*";
+
+  "node-expat-*" = self.buildNodePackage rec {
+    name = "node-expat-1.6.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/node-expat/-/${name}.tgz";
+      sha256 = "15c0566889ef8a54b2b626956b7dfc160469eb6c0d44a582a0b1077fadf034d2";
+    };
+    deps = [
+
+    ];
+    buildInputs = [ pkgs.expat ];
+  };
+
   "node-gyp" = self."node-gyp-*";
 
   "node-gyp-*" = self.buildNodePackage rec {
@@ -625,6 +654,19 @@ let self = {
     ];
   };
 
+  "optimist" = self."optimist-*";
+
+  "optimist-*" = self.buildNodePackage rec {
+    name = "optimist-0.3.4";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/optimist/-/${name}.tgz";
+      sha256 = "add88b473a660ad8a9ff88a3eec49a74d9c64f592acbcd219ff4c0d7249f4d60";
+    };
+    deps = [
+      self."wordwrap-~0.0.2"
+    ];
+  };
+
   "options" = self."options-*";
 
   "options-*" = self.buildNodePackage rec {
@@ -895,6 +937,19 @@ let self = {
     ];
   };
 
+  "temp" = self."temp-*";
+
+  "temp-*" = self.buildNodePackage rec {
+    name = "temp-0.4.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/temp/-/${name}.tgz";
+      sha256 = "ca8274250d36d94e670b8773bf062a28bc43eb342ae47ff629fbb627d48d710b";
+    };
+    deps = [
+
+    ];
+  };
+
   "timerstub" = self."timerstub-*";
 
   "timerstub-*" = self.buildNodePackage rec {
@@ -986,6 +1041,19 @@ let self = {
     ];
   };
 
+  "wordwrap" = self."wordwrap-~0.0.2";
+
+  "wordwrap-~0.0.2" = self.buildNodePackage rec {
+    name = "wordwrap-0.0.2";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/wordwrap/-/${name}.tgz";
+      sha256 = "66a2fa688509738922c3ad62a6159fe3c93268bd3bca2bff24df4bc02cc31582";
+    };
+    deps = [
+
+    ];
+  };
+
   "ws" = self."ws-0.4.x";
   "ws-0.4.x" = self."ws-0.4.21";
 
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 68c387d2a55..3b0a015d6b4 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -299,7 +299,6 @@ with (import ./release-lib.nix);
   tinycc = ["i686-linux"];
   uae = linux;
   udev = linux;
-  uml = ["i686-linux"];
   unrar = linux;
   upstart = linux;
   usbutils = linux;