summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2011-10-26 09:15:25 +0000
committerPeter Simons <simons@cryp.to>2011-10-26 09:15:25 +0000
commitdfd063cf12e15fb6973064de397b3f04f30dd370 (patch)
tree42d49c72148649f067a11ddf38029347f8778609 /pkgs
parent706b80c28223486d84ae1e809323fc553b271438 (diff)
parent892889cf358e7858fee32e1c7fc83c53650ea706 (diff)
downloadnixlib-dfd063cf12e15fb6973064de397b3f04f30dd370.tar
nixlib-dfd063cf12e15fb6973064de397b3f04f30dd370.tar.gz
nixlib-dfd063cf12e15fb6973064de397b3f04f30dd370.tar.bz2
nixlib-dfd063cf12e15fb6973064de397b3f04f30dd370.tar.lz
nixlib-dfd063cf12e15fb6973064de397b3f04f30dd370.tar.xz
nixlib-dfd063cf12e15fb6973064de397b3f04f30dd370.tar.zst
nixlib-dfd063cf12e15fb6973064de397b3f04f30dd370.zip
synchronize with trunk
svn path=/nixpkgs/branches/stdenv-updates/; revision=30027
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/spotify/default.nix10
-rw-r--r--pkgs/applications/graphics/darktable/default.nix25
-rw-r--r--pkgs/applications/graphics/inkscape/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix12
-rw-r--r--pkgs/applications/networking/netperf/default.nix11
-rw-r--r--pkgs/applications/networking/p2p/mldonkey/default.nix4
-rw-r--r--pkgs/applications/networking/yafc/default.nix1
-rw-r--r--pkgs/applications/version-management/fossil/default.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/fast-export/default.nix15
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix10
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix9
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix6
-rw-r--r--pkgs/development/compilers/gcc-4.4/default.nix2
-rw-r--r--pkgs/development/compilers/gcc-4.4/sources.nix14
-rw-r--r--pkgs/development/compilers/llvm/clang-system-llvm-libs.patch42
-rw-r--r--pkgs/development/compilers/llvm/clang-tblgen.patch134
-rw-r--r--pkgs/development/compilers/llvm/clang.nix63
-rw-r--r--pkgs/development/compilers/llvm/default.nix58
-rw-r--r--pkgs/development/interpreters/guile/default.nix9
-rw-r--r--pkgs/development/libraries/gnutls/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/ConfigFile/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/NanoProlog/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/WebBits/2.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/bytestring-nums/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cabal-file-th/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/clientsession/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cprng-aes/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/crypto-api/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cryptohash/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/enumerator/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/gloss/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/haskeline/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hledger-web/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/hmatrix/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/hp2any-core/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/nixos-types/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/skein/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/vty/4.6.0.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/vty/default.nix (renamed from pkgs/development/libraries/haskell/vty/4.7.0.4.nix)0
-rw-r--r--pkgs/development/libraries/haskell/yap/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-auth/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/yesod-form/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-static/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/yesod/default.nix4
-rw-r--r--pkgs/development/libraries/opendkim/default.nix4
-rw-r--r--pkgs/development/libraries/yajl/default.nix8
-rw-r--r--pkgs/development/perl-modules/net-amazon-ec2-ipv6.patch60
-rw-r--r--pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch11
-rw-r--r--pkgs/development/python-modules/boto-1.9-python-2.7.patch19
-rw-r--r--pkgs/development/tools/haskell/cabal2nix/default.nix4
-rw-r--r--pkgs/games/alienarena/default.nix32
-rw-r--r--pkgs/os-specific/linux/firmware/bcm43xx/default.nix34
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.0.nix11
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.1.nix16
-rw-r--r--pkgs/os-specific/linux/klibc/default.nix31
-rw-r--r--pkgs/os-specific/linux/klibc/make382.patch35
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/default.nix4
-rw-r--r--pkgs/os-specific/linux/regionset/default.nix18
-rw-r--r--pkgs/os-specific/linux/v86d/default.nix32
-rw-r--r--pkgs/servers/mail/dovecot/2.0.nix20
-rw-r--r--pkgs/servers/samba/default.nix10
-rw-r--r--pkgs/servers/samba/readlink.patch217
-rw-r--r--pkgs/stdenv/adapters.nix1
-rw-r--r--pkgs/tools/misc/qjoypad/default.nix38
-rw-r--r--pkgs/tools/networking/mu0/default.nix25
-rw-r--r--pkgs/tools/package-management/disnix/activation-scripts/default.nix6
-rw-r--r--pkgs/tools/package-management/disnix/default.nix6
-rw-r--r--pkgs/tools/package-management/disnix/disnixos/default.nix8
-rw-r--r--pkgs/tools/system/smartmontools/default.nix4
-rw-r--r--pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix6
-rw-r--r--pkgs/top-level/all-packages.nix44
-rw-r--r--pkgs/top-level/haskell-packages.nix86
-rw-r--r--pkgs/top-level/perl-packages.nix9
-rw-r--r--pkgs/top-level/platforms.nix1
-rw-r--r--pkgs/top-level/python-packages.nix13
80 files changed, 1163 insertions, 320 deletions
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 3a15d32aa7f5..38eb51b93dba 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -2,7 +2,7 @@
 
 assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
 
-let version = "0.6.1.309"; in
+let version = "0.6.2.291"; in
 
 stdenv.mkDerivation {
   name = "spotify-${version}";
@@ -10,13 +10,13 @@ stdenv.mkDerivation {
   src =
     if stdenv.system == "i686-linux" then 
       fetchurl {
-        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.gb871a7d-1_i386.deb";
-        sha256 = "01bavmv78vd3lxsinbls72v2sj8czbcwzdg6sc2f9yd5g7snb3im";
+        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.gcccc1f5.116-1_i386.deb";
+        sha256 = "164ka9xry9nbnv77w71kzi7bjidlmccw8wnn4fyzavi8pbrpmj08";
       }
     else if stdenv.system == "x86_64-linux" then 
       fetchurl {
-        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.gb871a7d-1_amd64.deb";
-        sha256 = "13ki1pcpna7f5sxf1j2axww95c4kqhj0r1d11y98mfvzxxjqimjs";
+        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.gcccc1f5.116-1_amd64.deb";
+        sha256 = "08snnpqd5ldiqv98pwx3fjrhdlwp4arbgda9xnsy92wfk0s85lv8";
       }
     else throw "Spotify not supported on this platform.";
 
diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
index c0ebb95a67a2..b0452bba115d 100644
--- a/pkgs/applications/graphics/darktable/default.nix
+++ b/pkgs/applications/graphics/darktable/default.nix
@@ -1,9 +1,11 @@
-{ stdenv, fetchurl,
-  GConf, atk, cairo, cmake, curl, dbus_glib, exiv2, glib,
-  gnome_keyring, gphoto2, gtk, ilmbase, intltool, lcms, lcms2,
-  lensfun, libXau, libXdmcp, libexif, libglade, libgphoto2, libjpeg,
-  libpng, libpthreadstubs, libraw1394, librsvg, libtiff, libxcb,
-  openexr, pixman, pkgconfig, sqlite}:
+{ stdenv, fetchurl
+, GConf, atk, cairo, cmake, curl, dbus_glib, exiv2, glib
+, gnome_keyring, gphoto2, gtk, ilmbase, intltool, lcms, lcms2
+, lensfun, libXau, libXdmcp, libexif, libglade, libgphoto2, libjpeg
+, libpng, libpthreadstubs, libraw1394, librsvg, libtiff, libxcb
+, openexr, pixman, pkgconfig, sqlite }:
+
+assert stdenv ? glibc;
 
 stdenv.mkDerivation rec {
   version = "0.9.1";
@@ -14,11 +16,12 @@ stdenv.mkDerivation rec {
     sha256 = "b687a5f1b2a6c8aa230c1dc3ef83bf74a103e3ebe1c61cdea95a612a7375f21e";
   };
 
-  buildInputs = [
-    GConf atk cairo cmake curl dbus_glib exiv2 glib gnome_keyring gtk
-    ilmbase intltool lcms lcms2 lensfun libXau libXdmcp libexif
-    libglade libgphoto2 libjpeg libpng libpthreadstubs libraw1394
-    librsvg libtiff libxcb openexr pixman pkgconfig sqlite];
+  buildInputs =
+    [ GConf atk cairo cmake curl dbus_glib exiv2 glib gnome_keyring gtk
+      ilmbase intltool lcms lcms2 lensfun libXau libXdmcp libexif
+      libglade libgphoto2 libjpeg libpng libpthreadstubs libraw1394
+      librsvg libtiff libxcb openexr pixman pkgconfig sqlite
+    ];
 
   preConfigure = ''
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gtk}/include/gtk-2.0"
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index 0da9bf0b41c0..19a2346802c4 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -4,14 +4,14 @@
 , gsl, python, pyxml, lxml, poppler }:
 
 stdenv.mkDerivation rec {
-  name = "inkscape-0.48.1";
+  name = "inkscape-0.48.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/inkscape/${name}.tar.bz2";
-    sha256 = "11mvwil787pj3kx3qvjqvd6z5hlk40i6g95g4vs52hrp2ifs9ga4";
+    sha256 = "10v7ixdz7f8vgk2wv0m81zli9p0f446cm1f4aqlvni1ndsx44fi2";
   };
 
-  patches = [ ./configure-python-libs.patch ]; 
+  patches = [ ./configure-python-libs.patch ];
 
   propagatedBuildInputs = [
     # Python is used at run-time to execute scripts, e.g., those from
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
index 6cdd175573d4..ad6867ab5be5 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
@@ -53,9 +53,9 @@ let
         url = http://download.macromedia.com/pub/labs/flashplayer10/flashplayer_square_p2_32bit_debug_linux_092710.tar.gz;
         sha256 = "11w3mxa39l4mnlsqzlwbdh1sald549afyqbx2kbid7in5qzamlcc";
       } else {
-        version = "10.3.183.7";
+        version = "10.3.183.10";
         url = http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz;
-        sha256 = "166ipldmd03psy68xxirmdd4p591vjnffpv2l97yg1bbkn5h2pj6";
+        sha256 = "0fj51dg0aa813b44yn8dvmmvw4qwi8vbi0x8n1bcqrcld3sbpmfz";
       }
     else throw "Flash Player is not supported on this platform";
 
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index 02870c70f646..5364bd445e67 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -1,11 +1,13 @@
-{ stdenv, fetchurl, ncurses, which, perl, gpgme
+{ stdenv, fetchurl, ncurses, which, perl
 , sslSupport ? true
 , imapSupport ? true
 , headerCache ? true
 , saslSupport ? true
+, gpgmeSupport ? true
 , gdbm ? null
 , openssl ? null
 , cyrus_sasl ? null
+, gpgme ? null
 }:
 
 assert headerCache -> gdbm != null;
@@ -21,17 +23,20 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    ncurses which perl gpgme
+    ncurses which perl
     (if headerCache then gdbm else null)
     (if sslSupport then openssl else null)
     (if saslSupport then cyrus_sasl else null)
+    (if gpgmeSupport then gpgme else null)
   ];
   
   configureFlags = [
     "--with-mailpath=" "--enable-smtp"
 
     # This allows calls with "-d N", that output debug info into ~/.muttdebug*
-    "--enable-debug" "--enable-pop" "--enable-imap" "--enable-gpgme"
+    "--enable-debug"
+
+    "--enable-pop" "--enable-imap"
 
     # The next allows building mutt without having anything setgid
     # set by the installer, and removing the need for the group 'mail'
@@ -41,6 +46,7 @@ stdenv.mkDerivation rec {
     (if sslSupport then "--with-ssl" else "--without-ssl")
     (if imapSupport then "--enable-imap" else "--disable-imap")
     (if saslSupport then "--with-sasl" else "--without-sasl")
+    (if gpgmeSupport then "--enable-gpgme" else "--disable-gpgme")
   ];
 
   meta = {
diff --git a/pkgs/applications/networking/netperf/default.nix b/pkgs/applications/networking/netperf/default.nix
new file mode 100644
index 000000000000..7ef6a86c5eb7
--- /dev/null
+++ b/pkgs/applications/networking/netperf/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "netperf-2.5.0";
+
+  src = fetchurl {
+    url = "ftp://ftp.netperf.org/netperf/${name}.tar.bz2";
+    sha256 = "1l06bb99b4wfnmq247b8rvp4kn3w6bh1m46ri4d74z22li7br545";
+  };
+}
+
diff --git a/pkgs/applications/networking/p2p/mldonkey/default.nix b/pkgs/applications/networking/p2p/mldonkey/default.nix
index 541c0e105931..98abc0a3db7a 100644
--- a/pkgs/applications/networking/p2p/mldonkey/default.nix
+++ b/pkgs/applications/networking/p2p/mldonkey/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, ocaml, zlib, bzip2, ncurses, file, gd, libpng }:
 
 stdenv.mkDerivation (rec {
-  name = "mldonkey-3.0.7";
+  name = "mldonkey-3.1.0";
   
   src = fetchurl {
     url = "mirror://sourceforge/mldonkey/${name}.tar.bz2";
-    sha256 = "1m5cfx79jiym93bx789lqc1bmwrkz1b1jilhga7d994jsjcw6c2n";
+    sha256 = "02038nhh6lbb714ariy2xw1vgfycr1w750zplbgwk5pa3cm163zx";
   };
   
   meta = {
diff --git a/pkgs/applications/networking/yafc/default.nix b/pkgs/applications/networking/yafc/default.nix
index ae3ce06ca50f..a6c3c43417e0 100644
--- a/pkgs/applications/networking/yafc/default.nix
+++ b/pkgs/applications/networking/yafc/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation {
   meta = {
     description = "ftp/sftp client with readline, autocompletion and bookmarks";
     homepage = http://yafc.sourceforge.net;
+    license = "GPLv2+";
   };
 }
diff --git a/pkgs/applications/version-management/fossil/default.nix b/pkgs/applications/version-management/fossil/default.nix
index 6bf401b895ac..29aa9843fbea 100644
--- a/pkgs/applications/version-management/fossil/default.nix
+++ b/pkgs/applications/version-management/fossil/default.nix
@@ -1,8 +1,8 @@
-{stdenv, fetchurl, zlib, openssl, tcl}:
+{stdenv, fetchurl, zlib, openssl, tcl, readline, sqlite}:
 
 let
-  version = "1.19";
-  filedate = "20110901182519";
+  version = "1.20";
+  filedate = "20111021125253";
 in
 
 stdenv.mkDerivation {
@@ -10,10 +10,10 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.fossil-scm.org/download/fossil-src-${filedate}.tar.gz";
-    sha256 = "14snmwjfl9xz52d8lfzsp4zciwfbi9fwk623bm5dxhn2fczzc960";
+    sha256 = "0m75kw77iray3kbjm1xfn8hr116fn11yv1wr7adcwy314cgj0vv3";
   };
 
-  buildInputs = [ zlib openssl ];
+  buildInputs = [ zlib openssl readline sqlite ];
   buildNativeInputs = [ tcl ];
 
   doCheck = true;
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 7513a7adbc78..6319c3592c66 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -3,7 +3,7 @@
 */
 args: with args; with pkgs;
 let
-  inherit (pkgs) stdenv fetchurl subversion;
+  inherit (pkgs) stdenv fetchgit fetchurl subversion;
 in
 rec {
 
@@ -48,8 +48,7 @@ rec {
   gitAnnex = lib.makeOverridable (import ./git-annex) {
     inherit stdenv fetchurl libuuid rsync findutils curl perl git ikiwiki which;
     inherit (haskellPackages) ghc MissingH utf8String pcreLight SHA dataenc
-      HTTP testpack monadControl hS3 mtl network hslogger hxt json;
-    QuickCheck2 = haskellPackages.QuickCheck_2_4_0_1;
+      HTTP testpack monadControl hS3 mtl network hslogger hxt json QuickCheck2;
   };
 
   qgit = import ./qgit {
@@ -92,8 +91,7 @@ rec {
   };
 
   gitFastExport = import ./fast-export {
-    inherit fetchurl sourceFromHead stdenv mercurial coreutils git makeWrapper
-      subversion;
+    inherit fetchgit stdenv mercurial coreutils git makeWrapper subversion;
   };
 
   git2cl = import ./git2cl {
diff --git a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
index ef633d87ca63..45860362433f 100644
--- a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
@@ -1,13 +1,14 @@
-args: with args;
+{stdenv, fetchgit, mercurial, coreutils, git, makeWrapper, subversion}:
+
 stdenv.mkDerivation {
   name = "fast-export";
 
-  # REGION AUTO UPDATE:     { name="git_fast_export"; type = "git"; url="git://repo.or.cz/hg2git.git"; }
-  src = sourceFromHead "git_fast_export-1464dabbff7fe42b9069e98869db40276d295ad6.tar.gz"
-               (fetchurl { url = "http://mawercer.de/~nix/repos/git_fast_export-1464dabbff7fe42b9069e98869db40276d295ad6.tar.gz"; sha256 = "c65b8607836794b250f5faeef5ec1bcbf40f0bfaeb39ccb600966deb6a40d755"; });
-  # END
+  src = fetchgit {
+    url = "git://repo.or.cz/fast-export.git";
+    rev = "refs/heads/master";
+  };
 
-  buildInputs =([mercurial.python mercurial makeWrapper subversion]);
+  buildInputs = [mercurial.python mercurial makeWrapper subversion];
 
   buildPhase="true"; # skip svn for now
 
@@ -24,7 +25,7 @@ stdenv.mkDerivation {
     mv *.py $l
     for p in $out/bin/*.sh; do
       wrapProgram $p \
-        --set PYTHONPATH "$(echo ${mercurial}/lib/python*/site-packages)" \
+        --prefix PYTHONPATH : "$(echo ${mercurial}/lib/python*/site-packages):$(echo ${mercurial.python}/lib/python*/site-packages)${stdenv.lib.concatMapStrings (x: ":$(echo ${x}/lib/python*/site-packages)") mercurial.pythonPackages}" \
         --prefix PATH : "$(dirname $(type -p python))":$l
     done
   '';
diff --git a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
index 848214b0fb9b..5fdf9f43bb16 100644
--- a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
@@ -4,14 +4,14 @@
 }:
 
 let
-  version = "3.20110915";
+  version = "3.20111011";
 in
 stdenv.mkDerivation {
   name = "git-annex-${version}";
 
   src = fetchurl {
     url = "http://ftp.de.debian.org/debian/pool/main/g/git-annex/git-annex_${version}.tar.gz";
-    sha256 = "d16c305c82b151ef6ce0c5cfa52a119240b66e02424aefc15a1f67392f976d47";
+    sha256 = "6bfd8ff6784d309bc20aaae38b0edd8f71ed44255b584093a881153d8a70c01c";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 1491b6f74178..eb5daae67e26 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -8,15 +8,15 @@
 }:
 
 let
+  version = "1.7.7";
   svn = subversionClient.override { perlBindings = true; };
 in
-
-stdenv.mkDerivation rec {
-  name = "git-1.7.6";
+stdenv.mkDerivation {
+  name = "git-${version}";
 
   src = fetchurl {
-    url = "mirror://kernel/software/scm/git/${name}.tar.bz2";
-    sha256 = "778795cece63cd758192378f3a999870cea290181b3a4c9de573c77192561082";
+    url = "http://git-core.googlecode.com/files/git-${version}.tar.gz";
+    sha256 = "1xkpyd6mff4m8kmk4vkwi7snr2ff2nmrmsa5hf9bk2a93v07p5ss";
   };
 
   patches = [ ./docbook2texi.patch ];
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index eca4dfea17ee..e263d7556c0b 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -1,15 +1,16 @@
 { stdenv, fetchurl, python, makeWrapper, docutils
-, guiSupport ? false, tk ? null, ssl }:
+, guiSupport ? false, tk ? null, ssl, curses }:
 
 stdenv.mkDerivation rec {
-  name = "mercurial-1.9";
+  name = "mercurial-1.9.2";
 
   src = fetchurl {
     url = "http://mercurial.selenic.com/release/${name}.tar.gz";
-    sha256 = "1q1307rv5cyv7qalwkampy1h2f92j4d46v4x9647ljljs8f4n7ki";
+    sha256 = "481309264d8528a871aab013068c48fa3a6072b016a4095a22230cfdfb8bb9aa";
   };
 
   inherit python; # pass it so that the same version can be used in hg2git
+  pythonPackages = [ ssl curses ];
 
   buildInputs = [ python makeWrapper docutils ];
 
@@ -31,7 +32,7 @@ stdenv.mkDerivation rec {
     ''
       for i in $(cd $out/bin && ls); do
         wrapProgram $out/bin/$i \
-          --prefix PYTHONPATH : "$(toPythonPath "$out ${ssl}")" \
+          --prefix PYTHONPATH : "$(toPythonPath "$out ${ssl} ${curses}")" \
           $WRAP_TK
       done
 
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index b8925f893034..cd52c1ce17cd 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -24,6 +24,9 @@ rec {
 
   # GNU (http://www.gnu.org/prep/ftp.html).
   gnu = [
+    # This one is the master repository, and thus it's always up-to-date.
+    http://ftp.gnu.org/pub/gnu/
+
     # This one redirects to a (supposedly) nearby and (supposedly) up-to-date
     # mirror.
     http://ftpmirror.gnu.org/
@@ -33,8 +36,6 @@ rec {
     ftp://mirror.cict.fr/gnu/
     ftp://ftp.cs.tu-berlin.de/pub/gnu/
     ftp://ftp.chg.ru/pub/gnu/
-
-    http://ftp.gnu.org/pub/gnu/
   ];
 
   # GCC.
@@ -99,6 +100,7 @@ rec {
     http://www.de.kernel.org/pub/
     http://ramses.wh2.tu-dresden.de/pub/mirrors/kernel.org/
     http://linux-kernel.uio.no/pub/
+    http://kernel.osuosl.org/pub/
   ];
 
   # Mirrors of ftp://ftp.kde.org/pub/kde/.
diff --git a/pkgs/development/compilers/gcc-4.4/default.nix b/pkgs/development/compilers/gcc-4.4/default.nix
index b08cf5bb8cf1..11c89c7eb6b9 100644
--- a/pkgs/development/compilers/gcc-4.4/default.nix
+++ b/pkgs/development/compilers/gcc-4.4/default.nix
@@ -31,7 +31,7 @@ assert langVhdl     -> gnat != null;
 
 with stdenv.lib;
 
-let version = "4.4.3";
+let version = "4.4.6";
     javaEcj = fetchurl {
       # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
       # `configure' time.
diff --git a/pkgs/development/compilers/gcc-4.4/sources.nix b/pkgs/development/compilers/gcc-4.4/sources.nix
index 351240e73ca3..357cc2634edc 100644
--- a/pkgs/development/compilers/gcc-4.4/sources.nix
+++ b/pkgs/development/compilers/gcc-4.4/sources.nix
@@ -1,26 +1,26 @@
 /* Automatically generated by `update-gcc.sh', do not edit.
-   For GCC 4.4.2.  */
+   For GCC 4.4.6.  */
 { fetchurl, optional, version, langC, langCC, langFortran, langJava, langAda }:
 
-assert version == "4.4.3";
+assert version == "4.4.6";
 optional /* langC */ true (fetchurl {
   url = "mirror://gcc/releases/gcc-${version}/gcc-core-${version}.tar.bz2";
-  sha256 = "0ml360nwkf95w0ykn19zlyxmdvvzpmrbxj2vfrn0k8i2pvk13wwj";
+  sha256 = "c2959820de3e42eee6b1d381586992f26430f0083b9a51db31d706080fc9b44a";
 }) ++
 optional langCC (fetchurl {
   url = "mirror://gcc/releases/gcc-${version}/gcc-g++-${version}.tar.bz2";
-  sha256 = "1s5zy8pfn4rgfm2l1dpfzrrdhi2l5zhphqk0h3gsbn1pdw751kkv";
+  sha256 = "6d5d2dacab9569472e4caa291abe94017a9b19574b9b0d866de7b04702634ddf";
 }) ++
 optional langFortran (fetchurl {
   url = "mirror://gcc/releases/gcc-${version}/gcc-fortran-${version}.tar.bz2";
-  sha256 = "0iivw5kgwxdlqamwgaw5zhw48jajsmg09fgynyxkrxsa702s74sw";
+  sha256 = "2b9998716a16b80f4cf843ce81da1cf58ce116e0b85422e3004ce4454e8ff923";
 }) ++
 optional langJava (fetchurl {
   url = "mirror://gcc/releases/gcc-${version}/gcc-java-${version}.tar.bz2";
-  sha256 = "13r0yxz6sif3i6sxh7b3fa5m1ygynvsg1bf6ssq6njp1fzp9a2kq";
+  sha256 = "7c8c12eac21d2a5c605ea4d9b7aa52e482354205b801bc93d62603b6f0956b35";
 }) ++
 optional langAda (fetchurl {
   url = "mirror://gcc/releases/gcc-${version}/gcc-ada-${version}.tar.bz2";
-  sha256 = "146jfkwgg7gdgfqnrm04133amk8k9vr51wc01rwp2bcjai9c3kk7";
+  sha256 = "771ef0e90abf61208ce84689bed15391ad249287e36a28e816d6a044035af0c6";
 }) ++
 []
diff --git a/pkgs/development/compilers/llvm/clang-system-llvm-libs.patch b/pkgs/development/compilers/llvm/clang-system-llvm-libs.patch
new file mode 100644
index 000000000000..0d82cf4017a0
--- /dev/null
+++ b/pkgs/development/compilers/llvm/clang-system-llvm-libs.patch
@@ -0,0 +1,42 @@
+diff -Naur llvm-2.9-orig/Makefile.rules llvm-2.9/Makefile.rules
+--- llvm-2.9-orig/Makefile.rules	2011-03-25 02:26:58.000000000 -0400
++++ llvm-2.9/Makefile.rules	2011-10-19 15:31:38.538674143 -0400
+@@ -941,7 +941,7 @@
+ 	@echo "*** llvm-config doesn't exist - rebuilding it."
+ 	@$(MAKE) -C $(PROJ_OBJ_ROOT)/tools/llvm-config
+ 
+-$(ToolDir)/$(strip $(TOOLNAME))$(EXEEXT): $(LLVM_CONFIG)
++$(ToolDir)/$(strip $(TOOLNAME))$(EXEEXT):
+ 
+ ifeq ($(ENABLE_SHARED), 1)
+ # We can take the "auto-import" feature to get rid of using dllimport.
+@@ -1137,7 +1137,7 @@
+ else
+ SharedLibKindMessage := "Shared Library"
+ endif
+-$(LibName.SO): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths) $(SharedLibDir)/.dir
++$(LibName.SO): $(ObjectsO) $(ProjLibsPaths) $(SharedLibDir)/.dir
+ 	$(Echo) Linking $(BuildMode) $(SharedLibKindMessage) \
+ 	  $(notdir $@)
+ 	$(Verb) $(Link) $(SharedLinkOptions) -o $@ $(ObjectsO) \
+@@ -1411,7 +1411,7 @@
+ $(ToolBuildPath): $(ToolDir)/.dir
+ endif
+ 
+-$(ToolBuildPath): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths)
++$(ToolBuildPath): $(ObjectsO) $(ProjLibsPaths)
+ 	$(Echo) Linking $(BuildMode) executable $(TOOLNAME) $(StripWarnMsg)
+ 	$(Verb) $(Link) -o $@ $(TOOLLINKOPTS) $(ObjectsO) $(ProjLibsOptions) \
+ 	$(LLVMLibsOptions) $(ExtraLibs) $(TOOLLINKOPTSB) $(LIBS)
+diff -Naur llvm-2.9-orig/unittests/Makefile.unittest llvm-2.9/unittests/Makefile.unittest
+--- llvm-2.9-orig/unittests/Makefile.unittest	2011-02-04 12:12:18.000000000 -0500
++++ llvm-2.9/unittests/Makefile.unittest	2011-10-19 15:47:27.100035616 -0400
+@@ -47,7 +47,7 @@
+   Run.Shared := $(SHLIBPATH_VAR)="$(SharedLibDir)$${$(SHLIBPATH_VAR):+:}$$$(SHLIBPATH_VAR)"
+ endif
+ 
+-$(LLVMUnitTestExe): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths)
++$(LLVMUnitTestExe): $(ObjectsO) $(ProjLibsPaths)
+ 	$(Echo) Linking $(BuildMode) unit test $(TESTNAME) $(StripWarnMsg)
+ 	$(Verb) $(Link) -o $@ $(TOOLLINKOPTS) $(ObjectsO) $(ProjLibsOptions) \
+ 	$(TESTLIBS) $(LLVMLibsOptions) $(ExtraLibs) $(TOOLLINKOPTSB) $(LIBS)
diff --git a/pkgs/development/compilers/llvm/clang-tblgen.patch b/pkgs/development/compilers/llvm/clang-tblgen.patch
new file mode 100644
index 000000000000..9533529555dc
--- /dev/null
+++ b/pkgs/development/compilers/llvm/clang-tblgen.patch
@@ -0,0 +1,134 @@
+diff -Naur a/tools/clang/include/clang/AST/Makefile b/tools/clang/include/clang/AST/Makefile
+--- a/tools/clang/include/clang/AST/Makefile	2010-08-18 19:23:40.000000000 -0400
++++ b/tools/clang/include/clang/AST/Makefile	2011-10-19 14:19:21.420750346 -0400
+@@ -6,24 +6,24 @@
+ 
+ include $(CLANG_LEVEL)/Makefile
+ 
+-$(ObjDir)/Attrs.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
++$(ObjDir)/Attrs.inc.tmp : $(TD_SRC_DIR)/Attr.td \
+                               $(ObjDir)/.dir
+ 	$(Echo) "Building Clang attribute classes with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-attr-classes -o $(call SYSPATH, $@) \
+ 		-I $(PROJ_SRC_DIR)/../../ $<
+ 
+-$(ObjDir)/AttrImpl.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
++$(ObjDir)/AttrImpl.inc.tmp : $(TD_SRC_DIR)/Attr.td \
+                               $(ObjDir)/.dir
+ 	$(Echo) "Building Clang attribute implementations with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-attr-impl -o $(call SYSPATH, $@) \
+ 		-I $(PROJ_SRC_DIR)/../../ $<
+ 
+-$(ObjDir)/StmtNodes.inc.tmp : $(TD_SRC_DIR)/StmtNodes.td $(TBLGEN) \
++$(ObjDir)/StmtNodes.inc.tmp : $(TD_SRC_DIR)/StmtNodes.td \
+                               $(ObjDir)/.dir
+ 	$(Echo) "Building Clang statement node tables with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-stmt-nodes -o $(call SYSPATH, $@) $<
+ 
+-$(ObjDir)/DeclNodes.inc.tmp : $(TD_SRC_DIR)/DeclNodes.td $(TBLGEN) \
++$(ObjDir)/DeclNodes.inc.tmp : $(TD_SRC_DIR)/DeclNodes.td \
+                               $(ObjDir)/.dir
+ 	$(Echo) "Building Clang declaration node tables with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-decl-nodes -o $(call SYSPATH, $@) $<
+diff -Naur a/tools/clang/include/clang/Basic/Makefile b/tools/clang/include/clang/Basic/Makefile
+--- a/tools/clang/include/clang/Basic/Makefile	2010-09-09 16:27:36.000000000 -0400
++++ b/tools/clang/include/clang/Basic/Makefile	2011-10-19 14:17:54.950837324 -0400
+@@ -29,20 +29,20 @@
+ CLANG_HAS_VERSION_PATCHLEVEL := 1
+ endif
+ 
+-$(ObjDir)/Diagnostic%Kinds.inc.tmp : Diagnostic.td Diagnostic%Kinds.td $(TBLGEN) $(ObjDir)/.dir
++$(ObjDir)/Diagnostic%Kinds.inc.tmp : Diagnostic.td Diagnostic%Kinds.td $(ObjDir)/.dir
+ 	$(Echo) "Building Clang $(patsubst Diagnostic%Kinds.inc.tmp,%,$(@F)) diagnostic tables with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-diags-defs -clang-component=$(patsubst Diagnostic%Kinds.inc.tmp,%,$(@F)) -o $(call SYSPATH, $@) $<
+ 
+-$(ObjDir)/DiagnosticGroups.inc.tmp : Diagnostic.td DiagnosticGroups.td $(INPUT_TDS) $(TBLGEN) $(ObjDir)/.dir
++$(ObjDir)/DiagnosticGroups.inc.tmp : Diagnostic.td DiagnosticGroups.td $(INPUT_TDS) $(ObjDir)/.dir
+ 	$(Echo) "Building Clang diagnostic groups with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-diag-groups -o $(call SYSPATH, $@) $<
+ 
+-$(ObjDir)/AttrList.inc.tmp : Attr.td $(TBLGEN) $(ObjDir)/.dir
++$(ObjDir)/AttrList.inc.tmp : Attr.td $(ObjDir)/.dir
+ 	$(Echo) "Building Clang attribute list with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-attr-list -o $(call SYSPATH, $@) \
+ 	  -I $(PROJ_SRC_DIR)/../.. $<
+ 
+-$(ObjDir)/arm_neon.inc.tmp : arm_neon.td $(TBLGEN) $(ObjDir)/.dir
++$(ObjDir)/arm_neon.inc.tmp : arm_neon.td $(ObjDir)/.dir
+ 	$(Echo) "Building Clang arm_neon.inc with tblgen"
+ 	$(Verb) $(TableGen) -gen-arm-neon-sema -o $(call SYSPATH, $@) $<
+ 
+diff -Naur a/tools/clang/include/clang/Driver/Makefile b/tools/clang/include/clang/Driver/Makefile
+--- a/tools/clang/include/clang/Driver/Makefile	2010-06-08 16:34:18.000000000 -0400
++++ b/tools/clang/include/clang/Driver/Makefile	2011-10-19 14:25:33.739369159 -0400
+@@ -5,14 +5,14 @@
+ 
+ include $(CLANG_LEVEL)/Makefile
+ 
+-$(ObjDir)/Options.inc.tmp : Options.td OptParser.td $(TBLGEN) $(ObjDir)/.dir
++$(ObjDir)/Options.inc.tmp : Options.td OptParser.td $(ObjDir)/.dir
+ 	$(Echo) "Building Clang Driver Option tables with tblgen"
+ 	$(Verb) $(TableGen) -gen-opt-parser-defs -o $(call SYSPATH, $@) $<
+ 
+-$(ObjDir)/CC1Options.inc.tmp : CC1Options.td OptParser.td $(TBLGEN) $(ObjDir)/.dir
++$(ObjDir)/CC1Options.inc.tmp : CC1Options.td OptParser.td $(ObjDir)/.dir
+ 	$(Echo) "Building Clang CC1 Option tables with tblgen"
+ 	$(Verb) $(TableGen) -gen-opt-parser-defs -o $(call SYSPATH, $@) $<
+ 
+-$(ObjDir)/CC1AsOptions.inc.tmp : CC1AsOptions.td OptParser.td $(TBLGEN) $(ObjDir)/.dir
++$(ObjDir)/CC1AsOptions.inc.tmp : CC1AsOptions.td OptParser.td $(ObjDir)/.dir
+ 	$(Echo) "Building Clang CC1 Assembler Option tables with tblgen"
+ 	$(Verb) $(TableGen) -gen-opt-parser-defs -o $(call SYSPATH, $@) $<
+diff -Naur a/tools/clang/include/clang/Lex/Makefile b/tools/clang/include/clang/Lex/Makefile
+--- a/tools/clang/include/clang/Lex/Makefile	2010-10-19 22:31:43.000000000 -0400
++++ b/tools/clang/include/clang/Lex/Makefile	2011-10-19 14:18:25.082807086 -0400
+@@ -6,7 +6,7 @@
+ 
+ include $(CLANG_LEVEL)/Makefile
+ 
+-$(ObjDir)/AttrSpellings.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
++$(ObjDir)/AttrSpellings.inc.tmp : $(TD_SRC_DIR)/Attr.td \
+                                   $(ObjDir)/.dir
+ 	$(Echo) "Building Clang attribute spellings with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-attr-spelling-list -o $(call SYSPATH, $@) \
+diff -Naur a/tools/clang/include/clang/Serialization/Makefile b/tools/clang/include/clang/Serialization/Makefile
+--- a/tools/clang/include/clang/Serialization/Makefile	2010-08-18 19:23:40.000000000 -0400
++++ b/tools/clang/include/clang/Serialization/Makefile	2011-10-19 14:25:05.764398164 -0400
+@@ -6,13 +6,13 @@
+ 
+ include $(CLANG_LEVEL)/Makefile
+ 
+-$(ObjDir)/AttrPCHRead.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
++$(ObjDir)/AttrPCHRead.inc.tmp : $(TD_SRC_DIR)/Attr.td \
+                               $(ObjDir)/.dir
+ 	$(Echo) "Building Clang PCH reader with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-attr-pch-read -o $(call SYSPATH, $@) \
+ 		-I $(PROJ_SRC_DIR)/../../ $<
+ 
+-$(ObjDir)/AttrPCHWrite.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
++$(ObjDir)/AttrPCHWrite.inc.tmp : $(TD_SRC_DIR)/Attr.td \
+                               $(ObjDir)/.dir
+ 	$(Echo) "Building Clang PCH writer with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-attr-pch-write -o $(call SYSPATH, $@) \
+diff -Naur a/tools/clang/lib/Headers/Makefile b/tools/clang/lib/Headers/Makefile
+--- a/tools/clang/lib/Headers/Makefile	2010-07-21 21:19:36.000000000 -0400
++++ b/tools/clang/lib/Headers/Makefile	2011-10-19 14:15:18.520993127 -0400
+@@ -49,6 +49,6 @@
+ 
+ install-local:: $(INSTHEADERS)
+ 
+-$(ObjDir)/arm_neon.h.inc.tmp : $(CLANG_LEVEL)/include/clang/Basic/arm_neon.td $(TBLGEN) $(ObjDir)/.dir
++$(ObjDir)/arm_neon.h.inc.tmp : $(CLANG_LEVEL)/include/clang/Basic/arm_neon.td $(ObjDir)/.dir
+ 	$(Echo) "Building Clang arm_neon.h.inc with tblgen"
+ 	$(Verb) $(TableGen) -gen-arm-neon -o $(call SYSPATH, $@) $<
+diff -Naur a/tools/clang/lib/StaticAnalyzer/Checkers/Makefile b/tools/clang/lib/StaticAnalyzer/Checkers/Makefile
+--- a/tools/clang/lib/StaticAnalyzer/Checkers/Makefile	2011-02-15 02:42:38.000000000 -0500
++++ b/tools/clang/lib/StaticAnalyzer/Checkers/Makefile	2011-10-19 14:15:58.240953760 -0400
+@@ -19,6 +19,6 @@
+ 
+ include $(CLANG_LEVEL)/Makefile
+ 
+-$(ObjDir)/Checkers.inc.tmp : Checkers.td $(PROJ_SRC_DIR)/$(CLANG_LEVEL)/include/clang/StaticAnalyzer/Checkers/CheckerBase.td $(TBLGEN) $(ObjDir)/.dir
++$(ObjDir)/Checkers.inc.tmp : Checkers.td $(PROJ_SRC_DIR)/$(CLANG_LEVEL)/include/clang/StaticAnalyzer/Checkers/CheckerBase.td $(ObjDir)/.dir
+ 	$(Echo) "Building Clang SA Checkers tables with tblgen"
+ 	$(Verb) $(TableGen) -gen-clang-sa-checkers -I $(PROJ_SRC_DIR)/$(CLANG_LEVEL)/include -o $(call SYSPATH, $@) $<
diff --git a/pkgs/development/compilers/llvm/clang.nix b/pkgs/development/compilers/llvm/clang.nix
new file mode 100644
index 000000000000..78b3219a3284
--- /dev/null
+++ b/pkgs/development/compilers/llvm/clang.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, perl, groff, llvm }:
+
+assert stdenv.isLinux && stdenv.gcc.gcc != null;
+
+let version = "2.9"; in
+
+stdenv.mkDerivation {
+  name = "clang-${version}";
+
+  src = llvm.src;
+
+  buildInputs = [ perl llvm groff ];
+
+  configureFlags = [ "--enable-optimized" "--enable-shared" "--disable-static" ]
+    ++ stdenv.lib.optionals (stdenv.gcc ? clang) [
+      "--with-built-clang=yes"
+      "CXX=clang++"
+    ];
+
+  srcClang = fetchurl {
+      url = "http://llvm.org/releases/${version}/clang-${version}.tgz";
+      sha256 = "1pq9g7qxw761dp6gx3amx39kl9p4zhlymmn8gfmcnw9ag0zizi3h";
+  };
+
+  prePatch = ''
+    pushd tools
+    unpackFile $srcClang
+    mv clang-${version} clang
+    popd
+    find
+  '';
+
+  patches = [ ./clang-include-paths.patch ./clang-ld-flags.patch ./clang-tblgen.patch ./clang-system-llvm-libs.patch ];
+
+  buildFlags = [ "TableGen=tblgen" "LLVM_CONFIG=llvm-config" ];
+
+  preBuild = ''
+    sed -i -e 's,C_INCLUDE_PATH,"${stdenv.gcc.libc}/include/",' \
+      -e 's,CPP_HOST,"'$(${stdenv.gcc.gcc}/bin/gcc -dumpmachine)'",' \
+      -e 's,CPP_INCLUDE_PATH,"${stdenv.gcc.gcc}/include/c++/${stdenv.gcc.gcc.version}",' \
+      tools/clang/lib/Frontend/InitHeaderSearch.cpp
+
+    pushd utils/unittest
+    make
+    popd
+    cd tools/clang
+  '';
+
+  postInstall = ''
+    install -v -m755 tools/scan-build/scan-build $out/bin
+    install -v -m755 tools/scan-view/scan-view $out/bin
+  '';
+
+  passthru = { gcc = stdenv.gcc.gcc; };
+
+  meta = {
+    homepage = http://clang.llvm.org/;
+    description = "A C language family frontend for LLVM";
+    license = "BSD";
+    maintainers = with stdenv.lib.maintainers; [viric shlevy];
+    platforms = with stdenv.lib.platforms; all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix
index c98005417c94..c8f05bb1fd7f 100644
--- a/pkgs/development/compilers/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/default.nix
@@ -1,9 +1,8 @@
-{ stdenv, fetchurl, gcc, flex, perl, libtool, groff
-, buildClang ? false }:
+{ stdenv, fetchurl, perl, groff, darwinSwVersUtility }:
 
 let version = "2.9"; in
 
-stdenv.mkDerivation ({
+stdenv.mkDerivation {
   name = "llvm-${version}";
 
   src = fetchurl {
@@ -11,9 +10,14 @@ stdenv.mkDerivation ({
     sha256 = "0y9pgdakn3n0vf8zs6fjxjw6972nyw4rkfwwza6b8a3ll77kc4k6";
   };
 
-  buildInputs = [ gcc flex perl groff ];
+  buildInputs = [ perl groff ] ++
+    stdenv.lib.optional stdenv.isDarwin darwinSwVersUtility;
 
-  configureFlags = [ "--enable-optimized" "--enable-shared" "--disable-static" ];
+  configureFlags = [ "--enable-optimized" "--enable-shared" "--disable-static" ]
+    ++ stdenv.lib.optionals (stdenv.gcc ? clang) [
+      "--with-built-clang=yes"
+      "CXX=clang++"
+    ];
 
   meta = {
     homepage = http://llvm.org/;
@@ -23,48 +27,4 @@ stdenv.mkDerivation ({
     platforms = with stdenv.lib.platforms; all;
   };
 }
-// stdenv.lib.optionalAttrs buildClang (
-  # I write the assert because 'gcc.libc' will be evaluated although 'triplet' would not
-  # evaluate properly (in the preConfigure below)
-  assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
-  let
-    triplet = if (stdenv.system == "i686-linux") then "i686-unknown-linux-gnu"
-              else if (stdenv.system == "x86_64-linux") then "x86_64-unknown-linux-gnu"
-              else throw "System not supported";
-  in {
-    name = "clang-${version}";
 
-    srcClang = fetchurl {
-      url = "http://llvm.org/releases/${version}/clang-${version}.tgz";
-      sha256 = "1pq9g7qxw761dp6gx3amx39kl9p4zhlymmn8gfmcnw9ag0zizi3h";
-    };
-
-    prePatch = ''
-      pushd tools
-      unpackFile $srcClang
-      mv clang-${version} clang
-      popd
-      find
-    '';
-
-    patches = [ ./clang-include-paths.patch ./clang-ld-flags.patch ];
-
-    # Set up the header file paths
-    preConfigure = ''
-      sed -i -e 's,C_INCLUDE_PATH,"${gcc.libc}/include/",' \
-        -e 's,CPP_HOST,"${triplet}",' \
-        -e 's,CPP_INCLUDE_PATH,"${gcc.gcc}/include/c++/${gcc.gcc.version}",' \
-        tools/clang/lib/Frontend/InitHeaderSearch.cpp
-    '';
-
-    passthru = { gcc = gcc.gcc; };
-
-    meta = {
-      homepage = http://clang.llvm.org/;
-      description = "A C language family frontend for LLVM";
-      license = "BSD";
-      maintainers = with stdenv.lib.maintainers; [viric shlevy];
-      platforms = with stdenv.lib.platforms; linux;
-    };
-  }
-))
diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/default.nix
index be8d238a97c2..333496057368 100644
--- a/pkgs/development/interpreters/guile/default.nix
+++ b/pkgs/development/interpreters/guile/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
+{ fetchurl, stdenv, xz, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
 , libffi, gawk, makeWrapper, coverageAnalysis ? null }:
 
 # Do either a coverage analysis build or a standard build.
@@ -7,13 +7,14 @@
  else stdenv.mkDerivation)
 
 rec {
-  name = "guile-2.0.2";
+  name = "guile-2.0.3";
 
   src = fetchurl {
-    url = "mirror://gnu/guile/${name}.tar.gz";
-    sha256 = "0adiwydwb285bb7mcakfdzjgyv24lrm7pk2grgxzi66kidpm6dhx";
+    url = "mirror://gnu/guile/${name}.tar.xz";
+    sha256 = "14rhlpxxa4v5y3gl992l7lnd5qnqawx0a84idnwq0w2qviwcvsyj";
   };
 
+  buildNativeInputs = [ xz ];
   buildInputs =
     [ makeWrapper gawk readline libtool libunistring
       libffi pkgconfig
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index 39532c075d1a..888a119bb360 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -1,15 +1,15 @@
 { fetchurl, stdenv, xz, zlib, lzo, libtasn1, nettle
-, guileBindings, guile }:
+, guileBindings, guile, perl }:
 
 assert guileBindings -> guile != null;
 
 stdenv.mkDerivation rec {
 
-  name = "gnutls-3.0.2";
+  name = "gnutls-3.0.4";
 
   src = fetchurl {
     url = "mirror://gnu/gnutls/${name}.tar.xz";
-    sha256 = "0jy0j77inv6yr7s9mnhs5kvjjmhj0ifg35145s1qn3hd9ma36nii";
+    sha256 = "16mhr52c07xlkv5m5bxgr51ppjz0gqjw6rgv52ql4iyi569ffrx3";
   };
 
   configurePhase = ''
@@ -22,9 +22,11 @@ stdenv.mkDerivation rec {
         else ""}
   '';
 
-  buildInputs = [ xz zlib lzo ]
+  buildInputs = [ zlib lzo ]
     ++ stdenv.lib.optional guileBindings guile;
 
+  buildNativeInputs = [ xz perl ];
+
   propagatedBuildInputs = [ nettle libtasn1 ];
 
   doCheck = true;
diff --git a/pkgs/development/libraries/haskell/ConfigFile/default.nix b/pkgs/development/libraries/haskell/ConfigFile/default.nix
index 378d1e2cd376..d7a5a674bb6a 100644
--- a/pkgs/development/libraries/haskell/ConfigFile/default.nix
+++ b/pkgs/development/libraries/haskell/ConfigFile/default.nix
@@ -2,11 +2,12 @@
 
 cabal.mkDerivation (self: {
   pname = "ConfigFile";
-  version = "1.0.6";
-  sha256 = "339722184b86d53d8b361933e572b6e1478824c7eba3fb66b67d0eb5245cd038";
+  version = "1.1.0";
+  sha256 = "0m5p56if711qi69lxw78746sb0jr5gqbmip5hdbb7lk4z5drgvhc";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ MissingH mtl parsec ];
+  noHaddock = true;
   meta = {
     homepage = "http://software.complete.org/configfile";
     description = "Configuration file reading & writing";
diff --git a/pkgs/development/libraries/haskell/NanoProlog/default.nix b/pkgs/development/libraries/haskell/NanoProlog/default.nix
new file mode 100644
index 000000000000..85f5a1d9e6ea
--- /dev/null
+++ b/pkgs/development/libraries/haskell/NanoProlog/default.nix
@@ -0,0 +1,19 @@
+{ cabal, ListLike, uuParsinglib }:
+
+cabal.mkDerivation (self: {
+  pname = "NanoProlog";
+  version = "0.2.3.3";
+  sha256 = "0008xpahqbs2djchlw1bslhqqhbc0n7ql7pqm4g7lh8xd3ampxba";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ ListLike uuParsinglib ];
+  meta = {
+    description = "Very small interpreter for a Prolog-like language";
+    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/WebBits/2.1.nix b/pkgs/development/libraries/haskell/WebBits/2.1.nix
new file mode 100644
index 000000000000..915ff0b1d60e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/WebBits/2.1.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, parsec, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "WebBits";
+  version = "2.1";
+  sha256 = "18m19fck9zb6jh8bfd47nja1q6ab1jmd0q5r3k8m5674i6273hyn";
+  buildDepends = [ mtl parsec syb ];
+  meta = {
+    homepage = "http://www.cs.brown.edu/research/plt/";
+    description = "JavaScript analysis tools";
+    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/blaze-builder-enumerator/default.nix b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
index 84d667de29af..ccc8d36d6fdd 100644
--- a/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "blaze-builder-enumerator";
-  version = "0.2.0.2";
-  sha256 = "0as4mjh695jpxp9qfhpsxyr1448l0pk94sh5kk8sgxv5hfiy41k9";
+  version = "0.2.0.3";
+  sha256 = "00a9rly27sh49gi5askg7z3ji8ig9llxk4qcznsag01d1z0kb97n";
   buildDepends = [ blazeBuilder enumerator transformers ];
   meta = {
     homepage = "https://github.com/meiersi/blaze-builder-enumerator";
diff --git a/pkgs/development/libraries/haskell/bytestring-nums/default.nix b/pkgs/development/libraries/haskell/bytestring-nums/default.nix
index 4a480b079317..20228b9eed14 100644
--- a/pkgs/development/libraries/haskell/bytestring-nums/default.nix
+++ b/pkgs/development/libraries/haskell/bytestring-nums/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "bytestring-nums";
-  version = "0.3.3";
-  sha256 = "09gdbyj5qw98j57cs9phzsbmvdm7y6j07wg908i34jklwm24nxfd";
+  version = "0.3.5";
+  sha256 = "12knbyrvr1wa7za8bwypvq3cp81k18qi032dl98s2ylhcz1r6rdk";
   isLibrary = true;
   isExecutable = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/cabal-file-th/default.nix b/pkgs/development/libraries/haskell/cabal-file-th/default.nix
new file mode 100644
index 000000000000..427e4ba2cc60
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cabal-file-th/default.nix
@@ -0,0 +1,13 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "cabal-file-th";
+  version = "0.2.1";
+  sha256 = "0nczwicgf6kx3lk5m7wqf1wj6ghn8jfx112dzh7jh4f4xs66nsd1";
+  meta = {
+    homepage = "http://github.com/nkpart/cabal-file-th";
+    description = "Template Haskell expressions for reading fields from a project's cabal file";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/clientsession/default.nix b/pkgs/development/libraries/haskell/clientsession/default.nix
index c5096ae9a771..a2ebb5c2d9ba 100644
--- a/pkgs/development/libraries/haskell/clientsession/default.nix
+++ b/pkgs/development/libraries/haskell/clientsession/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "clientsession";
-  version = "0.7.3.1";
-  sha256 = "0q16brla4m5g7dmgln3awx964ms7pi1s2r21idmc0mk4rnw2rpi7";
+  version = "0.7.3.2";
+  sha256 = "1ml1f5sarfck39qrv4zjcbk1vwgazn32gnjm78fm047ixczi9340";
   buildDepends = [
     base64Bytestring cereal cryptoApi cryptocipher skein
   ];
diff --git a/pkgs/development/libraries/haskell/cprng-aes/default.nix b/pkgs/development/libraries/haskell/cprng-aes/default.nix
index 1c156f47a3fa..80a04e965498 100644
--- a/pkgs/development/libraries/haskell/cprng-aes/default.nix
+++ b/pkgs/development/libraries/haskell/cprng-aes/default.nix
@@ -1,10 +1,10 @@
-{ cabal, cereal, cryptoApi, cryptocipher, random }:
+{ cabal, cereal, cryptoApi, cryptocipher, entropy, random }:
 
 cabal.mkDerivation (self: {
   pname = "cprng-aes";
-  version = "0.2.1";
-  sha256 = "0q6qkvha7cckz3zjnzfsrx298arzbdavy1f73hygrd8f7n74442j";
-  buildDepends = [ cereal cryptoApi cryptocipher random ];
+  version = "0.2.2";
+  sha256 = "0jfa9fb670bqlnkplmscz878hvdbpap47xfxvshgs102iq7rjasf";
+  buildDepends = [ cereal cryptoApi cryptocipher entropy random ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-cprng-aes";
     description = "Crypto Pseudo Random Number Generator using AES in counter mode";
diff --git a/pkgs/development/libraries/haskell/crypto-api/default.nix b/pkgs/development/libraries/haskell/crypto-api/default.nix
index e651d03b736f..66204112c166 100644
--- a/pkgs/development/libraries/haskell/crypto-api/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-api/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "crypto-api";
-  version = "0.6.4";
-  sha256 = "1v3nnfw13r514a723lsx8d1awlad6fmv27bgp76f1ssv1garraf3";
+  version = "0.8";
+  sha256 = "1fwkafb9v2348vr1a4xnlmkgs4kh85az4f3wnrl9cbqwxf3cc328";
   buildDepends = [ cereal entropy largeword tagged ];
   meta = {
     homepage = "http://trac.haskell.org/crypto-api/wiki";
diff --git a/pkgs/development/libraries/haskell/cryptohash/default.nix b/pkgs/development/libraries/haskell/cryptohash/default.nix
index 132a46be09e7..4336be8318d9 100644
--- a/pkgs/development/libraries/haskell/cryptohash/default.nix
+++ b/pkgs/development/libraries/haskell/cryptohash/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cryptohash";
-  version = "0.7.3";
-  sha256 = "1wjmf7ll9jady6p79066b5ib70ywvbgnbc71s76pibkg5hsvclgj";
+  version = "0.7.4";
+  sha256 = "1nplmwihq40jmng4r3wiyfb0i33a8wx2gmlbqajc62wny98l7sab";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ cereal cryptoApi tagged ];
diff --git a/pkgs/development/libraries/haskell/enumerator/default.nix b/pkgs/development/libraries/haskell/enumerator/default.nix
index 1037c570bdbb..d42470637d47 100644
--- a/pkgs/development/libraries/haskell/enumerator/default.nix
+++ b/pkgs/development/libraries/haskell/enumerator/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "enumerator";
-  version = "0.4.14";
-  sha256 = "06bvrr76y12r3i1xi1s98fc1v6mcmn8nzhbp80wgyi743ksqcr1d";
+  version = "0.4.15";
+  sha256 = "06yzf2xaadmdhgidzyp7qywd8d401f4n1qlfyx0q72nafgnlvr6v";
   buildDepends = [ text transformers ];
   meta = {
     homepage = "https://john-millikin.com/software/enumerator/";
diff --git a/pkgs/development/libraries/haskell/gloss/default.nix b/pkgs/development/libraries/haskell/gloss/default.nix
index 509624321f8a..6bc322bce0ee 100644
--- a/pkgs/development/libraries/haskell/gloss/default.nix
+++ b/pkgs/development/libraries/haskell/gloss/default.nix
@@ -1,10 +1,10 @@
-{ cabal, GLUT, OpenGL }:
+{ cabal, bmp, GLUT, OpenGL }:
 
 cabal.mkDerivation (self: {
   pname = "gloss";
-  version = "1.3.4.1";
-  sha256 = "0cyk75b495vq59pnfqy6ny5kb0i0zq2hwfb1q69vj0cfyiqiwjsb";
-  buildDepends = [ GLUT OpenGL ];
+  version = "1.4.0.1";
+  sha256 = "0za7imyzfgk3ndh9db55wi7zbxrmpvshws4vywrr35b77b3nabr1";
+  buildDepends = [ bmp GLUT OpenGL ];
   meta = {
     homepage = "http://gloss.ouroborus.net";
     description = "Painless 2D vector graphics, animations and simulations";
diff --git a/pkgs/development/libraries/haskell/haskeline/default.nix b/pkgs/development/libraries/haskell/haskeline/default.nix
index 63fdc751d8d1..2b15fa562bfc 100644
--- a/pkgs/development/libraries/haskell/haskeline/default.nix
+++ b/pkgs/development/libraries/haskell/haskeline/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "haskeline";
-  version = "0.6.4.4";
-  sha256 = "03cnhidnpnz7fh34c7x0rpl15zi6hkh9khganrdhwa59srxzbxqb";
+  version = "0.6.4.5";
+  sha256 = "1blhbh53p6di3q3gldzmg3i8f4w3ahipai3di49i4rdcnjry0j5b";
   buildDepends = [ extensibleExceptions mtl terminfo utf8String ];
   meta = {
     homepage = "http://trac.haskell.org/haskeline";
diff --git a/pkgs/development/libraries/haskell/hledger-web/default.nix b/pkgs/development/libraries/haskell/hledger-web/default.nix
index a046e86e075e..426e477fc0f2 100644
--- a/pkgs/development/libraries/haskell/hledger-web/default.nix
+++ b/pkgs/development/libraries/haskell/hledger-web/default.nix
@@ -1,19 +1,19 @@
-{ cabal, aesonNative, blazeHtml, clientsession, cmdargs, dataObject
-, dataObjectYaml, failure, fileEmbed, hamlet, hledger, hledgerLib
-, HUnit, ioStorage, parsec, regexpr, safe, shakespeareCss
-, shakespeareJs, shakespeareText, text, time, transformers, wai
-, waiExtra, warp, yesod, yesodCore, yesodForm, yesodJson
-, yesodStatic
+{ cabal, aesonNative, blazeHtml, cabalFileTh, clientsession
+, cmdargs, dataObject, dataObjectYaml, failure, fileEmbed, hamlet
+, hledger, hledgerLib, HUnit, ioStorage, parsec, regexpr, safe
+, shakespeareCss, shakespeareJs, shakespeareText, text, time
+, transformers, wai, waiExtra, warp, yesod, yesodCore, yesodForm
+, yesodJson, yesodStatic
 }:
 
 cabal.mkDerivation (self: {
   pname = "hledger-web";
-  version = "0.16.3";
-  sha256 = "0jciah0k6i4aa21hgpl1nqfyjkmm5kg5zmzmxwynvwckncy17ihg";
+  version = "0.16.4";
+  sha256 = "1p776fzgan9y7g03g92gsvnassc3k28l6l3gr1vd9v3fcnckg2wj";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    aesonNative blazeHtml clientsession cmdargs dataObject
+    aesonNative blazeHtml cabalFileTh clientsession cmdargs dataObject
     dataObjectYaml failure fileEmbed hamlet hledger hledgerLib HUnit
     ioStorage parsec regexpr safe shakespeareCss shakespeareJs
     shakespeareText text time transformers wai waiExtra warp yesod
diff --git a/pkgs/development/libraries/haskell/hmatrix/default.nix b/pkgs/development/libraries/haskell/hmatrix/default.nix
index 43c66c3d8944..5f45d99c75c3 100644
--- a/pkgs/development/libraries/haskell/hmatrix/default.nix
+++ b/pkgs/development/libraries/haskell/hmatrix/default.nix
@@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
     binary HUnit QuickCheck random storableComplex vector
   ];
   extraLibraries = [ blas gsl liblapack ];
+  configureFlags = "-fvector";
   meta = {
     homepage = "http://perception.inf.um.es/hmatrix";
     description = "Linear algebra and numerical computation";
diff --git a/pkgs/development/libraries/haskell/hp2any-core/default.nix b/pkgs/development/libraries/haskell/hp2any-core/default.nix
index 8bc4620ac26f..f1634f632a3e 100644
--- a/pkgs/development/libraries/haskell/hp2any-core/default.nix
+++ b/pkgs/development/libraries/haskell/hp2any-core/default.nix
@@ -1,10 +1,10 @@
-{ cabal, bytestringTrie, network, time }:
+{ cabal, attoparsec, network, time }:
 
 cabal.mkDerivation (self: {
   pname = "hp2any-core";
-  version = "0.10.1";
-  sha256 = "1qblsvlj4x22ml3k5mlr28r5xk9rmi7lpipd369dbvdzm0rflf03";
-  buildDepends = [ bytestringTrie network time ];
+  version = "0.11.1";
+  sha256 = "146bigmch7dawyyakj0w55p0jdpnxkj8q5izjsswqqk0pdxia546";
+  buildDepends = [ attoparsec network time ];
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/Hp2any";
     description = "Heap profiling helper library";
diff --git a/pkgs/development/libraries/haskell/nixos-types/default.nix b/pkgs/development/libraries/haskell/nixos-types/default.nix
index b63f8a9fbdc1..9a1103a2bb80 100644
--- a/pkgs/development/libraries/haskell/nixos-types/default.nix
+++ b/pkgs/development/libraries/haskell/nixos-types/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "nixos-types";
-  version = "1.1";
-  sha256 = "0vnlhq2pjnslq1h9h3lyaxw604s3zdhs7k8hfr35m178rdm3a5az";
+  version = "1.2";
+  sha256 = "140qk6wqq87qfk471cnhrg135fnqv0vfmfxh8kj14ar2kxvzrr8w";
   buildDepends = [ regexPosix ];
   meta = {
     homepage = "http://github.com/haskell4nix/nixos-types";
diff --git a/pkgs/development/libraries/haskell/skein/default.nix b/pkgs/development/libraries/haskell/skein/default.nix
index 4795c5f2f04b..e197ab349e35 100644
--- a/pkgs/development/libraries/haskell/skein/default.nix
+++ b/pkgs/development/libraries/haskell/skein/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "skein";
-  version = "0.1.0.1";
-  sha256 = "1i05ajmnsm0ac9cqnf1lmdaa6sxkirxv5r2h8phpapzvzwislpr8";
+  version = "0.1.0.2";
+  sha256 = "1ay7ri011vwvl74b9calbnav90d0r08gzqgdk8nvw1qx4slk1ibs";
   buildDepends = [ cereal cryptoApi tagged ];
   meta = {
     description = "Skein, a family of cryptographic hash functions. Includes Skein-MAC as well.";
diff --git a/pkgs/development/libraries/haskell/vty/4.6.0.4.nix b/pkgs/development/libraries/haskell/vty/4.6.0.4.nix
deleted file mode 100644
index 55c731184462..000000000000
--- a/pkgs/development/libraries/haskell/vty/4.6.0.4.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ cabal, deepseq, mtl, parallel, parsec, terminfo, utf8String }:
-
-cabal.mkDerivation (self: {
-  pname = "vty";
-  version = "4.6.0.4";
-  sha256 = "0kabssw3v7nglvsr687ppmdnnmii1q2g5zg8rxwi2hcmvnjx7567";
-  buildDepends = [ deepseq mtl parallel parsec terminfo utf8String ];
-  meta = {
-    homepage = "http://trac.haskell.org/vty/";
-    description = "A simple terminal access library";
-    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/vty/4.7.0.4.nix b/pkgs/development/libraries/haskell/vty/default.nix
index 8ef4c51d03d1..8ef4c51d03d1 100644
--- a/pkgs/development/libraries/haskell/vty/4.7.0.4.nix
+++ b/pkgs/development/libraries/haskell/vty/default.nix
diff --git a/pkgs/development/libraries/haskell/yap/default.nix b/pkgs/development/libraries/haskell/yap/default.nix
index 858466ab1a49..27938a2fad09 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.0";
-  sha256 = "0cjsmf9p220fb9yf2i81xspa3rpnlln3hfb9yc5x6xbcc6py0nw5";
+  version = "0.1";
+  sha256 = "14x1z5pmb499qq5sy0iksxv0mli8556s1jh9jm7rdg671h1cy1hl";
   meta = {
     description = "yet another prelude - a simplistic refactoring with algebraic classes";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/yesod-auth/default.nix b/pkgs/development/libraries/haskell/yesod-auth/default.nix
index 56d5c43887b6..fb74e1dfba24 100644
--- a/pkgs/development/libraries/haskell/yesod-auth/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-auth/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-auth";
-  version = "0.7.2";
-  sha256 = "18i1ijxrhmmxy45ymc89f7m2zazd7lca4jv4q08d7mr1hdgsx8cn";
+  version = "0.7.4";
+  sha256 = "088hhyy7fwga7hwqqwxxn12iqnz6jadq1bc9p8hdv1jy6ib769dl";
   buildDepends = [
     aesonNative authenticate blazeHtml controlMonadAttempt hamlet
     httpEnumerator mimeMail persistent persistentTemplate pureMD5
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 5321294e55ab..9319eb9a39cd 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -1,19 +1,21 @@
-{ cabal, blazeBuilder, blazeHtml, caseInsensitive, cereal
-, clientsession, cookie, enumerator, failure, hamlet, httpTypes
-, monadControl, parsec, pathPieces, random, shakespeare
-, shakespeareCss, shakespeareJs, strictConcurrency, text, time
-, transformers, wai, waiExtra
+{ cabal, aesonNative, blazeBuilder, blazeHtml, caseInsensitive
+, cereal, clientsession, cookie, dataObject, dataObjectYaml
+, enumerator, failure, hamlet, httpTypes, monadControl, parsec
+, pathPieces, random, shakespeare, shakespeareCss, shakespeareJs
+, strictConcurrency, text, time, transformers, vector, wai
+, waiExtra
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "0.9.2";
-  sha256 = "1h9w5fgdr4w4ikp5axzxmsvc14ikbsjmlwd2lmlrh1cjcx8xzjwf";
+  version = "0.9.3.2";
+  sha256 = "1h45vgxcn4sraax5rsccksx5yz57k32d7vzpp02prz2s2x5bv3xl";
   buildDepends = [
-    blazeBuilder blazeHtml caseInsensitive cereal clientsession cookie
-    enumerator failure hamlet httpTypes monadControl parsec pathPieces
-    random shakespeare shakespeareCss shakespeareJs strictConcurrency
-    text time transformers wai waiExtra
+    aesonNative blazeBuilder blazeHtml caseInsensitive cereal
+    clientsession cookie dataObject dataObjectYaml enumerator failure
+    hamlet httpTypes monadControl parsec pathPieces random shakespeare
+    shakespeareCss shakespeareJs strictConcurrency text time
+    transformers vector wai waiExtra
   ];
   meta = {
     homepage = "http://www.yesodweb.com/";
diff --git a/pkgs/development/libraries/haskell/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix
index fab623a29268..133d45c6c190 100644
--- a/pkgs/development/libraries/haskell/yesod-form/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-form/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-form";
-  version = "0.3.2.1";
-  sha256 = "1gzd8vs9nabv7vf41b5xxwy49yak9jd3mpxkg4yx7pndm4321hp9";
+  version = "0.3.3";
+  sha256 = "1lym9h7xr26i36n62cvbdyzjxna1p0alyhx9qhi5zhg0xz4nd3xq";
   buildDepends = [
     blazeBuilder blazeHtml dataDefault emailValidate hamlet network
     persistent shakespeareCss shakespeareJs text time transformers wai
diff --git a/pkgs/development/libraries/haskell/yesod-static/default.nix b/pkgs/development/libraries/haskell/yesod-static/default.nix
index 8fbc8baff49d..0f700667f34a 100644
--- a/pkgs/development/libraries/haskell/yesod-static/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-static/default.nix
@@ -1,13 +1,14 @@
-{ cabal, base64Bytestring, cereal, fileEmbed, httpTypes, pureMD5
-, text, transformers, unixCompat, wai, waiAppStatic, yesodCore
+{ cabal, base64Bytestring, cereal, enumerator, fileEmbed, httpTypes
+, pureMD5, text, transformers, unixCompat, wai, waiAppStatic
+, yesodCore
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-static";
-  version = "0.3.0.1";
-  sha256 = "1dvg60kawmvczwxvkxzx5k19y36i23fi0faw71ck58mlkjdczby5";
+  version = "0.3.1.2";
+  sha256 = "0r72xspxq7122k9vird4yqqzrn6p4xgzvxid7ig62zdxjlw1p36j";
   buildDepends = [
-    base64Bytestring cereal fileEmbed httpTypes pureMD5 text
+    base64Bytestring cereal enumerator fileEmbed httpTypes pureMD5 text
     transformers unixCompat wai waiAppStatic yesodCore
   ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/yesod/default.nix b/pkgs/development/libraries/haskell/yesod/default.nix
index e4947dc94f21..84a5c25b91f4 100644
--- a/pkgs/development/libraries/haskell/yesod/default.nix
+++ b/pkgs/development/libraries/haskell/yesod/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod";
-  version = "0.9.2.2";
-  sha256 = "09l7cdsrxlr1nb03h3nisih9sm824gnp3nkblvgh8b1pfi54wdkl";
+  version = "0.9.3";
+  sha256 = "1w5fml250i63qhlxkn1bidc3sminmxf98zsdzvdi42sfjx8fdkkx";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/opendkim/default.nix b/pkgs/development/libraries/opendkim/default.nix
index e77a241af729..62a343d8efc7 100644
--- a/pkgs/development/libraries/opendkim/default.nix
+++ b/pkgs/development/libraries/opendkim/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, openssl, libmilter}:
 
 stdenv.mkDerivation rec {
-  name = "opendkim-1.2.2";
+  name = "opendkim-2.4.2";
   src = fetchurl {
     url = "mirror://sourceforge/opendkim/files/${name}.tar.gz";
-    sha256 = "01kvhm10kv17mm4zfz0zd24wzr98fxqwyzm56m2l1v262ng3l4nw";
+    sha256 = "0gwgcrnl5c60sxb9z38ari2gl7vd626r3z3dcq8a6aw28pw9w2lk";
   };
 
   configureFlags="--with-openssl=${openssl} --with-milter=${libmilter}";
diff --git a/pkgs/development/libraries/yajl/default.nix b/pkgs/development/libraries/yajl/default.nix
index 6ba81a4766b4..221344b91251 100644
--- a/pkgs/development/libraries/yajl/default.nix
+++ b/pkgs/development/libraries/yajl/default.nix
@@ -19,10 +19,8 @@ stdenv.mkDerivation {
       C, and a small validating JSON generator.
     '';
     homepage = http://lloyd.github.com/yajl/;
-    license = stdenv.lib.license.isc;
-    platforms = with stdenv.lib.platforms; [ linux darwin ];
-    maintainers = with stdenv.lib.maintainers; [
-      z77z
-    ];
+    license = stdenv.lib.licenses.isc;
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
+    maintainers = with stdenv.lib.maintainers; [ z77z ];
   };
 }
diff --git a/pkgs/development/perl-modules/net-amazon-ec2-ipv6.patch b/pkgs/development/perl-modules/net-amazon-ec2-ipv6.patch
new file mode 100644
index 000000000000..453d8f7d29e9
--- /dev/null
+++ b/pkgs/development/perl-modules/net-amazon-ec2-ipv6.patch
@@ -0,0 +1,60 @@
+Support OpenStack's DescribeInstancesV6 API call.
+
+diff -ru -x '*~' Net-Amazon-EC2-0.14-orig2//lib/Net/Amazon/EC2/RunningInstances.pm Net-Amazon-EC2-0.14//lib/Net/Amazon/EC2/RunningInstances.pm
+--- Net-Amazon-EC2-0.14-orig2//lib/Net/Amazon/EC2/RunningInstances.pm	2010-01-24 02:12:50.000000000 +0100
++++ Net-Amazon-EC2-0.14//lib/Net/Amazon/EC2/RunningInstances.pm	2011-06-21 17:19:36.000000000 +0200
+@@ -25,6 +25,10 @@
+ This element remains empty until the instance enters a 
+ running state.
+ 
++=item dns_name_v6 (optional)
++
++The public IPv6 address of the instance.
++
+ =item image_id (required)
+ 
+ The image id of the AMI currently running in this instance.
+@@ -126,6 +130,7 @@
+ 
+ has 'ami_launch_index'  	=> ( is => 'ro', isa => 'Str', required => 0 );
+ has 'dns_name'          	=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
++has 'dns_name_v6'          	=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
+ has 'image_id'          	=> ( is => 'ro', isa => 'Str', required => 1 );
+ has 'kernel_id'         	=> ( is => 'ro', isa => 'Maybe[Str]', required => 1 );
+ has 'ramdisk_id'        	=> ( is => 'ro', isa => 'Maybe[Str]', required => 1 );
+diff -ru -x '*~' Net-Amazon-EC2-0.14-orig2//lib/Net/Amazon/EC2.pm Net-Amazon-EC2-0.14//lib/Net/Amazon/EC2.pm
+--- Net-Amazon-EC2-0.14-orig2//lib/Net/Amazon/EC2.pm	2011-06-16 16:11:53.000000000 +0200
++++ Net-Amazon-EC2-0.14//lib/Net/Amazon/EC2.pm	2011-10-20 20:13:12.585277245 +0200
+@@ -1542,6 +1542,7 @@
+ 	my $self = shift;
+ 	my %args = validate( @_, {
+ 		InstanceId => { type => SCALAR | ARRAYREF, optional => 1 },
++		Action => { default => "DescribeInstances" },
+ 	});
+ 	
+ 	# If we have a array ref of instances lets split them out into their InstanceId.n format
+@@ -1556,7 +1557,8 @@
+ 		$args{"InstanceId.1"} = delete $args{InstanceId};
+ 	}
+ 	
+-	my $xml = $self->_sign(Action  => 'DescribeInstances', %args);
++	my $xml = $self->_sign(Action => $args{Action}, %args);
++	delete $args{Action};
+ 	my $reservations;
+ 	
+ 	if ( grep { defined && length } $xml->{Errors} ) {
+@@ -1635,6 +1637,7 @@
+ 				my $running_instance = Net::Amazon::EC2::RunningInstances->new(
+ 					ami_launch_index		=> $instance_elem->{amiLaunchIndex},
+ 					dns_name				=> $instance_elem->{dnsName},
++					dns_name_v6			=> $instance_elem->{dnsNameV6},
+ 					image_id				=> $instance_elem->{imageId},
+ 					kernel_id				=> $instance_elem->{kernelId},
+ 					ramdisk_id				=> $instance_elem->{ramdiskId},
+@@ -3866,4 +3869,4 @@
+ 
+ =head1 SEE ALSO
+ 
+-Amazon EC2 API: L<http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/>
+\ No newline at end of file
++Amazon EC2 API: L<http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/>
diff --git a/pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch b/pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch
index c08b3579fc3b..5d9aef7f70d4 100644
--- a/pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch
+++ b/pkgs/development/perl-modules/net-amazon-ec2-nova-compat.patch
@@ -1,6 +1,6 @@
 diff -ru -x '*~' Net-Amazon-EC2-0.14-orig/lib/Net/Amazon/EC2.pm Net-Amazon-EC2-0.14/lib/Net/Amazon/EC2.pm
 --- Net-Amazon-EC2-0.14-orig/lib/Net/Amazon/EC2.pm	2010-02-02 02:26:58.000000000 +0100
-+++ Net-Amazon-EC2-0.14/lib/Net/Amazon/EC2.pm	2011-06-16 14:18:19.874176129 +0200
++++ Net-Amazon-EC2-0.14/lib/Net/Amazon/EC2.pm	2011-06-16 16:11:53.861341300 +0200
 @@ -1552,6 +1552,8 @@
  			$args{"InstanceId." . $count} = $instance_id;
  			$count++;
@@ -10,3 +10,12 @@ diff -ru -x '*~' Net-Amazon-EC2-0.14-orig/lib/Net/Amazon/EC2.pm Net-Amazon-EC2-0
  	}
  	
  	my $xml = $self->_sign(Action  => 'DescribeInstances', %args);
+@@ -3739,6 +3741,8 @@
+ 			$args{"InstanceId." . $count} = $instance_id;
+ 			$count++;
+ 		}
++	} else {
++		$args{"InstanceId.1"} = delete $args{InstanceId};
+ 	}
+ 	
+ 	my $xml = $self->_sign(Action  => 'TerminateInstances', %args);	
diff --git a/pkgs/development/python-modules/boto-1.9-python-2.7.patch b/pkgs/development/python-modules/boto-1.9-python-2.7.patch
new file mode 100644
index 000000000000..79ff9a7e4afa
--- /dev/null
+++ b/pkgs/development/python-modules/boto-1.9-python-2.7.patch
@@ -0,0 +1,19 @@
+Fix Boto 1.9 on Python 2.7.
+
+https://github.com/boto/boto/commit/6760075073c34d6dddb7e13b80dfa8d09f0f4f79
+
+diff --git a/boto/connection.py b/boto/connection.py
+index c5779e2..71942f1 100644
+--- a/boto/connection.py
++++ b/boto/connection.py
+@@ -252,8 +252,9 @@ class AWSAuthConnection(object):
+             # versions, it would append ":443" to the hostname sent
+             # in the Host header and so we needed to make sure we
+             # did the same when calculating the V2 signature.  In 2.6
++            # (and higher!)
+             # it no longer does that.  Hence, this kludge.
+-            if sys.version[:3] == "2.6" and port == 443:
++            if sys.version[:3] in ('2.6', '2.7') and port == 443:
+                 signature_host = self.host
+             else:
+                 signature_host = '%s:%d' % (self.host, port)
diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix
index 5c354c8e156f..983555bec437 100644
--- a/pkgs/development/tools/haskell/cabal2nix/default.nix
+++ b/pkgs/development/tools/haskell/cabal2nix/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal2nix";
-  version = "1.17";
-  sha256 = "0pga0rfghpvjazhs0mgnxg2kf82m8bsmlx3g9pxhiw5f4amfr2g7";
+  version = "1.18";
+  sha256 = "1bx9gv5nxz68p8rimai6gy05l84f7n3rajacvg6dak9nsrnbl95i";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ hackageDb HTTP mtl nixosTypes regexPosix ];
diff --git a/pkgs/games/alienarena/default.nix b/pkgs/games/alienarena/default.nix
new file mode 100644
index 000000000000..aa7d2f1e9144
--- /dev/null
+++ b/pkgs/games/alienarena/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, libjpeg, libX11, libXxf86vm, curl, libogg
+, libvorbis, freetype, openal, mesa }:
+stdenv.mkDerivation rec {
+  name = "alienarena-7.52";
+  src = fetchurl {
+    url = "http://icculus.org/alienarena/Files/alienarena-7_52-linux20110929.tar.gz";
+    sha256 = "1s1l3apxsxnd8lyi568y38a1fcdr0gwmc3lkgq2nkc676k4gki3m";
+  };
+  buildInputs = [ pkgconfig libjpeg libX11 curl libogg libvorbis
+                  freetype openal mesa libXxf86vm ];
+  patchPhase = ''
+    substituteInPlace ./configure \
+      --replace libopenal.so.1 ${openal}/lib/libopenal.so.1
+  '';
+  meta = {
+    description = "A free, stand-alone first-person shooter computer game";
+    longDescription = ''
+      Do you like old school deathmatch with modern features? How
+      about rich, colorful, arcade-like atmospheres? How about retro
+      Sci-Fi? Then you're going to love what Alien Arena has in store
+      for you! This game combines some of the very best aspects of
+      such games as Quake III and Unreal Tournament and wraps them up
+      with a retro alien theme, while adding tons of original ideas to
+      make the game quite unique.
+    '';
+    homepage = http://red.planetarena.org;
+    # Engine is under GPLv2, everything else is under
+    license = [ "unfree-redistributable" ];
+    maintainers = with stdenv.lib.maintainers; [ astsmtl ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/bcm43xx/default.nix b/pkgs/os-specific/linux/firmware/bcm43xx/default.nix
new file mode 100644
index 000000000000..9dc67b32c537
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/bcm43xx/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl }:
+
+let
+  src1 = fetchurl {
+    url = "https://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=blob_plain;f=brcm/bcm43xx_hdr-0.fw;hb=15888a2eab052ac3d3f49334e4f6f05f347a516e";
+    sha256 = "d02549964d21dd90fc35806483b9fc871d93d7d38ae1a70a9ce006103c2a3de3";
+    name = "bcm43xx_hdr-0.fw";
+  };
+
+  src2 = fetchurl {
+    url = "https://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=blob_plain;f=brcm/bcm43xx-0.fw;hb=15888a2eab052ac3d3f49334e4f6f05f347a516e";
+    sha256 = "f90f685903127e4db431fe1efccefebf77272712bd4bfe46d1d1d5825ee52797";
+    name = "bcm43xx-0.fw";
+  };
+in
+stdenv.mkDerivation {
+  name = "bcm43xx-firmware-610.811";
+
+  unpackPhase = "true";
+
+  buildPhase = "true";
+
+  installPhase = ''
+    mkdir -p $out/brcm
+    for i in ${src1} ${src2}; do
+      cp -v $i $out/brcm/$(echo $i | sed -r -e 's|.*/[a-z0-9]+-||')
+    done
+  '';
+
+  meta = {
+    description = "Firmware for the Broadcom 43xx 802.11 wireless cards";
+    homepage = http://linuxwireless.org/;
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/linux-3.0.nix b/pkgs/os-specific/linux/kernel/linux-3.0.nix
index 6f1a32e5c0f1..f5ee6711f938 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.0.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.0.nix
@@ -77,8 +77,9 @@ let
       FB_GEODE y
 
       # Video configuration
-      # The intel drivers already require KMS
+      # Enable KMS for devices whose X.org driver supports it.
       DRM_I915_KMS y
+      DRM_RADEON_KMS y
       # Hybrid graphics support
       VGA_SWITCHEROO y
 
@@ -192,6 +193,10 @@ let
       CGROUP_MEM_RES_CTLR_SWAP? y
       DEVPTS_MULTIPLE_INSTANCES? y
 
+      # Enable staging drivers.  These are somewhat experimental, but
+      # they generally don't hurt.
+      STAGING y
+
       ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
       ${extraConfig}
     '';
@@ -200,7 +205,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.0.4";
+    version = "3.0.8";
   
     preConfigure = ''
       substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' ""
@@ -208,7 +213,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.bz2";
-      sha256 = "1vypjcdii75h5f4zsw9lm8wzxd5ix0mk5p94c96hxv828mqqkmhk";
+      sha256 = "1p9sacxz430rmq5zj8pch2i0dczi5jna5g8xf4gni3w436invlaf";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.1.nix b/pkgs/os-specific/linux/kernel/linux-3.1.nix
index 4f8d08340e6a..d37887ec14aa 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.1.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.1.nix
@@ -77,8 +77,9 @@ let
       FB_GEODE y
 
       # Video configuration
-      # The intel drivers already require KMS
+      # Enable KMS for devices whose X.org driver supports it.
       DRM_I915_KMS y
+      DRM_RADEON_KMS y
       # Hybrid graphics support
       VGA_SWITCHEROO y
 
@@ -192,6 +193,10 @@ let
       CGROUP_MEM_RES_CTLR_SWAP? y
       DEVPTS_MULTIPLE_INSTANCES? y
 
+      # Enable staging drivers.  These are somewhat experimental, but
+      # they generally don't hurt.
+      STAGING y
+
       ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
       ${extraConfig}
     '';
@@ -200,18 +205,17 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.1-rc8";
+    version = "3.1";
 
-    modDirVersion = "3.1.0-rc8";
+    modDirVersion = "3.1.0";
 
     preConfigure = ''
       substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' ""
     '';
   
     src = fetchurl {
-      url = "https://github.com/torvalds/linux/tarball/v${version}";
-      sha256 = "1sz6snv2wavzasrswaprkjpzpll4247v4br0x2i6sndl2nqa6jz7";
-      name = "v${version}.tar.gz";
+      url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.bz2";
+      sha256 = "0nck9cx66crqhw17y4vc3rfqrcz5269nwn2p5dh0qjvmihvx4wr5";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix
index b8cd2b18bc7c..e1b8c0d28364 100644
--- a/pkgs/os-specific/linux/klibc/default.nix
+++ b/pkgs/os-specific/linux/klibc/default.nix
@@ -1,9 +1,18 @@
-{stdenv, fetchurl, perl, bison, mktemp, linuxHeaders, linuxHeadersCross}:
+{
+  stdenv,
+  fetchurl,
+  perl,
+  bison,
+  mktemp,
+  linuxHeaders,
+  linuxHeadersCross,
+  kernel ? null
+}:
 
 assert stdenv.isLinux;
 
 let
-  version = "1.5.20";
+  version = "1.5.24";
   baseMakeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"];
 in
 
@@ -11,18 +20,16 @@ stdenv.mkDerivation {
   name = "klibc-${version}";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/libs/klibc/1.5/klibc-${version}.tar.bz2";
-    sha256 = "07683dn18r3k35d6pp0sn88pqcx7dldqx3m6f2gz45i1j094qp7m";
+    url = "http://ftp.eu.openbsd.org/pub/linux/libs/klibc/1.5/klibc-${version}.tar.bz2";
+    sha256 = "18lm32dlj9k2ky9wwk274zmc3jndgrb41b6qm82g3lza6wlw3yki";
   };
 
-  patches = [ ./make382.patch ];
-
   # Trick to make this build on nix. It expects to have the kernel sources
   # instead of only the linux kernel headers.
   # So it cannot run the 'make headers_install' it wants to run.
   # We don't install the headers, so klibc will not be useful as libc, but
   # usually in nixpkgs we only use the userspace tools comming with klibc.
-  prePatch = ''
+  prePatch = stdenv.lib.optionalString (kernel == null) ''
     sed -i -e /headers_install/d scripts/Kbuild.install
   '';
   
@@ -51,10 +58,18 @@ stdenv.mkDerivation {
     echo "CONFIG_AEABI=y" >> defconfig
     makeFlags=$(eval "echo $makeFlags")
 
+  '' + (if kernel == null then ''
     mkdir linux
     cp -prsd $linuxHeaders/include linux/
     chmod -R u+w linux/include/
-  ''; # */
+  '' else ''
+    tar xvf ${kernel.src}
+    mv linux* linux
+    cd linux
+    ln -sv ${kernel}/config .config
+    make prepare
+    cd ..
+  '');
   
   # Install static binaries as well.
   postInstall = ''
diff --git a/pkgs/os-specific/linux/klibc/make382.patch b/pkgs/os-specific/linux/klibc/make382.patch
deleted file mode 100644
index e9e9aba4e792..000000000000
--- a/pkgs/os-specific/linux/klibc/make382.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-To avoid an endless loop with gnumake 3.82
-http://www.mail-archive.com/pld-cvs-commit@lists.pld-linux.org/msg228690.html
-
-Index: packages/klibc/klibc-make.patch
---- klibc-1.5.19/scripts/Kbuild.include.orig   2010-08-19 09:39:45.986816591 
-0200
-+++ klibc-1.5.19/scripts/Kbuild.include        2010-08-19 09:49:15.010816591 
-0200
-@@ -127,7 +127,7 @@
- # >'< substitution is for echo to work, >$< substitution to preserve $ when reloading .cmd file
- # note: when using inline perl scripts [perl -e '...$$t=1;...'] in $(cmd_xxx) double $$ your perl vars
- #
--if_changed = $(if $(strip $(filter-out $(PHONY),$?)          \
-+if_changed = $(if $(strip $(filter-out $(PHONY) FORCE,$?)          \
- 		$(call arg-check, $(cmd_$(1)), $(cmd_$@)) ), \
- 	@set -e; \
- 	$(echo-cmd) $(cmd_$(1)); \
-@@ -135,7 +135,7 @@
- 
- # execute the command and also postprocess generated .d dependencies
- # file
--if_changed_dep = $(if $(strip $(filter-out $(PHONY),$?)  \
-+if_changed_dep = $(if $(strip $(filter-out $(PHONY) FORCE,$?)  \
- 		$(filter-out FORCE $(wildcard $^),$^)    \
- 	$(call arg-check, $(cmd_$(1)), $(cmd_$@)) ),     \
- 	@set -e; \
-@@ -147,7 +147,7 @@
- # Usage: $(call if_changed_rule,foo)
- # will check if $(cmd_foo) changed, or any of the prequisites changed,
- # and if so will execute $(rule_foo)
--if_changed_rule = $(if $(strip $(filter-out $(PHONY),$?)            \
-+if_changed_rule = $(if $(strip $(filter-out $(PHONY) FORCE,$?)            \
- 			$(call arg-check, $(cmd_$(1)), $(cmd_$@)) ),\
- 			@set -e; \
- 			$(rule_$(1)))
diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix
index 3f35d3304ce0..821084c1b332 100644
--- a/pkgs/os-specific/linux/qemu-kvm/default.nix
+++ b/pkgs/os-specific/linux/qemu-kvm/default.nix
@@ -4,11 +4,11 @@
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "qemu-kvm-0.15.0";
+  name = "qemu-kvm-0.15.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/kvm/${name}.tar.gz";
-    sha256 = "0y247bc2cyawliaiyk8k41kl3mcjvh52b9bgzvxv0h55zwdpg3l2";
+    sha256 = "0gkk96yid3nq8i4z8xbiarj0r9v7b2zavf5mnh0rc7kclzxa7mmf";
   };
 
   patches = [ ./smb-tmpdir.patch ];
diff --git a/pkgs/os-specific/linux/regionset/default.nix b/pkgs/os-specific/linux/regionset/default.nix
new file mode 100644
index 000000000000..699c4cd82b85
--- /dev/null
+++ b/pkgs/os-specific/linux/regionset/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "regionset-20030629";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/dvd/regionset.tar.gz";
+    sha256 = "0ssr7s0g60kq04y8v60rh2fzn9wp93al3v4rl0ybza1skild9v70";
+  };
+
+  installPhase = "mkdir -p $out/sbin; cp regionset $out/sbin";
+
+  meta = {
+    homepage = http://dvd.sourceforge.net/;
+    descriptions = "Tool for changing the region code setting of DVD players";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/v86d/default.nix b/pkgs/os-specific/linux/v86d/default.nix
new file mode 100644
index 000000000000..c8924f91c57a
--- /dev/null
+++ b/pkgs/os-specific/linux/v86d/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, klibc, kernel, withKlibc ? true}:
+
+stdenv.mkDerivation rec {
+  name = "v86d-0.1.10";
+
+  src = fetchurl {
+    url = "http://dev.gentoo.org/~spock/projects/uvesafb/archive/${name}.tar.bz2";
+    sha256 = "0p3kwqjis941pns9948dxfnjnl5lwd8f2b6x794whs7g32p68jb3";
+  };
+
+  buildInputs = stdenv.lib.optional withKlibc klibc;
+
+  configurePhase = ''
+    bash ./configure $configureFlags
+  '';
+
+  configureFlags = if withKlibc then [ "--with-klibc" ] else [ "--default" ];
+
+  makeFlags = [
+    "KDIR=${kernel}/lib/modules/${kernel.modDirVersion}/source"
+    "DESTDIR=$(out)"
+  ];
+
+  meta = {
+    description = "A userspace helper that runs x86 code in an emulated environment";
+    homepage = http://dev.gentoo.org/~spock/projects/uvesafb/;
+    license = "BSD";
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
+
diff --git a/pkgs/servers/mail/dovecot/2.0.nix b/pkgs/servers/mail/dovecot/2.0.nix
new file mode 100644
index 000000000000..a2278533dad8
--- /dev/null
+++ b/pkgs/servers/mail/dovecot/2.0.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl, openssl, pam}:
+
+stdenv.mkDerivation {
+  name = "dovecot-2.0.15";
+
+  buildInputs = [openssl pam];
+
+  src = fetchurl {
+    url = http://dovecot.org/releases/2.0/dovecot-2.0.15.tar.gz;
+    sha256 = "03byp6alxxk65qfjjnqp6kcncs5cdiqgskx90nk9kcnynl1h6r33";
+  };
+
+  meta = {
+    homepage = http://dovecot.org/;
+    description = "Open source IMAP and POP3 email server written with security primarily in mind";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+  
+}
diff --git a/pkgs/servers/samba/default.nix b/pkgs/servers/samba/default.nix
index c76c52e5fcc4..a6ade7400e86 100644
--- a/pkgs/servers/samba/default.nix
+++ b/pkgs/servers/samba/default.nix
@@ -21,13 +21,18 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "samba-3.6.0";
+  name = "samba-3.6.1";
 
   src = fetchurl {
     url = "http://us3.samba.org/samba/ftp/stable/${name}.tar.gz";
-    sha256 = "0gzm09l75i95iibcxykc2h2m9haqx70jp1bpis1mhmvqwillbhg1";
+    sha256 = "0r6mbghja357xhpada5djg0gpczi50f18ap53hdn8b7y0amz5c65";
   };
 
+  patches =
+    [ # Fix for https://bugzilla.samba.org/show_bug.cgi?id=8541.
+      ./readlink.patch
+    ];
+
   buildInputs = [ readline pam openldap popt iniparser libunwind fam acl cups ]
     ++ stdenv.lib.optional useKerberos kerberos;
 
@@ -37,7 +42,6 @@ stdenv.mkDerivation rec {
 
   configureFlags = ''
     --with-pam
-    --with-cifsmount
     --with-aio-support
     --with-pam_smbpass
     --disable-swat
diff --git a/pkgs/servers/samba/readlink.patch b/pkgs/servers/samba/readlink.patch
new file mode 100644
index 000000000000..84c0e021b1c6
--- /dev/null
+++ b/pkgs/servers/samba/readlink.patch
@@ -0,0 +1,217 @@
+diff --git a/source3/include/smb.h b/source3/include/smb.h
+index 3a64af7..549ebb2 100644
+--- a/source3/include/smb.h
++++ b/source3/include/smb.h
+@@ -1714,6 +1714,7 @@ struct smb_file_time {
+ #define UCF_ALWAYS_ALLOW_WCARD_LCOMP	0x00000002
+ #define UCF_COND_ALLOW_WCARD_LCOMP	0x00000004
+ #define UCF_POSIX_PATHNAMES		0x00000008
++#define UCF_UNIX_NAME_LOOKUP		0x00000010
+ 
+ /*
+  * smb_filename
+diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c
+index 25301e6..b2ed239 100644
+--- a/source3/smbd/filename.c
++++ b/source3/smbd/filename.c
+@@ -383,7 +383,7 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
+ 
+ 	if((!conn->case_sensitive || !(conn->fs_capabilities &
+ 				       FILE_CASE_SENSITIVE_SEARCH)) &&
+-	    stat_cache_lookup(conn, &smb_fname->base_name, &dirpath, &start,
++	    stat_cache_lookup(conn, posix_pathnames, &smb_fname->base_name, &dirpath, &start,
+ 			      &smb_fname->st)) {
+ 		goto done;
+ 	}
+@@ -977,26 +977,39 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
+ }
+ 
+ /****************************************************************************
+- Check a filename - possibly calling check_reduced_name.
+- This is called by every routine before it allows an operation on a filename.
+- It does any final confirmation necessary to ensure that the filename is
+- a valid one for the user to access.
++ Ensure a path is not vetod.
+ ****************************************************************************/
+ 
+-NTSTATUS check_name(connection_struct *conn, const char *name)
++NTSTATUS check_veto_path(connection_struct *conn, const char *name)
+ {
+ 	if (IS_VETO_PATH(conn, name))  {
+ 		/* Is it not dot or dot dot. */
+-		if (!((name[0] == '.') && (!name[1] ||
+-					(name[1] == '.' && !name[2])))) {
+-			DEBUG(5,("check_name: file path name %s vetoed\n",
++		if (!(ISDOT(name) || ISDOTDOT(name))) {
++			DEBUG(5,("check_veto_path: file path name %s vetoed\n",
+ 						name));
+ 			return map_nt_error_from_unix(ENOENT);
+ 		}
+ 	}
++	return NT_STATUS_OK;
++}
++
++/****************************************************************************
++ Check a filename - possibly calling check_reduced_name.
++ This is called by every routine before it allows an operation on a filename.
++ It does any final confirmation necessary to ensure that the filename is
++ a valid one for the user to access.
++****************************************************************************/
++
++NTSTATUS check_name(connection_struct *conn, const char *name)
++{
++	NTSTATUS status = check_veto_path(conn, name);
++
++	if (!NT_STATUS_IS_OK(status)) {
++		return status;
++	}
+ 
+ 	if (!lp_widelinks(SNUM(conn)) || !lp_symlinks(SNUM(conn))) {
+-		NTSTATUS status = check_reduced_name(conn,name);
++		status = check_reduced_name(conn,name);
+ 		if (!NT_STATUS_IS_OK(status)) {
+ 			DEBUG(5,("check_name: name %s failed with %s\n",name,
+ 						nt_errstr(status)));
+@@ -1314,6 +1327,12 @@ NTSTATUS filename_convert(TALLOC_CTX *ctx,
+ 		return status;
+ 	}
+ 
++	if ((ucf_flags & UCF_UNIX_NAME_LOOKUP) &&
++			VALID_STAT((*pp_smb_fname)->st) &&
++			S_ISLNK((*pp_smb_fname)->st.st_ex_mode)) {
++		return check_veto_path(conn, (*pp_smb_fname)->base_name);
++	}
++
+ 	status = check_name(conn, (*pp_smb_fname)->base_name);
+ 	if (!NT_STATUS_IS_OK(status)) {
+ 		DEBUG(3,("filename_convert: check_name failed "
+diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h
+index c455ffe..02b5e40 100644
+--- a/source3/smbd/proto.h
++++ b/source3/smbd/proto.h
+@@ -336,6 +336,7 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
+ 		      const char *orig_path,
+ 		      struct smb_filename **smb_fname,
+ 		      uint32_t ucf_flags);
++NTSTATUS check_veto_path(connection_struct *conn, const char *name);
+ NTSTATUS check_name(connection_struct *conn, const char *name);
+ int get_real_filename(connection_struct *conn, const char *path,
+ 		      const char *name, TALLOC_CTX *mem_ctx,
+@@ -1037,6 +1038,7 @@ void stat_cache_add( const char *full_orig_name,
+ 		char *translated_path,
+ 		bool case_sensitive);
+ bool stat_cache_lookup(connection_struct *conn,
++			bool posix_paths,
+ 			char **pp_name,
+ 			char **pp_dirpath,
+ 			char **pp_start,
+diff --git a/source3/smbd/statcache.c b/source3/smbd/statcache.c
+index e2ccc74..e910982 100644
+--- a/source3/smbd/statcache.c
++++ b/source3/smbd/statcache.c
+@@ -150,6 +150,7 @@ void stat_cache_add( const char *full_orig_name,
+  * Look through the stat cache for an entry
+  *
+  * @param conn    A connection struct to do the stat() with.
++ * @param posix_paths Whether to lookup using stat() or lstat()
+  * @param name    The path we are attempting to cache, modified by this routine
+  *                to be correct as far as the cache can tell us. We assume that
+  *		  it is a talloc'ed string from top of stack, we free it if
+@@ -166,6 +167,7 @@ void stat_cache_add( const char *full_orig_name,
+  */
+ 
+ bool stat_cache_lookup(connection_struct *conn,
++			bool posix_paths,
+ 			char **pp_name,
+ 			char **pp_dirpath,
+ 			char **pp_start,
+@@ -181,6 +183,7 @@ bool stat_cache_lookup(connection_struct *conn,
+ 	char *name;
+ 	TALLOC_CTX *ctx = talloc_tos();
+ 	struct smb_filename smb_fname;
++	int ret;
+ 
+ 	*pp_dirpath = NULL;
+ 	*pp_start = *pp_name;
+@@ -283,7 +286,13 @@ bool stat_cache_lookup(connection_struct *conn,
+ 	ZERO_STRUCT(smb_fname);
+ 	smb_fname.base_name = translated_path;
+ 
+-	if (SMB_VFS_STAT(conn, &smb_fname) != 0) {
++	if (posix_paths) {
++		ret = SMB_VFS_LSTAT(conn, &smb_fname);
++	} else {
++		ret = SMB_VFS_STAT(conn, &smb_fname);
++	}
++
++	if (ret != 0) {
+ 		/* Discard this entry - it doesn't exist in the filesystem. */
+ 		memcache_delete(smbd_memcache(), STAT_CACHE,
+ 				data_blob_const(chk_name, strlen(chk_name)));
+diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
+index 0931fff..129ab01 100644
+--- a/source3/smbd/trans2.c
++++ b/source3/smbd/trans2.c
+@@ -2271,6 +2271,7 @@ static void call_trans2findfirst(connection_struct *conn,
+ 	TALLOC_CTX *ctx = talloc_tos();
+ 	struct dptr_struct *dirptr = NULL;
+ 	struct smbd_server_connection *sconn = req->sconn;
++	uint32_t ucf_flags = (UCF_SAVE_LCOMP | UCF_ALWAYS_ALLOW_WCARD_LCOMP);
+ 
+ 	if (total_params < 13) {
+ 		reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
+@@ -2314,6 +2315,7 @@ close_if_end = %d requires_resume_key = %d level = 0x%x, max_data_bytes = %d\n",
+ 				reply_nterror(req, NT_STATUS_INVALID_LEVEL);
+ 				goto out;
+ 			}
++			ucf_flags |= UCF_UNIX_NAME_LOOKUP;
+ 			break;
+ 		default:
+ 			reply_nterror(req, NT_STATUS_INVALID_LEVEL);
+@@ -2331,8 +2333,7 @@ close_if_end = %d requires_resume_key = %d level = 0x%x, max_data_bytes = %d\n",
+ 	ntstatus = filename_convert(ctx, conn,
+ 				    req->flags2 & FLAGS2_DFS_PATHNAMES,
+ 				    directory,
+-				    (UCF_SAVE_LCOMP |
+-					UCF_ALWAYS_ALLOW_WCARD_LCOMP),
++				    ucf_flags,
+ 				    &mask_contains_wcard,
+ 				    &smb_dname);
+ 	if (!NT_STATUS_IS_OK(ntstatus)) {
+@@ -5103,6 +5104,7 @@ static void call_trans2qfilepathinfo(connection_struct *conn,
+ 	} else {
+ 		uint32_t name_hash;
+ 		char *fname = NULL;
++		uint32_t ucf_flags = 0;
+ 
+ 		/* qpathinfo */
+ 		if (total_params < 7) {
+@@ -5114,9 +5116,16 @@ static void call_trans2qfilepathinfo(connection_struct *conn,
+ 
+ 		DEBUG(3,("call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = %d\n", info_level));
+ 
+-		if (INFO_LEVEL_IS_UNIX(info_level) && !lp_unix_extensions()) {
+-			reply_nterror(req, NT_STATUS_INVALID_LEVEL);
+-			return;
++		if (INFO_LEVEL_IS_UNIX(info_level)) {
++			if (!lp_unix_extensions()) {
++				reply_nterror(req, NT_STATUS_INVALID_LEVEL);
++				return;
++			}
++			if (info_level == SMB_QUERY_FILE_UNIX_BASIC ||
++					info_level == SMB_QUERY_FILE_UNIX_INFO2 ||
++					info_level == SMB_QUERY_FILE_UNIX_LINK) {
++				ucf_flags |= UCF_UNIX_NAME_LOOKUP;
++			}
+ 		}
+ 
+ 		srvstr_get_path(req, params, req->flags2, &fname, &params[6],
+@@ -5131,7 +5140,7 @@ static void call_trans2qfilepathinfo(connection_struct *conn,
+ 					conn,
+ 					req->flags2 & FLAGS2_DFS_PATHNAMES,
+ 					fname,
+-					0,
++					ucf_flags,
+ 					NULL,
+ 					&smb_fname);
+ 		if (!NT_STATUS_IS_OK(status)) {
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index 3e596c4ef0ea..311d967c0a34 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -11,6 +11,7 @@ rec {
   # Override the compiler in stdenv for specific packages.
   overrideGCC = stdenv: gcc: stdenv //
     { mkDerivation = args: stdenv.mkDerivation (args // { NIX_GCC = gcc; });
+      inherit gcc;
     };
 
     
diff --git a/pkgs/tools/misc/qjoypad/default.nix b/pkgs/tools/misc/qjoypad/default.nix
new file mode 100644
index 000000000000..b6c69be2f09e
--- /dev/null
+++ b/pkgs/tools/misc/qjoypad/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, libX11, libXtst, qt4 }:
+stdenv.mkDerivation rec {
+  name = "qjoypad-4.1.0";
+  src = fetchurl {
+    url = "mirror://sourceforge/qjoypad/${name}.tar.gz";
+    sha256 = "1jlm7i26nfp185xrl41kz5z6fgvyj51bjpz48cg27xx64y40iamm";
+  };
+  buildInputs = [ pkgconfig libX11 libXtst qt4 ];
+  patchPhase = ''
+    cd src
+    substituteInPlace config --replace /bin/bash /bin/sh
+    ensureDir $out
+    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath ${libX11}/lib"
+  '';
+  meta = {
+    description = "A program that lets you use gaming devices anywhere";
+    longDescription = ''
+      A simple Linux/QT program that lets you use your gaming devices
+      where you want them: in your games! QJoyPad takes input from a
+      gamepad or joystick and translates it into key strokes or mouse
+      actions, letting you control any XWindows program with your game
+      controller. This lets you play all those games that for some
+      reason don't have joystick support with your joystick. QJoyPad
+      also gives you the advantage of multiple saved layouts so you
+      can have a separate setting for every game, or for every class
+      of game! That way you can play your games the way you want, not
+      the way the programmers decided, and you can have the same
+      button be "fire" in every one of your space fighters. QJoyPad
+      gives you the freedom and flexibility to really take advantage
+      of gaming devices in Linux, and makes the Linux gaming
+      experience just a little bit nicer.
+    '';
+    homepage = http://qjoypad.sourceforge.net;
+    license = with stdenv.lib.licenses; gpl2;
+    maintainers = with stdenv.lib.maintainers; [ astsmtl ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/tools/networking/mu0/default.nix b/pkgs/tools/networking/mu0/default.nix
new file mode 100644
index 000000000000..a772f2375004
--- /dev/null
+++ b/pkgs/tools/networking/mu0/default.nix
@@ -0,0 +1,25 @@
+{ fetchurl, stdenv, sqlite, pkgconfig, xapian, glib, gmime }:
+
+stdenv.mkDerivation rec {
+  name = "mu0-0.9.7";
+
+  src = fetchurl {
+    url = http://mu0.googlecode.com/files/mu-0.9.7.tar.gz;
+    sha256 = "14nyn791ficyllj9idhiq3mncwnrg71lfxk126804dxba1l90r72";
+  };
+
+  buildInputs = [ sqlite pkgconfig xapian glib gmime ];
+
+  /* The tests don't pass */
+  doCheck = false;
+
+  meta = {
+    description = "mu is a collection of utilties for indexing and searching Maildirs";
+
+    licenses = [ "GPLv3+" ];
+
+    homepage = http://code.google.com/p/mu0/;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/package-management/disnix/activation-scripts/default.nix b/pkgs/tools/package-management/disnix/activation-scripts/default.nix
index 4e1442935ee5..8725f5d12508 100644
--- a/pkgs/tools/package-management/disnix/activation-scripts/default.nix
+++ b/pkgs/tools/package-management/disnix/activation-scripts/default.nix
@@ -16,10 +16,10 @@ assert enableSubversionRepository -> subversion != null;
 assert enableEjabberdDump -> ejabberd != null;
 
 stdenv.mkDerivation {
-  name = "disnix-activation-scripts-0.2";
+  name = "disnix-activation-scripts-0.3pre29887";
   src = fetchurl {
-    url = http://hydra.nixos.org/build/910903/download/1/disnix-activation-scripts-0.2.tar.gz;
-    sha256 = "0r7yqvh3jnbvpb6lmr10lm4r5pvi4jaw0c6rhlyl5q6nh3mxymnd";
+    url = http://hydra.nixos.org/build/1461490/download/1/disnix-activation-scripts-0.3pre29887.tar.gz;
+    sha256 = "034mx096iz9dqjsrxh6jkvcwch399gfsahrm6vfnswz9jfvfdcw0";
   };
   
   preConfigure = if enableEjabberdDump then "export PATH=$PATH:${ejabberd}/sbin" else "";
diff --git a/pkgs/tools/package-management/disnix/default.nix b/pkgs/tools/package-management/disnix/default.nix
index fbb19159ef86..631db35a9b01 100644
--- a/pkgs/tools/package-management/disnix/default.nix
+++ b/pkgs/tools/package-management/disnix/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, pkgconfig, dbus_glib, libxml2, libxslt, getopt, nixUnstable, gettext, libiconv}:
 
 stdenv.mkDerivation {
-  name = "disnix-0.3pre27244";
+  name = "disnix-0.3pre29816";
   src = fetchurl {
-    url = http://hydra.nixos.org/build/1083290/download/4/disnix-0.3pre27244.tar.gz;
-    sha256 = "1x7y34mxs26k019y9y8fsnzdk7wmjqfmybw99qgqqxy5kblvlzns";
+    url = http://hydra.nixos.org/build/1453079/download/4/disnix-0.3pre29816.tar.gz;
+    sha256 = "13gi0zs0a8pvgmgh3h431ydran3qf3px5m3d6vddd9b225kbkgwz";
   };
   buildInputs = [ pkgconfig dbus_glib libxml2 libxslt getopt nixUnstable ]
                 ++ stdenv.lib.optional (!stdenv.isLinux) libiconv
diff --git a/pkgs/tools/package-management/disnix/disnixos/default.nix b/pkgs/tools/package-management/disnix/disnixos/default.nix
index 1a7ca5716044..92914dd1cadf 100644
--- a/pkgs/tools/package-management/disnix/disnixos/default.nix
+++ b/pkgs/tools/package-management/disnix/disnixos/default.nix
@@ -1,17 +1,17 @@
 {stdenv, fetchurl, disnix, socat, pkgconfig}:
 
 stdenv.mkDerivation {
-  name = "disnixos-0.2pre27672";
+  name = "disnixos-0.2pre29928";
   src = fetchurl {
-    url = http://hydra.nixos.org/build/1153468/download/3/disnixos-0.2pre27672.tar.gz;
-    sha256 = "0z74p9fnvchvl78brj2p3r9h0wwvpl86zk0ynzqcf8ww0h71ws08";
+    url = http://hydra.nixos.org/build/1464065/download/3/disnixos-0.2pre29928.tar.gz;
+    sha256 = "0l7kszbpi8lzq95khi45fbq71l5csf8kamds4va6bxsyfwxrx6sm";
   };
   buildInputs = [ socat pkgconfig disnix ];
   dontStrip = true;
   NIX_STRIP_DEBUG = true;
   
   meta = {
-    description = "Provides complementary NixOS infrastructure deployment to NixOS";
+    description = "Provides complementary NixOS infrastructure deployment to Disnix";
     license = "LGPLv2.1+";
     maintainers = [ stdenv.lib.maintainers.sander ];
   };
diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix
index 140e0008ed83..154f6acc09bf 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -1,14 +1,14 @@
 {stdenv, fetchurl}:
 
 let
-  name = "smartmontools-5.41";
+  name = "smartmontools-5.42";
 in
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "mirror://sourceforge/smartmontools/${name}.tar.gz";
-    sha256 = "173eb14e3253a30230f38c7e684085bcae7fa021efff58bdf94c2702ac76fa32";
+    sha256 = "b664d11e814e114ce3a32a4fa918c9e649c684e2897c007b2a8b92574decc374";
   };
 
   meta = {
diff --git a/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix b/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
index d0ab00057f5a..f6f32a7c5b79 100644
--- a/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
+++ b/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, unzip, ruby, openssl, makeWrapper }:
 
 stdenv.mkDerivation {
-  name = "ec2-ami-tools-1.3-53773";
+  name = "ec2-ami-tools-1.4.0.1";
   
   buildInputs = [ unzip makeWrapper ];
   
   src = fetchurl {
     url = http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip;
-    sha256 = "310e3b405c11b979b1cd210c5b4c32e97065d616f6bfa449c4e1e50420ce8002";
+    sha256 = "1fjg3gx5k0z8r4apg5whz3yxc3xnz7z5g6j93hf765lfriz1rccz";
   };
 
   # Amazon EC2 requires that disk images are writable.  If they're
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
       done
       
       sed -i 's|/bin/bash|${stdenv.shell}|' $out/lib/ec2/platform/base/pipeline.rb
-    ''; 
+    '';  # */
 
   meta = {
     homepage = http://developer.amazonwebservices.com/connect/entry.jspa?externalID=368&categoryID=88;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c15f1f093d0e..b8c5237f0491 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -899,6 +899,8 @@ let
 
   most = callPackage ../tools/misc/most { };
 
+  netperf = callPackage ../applications/networking/netperf { };
+
   ninka = callPackage ../development/tools/misc/ninka { };
 
   nodejs = callPackage ../development/web/nodejs {};
@@ -927,6 +929,8 @@ let
 
   lzop = callPackage ../tools/compression/lzop { };
 
+  mu0 = callPackage ../tools/networking/mu0 { };
+
   mailutils = callPackage ../tools/networking/mailutils {
     guile = guile_1_8;
   };
@@ -1228,6 +1232,8 @@ let
 
   qhull = callPackage ../development/libraries/qhull { };
 
+  qjoypad = callPackage ../tools/misc/qjoypad { };
+
   qshowdiff = callPackage ../tools/text/qshowdiff { };
 
   radvd = callPackage ../tools/networking/radvd { };
@@ -1636,7 +1642,19 @@ let
 
   ccl = builderDefsPackage ../development/compilers/ccl {};
 
-  clang = wrapClang (llvm.override { buildClang = true; });
+  clangBootUnwrapped = callPackage ../development/compilers/llvm/clang.nix { };
+
+  clangBoot = wrapClang clangBootUnwrapped;
+
+  clangUnwrapped = let clangBootStdenv = stdenvAdapters.overrideGCC stdenv clangBoot; in clangBootUnwrapped.override {
+    stdenv = clangBootStdenv;
+    llvm = llvm.override { stdenv = clangBootStdenv; };
+  };
+
+  clang = wrapClang clangUnwrapped;
+
+  #Use this instead of stdenv to build with clang
+  clangStdenv = stdenvAdapters.overrideGCC stdenv clang;
 
   clangSVN = llvmSVN.override {
     buildClang = true;
@@ -1647,10 +1665,7 @@ let
   cmucl_binary = callPackage ../development/compilers/cmucl/binary.nix { };
 
   dylan = callPackage ../development/compilers/gwydion-dylan {
-    dylan =
-      import ../development/compilers/gwydion-dylan/binary.nix {
-        inherit fetchurl stdenv;
-  };
+    dylan = callPackage ../development/compilers/gwydion-dylan/binary.nix {  };
   };
 
   ecl = callPackage ../development/compilers/ecl { };
@@ -4870,6 +4885,7 @@ let
 
   dovecot = callPackage ../servers/mail/dovecot { };
   dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
+  dovecot_2_0 = callPackage ../servers/mail/dovecot/2.0.nix { };
 
   ejabberd = callPackage ../servers/xmpp/ejabberd {
     erlang = erlangR13B ;
@@ -5069,6 +5085,8 @@ let
 
   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
 
+  bcm43xx = callPackage ../os-specific/linux/firmware/bcm43xx { };
+
   bluez = callPackage ../os-specific/linux/bluez { };
 
   bridge_utils = callPackage ../os-specific/linux/bridge-utils { };
@@ -5744,6 +5762,10 @@ let
       inherit kernel perl;
     };
 
+    klibc = callPackage ../os-specific/linux/klibc {
+      linuxHeaders = glibc.kernelHeaders;
+    };
+
     splashutils =
       if kernel.features ? fbConDecor then pkgs.splashutils else null;
 
@@ -5778,6 +5800,8 @@ let
       inherit (gnome) gtkmm libglademm;
     };
 
+    v86d = callPackage ../os-specific/linux/v86d { };
+
     virtualbox = callPackage ../applications/virtualization/virtualbox {
       stdenv = stdenv_32bit;
       inherit (gnome) libIDL;
@@ -5966,6 +5990,8 @@ let
   radeonR600 = callPackage ../os-specific/linux/firmware/radeon-r600 { };
   radeonJuniper = callPackage ../os-specific/linux/firmware/radeon-juniper { };
 
+  regionset = callPackage ../os-specific/linux/regionset { };
+
   rfkill = callPackage ../os-specific/linux/rfkill { };
 
   rt2860fw = callPackage ../os-specific/linux/firmware/rt2860 { };
@@ -7036,7 +7062,11 @@ let
 
   mercurial = callPackage ../applications/version-management/mercurial {
     guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
-    inherit (pythonPackages) ssl;
+    inherit (pythonPackages) ssl curses;
+    # when used with hg-fast-export (git) mercurials files are using
+    # httplib.FakeSocket which is not provided after python 2.6.  (httplib2
+    # has removed it from its interface).
+    python = python27;
   };
 
   merkaartor = callPackage ../applications/misc/merkaartor { };
@@ -7688,6 +7718,8 @@ let
 
   ### GAMES
 
+  alienarena = callPackage ../games/alienarena { };
+
   asc = callPackage ../games/asc {
     lua = lua5;
     libsigcxx = libsigcxx12;
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index aae148078556..5a1e68b2f0f7 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -366,7 +366,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   ACVector = callPackage ../development/libraries/haskell/AC-Vector {};
 
-  aeson = callPackage ../development/libraries/haskell/aeson {};
+  aeson = callPackage ../development/libraries/haskell/aeson {
+    vector = self.vector_0_7_1;
+  };
 
   aesonNative = callPackage ../development/libraries/haskell/aeson-native {};
 
@@ -418,7 +420,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   blazeHtml = callPackage ../development/libraries/haskell/blaze-html {};
 
-  blazeTextual = callPackage ../development/libraries/haskell/blaze-textual {};
+  blazeTextual = callPackage ../development/libraries/haskell/blaze-textual {
+    vector = self.vector_0_7_1;
+  };
 
   blazeTextualNative = callPackage ../development/libraries/haskell/blaze-textual-native {};
 
@@ -432,6 +436,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   bytestringTrie = callPackage ../development/libraries/haskell/bytestring-trie {};
 
+  cabalFileTh = callPackage ../development/libraries/haskell/cabal-file-th {};
+
   cairo = callPackage ../development/libraries/haskell/cairo {
     inherit (pkgs) cairo zlib;
     libc = pkgs.stdenv.gcc.libc;
@@ -484,7 +490,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   cprngAes = callPackage ../development/libraries/haskell/cprng-aes {};
 
-  criterion = callPackage ../development/libraries/haskell/criterion {};
+  criterion = callPackage ../development/libraries/haskell/criterion {
+    vector = self.vector_0_7_1;
+  };
 
   Crypto = callPackage ../development/libraries/haskell/Crypto {};
 
@@ -579,7 +587,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   fingertree = callPackage ../development/libraries/haskell/fingertree {};
 
-  gamma = callPackage ../development/libraries/haskell/gamma {};
+  gamma = callPackage ../development/libraries/haskell/gamma {
+    vector = self.vector_0_7_1;
+  };
 
   gdiff = callPackage ../development/libraries/haskell/gdiff {};
 
@@ -872,7 +882,12 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   murmurHash = callPackage ../development/libraries/haskell/murmur-hash {};
 
-  mwcRandom = callPackage ../development/libraries/haskell/mwc-random {};
+  mwcRandom = callPackage ../development/libraries/haskell/mwc-random {
+    primitive = self.primitive_0_3_1;
+    vector = self.vector_0_7_1;
+  };
+
+  NanoProlog = callPackage ../development/libraries/haskell/NanoProlog {};
 
   neither = callPackage ../development/libraries/haskell/neither {};
 
@@ -953,7 +968,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   primitive_0_3_1 = callPackage ../development/libraries/haskell/primitive/0.3.1.nix {};
   primitive_0_4_0_1 = callPackage ../development/libraries/haskell/primitive/0.4.0.1.nix {};
-  primitive = self.primitive_0_3_1;
+  primitive = self.primitive_0_4_0_1;
 
   processLeksah = callPackage ../development/libraries/haskell/leksah/process-leksah.nix {};
 
@@ -991,7 +1006,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   random = null; # core package until ghc-7.2.1
   random_newtime = self.random_1_0_0_2_newtime;
 
-  randomFu = callPackage ../development/libraries/haskell/random-fu {};
+  randomFu = callPackage ../development/libraries/haskell/random-fu {
+    vector = self.vector_0_7_1;
+  };
 
   randomSource = callPackage ../development/libraries/haskell/random-source {};
 
@@ -1039,9 +1056,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   regular = callPackage ../development/libraries/haskell/regular {};
 
-  repa = callPackage ../development/libraries/haskell/repa {
-    vector = self.vector_0_9;
-  };
+  repa = callPackage ../development/libraries/haskell/repa {};
 
   repaAlgorithms = callPackage ../development/libraries/haskell/repa-algorithms {};
 
@@ -1067,15 +1082,22 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   smallcheck = callPackage ../development/libraries/haskell/smallcheck {};
 
-  snapCore = callPackage ../development/libraries/haskell/snap/core.nix {};
+  snapCore = callPackage ../development/libraries/haskell/snap/core.nix {
+    vector = self.vector_0_7_1;
+  };
 
-  snapServer = callPackage ../development/libraries/haskell/snap/server.nix {};
+  snapServer = callPackage ../development/libraries/haskell/snap/server.nix {
+    vector = self.vector_0_7_1;
+  };
 
   stateref = callPackage ../development/libraries/haskell/stateref {};
 
   StateVar = callPackage ../development/libraries/haskell/StateVar {};
 
-  statistics = callPackage ../development/libraries/haskell/statistics {};
+  statistics = callPackage ../development/libraries/haskell/statistics {
+    primitive = self.primitive_0_3_1;
+    vector = self.vector_0_7_1;
+  };
 
   streamproc = callPackage ../development/libraries/haskell/streamproc {};
 
@@ -1194,7 +1216,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   tls = callPackage ../development/libraries/haskell/tls {};
 
-  tlsExtra = callPackage ../development/libraries/haskell/tls-extra {};
+  tlsExtra = callPackage ../development/libraries/haskell/tls-extra {
+    vector = self.vector_0_7_1;
+  };
 
   transformers_0_2_2_0 = callPackage ../development/libraries/haskell/transformers/0.2.2.0.nix {};
   transformers = self.transformers_0_2_2_0;
@@ -1225,7 +1249,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   uulib = callPackage ../development/libraries/haskell/uulib {};
 
-  uuParsingLib = callPackage ../development/libraries/haskell/uu-parsinglib {};
+  uuParsinglib = callPackage ../development/libraries/haskell/uu-parsinglib {};
 
   vacuum = callPackage ../development/libraries/haskell/vacuum {};
 
@@ -1233,19 +1257,24 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   Vec = callPackage ../development/libraries/haskell/Vec {};
 
-  vector_0_7_1 = callPackage ../development/libraries/haskell/vector/0.7.1.nix {};
+  vector_0_7_1 = callPackage ../development/libraries/haskell/vector/0.7.1.nix {
+    primitive = self.primitive_0_3_1;
+  };
   vector_0_9 = callPackage ../development/libraries/haskell/vector/0.9.nix {
     primitive = self.primitive_0_4_0_1;
   };
-  vector = self.vector_0_7_1;
+  vector = self.vector_0_9;
 
-  vectorAlgorithms = callPackage ../development/libraries/haskell/vector-algorithms {};
+  vectorAlgorithms = callPackage ../development/libraries/haskell/vector-algorithms {
+    primitive = self.primitive_0_3_1;
+    vector = self.vector_0_7_1;
+  };
 
   vectorSpace = callPackage ../development/libraries/haskell/vector-space {};
 
-  vty_4_6_0_4 = callPackage ../development/libraries/haskell/vty/4.6.0.4.nix {};
-  vty_4_7_0_4 = callPackage ../development/libraries/haskell/vty/4.7.0.4.nix {};
-  vty = self.vty_4_7_0_4;
+  vty = callPackage ../development/libraries/haskell/vty {
+    vector = self.vector_0_7_1;
+  };
 
   wai = callPackage ../development/libraries/haskell/wai {};
 
@@ -1261,10 +1290,15 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   WebBits_2_0 = callPackage ../development/libraries/haskell/WebBits/2.0.nix {
     parsec = self.parsec2;
   };
-  WebBits = self.WebBits_2_0;
+  WebBits_2_1 = callPackage ../development/libraries/haskell/WebBits/2.1.nix {};
+  WebBits = self.WebBits_2_1;
 
-  WebBitsHtml_1_0_1 = callPackage ../development/libraries/haskell/WebBits-Html/1.0.1.nix {};
-  WebBitsHtml_1_0_2 = callPackage ../development/libraries/haskell/WebBits-Html/1.0.2.nix {};
+  WebBitsHtml_1_0_1 = callPackage ../development/libraries/haskell/WebBits-Html/1.0.1.nix {
+    WebBits = self.WebBits_2_0;
+  };
+  WebBitsHtml_1_0_2 = callPackage ../development/libraries/haskell/WebBits-Html/1.0.2.nix {
+    WebBits = self.WebBits_2_0;
+  };
   WebBitsHtml = self.WebBitsHtml_1_0_2;
 
   webRoutes = callPackage ../development/libraries/haskell/web-routes {};
@@ -1311,7 +1345,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   yesodForm = callPackage ../development/libraries/haskell/yesod-form {};
 
-  yesodJson = callPackage ../development/libraries/haskell/yesod-json {};
+  yesodJson = callPackage ../development/libraries/haskell/yesod-json {
+    vector = self.vector_0_7_1;
+  };
 
   yesodPersistent = callPackage ../development/libraries/haskell/yesod-persistent {};
 
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index ece567bb0759..877d5aed1e1c 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -2116,13 +2116,14 @@ rec {
   };
 
   LWP = buildPerlPackage rec {
-    name = "libwww-perl-6.02";
+    name = "libwww-perl-6.03";
     src = fetchurl {
       url = "mirror://cpan/modules/by-module/LWP/${name}.tar.gz";
-      sha256 = "0cn2cbrz5mrpqmnfhhk0bgv0c1q1x722xlnlnzw6zymj5sg3w6dm";
+      sha256 = "1zlnz4ylk1y0rw56vlf9knawwjx72b1gm09yp06ccpgmmndif4dg";
     };
     propagatedBuildInputs =
       [ EncodeLocale FileListing HTMLParser HTTPCookies HTTPMessage LWPMediaTypes URI NetHTTP ];
+    doCheck = false; # tries to start a daemon
   };
 
   LWPMediaTypes = buildPerlPackage rec {
@@ -2411,9 +2412,11 @@ rec {
         # "InstanceId", as required by the Amazon spec.  EC2 tolerates
         # "InstanceId", but Nova doesn't.
         ../development/perl-modules/net-amazon-ec2-nova-compat.patch
+        # Support DescribeInstancesV6.
+        ../development/perl-modules/net-amazon-ec2-ipv6.patch
       ];
     propagatedBuildInputs =
-      [ DigestHMAC LWP Moose URI ParamsValidate XMLSimple Moose CryptSSLeay ];
+      [ DigestHMAC LWP LWPProtocolHttps Moose URI ParamsValidate XMLSimple ];
     doCheck = false; # wants to create actual EC2 instances (for $$$)
   };
 
diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix
index 259b9898f36b..911dff97d0c2 100644
--- a/pkgs/top-level/platforms.nix
+++ b/pkgs/top-level/platforms.nix
@@ -65,6 +65,7 @@ rec {
         IP_NF_MATCH_ADDRTYPE y
         IP_NF_TARGET_LOG y
         IP_NF_MANGLE y
+        IPV6 m
 
         # Fail to build
         DRM n
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index ec71f7c881a3..3c1622847be0 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -156,6 +156,8 @@ let pythonPackages = python.modules // rec {
       sha1 = "00a033b0a593c3ca82927867950f73d88b831155";
     };
 
+    patches = [ ../development/python-modules/boto-1.9-python-2.7.patch ];
+
     meta = {
       homepage = http://code.google.com/p/boto/;
 
@@ -1358,6 +1360,17 @@ let pythonPackages = python.modules // rec {
     };
   };
 
+  ldap = buildPythonPackage rec {
+    name = "python-ldap-2.4.3";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/python-ldap/${name}.tar.gz";
+      sha256 = "17aysa9b4zjw00ikjirf4m37xbp2ifj1g0zjs14xzqqib3nh1yw8";
+    };
+
+    NIX_CFLAGS_COMPILE = "-I${pkgs.cyrus_sasl}/include/sasl";
+    propagatedBuildInputs = [pkgs.openldap pkgs.cyrus_sasl pkgs.openssl];
+  };
 
   pylint = buildPythonPackage rec {
     name = "pylint-0.23.0";