summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xmaintainers/scripts/test-eval-release.sh1
-rw-r--r--pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix2
-rw-r--r--pkgs/applications/misc/goldendict/default.nix31
-rw-r--r--pkgs/applications/misc/goldendict/goldendict-paths.diff10
-rw-r--r--pkgs/applications/networking/browsers/firefox/11.0.nix180
-rw-r--r--pkgs/applications/networking/esniper/default.nix8
-rw-r--r--pkgs/applications/networking/esniper/fix-build-with-latest-curl.patch10
-rw-r--r--pkgs/development/compilers/uhc/default.nix4
-rw-r--r--pkgs/development/interpreters/ruby/generated.nix52
-rw-r--r--pkgs/development/libraries/crypto++/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/GLURaw/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.3.0.0.nix21
-rw-r--r--pkgs/development/libraries/haskell/Graphalyze/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/HaskellForMaths/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/2.5.0.0.nix21
-rw-r--r--pkgs/development/libraries/haskell/OpenGLRaw/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/ghc-mod/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/highlighting-kate/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/http-conduit/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/pandoc-types/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pandoc/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/parsimony/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/system-fileio/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/system-filepath/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/temporary/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/test-framework/0.4.2.2.nix25
-rw-r--r--pkgs/development/libraries/haskell/test-framework/0.5.nix (renamed from pkgs/development/libraries/haskell/test-framework/default.nix)0
-rw-r--r--pkgs/development/libraries/haskell/texmath/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/vector-algorithms/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yap/default.nix4
-rw-r--r--pkgs/development/libraries/lcms2/default.nix6
-rw-r--r--pkgs/development/libraries/libbsd/default.nix24
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/default.nix6
-rw-r--r--pkgs/development/libraries/qhull/default.nix4
-rw-r--r--pkgs/development/libraries/v8/default.nix4
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix4
-rw-r--r--pkgs/development/tools/parsing/happy/1.18.9.nix21
-rw-r--r--pkgs/development/tools/pydb/default.nix (renamed from pkgs/tools/pydb/default.nix)0
-rw-r--r--pkgs/development/web/nodejs/default.nix4
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix2
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-2.6.39.patch11
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-3.2.patch13
-rw-r--r--pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix72
-rw-r--r--pkgs/os-specific/linux/firmware/rtl8192c/default.nix5
-rw-r--r--pkgs/os-specific/linux/frandom/default.nix44
-rw-r--r--pkgs/os-specific/linux/i7z/default.nix40
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.2.nix4
-rw-r--r--pkgs/os-specific/linux/microcode/converter.nix29
-rw-r--r--pkgs/os-specific/linux/microcode/intel.nix14
-rw-r--r--pkgs/servers/x11/xorg/default.nix6
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.6.list2
-rw-r--r--pkgs/tools/X11/bumblebee/config.patch30
-rw-r--r--pkgs/tools/X11/bumblebee/default.nix136
-rw-r--r--pkgs/tools/X11/bumblebee/xopts.patch11
-rw-r--r--pkgs/tools/X11/bumblebee/xorg.conf.nvidia49
-rw-r--r--pkgs/tools/X11/virtualgl/default.nix15
-rw-r--r--pkgs/tools/X11/virtualgl/fixturbopath.patch16
-rw-r--r--pkgs/tools/admin/analog/default.nix38
-rw-r--r--pkgs/tools/backup/duplicity/default.nix10
-rw-r--r--pkgs/tools/graphics/enblend-enfuse/default.nix15
-rw-r--r--pkgs/tools/misc/fontforge/default.nix3
-rw-r--r--pkgs/tools/typesetting/tex/auctex/default.nix (renamed from pkgs/misc/tex/auctex/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/dblatex/default.nix (renamed from pkgs/misc/tex/dblatex/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/disser/default.nix (renamed from pkgs/misc/tex/disser/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/latex2html/default.nix (renamed from pkgs/misc/tex/latex2html/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/lazylist/builder.sh (renamed from pkgs/misc/tex/lazylist/builder.sh)0
-rw-r--r--pkgs/tools/typesetting/tex/lazylist/default.nix (renamed from pkgs/misc/tex/lazylist/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/lkproof/default.nix (renamed from pkgs/misc/tex/lkproof/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/nix/animatedot.sh (renamed from pkgs/misc/tex/nix/animatedot.sh)0
-rw-r--r--pkgs/tools/typesetting/tex/nix/copy-includes.pl (renamed from pkgs/misc/tex/nix/copy-includes.pl)0
-rw-r--r--pkgs/tools/typesetting/tex/nix/default.nix (renamed from pkgs/misc/tex/nix/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/nix/dot2pdf.sh (renamed from pkgs/misc/tex/nix/dot2pdf.sh)0
-rw-r--r--pkgs/tools/typesetting/tex/nix/dot2ps.sh (renamed from pkgs/misc/tex/nix/dot2ps.sh)0
-rw-r--r--pkgs/tools/typesetting/tex/nix/find-includes.pl (renamed from pkgs/misc/tex/nix/find-includes.pl)0
-rw-r--r--pkgs/tools/typesetting/tex/nix/find-lhs2tex-includes.sh (renamed from pkgs/misc/tex/nix/find-lhs2tex-includes.sh)0
-rw-r--r--pkgs/tools/typesetting/tex/nix/lhs2tex.sh (renamed from pkgs/misc/tex/nix/lhs2tex.sh)0
-rw-r--r--pkgs/tools/typesetting/tex/nix/run-latex.sh (renamed from pkgs/misc/tex/nix/run-latex.sh)0
-rw-r--r--pkgs/tools/typesetting/tex/pgf/1.x.nix (renamed from pkgs/misc/tex/pgf/1.x.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/pgf/2.x.nix (renamed from pkgs/misc/tex/pgf/2.x.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/polytable/builder.sh (renamed from pkgs/misc/tex/polytable/builder.sh)0
-rw-r--r--pkgs/tools/typesetting/tex/polytable/default.nix (renamed from pkgs/misc/tex/polytable/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/tetex/default.nix (renamed from pkgs/misc/tex/tetex/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/tetex/environment.patch (renamed from pkgs/misc/tex/tetex/environment.patch)0
-rw-r--r--pkgs/tools/typesetting/tex/tetex/getline.patch (renamed from pkgs/misc/tex/tetex/getline.patch)0
-rw-r--r--pkgs/tools/typesetting/tex/tetex/setup-hook.sh (renamed from pkgs/misc/tex/tetex/setup-hook.sh)0
-rw-r--r--pkgs/tools/typesetting/tex/tex4ht/default.nix (renamed from pkgs/misc/tex/tex4ht/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/texlive/aggregate.nix (renamed from pkgs/misc/tex/texlive/aggregate.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/texlive/beamer.nix (renamed from pkgs/misc/tex/texlive/beamer.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/texlive/cm-super.nix (renamed from pkgs/misc/tex/texlive/cm-super.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/texlive/context.nix (renamed from pkgs/misc/tex/texlive/context.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix (renamed from pkgs/misc/tex/texlive/default.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/texlive/extra.nix (renamed from pkgs/misc/tex/texlive/extra.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/texlive/moderncv.nix (renamed from pkgs/misc/tex/texlive/moderncv.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/texlive/pgf.nix (renamed from pkgs/misc/tex/texlive/pgf.nix)0
-rw-r--r--pkgs/tools/typesetting/tex/texlive/setup-hook.sh (renamed from pkgs/misc/tex/texlive/setup-hook.sh)0
-rw-r--r--pkgs/tools/typesetting/tex/texlive/xcolor.nix (renamed from pkgs/misc/tex/texlive/xcolor.nix)0
-rw-r--r--pkgs/top-level/all-packages.nix108
-rw-r--r--pkgs/top-level/haskell-packages.nix29
99 files changed, 1079 insertions, 199 deletions
diff --git a/maintainers/scripts/test-eval-release.sh b/maintainers/scripts/test-eval-release.sh
index 4ab3f9775a0f..9ef531319e4d 100755
--- a/maintainers/scripts/test-eval-release.sh
+++ b/maintainers/scripts/test-eval-release.sh
@@ -3,4 +3,5 @@
 if [[ -z "$VERBOSE" ]]; then
   echo "You may set VERBOSE=1 to see debug output or to any other non-empty string to make this script completely silent"
 fi
+unset HOME NIXPKGS_CONFIG # Force empty config
 nix-instantiate --strict --eval-only --xml --show-trace "$(dirname "$0")"/eval-release.nix 2>&1 > /dev/null
diff --git a/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix b/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix
index 2e182170b191..a7ff4e624a11 100644
--- a/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix
+++ b/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix
@@ -1,6 +1,6 @@
 { fetchcvs, stdenv, emacs, w3m, imagemagick, texinfo, autoconf }:
 
-let date = "2009-07-09"; in
+let date = "2012-01-15"; in
 stdenv.mkDerivation rec {
   name = "emacs-w3m-cvs${date}";
 
diff --git a/pkgs/applications/misc/goldendict/default.nix b/pkgs/applications/misc/goldendict/default.nix
new file mode 100644
index 000000000000..881f5339bdf8
--- /dev/null
+++ b/pkgs/applications/misc/goldendict/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, qt4, libXtst, libvorbis, phonon, hunspell }:
+stdenv.mkDerivation rec {
+  name = "goldendict-1.0.1";
+  src = fetchurl {
+    url = "mirror://sourceforge/goldendict/${name}-src.tar.bz2";
+    sha256 = "19p99dd5jgs0k66sy30vck7ymqj6dv1lh6w8xw18zczdll2h9yxk";
+  };
+  buildInputs = [ qt4 libXtst libvorbis phonon hunspell ];
+  unpackPhase = ''
+    mkdir ${name}-src
+    cd ${name}-src
+    tar xf ${src}
+  '';
+  patches = [ ./goldendict-paths.diff ];
+  patchFlags = "-p 0";
+  configurePhase = ''
+    qmake
+  '';
+  installPhase = ''
+    make INSTALL_ROOT="$out" install
+    rm -rf "$out/share/app-install"
+  '';
+
+  meta = {
+    homepage = http://goldendict.org/;
+    description = "a feature-rich dictionary lookup program";
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.astsmtl ];
+  };
+}
diff --git a/pkgs/applications/misc/goldendict/goldendict-paths.diff b/pkgs/applications/misc/goldendict/goldendict-paths.diff
new file mode 100644
index 000000000000..6682911dbe42
--- /dev/null
+++ b/pkgs/applications/misc/goldendict/goldendict-paths.diff
@@ -0,0 +1,10 @@
+--- goldendict.pro~	2010-12-27 22:52:21.000000000 +0100
++++ goldendict.pro	2010-12-27 22:52:21.000000000 +0100
+@@ -63,2 +63,2 @@
+-    isEmpty( PREFIX ):PREFIX = /usr/local
+-    DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/apps/goldendict/\\\"
++    isEmpty( PREFIX ):PREFIX = /
++    DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/goldendict/\\\"
+@@ -66 +66 @@
+-    locale.path = $$PREFIX/share/apps/goldendict/locale/
++    locale.path = $$PREFIX/share/goldendict/locale/
diff --git a/pkgs/applications/networking/browsers/firefox/11.0.nix b/pkgs/applications/networking/browsers/firefox/11.0.nix
new file mode 100644
index 000000000000..fd72b51f5b58
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/11.0.nix
@@ -0,0 +1,180 @@
+{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
+, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
+, yasm, mesa, sqlite, unzip
+
+, # If you want the resulting program to call itself "Firefox" instead
+  # of "Shiretoko" or whatever, enable this option.  However, those
+  # binaries may not be distributed without permission from the
+  # Mozilla Foundation, see
+  # http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+}:
+
+assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
+
+rec {
+
+  firefoxVersion = "11.0b1";
+  
+  xulVersion = "11.0"; # this attribute is used by other packages
+
+  
+  src = fetchurl {
+    url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/${firefoxVersion}-candidates/build1/source/firefox-${firefoxVersion}.source.tar.bz2";
+    sha256 = "1f9p2jmjvhmb23wmvj84jj22wd9g803k6pdjm8glwmkzwnva8x1b";
+  };
+  
+  commonConfigureFlags =
+    [ "--enable-optimize"
+      "--disable-debug"
+      "--enable-strip"
+      "--with-system-jpeg"
+      "--with-system-zlib"
+      "--with-system-bz2"
+      #"--with-system-nspr" # <-- There are links to nspr 4.9.0, but no file...
+      # "--with-system-nss"
+      # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+      "--enable-system-cairo"
+      "--enable-system-sqlite"
+      "--disable-crashreporter"
+      "--disable-tests"
+      "--disable-necko-wifi" # maybe we want to enable this at some point
+      "--disable-installer" 
+      "--disable-updater"
+    ];
+
+
+  xulrunner = stdenv.mkDerivation rec {
+    name = "xulrunner-${xulVersion}";
+    
+    inherit src;
+
+    buildInputs =
+      [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+        python dbus dbus_glib pango freetype fontconfig xlibs.libXi
+        xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
+        alsaLib nspr /* nss */ libnotify xlibs.pixman yasm mesa
+        xlibs.libXScrnSaver xlibs.scrnsaverproto
+        xlibs.libXext xlibs.xextproto sqlite unzip
+      ];
+
+    configureFlags =
+      [ "--enable-application=xulrunner"
+        "--disable-javaxpcom"
+      ] ++ commonConfigureFlags;
+
+    enableParallelBuilding = true;
+      
+    # Hack to work around make's idea of -lbz2 dependency
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":" 
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+
+        export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
+      '';
+
+    # !!! Temporary hack.
+    preBuild =
+      ''
+        export NIX_ENFORCE_PURITY=
+      '';
+
+    installFlags = "SKIP_GRE_REGISTRATION=1";
+
+    postInstall = ''
+      # Fix some references to /bin paths in the Xulrunner shell script.
+      substituteInPlace $out/bin/xulrunner \
+          --replace /bin/pwd "$(type -tP pwd)" \
+          --replace /bin/ls "$(type -tP ls)"
+
+      # Fix run-mozilla.sh search
+      libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
+      echo libDir: $libDir
+      test -n "$libDir"
+      cd $out/bin
+      mv xulrunner ../lib/$libDir/
+
+      for i in $out/lib/$libDir/*; do 
+          file $i;
+          if file $i | grep executable &>/dev/null; then 
+              echo -e '#! /bin/sh\n"'"$i"'" "$@"' > "$out/bin/$(basename "$i")";
+              chmod a+x "$out/bin/$(basename "$i")";
+          fi;
+      done;
+      for i in $out/lib/$libDir/{xpcshell,plugin-container,*.so}; do
+              patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true
+      done;
+      rm -f $out/bin/run-mozilla.sh
+    ''; # */
+
+    meta = {
+      description = "Mozilla Firefox XUL runner";
+      homepage = http://www.mozilla.com/en-US/firefox/;
+    };
+
+    passthru = { inherit gtk; version = xulVersion; };
+  };
+
+
+  firefox = stdenv.mkDerivation rec {
+    name = "firefox-${firefoxVersion}";
+
+    inherit src;
+
+    enableParallelBuilding = true;
+      
+    buildInputs =
+      [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
+        dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
+        xlibs.pixman yasm mesa sqlite file unzip
+      ];
+
+    propagatedBuildInputs = [xulrunner];
+
+    configureFlags =
+      [ "--enable-application=browser"
+        "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
+        "--enable-chrome-format=jar"
+	"--disable-elf-hack"
+      ]
+      ++ commonConfigureFlags
+      ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
+
+    # Hack to work around make's idea of -lbz2 dependency
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":" 
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+      '';
+
+    postInstall =
+      ''
+        ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
+        for j in $out/bin/*; do 
+	    i="$(readlink "$j")";
+            file $i;
+            if file $i | grep executable &>/dev/null; then 
+	        rm "$out/bin/$(basename "$i")"
+                echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")"
+                chmod a+x "$out/bin/$(basename "$i")"
+            fi;
+        done;
+      ''; # */
+
+    meta = {
+      description = "Mozilla Firefox - the browser, reloaded";
+      homepage = http://www.mozilla.com/en-US/firefox/;
+    };
+
+    passthru = {
+      inherit gtk xulrunner nspr;
+      isFirefox3Like = true;
+    };
+  };
+}
diff --git a/pkgs/applications/networking/esniper/default.nix b/pkgs/applications/networking/esniper/default.nix
index 4c153fa6ff5a..dda0755a7383 100644
--- a/pkgs/applications/networking/esniper/default.nix
+++ b/pkgs/applications/networking/esniper/default.nix
@@ -1,17 +1,15 @@
 { stdenv, fetchurl, openssl, curl }:
 
 stdenv.mkDerivation {
-  name = "esniper-2.26.0";
+  name = "esniper-2.27.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/esniper/esniper-2-26-0.tgz";
-    sha256 = "5fd9a0f4b27b98deca303cd3d16c1ed060e05a165a40b2f4a9f8546db5e3877d";
+    url = "mirror://sourceforge/esniper/esniper-2-27-0.tgz";
+    sha256 = "0ca9946395be8958d3eb28c9abc4a1a4d4c9134e4b6b3c3816f4631e3be25c02";
   };
 
   buildInputs = [openssl curl];
 
-  patches = [ ./fix-build-with-latest-curl.patch ];
-
   postInstall = ''
     sed -e  "2i export PATH=\"$out/bin:\$PATH\"" <"frontends/snipe" >"$out/bin/snipe"
     chmod 555 "$out/bin/snipe"
diff --git a/pkgs/applications/networking/esniper/fix-build-with-latest-curl.patch b/pkgs/applications/networking/esniper/fix-build-with-latest-curl.patch
deleted file mode 100644
index 81005fd3ebe5..000000000000
--- a/pkgs/applications/networking/esniper/fix-build-with-latest-curl.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- esniper-2-26-0/http.c	2011-08-09 21:05:59.000000000 +0200
-+++ esniper/http.c	2011-08-10 00:24:43.000000000 +0200
-@@ -28,7 +28,6 @@
- #include "esniper.h"
- #include <ctype.h>
- #include <curl/curl.h>
--#include <curl/types.h>
- #include <curl/easy.h>
- #include <stdlib.h>
- #include <string.h>
diff --git a/pkgs/development/compilers/uhc/default.nix b/pkgs/development/compilers/uhc/default.nix
index 75ca05f85694..8cd0a2e7944e 100644
--- a/pkgs/development/compilers/uhc/default.nix
+++ b/pkgs/development/compilers/uhc/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  revision = "2399";
+  revision = "2426";
 in
 stdenv.mkDerivation {
   name = "uhc-svn-${revision}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   src = fetchsvn {
      url = "https://subversion.cs.uu.nl/repos/project.UHC.pub/trunk/EHC";
      rev = revision;
-     sha256 = "f4e87dbf95f90b021994b0840f27e042dd4e785df7efedcf567f3e2c7ce32621";
+     sha256 = "06963edb673697f3eac357eccdc6d4bf7fbe7b9b92a96e3e329a4caf53f85c4c";
   };
 
   propagatedBuildInputs = [mtl network binary fgl syb];
diff --git a/pkgs/development/interpreters/ruby/generated.nix b/pkgs/development/interpreters/ruby/generated.nix
index 712b2fe04837..92641f1ca448 100644
--- a/pkgs/development/interpreters/ruby/generated.nix
+++ b/pkgs/development/interpreters/ruby/generated.nix
@@ -3,6 +3,7 @@
 g: # Get dependencies from patched gems
 {
   aliases = {
+    ZenTest = g.ZenTest_4_5_0;
     actionmailer = g.actionmailer_3_2_1;
     actionpack = g.actionpack_3_2_1;
     activemodel = g.activemodel_3_2_1;
@@ -11,6 +12,7 @@ g: # Get dependencies from patched gems
     activesupport = g.activesupport_3_2_1;
     arel = g.arel_3_0_0;
     atoulme_Antwrap = g.atoulme_Antwrap_0_7_1;
+    autotest_rails = g.autotest_rails_4_1_1;
     builder = g.builder_3_0_0;
     buildr = g.buildr_1_4_6;
     bundler = g.bundler_1_0_21;
@@ -49,7 +51,7 @@ g: # Get dependencies from patched gems
     rspec_mocks = g.rspec_mocks_2_1_0;
     rubyforge = g.rubyforge_2_0_4;
     rubyzip = g.rubyzip_0_9_5;
-    sass = g.sass_3_1_12;
+    sass = g.sass_3_1_13;
     selenium_webdriver = g.selenium_webdriver_2_18_0;
     sprockets = g.sprockets_2_1_2;
     thor = g.thor_0_14_6;
@@ -58,8 +60,36 @@ g: # Get dependencies from patched gems
     tzinfo = g.tzinfo_0_3_31;
     xml_simple = g.xml_simple_1_0_12;
   };
-  gem_nix_args = [ ''buildr'' ''nix'' ''rails'' ''rake'' ''rb-fsevent'' ''sass'' ''selenium-webdriver'' ];
+  gem_nix_args = [ ''autotest-rails'' ''buildr'' ''nix'' ''rails'' ''rake'' ''rb-fsevent'' ''sass'' ''selenium-webdriver'' ];
   gems = {
+    ZenTest_4_5_0 = {
+      basename = ''ZenTest'';
+      meta = {
+        description = ''ZenTest provides 4 different tools: zentest, unit_diff, autotest, and multiruby'';
+        homepage = ''http://www.zenspider.com/ZSS/Products/ZenTest/'';
+        longDescription = ''ZenTest provides 4 different tools: zentest, unit_diff, autotest, and
+multiruby.
+
+ZenTest scans your target and unit-test code and writes your missing
+code based on simple naming rules, enabling XP at a much quicker
+pace. ZenTest only works with Ruby and Test::Unit. Nobody uses this
+tool anymore but it is the package namesake, so it stays.
+
+unit_diff is a command-line filter to diff expected results from
+actual results and allow you to quickly see exactly what is wrong.
+
+autotest is a continous testing facility meant to be used during
+development. As soon as you save a file, autotest will run the
+corresponding dependent tests.
+
+multiruby runs anything you want on multiple versions of ruby. Great
+for compatibility checking! Use multiruby_setup to manage your
+installed versions.'';
+      };
+      name = ''ZenTest-4.5.0'';
+      requiredGems = [  ];
+      sha256 = ''05iam95wqafz4c890b17w7ahp9i4jbz4hsw6304p9zbsaq7d7h1h'';
+    };
     actionmailer_3_2_1 = {
       basename = ''actionmailer'';
       meta = {
@@ -166,6 +196,18 @@ database compatibility and query generation.'';
       requiredGems = [ g.rjb_1_3_9 ];
       sha256 = ''0r9jy2asyma8h0878nhjfbi00qvb4yapc8glngvmkkj21zbx2mfy'';
     };
+    autotest_rails_4_1_1 = {
+      basename = ''autotest_rails'';
+      meta = {
+        description = ''This is an autotest plugin to provide rails support'';
+        homepage = ''https://github.com/seattlerb/autotest-rails'';
+        longDescription = ''This is an autotest plugin to provide rails support. It provides basic
+rails support and extra plugins for migrations and fixtures.'';
+      };
+      name = ''autotest-rails-4.1.1'';
+      requiredGems = [ g.ZenTest_4_5_0 ];
+      sha256 = ''09i6mpxibs8yfdcr53nazlxq94yswahz9gdjqdz9srfshcccqbal'';
+    };
     builder_2_1_2 = {
       basename = ''builder'';
       meta = {
@@ -777,7 +819,7 @@ See RDoc for a description of RDoc's markup and basic use.'';
       requiredGems = [  ];
       sha256 = ''1744bds6lc46d1kjfgapf34p2574s70hcyz63877qkry4db2jb54'';
     };
-    sass_3_1_12 = {
+    sass_3_1_13 = {
       basename = ''sass'';
       meta = {
         description = ''A powerful but elegant CSS compiler that makes CSS fun again.'';
@@ -788,9 +830,9 @@ See RDoc for a description of RDoc's markup and basic use.'';
       command line tool or a web-framework plugin.
 '';
       };
-      name = ''sass-3.1.12'';
+      name = ''sass-3.1.13'';
       requiredGems = [  ];
-      sha256 = ''10n2aic53290xsa3y3d63523s8xc78w5q5gqpns6cbljkdwb0ndy'';
+      sha256 = ''0x07yckw9c4d59713midk2n85d3h88fcp147p8nai88gbvrm8b63'';
     };
     selenium_webdriver_2_18_0 = {
       basename = ''selenium_webdriver'';
diff --git a/pkgs/development/libraries/crypto++/default.nix b/pkgs/development/libraries/crypto++/default.nix
index d22eb738671e..138ee6eb27f5 100644
--- a/pkgs/development/libraries/crypto++/default.nix
+++ b/pkgs/development/libraries/crypto++/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, unzip, libtool }:
 
 stdenv.mkDerivation rec {
-  name = "crypto++-5.6.0";
+  name = "crypto++-5.6.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/cryptopp/cryptopp560.zip";
-    sha256 = "1icbk50mr1sqycqbxbqg703m8aamz23ajgl22ychxdahz2sz08mm";
+    url = "mirror://sourceforge/cryptopp/cryptopp561.zip";
+    sha256 = "0s7jhvnfihikqp1iwpdz03fad62xkjxci6jiahrh6f3sn664vrwq";
   };
 
   patches = [ ./pic.patch ]
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   cxxflags = if stdenv.isi686 then "-march=i686" else
-             if stdenv.isx86_64 then "-march=nocona" else
+             if stdenv.isx86_64 then "-march=nocona -fPIC" else
              "";
 
   configurePhase = ''
@@ -35,12 +35,10 @@ stdenv.mkDerivation rec {
       -e '/^CXXFLAGS =/s|-g -O2|-O3|'
   '';
 
-  # Deal with one of the crappiest build system around there.
+  # I add what 'enableParallelBuilding' would add to the make call,
+  # if we were using the generic build phase.
   buildPhase = ''
-    # These guys forgot a file or something.
-    : > modexppc.cpp
-
-    make PREFIX="$out" all cryptopp.dll
+    make PREFIX="$out" all libcryptopp.so -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES
   '';
 
   # TODO: Installing cryptotest.exe doesn't seem to be necessary. We run
@@ -48,11 +46,10 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir "$out"
     make install PREFIX="$out"
-    cp -v cryptopp.dll "$out/lib/libcryptopp.so"
   '';
 
   doCheck = true;
-  checkPhase = "make test";
+  checkPhase = "LD_LIBRARY_PATH=`pwd` make test";
 
   meta = {
     description = "Crypto++, a free C++ class library of cryptographic schemes";
diff --git a/pkgs/development/libraries/haskell/GLURaw/default.nix b/pkgs/development/libraries/haskell/GLURaw/default.nix
index 034808566692..1397bea4f2be 100644
--- a/pkgs/development/libraries/haskell/GLURaw/default.nix
+++ b/pkgs/development/libraries/haskell/GLURaw/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "GLURaw";
-  version = "1.1.0.1";
-  sha256 = "0n2yazdk98ia9j65n4ac7k0lnyp9cmz51d344x0jsi0xyfckm0mq";
+  version = "1.2.0.0";
+  sha256 = "06dsazj3zadjahwy926gnjngqg8cb1mhdxh8bg5f3axf3hsvxqp1";
   buildDepends = [ OpenGLRaw ];
   extraLibraries = [ freeglut mesa ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/GLUT/2.3.0.0.nix b/pkgs/development/libraries/haskell/GLUT/2.3.0.0.nix
new file mode 100644
index 000000000000..109ea000b439
--- /dev/null
+++ b/pkgs/development/libraries/haskell/GLUT/2.3.0.0.nix
@@ -0,0 +1,21 @@
+{ cabal, freeglut, libICE, libSM, libXi, libXmu, mesa, OpenGL
+, OpenGLRaw, StateVar, Tensor
+}:
+
+cabal.mkDerivation (self: {
+  pname = "GLUT";
+  version = "2.3.0.0";
+  sha256 = "10rh57w3lx8fs0xy24lqilv5a5sgq57kshydja41r6fq9wdvwp99";
+  buildDepends = [ OpenGL OpenGLRaw StateVar Tensor ];
+  extraLibraries = [ freeglut libICE libSM libXi libXmu mesa ];
+  meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Opengl";
+    description = "A binding for the OpenGL Utility Toolkit";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Graphalyze/default.nix b/pkgs/development/libraries/haskell/Graphalyze/default.nix
index 8084ada2cd68..cdd071b2b675 100644
--- a/pkgs/development/libraries/haskell/Graphalyze/default.nix
+++ b/pkgs/development/libraries/haskell/Graphalyze/default.nix
@@ -9,6 +9,9 @@ cabal.mkDerivation (self: {
   buildDepends = [
     bktrees extensibleExceptions fgl graphviz pandoc random text time
   ];
+  patchPhase = ''
+    sed -i Graphalyze.cabal -e 's|pandoc == 1.8.\*|pandoc|'
+  '';
   meta = {
     description = "Graph-Theoretic Analysis library";
     license = "unknown";
diff --git a/pkgs/development/libraries/haskell/HaskellForMaths/default.nix b/pkgs/development/libraries/haskell/HaskellForMaths/default.nix
index e55619fb3abd..25143e647bb7 100644
--- a/pkgs/development/libraries/haskell/HaskellForMaths/default.nix
+++ b/pkgs/development/libraries/haskell/HaskellForMaths/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HaskellForMaths";
-  version = "0.4.1";
-  sha256 = "0jwdxz5wqayx196giv7nj5j0k9zw50x555ig6xj00cladvplvh9h";
+  version = "0.4.3";
+  sha256 = "00s502h3pw9i464qn6cn74ihghcnn5gsar891q276ld682m5vdns";
   buildDepends = [ random ];
   meta = {
     homepage = "http://haskellformaths.blogspot.com/";
diff --git a/pkgs/development/libraries/haskell/OpenGL/2.5.0.0.nix b/pkgs/development/libraries/haskell/OpenGL/2.5.0.0.nix
new file mode 100644
index 000000000000..8e616e4e0694
--- /dev/null
+++ b/pkgs/development/libraries/haskell/OpenGL/2.5.0.0.nix
@@ -0,0 +1,21 @@
+{ cabal, GLURaw, libX11, mesa, ObjectName, OpenGLRaw, StateVar
+, Tensor
+}:
+
+cabal.mkDerivation (self: {
+  pname = "OpenGL";
+  version = "2.5.0.0";
+  sha256 = "1kpakn5i4aka67mqcpfq9jpl38h409x63zd14y35abpm6h3x8m3j";
+  buildDepends = [ GLURaw ObjectName OpenGLRaw StateVar Tensor ];
+  extraLibraries = [ libX11 mesa ];
+  meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Opengl";
+    description = "A binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/OpenGLRaw/default.nix b/pkgs/development/libraries/haskell/OpenGLRaw/default.nix
index 3a86955a4383..70c25ea9ac6e 100644
--- a/pkgs/development/libraries/haskell/OpenGLRaw/default.nix
+++ b/pkgs/development/libraries/haskell/OpenGLRaw/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "OpenGLRaw";
-  version = "1.1.0.2";
-  sha256 = "0d1rjh2vq0w1pzf3vz0mw6p0w43h3sf6034qsi89m4jkx3125fwf";
+  version = "1.2.0.0";
+  sha256 = "1nwk93wlwh7gz2lb1dc88frmwik71g61a7k8xfiib2q5a8a8kf9r";
   extraLibraries = [ mesa ];
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/Opengl";
diff --git a/pkgs/development/libraries/haskell/ghc-mod/default.nix b/pkgs/development/libraries/haskell/ghc-mod/default.nix
index 945e9ee35e03..2566e098656a 100644
--- a/pkgs/development/libraries/haskell/ghc-mod/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-mod/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ghc-mod";
-  version = "1.0.6";
-  sha256 = "c075314de03209827a0e59ee3e63a4d21bc8edb024a1e36721eea248805b38ba";
+  version = "1.0.8";
+  sha256 = "1c1236a8829418cae3039c3479875104664827c661b8c7567dd7bdbda12e8bcc";
   buildDepends = [
     attoparsec attoparsecEnumerator ghcPaths hlint regexPosix
   ];
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 654d50cdc95a..acb75b05ae94 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.2.5.0";
-  sha256 = "1y1dqfbas7ym1jghq3i7zhqcny01paqfrszj0aakg6ys2jjx0m29";
+  version = "3.2.6.0";
+  sha256 = "1yg97kihfxb250vk9dm2v9sh197lc6qjil0j40zgcwpss96xynax";
   buildDepends = [
     binary blazeHtml citeprocHs cryptohash hamlet mtl pandoc parsec
     regexBase regexPcre snapCore snapServer tagsoup time
diff --git a/pkgs/development/libraries/haskell/highlighting-kate/default.nix b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
index ecaf46c0b77c..a4f7e906a9ea 100644
--- a/pkgs/development/libraries/haskell/highlighting-kate/default.nix
+++ b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
@@ -1,12 +1,12 @@
-{ cabal, parsec, regexPcreBuiltin, xhtml }:
+{ cabal, blazeHtml, mtl, parsec, regexPcreBuiltin }:
 
 cabal.mkDerivation (self: {
   pname = "highlighting-kate";
-  version = "0.2.10";
-  sha256 = "0cw89qsslrp4zh47ics7bg79fkqnxpnyz1a9xws0xzd9xmg3zrhh";
+  version = "0.5.0.1";
+  sha256 = "05r8w4366gi64l65k6vyda1cs96ld8i2dgch8r5fmxwiaa8dcs1l";
   isLibrary = true;
   isExecutable = true;
-  buildDepends = [ parsec regexPcreBuiltin xhtml ];
+  buildDepends = [ blazeHtml mtl parsec regexPcreBuiltin ];
   meta = {
     homepage = "http://github.com/jgm/highlighting-kate";
     description = "Syntax highlighting";
diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix
index 6fd387fc23b9..0a4dd110fee2 100644
--- a/pkgs/development/libraries/haskell/http-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/http-conduit/default.nix
@@ -1,19 +1,19 @@
 { cabal, asn1Data, attoparsec, attoparsecConduit, base64Bytestring
 , blazeBuilder, blazeBuilderConduit, caseInsensitive, certificate
 , conduit, cprngAes, dataDefault, failure, httpTypes, liftedBase
-, monadControl, network, socks, text, time, tls, tlsExtra
-, transformers, transformersBase, utf8String, zlibConduit
+, monadControl, network, text, time, tls, tlsExtra, transformers
+, transformersBase, utf8String, zlibConduit
 }:
 
 cabal.mkDerivation (self: {
   pname = "http-conduit";
-  version = "1.2.3";
-  sha256 = "0kygmbcvv0j020ml9jgmg3yzda3k066s2h8g3c135cmad6jc8hnd";
+  version = "1.2.0";
+  sha256 = "1s3qrvglhymwvr0cp32mi95dijic40lphhsfr4hm63qjphfc8dpi";
   buildDepends = [
     asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder
     blazeBuilderConduit caseInsensitive certificate conduit cprngAes
-    dataDefault failure httpTypes liftedBase monadControl network socks
-    text time tls tlsExtra transformers transformersBase utf8String
+    dataDefault failure httpTypes liftedBase monadControl network text
+    time tls tlsExtra transformers transformersBase utf8String
     zlibConduit
   ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/pandoc-types/default.nix b/pkgs/development/libraries/haskell/pandoc-types/default.nix
index 6d5720658ceb..063fe6f45c56 100644
--- a/pkgs/development/libraries/haskell/pandoc-types/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc-types/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pandoc-types";
-  version = "1.8.2";
-  sha256 = "04whkqld2pnfz25i9rcq7d4pi9zkn6c1rpz95vdlg9r5xkhhnn3a";
+  version = "1.9.0.2";
+  sha256 = "1rqqchxinjk3njgkp73i92q4iz1cl84p56i2fmgj2zn221r0zhyl";
   buildDepends = [ syb ];
   meta = {
     homepage = "http://johnmacfarlane.net/pandoc";
diff --git a/pkgs/development/libraries/haskell/pandoc/default.nix b/pkgs/development/libraries/haskell/pandoc/default.nix
index 455baa9ee1d3..de998c51b93c 100644
--- a/pkgs/development/libraries/haskell/pandoc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc/default.nix
@@ -1,18 +1,23 @@
-{ cabal, base64Bytestring, citeprocHs, dlist, extensibleExceptions
-, highlightingKate, HTTP, json, mtl, network, pandocTypes, parsec
-, random, syb, tagsoup, texmath, utf8String, xhtml, xml, zipArchive
+{ cabal, ansiTerminal, base64Bytestring, blazeHtml, citeprocHs
+, Diff, extensibleExceptions, highlightingKate, HTTP, HUnit, json
+, mtl, network, pandocTypes, parsec, QuickCheck, random, syb
+, tagsoup, temporary, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2, texmath, time, utf8String, xml
+, zipArchive, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "pandoc";
-  version = "1.8.2.1";
-  sha256 = "0cwly0j2rj46h654iwl04l6jkhk6rrhynqvrdnq47067n9vm60pi";
+  version = "1.9.0.3";
+  sha256 = "1p5054sdvvgl38rr0ajfavr79rwr2l8jdrpzai329ksskkh1acdp";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    base64Bytestring citeprocHs dlist extensibleExceptions
-    highlightingKate HTTP json mtl network pandocTypes parsec random
-    syb tagsoup texmath utf8String xhtml xml zipArchive
+    ansiTerminal base64Bytestring blazeHtml citeprocHs Diff
+    extensibleExceptions highlightingKate HTTP HUnit json mtl network
+    pandocTypes parsec QuickCheck random syb tagsoup temporary
+    testFramework testFrameworkHunit testFrameworkQuickcheck2 texmath
+    time utf8String xml zipArchive zlib
   ];
   configureFlags = "-fhighlighting -fthreaded";
   meta = {
diff --git a/pkgs/development/libraries/haskell/parsimony/default.nix b/pkgs/development/libraries/haskell/parsimony/default.nix
index 70709c978b97..55bc7f74d297 100644
--- a/pkgs/development/libraries/haskell/parsimony/default.nix
+++ b/pkgs/development/libraries/haskell/parsimony/default.nix
@@ -1,10 +1,10 @@
-{ cabal, utf8String }:
+{ cabal, text }:
 
 cabal.mkDerivation (self: {
   pname = "parsimony";
-  version = "1.1";
-  sha256 = "0476zmsjyjf58lh85806baqblq8hjxcrrnqc6ddxxq17lmvsd5ic";
-  buildDepends = [ utf8String ];
+  version = "1.3";
+  sha256 = "0vbayvk989m85qfxxls74rn0v8ylb5l7lywp30sw2wybvi4r08lg";
+  buildDepends = [ text ];
   meta = {
     description = "Monadic parser combinators derived from Parsec";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/system-fileio/default.nix b/pkgs/development/libraries/haskell/system-fileio/default.nix
index 844864ac1031..cd514f7ce232 100644
--- a/pkgs/development/libraries/haskell/system-fileio/default.nix
+++ b/pkgs/development/libraries/haskell/system-fileio/default.nix
@@ -2,12 +2,12 @@
 
 cabal.mkDerivation (self: {
   pname = "system-fileio";
-  version = "0.3.3";
-  sha256 = "0z7y99g8ij9ykpxsgdb0addyibvpv2s95i0wpx4yc7mgi8cl50bx";
+  version = "0.3.4";
+  sha256 = "184f5bb3qhag6cwmk0zc2ldkwnkzbv82pv7hy541j8jqqi5wprih";
   buildDepends = [ systemFilepath text time ];
   meta = {
-    homepage = "https://john-millikin.com/software/hs-fileio/";
-    description = "High-level filesystem interaction";
+    homepage = "https://john-millikin.com/software/haskell-filesystem/";
+    description = "Consistent filesystem interaction across GHC versions";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
     maintainers = [
diff --git a/pkgs/development/libraries/haskell/system-filepath/default.nix b/pkgs/development/libraries/haskell/system-filepath/default.nix
index ee42d3415f25..e0ad17c6acbb 100644
--- a/pkgs/development/libraries/haskell/system-filepath/default.nix
+++ b/pkgs/development/libraries/haskell/system-filepath/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "system-filepath";
-  version = "0.4.4";
-  sha256 = "16904xwbcy82ghf1bckw8h63pfj9jfbdlqrr8jf91jzl27lqlwxf";
+  version = "0.4.5";
+  sha256 = "18jpn3pyy6dh20xpdlwmhcjvbywjz4vr9fvwcwhylbicrw627ybs";
   buildDepends = [ deepseq text ];
   meta = {
     homepage = "https://john-millikin.com/software/haskell-filesystem/";
diff --git a/pkgs/development/libraries/haskell/temporary/default.nix b/pkgs/development/libraries/haskell/temporary/default.nix
new file mode 100644
index 000000000000..fd31d2460046
--- /dev/null
+++ b/pkgs/development/libraries/haskell/temporary/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "temporary";
+  version = "1.1.2.3";
+  sha256 = "1x4jljggbcdq90h578yyvc8z1i9zmlhvqfz2dym8kj8pq4qiwixd";
+  meta = {
+    homepage = "http://www.github.com/batterseapower/temporary";
+    description = "Portable temporary file and directory support for Windows and Unix, based on code from Cabal";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/test-framework/0.4.2.2.nix b/pkgs/development/libraries/haskell/test-framework/0.4.2.2.nix
new file mode 100644
index 000000000000..4b920133ffd9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/test-framework/0.4.2.2.nix
@@ -0,0 +1,25 @@
+{ cabal, ansiTerminal, ansiWlPprint, extensibleExceptions, hostname
+, random, regexPosix, time, xml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "test-framework";
+  version = "0.4.2.2";
+  sha256 = "1lwdx4z9j5wxbmmlakf6knirdhi0ic6xpmhrj9ipa5ybw2zszakr";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    ansiTerminal ansiWlPprint extensibleExceptions hostname random
+    regexPosix time xml
+  ];
+  meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
+    description = "Framework for running and organising tests, with HUnit and QuickCheck support";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/test-framework/default.nix b/pkgs/development/libraries/haskell/test-framework/0.5.nix
index 6ac60c1df2dd..6ac60c1df2dd 100644
--- a/pkgs/development/libraries/haskell/test-framework/default.nix
+++ b/pkgs/development/libraries/haskell/test-framework/0.5.nix
diff --git a/pkgs/development/libraries/haskell/texmath/default.nix b/pkgs/development/libraries/haskell/texmath/default.nix
index 032f79ce077e..b72c5ceee04e 100644
--- a/pkgs/development/libraries/haskell/texmath/default.nix
+++ b/pkgs/development/libraries/haskell/texmath/default.nix
@@ -2,14 +2,14 @@
 
 cabal.mkDerivation (self: {
   pname = "texmath";
-  version = "0.5.0.4";
-  sha256 = "0wi7zix10p73hb8aiyq47d27k5hi0l0ba5p6h7kdbhia9xm5w5w5";
+  version = "0.6.0.1";
+  sha256 = "0q39a83g7kcj9qpnjg0v7pd0b4w9i090nl2s9v8lpv4n46z6cyaq";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ parsec syb xml ];
   meta = {
     homepage = "http://github.com/jgm/texmath";
-    description = "Conversion of LaTeX math formulas to MathML";
+    description = "Conversion of LaTeX math formulas to MathML or OMML";
     license = "GPL";
     platforms = self.ghc.meta.platforms;
     maintainers = [
diff --git a/pkgs/development/libraries/haskell/vector-algorithms/default.nix b/pkgs/development/libraries/haskell/vector-algorithms/default.nix
index 3688bb12c28c..6988cae02769 100644
--- a/pkgs/development/libraries/haskell/vector-algorithms/default.nix
+++ b/pkgs/development/libraries/haskell/vector-algorithms/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "vector-algorithms";
-  version = "0.5.3";
-  sha256 = "14h2x3yrb4fji8bf84xbfp84pax6lzr8njc0c4061xpwcmair36j";
+  version = "0.5.4";
+  sha256 = "0j16jmnmgksbzsq2vvxjmciywi91clak77i6zjjghvn9dpmnsmv2";
   buildDepends = [ primitive vector ];
   meta = {
     homepage = "http://code.haskell.org/~dolio/";
diff --git a/pkgs/development/libraries/haskell/yap/default.nix b/pkgs/development/libraries/haskell/yap/default.nix
index 27938a2fad09..62dc82b10685 100644
--- a/pkgs/development/libraries/haskell/yap/default.nix
+++ b/pkgs/development/libraries/haskell/yap/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yap";
-  version = "0.1";
-  sha256 = "14x1z5pmb499qq5sy0iksxv0mli8556s1jh9jm7rdg671h1cy1hl";
+  version = "0.2";
+  sha256 = "14lq549jhgnf51pgy1jv31ik8qx71yl7d53w8dpq1f9mlsn1g16i";
   meta = {
     description = "yet another prelude - a simplistic refactoring with algebraic classes";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/lcms2/default.nix b/pkgs/development/libraries/lcms2/default.nix
index 75a7570201dd..f3dcc7772e72 100644
--- a/pkgs/development/libraries/lcms2/default.nix
+++ b/pkgs/development/libraries/lcms2/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libtiff, libjpeg, zlib}:
 
 stdenv.mkDerivation rec {
-  name = "lcms2-2.0a";
+  name = "lcms2-2.3";
 
   src = fetchurl {
-    url = "mirror://sf/lcms/${name}.tar.gz";
-    sha256 = "0kq5imagri0l964nnj06f7xny2q7rwvzqpm8ibsqz5zm263ggskd";
+    url = "mirror://sourceforge/lcms/${name}.tar.gz";
+    sha256 = "1r5gmzhginzm90y70dcbamycdfcaz4f7v0bb4nwyaywlvsxpg89y";
   };
 
   propagatedBuildInputs = [ libtiff libjpeg zlib ];
diff --git a/pkgs/development/libraries/libbsd/default.nix b/pkgs/development/libraries/libbsd/default.nix
new file mode 100644
index 000000000000..3c28b95c0667
--- /dev/null
+++ b/pkgs/development/libraries/libbsd/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+let name = "libbsd-0.3.0";
+in stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url = "http://libbsd.freedesktop.org/releases/${name}.tar.gz";
+    sha256 = "fbf36ed40443e1d0d795adbae8d461952509e610c3ccf0866ae160b723f7fe38";
+  };
+
+  patchPhase = ''
+    substituteInPlace Makefile \
+      --replace "/usr" "$out" \
+      --replace "{exec_prefix}" "{prefix}"
+  '';
+
+  meta = { 
+    description = "Common functions found on BSD systems";
+    homepage = http://libbsd.freedesktop.org/;
+    license = "BSD3";
+  };
+}
+
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index 63a8c53afb78..f7135e4018d8 100644
--- a/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, nasm }: 
 
 stdenv.mkDerivation {
-  name = "libjpeg-turbo-1.0.1";
+  name = "libjpeg-turbo-1.1.1";
   
   src = fetchurl {
-    url = mirror://sourceforge/libjpeg-turbo/libjpeg-turbo-1.0.1.tar.gz;
-    sha256 = "094jvqzibqbzmhh7mz3xi76lzlilxzb4j1x8rpdcdkzyig9dizqf";
+    url = mirror://sourceforge/libjpeg-turbo/libjpeg-turbo-1.1.1.tar.gz;
+    sha256 = "553b1f5a968fb9efc089623ed99be2aa6bc21586be92eb04848489c91a63f1e2";
   };
 
   buildInputs = [ nasm ];
diff --git a/pkgs/development/libraries/qhull/default.nix b/pkgs/development/libraries/qhull/default.nix
index 002a25988b69..b9d9c19a10d8 100644
--- a/pkgs/development/libraries/qhull/default.nix
+++ b/pkgs/development/libraries/qhull/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, cmake}:
 
 stdenv.mkDerivation rec {
-  name = "qhull-2011.1";
+  name = "qhull-2012.1";
 
   src = fetchurl {
     url = "${meta.homepage}/download/${name}-src.tgz";
-    sha256 = "1i2lqw0552mvbcc1q7l4b31fpzf2l2qcabc23r4sybhwyljl9bmd";
+    sha256 = "19hb10vs7ww45ifn7mpvxykn470gd1g568d84mlld6v4pnz7gamv";
   };
 
   buildNativeInputs = [ cmake ];
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 3dbdea9c96ba..7024478afaec 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -5,14 +5,14 @@ assert readline != null;
 let
   system = stdenv.system;
   arch = if system == "i686-linux" then "ia32" else if system == "x86_64-linux" then "x64" else "";
-  version = "3.6.6.17";
+  version = "3.6.6.20";
 in
 assert system == "i686-linux" || system == "x86_64-linux";
 stdenv.mkDerivation rec {
     name = "v8-${version}";
     src = fetchsvn {
       url = "http://v8.googlecode.com/svn/tags/${version}";
-      sha256 = "7080d53b9d3aefc591c2e181dcf97d538ce36177284fc658eca6420ea36a926f";
+      sha256 = "68565086baa5a37a0fa15e1c0b7914210fa590b29a8196014cd83789da6a01ba";
     };
 
     buildInputs = [python scons readline makeWrapper];
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
index 47034c6ebce0..180d0057e1b0 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hlint";
-  version = "1.8.21";
-  sha256 = "1vjl1qncxia9352469k9v28283f17xk0xhb28by6crchz596xln6";
+  version = "1.8.23";
+  sha256 = "0cbjnzs9ddk4z7kxh935x1kvr566afcvk98z3174f3xp5sbz79wr";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/parsing/happy/1.18.9.nix b/pkgs/development/tools/parsing/happy/1.18.9.nix
new file mode 100644
index 000000000000..cb47eaa8bdb2
--- /dev/null
+++ b/pkgs/development/tools/parsing/happy/1.18.9.nix
@@ -0,0 +1,21 @@
+{ cabal, mtl, perl }:
+
+cabal.mkDerivation (self: {
+  pname = "happy";
+  version = "1.18.9";
+  sha256 = "12k1rg7dqa02az9d1zasdnp51zs4h30kpi5lyqsw3jxfp09cad3x";
+  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
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/tools/pydb/default.nix b/pkgs/development/tools/pydb/default.nix
index 7aa2d57955fd..7aa2d57955fd 100644
--- a/pkgs/tools/pydb/default.nix
+++ b/pkgs/development/tools/pydb/default.nix
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index c7fe9158ffe9..914b2cc26c3b 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, openssl, python, zlib, v8 }:
 
 stdenv.mkDerivation rec {
-  version = "0.6.6";
+  version = "0.6.9";
   name = "nodejs-${version}";
 
   src = fetchurl {
     url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz";
-    sha256 = "00i14bjhyadxrh0df1ig4ndv1c0b7prnnhyar5lxcgxnn4cabgks";
+    sha256 = "484ab6b3da6195339544c16aff17f747aa85d1dd15d765d6724aa8a4ecda03ca";
   };
 
   configureFlags = [
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index 67ae073c6c70..48ab458d402c 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ kernel ];
-  patches = [ ./makefile.patch ];
+  patches = [ ./makefile.patch ./linux-2.6.39.patch ./linux-3.2.patch ];
     #++ stdenv.lib.optional
     #(! builtins.lessThan (builtins.compareVersions kernel.version "2.6.37") 0)
       #[ ./mutex-sema.patch ];
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-2.6.39.patch b/pkgs/os-specific/linux/broadcom-sta/linux-2.6.39.patch
new file mode 100644
index 000000000000..ca07c918c360
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/linux-2.6.39.patch
@@ -0,0 +1,11 @@
+--- old/src/wl/sys/wl_cfg80211.c
++++ new/src/wl/sys/wl_cfg80211.c
+@@ -1811,7 +1811,7 @@
+ 	notif_bss_info->frame_len = offsetof(struct ieee80211_mgmt, u.beacon.variable) +
+ 	                            wl_get_ielen(wl);
+ 	freq = ieee80211_channel_to_frequency(notif_bss_info->channel 
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)
+ 		,(notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ
+ #endif
+ 	);
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-3.2.patch b/pkgs/os-specific/linux/broadcom-sta/linux-3.2.patch
new file mode 100644
index 000000000000..b491537cb86f
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/linux-3.2.patch
@@ -0,0 +1,13 @@
+diff -Naur broadcom-sta-5.100.82.112.orig/src/wl/sys/wl_linux.c broadcom-sta-5.100.82.112/src/wl/sys/wl_linux.c
+--- broadcom-sta-5.100.82.112.orig/src/wl/sys/wl_linux.c	2011-10-23 01:56:55.000000000 +0900
++++ broadcom-sta-5.100.82.112/src/wl/sys/wl_linux.c	2011-11-22 00:56:07.021520421 +0900
+@@ -385,7 +385,9 @@
+ #endif
+ 	.ndo_get_stats = wl_get_stats,
+ 	.ndo_set_mac_address = wl_set_mac_address,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
+ 	.ndo_set_multicast_list = wl_set_multicast_list,
++#endif
+ 	.ndo_do_ioctl = wl_ioctl
+ };
+ 
diff --git a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
index 6ad2227ee69e..c35f6c2d9bdb 100644
--- a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
+++ b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
@@ -1,32 +1,66 @@
-# TODO: some files are not at the right place.
-# For now, we take the strategy of adding symlinks to fix this,
-# however it is probably better to extract the files from
-# the appropriate debian binary packages.
+# The firmware bundle as packaged by Debian. This should be "all" firmware that is not shipped
+# as part of the kernel itself.
+# You can either install the complete bundle, or write a separate package for individual
+# devices that copies the firmware from this package.
 
-{stdenv, fetchurl}:
+{ stdenv, fetchurl, buildEnv, dpkg }:
 
-stdenv.mkDerivation {
-  name = "firmware-linux-nonfree-0.34";
+let
+  version = "0.35";
 
-  src = fetchurl {
-      url = "mirror://debian/pool/non-free/f/firmware-nonfree/firmware-nonfree_0.34.tar.gz";
-      sha256 = "94fe856d00f63559486b7684c0fae9b30bee599c6d7dea8c7e00d2dcb548ee8a";
+  packages = [
+    { name = "linux-nonfree"; sha256 = "8c0701500e5252e3e05ad0e5403cc5295899ccb2d6d731380b5f4c2d90003ed1"; }
+    { name = "atheros"; sha256 = "df411d76e3d55cb256b0974df16cf18f316c1325f33670fbc9e36abba5aa46c0"; }
+    { name = "bnx2"; sha256 = "124e74aa6ce477f7b6a0b5eff3870b0104fd885b4bdfb9977175e75bdb9a7525"; }
+    { name = "bnx2x"; sha256 = "4cbcf3422a9aaa6e31704770c724179765dceabd2e6867e24cf47039925e6545"; }
+    { name = "brcm80211"; sha256 = "eefba7ba31c018d514ea15878cfd7bca36a65b0df3e9024fc3875a990678a684"; }
+    { name = "intelwimax"; sha256 = "436a3bd128224f43988630318aa3e74abfbe838916e1e10a602ddc468b75d843"; }
+    { name = "ipw2x00"; sha256 = "9c214e3a9f7f7d710b5cb30282d5ca2b2ccafc3bb208dfe7e18de16d3aadc7a3"; }
+    { name = "ivtv"; sha256 = "ced47d8b87ff8ff70a8c32492cc4fb5818860ef018b5c04a4415ab26c9b16300"; }
+    { name = "iwlwifi"; sha256 = "5d9615ec128b59cc5834e0261ea74127c0bc64bafabdaef1028a8f1acf611568"; }
+    { name = "libertas"; sha256 = "b109fb5c392928ac5495f8ce1d0f41d123b193031f8b548e8b68e9563db37016"; }
+    { name = "linux"; sha256 = "8e87f75c120904f2ca5fd9017e4503c23d8705b9ccaeb570374d1747163620ab"; }
+    { name = "myricom"; sha256 = "4c9e19d8b2cea97eb05f9d577537dba81aa36ac06c6da9bbed0bfa20434b7acc"; }
+    { name = "netxen"; sha256 = "3bd129229cf548a533c79cb55deefa7e4919e09fcc1f655773f4fa5078d81b9b"; }
+    { name = "qlogic"; sha256 = "213d098435c657115d2754ef5ead52e64f5fa05be4dcbcb0d5d3ca745376959c"; }
+    { name = "ralink"; sha256 = "51f3001ed15ca72bb088297b9e6e4a821ba6250f0ccc8886d77d2f5386a21836"; }
+    { name = "realtek"; sha256 = "a6338f5cd8bbe9627fa994016ebb0a91b40914021bec280ddc8f8a56eab22287"; }
+  ];
+
+  fetchPackage =
+    { name, sha256 }: fetchurl {
+      url = "mirror://debian/pool/non-free/f/firmware-nonfree/firmware-${name}_${version}_all.deb";
+      inherit sha256;
     };
- 
-  phases = [ "unpackPhase" "patchPhase" "installPhase" "postInstall" ];
 
-  patchPhase = "rm -rf debian defines TODO";
+  srcs = map fetchPackage packages;
+
+in stdenv.mkDerivation {
+  name = "firmware-linux-nonfree-${version}";
+  inherit srcs;
+
+  unpackPhase = ''
+    ensureDir "./firmware"
+  '';
 
-  installPhase = "ensureDir $out && cp -ra * $out/";
+  buildPhase = ''
+    for src in $srcs; do
+      dpkg-deb -W $src
+      dpkg-deb -x $src .
+    done
+  '';
 
-  # repeat the same trick for radeon, 3com, etc.
-  postInstall = "ln -s $out/realtek/rtlwifi $out/rtlwifi";
+  buildInputs = [ dpkg ];
+
+  installPhase = ''
+    ensureDir "$out/"
+    cp -r lib/firmware/* "$out/"
+  '';
 
   meta = {
-    description = "Non-free kernel firmware (packaged by Debian)";
+    description = "Binary firmware collection packaged by Debian";
     homepage = "http://packages.debian.org/sid/firmware-linux-nonfree";
     license = "unfree-redistributable-firmware";
-    priority = "10";
+    priority = 10; # low priority so that other packages can override this big package
   };
 }
-
diff --git a/pkgs/os-specific/linux/firmware/rtl8192c/default.nix b/pkgs/os-specific/linux/firmware/rtl8192c/default.nix
index 85bbb27c67f0..ab8749c15369 100644
--- a/pkgs/os-specific/linux/firmware/rtl8192c/default.nix
+++ b/pkgs/os-specific/linux/firmware/rtl8192c/default.nix
@@ -4,7 +4,10 @@ stdenv.mkDerivation {
   src = firmwareLinuxNonfree;
 
   phases = [ "installPhase" ];
-  installPhase = "ensureDir $out/rtlwifi && cp $src/realtek/rtlwifi/rtl8192cfw.bin $out/rtlwifi/rtl8192cfw.bin";
+  installPhase = ''
+    ensureDir $out/rtlwifi
+    cp "$src/rtlwifi/rtl8192cfw.bin" "$out/rtlwifi/rtl8192cfw.bin"
+  '';
 
   meta = {
     description = "Firmware for the Realtek RTL8192c wireless cards";
diff --git a/pkgs/os-specific/linux/frandom/default.nix b/pkgs/os-specific/linux/frandom/default.nix
new file mode 100644
index 000000000000..9f07e7c8eb09
--- /dev/null
+++ b/pkgs/os-specific/linux/frandom/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, kernel }:
+
+stdenv.mkDerivation rec {
+  name = "frandom-1.1";
+
+  src = fetchurl {
+    url = "http://sourceforge.net/projects/frandom/files/${name}.tar.gz";
+    sha256 = "15rgyk4hfawqg7z1spk2xlk1nn6rcdls8gdhc70f91shrc9pvlls";
+  };
+
+  preBuild = ''
+    kernelVersion=$(cd ${kernel}/lib/modules && ls)
+    substituteInPlace Makefile \
+      --replace "\$(shell uname -r)" "$kernelVersion" \
+      --replace "/lib/modules" "${kernel}/lib/modules"
+  '';
+ 
+  installPhase = ''
+    kernelVersion=$(cd ${kernel}/lib/modules && ls)
+    ensureDir $out/lib/modules/$kernelVersion/misc
+    cp frandom.ko $out/lib/modules/$kernelVersion/misc
+
+    ensureDir $out/lib/udev/rules.d
+    tee $out/lib/udev/rules.d/10-frandom.rules <<-EOF
+    #
+    # These are the rules for the frandom devices. In theory, we could let
+    # udev's catch-all rule create the /dev node based upon the kernel name,
+    # which gives correct result, except that the default MODE set in
+    # 50-udev.rules (0600) is too restrictive.
+    #
+    KERNEL=="[ef]random", MODE="444", OPTIONS="last_rule"
+    EOF
+  '';
+
+  buildInputs = [];
+
+  meta = {
+    description = "A very fast random number generator kernel module.";
+    homepage = http://frandom.sourceforge.net/;
+    license = "GPLv2";
+    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
+  };
+}
+
diff --git a/pkgs/os-specific/linux/i7z/default.nix b/pkgs/os-specific/linux/i7z/default.nix
new file mode 100644
index 000000000000..2d0fde3c7836
--- /dev/null
+++ b/pkgs/os-specific/linux/i7z/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, qt4, ncurses}:
+
+stdenv.mkDerivation rec {
+  name = "i7z-0.27.1";
+
+  src = fetchurl {
+    url = "http://i7z.googlecode.com/files/${name}.tar.gz";
+    sha256 = "0n3pry1qmpq4basnny3gddls2zlwz0813ixnas87092rvlgjhbc6";
+  };
+
+  buildInputs = [qt4 ncurses];
+
+  patchPhase = ''
+    substituteInPlace Makefile --replace "/usr/sbin" "$out/sbin"
+  '';
+
+  buildPhase = ''
+    make
+    cd GUI
+    qmake
+    make clean
+    make
+    cd ..
+  '';
+
+  installPhase = ''
+    pwd
+    ensureDir $out/sbin
+    make install
+    install -Dm755 GUI/i7z_GUI $out/sbin/i7z-gui
+  '';
+
+  meta = {
+    description = "A better i7 (and now i3, i5) reporting tool for Linux";
+    homepage = http://code.google.com/p/i7z;
+    license = "GPLv2";
+    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
+  };
+}
+
diff --git a/pkgs/os-specific/linux/kernel/linux-3.2.nix b/pkgs/os-specific/linux/kernel/linux-3.2.nix
index f0dbc1509bde..b77f6eb47885 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.2.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.2.nix
@@ -214,7 +214,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.2.2";
+    version = "3.2.4";
     testing = false;
 
     modDirVersion = version;
@@ -225,7 +225,7 @@ import ./generic.nix (
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.0/${if testing then "testing/" else ""}linux-${version}.tar.bz2";
-      sha256 = "9f20bd2332db32e2d5b0fc346762d486faab19e0dd059c82964116421bb7cceb";
+      sha256 = "1c648a7041e65a167d3fd8beda484a3d55c35cad9d6d189b9949d3c621887da7";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/microcode/converter.nix b/pkgs/os-specific/linux/microcode/converter.nix
new file mode 100644
index 000000000000..ea00c7a6ae42
--- /dev/null
+++ b/pkgs/os-specific/linux/microcode/converter.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "microcode2ucode-20120205";
+  src = fetchurl {
+    url = "http://gentoo-overlays.zugaina.org/gentoo/portage/sys-apps/microcode-data/files/intel-microcode2ucode.c";
+    sha256 = "c51b1b1d8b4b28e7d5d007917c1e444af1a2ff04a9408aa9067c0e57d70164de";
+  };
+
+  sourceRoot = ".";
+
+  unpackPhase = ''
+    # nothing to unpack
+  '';
+
+  buildPhase = ''
+    gcc -Wall -O2 $src -o intel-microcode2ucode
+  '';
+  
+  installPhase = ''
+    ensureDir "$out/bin"
+    cp intel-microcode2ucode "$out/bin/"
+  '';
+
+  meta = {
+    homepage = http://www.intel.com;
+    description = "Microcode converter for Intel .dat files";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/os-specific/linux/microcode/intel.nix b/pkgs/os-specific/linux/microcode/intel.nix
index 3294c90cb3a0..9a57fef67a1b 100644
--- a/pkgs/os-specific/linux/microcode/intel.nix
+++ b/pkgs/os-specific/linux/microcode/intel.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, microcode2ucode }:
 
 let version = "20111110";
     num = "20728";
@@ -9,16 +9,16 @@ in stdenv.mkDerivation {
     sha256 = "16f532cdf9cce03e01e714619ad9406a465aa965bbd1288035398db79921cbc1";
   };
 
-#  setSourceRoot = ''
-#    sourceRoot=.
-#  '';
-
+  buildInputs = [ microcode2ucode ];
   sourceRoot = ".";
 
-  dontBuild = true;
+  buildPhase = ''
+    intel-microcode2ucode microcode.dat
+  '';
+
   installPhase = ''
     ensureDir $out
-    cp microcode.dat "$out/"
+    cp -r intel-ucode "$out/"
   '';
 
   meta = {
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 296dac46cbae..4fbc6fbdfda8 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1398,11 +1398,11 @@ let
   })) // {inherit inputproto xorgserver xproto ;};
     
   xf86inputsynaptics = (stdenv.mkDerivation ((if overrides ? xf86inputsynaptics then overrides.xf86inputsynaptics else x: x) {
-    name = "xf86-input-synaptics-1.3.0";
+    name = "xf86-input-synaptics-1.5.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.6/src/everything/xf86-input-synaptics-1.3.0.tar.bz2;
-      sha256 = "1mwgb85qjyzx2yfi7jhgvd435zdyqxyq9aqwlsldmlpkqi8358rh";
+      url = mirror://xorg/individual/driver/xf86-input-synaptics-1.5.0.tar.bz2;
+      sha256 = "0khwda8lrrvrdb37i4i1kdhg8f44kgcjq9y209ds7ja9zjcm7k4m";
     };
     buildInputs = [pkgconfig inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ];
   })) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;};
diff --git a/pkgs/servers/x11/xorg/tarballs-7.6.list b/pkgs/servers/x11/xorg/tarballs-7.6.list
index 27cd5ca5d827..613c3107c867 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.6.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.6.list
@@ -121,7 +121,7 @@ mirror://xorg/individual/driver/xf86-input-evdev-2.6.0.tar.bz2
 mirror://xorg/X11R7.6/src/everything/xf86-input-joystick-1.5.0.tar.bz2
 mirror://xorg/X11R7.6/src/everything/xf86-input-keyboard-1.5.0.tar.bz2
 mirror://xorg/X11R7.6/src/everything/xf86-input-mouse-1.6.0.tar.bz2
-mirror://xorg/X11R7.6/src/everything/xf86-input-synaptics-1.3.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-synaptics-1.5.0.tar.bz2
 mirror://xorg/X11R7.6/src/everything/xf86-input-vmmouse-12.6.10.tar.bz2
 mirror://xorg/X11R7.6/src/everything/xf86-input-void-1.3.1.tar.bz2
 mirror://xorg/X11R7.6/src/everything/xf86-video-apm-1.2.3.tar.bz2
diff --git a/pkgs/tools/X11/bumblebee/config.patch b/pkgs/tools/X11/bumblebee/config.patch
new file mode 100644
index 000000000000..61b671f80c1c
--- /dev/null
+++ b/pkgs/tools/X11/bumblebee/config.patch
@@ -0,0 +1,30 @@
+--- bumblebee-3.0/src/driver.c.orig	2012-02-03 14:51:10.282464426 +0100
++++ bumblebee-3.0/src/driver.c	2012-02-04 22:26:02.715498536 +0100
+@@ -23,6 +23,7 @@
+ #include "module.h"
+ #include "bblogger.h"
+ #include "driver.h"
++#include <stdlib.h>
+ 
+ /**
+  * Check what drivers are available and autodetect if possible. Driver, module
+@@ -30,6 +31,7 @@
+  */
+ void driver_detect(void) {
+   /* determine driver to be used */
++  set_string_value(&bb_config.driver, getenv("BUMBLEBEE_DRIVER"));
+   if (*bb_config.driver) {
+     bb_log(LOG_DEBUG, "Skipping auto-detection, using configured driver"
+             " '%s'\n", bb_config.driver);
+@@ -65,8 +67,8 @@
+     }
+   }
+ 
+-  if (strcmp(bb_config.driver, "nvidia")) {
+-    set_string_value(&bb_config.ld_path, CONF_LDPATH_NVIDIA);
+-    set_string_value(&bb_config.mod_path, CONF_MODPATH_NVIDIA);
++  if (!strcmp(bb_config.driver, "nvidia")) {
++    set_string_value(&bb_config.ld_path, getenv("BUMBLEBEE_LDPATH_NVIDIA"));
++    set_string_value(&bb_config.mod_path, getenv("BUMBLEBEE_MODPATH_NVIDIA"));
+   }
+ }
diff --git a/pkgs/tools/X11/bumblebee/default.nix b/pkgs/tools/X11/bumblebee/default.nix
new file mode 100644
index 000000000000..2e0c700641f7
--- /dev/null
+++ b/pkgs/tools/X11/bumblebee/default.nix
@@ -0,0 +1,136 @@
+# The bumblebee package allows a program to be rendered on an
+# dedicated video card by spawning an additional X11 server
+# and streaming the results via VirtualGL to the primary server.
+
+# The package is rather chaotic; it's also quite recent.
+# As it may change a lot, some of the hacks in this nix expression
+# will hopefully not be needed in the future anymore.
+
+# To test: make sure that the 'bbswitch' kernel module is installed,
+# then run 'bumblebeed' as root and 'optirun glxgears' as user.
+# To use at startup, add e.g. to configuration.nix:
+# jobs = {
+#   bumblebeed = {
+#     name = "bumblebeed";
+#     description = "Manages the Optimus video card";
+#     startOn = "started udev and started syslogd";
+#     stopOn = "starting shutdown";
+#     exec = "bumblebeed --use-syslog";
+#     path = [ pkgs.bumblebee ];
+#     environment = { MODULE_DIR = "${config.system.modulesTree}/lib/modules"; };
+#     respawn = true;
+#   };
+# };
+
+# This nix expression supports for now only the native nvidia driver.
+# It should not be hard to generalize this approach to support the
+# nouveau driver as well (parameterize commonEnv over the module
+# package, and parameterize the two wrappers as well)
+
+{ stdenv, fetchurl, pkgconfig, help2man
+, libX11, glibc, gtkLibs, libbsd
+, makeWrapper, buildEnv, module_init_tools
+, linuxPackages, virtualgl, xorg, xkeyboard_config
+}:
+
+let
+  version = "3.0";
+  name = "bumblebee-${version}";
+
+  # isolated X11 environment with the nvidia module
+  # it should include all components needed for bumblebeed and
+  # optirun to spawn the second X server and to connect to it.
+  commonEnv = buildEnv {
+    name = "bumblebee-env";
+    paths = [
+      module_init_tools
+
+      linuxPackages.nvidia_x11
+      xorg.xorgserver
+      xorg.xrandr
+      xorg.xrdb
+      xorg.setxkbmap
+      xorg.libX11
+      xorg.libXext
+
+      virtualgl
+    ];
+
+    # the nvidia GLX module overwrites the one of xorgserver,
+    # thus nvidia_x11 must be before xorgserver in the paths.
+    ignoreCollisions = true;
+  };
+
+  # Custom X11 configuration for the additional xserver instance.
+  xorgConf = ./xorg.conf.nvidia;
+
+in stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url = "http://github.com/downloads/Bumblebee-Project/Bumblebee/${name}.tar.gz";
+    sha256 = "a27ddb77b282ac8b972857fdb0dc5061cf0a0982b7ac3e1cfa698b4f786e49a1";
+  };
+
+  # 'config.patch' makes bumblebee read the active module and the nvidia configuration
+  # from the environment variables instead of the config file:
+  #   BUMBLEBEE_DRIVER, BUMBLEBEE_LDPATH_NVIDIA, BUMBLEBEE_MODPATH_NVIDIA
+  # These variables must be set when bumblebeed and optirun are executed.
+  patches = [ ./config.patch ./xopts.patch ];
+
+  preConfigure = ''
+    # Substitute the path to the actual modinfo program in module.c.
+    # Note: module.c also calls rmmod and modprobe, but those just have to
+    # be in PATH, and thus no action for them is required.
+    substituteInPlace src/module.c \
+      --replace "/sbin/modinfo" "${module_init_tools}/sbin/modinfo"
+
+    # Don't use a special group, just reuse wheel.
+    substituteInPlace configure \
+      --replace 'CONF_GID="bumblebee"' 'CONF_GID="wheel"'
+
+    # Ensures that the config file ends up with a nonempty
+    # name of the nvidia module. This is needed, because the
+    # configuration handling code otherwise resets the
+    # data that we obtained from the environment (see config.patch)
+    export CONF_DRIVER_MODULE_NVIDIA=nvidia
+  '';
+
+  # Build-time dependencies of bumblebeed and optirun.
+  # Note that it has several runtime dependencies.
+  buildInputs = [ stdenv makeWrapper pkgconfig help2man libX11 gtkLibs.glib libbsd ];
+
+  # create a wrapper environment for bumblebeed and optirun
+  postInstall = ''
+    # remove some entries from the configuration file that would otherwise
+    # cause our environment variables to be ignored.
+    substituteInPlace "$out/etc/bumblebee/bumblebee.conf" \
+      --replace "LibraryPath=" "" \
+      --replace "XorgModulePath=" ""
+
+    wrapProgram "$out/sbin/bumblebeed" \
+      --prefix PATH : "${commonEnv}/sbin:${commonEnv}/bin:\$PATH" \
+      --prefix LD_LIBRARY_PATH : "${commonEnv}/lib:\$LD_LIBRARY_PATH" \
+      --set BUMBLEBEE_DRIVER "nvidia" \
+      --set BUMBLEBEE_LDPATH_NVIDIA "${commonEnv}/lib" \
+      --set BUMBLEBEE_MODPATH_NVIDIA "${commonEnv}/lib/xorg/modules" \
+      --set FONTCONFIG_FILE "/etc/fonts/fonts.conf" \
+      --set XKB_BINDIR "${xorg.xkbcomp}/bin" \
+      --set XKB_DIR "${xkeyboard_config}/etc/X11/xkb"
+
+    wrapProgram "$out/bin/optirun" \
+      --prefix PATH : "${commonEnv}/sbin:${commonEnv}/bin" \
+      --prefix LD_LIBRARY_PATH : "${commonEnv}/lib" \
+      --set BUMBLEBEE_DRIVER "nvidia" \
+      --set BUMBLEBEE_LDPATH_NVIDIA "${commonEnv}/lib" \
+      --set BUMBLEBEE_MODPATH_NVIDIA "${commonEnv}/lib/xorg/modules"
+
+    cp ${xorgConf} "$out/etc/bumblebee/xorg.conf.nvidia"
+  '';
+
+  meta = {
+    homepage = http://github.com/Bumblebee-Project/Bumblebee;
+    description = "Daemon for managing Optimus videocards (power-on/off, spawns xservers)";
+    license = "free";
+  };
+}
diff --git a/pkgs/tools/X11/bumblebee/xopts.patch b/pkgs/tools/X11/bumblebee/xopts.patch
new file mode 100644
index 000000000000..9e44a8e9fd1a
--- /dev/null
+++ b/pkgs/tools/X11/bumblebee/xopts.patch
@@ -0,0 +1,11 @@
+--- bumblebee-3.0/src/bbsecondary.c.orig	2012-02-05 00:03:06.003439638 +0100
++++ bumblebee-3.0/src/bbsecondary.c	2012-02-05 00:46:38.017382619 +0100
+@@ -149,6 +149,8 @@
+       "-sharevts",
+       "-nolisten", "tcp",
+       "-noreset",
++      "-xkbdir", getenv("XKB_DIR"),
++      "-logfile", "/dev/null",
+       "-verbose", "3",
+       "-isolateDevice", pci_id,
+       "-modulepath",
diff --git a/pkgs/tools/X11/bumblebee/xorg.conf.nvidia b/pkgs/tools/X11/bumblebee/xorg.conf.nvidia
new file mode 100644
index 000000000000..31c417d6971e
--- /dev/null
+++ b/pkgs/tools/X11/bumblebee/xorg.conf.nvidia
@@ -0,0 +1,49 @@
+Section "DRI"
+    Mode 0666
+EndSection
+
+Section "ServerLayout"
+    Identifier "Layout0"
+    Screen "Screen1"
+    Option "AutoAddDevices" "false"
+EndSection
+
+Section "Module"
+    Load "dbe"
+    Load "extmod"
+    Load "glx"
+    Load "record"
+    Load "freetype"
+    Load "type1"
+EndSection
+
+Section "Files"
+EndSection
+
+Section "Device"
+    Identifier "Device1"
+    Driver "nvidia"
+    VendorName "NVIDIA Corporation"
+    Option "NoLogo" "true"
+    Option "UseEDID" "false"
+    Option "ConnectedMonitor" "CRT-0"
+EndSection
+
+Section "Screen"
+    Identifier "Screen1"
+    Device "Device1"
+    Monitor "Monitor0"
+    DefaultDepth 24
+    SubSection "Display"
+        Depth 24
+    EndSubSection
+EndSection
+
+Section "Extensions"
+    Option "Composite" "Enable"
+EndSection
+
+Section "Monitor"
+    Identifier "Monitor0"
+    Option "DPMS"
+EndSection
diff --git a/pkgs/tools/X11/virtualgl/default.nix b/pkgs/tools/X11/virtualgl/default.nix
index 433c22d128d6..57df08c1e2be 100644
--- a/pkgs/tools/X11/virtualgl/default.nix
+++ b/pkgs/tools/X11/virtualgl/default.nix
@@ -1,4 +1,5 @@
-{stdenv, fetchurl, mesa, libX11, openssl, libXext, libjpeg_turbo}:
+{ stdenv, fetchurl, mesa, libX11, openssl, libXext
+, libjpeg_turbo, cmake }:
 
 let
   libDir = if stdenv.is64bit then "lib64" else "lib";
@@ -6,21 +7,23 @@ in
 stdenv.mkDerivation {
   name = "virtualgl-2.1.4";
   src = fetchurl {
-    url = mirror://sourceforge/virtualgl/VirtualGL-2.1.4.tar.gz;
-    sha256 = "d455e599620473a07711196615e59c73d08a7f392a9fcf60a6bc05d82809d89d";
+    url = mirror://sourceforge/virtualgl/VirtualGL-2.3.tar.gz;
+    sha256 = "2f00c4eb20b0ae88e957a23fb66882e4ade2faa208abd30aa8c4f61570ecd4b9";
   };
 
-  patches = [ ./xshm.patch ];
+  patches = [ ./xshm.patch ./fixturbopath.patch ];
 
   prePatch = ''
     sed -i s,LD_PRELOAD=lib,LD_PRELOAD=$out/${libDir}/lib, rr/vglrun
   '';
 
-  preInstall =''
+  cmakeFlags = [ "-DTJPEG_LIBRARY=${libjpeg_turbo}/lib/libturbojpeg.so" ];
+
+  preInstall = ''
     export makeFlags="prefix=$out"
   '';
 
-  buildInputs = [ mesa libX11 openssl libXext libjpeg_turbo ];
+  buildInputs = [ cmake mesa libX11 openssl libXext libjpeg_turbo ];
 
   meta = {
     homepage = http://www.virtualgl.org/;
diff --git a/pkgs/tools/X11/virtualgl/fixturbopath.patch b/pkgs/tools/X11/virtualgl/fixturbopath.patch
new file mode 100644
index 000000000000..2177555e33ae
--- /dev/null
+++ b/pkgs/tools/X11/virtualgl/fixturbopath.patch
@@ -0,0 +1,16 @@
+--- VirtualGL-2.3/cmakescripts/FindTurboJPEG.cmake.orig 2012-02-02 17:33:49.496283001 +0100
++++ VirtualGL-2.3/cmakescripts/FindTurboJPEG.cmake      2012-02-02 17:44:18.772483239 +0100
+@@ -40,8 +40,11 @@
+        endif()
+ endif()
+ 
+-set(TJPEG_LIBRARY ${DEFAULT_TJPEG_LIBRARY} CACHE PATH
+-  "TurboJPEG library path (default: ${DEFAULT_TJPEG_LIBRARY})")
++if(NOT TJPEG_LIBRARY)
++       message(STATUS "TJPEG_LIBRARY environment variable not set")
++       set(TJPEG_LIBRARY ${DEFAULT_TJPEG_LIBRARY} CACHE PATH
++               "TurboJPEG library path (default: ${DEFAULT_TJPEG_LIBRARY})")
++endif()
+ 
+ if(WIN32)
+        set(CMAKE_REQUIRED_DEFINITIONS -MT)
diff --git a/pkgs/tools/admin/analog/default.nix b/pkgs/tools/admin/analog/default.nix
new file mode 100644
index 000000000000..debd6e4c2b77
--- /dev/null
+++ b/pkgs/tools/admin/analog/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl }:
+
+let
+  name = "analog-6.0";
+in
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url = "http://www.analog.cx/${name}.tar.gz";
+    sha256 = "31c0e2bedd0968f9d4657db233b20427d8c497be98194daf19d6f859d7f6fcca";
+  };
+
+  configurePhase = ''
+    sed -i src/anlghead.h \
+      -e "s|#define DEFAULTCONFIGFILE .*|#define DEFAULTCONFIGFILE \"$out/etc/analog.cfg\"|g" \
+      -e "s|#define LANGDIR .*|#define LANGDIR \"$out/share/${name}/lang/\"|g"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/etc $out/share/doc/${name} $out/share/man/man1 $out/share/${name}
+    mv analog $out/bin/
+    cp examples/big.cfg $out/etc/analog.cfg
+    mv analog.man $out/share/man/man1/analog.1
+    mv docs $out/share/doc/${name}/manual
+    mv how-to $out/share/doc/${name}/
+    mv lang images examples $out/share/${name}/
+  '';
+
+  meta = {
+    homepage = "http://www.analog.cx/";
+    license = "GPL";
+    description = "a powerful tool to generate web server statistics";
+    maintainers = [ stdenv.lib.maintainers.simons ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+
+}
diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix
index c4cc84ba34fa..bb5ae55b904f 100644
--- a/pkgs/tools/backup/duplicity/default.nix
+++ b/pkgs/tools/backup/duplicity/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, python, librsync, gnupg, boto, makeWrapper }:
 
 stdenv.mkDerivation {
-  name = "duplicity-0.6.16";
+  name = "duplicity-0.6.17";
 
   src = fetchurl {
-    url = http://code.launchpad.net/duplicity/0.6-series/0.6.16/+download/duplicity-0.6.16.tar.gz;
-    sha256 = "0n63857swqnq7i697p615dp37bsd5bj0gvlj5ng41584zzjmv328";
+    url = "http://code.launchpad.net/duplicity/0.6-series/0.6.17/+download/duplicity-0.6.17.tar.gz";
+    sha256 = "0n54fw55v4h0cjspgh9nhss5w18bfrib9fckgkk2fldi3835c7l9";
   };
 
   installPhase = ''
@@ -21,9 +21,9 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Encrypted bandwidth-efficient backup using the rsync algorithm";
-    homepage = http://www.nongnu.org/duplicity;
+    homepage = "http://www.nongnu.org/duplicity";
     license = "GPLv2+";
-    maintainers = with stdenv.lib.maintainers; [viric];
+    maintainers = with stdenv.lib.maintainers; [viric simons];
     platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/tools/graphics/enblend-enfuse/default.nix b/pkgs/tools/graphics/enblend-enfuse/default.nix
index 4a9ef054417a..807b0a8ed795 100644
--- a/pkgs/tools/graphics/enblend-enfuse/default.nix
+++ b/pkgs/tools/graphics/enblend-enfuse/default.nix
@@ -1,14 +1,17 @@
-{stdenv, fetchurl, libtiff, libpng, lcms, libxmi, boost }:
+{stdenv, fetchurl, libtiff, libpng, lcms, libxmi, boost, mesa, freeglut
+, pkgconfig, perl, glew }:
 
-stdenv.mkDerivation {
-  name = "enblend-enfuse-3.2";
+stdenv.mkDerivation rec {
+  name = "enblend-enfuse-4.0";
 
   src = fetchurl {
-    url = mirror://sourceforge/enblend/enblend-enfuse-3.2.tar.gz;
-    sha256 = "0ly6fdn5ym1v6m1f4gqc6s4zqgrfcys1ypfm82g5qbhh66x6gqw4";
+    url = "mirror://sourceforge/enblend/${name}.tar.gz";
+    sha256 = "1i2kq842zrncpadarhcikg447abmh5r7a5js3mzg553ql3148am1";
   };
 
-  buildInputs = [ libtiff libpng lcms libxmi boost ];
+  buildInputs = [ libtiff libpng lcms libxmi boost mesa freeglut glew ];
+
+  buildNativeInputs = [ perl pkgconfig ];
 
   meta = {
     homepage = http://enblend.sourceforge.net/;
diff --git a/pkgs/tools/misc/fontforge/default.nix b/pkgs/tools/misc/fontforge/default.nix
index d5a1bf42a129..ad2820012dbd 100644
--- a/pkgs/tools/misc/fontforge/default.nix
+++ b/pkgs/tools/misc/fontforge/default.nix
@@ -28,6 +28,9 @@ stdenv.mkDerivation {
       --replace /usr/include /no-such-path \
       --replace /usr/lib /no-such-path \
       --replace /usr/local /no-such-path \
+
+
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lz"
   '';
 
   buildInputs =
diff --git a/pkgs/misc/tex/auctex/default.nix b/pkgs/tools/typesetting/tex/auctex/default.nix
index 6ca85167aeda..6ca85167aeda 100644
--- a/pkgs/misc/tex/auctex/default.nix
+++ b/pkgs/tools/typesetting/tex/auctex/default.nix
diff --git a/pkgs/misc/tex/dblatex/default.nix b/pkgs/tools/typesetting/tex/dblatex/default.nix
index 05f4bd7a9fa1..05f4bd7a9fa1 100644
--- a/pkgs/misc/tex/dblatex/default.nix
+++ b/pkgs/tools/typesetting/tex/dblatex/default.nix
diff --git a/pkgs/misc/tex/disser/default.nix b/pkgs/tools/typesetting/tex/disser/default.nix
index eee695ea3e9c..eee695ea3e9c 100644
--- a/pkgs/misc/tex/disser/default.nix
+++ b/pkgs/tools/typesetting/tex/disser/default.nix
diff --git a/pkgs/misc/tex/latex2html/default.nix b/pkgs/tools/typesetting/tex/latex2html/default.nix
index 354cb6d22b0e..354cb6d22b0e 100644
--- a/pkgs/misc/tex/latex2html/default.nix
+++ b/pkgs/tools/typesetting/tex/latex2html/default.nix
diff --git a/pkgs/misc/tex/lazylist/builder.sh b/pkgs/tools/typesetting/tex/lazylist/builder.sh
index 140b07f7be70..140b07f7be70 100644
--- a/pkgs/misc/tex/lazylist/builder.sh
+++ b/pkgs/tools/typesetting/tex/lazylist/builder.sh
diff --git a/pkgs/misc/tex/lazylist/default.nix b/pkgs/tools/typesetting/tex/lazylist/default.nix
index 19637793b00d..19637793b00d 100644
--- a/pkgs/misc/tex/lazylist/default.nix
+++ b/pkgs/tools/typesetting/tex/lazylist/default.nix
diff --git a/pkgs/misc/tex/lkproof/default.nix b/pkgs/tools/typesetting/tex/lkproof/default.nix
index 2d3a1e5f19cc..2d3a1e5f19cc 100644
--- a/pkgs/misc/tex/lkproof/default.nix
+++ b/pkgs/tools/typesetting/tex/lkproof/default.nix
diff --git a/pkgs/misc/tex/nix/animatedot.sh b/pkgs/tools/typesetting/tex/nix/animatedot.sh
index 2e1868d4bebd..2e1868d4bebd 100644
--- a/pkgs/misc/tex/nix/animatedot.sh
+++ b/pkgs/tools/typesetting/tex/nix/animatedot.sh
diff --git a/pkgs/misc/tex/nix/copy-includes.pl b/pkgs/tools/typesetting/tex/nix/copy-includes.pl
index 2cec62fc7cb6..2cec62fc7cb6 100644
--- a/pkgs/misc/tex/nix/copy-includes.pl
+++ b/pkgs/tools/typesetting/tex/nix/copy-includes.pl
diff --git a/pkgs/misc/tex/nix/default.nix b/pkgs/tools/typesetting/tex/nix/default.nix
index f5a34fb67a2c..f5a34fb67a2c 100644
--- a/pkgs/misc/tex/nix/default.nix
+++ b/pkgs/tools/typesetting/tex/nix/default.nix
diff --git a/pkgs/misc/tex/nix/dot2pdf.sh b/pkgs/tools/typesetting/tex/nix/dot2pdf.sh
index 0a9610c00ff2..0a9610c00ff2 100644
--- a/pkgs/misc/tex/nix/dot2pdf.sh
+++ b/pkgs/tools/typesetting/tex/nix/dot2pdf.sh
diff --git a/pkgs/misc/tex/nix/dot2ps.sh b/pkgs/tools/typesetting/tex/nix/dot2ps.sh
index 1269108d6f52..1269108d6f52 100644
--- a/pkgs/misc/tex/nix/dot2ps.sh
+++ b/pkgs/tools/typesetting/tex/nix/dot2ps.sh
diff --git a/pkgs/misc/tex/nix/find-includes.pl b/pkgs/tools/typesetting/tex/nix/find-includes.pl
index 41675e939f60..41675e939f60 100644
--- a/pkgs/misc/tex/nix/find-includes.pl
+++ b/pkgs/tools/typesetting/tex/nix/find-includes.pl
diff --git a/pkgs/misc/tex/nix/find-lhs2tex-includes.sh b/pkgs/tools/typesetting/tex/nix/find-lhs2tex-includes.sh
index 2dc12aa517a7..2dc12aa517a7 100644
--- a/pkgs/misc/tex/nix/find-lhs2tex-includes.sh
+++ b/pkgs/tools/typesetting/tex/nix/find-lhs2tex-includes.sh
diff --git a/pkgs/misc/tex/nix/lhs2tex.sh b/pkgs/tools/typesetting/tex/nix/lhs2tex.sh
index 6edca4baf8a0..6edca4baf8a0 100644
--- a/pkgs/misc/tex/nix/lhs2tex.sh
+++ b/pkgs/tools/typesetting/tex/nix/lhs2tex.sh
diff --git a/pkgs/misc/tex/nix/run-latex.sh b/pkgs/tools/typesetting/tex/nix/run-latex.sh
index 6c18721eed6b..6c18721eed6b 100644
--- a/pkgs/misc/tex/nix/run-latex.sh
+++ b/pkgs/tools/typesetting/tex/nix/run-latex.sh
diff --git a/pkgs/misc/tex/pgf/1.x.nix b/pkgs/tools/typesetting/tex/pgf/1.x.nix
index 672ae6fdfce4..672ae6fdfce4 100644
--- a/pkgs/misc/tex/pgf/1.x.nix
+++ b/pkgs/tools/typesetting/tex/pgf/1.x.nix
diff --git a/pkgs/misc/tex/pgf/2.x.nix b/pkgs/tools/typesetting/tex/pgf/2.x.nix
index 5e73d12959c6..5e73d12959c6 100644
--- a/pkgs/misc/tex/pgf/2.x.nix
+++ b/pkgs/tools/typesetting/tex/pgf/2.x.nix
diff --git a/pkgs/misc/tex/polytable/builder.sh b/pkgs/tools/typesetting/tex/polytable/builder.sh
index 1138b8e67896..1138b8e67896 100644
--- a/pkgs/misc/tex/polytable/builder.sh
+++ b/pkgs/tools/typesetting/tex/polytable/builder.sh
diff --git a/pkgs/misc/tex/polytable/default.nix b/pkgs/tools/typesetting/tex/polytable/default.nix
index 71674d85b042..71674d85b042 100644
--- a/pkgs/misc/tex/polytable/default.nix
+++ b/pkgs/tools/typesetting/tex/polytable/default.nix
diff --git a/pkgs/misc/tex/tetex/default.nix b/pkgs/tools/typesetting/tex/tetex/default.nix
index 5e0fb38c3bd5..5e0fb38c3bd5 100644
--- a/pkgs/misc/tex/tetex/default.nix
+++ b/pkgs/tools/typesetting/tex/tetex/default.nix
diff --git a/pkgs/misc/tex/tetex/environment.patch b/pkgs/tools/typesetting/tex/tetex/environment.patch
index 6e652849b773..6e652849b773 100644
--- a/pkgs/misc/tex/tetex/environment.patch
+++ b/pkgs/tools/typesetting/tex/tetex/environment.patch
diff --git a/pkgs/misc/tex/tetex/getline.patch b/pkgs/tools/typesetting/tex/tetex/getline.patch
index c82c1b3ac360..c82c1b3ac360 100644
--- a/pkgs/misc/tex/tetex/getline.patch
+++ b/pkgs/tools/typesetting/tex/tetex/getline.patch
diff --git a/pkgs/misc/tex/tetex/setup-hook.sh b/pkgs/tools/typesetting/tex/tetex/setup-hook.sh
index d79c4fae4196..d79c4fae4196 100644
--- a/pkgs/misc/tex/tetex/setup-hook.sh
+++ b/pkgs/tools/typesetting/tex/tetex/setup-hook.sh
diff --git a/pkgs/misc/tex/tex4ht/default.nix b/pkgs/tools/typesetting/tex/tex4ht/default.nix
index 90d134fcd4e7..90d134fcd4e7 100644
--- a/pkgs/misc/tex/tex4ht/default.nix
+++ b/pkgs/tools/typesetting/tex/tex4ht/default.nix
diff --git a/pkgs/misc/tex/texlive/aggregate.nix b/pkgs/tools/typesetting/tex/texlive/aggregate.nix
index 1723f4819062..1723f4819062 100644
--- a/pkgs/misc/tex/texlive/aggregate.nix
+++ b/pkgs/tools/typesetting/tex/texlive/aggregate.nix
diff --git a/pkgs/misc/tex/texlive/beamer.nix b/pkgs/tools/typesetting/tex/texlive/beamer.nix
index 5ff2c89316a1..5ff2c89316a1 100644
--- a/pkgs/misc/tex/texlive/beamer.nix
+++ b/pkgs/tools/typesetting/tex/texlive/beamer.nix
diff --git a/pkgs/misc/tex/texlive/cm-super.nix b/pkgs/tools/typesetting/tex/texlive/cm-super.nix
index 4f15afdc3814..4f15afdc3814 100644
--- a/pkgs/misc/tex/texlive/cm-super.nix
+++ b/pkgs/tools/typesetting/tex/texlive/cm-super.nix
diff --git a/pkgs/misc/tex/texlive/context.nix b/pkgs/tools/typesetting/tex/texlive/context.nix
index b502b0f2108a..b502b0f2108a 100644
--- a/pkgs/misc/tex/texlive/context.nix
+++ b/pkgs/tools/typesetting/tex/texlive/context.nix
diff --git a/pkgs/misc/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index 69fb5d7e415f..69fb5d7e415f 100644
--- a/pkgs/misc/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
diff --git a/pkgs/misc/tex/texlive/extra.nix b/pkgs/tools/typesetting/tex/texlive/extra.nix
index 598bdd08aef5..598bdd08aef5 100644
--- a/pkgs/misc/tex/texlive/extra.nix
+++ b/pkgs/tools/typesetting/tex/texlive/extra.nix
diff --git a/pkgs/misc/tex/texlive/moderncv.nix b/pkgs/tools/typesetting/tex/texlive/moderncv.nix
index 9e3f68f36b10..9e3f68f36b10 100644
--- a/pkgs/misc/tex/texlive/moderncv.nix
+++ b/pkgs/tools/typesetting/tex/texlive/moderncv.nix
diff --git a/pkgs/misc/tex/texlive/pgf.nix b/pkgs/tools/typesetting/tex/texlive/pgf.nix
index fac520290f00..fac520290f00 100644
--- a/pkgs/misc/tex/texlive/pgf.nix
+++ b/pkgs/tools/typesetting/tex/texlive/pgf.nix
diff --git a/pkgs/misc/tex/texlive/setup-hook.sh b/pkgs/tools/typesetting/tex/texlive/setup-hook.sh
index d79c4fae4196..d79c4fae4196 100644
--- a/pkgs/misc/tex/texlive/setup-hook.sh
+++ b/pkgs/tools/typesetting/tex/texlive/setup-hook.sh
diff --git a/pkgs/misc/tex/texlive/xcolor.nix b/pkgs/tools/typesetting/tex/texlive/xcolor.nix
index 4e8d5eeb30b3..4e8d5eeb30b3 100644
--- a/pkgs/misc/tex/texlive/xcolor.nix
+++ b/pkgs/tools/typesetting/tex/texlive/xcolor.nix
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a234cb8b6142..5bd327de7bd2 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -363,6 +363,8 @@ let
 
   aircrackng = callPackage ../tools/networking/aircrack-ng { };
 
+  analog = callPackage ../tools/admin/analog {};
+
   archivemount = callPackage ../tools/filesystems/archivemount { };
 
   asymptote = builderDefsPackage ../tools/graphics/asymptote {
@@ -678,6 +680,8 @@ let
 
   flvstreamer = callPackage ../tools/networking/flvstreamer { };
 
+  libbsd = callPackage ../development/libraries/libbsd { };
+
   flvtool2 = callPackage ../tools/video/flvtool2 { };
 
   fontforge = callPackage ../tools/misc/fontforge { };
@@ -1251,7 +1255,7 @@ let
 
   pwgen = callPackage ../tools/security/pwgen { };
 
-  pydb = callPackage ../tools/pydb { };
+  pydb = callPackage ../development/tools/pydb { };
 
   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
 
@@ -3034,6 +3038,8 @@ let
   gnumake380 = callPackage ../development/tools/build-managers/gnumake-3.80 { };
   gnumake381 = callPackage ../development/tools/build-managers/gnumake/3.81.nix { };
 
+  gob2 = callPackage ../development/tools/misc/gob2 { };
+
   gradle = callPackage ../development/tools/build-managers/gradle { };
 
   gperf = callPackage ../development/tools/misc/gperf { };
@@ -3297,8 +3303,7 @@ let
 
   clanlib = callPackage ../development/libraries/clanlib { };
 
-  clapack = callPackage ../development/libraries/clapack {
-  };
+  clapack = callPackage ../development/libraries/clapack { };
 
   classads = callPackage ../development/libraries/classads { };
 
@@ -3682,6 +3687,9 @@ let
     guileBindings = getConfig ["gnutls" "guile"] true;
   };
 
+  gnutls_without_guile = gnutls.override { guileBindings = false; };
+  gnutls2_without_guile = gnutls2.override { guileBindings = false; };
+
   gpgme = callPackage ../development/libraries/gpgme { };
 
   grantlee = callPackage ../development/libraries/grantlee { };
@@ -3702,35 +3710,30 @@ let
 
   gtkmathview = callPackage ../development/libraries/gtkmathview { };
 
-  gtkLibs = recurseIntoAttrs pkgs.gtkLibs224;
-
-  inherit (pkgs.gtkLibs) glib gtk pango cairo gdk_pixbuf;
-
-  gtkLibs224 = let callPackage = pkgs.newScope pkgs.gtkLibs224; in {
-
-    glib = callPackage ../development/libraries/glib/2.28.x.nix { };
+  gtkLibs = {
+    inherit (pkgs) glib glibmm atk atkmm cairo pango pangomm gdk_pixbuf gtk
+      gtkmm;
+  };
 
-    glibmm = callPackage ../development/libraries/glibmm/2.28.x.nix { };
+  glib = callPackage ../development/libraries/glib/2.28.x.nix { };
 
-    atk = callPackage ../development/libraries/atk/2.2.x.nix { };
+  glibmm = callPackage ../development/libraries/glibmm/2.28.x.nix { };
 
-    atkmm = callPackage ../development/libraries/atkmm/2.22.x.nix { };
+  atk = callPackage ../development/libraries/atk/2.2.x.nix { };
 
-    cairo = callPackage ../development/libraries/cairo { };
+  atkmm = callPackage ../development/libraries/atkmm/2.22.x.nix { };
 
-    pango = callPackage ../development/libraries/pango/1.28.x.nix { };
+  cairo = callPackage ../development/libraries/cairo { };
 
-    pangomm = callPackage ../development/libraries/pangomm/2.28.x.nix { };
+  pango = callPackage ../development/libraries/pango/1.28.x.nix { };
 
-    gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf/2.24.x.nix { };
+  pangomm = callPackage ../development/libraries/pangomm/2.28.x.nix { };
 
-    gtk = callPackage ../development/libraries/gtk+/2.24.x.nix { };
+  gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf/2.24.x.nix { };
 
-    gtkmm = callPackage ../development/libraries/gtkmm/2.24.x.nix { };
+  gtk = callPackage ../development/libraries/gtk+/2.24.x.nix { };
 
-    gob2 = callPackage ../development/tools/misc/gob2 { };
-
-  };
+  gtkmm = callPackage ../development/libraries/gtkmm/2.24.x.nix { };
 
   gtkLibs3x = let callPackage = newScope pkgs.gtkLibs3x; in {
     glib = callPackage ../development/libraries/glib/2.30.x.nix { };
@@ -5277,6 +5280,8 @@ let
 
   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
 
+  microcode2ucode = callPackage ../os-specific/linux/microcode/converter.nix { };
+
   microcodeIntel = callPackage ../os-specific/linux/microcode/intel.nix { };
 
   bcm43xx = callPackage ../os-specific/linux/firmware/bcm43xx { };
@@ -5392,6 +5397,8 @@ let
 
   hwdata = callPackage ../os-specific/linux/hwdata { };
 
+  i7z = callPackage ../os-specific/linux/i7z { };
+
   ifplugd = callPackage ../os-specific/linux/ifplugd { };
 
   iotop = callPackage ../os-specific/linux/iotop { };
@@ -5873,6 +5880,8 @@ let
       inherit (gtkLibs) gtkmm;
     };
 
+    frandom = callPackage ../os-specific/linux/frandom { };
+
     iscsitarget = callPackage ../os-specific/linux/iscsitarget { };
 
     iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
@@ -6808,6 +6817,8 @@ let
 
   fossil = callPackage ../applications/version-management/fossil { };
 
+  goldendict = callPackage ../applications/misc/goldendict { };
+
   grass = import ../applications/misc/grass {
     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
       libXaw libXrender;
@@ -6865,6 +6876,13 @@ let
 
   firefox100Wrapper = wrapFirefox { browser = firefox100Pkgs.firefox; };
 
+  firefox11Pkgs = callPackage ../applications/networking/browsers/firefox/11.0.nix {
+    inherit (gtkLibs) gtk pango;
+    inherit (gnome) libIDL;
+  };
+
+  firefox11Wrapper = lowPrio (wrapFirefox { browser = firefox11Pkgs.firefox; });
+
   flac = callPackage ../applications/audio/flac { };
 
   flashplayer = flashplayer11;
@@ -6924,7 +6942,7 @@ let
   gitSVN = gitAndTools.gitSVN;
 
   giv = callPackage ../applications/graphics/giv {
-    inherit (gtkLibs) gdk_pixbuf gtk gob2;
+    inherit (gtkLibs) gdk_pixbuf gtk;
     pcre = pcre.override { unicodeSupport = true; };
   };
 
@@ -7684,6 +7702,8 @@ let
 
   virtualgl = callPackage ../tools/X11/virtualgl { };
 
+  bumblebee = callPackage ../tools/X11/bumblebee { };
+
   vkeybd = callPackage ../applications/audio/vkeybd {
     inherit (xlibs) libX11;
   };
@@ -8499,7 +8519,7 @@ let
 
   ataripp = callPackage ../misc/emulators/atari++ { };
 
-  auctex = callPackage ../misc/tex/auctex { };
+  auctex = callPackage ../tools/typesetting/tex/auctex { };
 
   busybox = callPackage ../misc/busybox {
     enableStatic = true;
@@ -8517,7 +8537,7 @@ let
 
   darcnes = callPackage ../misc/emulators/darcnes { };
 
-  dblatex = callPackage ../misc/tex/dblatex { };
+  dblatex = callPackage ../tools/typesetting/tex/dblatex { };
 
   dosbox = callPackage ../misc/emulators/dosbox { };
 
@@ -8573,7 +8593,7 @@ let
 
   keynav = callPackage ../tools/X11/keynav { };
 
-  lazylist = callPackage ../misc/tex/lazylist { };
+  lazylist = callPackage ../tools/typesetting/tex/lazylist { };
 
   lilypond = callPackage ../misc/lilypond {
     inherit (gtkLibs) pango;
@@ -8632,11 +8652,11 @@ let
 
   DisnixWebService = callPackage ../tools/package-management/disnix/DisnixWebService { };
 
-  latex2html = callPackage ../misc/tex/latex2html/default.nix {
+  latex2html = callPackage ../tools/typesetting/tex/latex2html/default.nix {
     tex = tetex;
   };
 
-  lkproof = callPackage ../misc/tex/lkproof { };
+  lkproof = callPackage ../tools/typesetting/tex/lkproof { };
 
   mysqlWorkbench = newScope gnome ../applications/misc/mysql-workbench {
     lua = lua5;
@@ -8651,13 +8671,13 @@ let
 
   # Keep the old PGF since some documents don't render properly with
   # the new one.
-  pgf1 = callPackage ../misc/tex/pgf/1.x.nix { };
+  pgf1 = callPackage ../tools/typesetting/tex/pgf/1.x.nix { };
 
-  pgf2 = callPackage ../misc/tex/pgf/2.x.nix { };
+  pgf2 = callPackage ../tools/typesetting/tex/pgf/2.x.nix { };
 
   pjsip = callPackage ../applications/networking/pjsip { };
 
-  polytable = callPackage ../misc/tex/polytable { };
+  polytable = callPackage ../tools/typesetting/tex/polytable { };
 
   uae = callPackage ../misc/emulators/uae { };
 
@@ -8687,13 +8707,13 @@ let
 
   splix = callPackage ../misc/cups/drivers/splix { };
 
-  tetex = callPackage ../misc/tex/tetex { libpng = libpng12; };
+  tetex = callPackage ../tools/typesetting/tex/tetex { libpng = libpng12; };
 
-  tex4ht = callPackage ../misc/tex/tex4ht { };
+  tex4ht = callPackage ../tools/typesetting/tex/tex4ht { };
 
-  texFunctions = import ../misc/tex/nix pkgs;
+  texFunctions = import ../tools/typesetting/tex/nix pkgs;
 
-  texLive = builderDefsPackage (import ../misc/tex/texlive) {
+  texLive = builderDefsPackage (import ../tools/typesetting/tex/texlive) {
     inherit builderDefs zlib bzip2 ncurses libpng ed
       gd t1lib freetype icu perl expat curl
       libjpeg bison python fontconfig flex;
@@ -8721,35 +8741,35 @@ let
   Just installing a few packages doesn't work.
   */
   texLiveAggregationFun =
-    (builderDefsPackage (import ../misc/tex/texlive/aggregate.nix));
+    (builderDefsPackage (import ../tools/typesetting/tex/texlive/aggregate.nix));
 
-  texDisser = callPackage ../misc/tex/disser {};
+  texDisser = callPackage ../tools/typesetting/tex/disser {};
 
-  texLiveContext = builderDefsPackage (import ../misc/tex/texlive/context.nix) {
+  texLiveContext = builderDefsPackage (import ../tools/typesetting/tex/texlive/context.nix) {
     inherit texLive;
   };
 
-  texLiveExtra = builderDefsPackage (import ../misc/tex/texlive/extra.nix) {
+  texLiveExtra = builderDefsPackage (import ../tools/typesetting/tex/texlive/extra.nix) {
     inherit texLive;
   };
 
-  texLiveCMSuper = builderDefsPackage (import ../misc/tex/texlive/cm-super.nix) {
+  texLiveCMSuper = builderDefsPackage (import ../tools/typesetting/tex/texlive/cm-super.nix) {
     inherit texLive;
   };
 
-  texLiveLatexXColor = builderDefsPackage (import ../misc/tex/texlive/xcolor.nix) {
+  texLiveLatexXColor = builderDefsPackage (import ../tools/typesetting/tex/texlive/xcolor.nix) {
     inherit texLive;
   };
 
-  texLivePGF = builderDefsPackage (import ../misc/tex/texlive/pgf.nix) {
+  texLivePGF = builderDefsPackage (import ../tools/typesetting/tex/texlive/pgf.nix) {
     inherit texLiveLatexXColor texLive;
   };
 
-  texLiveBeamer = builderDefsPackage (import ../misc/tex/texlive/beamer.nix) {
+  texLiveBeamer = builderDefsPackage (import ../tools/typesetting/tex/texlive/beamer.nix) {
     inherit texLiveLatexXColor texLivePGF texLive;
   };
 
-  texLiveModerncv = builderDefsPackage (import ../misc/tex/texlive/moderncv.nix) {
+  texLiveModerncv = builderDefsPackage (import ../tools/typesetting/tex/texlive/moderncv.nix) {
     inherit texLive unzip;
   };
 
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 044a3c93d839..f29eaeca9e2e 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -137,12 +137,12 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     inherit (self) cabal ghc;
     cgi          = self.cgi_3001_1_7_4;         # 7.4.1 ok
     fgl          = self.fgl_5_4_2_4;            # 7.4.1 ok
-    GLUT         = self.GLUT_2_1_2_1;           # 7.4.1 fails
-    haskellSrc   = self.haskellSrc_1_0_1_5;     # 7.4.1 fails
+    GLUT         = self.GLUT_2_3_0_0;           # 7.4.1 ok
+    haskellSrc   = self.haskellSrc_1_0_1_5;     # 7.4.1 ok
     html         = self.html_1_0_1_2;           # 7.4.1 ok
     HUnit        = self.HUnit_1_2_2_3;          # 7.4.1 ok
     network      = self.network_2_3_0_10;       # 7.4.1 ok
-    OpenGL       = self.OpenGL_2_2_3_0;         # 7.4.1 fails
+    OpenGL       = self.OpenGL_2_5_0_0;         # 7.4.1 ok
     parallel     = self.parallel_3_2_0_2;       # 7.4.1 ok
     parsec       = self.parsec_3_1_2;           # 7.4.1 ok
     QuickCheck   = self.QuickCheck_2_4_2;       # 7.4.1 ok
@@ -160,7 +160,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
     random       = self.random_1_0_1_1;         # 7.4.1 ok
     cabalInstall = self.cabalInstall_0_10_2;    # 7.4.1 fails
     alex         = self.alex_3_0_1;             # 7.4.1 ok
-    happy        = self.happy_1_18_8;           # 7.4.1 fails
+    happy        = self.happy_1_18_9;           # 7.4.1 ok
     haddock      = self.haddock_2_9_2;          # 7.4.1 fails
   };
 
@@ -738,8 +738,11 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   GLUT_2_2_2_1 = callPackage ../development/libraries/haskell/GLUT/2.2.2.1.nix {
     OpenGL = self.OpenGL_2_4_0_2;
   };
+  GLUT_2_3_0_0 = callPackage ../development/libraries/haskell/GLUT/2.3.0.0.nix {
+    OpenGL = self.OpenGL_2_5_0_0;
+  };
   GLUT22 = self.GLUT_2_2_2_1;
-  GLUT = self.GLUT_2_1_1_2;
+  GLUT = self.GLUT_2_3_0_0;
 
   gtk = callPackage ../development/libraries/haskell/gtk {
     inherit (pkgs.gtkLibs) gtk;
@@ -1048,8 +1051,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   OpenGL_2_2_1_1 = callPackage ../development/libraries/haskell/OpenGL/2.2.1.1.nix {};
   OpenGL_2_2_3_0 = callPackage ../development/libraries/haskell/OpenGL/2.2.3.0.nix {};
   OpenGL_2_4_0_2 = callPackage ../development/libraries/haskell/OpenGL/2.4.0.2.nix {};
+  OpenGL_2_5_0_0 = callPackage ../development/libraries/haskell/OpenGL/2.5.0.0.nix {};
   OpenGL24 = self.OpenGL_2_4_0_2;
-  OpenGL = self.OpenGL_2_2_1_1;
+  OpenGL = self.OpenGL_2_5_0_0;
 
   OpenGLRaw = callPackage ../development/libraries/haskell/OpenGLRaw {};
 
@@ -1057,7 +1061,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   pathPieces_0_1_0 = callPackage ../development/libraries/haskell/path-pieces/0.1.0.nix {};
   pathPieces = self.pathPieces_0_1_0;
 
-  pandoc = callPackage ../development/libraries/haskell/pandoc {};
+  pandoc = callPackage ../development/libraries/haskell/pandoc {
+    testFramework = self.testFramework_0_4_2_2;
+  };
 
   pandocTypes = callPackage ../development/libraries/haskell/pandoc-types {};
 
@@ -1315,11 +1321,15 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   tagsoup_0_10_1 = callPackage ../development/libraries/haskell/tagsoup/0.10.1nix {};
 
+  temporary = callPackage ../development/libraries/haskell/temporary {};
+
   Tensor = callPackage ../development/libraries/haskell/Tensor {};
 
   terminfo = callPackage ../development/libraries/haskell/terminfo {};
 
-  testFramework = callPackage ../development/libraries/haskell/test-framework {};
+  testFramework_0_4_2_2 = callPackage ../development/libraries/haskell/test-framework/0.4.2.2.nix {};
+  testFramework_0_5 = callPackage ../development/libraries/haskell/test-framework/0.5.nix {};
+  testFramework = self.testFramework_0_5;
 
   testFrameworkHunit = callPackage ../development/libraries/haskell/test-framework-hunit {};
 
@@ -1573,7 +1583,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   happy_1_18_5 = callPackage ../development/tools/parsing/happy/1.18.5.nix {};
   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 = self.happy_1_18_8;
+  happy_1_18_9 = callPackage ../development/tools/parsing/happy/1.18.9.nix {};
+  happy = self.happy_1_18_9;
 
   happyMeta = callPackage ../development/tools/haskell/happy-meta {};