summary refs log tree commit diff
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-08-20 13:41:12 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-08-20 13:41:12 +0000
commitf16353b6f236ae9046bfc3d9031efd519fc73b82 (patch)
treeeb4b931c357f70a0cd6804e8be853a49ca2f77c9
parentf7d0fcdaac7dc2d60a0d57e90632f20ba36242f5 (diff)
parent7dea1a0f4f0b893780e0e4d8a64b77642fa22205 (diff)
downloadnixpkgs-f16353b6f236ae9046bfc3d9031efd519fc73b82.tar
nixpkgs-f16353b6f236ae9046bfc3d9031efd519fc73b82.tar.gz
nixpkgs-f16353b6f236ae9046bfc3d9031efd519fc73b82.tar.bz2
nixpkgs-f16353b6f236ae9046bfc3d9031efd519fc73b82.tar.lz
nixpkgs-f16353b6f236ae9046bfc3d9031efd519fc73b82.tar.xz
nixpkgs-f16353b6f236ae9046bfc3d9031efd519fc73b82.tar.zst
nixpkgs-f16353b6f236ae9046bfc3d9031efd519fc73b82.zip
Updated from trunk.
svn path=/nixpkgs/branches/stdenv-updates/; revision=23275
-rw-r--r--maintainers/scripts/eval-release.nix8
-rwxr-xr-xmaintainers/scripts/gnu/gnupdate14
-rwxr-xr-xmaintainers/scripts/test-eval-release.sh3
-rw-r--r--pkgs/applications/editors/zile/default.nix4
-rw-r--r--pkgs/applications/graphics/xscreensaver/default.nix46
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/default.nix6
-rw-r--r--pkgs/applications/networking/skype/default.nix4
-rw-r--r--pkgs/applications/science/geometry/tetgen/default.nix21
-rw-r--r--pkgs/applications/version-management/bazaar/default.nix10
-rw-r--r--pkgs/applications/version-management/bazaar/tools.nix7
-rw-r--r--pkgs/build-support/builder-defs/builder-defs.nix33
-rw-r--r--pkgs/build-support/release/maven-build.nix22
-rw-r--r--pkgs/build-support/vm/default.nix5
-rw-r--r--pkgs/data/fonts/terminus-font/default.nix6
-rw-r--r--pkgs/desktops/kde-4.4/default.nix4
-rw-r--r--pkgs/desktops/kde-4.4/pim/default.nix1
-rw-r--r--pkgs/desktops/kde-4.4/support/akonadi/default.nix1
-rw-r--r--pkgs/desktops/kde-4.4/support/akonadi/fix-broken-datadir-parameter.patch17
-rw-r--r--pkgs/desktops/kde-4.4/support/qca2/default.nix13
-rw-r--r--pkgs/desktops/kde-4.4/support/qca2/ossl.nix19
-rw-r--r--pkgs/desktops/kde-4.5/accessibility/default.nix14
-rw-r--r--pkgs/desktops/kde-4.5/admin/builder.sh13
-rw-r--r--pkgs/desktops/kde-4.5/admin/default.nix22
-rw-r--r--pkgs/desktops/kde-4.5/artwork/FindXscreensaver.cmake85
-rw-r--r--pkgs/desktops/kde-4.5/artwork/default.nix25
-rw-r--r--pkgs/desktops/kde-4.5/base-runtime/default.nix27
-rw-r--r--pkgs/desktops/kde-4.5/base-runtime/freeze.diff37
-rw-r--r--pkgs/desktops/kde-4.5/base-workspace/default.nix23
-rw-r--r--pkgs/desktops/kde-4.5/base/default.nix18
-rw-r--r--pkgs/desktops/kde-4.5/bindings/default.nix26
-rw-r--r--pkgs/desktops/kde-4.5/bindings/python-site-packages-install-dir.diff8
-rw-r--r--pkgs/desktops/kde-4.5/default.nix36
-rw-r--r--pkgs/desktops/kde-4.5/edu/default.nix27
-rw-r--r--pkgs/desktops/kde-4.5/games/default.nix20
-rw-r--r--pkgs/desktops/kde-4.5/graphics/default.nix21
-rw-r--r--pkgs/desktops/kde-4.5/kde-package/default.nix10
-rw-r--r--pkgs/desktops/kde-4.5/kde-package/manifest.nix95
-rw-r--r--pkgs/desktops/kde-4.5/libs/default.nix3
-rw-r--r--pkgs/desktops/kde-4.5/libs/polkit-install.patch11
-rw-r--r--pkgs/desktops/kde-4.5/libs/python-site-packages-install-dir.diff13
-rw-r--r--pkgs/desktops/kde-4.5/multimedia/default.nix18
-rw-r--r--pkgs/desktops/kde-4.5/network/default.nix34
-rw-r--r--pkgs/desktops/kde-4.5/network/log-feature.diff60
-rw-r--r--pkgs/desktops/kde-4.5/pim-runtime/default.nix14
-rw-r--r--pkgs/desktops/kde-4.5/pimlibs/default.nix1
-rw-r--r--pkgs/desktops/kde-4.5/plasma-addons/default.nix18
-rw-r--r--pkgs/desktops/kde-4.5/sdk/default.nix21
-rw-r--r--pkgs/desktops/kde-4.5/sdk/find-svn.patch59
-rw-r--r--pkgs/desktops/kde-4.5/support/akonadi/default.nix1
-rw-r--r--pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch17
-rw-r--r--pkgs/desktops/kde-4.5/support/eigen/default.nix8
-rw-r--r--pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix1
-rw-r--r--pkgs/desktops/kde-4.5/support/polkit-qt-1/default.nix1
-rw-r--r--pkgs/desktops/kde-4.5/support/qimageblitz/default.nix21
-rw-r--r--pkgs/desktops/kde-4.5/support/strigi/default.nix5
-rw-r--r--pkgs/desktops/kde-4.5/toys/default.nix12
-rw-r--r--pkgs/desktops/kde-4.5/utils/cmake-module-path.diff10
-rw-r--r--pkgs/desktops/kde-4.5/utils/default.nix28
-rw-r--r--pkgs/desktops/kde-4.5/utils/log-feature.diff10
-rw-r--r--pkgs/desktops/kde-4.5/webdev/default.nix14
-rw-r--r--pkgs/development/interpreters/python/2.4/default.nix16
-rw-r--r--pkgs/development/interpreters/python/2.5/default.nix12
-rw-r--r--pkgs/development/interpreters/python/2.6/default.nix1
-rw-r--r--pkgs/development/interpreters/python/2.7/default.nix110
-rw-r--r--pkgs/development/interpreters/python/2.7/search-path.patch27
-rw-r--r--pkgs/development/interpreters/python/2.7/setup-hook.sh15
-rw-r--r--pkgs/development/interpreters/python/3.1/default.nix1
-rw-r--r--pkgs/development/interpreters/python/wrapper.nix18
-rw-r--r--pkgs/development/libraries/boost/default.nix8
-rw-r--r--pkgs/development/libraries/cln/default.nix19
-rw-r--r--pkgs/development/libraries/directfb/src-for-default.nix8
-rw-r--r--pkgs/development/libraries/gnutls/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-exts/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hscolour/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/uniplate/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/uu-parsinglib/default.nix4
-rw-r--r--pkgs/development/libraries/lensfun/default.nix5
-rw-r--r--pkgs/development/libraries/libcanberra/default.nix2
-rw-r--r--pkgs/development/libraries/libktorrent/default.nix19
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix20
-rw-r--r--pkgs/development/libraries/libvirt/default.nix11
-rw-r--r--pkgs/development/libraries/libvirt/non-absolute-ld.patch12
-rw-r--r--pkgs/development/libraries/nspr/default.nix4
-rw-r--r--pkgs/development/libraries/nss/default.nix12
-rw-r--r--pkgs/development/libraries/qhull/default.nix2
-rw-r--r--pkgs/development/libraries/qt-4.x/4.7/default.nix4
-rw-r--r--pkgs/development/libraries/webkit/default.nix26
-rw-r--r--pkgs/development/libraries/webkit/src-for-default.nix10
-rw-r--r--pkgs/development/python-modules/pygtk/default.nix12
-rw-r--r--pkgs/development/python-modules/zope/default.nix6
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix4
-rw-r--r--pkgs/development/tools/misc/autoconf/default.nix4
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix2
-rw-r--r--pkgs/development/tools/parsing/antlr/2.7.7-fixes.patch26
-rw-r--r--pkgs/development/tools/parsing/antlr/2.7.7.nix1
-rw-r--r--pkgs/development/tools/parsing/bison/bison-2.4.nix6
-rw-r--r--pkgs/games/castle-combat/default.nix59
-rw-r--r--pkgs/lib/customisation.nix18
-rw-r--r--pkgs/lib/modules.nix1
-rw-r--r--pkgs/lib/options.nix2
-rw-r--r--pkgs/lib/trivial.nix4
-rw-r--r--pkgs/misc/emulators/mess/default.nix48
-rw-r--r--pkgs/os-specific/linux/ati-drivers/default.nix2
-rw-r--r--pkgs/os-specific/linux/blcr/0.8.2.nix51
-rw-r--r--pkgs/os-specific/linux/blcr/default.nix55
-rw-r--r--pkgs/os-specific/linux/blcr/fixes.patch304
-rw-r--r--pkgs/os-specific/linux/htop/default.nix1
-rw-r--r--pkgs/os-specific/linux/iproute/default.nix22
-rw-r--r--pkgs/os-specific/linux/iptables/default.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/generate-config.pl2
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.27.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.31.nix10
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.32.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.34.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.35.nix207
-rw-r--r--pkgs/os-specific/linux/lvm2/default.nix2
-rw-r--r--pkgs/os-specific/linux/pam/default.nix11
-rw-r--r--pkgs/os-specific/linux/pam_ldap/default.nix15
-rw-r--r--pkgs/shells/rush/default.nix4
-rw-r--r--pkgs/stdenv/generic/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/unetbootin/default.nix1
-rw-r--r--pkgs/tools/misc/desktop-file-utils/default.nix17
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/partition-manager/default.nix8
-rw-r--r--pkgs/tools/misc/ttmkfdir/cstring.patch12
-rw-r--r--pkgs/tools/misc/ttmkfdir/default.nix6
-rw-r--r--pkgs/tools/networking/nbd/default.nix10
-rw-r--r--pkgs/tools/networking/ncftp/default.nix4
-rw-r--r--pkgs/tools/package-management/nix/default.nix32
-rw-r--r--pkgs/tools/security/gnupg/default.nix4
-rw-r--r--pkgs/tools/text/ebook-tools/default.nix23
-rw-r--r--pkgs/tools/text/xml/xmlstarlet/default.nix31
-rw-r--r--pkgs/tools/text/xml/xpf/default.nix7
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.nix9
-rw-r--r--pkgs/top-level/all-packages.nix220
-rw-r--r--pkgs/top-level/haskell-packages.nix6
-rw-r--r--pkgs/top-level/make-tarball.nix5
-rw-r--r--pkgs/top-level/release.nix5
142 files changed, 2021 insertions, 807 deletions
diff --git a/maintainers/scripts/eval-release.nix b/maintainers/scripts/eval-release.nix
index 64dbbd15cf3..3d4458699c7 100644
--- a/maintainers/scripts/eval-release.nix
+++ b/maintainers/scripts/eval-release.nix
@@ -6,9 +6,13 @@ let
 
   lib = (import ../.. {}).lib;
 
-  rel = removeAttrs (import ../../pkgs/top-level/release.nix) ["tarball"];
+  rel = removeAttrs (import ../../pkgs/top-level/release.nix) [ "tarball" "xbursttools" ];
 
-  maybe = x: let y = builtins.tryEval x; in if y.success then y.value else null;
+  seqList = xs: res: lib.fold (x: xs: lib.seq x xs) res xs;
+  
+  strictAttrs = as: seqList (lib.attrValues as) as;
+
+  maybe = as: let y = builtins.tryEval (strictAttrs as); in if y.success then y.value else builtins.trace "FAIL" null;
 
   call = attrs: lib.flip lib.mapAttrs attrs
     (n: v: builtins.trace n (
diff --git a/maintainers/scripts/gnu/gnupdate b/maintainers/scripts/gnu/gnupdate
index dbb3f0d528e..b9f34a2750e 100755
--- a/maintainers/scripts/gnu/gnupdate
+++ b/maintainers/scripts/gnu/gnupdate
@@ -623,19 +623,9 @@ exec ${GUILE-guile} -L "$PWD" -l "$0"    \
   (let ((strverscmp
          (let ((sym (or (dynamic-func "strverscmp" (dynamic-link))
                         (error "could not find `strverscmp' (from GNU libc)"))))
-           (make-foreign-function int sym (list '* '*))))
-        (string->null-terminated-utf8
-         (lambda (s)
-           (let* ((utf8 (string->utf8 s))
-                  (len  (bytevector-length utf8))
-                  (nts  (make-bytevector (+ len 1))))
-             (bytevector-copy! utf8 0 nts 0 len)
-             (bytevector-u8-set! nts len 0)
-             nts))))
+           (make-foreign-function int sym (list '* '*)))))
     (lambda (a b)
-      (let ((a (bytevector->foreign (string->null-terminated-utf8 a)))
-            (b (bytevector->foreign (string->null-terminated-utf8 b))))
-        (> (strverscmp a b) 0)))))
+      (> (strverscmp (string->pointer a) (string->pointer b)) 0))))
 
 (define (latest-release project)
   ;; Return "FOO-X.Y" or #f.
diff --git a/maintainers/scripts/test-eval-release.sh b/maintainers/scripts/test-eval-release.sh
new file mode 100755
index 00000000000..16921a24ce2
--- /dev/null
+++ b/maintainers/scripts/test-eval-release.sh
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+nix-instantiate --strict --eval-only --xml --show-trace "$(dirname "$0")"/eval-release.nix 2>&1 > /dev/null
diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix
index 36bccbac557..3d7fef640ca 100644
--- a/pkgs/applications/editors/zile/default.nix
+++ b/pkgs/applications/editors/zile/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, ncurses, help2man }:
 
 stdenv.mkDerivation rec {
-  name = "zile-2.3.17";
+  name = "zile-2.3.19";
 
   src = fetchurl {
     url = "mirror://gnu/zile/${name}.tar.gz";
-    sha256 = "1wrg53qz0s4336nq8z2v7pi18vpz5ifxvlwq4jv0w4rwmbksgvi0";
+    sha256 = "1c2by5d5d1nmap3wc55giscsj47xx16viv7b07c6c4nssnlniszs";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/applications/graphics/xscreensaver/default.nix b/pkgs/applications/graphics/xscreensaver/default.nix
index 7c9af7f2545..c9d734f2408 100644
--- a/pkgs/applications/graphics/xscreensaver/default.nix
+++ b/pkgs/applications/graphics/xscreensaver/default.nix
@@ -1,41 +1,43 @@
-x@{ pkgconfig, bc, perl, xlibs, libjpeg, mesa, gtk
-, libxml2, libglade, builderDefsPackage, ... }:                                                                 
+{ stdenv, fetchurl, pkgconfig, bc, perl, pam
+, libXext, libXScrnSaver, libX11, libXrandr, libXmu, libXxf86vm, libXrender
+, libXxf86misc
+, libjpeg, mesa, gtk , libxml2, libglade}:
 
-builderDefsPackage 
-(a: rec {
+stdenv.mkDerivation rec {
   version = "5.11";
   name = "xscreensaver-${version}";
-  url = "http://www.jwz.org/xscreensaver/${name}.tar.gz";
 
-  src = a.fetchurl {
-    inherit url;
+  src = fetchurl {
+    url = "http://www.jwz.org/xscreensaver/${name}.tar.gz";
     sha256="0w47s0qd8ab6ywhhhkqjx0grb2b28bh2flnkdpj3yaind202l0s7";
   };
 
-  buildInputs = with a;
-    [ pkgconfig bc perl libjpeg mesa gtk libxml2 libglade
-      xlibs.xlibs xlibs.libXmu
-    ];
+  buildInputs =
+    [ pkgconfig bc perl libjpeg mesa gtk libxml2 libglade pam
+    libXext libXScrnSaver libX11 libXrandr libXmu libXxf86vm libXrender
+    libXxf86misc ];
 
   configureFlags =
-    [ "--with-gl"
-      "--with-dpms"
-      "--with-pixbuf"
+    [
+      "--with-gl" "--with-pam" "--with-pixbuf" "--with-proc-interrupts"
+
+      "--with-dpms-ext" "--with-randr-ext" "--with-xinerama-ext"
+      "--with-xf86vmode-ext" "--with-xf86gamma-ext" "--with-randr-ext"
+      "--with-xshm-ext" "--with-xdbe-ext" "--without-readdisplay"
+
       "--with-x-app-defaults=\${out}/share/xscreensaver/app-defaults"
-      "--with-hackdir=\${out}/share/xscreensaver-hacks"
     ];
 
-  preConfigure = a.fullDepEntry
+  preConfigure =
     ''
       sed -e 's%@GTK_DATADIR@%@datadir@% ; s%@PO_DATADIR@%@datadir@%' \
         -i driver/Makefile.in po/Makefile.in.in
-    '' ["minInit" "doUnpack"];
-
-  phaseNames = ["preConfigure" "doConfigure" "doMakeInstall"];
+    '';
 
   meta = {
+    homepage = http://www.jwz.org/xscreensaver/;
     description = "A set of screensavers";
-    maintainers = [ a.lib.maintainers.raskin ];
-    platforms = a.lib.platforms.allBut "i686-cygwin";
+    maintainers = with stdenv.lib.maintainers; [ raskin urkud ];
+    platforms = stdenv.lib.platforms.allBut "i686-cygwin";
   };
-}) x
+}
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 5261037e1c5..3dc6a427f25 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-0.7.0";
+  name = "calibre-0.7.14";
 
   src = fetchurl {
     url = "mirror://sourceforge/calibre/${name}.tar.gz";
-    sha256 = "0aij3gqkfvhzrsfk0ms9mlawrdj46r3634cglbwsapv17g2wv6mg";
+    sha256 = "07vnmxxpg77pmd7fhcrlnark02bn6zj62hbsybdqz8fp1yp99wkn";
   };
 
   inherit python;
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index bbe51bd1dad..d5496399144 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -35,17 +35,17 @@ assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" ;
 
 stdenv.mkDerivation rec {
   name = "chrome-${version}";
-  version = "51653";
+  version = "55366";
   src = 
     if stdenv.system == "x86_64-linux" then 
       fetchurl {
         url = "http://build.chromium.org/buildbot/snapshots/chromium-rel-linux-64/${version}/chrome-linux.zip";
-        sha256 = "1d8q4ac8s3b1bncli537phzxshfr50j69y49409g5p64v7iya9kw";
+        sha256 = "1dazdfpnl278wwh03hs0x184ql5zh0yhpfiaw75j437dp3668hnj";
       } 
     else if stdenv.system == "i686-linux" then 
       fetchurl {
         url = "http://build.chromium.org/buildbot/snapshots/chromium-rel-linux/${version}/chrome-linux.zip";
-        sha256 = "1kdhwkl7xxssmkrkkgrdwrwvbah97va7rxbwrfhlcnjgw60ppf9v";
+        sha256 = "1x5ykvp2hxc56p4bb1lykahkk1nzkqi2kkm474spplqcfnmd6j2b";
       } 
     else null;
 
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 e0f4b632c76..0f89522325b 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
@@ -51,9 +51,9 @@ let
         url = http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_1_p2_debug_linux_121709.tar.gz;
         sha256 = "162cnzn8sfdvr8mwyggsxi2bcl7zzi1nrl61bw481hhhpwnrjdx4";
       } else {
-        version = "10.1.53.64";
+        version = "10.1.82.76";
         url = http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz;
-        sha256 = "1598vn4dd96cp1nv225vvjpna70ydkd8lcyfm88gnpzkwx2scz1b";
+        sha256 = "c6f8831ce648e7fa8e037f1fa8362d2d998cae0e06490e792bcd5871f3eb936a";
       }
     else throw "flashplayer is not supported on this platform";
 
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index c7c7ec40cce..9d290224c42 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -21,10 +21,10 @@
 } :
 
 stdenv.mkDerivation {
-  name = "pidgin-2.7.2";
+  name = "pidgin-2.7.3";
   src = fetchurl {
-    url = mirror://sourceforge/pidgin/pidgin-2.7.2.tar.bz2;
-    sha256 = "1h3112548rjkz4gycm2yq9wjfp1jcdk30qcgvckpf6c4yckg3dca";
+    url = mirror://sourceforge/pidgin/pidgin-2.7.3.tar.bz2;
+    sha256 = "1wi3wckn3gkbrgx0kk1b690nxj1i4xcp3xn5wrra6gwcgfm8hmwb";
   };
 
   inherit nss ncurses;
diff --git a/pkgs/applications/networking/skype/default.nix b/pkgs/applications/networking/skype/default.nix
index 00bafbb48b3..7e066b5e380 100644
--- a/pkgs/applications/networking/skype/default.nix
+++ b/pkgs/applications/networking/skype/default.nix
@@ -1,5 +1,5 @@
 {stdenv, fetchurl, alsaLib, libXv, libXi, libXrender, libXrandr, zlib, glib
-, libXext, libX11, libXScrnSaver, libSM, qt, libICE, freetype, fontconfig}:
+, libXext, libX11, libXScrnSaver, libSM, qt4, libICE, freetype, fontconfig}:
 
 assert stdenv.system == "i686-linux";
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     libXv
     libXext 
     libX11 
-    qt
+    qt4
     libXScrnSaver
     libSM
     libICE
diff --git a/pkgs/applications/science/geometry/tetgen/default.nix b/pkgs/applications/science/geometry/tetgen/default.nix
new file mode 100644
index 00000000000..a5c3466d57b
--- /dev/null
+++ b/pkgs/applications/science/geometry/tetgen/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl}: 
+
+stdenv.mkDerivation rec {
+  name = "tetgen-1.4.3";
+
+  src = fetchurl {
+    url = http://tetgen.berlios.de/files/tetgen1.4.3.tar.gz;
+    sha256 = "159i0vdjz7abb8bycz47ax4fqlzc82kv19sygqnrkr86qm4g43wy";
+  };
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp tetgen $out/bin
+  '';
+
+  meta = {
+    description = "Quality Tetrahedral Mesh Generator and 3D Delaunay Triangulator";
+    homepage = "http://tetgen.berlios.de/";
+    license = "MIT";
+  };
+}
diff --git a/pkgs/applications/version-management/bazaar/default.nix b/pkgs/applications/version-management/bazaar/default.nix
index 22d972eac45..46a09ccf422 100644
--- a/pkgs/applications/version-management/bazaar/default.nix
+++ b/pkgs/applications/version-management/bazaar/default.nix
@@ -1,11 +1,13 @@
 {stdenv, fetchurl, python, makeWrapper}:
 
-stdenv.mkDerivation {
-  name = "bazaar-1.10rc1";
+stdenv.mkDerivation rec {
+  version = "2.2";
+  release = ".0";
+  name = "bazaar-${version}${release}";
 
   src = fetchurl {
-    url = http://launchpad.net/bzr/1.10/1.10rc1/+download/bzr-1.10rc1.tar.gz;
-    sha256 = "dc3669e15ced93e0956c13b724f604075e0323ce07fb08f6463946c85e69bec0";
+    url = "http://launchpad.net/bzr/${version}/${version}${release}/+download/bzr-${version}${release}.tar.gz";
+    sha256 = "64cd6c23097884e40686adc7f0ad4a8200e2292bdc5e0caba3563b6f5c32bacf";
   };
 
   buildInputs = [python makeWrapper];
diff --git a/pkgs/applications/version-management/bazaar/tools.nix b/pkgs/applications/version-management/bazaar/tools.nix
index c36ac2d63dc..5e5292cf130 100644
--- a/pkgs/applications/version-management/bazaar/tools.nix
+++ b/pkgs/applications/version-management/bazaar/tools.nix
@@ -5,9 +5,10 @@ if ! bazaar.python.readlineSupport then
 else
 
 rec {
+  version = "2.2.0";
   src = fetchurl {
-    url = http://launchpad.net/bzrtools/stable/1.5.0/+download/bzrtools-1.5.0.tar.gz;
-    sha256 = "0lm4qhsjy3k8zp9hcahlf37v69w6lhhz2x3hjskgm3rk6b0bngjz";
+    url = "http://launchpad.net/bzrtools/stable/${version}/+download/bzrtools-${version}.tar.gz";
+    sha256 = "835e0dc2b3b798d3c88b960bf719fe3b4cec7ae241908aafeb6aafe4c83f591b";
   };
 
   buildInputs = [];
@@ -16,7 +17,7 @@ rec {
   /* doConfigure should be specified separately */
   phaseNames = [(simplyShare "bzrtools")];
       
-  name = "bzr-tools-1.5";
+  name = "bzr-tools-${version}";
   meta = {
     description = "Bazaar plugins.";
   };
diff --git a/pkgs/build-support/builder-defs/builder-defs.nix b/pkgs/build-support/builder-defs/builder-defs.nix
index 3ef0c862964..55cc30b9fb2 100644
--- a/pkgs/build-support/builder-defs/builder-defs.nix
+++ b/pkgs/build-support/builder-defs/builder-defs.nix
@@ -34,6 +34,9 @@ let inherit (builtins) head tail trace; in
                 else if (hasSuffixHack ".bz2" s) then "plain-bz2"
                 else if (hasSuffixHack ".gz" s) then "plain-gz"
 
+		# For bootstrap calls
+		else if (s ==("" + (substring 0 0 s))) then "empty"
+
                 else (abort "unknown archive type : ${s}"));
 
         # changing this ? see [1]
@@ -241,6 +244,8 @@ let inherit (builtins) head tail trace; in
                 NAME=\$(basename ${s} .gz)
                 gzip -d <${s} > \$PWD/\$(basename ${s} .gz)/\${NAME#*-}
                 cd \$(basename ${s} .gz)
+        " else if (archiveType s) == "empty" then "
+	        echo No source to unpack - doing nothing ..
         " else (abort "unknown archive type : ${s}"))+
                 # goSrcDir is typically something like "cd mysubdir" .. but can be anything else 
                 (if args ? goSrcDir then args.goSrcDir else "")
@@ -429,7 +434,7 @@ let inherit (builtins) head tail trace; in
         realPhaseNames = 
 	  (optional ([] != attrByPath ["neededDirs"] [] args) "createDirs")
 	  ++
-	  args.phaseNames 
+	  (attrByPath ["phaseNames"] [] args)
 	  ++ 
           ["doForceShare" "doPropagate" "doForceCopy"]
 	  ++
@@ -495,18 +500,20 @@ let inherit (builtins) head tail trace; in
         done
    '') ["minInit" "addInputs" "doUnpack"];
 
-   installFonts = fullDepEntry (''
-           ensureDir $out/share/fonts/truetype/public/${args.name}
-           ensureDir $out/share/fonts/opentype/public/${args.name}
-           ensureDir $out/share/fonts/type1/public/${args.name}
-           ensureDir $out/share/texmf/fonts/enc/${args.name}
-           ensureDir $out/share/texmf/fonts/map/${args.name}
-
-        cp *.ttf $out/share/fonts/truetype/public/${args.name} || echo No TrueType fonts
-        cp *.otf $out/share/fonts/opentype/public/${args.name} || echo No OpenType fonts
-           cp *.{pfm,afm,pfb} $out/share/fonts/type1/public/${args.name} || echo No Type1 Fonts
-           cp *.enc $out/share/texmf/fonts/enc/${args.name} || echo No fontenc data
-           cp *.map $out/share/texmf/fonts/map/${args.name} || echo No fontmap data
+   installFonts = 
+      let retrievedName = (if args ? name then args.name else ""); in
+   fullDepEntry (''
+           ensureDir $out/share/fonts/truetype/public/${retrievedName}
+           ensureDir $out/share/fonts/opentype/public/${retrievedName}
+           ensureDir $out/share/fonts/type1/public/${retrievedName}
+           ensureDir $out/share/texmf/fonts/enc/${retrievedName}
+           ensureDir $out/share/texmf/fonts/map/${retrievedName}
+
+        cp *.ttf $out/share/fonts/truetype/public/${retrievedName} || echo No TrueType fonts
+        cp *.otf $out/share/fonts/opentype/public/${retrievedName} || echo No OpenType fonts
+           cp *.{pfm,afm,pfb} $out/share/fonts/type1/public/${retrievedName} || echo No Type1 Fonts
+           cp *.enc $out/share/texmf/fonts/enc/${retrievedName} || echo No fontenc data
+           cp *.map $out/share/texmf/fonts/map/${retrievedName} || echo No fontmap data
    '') ["minInit" "defEnsureDir"];
 
    simplyShare = shareName: fullDepEntry (''
diff --git a/pkgs/build-support/release/maven-build.nix b/pkgs/build-support/release/maven-build.nix
index 2fa42dd1b10..90596b76942 100644
--- a/pkgs/build-support/release/maven-build.nix
+++ b/pkgs/build-support/release/maven-build.nix
@@ -17,7 +17,7 @@ in
 
 stdenv.mkDerivation ( rec {
   inherit name src; 
-  phases = "setupPhase unpackPhase patchPhase mvnCompile ${if doTestCompile then "mvnTestCompile mvnTestJar" else ""} ${if doTest then "mvnTest mvnCobertura" else ""} ${if doJavadoc then "mvnJavadoc" else ""} ${if doCheckstyle then "mvnCheckstyle" else ""} mvnJar mvnAssembly mvnRelease finalPhase";
+  phases = "setupPhase unpackPhase patchPhase mvnCompile ${if doTestCompile then "mvnTestCompile mvnTestJar" else ""} ${if doTest then "mvnTest" else ""} ${if doJavadoc then "mvnJavadoc" else ""} ${if doCheckstyle then "mvnCheckstyle" else ""} mvnJar mvnAssembly mvnRelease finalPhase";
 
   setupPhase = ''
     runHook preSetupPhase
@@ -44,6 +44,18 @@ stdenv.mkDerivation ( rec {
 
   mvnTest = ''
     mvn test ${mvnFlags}
+
+    if [ -d target/site/cobertura ] ; then
+      cp -R target/site/cobertura $out/cobertura
+      echo "report coverage $out/cobertura" >> $out/nix-support/hydra-build-products
+    fi
+
+    if [ -d target/surefire-reports ] ; then
+      mvn surefire-report:report-only
+      cp -vR target/surefire-reports $out/surefire
+      cp -v target/site/surefire-report.html $out/surefire/index.html
+      echo "report coverage $out/surefire/index.html" >> $out/nix-support/hydra-build-products
+    fi
   '';  
 
   mvnJavadoc = ''
@@ -52,12 +64,6 @@ stdenv.mkDerivation ( rec {
     echo "report javadoc $out/apidocs" >> $out/nix-support/hydra-build-products
   '';  
 
-  mvnCobertura = ''
-    mvn cobertura:cobertura ${mvnFlags}
-    cp -R target/site/cobertura $out/cobertura
-    echo "report cobertura $out/cobertura" >> $out/nix-support/hydra-build-products
-  '';  
-
   mvnCheckstyle = ''
     mvn checkstyle:checkstyle ${mvnFlags}
     ensureDir $out/checkstyle
@@ -71,7 +77,7 @@ stdenv.mkDerivation ( rec {
   '';  
 
   mvnAssembly = ''
-    mvn assembly:assembly ${mvnFlags}
+    mvn assembly:single ${mvnFlags}
   '';
 
   mvnRelease = ''
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index b9882914b26..ca0c5f38fb7 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -139,7 +139,7 @@ rec {
     mount -o bind /dev /fs/dev
 
     echo "mounting host filesystem..."
-    mount -t cifs //10.0.2.4/qemu /fs/hostfs -o guest,username=nobody
+    mount -t cifs //10.0.2.4/qemu /fs/hostfs -o guest,sec=none
 
     mkdir -p /fs/nix/store
     mount -o bind /fs/hostfs/nix/store /fs/nix/store
@@ -227,6 +227,8 @@ rec {
 
   startSamba =
     ''
+      export WHO=`whoami`
+
       cat > $TMPDIR/smb.conf <<SMB
       [global]
         private dir = $TMPDIR
@@ -238,6 +240,7 @@ rec {
         smb passwd file = $TMPDIR/smbpasswd
         security = share
       [qemu]
+        force user = $WHO
         path = /
         read only = no
         guest ok = yes
diff --git a/pkgs/data/fonts/terminus-font/default.nix b/pkgs/data/fonts/terminus-font/default.nix
index 6ef03ca2dca..039e046ed55 100644
--- a/pkgs/data/fonts/terminus-font/default.nix
+++ b/pkgs/data/fonts/terminus-font/default.nix
@@ -2,8 +2,10 @@
 stdenv.mkDerivation rec {
   name = "terminus-font-4.30";
   src = fetchurl {
-    url = "http://www.is-vn.bg/hamster/${name}.tar.gz";
-    sha256 = "ca15718f715f1ca7af827a8ab5543b0c0339b2515f39f8c15f241b2bc1a15a9a";
+#    urls = "http://www.is-vn.bg/hamster/${name}.tar.gz"
+#    sha256 = "ca15718f715f1ca7af827a8ab5543b0c0339b2515f39f8c15f241b2bc1a15a9a";
+     url = "http://ftp.de.debian.org/debian/pool/main/x/xfonts-terminus/xfonts-terminus_4.30.orig.tar.gz";
+     sha256 = "d7f1253d75f0aa278b0bbf457d15927ed3bbf2565b9f6b829c2b2560fedc1712";
   };
   buildInputs = [ perl bdftopcf mkfontdir mkfontscale ];
   patchPhase = ''
diff --git a/pkgs/desktops/kde-4.4/default.nix b/pkgs/desktops/kde-4.4/default.nix
index fbdd9a5240e..24db09632e1 100644
--- a/pkgs/desktops/kde-4.4/default.nix
+++ b/pkgs/desktops/kde-4.4/default.nix
@@ -32,11 +32,11 @@ pkgs.recurseIntoAttrs (rec {
   };
   
   qca2 = import ./support/qca2 {
-    inherit (pkgs) stdenv fetchurl lib which qt4;
+    inherit (pkgs) stdenv fetchurl which qt4;
   };
 
   qca2_ossl = import ./support/qca2/ossl.nix {
-    inherit (pkgs) stdenv fetchurl lib qt4 openssl;
+    inherit (pkgs) stdenv fetchurl fetchsvn qt4 openssl;
     inherit qca2;
   };
   
diff --git a/pkgs/desktops/kde-4.4/pim/default.nix b/pkgs/desktops/kde-4.4/pim/default.nix
index ec5c0231d91..6d8588146da 100644
--- a/pkgs/desktops/kde-4.4/pim/default.nix
+++ b/pkgs/desktops/kde-4.4/pim/default.nix
@@ -9,6 +9,7 @@ stdenv.mkDerivation {
     sha256 = "0n95wjk1ly7zfn9wv589a9hrc0r7wvik7jrvsgimnxr0rapxk3bp";
   };
   builder = ./builder.sh;  
+  cmakeFlags = "-DBUILD_kleopatra=OFF"; # doesn't build with new boost
   buildInputs = [ cmake qt4 perl boost gpgme stdenv.gcc.libc libassuan libgpgerror libxslt
                   shared_mime_info libXScrnSaver
                   kdelibs kdepimlibs automoc4 phonon akonadi strigi soprano qca2 ];
diff --git a/pkgs/desktops/kde-4.4/support/akonadi/default.nix b/pkgs/desktops/kde-4.4/support/akonadi/default.nix
index 1f00d0461b9..b93f65b9a6a 100644
--- a/pkgs/desktops/kde-4.4/support/akonadi/default.nix
+++ b/pkgs/desktops/kde-4.4/support/akonadi/default.nix
@@ -6,6 +6,7 @@ stdenv.mkDerivation rec {
     url = "http://download.akonadi-project.org/${name}.tar.bz2";
     sha256 = "1d2ancspavp4qg717hj56j1likb0ifdr65q1awbc2ghqqgd9znck";
   };
+  patches = [ ./fix-broken-datadir-parameter.patch ];
   buildInputs = [ cmake qt4 shared_mime_info libxslt boost mysql automoc4 soprano ];
   meta = with stdenv.lib; {
     description = "KDE PIM Storage Service";
diff --git a/pkgs/desktops/kde-4.4/support/akonadi/fix-broken-datadir-parameter.patch b/pkgs/desktops/kde-4.4/support/akonadi/fix-broken-datadir-parameter.patch
new file mode 100644
index 00000000000..fa33329d4b0
--- /dev/null
+++ b/pkgs/desktops/kde-4.4/support/akonadi/fix-broken-datadir-parameter.patch
@@ -0,0 +1,17 @@
+Fix broken datadir parameter.
+
+--- akonadi-1.3.85/server/src/storage/dbconfigmysql.cpp	2010-06-09 03:41:30.000000000 -0430
++++ akonadi-local-1.3.85/server/src/storage/dbconfigmysql.cpp	2010-08-11 00:21:20.547181479 -0430
+@@ -250,11 +250,10 @@
+   // synthesize the mysqld command
+   QStringList arguments;
+   arguments << QString::fromLatin1( "--defaults-file=%1/mysql.conf" ).arg( akDir );
++  arguments << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir );
+ #ifndef Q_WS_WIN
+-  arguments << QString::fromLatin1( "--datadir" ) << QString::fromLatin1( "%1/" ).arg( dataDir );
+   arguments << QString::fromLatin1( "--socket=%1/mysql.socket" ).arg( miscDir );
+ #else
+-  arguments << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir );
+   arguments << QString::fromLatin1( "--shared-memory" );
+ #endif
+ 
diff --git a/pkgs/desktops/kde-4.4/support/qca2/default.nix b/pkgs/desktops/kde-4.4/support/qca2/default.nix
index ceff834e95b..a55f7c8cb43 100644
--- a/pkgs/desktops/kde-4.4/support/qca2/default.nix
+++ b/pkgs/desktops/kde-4.4/support/qca2/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, lib, which, qt4}:
+{stdenv, fetchurl, which, qt4}:
 
 stdenv.mkDerivation {
   name = "qca-2.0.2";
@@ -7,10 +7,17 @@ stdenv.mkDerivation {
     sha256 = "49b5474450104a2298747c243de1451ab7a6aeed4bf7df43ffa4b7128a2837b8";
   };
   buildInputs = [ which qt4 ];
-  meta = {
+  preBuild = ''
+    sed -i include/QtCrypto/qca_publickey.h -e '/EMSA3_Raw/a,\
+            EMSA3_SHA224,     ///< SHA224, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
+            EMSA3_SHA256,     ///< SHA256, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
+            EMSA3_SHA384,     ///< SHA384, with EMSA3 (ie PKCS#1 Version 1.5) encoding\
+            EMSA3_SHA512      ///< SHA512, with EMSA3 (ie PKCS#1 Version 1.5) encoding'
+  '';
+  meta = with stdenv.lib; {
     description = "Qt Cryptographic Architecture";
     license = "LGPL";
     homepage = http://delta.affinix.com/qca;
-    maintainers = [ lib.maintainers.sander ];
+    maintainers = [ maintainers.sander maintainers.urkud ];
   };
 }
diff --git a/pkgs/desktops/kde-4.4/support/qca2/ossl.nix b/pkgs/desktops/kde-4.4/support/qca2/ossl.nix
index be992eb42ea..bfaa320618c 100644
--- a/pkgs/desktops/kde-4.4/support/qca2/ossl.nix
+++ b/pkgs/desktops/kde-4.4/support/qca2/ossl.nix
@@ -1,23 +1,32 @@
-{stdenv, fetchurl, lib, qt4, qca2, openssl}:
+{stdenv, fetchurl, fetchsvn, qt4, qca2, openssl}:
 
 stdenv.mkDerivation rec {
-  name = "qca-ossl-2.0.0-beta3";
+  version = "2.0.0-beta3";
+  name = "qca-ossl-${version}";
   src = fetchurl {
     url = "http://delta.affinix.com/download/qca/2.0/plugins/${name}.tar.bz2";
     sha256 = "0yy68racvx3clybry2i1bw5bz9yhxr40p3xqagxxb15ihvsrzq08";
   };
+  # SVN version has stabilized and has a lot of fixes for fresh OpenSSL
+  # Take the main source from there
+  svn_src = fetchsvn {
+    url = svn://anonsvn.kde.org/home/kde/trunk/kdesupport/qca/plugins/qca-ossl ; 
+    rev = 1115936;
+    sha256 =  "ef2c0307e8834e1e7cb23b6fea1cc22486328a37186301a6c11161b1c93d834b";
+  };
   buildInputs = [ qt4 qca2 openssl ];
   dontAddPrefix = true;
   configureFlags="--no-separate-debug-info --with-qca=${qca2}
     --with-openssl-inc=${openssl}/include --with-openssl-lib=${openssl}/lib";
   preConfigure=''
+    cp ${svn_src}/qca-ossl.cpp .
+
     configureFlags="$configureFlags --plugins-path=$out/lib/qt4/plugins"
   '';
-  patches = [ ./ossl-remove-whirlpool.patch ];
-  meta = {
+  meta = with stdenv.lib; {
     description = "Qt Cryptographic Architecture OpenSSL plugin";
     license = "LGPL";
     homepage = http://delta.affinix.com/qca;
-    maintainers = [ lib.maintainers.urkud ];
+    maintainers = [ maintainers.urkud ];
   };
 }
diff --git a/pkgs/desktops/kde-4.5/accessibility/default.nix b/pkgs/desktops/kde-4.5/accessibility/default.nix
new file mode 100644
index 00000000000..048111389bf
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/accessibility/default.nix
@@ -0,0 +1,14 @@
+{kdePackage, cmake, qt4, perl, alsaLib, libXi, libXtst, kdelibs, automoc4 }:
+
+kdePackage {
+  pn = "kdeaccessibility";
+  v = "4.5.0";
+
+  # TODO: speech dispatcher and/or freetts
+  buildInputs = [ cmake qt4 perl alsaLib libXi libXtst kdelibs automoc4 ];
+
+  meta = {
+    description = "KDE accessibility tools";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/admin/builder.sh b/pkgs/desktops/kde-4.5/admin/builder.sh
new file mode 100644
index 00000000000..78e29543c1f
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/admin/builder.sh
@@ -0,0 +1,13 @@
+source $stdenv/setup
+
+myPatchPhase()
+{
+    for i in system-config-printer-kde/cmake-modules/FindSystemConfigPrinter.py system-config-printer-kde/system-config-printer-kde.py
+    do
+	sed -i -e "s|/usr/share/system-config-printer|$system_config_printer/share/system-config-printer|" $i
+    done
+
+	sed -i -e "s|import cupshelpers.ppds, cupshelpers.cupshelpers|import ppds, cupshelpers|" system-config-printer-kde/cmake-modules/FindSystemConfigPrinter.py
+}
+patchPhase=myPatchPhase
+genericBuild
diff --git a/pkgs/desktops/kde-4.5/admin/default.nix b/pkgs/desktops/kde-4.5/admin/default.nix
new file mode 100644
index 00000000000..61f5b018a7b
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/admin/default.nix
@@ -0,0 +1,22 @@
+{ kdePackage, cmake, qt4, pkgconfig, perl, python
+, sip, pyqt4, pycups, rhpl, system_config_printer
+, kdelibs, kdepimlibs, kdebindings, automoc4}:
+
+kdePackage {
+  pn = "kdeadmin";
+  v = "4.5.0";
+
+  builder = ./builder.sh;
+
+  inherit system_config_printer;
+
+  PYTHONPATH = "${pycups}/lib/python${python.majorVersion}/site-packages";
+
+  buildInputs = [ cmake qt4 pkgconfig perl python sip pyqt4 pycups rhpl system_config_printer
+                  kdelibs kdepimlibs kdebindings automoc4 ];
+
+  meta = {
+    description = "KDE Administration Utilities";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/artwork/FindXscreensaver.cmake b/pkgs/desktops/kde-4.5/artwork/FindXscreensaver.cmake
new file mode 100644
index 00000000000..caa5ddd9254
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/artwork/FindXscreensaver.cmake
@@ -0,0 +1,85 @@
+#Macro to find xscreensaver directory
+
+# Copyright (c) 2006, Laurent Montel, <montel@kde.org>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+if (NOT XSCREENSAVER_FOUND)
+  FIND_PATH(XSCREENSAVER_DIR deco
+    HINTS
+      ${KDE4_INCLUDE_DIR}
+	PATHS
+      /usr
+      /usr/local
+      /opt/local
+      /usr/X11R6
+      /opt/kde
+      /opt/kde3
+      /usr/kde
+      /usr/local/kde
+      /usr/local/xscreensaver
+      /usr/openwin/lib/xscreensaver
+      /etc
+	PATH_SUFFIXES
+      lib${LIB_SUFFIX}/xscreensaver
+      lib/xscreensaver
+	  lib${LIB_SUFFIX}/misc/xscreensaver
+	  lib/misc/xscreensaver
+	  libexec/xscreensaver
+	  bin/xscreensaver-hacks
+	  hacks)
+  message(XSCREENSAVER_DIR ${XSCREENSAVER_DIR})
+
+  set(XSCREENSAVER_CONFIG_DIR)
+  FIND_PATH(XSCREENSAVER_CONFIG_DECO config/deco.xml
+    PATHS
+    ${KDE4_INCLUDE_DIR}
+    /usr/
+    /usr/local/
+    /opt/local/
+    /usr/X11R6/
+    /opt/kde/
+    /opt/kde3/
+    /usr/kde/
+    /usr/local/kde/
+    /usr/openwin/lib/xscreensaver/
+    /etc/
+    PATH_SUFFIXES xscreensaver share/xscreensaver
+  )
+  #MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
+
+  if(XSCREENSAVER_CONFIG_DECO)
+	set(XSCREENSAVER_CONFIG_DIR "${XSCREENSAVER_CONFIG_DECO}/config/")
+	#MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR <${XSCREENSAVER_CONFIG_DIR}>")
+  endif(XSCREENSAVER_CONFIG_DECO)
+
+
+  # Try and locate XScreenSaver config when path doesn't include config
+  if(NOT XSCREENSAVER_CONFIG_DIR)
+    FIND_PATH(XSCREENSAVER_CONFIG_DIR deco.xml
+      /etc/xscreensaver
+      )
+  endif(NOT XSCREENSAVER_CONFIG_DIR)
+endif(NOT XSCREENSAVER_FOUND)
+
+#MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
+#MESSAGE(STATUS "XSCREENSAVER_DIR :<${XSCREENSAVER_DIR}>")
+
+# Need to fix hack
+if(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
+	set(XSCREENSAVER_FOUND TRUE)
+endif(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
+
+if (XSCREENSAVER_FOUND)
+  if (NOT Xscreensaver_FIND_QUIETLY)
+    message(STATUS "Found XSCREENSAVER_CONFIG_DIR <${XSCREENSAVER_CONFIG_DIR}>")
+  endif (NOT Xscreensaver_FIND_QUIETLY)
+else (XSCREENSAVER_FOUND)
+  if (Xscreensaver_FIND_REQUIRED)
+    message(FATAL_ERROR "XScreenSaver not found")
+  endif (Xscreensaver_FIND_REQUIRED)
+endif (XSCREENSAVER_FOUND)
+
+
+MARK_AS_ADVANCED(XSCREENSAVER_DIR XSCREENSAVER_CONFIG_DIR)
diff --git a/pkgs/desktops/kde-4.5/artwork/default.nix b/pkgs/desktops/kde-4.5/artwork/default.nix
index e4e94ebb6dc..ca036322f48 100644
--- a/pkgs/desktops/kde-4.5/artwork/default.nix
+++ b/pkgs/desktops/kde-4.5/artwork/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, xscreensaver
-, kdelibs, kdebase_workspace, automoc4, phonon, strigi, eigen}:
+{ kdePackage, cmake, qt4, perl, xscreensaver
+, kdelibs, kdebase_workspace, automoc4, strigi, eigen}:
+
+kdePackage {
+  pn = "kdeartwork";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl xscreensaver kdelibs kdebase_workspace automoc4
+    strigi eigen ];
+
+  preConfigure = ''
+    cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake
+    '';
 
-stdenv.mkDerivation {
-  name = "kdeartwork-4.4.92";
-  src = fetchurl {
-    url = "mirror://kde/unstable/4.4.92/src/${name}.tar.bz2";
-    sha256 = "17c481za2jfrmhd946jbhgwpcyzjkgjkk2jw84wbj8v694ry3xym";
-  };
-  buildInputs = [ cmake qt4 perl xscreensaver
-                  kdelibs kdebase_workspace automoc4 phonon strigi eigen ];
   meta = {
     description = "KDE artwork";
     longDescription = "Contains various artwork for KDE such as backgrounds, icons and screensavers";
     license = "LGPL";
-    homepage = http://www.kde.org;
-    maintainers = [ lib.maintainers.sander ];
   };
 }
diff --git a/pkgs/desktops/kde-4.5/base-runtime/default.nix b/pkgs/desktops/kde-4.5/base-runtime/default.nix
new file mode 100644
index 00000000000..7abac4aa594
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/base-runtime/default.nix
@@ -0,0 +1,27 @@
+{ kdePackage, cmake, perl, bzip2, xz, qt4, alsaLib, xineLib, samba,
+  shared_mime_info, exiv2, libssh , kdelibs, automoc4, strigi, soprano,
+  cluceneCore, attica, virtuoso, makeWrapper, oxygen_icons }:
+
+kdePackage {
+  pn = "kdebase-runtime";
+  v = "4.5.0";
+
+  buildInputs = [ cmake perl bzip2 xz qt4 alsaLib xineLib samba shared_mime_info
+    exiv2 libssh kdelibs automoc4 strigi soprano cluceneCore attica
+    makeWrapper];
+
+  patches = [ ./freeze.diff ];
+
+  postInstall = ''
+    rm -v $out/share/icons/default.kde4
+    ln -s ${oxygen_icons}/share/icons/oxygen $out/share/icons/default.kde4
+    wrapProgram "$out/bin/nepomukservicestub" --prefix LD_LIBRARY_PATH : "${virtuoso}/lib" \
+        --prefix PATH : "${virtuoso}/bin"
+  '';
+
+  meta = {
+    description = "KDE runtime";
+    longDescription = "Libraries and tools which supports running KDE desktop applications";
+    license = "LGPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/base-runtime/freeze.diff b/pkgs/desktops/kde-4.5/base-runtime/freeze.diff
new file mode 100644
index 00000000000..62079f6e8ce
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/base-runtime/freeze.diff
@@ -0,0 +1,37 @@
+Index: kioslave/network/network/builder/upnp/upnpnetworkbuilder.cpp
+===================================================================
+--- a/kioslave/network/network/builder/upnp/upnpnetworkbuilder.cpp	(revision 1160390)
++++ b/kioslave/network/network/builder/upnp/upnpnetworkbuilder.cpp	(revision 1160391)
+@@ -36,6 +36,7 @@
+ #include <QtDBus/QDBusConnection>
+ #include <QtDBus/QDBusInterface>
+ #include <QtDBus/QDBusPendingCallWatcher>
++#include <QtCore/QTimer>
+ #include <QtCore/QStringList>
+ 
+ #include <KDebug>
+@@ -60,6 +61,11 @@
+ 
+ void UpnpNetworkBuilder::start()
+ {
++    QTimer::singleShot(0, this, SLOT(startBrowse()));
++}
++
++void UpnpNetworkBuilder::startBrowse()
++{
+     qDBusRegisterMetaType<DeviceTypeMap>();
+     qDBusRegisterMetaType<Cagibi::Device>();
+ 
+Index: kioslave/network/network/builder/upnp/upnpnetworkbuilder.h
+===================================================================
+--- a/kioslave/network/network/builder/upnp/upnpnetworkbuilder.h	(revision 1160390)
++++ b/kioslave/network/network/builder/upnp/upnpnetworkbuilder.h	(revision 1160391)
+@@ -63,6 +63,8 @@
+     void removeUPnPDevices( const QList<Cagibi::Device>& devices );
+ 
+   private Q_SLOTS:
++    void startBrowse();
++
+     void onDevicesAdded( const DeviceTypeMap& deviceTypeMap );
+     void onDevicesRemoved( const DeviceTypeMap& deviceTypeMap );
+     void onAddedDeviceDetails( const Cagibi::Device& device );
diff --git a/pkgs/desktops/kde-4.5/base-workspace/default.nix b/pkgs/desktops/kde-4.5/base-workspace/default.nix
new file mode 100644
index 00000000000..d80d78ed933
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/base-workspace/default.nix
@@ -0,0 +1,23 @@
+{ kdePackage, cmake, perl, python, pam, consolekit
+, qt4, sip, pyqt4, kdelibs, kdepimlibs, kdebindings
+, libXi, libXau, libXdmcp, libXtst, libXcomposite, libXdamage, libXScrnSaver
+, lm_sensors, libxklavier, libusb, libpthreadstubs, boost
+, automoc4, strigi, soprano, qimageblitz, akonadi
+, libdbusmenu_qt
+}:
+
+kdePackage {
+  pn = "kdebase-workspace";
+  v = "4.5.0";
+
+  buildInputs = [ cmake perl python qt4 pam consolekit sip pyqt4 kdelibs libXtst
+    kdepimlibs kdebindings boost libusb libXi libXau libXdmcp
+    libXcomposite libXdamage libXScrnSaver lm_sensors libxklavier automoc4
+    strigi soprano qimageblitz akonadi libpthreadstubs libdbusmenu_qt ];
+
+  meta = {
+    description = "KDE Workspace";
+    longDescription = "KDE base components that are only required to work with X11 such KDM and KWin";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/base/default.nix b/pkgs/desktops/kde-4.5/base/default.nix
new file mode 100644
index 00000000000..02c38bacede
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/base/default.nix
@@ -0,0 +1,18 @@
+{ kdePackage, cmake, perl, qt4, kdelibs, pciutils, libraw1394
+, automoc4, strigi, qimageblitz, soprano}:
+
+kdePackage {
+  pn = "kdebase";
+  v = "4.5.0";
+
+  preConfigure = "cd apps";
+
+  buildInputs = [ cmake perl qt4 kdelibs pciutils libraw1394 automoc4
+    strigi qimageblitz soprano ];
+
+  meta = {
+    description = "KDE Base components";
+    longDescription = "Applications that form the KDE desktop, like Plasma, System Settings, Konqueror, Dolphin, Kate, and Konsole";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/bindings/default.nix b/pkgs/desktops/kde-4.5/bindings/default.nix
index ce8f841726e..2628d115cd4 100644
--- a/pkgs/desktops/kde-4.5/bindings/default.nix
+++ b/pkgs/desktops/kde-4.5/bindings/default.nix
@@ -1,42 +1,36 @@
-{ stdenv, fetchurl, lib, cmake, perl, python, sip, pyqt4, zlib, libpng, freetype, fontconfig, qt4, boost
+{ kdePackage, lib, cmake, perl, python, sip, pyqt4, zlib, libpng, freetype, fontconfig, qt4, boost
 , kdelibs, kdepimlibs, automoc4, soprano, akonadi, attica, polkit_qt_1, ruby
 }:
 
 # This function will only build the pykde4 module. I don't need the other bindings and
 # some bindings are even broken.
 
-stdenv.mkDerivation rec {
-  name = "kdebindings-4.4.95";
-  
-  src = fetchurl {
-    url = "mirror://kde/unstable/4.4.95/src/${name}.tar.bz2";
-    sha256 = "115xl1jcpnyr71573if0nvb3hy8z5hxqy5qlvc71pdprzrp78xbc";
-  };
+kdePackage rec {
+  pn = "kdebindings";
+  v = "4.5.0";
 
   patches = [ ./python-site-packages-install-dir.diff ];
 
   preConfigure = ''
     CUSTOM_RUBY_SITE_ARCH_DIR=$(ruby -r rbconfig -e "print Config::CONFIG['sitearchdir']" | sed -e "s@${ruby}@$out@")
     CUSTOM_RUBY_SITE_LIB_DIR=$(ruby -r rbconfig -e "print Config::CONFIG['sitelibdir']" | sed -e "s@${ruby}@$out@")
-	CUSTOM_PERL_SITE_ARCH_DIR=$(perl -MConfig -e 'print $Config{sitearch}' | sed -e "s@${perl}@$out@")
+    CUSTOM_PERL_SITE_ARCH_DIR=$(perl -MConfig -e 'print $Config{sitearch}' | sed -e "s@${perl}@$out@")
     cmakeFlagsArray=(
-	  -DSIP_DEFAULT_SIP_DIR=$out/share/sip
+      -DSIP_DEFAULT_SIP_DIR=$out/share/sip
       -DCUSTOM_RUBY_SITE_ARCH_DIR=$CUSTOM_RUBY_SITE_ARCH_DIR
-	  -DCUSTOM_RUBY_SITE_LIB_DIR=$CUSTOM_RUBY_SITE_LIB_DIR
-	  -DCUSTOM_PERL_SITE_ARCH_DIR=$CUSTOM_PERL_SITE_ARCH_DIR
-	)
+      -DCUSTOM_RUBY_SITE_LIB_DIR=$CUSTOM_RUBY_SITE_LIB_DIR
+      -DCUSTOM_PERL_SITE_ARCH_DIR=$CUSTOM_PERL_SITE_ARCH_DIR
+    )
   '';
   
   # Okular seems also an optional depenedency which I left out
   buildInputs = [ cmake perl python sip pyqt4 zlib libpng freetype fontconfig qt4 boost
-		  kdelibs kdepimlibs automoc4 soprano akonadi attica polkit_qt_1 ruby ];
+          kdelibs kdepimlibs automoc4 soprano akonadi attica polkit_qt_1 ruby ];
 
   meta = {
     description = "KDE bindings";
     longDescription = "Provides KDE bindings for several languages such as Java, Smoke and Python";
     license = "LGPL";
-    homepage = http://www.kde.org;
-	inherit (kdelibs.meta) maintainers;
   };
 }
 
diff --git a/pkgs/desktops/kde-4.5/bindings/python-site-packages-install-dir.diff b/pkgs/desktops/kde-4.5/bindings/python-site-packages-install-dir.diff
index d1a58201b5f..7fe64e7eff5 100644
--- a/pkgs/desktops/kde-4.5/bindings/python-site-packages-install-dir.diff
+++ b/pkgs/desktops/kde-4.5/bindings/python-site-packages-install-dir.diff
@@ -39,7 +39,7 @@ diff --git a/python/pykde4/tools/pykdeuic4/CMakeLists.txt b/python/pykde4/tools/
 index ea711ba..115c777 100644
 --- a/python/pykde4/tools/pykdeuic4/CMakeLists.txt
 +++ b/python/pykde4/tools/pykdeuic4/CMakeLists.txt
-@@ -1,5 +1,5 @@
+@@ -1,5 +1,9 @@
  
 -PYTHON_INSTALL(kde4.py ${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/widget-plugins/)
 -PYTHON_INSTALL(pykdeuic4.py ${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/)
@@ -47,4 +47,8 @@ index ea711ba..115c777 100644
 +PYTHON_INSTALL(pykdeuic4.py ${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/)
  find_path(cmake_module_dir create_exe_symlink.cmake ${CMAKE_MODULE_PATH})
 -INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${PYTHON_SITE_PACKAGES_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
-+INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
++IF(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
++  INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
++ELSE(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
++  INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -DTARGET=${CMAKE_INSTALL_PREFIX}/${PYTHON_SITE_PACKAGES_INSTALL_DIR}/PyQt4/uic/pykdeuic4.py -DLINK_NAME=${BIN_INSTALL_DIR}/pykdeuic4 -P ${cmake_module_dir}/create_exe_symlink.cmake)" )
++ENDIF(IS_ABSOLUTE ${PYTHON_SITE_PACKAGES_INSTALL_DIR})
diff --git a/pkgs/desktops/kde-4.5/default.nix b/pkgs/desktops/kde-4.5/default.nix
index e0801d80ba7..1d2abb5284a 100644
--- a/pkgs/desktops/kde-4.5/default.nix
+++ b/pkgs/desktops/kde-4.5/default.nix
@@ -1,8 +1,12 @@
-{ callPackage, stdenv, fetchurl } :
+{ callPackage, stdenv, fetchurl, qt47 } :
 
 {
   recurseForRelease = true;
 
+  qt4 = qt47;
+
+  phonon = null;
+
   kdePackage = import ./kde-package {
     inherit stdenv fetchurl;
   };
@@ -14,6 +18,8 @@
 
   automoc4 = callPackage ./support/automoc4 { };
 
+  eigen = callPackage ./support/eigen { };
+
   oxygen_icons = callPackage ./support/oxygen-icons { };
 
   polkit_qt_1 = callPackage ./support/polkit-qt-1 { };
@@ -26,13 +32,39 @@
 
   qca2_ossl = callPackage ./support/qca2/ossl.nix { };
 
+  qimageblitz = callPackage ./support/qimageblitz { };
+
 ### LIBS
   kdelibs = callPackage ./libs { };
 
   kdepimlibs = callPackage ./pimlibs { };
 
+### BASE
+  kdebase = callPackage ./base { };
+
+  kdebase_workspace = callPackage ./base-workspace { };
+
+  kdebase_runtime = callPackage ./base-runtime { };
+
+### OTHER MODULES
+  kdeaccessibility = callPackage ./accessibility { };
+  kdeadmin = callPackage ./admin { };
+  kdeartwork = callPackage ./artwork { };
+  kdeedu = callPackage ./edu { };
+  kdegames = callPackage ./games { };
+  kdegraphics = callPackage ./graphics { };
+  kdemultimedia = callPackage ./multimedia { };
+  kdenetwork = callPackage ./network { };
+  kdeplasma_addons = callPackage ./plasma-addons { };
+  kdesdk = callPackage ./sdk { };
+  kdetoys = callPackage ./toys { };
+  kdeutils = callPackage ./utils { };
+  kdewebdev = callPackage ./webdev { };
+
+  #kdepim_runtime = callPackage ../kde-4.4/pim-runtime { };
+  kdepim_runtime = callPackage ./pim-runtime { };
+  kdepim = callPackage ../kde-4.4/pim { };
 ### DEVELOPMENT
 
   kdebindings = callPackage ./bindings { };
-  
 }
diff --git a/pkgs/desktops/kde-4.5/edu/default.nix b/pkgs/desktops/kde-4.5/edu/default.nix
new file mode 100644
index 00000000000..2b9fe044dfd
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/edu/default.nix
@@ -0,0 +1,27 @@
+{ kdePackage, cmake, qt4, perl, libxml2, libxslt, openbabel, boost, readline, gmm, gsl
+, xplanet, libspectre, pkgconfig, libqalculate
+, kdelibs, automoc4, eigen, attica}:
+
+kdePackage {
+  pn = "kdeedu";
+  v = "4.5.0";
+
+#TODO:
+#* Boost.Python (1.31 or higher)  <http://www.boost.org/> - fails to find
+# * libcfitsio0 (3.09 or higher)  <http://indi.sf.net>
+# * libindi (0.6.1 or higher)  <http://indi.sf.net>
+# * R  <http://www.r-project.org/>
+# * OCaml  <http://caml.inria.fr/>
+# * LibFacile  <http://www.recherche.enac.fr/log/facile/>
+# * Avogadro (1.0 or higher)  <http://avogadro.openmolecules.net>
+# * libgps
+
+  buildInputs = [ cmake qt4 perl libxml2 libxslt openbabel boost readline gmm
+    gsl xplanet kdelibs automoc4 eigen attica libspectre pkgconfig
+    libqalculate ];
+
+  meta = {
+    description = "KDE Educative software";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/games/default.nix b/pkgs/desktops/kde-4.5/games/default.nix
new file mode 100644
index 00000000000..662813ce86e
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/games/default.nix
@@ -0,0 +1,20 @@
+{kdePackage, cmake, qt4, perl, shared_mime_info, kdelibs, automoc4, qca2
+, kdebindings, twisted, python, pyqt4, sip, makeWrapper }:
+
+kdePackage {
+  pn = "kdegames";
+  v = "4.5.0";
+
+# TODO: ggz
+  buildInputs = [ cmake qt4 perl shared_mime_info kdelibs automoc4 qca2
+    kdebindings twisted python pyqt4 sip makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/kajongg --set PYTHONPATH $PYTHONPATH
+    wrapProgram $out/bin/kajonggserver --set PYTHONPATH $PYTHONPATH'';
+
+  meta = {
+    description = "KDE Games";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/graphics/default.nix b/pkgs/desktops/kde-4.5/graphics/default.nix
new file mode 100644
index 00000000000..555f5ef32e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/graphics/default.nix
@@ -0,0 +1,21 @@
+{ kdePackage, cmake, lib, perl, qt4, exiv2, lcms, saneBackends, libgphoto2
+, libspectre, popplerQt4, djvulibre, chmlib, shared_mime_info, libXxf86vm
+, kdelibs, automoc4, strigi, qimageblitz, soprano, qca2, ebook_tools }:
+
+kdePackage {
+  pn = "kdegraphics";
+  v = "4.5.0";
+
+  buildInputs = [ cmake perl qt4 exiv2 lcms saneBackends libgphoto2 libspectre
+    (popplerQt4.override { inherit qt4; }) chmlib shared_mime_info libXxf86vm
+    kdelibs automoc4 strigi qimageblitz soprano qca2 djvulibre ebook_tools ];
+
+  meta = {
+    description = "KDE graphics utilities";
+    longDescription = ''
+      Contains various graphics utilities such as Gwenview image viewer and
+      Okular  document reader.
+    '';
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/kde-package/default.nix b/pkgs/desktops/kde-4.5/kde-package/default.nix
index 6f41ed7daa6..9e1ef5006fd 100644
--- a/pkgs/desktops/kde-4.5/kde-package/default.nix
+++ b/pkgs/desktops/kde-4.5/kde-package/default.nix
@@ -1,12 +1,16 @@
 { stdenv, fetchurl }:
 
-a@{ pn, v, stable ? true, sha256, subdir ? null, ... }:
+let
+  manifest = import ./manifest.nix;
+in
+
+a@{ pn, v, stable ? true, subdir ? null, ... }:
 stdenv.mkDerivation ({
   name = "${pn}-${v}";
   src = fetchurl {
     url = "mirror://kde/" + (if stable then "" else "un") + "stable/" +
       (if subdir == null then "${v}/src" else subdir) + "/${pn}-${v}.tar.bz2";
-    inherit sha256;
+    sha256 = builtins.getAttr "${pn}-${v}.tar.bz2" manifest;
   };
   meta = {
     maintainers = with stdenv.lib.maintainers; [ sander urkud ];
@@ -14,4 +18,4 @@ stdenv.mkDerivation ({
     inherit stable;
     homepage = http://www.kde.org;
   } // ( if a ? meta then a.meta else { } );
-} // (removeAttrs a [ "meta" "pn" "v" "stable" "sha256" "subdir" ]))
+} // (removeAttrs a [ "meta" "pn" "v" "stable" "subdir" ]))
diff --git a/pkgs/desktops/kde-4.5/kde-package/manifest.nix b/pkgs/desktops/kde-4.5/kde-package/manifest.nix
new file mode 100644
index 00000000000..d33a365a19c
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/kde-package/manifest.nix
@@ -0,0 +1,95 @@
+builtins.listToAttrs
+[
+{
+  name = "kdepim-runtime-4.4.92.tar.bz2";
+  value = "1gshcnra3fcbj6ww7rfaw6ny1x9mf4l7pxwlrppv2slgwg141msy";
+}
+{
+  name = "kdepim-4.4.92.tar.bz2";
+  value = "0mhpifynnypg81nhwfvr28hbpr7c6w488afasprqhxbs4q57lin6";
+}
+{
+  name = "kdegraphics-4.5.0.tar.bz2";
+  value = "13ms1z26sb2pfadhagkykgnw0p7inrn36p4s9qr04qisy2b2vd6l";
+}
+{
+  name = "kdebase-workspace-4.5.0.tar.bz2";
+  value = "0wwg2rcwgkwi0k1a7v6h0ibvzk64mb2fvr02zbdkc94rh4pc25zw";
+}
+{
+  name = "oxygen-icons-4.5.0.tar.bz2";
+  value = "11wlrxnral4q5wi46p1di1cff4vr5da35a8dv2xx3ag6lnhqvjqi";
+}
+{
+  name = "kdeplasma-addons-4.5.0.tar.bz2";
+  value = "1v0zcl65sqlz6ggin3mb6pr3gf2v15z8lyh0p4b95rslrzw6iih6";
+}
+{
+  name = "kdepimlibs-4.5.0.tar.bz2";
+  value = "0n3wmc2c4jcxbi81i9jmw23b5ms43gia58qpr835im874641f54m";
+}
+{
+  name = "kdegames-4.5.0.tar.bz2";
+  value = "1ax2qwmkpnc01prlkw5yx5hiqcv725b7yf6czr5gkjysjsqi3aqk";
+}
+{
+  name = "kdewebdev-4.5.0.tar.bz2";
+  value = "0frl9kfw549lfxrjbslxny12r4cg67ggnyclhb0rqma7i07g8gd8";
+}
+{
+  name = "kdelibs-4.5.0.tar.bz2";
+  value = "0d3iml2v1vp1y6i5vpqv77nbdlw6qb8j6c88yi744ba4zvcirzrx";
+}
+{
+  name = "kdebase-4.5.0.tar.bz2";
+  value = "1znmmx84hx3a31lhr55j3h91p9r6fv1c4q9hbgv4xwaijlkxk6dw";
+}
+{
+  name = "kdeadmin-4.5.0.tar.bz2";
+  value = "1zwc8x1r7wg1qddw01b5zr3npmzibag17csiv4a1w6fsnvnny8k1";
+}
+{
+  name = "kdebase-runtime-4.5.0.tar.bz2";
+  value = "0cis9as2szqaxi0bhhw63sy6s8b994j8ffx5wsc84w4a8y3ld1s0";
+}
+{
+  name = "kdeedu-4.5.0.tar.bz2";
+  value = "15c6k1274ckhs4liqyxna5xka2gn4h9qfdvbh9ys85x08srb3051";
+}
+{
+  name = "kdebindings-4.5.0.tar.bz2";
+  value = "0x8c98gbp2rm3dckzw3l0jh2ch5g9sb2prmilwzl8d5psyhx39n6";
+}
+{
+  name = "kdemultimedia-4.5.0.tar.bz2";
+  value = "0b00d9kgy7jcfrxivw4gjvqzp5gd145cd4zbhbnjjdg5l9pvc721";
+}
+{
+  name = "kdetoys-4.5.0.tar.bz2";
+  value = "0lg12cjpk2x2qsk998jbsn0p7a26ans9zgf5966k4wmjcgx1zhqq";
+}
+{
+  name = "kdenetwork-4.5.0.tar.bz2";
+  value = "0xc8309z5c7k3hg38waavrs2hlpv8mf20paj9nadr8q3zs0q6nyp";
+}
+{
+  name = "kdesdk-4.5.0.tar.bz2";
+  value = "09w0n1v9qhxf7ijickw48s19rkaim36vnrxv28lrhj2x3s3s6n1s";
+}
+{
+  name = "kdeartwork-4.5.0.tar.bz2";
+  value = "15sdhrq6hx4i0wywilvvl3h8j5wfa7lgvr8siqxlipy94pfwrbwr";
+}
+{
+  name = "kdeutils-4.5.0.tar.bz2";
+  value = "1x4dwc193gsfcnryhkv2v3xafjr1a87ls0zfi56i1w2aj38b36l7";
+}
+{
+  name = "kdeaccessibility-4.5.0.tar.bz2";
+  value = "0p08xn3rdqf4a9mj4wrvnjj64mbxas3pns772a1sdmpxkyjlwwcx";
+}
+{
+  name = "polkit-qt-1-0.96.1.tar.bz2";
+  value = "1ng5bi1gmr5lg49c5kyqyjzbjhs4w90c2zlnfcyviv9p3wzfgzbr";
+}
+]
diff --git a/pkgs/desktops/kde-4.5/libs/default.nix b/pkgs/desktops/kde-4.5/libs/default.nix
index 71daed339cd..b7bb4573a94 100644
--- a/pkgs/desktops/kde-4.5/libs/default.nix
+++ b/pkgs/desktops/kde-4.5/libs/default.nix
@@ -8,7 +8,6 @@
 kdePackage {
   pn = "kdelibs";
   v = "4.5.0";
-  sha256 = "0d3iml2v1vp1y6i5vpqv77nbdlw6qb8j6c88yi744ba4zvcirzrx";
 
   buildInputs = [
     cmake perl qt4 xz flex bison bzip2 pcre fam libxml2 libxslt
@@ -19,6 +18,8 @@ kdePackage {
 
   propagatedBuildInputs = [ shared_desktop_ontologies gcc.libc ];
 
+  patches = [ ./polkit-install.patch ];
+
   # cmake fails to find acl.h because of C++-style comment
   cmakeFlags = [
     "-DHAVE_ACL_LIBACL_H=ON" "-DHAVE_SYS_ACL_H=ON"
diff --git a/pkgs/desktops/kde-4.5/libs/polkit-install.patch b/pkgs/desktops/kde-4.5/libs/polkit-install.patch
new file mode 100644
index 00000000000..68bf5548796
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/libs/polkit-install.patch
@@ -0,0 +1,11 @@
+Author: Yury Kudryashov
+Reason: other KDE modules try to install polkit action files into
+$kdelibs/share/polkit-1/actions
+--- a/cmake/modules/FindPolkitQt-1.cmake.old	2010-08-12 16:13:45.000000000 +0400
++++ b/cmake/modules/FindPolkitQt-1.cmake	2010-08-12 16:13:56.000000000 +0400
+@@ -101,4 +101,4 @@
+     endif (NOT PC_POLKITQT-1_PREFIX STREQUAL CMAKE_INSTALL_PREFIX)
+ endif (POLKITQT-1_FOUND)
+ 
+-set(POLKITQT-1_POLICY_FILES_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions)
++set(POLKITQT-1_POLICY_FILES_INSTALL_DIR share/polkit-1/actions)
diff --git a/pkgs/desktops/kde-4.5/libs/python-site-packages-install-dir.diff b/pkgs/desktops/kde-4.5/libs/python-site-packages-install-dir.diff
deleted file mode 100644
index 05b280838c4..00000000000
--- a/pkgs/desktops/kde-4.5/libs/python-site-packages-install-dir.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-Source: upstream r1153602
-Index: a/cmake/modules/SIPMacros.cmake
-===================================================================
---- a/cmake/modules/SIPMacros.cmake	(revision 1153601)
-+++ b/cmake/modules/SIPMacros.cmake	(revision 1153602)
-@@ -119,6 +119,6 @@
-     TARGET_LINK_LIBRARIES(${_logical_name} ${EXTRA_LINK_LIBRARIES})
-     SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES PREFIX "" OUTPUT_NAME ${_child_module_name})
- 
--    INSTALL(TARGETS ${_logical_name} DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/${_parent_module_path}")
-+    INSTALL(TARGETS ${_logical_name} DESTINATION "${PYTHON_SITE_PACKAGES_INSTALL_DIR}/${_parent_module_path}")
- 
- ENDMACRO(ADD_SIP_PYTHON_MODULE)
diff --git a/pkgs/desktops/kde-4.5/multimedia/default.nix b/pkgs/desktops/kde-4.5/multimedia/default.nix
new file mode 100644
index 00000000000..9a020970c5d
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/multimedia/default.nix
@@ -0,0 +1,18 @@
+{ kdePackage, cmake, perl, qt4, alsaLib, libvorbis, xineLib, taglib, flac,
+cdparanoia, lame , kdelibs, automoc4, ffmpeg}:
+
+kdePackage {
+  pn = "kdemultimedia";
+  v = "4.5.0";
+
+  buildInputs = [ cmake perl qt4 alsaLib libvorbis xineLib flac taglib
+    cdparanoia lame kdelibs automoc4 ffmpeg ];
+
+  meta = {
+    description = "KDE Multimedia";
+    longDescription = ''
+      Contains various Multimedia utilties for KDE such as a movie player and sound volume mixer.
+    '';
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/network/default.nix b/pkgs/desktops/kde-4.5/network/default.nix
new file mode 100644
index 00000000000..e7e4a8cd561
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/network/default.nix
@@ -0,0 +1,34 @@
+{ kdePackage, cmake, qt4, perl, speex, gmp, libxml2, libxslt, sqlite, alsaLib, libidn
+, libvncserver, libmsn, giflib, gpgme, boost, libv4l, libotr
+, libXi, libXtst, libXdamage, libXxf86vm, libktorrent, kdebase
+, kdebase_workspace
+, kdelibs, kdepimlibs, automoc4, qca2, soprano, qimageblitz, strigi}:
+
+kdePackage {
+  pn = "kdenetwork";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl speex gmp libxml2 libxslt sqlite alsaLib libidn
+    libvncserver libmsn giflib gpgme boost libv4l libotr libXi libXtst
+    libXdamage libXxf86vm kdelibs kdepimlibs automoc4 qca2 soprano
+    qimageblitz strigi libktorrent kdebase kdebase_workspace ];
+
+  patches = [ ./log-feature.diff ];
+#TODO
+# * telepathy-qt4 (0.18 or higher)  <http://telepathy.freedesktop.org>
+# * KWebKitPart  <https://svn.kde.org/home/kde/trunk/extragear/base/kwebkitpart>
+# * libortp (0.13 or higher)  <http://www.linphone.org/index.php/eng/code_review/ortp>
+# * XMMS  <http://www.xmms.org>
+# * mediastreamer (2.3.0 or higher)  <http://www.linphone.org/index.php/eng/code_review/mediastreamer2>
+# * libmeanwhile  <http://meanwhile.sf.net>
+# * libgadu (1.8.0 or higher)  <http://toxygen.net/libgadu/>
+
+# Let cmake find libktorrent. Waiting for upstream fix in 4.5.1
+  KDEDIRS="${libktorrent}";
+
+  meta = {
+    description = "KDE network utilities";
+    longDescription = "Various network utilities for KDE such as a messenger client and network configuration interface";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/network/log-feature.diff b/pkgs/desktops/kde-4.5/network/log-feature.diff
new file mode 100644
index 00000000000..6770dd399e3
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/network/log-feature.diff
@@ -0,0 +1,60 @@
+--- a/kget/CMakeLists.txt	2010-08-16 19:08:36.000000000 +0400
++++ b/kget/CMakeLists.txt	2010-08-16 22:04:24.000000000 +0400
+@@ -53,21 +53,20 @@
+ add_subdirectory(desktop)
+ add_subdirectory(plasma)
+ 
+-# find kworkspace library to allow the shutdown after downloads completed option
+-find_library(KDE4_KWORKSPACE_LIBRARY NAMES kworkspace PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
+-if(KDE4_KWORKSPACE_LIBRARY)
+-    set(KDE4_KWORKSPACE_LIBS ${kworkspace_LIB_DEPENDS} ${KDE4_KWORKSPACE_LIBRARY})
++macro_optional_find_package(KDE4Workspace)
++macro_log_feature(KDE4WORKSPACE_FOUND "KDE4Workspace" "KDE4 workspace libraries, part of kdebase-workspace" "http://www.kde.org" FALSE "" "Allows 'shutdown after downloads completed' in kget")
++if(KDE4WORKSPACE_FOUND)
+     add_definitions(-DHAVE_KWORKSPACE)
+-    set(KWORKSPACE_FOUND true)
+-endif(KDE4_KWORKSPACE_LIBRARY)
++	include_directories(${KDE4WORKSPACE_INCLUDE_DIR})
++endif(KDE4WORKSPACE_FOUND)
+ 
+ # find libkonq to allow actions and open with options in the context menu of a transfer
+-find_library(KDE4_KONQUEROR_LIBRARY NAMES konq PATHS ${KDE4_LIB_INSTALL_DIR} NO_DEFAULT_PATH )
+-if(KDE4_KONQUEROR_LIBRARY)
+-    set(KDE4_KONQUEROR_LIBS ${konq_LIB_DEPENDS} ${KDE4_KONQUEROR_LIBRARY})
++macro_optional_find_package(LibKonq)
++macro_log_feature(LIBKONQ_FOUND "libkonq" "KDE4 Konqueror library" "http://www.kde.org" FALSE "" "Needed to build actions and open with options in the context menu of a transfer")
++if(LIBKONQ_FOUND)
+     add_definitions(-DHAVE_KONQUEROR)
+-    set(KONQUEROR_FOUND true)
+-endif(KDE4_KONQUEROR_LIBRARY)
++	include_directories(${LIBKONQ_INCLUDE_DIR})
++endif(LIBKONQ_FOUND)
+ 
+ 
+ include_directories(
+@@ -142,9 +141,9 @@
+ 
+ target_link_libraries(kgetcore ${KDE4_KIO_LIBS})
+ 
+-if (KWORKSPACE_FOUND)
+-    target_link_libraries(kgetcore ${KDE4_KWORKSPACE_LIBS})
+-endif (KWORKSPACE_FOUND)
++if (KDE4WORKSPACE_FOUND)
++    target_link_libraries(kgetcore ${KDE4WORKSPACE_KWORKSPACE_LIBS})
++endif (KDE4WORKSPACE_FOUND)
+ 
+ if (HAVE_NEPOMUK)
+   target_link_libraries(kgetcore ${SOPRANO_LIBRARIES} ${NEPOMUK_LIBRARIES})
+@@ -294,9 +293,9 @@
+   target_link_libraries(kget ${SOPRANO_LIBRARIES} ${NEPOMUK_LIBRARIES})
+ endif (HAVE_NEPOMUK)
+ 
+-if (KONQUEROR_FOUND)
+-  target_link_libraries(kget ${KDE4_KONQUEROR_LIBS})
+-endif (KONQUEROR_FOUND)
++if (LIBKONQ_FOUND)
++  target_link_libraries(kget ${LIBKONQ_LIBRARY})
++endif (LIBKONQ_FOUND)
+ 
+ if (QGPGME_FOUND)
+   target_link_libraries(kget ${QGPGME_LIBRARIES})
diff --git a/pkgs/desktops/kde-4.5/pim-runtime/default.nix b/pkgs/desktops/kde-4.5/pim-runtime/default.nix
new file mode 100644
index 00000000000..2d1787f62a7
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/pim-runtime/default.nix
@@ -0,0 +1,14 @@
+{ kdePackage, cmake, kdelibs, qt4, kdepimlibs, akonadi, pkgconfig, boost, shared_mime_info, libxml2, shared_desktop_ontologies, soprano, strigi, automoc4, libxslt }:
+
+kdePackage rec {
+	pn = "kdepim-runtime";
+	v = "4.4.92";
+	stable = false;
+	subdir = "kdepim/${v}/src";
+
+	buildInputs = [ automoc4 cmake kdelibs qt4 kdepimlibs akonadi pkgconfig boost shared_mime_info shared_desktop_ontologies libxml2 soprano strigi libxslt ];
+
+  meta = {
+    description = "Runtime files for KDE PIM: akonadi agents etc.";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/pimlibs/default.nix b/pkgs/desktops/kde-4.5/pimlibs/default.nix
index 8452161b66c..b548ad66ecd 100644
--- a/pkgs/desktops/kde-4.5/pimlibs/default.nix
+++ b/pkgs/desktops/kde-4.5/pimlibs/default.nix
@@ -4,7 +4,6 @@
 kdePackage {
   pn = "kdepimlibs";
   v = "4.5.0";
-  sha256 = "0n3wmc2c4jcxbi81i9jmw23b5ms43gia58qpr835im874641f54m";
 
   buildInputs = [ cmake qt4 perl boost cyrus_sasl gpgme libical openldap
     shared_mime_info kdelibs automoc4 akonadi soprano ];
diff --git a/pkgs/desktops/kde-4.5/plasma-addons/default.nix b/pkgs/desktops/kde-4.5/plasma-addons/default.nix
new file mode 100644
index 00000000000..39f67fdaa8e
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/plasma-addons/default.nix
@@ -0,0 +1,18 @@
+{ kdePackage, cmake, qt4, perl, automoc4, kdelibs, soprano, kdeedu
+, boost, eigen, kdebase_workspace, attica, python, qca2, qimageblitz
+, shared_mime_info, kdepimlibs, kdegraphics, libqalculate, libXtst }:
+# , qwt, scim, kdeedu 
+
+kdePackage {
+  pn = "kdeplasma-addons";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl automoc4 kdelibs boost eigen kdebase_workspace
+    attica python qca2 qimageblitz shared_mime_info kdepimlibs kdegraphics
+    libqalculate soprano libXtst kdeedu ];
+
+  meta = {
+    description = "KDE Plasma Addons";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/sdk/default.nix b/pkgs/desktops/kde-4.5/sdk/default.nix
new file mode 100644
index 00000000000..b03a1d88595
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/sdk/default.nix
@@ -0,0 +1,21 @@
+{ kdePackage, binutils, cmake, qt4, perl, libxml2, libxslt, boost, subversion, apr,
+  aprutil , shared_mime_info, hunspell , kdelibs, kdepimlibs, automoc4,
+  kdebindings, strigi, kdebase, libtool, antlr}:
+
+kdePackage {
+  pn = "kdesdk";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl libxml2 libxslt boost subversion aprutil apr
+    shared_mime_info kdelibs kdepimlibs automoc4 strigi hunspell kdebindings
+    kdebase libtool binutils antlr ];
+
+  patches = [ ./find-svn.patch ];
+
+#cmakeFlags = "-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=ON -DBUILD_kioslave=ON";
+  meta = {
+    description = "KDE SDK";
+    longDescription = "Contains various development utilities such as the Umbrello UML modeler and Cerivisia CVS front-end";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/sdk/find-svn.patch b/pkgs/desktops/kde-4.5/sdk/find-svn.patch
new file mode 100644
index 00000000000..61cb49b308f
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/sdk/find-svn.patch
@@ -0,0 +1,59 @@
+diff --git a/cmake/modules/FindSVN.cmake b/cmake/modules/FindSVN.cmake
+index 59bcb96..2eac05d 100644
+--- a/cmake/modules/FindSVN.cmake
++++ b/cmake/modules/FindSVN.cmake
+@@ -17,6 +17,9 @@ FIND_PROGRAM(SVNCONFIG_EXECUTABLE NAMES svn-config PATHS
+ FIND_PROGRAM(APRCONFIG_EXECUTABLE NAMES apr-1-config apr-config PATHS
+    /usr/local/apr/bin
+ )
++find_program(APUCONFIG_EXECUTABLE NAMES apu-1-config apu-config PATHS
++   /usr/local/apr/bin
++)
+ 
+ if(SVNCONFIG_EXECUTABLE)
+ 
+@@ -56,15 +59,9 @@ else(SVNCONFIG_EXECUTABLE)
+       set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
+    else(APRCONFIG_EXECUTABLE)
+       FIND_PATH(_INCLUDES apr_pools.h
+-         ${SVN_INCLUDES}/apr-0/
+-         ${SVN_INCLUDES}/apr-1/
+-         ${SVN_INCLUDES}/apr-1.0/
+-         /usr/include/apr-0/
+-         /usr/include/apr-1/
+-         /usr/include/apr-1.0/
+-         /usr/local/include/apr-0/
+-         /usr/local/include/apr-1/
+-         /usr/local/include/apr-1.0/
++         HINTS ${SVN_INCLUDES}
++         PATHS /usr /usr/local
++         SUFFIXES apr-0 apr-1 apr-1.0
+       )
+       if(_INCLUDES)
+          set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
+@@ -72,6 +69,25 @@ else(SVNCONFIG_EXECUTABLE)
+          set(SVN_FOUND FALSE) # no apr == can't compile!
+       endif(_INCLUDES)
+    endif(APRCONFIG_EXECUTABLE)
++
++   # Use apu-config if it exists
++   if(APUCONFIG_EXECUTABLE)
++      EXEC_PROGRAM(${APUCONFIG_EXECUTABLE} ARGS --includes RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _INCLUDES)
++      string(REPLACE "-I" "" _INCLUDES ${_INCLUDES})
++      string(REPLACE " " ";" _INCLUDES ${_INCLUDES})
++      set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
++   else(APUCONFIG_EXECUTABLE)
++      FIND_PATH(_INCLUDES apu.h
++         HINTS ${SVN_INCLUDES}
++         PATHS /usr /usr/local
++         SUFFIXES apr-0 apr-1 apr-1.0
++      )
++      if(_INCLUDES)
++         set(SVN_INCLUDES ${SVN_INCLUDES} ${_INCLUDES})
++      else(_INCLUDES)
++         set(SVN_FOUND FALSE) # no apr == can't compile!
++      endif(_INCLUDES)
++   endif(APUCONFIG_EXECUTABLE)
+    FIND_LIBRARY(SVN_LIBRARIES NAMES svn_client-1)
+    if(SVN_LIBRARIES)
+       FIND_LIBRARY(_LIBRARIES NAMES svn_subr-1)
diff --git a/pkgs/desktops/kde-4.5/support/akonadi/default.nix b/pkgs/desktops/kde-4.5/support/akonadi/default.nix
index 5ef0fcb183c..0d6e4dc3e65 100644
--- a/pkgs/desktops/kde-4.5/support/akonadi/default.nix
+++ b/pkgs/desktops/kde-4.5/support/akonadi/default.nix
@@ -7,6 +7,7 @@ stdenv.mkDerivation rec {
     sha256 = "199fh5yqygr0xdwcnjqqms8vskigbzvwb3071r979606rrsnpnl5";
   };
   buildInputs = [ cmake qt4 shared_mime_info libxslt boost mysql automoc4 soprano ];
+  patches = [ ./fix-broken-datadir-parameter.patch ];
   meta = with stdenv.lib; {
     description = "KDE PIM Storage Service";
     license = "LGPL";
diff --git a/pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch b/pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch
new file mode 100644
index 00000000000..fa33329d4b0
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/support/akonadi/fix-broken-datadir-parameter.patch
@@ -0,0 +1,17 @@
+Fix broken datadir parameter.
+
+--- akonadi-1.3.85/server/src/storage/dbconfigmysql.cpp	2010-06-09 03:41:30.000000000 -0430
++++ akonadi-local-1.3.85/server/src/storage/dbconfigmysql.cpp	2010-08-11 00:21:20.547181479 -0430
+@@ -250,11 +250,10 @@
+   // synthesize the mysqld command
+   QStringList arguments;
+   arguments << QString::fromLatin1( "--defaults-file=%1/mysql.conf" ).arg( akDir );
++  arguments << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir );
+ #ifndef Q_WS_WIN
+-  arguments << QString::fromLatin1( "--datadir" ) << QString::fromLatin1( "%1/" ).arg( dataDir );
+   arguments << QString::fromLatin1( "--socket=%1/mysql.socket" ).arg( miscDir );
+ #else
+-  arguments << QString::fromLatin1( "--datadir=%1/" ).arg( dataDir );
+   arguments << QString::fromLatin1( "--shared-memory" );
+ #endif
+ 
diff --git a/pkgs/desktops/kde-4.5/support/eigen/default.nix b/pkgs/desktops/kde-4.5/support/eigen/default.nix
index 30a47d1d041..e72de6c1b25 100644
--- a/pkgs/desktops/kde-4.5/support/eigen/default.nix
+++ b/pkgs/desktops/kde-4.5/support/eigen/default.nix
@@ -1,20 +1,20 @@
-{stdenv, fetchurl, lib, cmake}:
+{stdenv, fetchurl, cmake}:
 
 let
-  v = "2.0.14";
+  v = "2.0.15";
 in
 stdenv.mkDerivation {
   name = "eigen-${v}";
   src = fetchurl {
     url = "http://bitbucket.org/eigen/eigen/get/${v}.tar.bz2";
     name = "eigen-${v}.tar.bz2";
-    sha256 = "01xkdqs6hqkwcq5yzpdz79da0i512s818pbg8fl9w3m2vvndzs6p";
+    sha256 = "1a00hqyig4rc7nkz97xv23q7k0vdkzvgd0jkayk61fn9aqcrky79";
   };
   buildInputs = [ cmake ];
   meta = {
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
     license = "LGPL";
     homepage = http://eigen.tuxfamily.org ;
-    maintainers = [ lib.maintainers.sander ];
+    maintainers = with stdenv.lib.maintainers; [ sander urkud ];
   };
 }
diff --git a/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix b/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix
index b701e61ba03..ffd7fb819e8 100644
--- a/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix
+++ b/pkgs/desktops/kde-4.5/support/oxygen-icons/default.nix
@@ -3,7 +3,6 @@
 kdePackage {
   pn = "oxygen-icons";
   v = "4.5.0";
-  sha256 = "11wlrxnral4q5wi46p1di1cff4vr5da35a8dv2xx3ag6lnhqvjqi";
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
diff --git a/pkgs/desktops/kde-4.5/support/polkit-qt-1/default.nix b/pkgs/desktops/kde-4.5/support/polkit-qt-1/default.nix
index 03543a6d7e2..6d0de598313 100644
--- a/pkgs/desktops/kde-4.5/support/polkit-qt-1/default.nix
+++ b/pkgs/desktops/kde-4.5/support/polkit-qt-1/default.nix
@@ -4,7 +4,6 @@ kdePackage {
   pn = "polkit-qt-1";
   v = "0.96.1";
   subdir = "apps/KDE4.x/admin";
-  sha256 = "1ng5bi1gmr5lg49c5kyqyjzbjhs4w90c2zlnfcyviv9p3wzfgzbr";
 
   buildInputs = [ cmake qt4 automoc4 ];
   propagatedBuildInputs = [ polkit glib ];
diff --git a/pkgs/desktops/kde-4.5/support/qimageblitz/default.nix b/pkgs/desktops/kde-4.5/support/qimageblitz/default.nix
new file mode 100644
index 00000000000..bb3d0220b43
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/support/qimageblitz/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, lib, cmake, qt4}:
+
+let
+  pn = "qimageblitz";
+  v = "0.0.4";
+in
+
+stdenv.mkDerivation {
+  name = "${pn}-${v}";
+  src = fetchurl {
+    url = "mirror://sf/${pn}/${pn}-${v}.tar.bz2";
+    sha256 = "0pnaf3qi7rgkxzs2mssmslb3f9ya4cyx09wzwlis3ppyvf72j0p9";
+  };
+  buildInputs = [ cmake qt4 ];
+
+  meta = {
+    description = "Graphical effect and filter library for KDE4";
+    license = "BSD";
+    homepage = "http://${pn}.sourceforge.net";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/support/strigi/default.nix b/pkgs/desktops/kde-4.5/support/strigi/default.nix
index 93778e7c984..10847482df3 100644
--- a/pkgs/desktops/kde-4.5/support/strigi/default.nix
+++ b/pkgs/desktops/kde-4.5/support/strigi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, bzip2, libxml2, expat, exiv2
+{ stdenv, fetchurl, cmake, qt4, perl, bzip2, libxml2, expat, exiv2
 , cluceneCore
 }:
 
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
     homepage = http://strigi.sourceforge.net;
     description = "A very fast and efficient crawler to index data on your harddrive";
     license = "LGPL";
-    maintainers = [ lib.maintainers.sander ];
+    maintainers = with stdenv.lib.maintainers; [ sander urkud ];
+    inherit (qt4.meta) platforms;
   };
 }
diff --git a/pkgs/desktops/kde-4.5/toys/default.nix b/pkgs/desktops/kde-4.5/toys/default.nix
new file mode 100644
index 00000000000..17986600536
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/toys/default.nix
@@ -0,0 +1,12 @@
+{kdePackage, cmake, qt4, perl, kdelibs, kdebase_workspace, automoc4}:
+
+kdePackage {
+  pn = "kdetoys";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl kdelibs kdebase_workspace automoc4 ];
+  meta = {
+    description = "KDE Toys";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/utils/cmake-module-path.diff b/pkgs/desktops/kde-4.5/utils/cmake-module-path.diff
new file mode 100644
index 00000000000..4564d0318d4
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/utils/cmake-module-path.diff
@@ -0,0 +1,10 @@
+--- a/CMakeLists.txt	2010-04-15 12:58:25.000000000 +0400
++++ b/CMakeLists.txt.new	2010-08-14 03:30:16.000000000 +0400
+@@ -1,6 +1,6 @@
+ project( kdeutils )
+ 
+-set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
++set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH} )
+ 
+ # search packages used by KDE
+ find_package( KDE4 REQUIRED )
diff --git a/pkgs/desktops/kde-4.5/utils/default.nix b/pkgs/desktops/kde-4.5/utils/default.nix
new file mode 100644
index 00000000000..fb038179daf
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/utils/default.nix
@@ -0,0 +1,28 @@
+{ kdePackage, cmake, qt4, perl, gmp, python, libzip, libarchive, xz
+, sip, pyqt4, pycups, rhpl, system_config_printer, qjson, shared_mime_info
+, kdebase_workspace
+, kdelibs, kdepimlibs, kdebase, kdebindings, automoc4, qimageblitz, qca2}:
+
+kdePackage {
+  pn = "kdeutils";
+  v = "4.5.0";
+  
+  postPatch = ''
+    cp -vn ${qjson}/share/apps/cmake/modules/FindQJSON.cmake cmake/modules
+    sed -e "s@/usr\(/share/system-config-printer\)@${system_config_printer}\1@" -i \
+      printer-applet/cmake-modules/FindSystemConfigPrinter.py \
+      printer-applet/printer-applet.py
+    sed -i -e "s|import cupshelpers.ppds, cupshelpers.cupshelpers|import ppds, cupshelpers|" printer-applet/cmake-modules/FindSystemConfigPrinter.py
+    '';
+
+  buildInputs = [ cmake qt4 perl gmp python libzip libarchive xz sip pyqt4
+    pycups rhpl system_config_printer kdelibs kdepimlibs kdebase kdebindings
+    automoc4 qimageblitz qca2 qjson shared_mime_info kdebase_workspace ];
+
+  patches = [ ./log-feature.diff ];
+                  
+  meta = {
+    description = "KDE Utilities";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/desktops/kde-4.5/utils/log-feature.diff b/pkgs/desktops/kde-4.5/utils/log-feature.diff
new file mode 100644
index 00000000000..050f06fd397
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/utils/log-feature.diff
@@ -0,0 +1,10 @@
+--- kdeutils-4.5.0.orig/CMakeLists.txt.orig	2010-08-16 18:21:33.000000000 +0400
++++ kdeutils-4.5.0/CMakeLists.txt	2010-08-16 18:27:05.000000000 +0400
+@@ -36,6 +36,7 @@
+ endif( GMP_FOUND )
+ if( UNIX )
+     find_package( KDE4Workspace )
++    macro_log_feature( KDE4Workspace_FOUND "KDE4Workspace" "KDE workscpace library, part of kdebase-workspace" "http://www.kde.org" FALSE "" "Required to build kremotecontrol." )
+     if( KDE4Workspace_FOUND AND QT_QTXMLPATTERNS_FOUND )
+         macro_optional_add_subdirectory( kremotecontrol )
+     endif( KDE4Workspace_FOUND AND QT_QTXMLPATTERNS_FOUND )
diff --git a/pkgs/desktops/kde-4.5/webdev/default.nix b/pkgs/desktops/kde-4.5/webdev/default.nix
new file mode 100644
index 00000000000..24d1f49bd6c
--- /dev/null
+++ b/pkgs/desktops/kde-4.5/webdev/default.nix
@@ -0,0 +1,14 @@
+{ kdePackage, cmake, qt4, perl, libxml2, libxslt, boost
+, kdelibs, kdepimlibs, automoc4, ruby, htmlTidy, zlib }:
+
+kdePackage {
+  pn = "kdewebdev";
+  v = "4.5.0";
+
+  buildInputs = [ cmake qt4 perl libxml2 libxslt boost kdelibs kdepimlibs
+    automoc4 htmlTidy ruby zlib ];
+  meta = {
+    description = "KDE Web development utilities";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/development/interpreters/python/2.4/default.nix b/pkgs/development/interpreters/python/2.4/default.nix
index f83b69e71e4..f9673cc68d9 100644
--- a/pkgs/development/interpreters/python/2.4/default.nix
+++ b/pkgs/development/interpreters/python/2.4/default.nix
@@ -8,14 +8,16 @@ let
 
   buildInputs =
     optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
-    [bzip2] ++ 
+    [bzip2] ++
     optional zlibSupport zlib;
 
 in
 
 stdenv.mkDerivation {
   name = "python-2.4.6";
-  
+  majorVersion = "2.4";
+  version = "2.4.6";
+
   src = fetchurl {
     url = http://www.python.org/ftp/python/2.4.6/Python-2.4.6.tar.bz2;
     sha256 = "021y88a4ki07dgq19yhg6zfvmncfiz7h5b2255438i9zmlwl246s";
@@ -25,22 +27,22 @@ stdenv.mkDerivation {
     # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
     ./search-path.patch
   ];
-  
+
   inherit buildInputs;
   C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
   LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
-  
+
   configureFlags = "--enable-shared";
-  
+
   preConfigure = ''
     # Purity.
-    for i in /usr /sw /opt /pkg; do 
+    for i in /usr /sw /opt /pkg; do
       substituteInPlace ./setup.py --replace $i /no-such-path
     done
   '';
 
   setupHook = ./setup-hook.sh;
-  
+
   postInstall = ''
     rm -rf $out/lib/python2.4/test
   '';
diff --git a/pkgs/development/interpreters/python/2.5/default.nix b/pkgs/development/interpreters/python/2.5/default.nix
index 33aa66d765d..d1cb7703b9f 100644
--- a/pkgs/development/interpreters/python/2.5/default.nix
+++ b/pkgs/development/interpreters/python/2.5/default.nix
@@ -39,7 +39,9 @@ in
 
 stdenv.mkDerivation ( {
   name = "python-2.5.4";
-  
+  majorVersion = "2.5";
+  version = "2.5.4";
+
   src = fetchurl {
     url = http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tar.bz2;
     sha256 = "0401g346ixng1im6gp11rgkfhx3v05qrpn5qjfx26mgy5dm8k3dw";
@@ -49,15 +51,15 @@ stdenv.mkDerivation ( {
     # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
     ./search-path.patch
   ];
-  
+
   inherit buildInputs;
   C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
   LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
   configureFlags = "--enable-shared --with-wctype-functions";
-  
+
   preConfigure = ''
     # Purity.
-    for i in /usr /sw /opt /pkg; do 
+    for i in /usr /sw /opt /pkg; do
       substituteInPlace ./setup.py --replace $i /no-such-path
     done
   '' + (if readline != null then ''
@@ -65,7 +67,7 @@ stdenv.mkDerivation ( {
   '' else "");
 
   setupHook = ./setup-hook.sh;
-  
+
   postInstall = ''
     rm -rf $out/lib/python2.5/test
   '';
diff --git a/pkgs/development/interpreters/python/2.6/default.nix b/pkgs/development/interpreters/python/2.6/default.nix
index 3fd035b09bb..53428de33f4 100644
--- a/pkgs/development/interpreters/python/2.6/default.nix
+++ b/pkgs/development/interpreters/python/2.6/default.nix
@@ -47,6 +47,7 @@ in
 
 stdenv.mkDerivation ( {
   name = "python-${version}";
+  inherit majorVersion version;
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
diff --git a/pkgs/development/interpreters/python/2.7/default.nix b/pkgs/development/interpreters/python/2.7/default.nix
new file mode 100644
index 00000000000..d9ec86088bb
--- /dev/null
+++ b/pkgs/development/interpreters/python/2.7/default.nix
@@ -0,0 +1,110 @@
+{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2
+, gdbmSupport ? true, gdbm ? null
+, sqlite ? null
+, db4 ? null
+, readline ? null
+, openssl ? null
+, tk ? null
+, tcl ? null
+, libX11 ? null
+, xproto ? null
+, arch ? null
+, sw_vers ? null
+, ncurses ? null
+}:
+
+assert zlibSupport -> zlib != null;
+assert gdbmSupport -> gdbm != null;
+assert stdenv.isDarwin -> arch != null;
+assert stdenv.isDarwin -> sw_vers != null;
+
+with stdenv.lib;
+
+let
+
+  majorVersion = "2.7";
+  version = "${majorVersion}";
+
+  buildInputs =
+    optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
+    [bzip2]
+    ++ optional zlibSupport zlib
+    ++ optional gdbmSupport gdbm
+    ++ optional (sqlite != null) sqlite
+    ++ optional (db4 != null) db4
+    ++ optional (readline != null) readline
+    ++ optional (openssl != null) openssl
+    ++ optional (tk != null) tk
+    ++ optional (tcl != null) tcl
+    ++ optional (libX11 != null) libX11
+    ++ optional (xproto != null) xproto
+    ++ optional (arch != null) arch
+    ++ optional (sw_vers != null) sw_vers
+    ++ optional (ncurses != null) ncurses
+    ;
+
+in
+
+stdenv.mkDerivation ( {
+  name = "python-${version}";
+  inherit majorVersion version;
+
+  src = fetchurl {
+    url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
+    sha256 = "935d3316edfec5eb98c2f6930756b47b00dc27192541e62d6fd0077ffa008af8";
+  };
+
+  patches = [
+    # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
+    ./search-path.patch
+  ];
+
+  inherit buildInputs;
+  C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
+  LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+  configureFlags = "--enable-shared --with-threads --enable-unicode --with-wctype-functions";
+
+  preConfigure = ''
+    # Purity.
+    for i in /usr /sw /opt /pkg; do
+      substituteInPlace ./setup.py --replace $i /no-such-path
+    done
+  '' + (if readline != null then ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lncurses"
+  '' else "");
+
+  setupHook = ./setup-hook.sh;
+
+  postInstall = ''
+    rm -rf "$out/lib/python${majorVersion}/test"
+  '';
+
+  passthru = {
+    inherit zlibSupport;
+    sqliteSupport = sqlite != null;
+    db4Support = db4 != null;
+    readlineSupport = readline != null;
+    opensslSupport = openssl != null;
+    tkSupport = (tk != null) && (tcl != null);
+    libPrefix = "python${majorVersion}";
+  };
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "http://python.org";
+    description = "Python -- a high-level dynamically-typed programming language";
+    longDescription = ''
+      Python is a remarkably powerful dynamic programming language that
+      is used in a wide variety of application domains. Some of its key
+      distinguishing features include: clear, readable syntax; strong
+      introspection capabilities; intuitive object orientation; natural
+      expression of procedural code; full modularity, supporting
+      hierarchical packages; exception-based error handling; and very
+      high level dynamic data types.
+    '';
+    license = "GPLv2";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+} // (if stdenv.isDarwin then { NIX_CFLAGS_COMPILE = "-msse2" ; patches = [./search-path.patch]; } else {} ) )
diff --git a/pkgs/development/interpreters/python/2.7/search-path.patch b/pkgs/development/interpreters/python/2.7/search-path.patch
new file mode 100644
index 00000000000..2e7b7526c0c
--- /dev/null
+++ b/pkgs/development/interpreters/python/2.7/search-path.patch
@@ -0,0 +1,27 @@
+diff -rc Python-2.4.4-orig/setup.py Python-2.4.4/setup.py
+*** Python-2.4.4-orig/setup.py	2006-10-08 19:41:25.000000000 +0200
+--- Python-2.4.4/setup.py	2007-05-27 16:04:54.000000000 +0200
+***************
+*** 279,288 ****
+          # Check for AtheOS which has libraries in non-standard locations
+          if platform == 'atheos':
+              lib_dirs += ['/system/libs', '/atheos/autolnk/lib']
+-             lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep)
+              inc_dirs += ['/system/include', '/atheos/autolnk/include']
+-             inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep)
+  
+          # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
+          if platform in ['osf1', 'unixware7', 'openunix8']:
+              lib_dirs += ['/usr/ccs/lib']
+--- 279,289 ----
+          # Check for AtheOS which has libraries in non-standard locations
+          if platform == 'atheos':
+              lib_dirs += ['/system/libs', '/atheos/autolnk/lib']
+              inc_dirs += ['/system/include', '/atheos/autolnk/include']
+  
++         lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep)
++         inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep)
++         
+          # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
+          if platform in ['osf1', 'unixware7', 'openunix8']:
+              lib_dirs += ['/usr/ccs/lib']
diff --git a/pkgs/development/interpreters/python/2.7/setup-hook.sh b/pkgs/development/interpreters/python/2.7/setup-hook.sh
new file mode 100644
index 00000000000..a393b70afe1
--- /dev/null
+++ b/pkgs/development/interpreters/python/2.7/setup-hook.sh
@@ -0,0 +1,15 @@
+addPythonPath() {
+    addToSearchPathWithCustomDelimiter : PYTHONPATH $1/lib/python2.7/site-packages
+}
+
+toPythonPath() {
+    local paths="$1"
+    local result=
+    for i in $paths; do
+        p="$i/lib/python2.7/site-packages"
+        result="${result}${result:+:}$p"
+    done
+    echo $result
+}
+
+envHooks=(${envHooks[@]} addPythonPath)
diff --git a/pkgs/development/interpreters/python/3.1/default.nix b/pkgs/development/interpreters/python/3.1/default.nix
index 963a4aec26c..6cfafe2c899 100644
--- a/pkgs/development/interpreters/python/3.1/default.nix
+++ b/pkgs/development/interpreters/python/3.1/default.nix
@@ -49,6 +49,7 @@ in
 
 stdenv.mkDerivation ( {
   name = "python3-${version}";
+  inherit majorVersion version;
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
diff --git a/pkgs/development/interpreters/python/wrapper.nix b/pkgs/development/interpreters/python/wrapper.nix
new file mode 100644
index 00000000000..6f29f79e2c1
--- /dev/null
+++ b/pkgs/development/interpreters/python/wrapper.nix
@@ -0,0 +1,18 @@
+{stdenv, python, makeWrapper, extraLibs ? []}:
+
+stdenv.mkDerivation {
+  name = "python-${python.version}-wrapper";
+
+  propagatedBuildInputs = [python makeWrapper] ++ extraLibs;
+
+  unpackPhase = "true";
+  installPhase = ''
+    ensureDir "$out/bin"
+    for prg in 2to3 idle pydoc python python-config python${python.majorVersion} python${python.majorVersion}-config smtpd.py; do
+      makeWrapper "$python/bin/$prg" "$out/bin/$prg" --suffix PYTHONPATH : "$PYTHONPATH"
+    done
+  '';
+
+  inherit python;
+  inherit (python) meta;
+}
diff --git a/pkgs/development/libraries/boost/default.nix b/pkgs/development/libraries/boost/default.nix
index a549b5181ae..fdccb83dd97 100644
--- a/pkgs/development/libraries/boost/default.nix
+++ b/pkgs/development/libraries/boost/default.nix
@@ -33,7 +33,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "boost-1.43.0";
+  name = "boost-1.44.0";
 
   meta = {
     homepage = "http://boost.org/";
@@ -44,8 +44,8 @@ stdenv.mkDerivation {
   };
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_43_0.tar.bz2";
-    sha256 = "0831h19ph65r2rai6ipk5c2bx04af8q423mzr89fh454385i0krl";
+    url = "mirror://sourceforge/boost/boost_1_44_0.tar.bz2";
+    sha256 = "1nvq36mvzr1fr85q0jh86rk3bk65s1y55jgqgzfg3lcpkl12ihs5";
   };
 
   buildInputs = [icu expat zlib bzip2 python];
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
   configureScript = "./bootstrap.sh";
   configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python";
 
-  buildPhase = "./bjam -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${finalLayout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
+  buildPhase = "./bjam -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${finalLayout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
 
   installPhase = ":";
 }
diff --git a/pkgs/development/libraries/cln/default.nix b/pkgs/development/libraries/cln/default.nix
new file mode 100644
index 00000000000..5734e2cbe53
--- /dev/null
+++ b/pkgs/development/libraries/cln/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, gmp }:
+
+stdenv.mkDerivation rec {
+  name = "cln-1.3.1";
+
+  src = fetchurl {
+    url = "${meta.homepage}${name}.tar.bz2";
+    sha256 = "1sd8jy5vnmww537zq6g6i586ffslm7fjliz04krv6scapgklq6ca";
+  };
+
+  buildInputs = [ gmp ];
+
+  meta = {
+    description = "C/C++ library for numbers, a part of GiNaC";
+    homepage = http://www.ginac.de/CLN/;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/directfb/src-for-default.nix b/pkgs/development/libraries/directfb/src-for-default.nix
index 265be997b6f..b181d2858f5 100644
--- a/pkgs/development/libraries/directfb/src-for-default.nix
+++ b/pkgs/development/libraries/directfb/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="1.4.2";
-   name="directfb-1.4.2";
-   hash="1invmmccscv44v2pa83050cv5n028q0j12cgwwpc7ac83vi4f605";
+   version="1.4.3";
+   name="directfb-1.4.3";
+   hash="0y79lwzq7srlbgrva7b5y8klbp6gmr8hxrayq8njaw7by3jald8l";
    url="http://directfb.org/downloads/Core/DirectFB-1.4/DirectFB-${version}.tar.gz";
-   advertisedUrl="http://directfb.org/downloads/Core/DirectFB-1.4/DirectFB-1.4.2.tar.gz";
+   advertisedUrl="http://directfb.org/downloads/Core/DirectFB-1.4/DirectFB-1.4.3.tar.gz";
   
   
 }
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index 64a73084d30..93cec825d6b 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -5,11 +5,11 @@ assert guileBindings -> guile != null;
 
 stdenv.mkDerivation rec {
 
-  name = "gnutls-2.10.0";
+  name = "gnutls-2.10.1";
 
   src = fetchurl {
     url = "mirror://gnu/gnutls/${name}.tar.bz2";
-    sha256 = "124cysx5rxpgi9sxw7yx9hlb8900l4nx2kar6gcnvgs3w4y695l5";
+    sha256 = "1vh2qc2pk6srlqk4ag0v7ba41jmy9816a2mj8yx1253626y7h43k";
   };
 
   configurePhase = ''
diff --git a/pkgs/development/libraries/haskell/haskell-src-exts/default.nix b/pkgs/development/libraries/haskell/haskell-src-exts/default.nix
index fe847b5c135..6b4d48c6715 100644
--- a/pkgs/development/libraries/haskell/haskell-src-exts/default.nix
+++ b/pkgs/development/libraries/haskell/haskell-src-exts/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self : {
   pname = "haskell-src-exts";
-  version = "1.1.4";
-  sha256 = "83c98d8bc16622039b14220190c571ed7f8459f129803b593373df5c15e3f2f1";
+  version = "1.9.0";
+  sha256 = "dedb529217dfe393f75f26b735f7dd09eea50006481f60d06e169de6f328d1da";
   extraBuildInputs = [happy];
   propagatedBuildInputs = [cpphs];
   meta = {
diff --git a/pkgs/development/libraries/haskell/hscolour/default.nix b/pkgs/development/libraries/haskell/hscolour/default.nix
index 02ab7c0bfd8..f1593a6e7f6 100644
--- a/pkgs/development/libraries/haskell/hscolour/default.nix
+++ b/pkgs/development/libraries/haskell/hscolour/default.nix
@@ -2,10 +2,10 @@
 
 cabal.mkDerivation (self : {
   pname = "hscolour";
-  version = "1.15";
-  sha256 = "762f07977d971939360e2a418dfad2a8e5f908b9a88f3a861fa13937cbcfef1e";
+  version = "1.17";
+  sha256 = "b645cdde1b7827dae1519a4423031b4c6bed82a8edb52aa295bea86478ce24b0";
   meta = {
     description = "Colourise Haskell code";
   };
-})  
+})
 
diff --git a/pkgs/development/libraries/haskell/uniplate/default.nix b/pkgs/development/libraries/haskell/uniplate/default.nix
index 7d7a14a8f8e..fe887014ef1 100644
--- a/pkgs/development/libraries/haskell/uniplate/default.nix
+++ b/pkgs/development/libraries/haskell/uniplate/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self : {
   pname = "uniplate";
-  version = "1.2.0.3";
-  sha256 = "77cf07c96ae62799d790284c0c84beca9ee17c9c2416d4de6641f3fddd644b58";
+  version = "1.5.1";
+  sha256 = "cfeaaaabbbe318992df0c51a0c04729b22dac244f415b80a3b388708ed9cfc33";
   propagatedBuildInputs = [mtl];
   meta = {
     description = "Uniform type generic traversals";
diff --git a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
index 421e23aa561..1967bec9e07 100644
--- a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
+++ b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self : {
   pname = "uu-parsinglib";
-  version = "2.3.4";
-  sha256 = "c5faeade06f363c2e7b95a2b7eeba752bf2dd1f4ff0cebbe09aaef9b79f8fdb2";
+  version = "2.5.4.2";
+  sha256 = "94f8f3f7e64dd87a4930190f922a07014e21e3cc320ba1ffefdae7db4401bfcd";
   meta = {
     description = "New version of the Utrecht University parser combinator library";
   };
diff --git a/pkgs/development/libraries/lensfun/default.nix b/pkgs/development/libraries/lensfun/default.nix
index 6aa5867d8ff..6d54dc25e94 100644
--- a/pkgs/development/libraries/lensfun/default.nix
+++ b/pkgs/development/libraries/lensfun/default.nix
@@ -12,11 +12,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ pkgconfig glib zlib libpng ];
 
+  configureFlags = "-v";
+
   meta = with stdenv.lib; {
     platforms = platforms.all;
     maintainers = [ maintainers.urkud ];
     license = "LGPL3";
-    description = "An opensource database of photographic lenses and their
-      characteristics";
+    description = "An opensource database of photographic lenses and their characteristics";
   };
 }
diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index f80ada89e7f..db2feeecb12 100644
--- a/pkgs/development/libraries/libcanberra/default.nix
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, libtool, gtk, gthread
+{ stdenv, fetchurl, pkgconfig, libtool, gtk
 , alsaLib, pulseaudio, gstreamer, libvorbis, libcap }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/libktorrent/default.nix b/pkgs/development/libraries/libktorrent/default.nix
new file mode 100644
index 00000000000..ead4205b289
--- /dev/null
+++ b/pkgs/development/libraries/libktorrent/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, kdelibs, cmake, gmp, qca2, boost, gettext, qt47, automoc4,
+  perl }:
+
+stdenv.mkDerivation rec {
+  name = "libktorrent-1.0.2";
+
+  src = fetchurl {
+    url = "${meta.homepage}/downloads/4.0.2/${name}.tar.bz2";
+    sha256 = "11kh1mcijwzr2kf7hpxadggh346kdb5jy8rnmawhi9nc0i7wyjlw";
+  };
+
+# TODO: xfs.h
+  buildInputs = [ cmake kdelibs gmp qca2 boost gettext qt47 automoc4 perl ];
+
+  meta = {
+    description = "A bittorrent library used in ktorrent";
+    homepage = http://ktorrent.org;
+  };
+}
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
new file mode 100644
index 00000000000..9c75bd51db1
--- /dev/null
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, cln, libxml2, glib, intltool, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "libqalculate-0.9.7";
+
+  src = fetchurl {
+    url = "mirror://sf/qalculate/${name}.tar.gz";
+    sha256 = "0mbrc021dk0ayyglk4qyf9328cayrlz2q94lh8sh9l9r6g79fvcs";
+  };
+
+  buildInputs = [ intltool pkgconfig ];
+  propagatedBuildInputs = [ cln libxml2 glib ];
+
+  meta = {
+    description = "An advanced calculator library";
+    homepage = http://qalculate.sourceforge.net;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 39539b9ad4b..7199e61d6bc 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -1,19 +1,16 @@
-{ stdenv, fetchurl, libxml2, gnutls, devicemapper, perl }:
+{ stdenv, fetchurl, libxml2, gnutls, devicemapper, perl, python }:
 
-let version = "0.7.5"; in
+let version = "0.8.3"; in
 
 stdenv.mkDerivation {
   name = "libvirt-${version}";
 
   src = fetchurl {
     url = "http://libvirt.org/sources/libvirt-${version}.tar.gz";
-    sha256 = "922481aadf72a74cf14012fe3967c60d01e70f7e88908410d57428943ab4eb8b";
+    sha256 = "07vsk4g1nxvxc8yr6cdvwp9kvwgm2g7lh6aaggfkxb2775n87q9m";
   };
 
-  buildInputs = [ libxml2 gnutls devicemapper perl ];
-
-  # fix for redhat bz 531496
-  patches = [ ./non-absolute-ld.patch ];
+  buildInputs = [ libxml2 gnutls devicemapper perl python ];
 
   # xen currently disabled in nixpkgs
   configureFlags = ''                                                  
diff --git a/pkgs/development/libraries/libvirt/non-absolute-ld.patch b/pkgs/development/libraries/libvirt/non-absolute-ld.patch
deleted file mode 100644
index ba73010c439..00000000000
--- a/pkgs/development/libraries/libvirt/non-absolute-ld.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur libvirt-0.7.5.orig/configure libvirt-0.7.5/configure
---- libvirt-0.7.5.orig/configure	2009-12-23 09:17:34.000000000 -0600
-+++ libvirt-0.7.5/configure	2010-01-13 21:16:02.000000000 -0600
-@@ -41051,7 +41051,7 @@
- 
- 
- VERSION_SCRIPT_FLAGS=-Wl,--version-script=
--`/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null` || \
-+`ld --help 2>&1 | grep -- --version-script >/dev/null` || \
-     VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
- 
- 
diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix
index 88dc9ffe696..d835ee56b75 100644
--- a/pkgs/development/libraries/nspr/default.nix
+++ b/pkgs/development/libraries/nspr/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 
-let version = "4.8.4"; in
+let version = "4.8.6"; in
 
 stdenv.mkDerivation {
   name = "nspr-${version}";
 
   src = fetchurl {
     url = "http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${version}/src/nspr-${version}.tar.gz";
-    sha256 = "0ik73yimgfpj3lkqjnpf76b942j76i5yi1z8bn75dxxc08brl4cc";
+    sha256 = "0vcz39784bw42kv9f81dnfb9ciga66l4yg223j467yin2nq0n16r";
   };
 
   preConfigure = "cd mozilla/nsprpub";
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index a51c355b644..e79beb49f32 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, nspr, perl, zlib }:
+{ stdenv, fetchurl, nspr, perl, zlib, includeTools ? false}:
 
 let
 
@@ -10,11 +10,11 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "nss-3.12.6";
+  name = "nss-3.12.7";
   
   src = fetchurl {
-    url = http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_12_6_RTM/src/nss-3.12.6.tar.gz;
-    sha1 = "461e81adbdef6c3f848fcfee0dc5ad8c2dbebd46";
+    url = http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_12_7_RTM/src/nss-3.12.7.tar.gz;
+    sha256 = "0x5h0r5hn4qzafxakhvqyw1r8r0zy09b7b0kmdh3ff6v29v4bnzx";
   };
 
   buildInputs = [nspr perl zlib];
@@ -52,7 +52,7 @@ stdenv.mkDerivation {
       mv $out/public $out/include
       mv $out/*.OBJ/* $out/
       rmdir $out/*.OBJ
-      rm -rf $out/bin
+      ${if includeTools then "" else "rm -rf $out/bin"}
 
       # Borrowed from Gentoo.  Firefox expects an nss-config script,
       # but NSS doesn't provide it.
@@ -61,7 +61,7 @@ stdenv.mkDerivation {
       NSS_VMINOR=`cat lib/nss/nss.h | grep "#define.*NSS_VMINOR" | awk '{print $3}'`
       NSS_VPATCH=`cat lib/nss/nss.h | grep "#define.*NSS_VPATCH" | awk '{print $3}'`
 
-      mkdir $out/bin
+      ${if includeTools then "" else "mkdir $out/bin"}
       cp ${nssConfig} $out/bin/nss-config
       chmod u+x $out/bin/nss-config
       substituteInPlace $out/bin/nss-config \
diff --git a/pkgs/development/libraries/qhull/default.nix b/pkgs/development/libraries/qhull/default.nix
index f91697fb117..8f9bfc6c130 100644
--- a/pkgs/development/libraries/qhull/default.nix
+++ b/pkgs/development/libraries/qhull/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
     ensureDir $out/bin
     ensureDir $out/include/qhull
     ensureDir $out/lib
-    ensureDir $out/share/man/man1
+    cp qconvex qdelaunay qhalf qhull rbox qvoronoi $out/bin
     cp *.h $out/include/qhull
     cp libqhull.a $out/lib
   '';
diff --git a/pkgs/development/libraries/qt-4.x/4.7/default.nix b/pkgs/development/libraries/qt-4.x/4.7/default.nix
index cc6d3c8d513..b0fb326f002 100644
--- a/pkgs/development/libraries/qt-4.x/4.7/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.7/default.nix
@@ -97,7 +97,9 @@ stdenv.mkDerivation rec {
     sed -e 's@/usr@/FOO@' -i config.tests/*/*.test -i mkspecs/*/*.conf
   '';
 
-  postInstall = if useDocs then "rm -rf $out/share/doc/${name}/{html,src}" else "";
+  postInstall = ''
+    ${if useDocs then "rm -rfv $out/share/doc/${name}/{html,src}" else ""}
+    ln -sv phonon $out/include/Phonon'';
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/webkit/default.nix b/pkgs/development/libraries/webkit/default.nix
index 7fdfb5aa06a..ce00771e61a 100644
--- a/pkgs/development/libraries/webkit/default.nix
+++ b/pkgs/development/libraries/webkit/default.nix
@@ -24,22 +24,28 @@ rec {
   configureFlags = [
     "--enable-3D-transforms"
     "--enable-web-sockets"
-    "--enable-indexeddb"
+    "--enable-web-timing"
     "--enable-image-resizer"
 
-    # https://bugs.webkit.org/show_bug.cgi?id=41859
-    # "--enable-mathml"
+    "--enable-mathml"
 
-    # "--enable-blob-slice"
+    # https://bugs.webkit.org/show_bug.cgi?id=42943
+    # "--enable-wml"
     
-    # Seem incomplete as of now
-    # "--enable-file-reader"
-    # "--enable-file-writer"
+    # https://bugs.webkit.org/show_bug.cgi?id=43863
+    # "--enable-indexed-database"
 
-    # https://bugs.webkit.org/show_bug.cgi?id=40765
-    # "--enable-wml"
+    "--enable-xhtmlmp"
+
+    # "--enable-input-speech"
+
+    # https://bugs.webkit.org/show_bug.cgi?id=43878
+    # "--enable-file-writer"
+    # "--enable-blob"
 
-    # "--enable-xhtmlmp"
+    # May be or not be triggering  https://bugs.webkit.org/show_bug.cgi?id=43878
+    "--enable-file-system"
+    "--enable-directory-upload"
     ];
 
   /* doConfigure should be specified separately */
diff --git a/pkgs/development/libraries/webkit/src-for-default.nix b/pkgs/development/libraries/webkit/src-for-default.nix
index 0400018168d..dc9371cbe68 100644
--- a/pkgs/development/libraries/webkit/src-for-default.nix
+++ b/pkgs/development/libraries/webkit/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="r62632";
-   name="webkit-r62632";
-   hash="138b1iyp97v2sy8cqqkbgr9gpj954as0ndb13s738raj3yn5bc5g";
-   url="http://builds.nightly.webkit.org/files/trunk/src/WebKit-r62632.tar.bz2";
-   advertisedUrl="http://builds.nightly.webkit.org/files/trunk/src/WebKit-r62632.tar.bz2";
+   version="r65398";
+   name="webkit-r65398";
+   hash="0y9pfhff1nyc818li8lqdkq906yi1r9n9zzmgymx8zpqxg8kcmk8";
+   url="http://builds.nightly.webkit.org/files/trunk/src/WebKit-r65398.tar.bz2";
+   advertisedUrl="http://builds.nightly.webkit.org/files/trunk/src/WebKit-r65398.tar.bz2";
   
   
 }
diff --git a/pkgs/development/python-modules/pygtk/default.nix b/pkgs/development/python-modules/pygtk/default.nix
index 3dc37ebe2f0..d4dd1237094 100644
--- a/pkgs/development/python-modules/pygtk/default.nix
+++ b/pkgs/development/python-modules/pygtk/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     url = http://ftp.gnome.org/pub/GNOME/sources/pygtk/2.16/pygtk-2.16.0.tar.bz2;
     sha256 = "1a24fkxslir8zb800hs4ix9iyvgqsy5c6hdfirrh2yi1mw0mxbkz";
   };
-  
+
   buildInputs = [python pkgconfig glib gtk]
     ++ (if libglade != null then [libglade] else [])
   ;
@@ -18,5 +18,15 @@ stdenv.mkDerivation {
   postInstall = ''
     rm $out/bin/pygtk-codegen-2.0
     ln -s ${pygobject}/bin/pygobject-codegen-2.0  $out/bin/pygtk-codegen-2.0
+
+    # All python code is installed into a "gtk-2.0" sub-directory. That
+    # sub-directory may be useful on systems which share several library
+    # versions in the same prefix, i.e. /usr/local, but on Nix that directory
+    # is useless. Furthermore, its existence makes it very hard to guess a
+    # proper $PYTHONPATH that allows "import gtk" to succeed.
+    cd $(toPythonPath $out)/gtk-2.0
+    for n in *; do
+      ln -s "gtk-2.0/$n" "../$n"
+    done
   '';
 }
diff --git a/pkgs/development/python-modules/zope/default.nix b/pkgs/development/python-modules/zope/default.nix
index 3dc5da98e76..c01945bf472 100644
--- a/pkgs/development/python-modules/zope/default.nix
+++ b/pkgs/development/python-modules/zope/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, python}:
 
 stdenv.mkDerivation rec {
-	version = "3.2.1";
+  version = "3.4.0";
   name = "zope-${version}";
   src = fetchurl {
-	  url = "http://www.zope.org/Products/Zope3/${version}/Zope-${version}.tgz";
-    sha256 = "8431984af75054e4ddfe45bf708924240f8b6b02220cd84d090138413ac82341";
+    url = "http://www.zope.org/Products/Zope3/${version}/Zope-${version}.tgz";
+    sha256 = "3e834e8749945d8fc0a67bb724f2cf0c671f04f477e24fb8edb74828e331901d";
   };
   patches = [
     ./zope_python-2.4.4.patch
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
index 2f11636dd14..4f8812c5b96 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -2,9 +2,9 @@
 
 cabal.mkDerivation (self : {
   pname = "hlint";
-  version = "1.6.11";
+  version = "1.7.3";
   name = self.fname;
-  sha256 = "20210c72826be92ae34247d4e02e64187c3c99f70f8a099c747c46415e010af5";
+  sha256 = "afd4aa623fedf5257464bf18f38376a951d130f3004664803763e67cc55d9e83";
   extraBuildInputs = [haskellSrcExts mtl uniplate hscolour parallel];
   meta = {
     description = "Source code suggestions";
diff --git a/pkgs/development/tools/misc/autoconf/default.nix b/pkgs/development/tools/misc/autoconf/default.nix
index 64a758d5231..6896da2ec4c 100644
--- a/pkgs/development/tools/misc/autoconf/default.nix
+++ b/pkgs/development/tools/misc/autoconf/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, m4, perl }:
 
 stdenv.mkDerivation rec {
-  name = "autoconf-2.65";
+  name = "autoconf-2.67";
 
   src = fetchurl {
     url = "mirror://gnu/autoconf/${name}.tar.bz2";
-    sha256 = "0sqkh2xirg3yq7774aqmbi2nbx8rv3yf6v2xzwlz5ypkax0984fv";
+    sha256 = "1vwalyqzgk1liyinblbc78isxa5qa4fvs5bx2fkjd7crfhhdkph0";
   };
 
   buildInputs = [ m4 perl ];
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index ad3fd08e3ac..a01a5fb3796 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   
   src = fetchurl {
     urls = [
-      "https://fedorahosted.org/releases/e/l/elfutils/${name}.tar.bz2"
+      "https://fedorahosted.org/releases/e/l/elfutils/0.143/${name}.tar.bz2"
       "mirror://gentoo/distfiles/${name}.tar.bz2"
       ];
     sha256 = "1nl7x2gidd2i048yjlvyzhpbca9793z435cw8bsircjxfi5gmswa";
diff --git a/pkgs/development/tools/parsing/antlr/2.7.7-fixes.patch b/pkgs/development/tools/parsing/antlr/2.7.7-fixes.patch
new file mode 100644
index 00000000000..a71b7718e3b
--- /dev/null
+++ b/pkgs/development/tools/parsing/antlr/2.7.7-fixes.patch
@@ -0,0 +1,26 @@
+diff --git a/lib/cpp/antlr/CharScanner.hpp b/lib/cpp/antlr/CharScanner.hpp
+index 8a97e97..1835a3e 100644
+--- a/lib/cpp/antlr/CharScanner.hpp
++++ b/lib/cpp/antlr/CharScanner.hpp
+@@ -11,6 +11,8 @@
+ #include <antlr/config.hpp>
+ 
+ #include <map>
++#include <cstdio>
++#include <cstring>
+ 
+ #ifdef HAS_NOT_CCTYPE_H
+ #include <ctype.h>
+diff --git a/scripts/config.make.in b/scripts/config.make.in
+index c23dd5c..6057309 100644
+--- a/scripts/config.make.in
++++ b/scripts/config.make.in
+@@ -38,7 +38,7 @@ MAKEOVERRIDES := $(patsubst SUBDIRS=%,,$(MAKEOVERRIDES))
+ all clean distclean test install force-target clean-target :: 
+ 	@dirs="$(SUBDIRS)" ; \
+ 	test -z "$${dirs}" && { \
+-		dirs=`/bin/ls` ; \
++		dirs=`ls` ; \
+   } ; \
+ 	for d in . $${dirs} ; do \
+ 		case $${d} in \
diff --git a/pkgs/development/tools/parsing/antlr/2.7.7.nix b/pkgs/development/tools/parsing/antlr/2.7.7.nix
index f1caa951f66..8d68479dd0e 100644
--- a/pkgs/development/tools/parsing/antlr/2.7.7.nix
+++ b/pkgs/development/tools/parsing/antlr/2.7.7.nix
@@ -6,5 +6,6 @@ stdenv.mkDerivation {
     url = "http://www.antlr2.org/download/antlr-2.7.7.tar.gz";
     sha256 = "1ffvcwdw73id0dk6pj2mlxjvbg0662qacx4ylayqcxgg381fnfl5";
   };
+  patches = [ ./2.7.7-fixes.patch ];
   buildInputs = [jdk python];
 }
diff --git a/pkgs/development/tools/parsing/bison/bison-2.4.nix b/pkgs/development/tools/parsing/bison/bison-2.4.nix
index 245bdad1f92..61ce9b895db 100644
--- a/pkgs/development/tools/parsing/bison/bison-2.4.nix
+++ b/pkgs/development/tools/parsing/bison/bison-2.4.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, m4}:
 
 stdenv.mkDerivation rec {
-  name = "bison-2.4.2";
+  name = "bison-2.4.3";
 
   src = fetchurl {
     url = "mirror://gnu/bison/${name}.tar.bz2";
-    sha256 = "1f2gmy9bhajrypyz25rqjbz5j024yikr2kaggjjsc15gm4x29ysp";
+    sha256 = "019s3pdzggb71g7p7dgajhh53gh0h6nfl4yrzrs0jzsc37ph4lwk";
   };
 
   buildInputs = [m4];
@@ -32,6 +32,8 @@ stdenv.mkDerivation rec {
     homepage = http://www.gnu.org/software/bison/;
 
     license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 
   passthru = { glrSupport = true; };
diff --git a/pkgs/games/castle-combat/default.nix b/pkgs/games/castle-combat/default.nix
index 29ebb00f107..07778363fd5 100644
--- a/pkgs/games/castle-combat/default.nix
+++ b/pkgs/games/castle-combat/default.nix
@@ -1,54 +1,53 @@
-{ fetchurl, stdenv, python, pygame, twisted, numeric, lib, makeWrapper }:
+{ fetchurl, stdenv, buildPythonPackage, pygame, twisted, numeric, makeWrapper }:
 
-stdenv.mkDerivation rec {
+buildPythonPackage rec {
   name = "castle-combat-0.8.1";
+  namePrefix = "";
 
   src = fetchurl {
     url = "mirror://sourceforge/castle-combat/${name}.tar.gz";
     sha256 = "1hp4y5dgj88j9g44h4dqiakrgj8lip1krlrdl2qpffin08agrvik";
   };
 
-  buildInputs = [ python pygame twisted makeWrapper ];
+  buildInputs = [ makeWrapper ];
+  propagatedBuildInputs =
+    [ pygame twisted
+
+      # XXX: `Numeric.pth' should be found by Python but it's not.
+      # Gobolinux has the same problem:
+      # http://bugs.python.org/issue1431 .
+      numeric
+    ];
 
   patchPhase = ''
     sed -i "src/common.py" \
         -e "s|^data_path *=.*$|data_path = \"$out/share/${name}\"|g"
-  '';
 
-  buildPhase =   ''python setup.py build --build-base "$out"'';
-  installPhase = ''
-    python setup.py install --prefix "$out"
+    mv -v "src/"*.py .
+    sed -i "setup.py" -e's/"src"/""/g'
+  '';
 
+  postInstall = ''
     ensureDir "$out/share/${name}"
-    cp -rv data/* "$out/share/${name}"
+    cp -rv "data/"* "$out/share/${name}"
 
-    ${postInstall}
+    mv -v "$out/bin/castle-combat.py" "$out/bin/castle-combat"
   '';
 
-  postInstall = ''
-    mv "$out/bin/castle-combat.py" "$out/bin/castle-combat"
-    wrapProgram "$out/bin/castle-combat" \
-      --prefix PYTHONPATH ":"          \
-      ${lib.concatStringsSep ":"
-         ([ "$out/lib/python2.5/site-packages/src"
-
-            # XXX: `Numeric.pth' should be found by Python but it's not.
-            # Gobolinux has the same problem:
-            # http://bugs.python.org/issue1431 .
-            "${numeric}/lib/python2.5/site-packages/Numeric" ] ++
-          (map (path: path + "/lib/python2.5/site-packages")
-               ([ "${pygame}" "${twisted}" ]
-                ++ twisted.propagatedBuildInputs)))} \
-      \
-      --prefix LD_LIBRARY_PATH ":" \
-               "$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib"
+  postPhases = "fixLoaderPath";
 
+  fixLoaderPath =
+    let dollar = "\$"; in
+    '' sed -i "$out/bin/castle-combat" \
+           -e "/^exec/ iexport LD_LIBRARY_PATH=\"$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib\:"'${dollar}'"LD_LIBRARY_PATH\"\\
+export LD_LIBRARY_PATH=\"$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib64\:"'${dollar}'"LD_LIBRARY_PATH\""
+    '';
       # ^
       # `--- The run-time says: "libgcc_s.so.1 must be installed for
-      # pthread_cancel to work", which means it need help to find it.
+      # pthread_cancel to work", which means it needs help to find it.
 
-      rm -rf "$out/lib/src"
-  '';
+  # No test suite.
+  doCheck = false;
 
   meta = {
     description = "Castle-Combat, a clone of the old arcade game Rampart";
@@ -64,5 +63,7 @@ stdenv.mkDerivation rec {
     homepage = http://www.linux-games.com/castle-combat/;
 
     license = "unknown";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
diff --git a/pkgs/lib/customisation.nix b/pkgs/lib/customisation.nix
index 7b4b390cbef..f97b494ae92 100644
--- a/pkgs/lib/customisation.nix
+++ b/pkgs/lib/customisation.nix
@@ -49,13 +49,17 @@ rec {
   # let d = makeOverridable stdenv.mkDerivation { name = ..; buildInputs; }
   #     noBuildInputs = d.override { buildInputs = []; }
   #     additionalBuildInputs = d.override ( args : args // { buildInputs = args.buildInputs ++ [ additional ]; } )
-  makeOverridable = f: origArgs: f origArgs //
-    { override = newArgs:
-        makeOverridable f (origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs));
-      deepOverride = newArgs:
-        makeOverridable f (lib.overrideExisting (lib.mapAttrs (deepOverrider newArgs) origArgs) newArgs);
-      origArgs = origArgs;
-    };
+  makeOverridable = f: origArgs:
+    let
+      ff = f origArgs;
+    in
+      if builtins.isAttrs ff then (ff //
+        { override = newArgs:
+            makeOverridable f (origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs));
+          deepOverride = newArgs:
+            makeOverridable f (lib.overrideExisting (lib.mapAttrs (deepOverrider newArgs) origArgs) newArgs);
+        })
+      else ff;
 
   deepOverrider = newArgs: name: x: if builtins.isAttrs x then (
     if x ? deepOverride then (x.deepOverride newArgs) else
diff --git a/pkgs/lib/modules.nix b/pkgs/lib/modules.nix
index 6457fd14eb5..4af87ec6844 100644
--- a/pkgs/lib/modules.nix
+++ b/pkgs/lib/modules.nix
@@ -259,7 +259,6 @@ rec {
               value = m.config;
             }) definitions;
 
-
           values = values_ ++
             optionals (option.isOption && option.decl ? extraConfigs)
               option.decl.extraConfigs;
diff --git a/pkgs/lib/options.nix b/pkgs/lib/options.nix
index a9d74f2f3fa..d742544bef2 100644
--- a/pkgs/lib/options.nix
+++ b/pkgs/lib/options.nix
@@ -260,7 +260,7 @@ rec {
               throw "Option ${opt.name}: No description.";
 
             declarations = map (x: toString x.source) opt.declarations;
-            definitions = map (x: toString x.source) opt.definitions;
+            #definitions = map (x: toString x.source) opt.definitions;
           }
           // optionalAttrs (opt ? example) { example = scrubOptionValue opt.example; }
           // optionalAttrs (opt ? default) { default = scrubOptionValue opt.default; }
diff --git a/pkgs/lib/trivial.nix b/pkgs/lib/trivial.nix
index aaae36afa05..af47a8c8841 100644
--- a/pkgs/lib/trivial.nix
+++ b/pkgs/lib/trivial.nix
@@ -18,4 +18,8 @@ rec {
   # Flip the order of the arguments of a binary function.
   flip = f: a: b: f b a;
 
+  # `seq x y' evaluates x, then returns y.  That is, it forces strict
+  # evaluation of its first argument.
+  seq = x: y: if x == null then y else y;
+  
 }
diff --git a/pkgs/misc/emulators/mess/default.nix b/pkgs/misc/emulators/mess/default.nix
new file mode 100644
index 00000000000..b3897154e9a
--- /dev/null
+++ b/pkgs/misc/emulators/mess/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, unzip, pkgconfig, SDL, gtkLibs, gnome, mesa
+, expat, zlib }:
+
+let
+
+  version = "139";
+
+  mameSrc = fetchurl {
+    url = "http://www.aarongiles.com/mirror/releases/mame0${version}s.zip";
+    sha256 = "1mpkwxfz38cgxzvlni2y3fxas3b8qmnzj2ik2zzbd8mr622jdp79";
+  };
+  
+  messSrc = fetchurl {
+    url = "http://mess.redump.net/_media/downloads:mess0${version}s.zip";
+    name = "mess0139s.zip";
+    sha256 = "1v892cg6wn8cdwc8pf1gcqqdb1v1v295r6jw2hf58svwx3h27xyy";
+  };
+
+in
+
+stdenv.mkDerivation { 
+  name = "mess-0.${version}";
+
+  unpackPhase =
+    ''
+      unzip ${mameSrc}
+      # Yes, the MAME distribution is a zip file containing a zip file...
+      unzip mame.zip
+      unzip -o ${messSrc}
+    '';
+
+  makeFlags = "TARGET=mess BUILD_EXPAT= BUILD_ZLIB= NOWERROR=1";
+
+  buildInputs =
+    [ unzip pkgconfig SDL gtkLibs.gtk gnome.GConf mesa expat zlib ];
+
+  installPhase =
+    ''
+      ensureDir $out/bin
+      cp mess* $out/bin/mess 
+    '';
+    
+  meta = {
+    homepage = http://www.mess.org/;
+    license = "non-commercial";
+    description = "Multi Emulator Super System, an emulator of many game consoles and computer systems";
+  };
+}
diff --git a/pkgs/os-specific/linux/ati-drivers/default.nix b/pkgs/os-specific/linux/ati-drivers/default.nix
index be5eff7e56e..65c42e09039 100644
--- a/pkgs/os-specific/linux/ati-drivers/default.nix
+++ b/pkgs/os-specific/linux/ati-drivers/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation {
   # moved assertions here because the name is evaluated when the NixOS manual is generated
   # Don't make that fail - fail lazily when a users tries to build this derivation only
   dummy =
-    assert xorg.xorgserver.name == "xorg-server-1.7.5";
+    # assert xorg.xorgserver.name == "xorg-server-1.7.5";
     assert stdenv.system == "x86_64-linux"; # i686-linux should work as well - however I didn't test it.
     null;
 
diff --git a/pkgs/os-specific/linux/blcr/0.8.2.nix b/pkgs/os-specific/linux/blcr/0.8.2.nix
deleted file mode 100644
index d5d715c223c..00000000000
--- a/pkgs/os-specific/linux/blcr/0.8.2.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ stdenv, fetchurl, kernel, perl, makeWrapper, autoconf, automake, libtool }:
-
-assert stdenv.isLinux;
-
-let
-  version = "0.8.2";
-  website = https://ftg.lbl.gov/CheckpointRestart;
-in
-
-stdenv.mkDerivation {
-  name = "blcr-${version}-${kernel.version}";
-
-  src = fetchurl {
-    url = "${website}/downloads/blcr-${version}.tar.gz";
-    sha256 = "1ldvzrajljkm318z5ix1p27n0gmv7gqxij6ck7p5fz4ncdbb01x8";
-  };
-
-  patches = [ ./fixes.patch ];
-
-  buildInputs = [ perl makeWrapper autoconf automake libtool ];
-
-  # this gives "configure: error: unrecognized option: `-d'"
-  /*
-  configureFlags = [
-    "--with-linux=$(ls -d ${kernel}/lib/modules/ * /build)"
-    "--with-kmod-dir=$out/lib/modules/$(cd ${kernel}/lib/modules; ls -d 2.6.*)" 
-    "--with-system-map=${kernel}/System.map"
-  ];
-  */
-
-  configurePhase = ''
-    autoreconf
-    ./configure --prefix=$out \
-    --with-linux=$(ls -d ${kernel}/lib/modules/*/build) \
-    --with-kmod-dir=$out/lib/modules/$(cd ${kernel}/lib/modules; ls -d 2.6.*) \
-    --with-system-map=${kernel}/System.map
-  '';
-
-  postInstall = ''
-    for prog in "$out/bin/"*
-    do
-      wrapProgram "$prog" --prefix LD_LIBRARY_PATH ":" "$out/lib"
-    done
-  '';
-      
-  meta = {
-    description = "Berkeley Lab Checkpoint/Restart for Linux (BLCR)";
-    homepage = website;
-    license = "GPL2";
-  };
-}
diff --git a/pkgs/os-specific/linux/blcr/default.nix b/pkgs/os-specific/linux/blcr/default.nix
new file mode 100644
index 00000000000..fb0db8e671c
--- /dev/null
+++ b/pkgs/os-specific/linux/blcr/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, kernel, perl, makeWrapper, autoconf, automake, libtool }:
+
+assert stdenv.isLinux;
+
+let
+  version = "0.8.2";
+  website = https://ftg.lbl.gov/CheckpointRestart;
+in
+
+stdenv.mkDerivation {
+  name = "blcr-${version}-${kernel.version}";
+
+  src = fetchurl {
+    url = "${website}/downloads/blcr-${version}.tar.gz";
+    sha256 = "1ldvzrajljkm318z5ix1p27n0gmv7gqxij6ck7p5fz4ncdbb01x8";
+  };
+  
+  patchFlags = "-p0";
+
+  patches = map fetchurl [
+    { url = http://upc-bugs.lbl.gov/blcr-dist/blcr-0.8.2+kernel-2.6.31.patch01;
+      sha256 = "0jnz18kbrm64hahvhk35zakcpylad1khsp5kjxkj19j0lkjv3m4h";
+    }
+    { url = http://upc-bugs.lbl.gov/blcr-dist/blcr-0.8.2+kernel-2.6.32.patch02;
+      sha256 = "1f5s9c7iiaxd67ki3bmz09mf66shzbl97hvwaq4nmk6miq94k1fw";
+    }
+    { url = http://upc-bugs.lbl.gov/blcr-dist/blcr-0.8.2+kernel-2.6.34.patch03;
+      sha256 = "09924h83xdwpxjlx3yg5b51fgm6gjywn2rb4nnygz16n87wqvb41";
+    }
+  ];
+
+  buildInputs = [ perl makeWrapper autoconf automake libtool ];
+
+  preConfigure = ''
+    ./autogen.sh
+    configureFlagsArray=(
+      --with-linux=$(ls -d ${kernel}/lib/modules/*/build)
+      --with-kmod-dir=$out/lib/modules/$(cd ${kernel}/lib/modules; ls -d 2.6.*)
+      --with-system-map=${kernel}/System.map
+    )
+  '';
+
+  postInstall = ''
+    for prog in "$out/bin/"*
+    do
+      wrapProgram "$prog" --prefix LD_LIBRARY_PATH ":" "$out/lib"
+    done
+  '';
+      
+  meta = {
+    description = "Berkeley Lab Checkpoint/Restart for Linux (BLCR)";
+    homepage = website;
+    license = "GPL2";
+  };
+}
diff --git a/pkgs/os-specific/linux/blcr/fixes.patch b/pkgs/os-specific/linux/blcr/fixes.patch
deleted file mode 100644
index 879352d8325..00000000000
--- a/pkgs/os-specific/linux/blcr/fixes.patch
+++ /dev/null
@@ -1,304 +0,0 @@
-diff -ru -x Makefile.in -x aclocal.m4 -x configure -x '*config.h.in' -x 'config.*' -x depcomp -x install-sh -x ltmain.sh -x missing blcr-0.8.2-orig/acinclude.m4 blcr-0.8.2/acinclude.m4
---- blcr-0.8.2-orig/acinclude.m4	2009-06-12 22:37:01.000000000 +0200
-+++ blcr-0.8.2/acinclude.m4	2010-07-29 21:18:29.000000000 +0200
-@@ -953,8 +953,9 @@
- # When complete sets LINUX_SYMTAB_CMD such that
- # "eval $LINUX_SYMTAB_CMD" will produce a System.map on stdout.
- cr_stripped_maps=''
-+m4_define([cr_ksymtab_patt],[[-e '[TD] sys_open' -e '[AB] _end']])
- AC_DEFUN([_CR_CHECK_SYSTEM_MAP],[
--  if test -n "$1" -a -r "$1" && grep ' [[AB]] _end' <"$1" >/dev/null 2>/dev/null; then
-+  if test -n "$1" -a -r "$1" && grep cr_ksymtab_patt <"$1" >/dev/null 2>/dev/null; then
-     if grep -B1 '[[AB]] _end' <"$1" | grep _stext >/dev/null 2>/dev/null; then
-       # Reject "stripped" files (such as in FC2)
-       # Recognized (poorly) by _stext and _end as last two entries.
-@@ -968,7 +969,7 @@
- ])
- AC_DEFUN([_CR_CHECK_VMLINUX],[
-   AC_REQUIRE([AC_PROG_NM])
--  if test -n "$1" -a -r "$1" && ($NM "$1" | grep ' [[AB]] _end') >/dev/null 2>/dev/null; then
-+  if test -n "$1" -a -r "$1" && ($NM "$1" | grep cr_ksymtab_patt) >/dev/null 2>/dev/null; then
-     LINUX_VMLINUX="$1"
-     LINUX_SYMTAB_FILE="$1"
-     LINUX_SYMTAB_CMD="$NM $1 2>/dev/null"
-diff -ru -x Makefile.in -x aclocal.m4 -x configure -x '*config.h.in' -x 'config.*' -x depcomp -x install-sh -x ltmain.sh -x missing blcr-0.8.2-orig/blcr_imports/module.c blcr-0.8.2/blcr_imports/module.c
---- blcr-0.8.2-orig/blcr_imports/module.c	2008-05-13 08:06:19.000000000 +0200
-+++ blcr-0.8.2/blcr_imports/module.c	2010-07-29 21:18:29.000000000 +0200
-@@ -81,7 +81,13 @@
- 
- 	/* Check current kernel against System.map used at configure time */
- 	{
-+#if defined(CR_EXPORTED_KCODE_register_chrdev)
- 	    unsigned long offset1 = CR_EXPORTED_KCODE_register_chrdev - (unsigned long)&register_chrdev;
-+#elif defined(CR_EXPORTED_KCODE___register_chrdev)
-+	    unsigned long offset1 = CR_EXPORTED_KCODE___register_chrdev - (unsigned long)&__register_chrdev;
-+#else
-+	    #error "No register_chrdev symbol for validation of System.map"
-+#endif
- 	    unsigned long offset2 = CR_EXPORTED_KCODE_register_blkdev - (unsigned long)&register_blkdev;
- 	    if (
- #if defined(CONFIG_RELOCATABLE) && defined(CONFIG_PHYSICAL_ALIGN)
-diff -ru -x Makefile.in -x aclocal.m4 -x configure -x '*config.h.in' -x 'config.*' -x depcomp -x install-sh -x ltmain.sh -x missing blcr-0.8.2-orig/config/kbuild.mak.in blcr-0.8.2/config/kbuild.mak.in
---- blcr-0.8.2-orig/config/kbuild.mak.in	2008-08-04 20:39:29.000000000 +0200
-+++ blcr-0.8.2/config/kbuild.mak.in	2010-07-29 21:18:29.000000000 +0200
-@@ -1,7 +1,7 @@
- # Here are the configuration bits needed in the "caller" to use this file
- #SUBDIR = vmadump4
- #TARGET = vmadump
--#SOURCES = vmadump_common.c vmadump_@CR_ARCH@.c optional.h
-+#SOURCES = vmadump_common.c vmadump_@CR_KARCH@.c optional.h
- #[optional]EXTRA_CFLAGS = -I$(top_builddir)/include -I$(top_builddir) -I$(srcdir)
- #[optional]IMPORTS_FROM = /some/other/kbuild/module/dir /and/another
- #
-@@ -26,7 +26,7 @@
- # Remove headers from the list of sources, and sort to remove possible duplicates
- DOT_C := $(sort $(filter %.c,$(SOURCES)))
- 
--ifeq ($(TOPDIR),)
-+ifeq ($(srctree),)
- # not within KBUILD - implement automake's standard goals
- 
- all: $(LINUX_OBJ)/.config prepare
-diff -ru -x Makefile.in -x aclocal.m4 -x configure -x '*config.h.in' -x 'config.*' -x depcomp -x install-sh -x ltmain.sh -x missing blcr-0.8.2-orig/configure.ac blcr-0.8.2/configure.ac
---- blcr-0.8.2-orig/configure.ac	2009-06-16 00:33:56.000000000 +0200
-+++ blcr-0.8.2/configure.ac	2010-07-29 21:18:29.000000000 +0200
-@@ -123,6 +123,8 @@
- AC_CONFIG_AUX_DIR(./config)
- AM_INIT_AUTOMAKE([foreign no-exeext std-options])
- 
-+AM_MAINTAINER_MODE([enable])
-+
- ################################################################################
- # Boilerplate for versions and copyrights in generated files
- ################################################################################
-@@ -454,9 +456,10 @@
- AC_SUBST(CR_CLIENT_LDADD)
- 
- # If building the tests, we can optionally test C++
--if test x"$cr_build_tests" = xyes; then
-+# Note, however, that  bug 2619 reports that we can't call this conditionally.
-+dnl if test x"$cr_build_tests" = xyes; then
-   CR_PROG_CXX
--fi
-+dnl fi
- 
- ################################################################################
- # Check libraries
-@@ -843,6 +846,22 @@
- # Checks for matching (we hope) symbol table
- CR_LINUX_SYMTAB
- 
-+# Set and substitute CR_KARCH to enable i386 userland on x86_64 kernels
-+CR_KARCH=$CR_ARCH
-+if test $CR_ARCH = i386; then
-+       # probe the System.map to find out if we need to change CR_KARCH at all.
-+       # All this does is count the number of *digits* in a hex formatted address
-+       AC_MSG_NOTICE([Testing if KARCH is the same as ARCH])
-+       symlen=`$LINUX_SYMTAB_CMD | head -n1 | sed 's/ .*$//;s/\(.\)/\1\n/g;s/\n$//'|wc -l`
-+       if test $symlen -eq 16; then
-+               AC_MSG_NOTICE([Changing KARCH to x86_64])
-+               CR_KARCH=x86_64
-+       else
-+               AC_MSG_NOTICE([Not touching KARCH])
-+       fi
-+fi
-+AC_SUBST([CR_KARCH], $CR_KARCH)
-+
- ## Check for optional kernel headers...
- CR_CHECK_KERNEL_HEADER([linux/syscalls.h])
- CR_CHECK_KERNEL_HEADER([linux/pspace.h])
-@@ -985,7 +1004,7 @@
- fi
- 
- # put_task_struct() requires one of these:
--CR_FIND_KSYM([__put_task_struct],[CODE])
-+CR_FIND_KSYM([__put_task_struct],[CODE],[extern void __put_task_struct(struct task_struct *);])
- CR_FIND_KSYM([__put_task_struct_cb],[CODE])
- 
- CR_CHECK_KERNEL_MEMBER([mm.task_size],[#include <linux/sched.h>],
-@@ -1025,7 +1044,7 @@
- if test -n "${HAVE_MAP_VSYSCALL}"; then
-   CR_FIND_KSYM([map_vsyscall],[CODE])
- fi
--if test $CR_ARCH = x86_64; then
-+if test $CR_KARCH = x86_64; then
-   CR_FIND_KSYM([syscall32_setup_pages],[CODE],
- 	[extern int syscall32_setup_pages(void *, int);])
- fi
-@@ -1093,7 +1112,7 @@
- CR_FIND_KSYM([do_sigaltstack],[CODE],
- 	[extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long);])
- 
--if test $CR_ARCH = i386 -o $CR_ARCH = x86_64; then
-+if test $CR_KARCH = i386 -o $CR_KARCH = x86_64; then
-   CR_CHECK_KERNEL_TYPE([struct n_desc_struct],[
- 	#include <linux/sched.h>
- 	#include <asm/desc.h>])
-@@ -1144,7 +1163,7 @@
-   fi
- fi
- 
--if test $CR_ARCH = i386; then
-+if test $CR_KARCH = i386; then
-   CR_CHECK_KERNEL_MEMBER([pt_regs.xcs],[#include <asm/ptrace.h>],[struct pt_regs],[int],[xcs])
-   CR_CHECK_KERNEL_MEMBER([pt_regs.xfs],[#include <asm/ptrace.h>],[struct pt_regs],[int],[xfs])
-   CR_CHECK_KERNEL_MEMBER([pt_regs.xgs],[#include <asm/ptrace.h>],[struct pt_regs],[int],[xgs])
-@@ -1230,6 +1249,7 @@
- if test -z "${HAVE_2_ARG_FIND_PID}${HAVE_FIND_TASK_BY_PID}${HAVE_FIND_TASK_BY_PID_NS}"; then
-   CR_BAD_KERNEL([unable to determine how to map (type, pid_nr) -> struct task])
- fi
-+CR_FIND_KSYM([find_task_by_pid_ns],[CODE])
- 
- CR_CHECK_KERNEL_CALL([alloc_pid],[#include <linux/sched.h>])
- if test -n "${HAVE_ALLOC_PID}"; then
-@@ -1492,7 +1512,7 @@
- CR_FIND_KSYM([sys_mremap],[CODE],
- 	[extern asmlinkage unsigned long sys_mremap(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr);])
- CR_FIND_KSYM([do_sigaction],[CODE])
--if test $CR_ARCH = x86_64; then
-+if test $CR_KARCH = x86_64; then
-   CR_FIND_KSYM([load_gs_index],[CODE])
- 
-   CR_CHECK_KERNEL_CALL([read_pda],[#include <asm/percpu.h>])
-@@ -1536,7 +1556,10 @@
- # the System.map used to locate symbols and configure time.
- CR_FIND_EXPORTED_KSYM([register_chrdev],[CODE])
- if test "$cr_addr" = "0"; then
--  CR_BAD_KERNEL([kernel does not export register_chrdev])
-+  CR_FIND_EXPORTED_KSYM([__register_chrdev],[CODE])
-+  if test "$cr_addr" = "0"; then
-+    CR_BAD_KERNEL([kernel does not export register_chrdev or __register_chrdev])
-+  fi
- fi
- CR_FIND_EXPORTED_KSYM([register_blkdev],[CODE])
- if test "$cr_addr" = "0"; then
-diff -ru -x Makefile.in -x aclocal.m4 -x configure -x '*config.h.in' -x 'config.*' -x depcomp -x install-sh -x ltmain.sh -x missing blcr-0.8.2-orig/cr_module/cr_kcompat.h blcr-0.8.2/cr_module/cr_kcompat.h
---- blcr-0.8.2-orig/cr_module/cr_kcompat.h	2009-06-12 22:37:03.000000000 +0200
-+++ blcr-0.8.2/cr_module/cr_kcompat.h	2010-07-29 21:18:29.000000000 +0200
-@@ -274,7 +274,8 @@
- #elif HAVE_2_ARG_FIND_PID
-   #define cr_have_pid(T,P) (find_pid((T),(P)) != NULL)
- #else
--  #error
-+  // XXX: untested!
-+  #define cr_have_pid(T,P) (pid_task(find_vpid(P),(T)) != NULL)
- #endif
- 
- // Process table iterators
-@@ -583,4 +584,9 @@
-   #error "no cr_do_pipe() definition"
- #endif
- 
-+#if !defined(DECLARE_MUTEX)
-+  #define DECLARE_MUTEX(m) DEFINE_SEMAPHORE(m)
-+  #define init_MUTEX(m) sema_init(m, 1)
-+#endif
-+
- #endif /* _CR_KCOMPAT_H */
-diff -ru -x Makefile.in -x aclocal.m4 -x configure -x '*config.h.in' -x 'config.*' -x depcomp -x install-sh -x ltmain.sh -x missing blcr-0.8.2-orig/cr_module/Makefile.am blcr-0.8.2/cr_module/Makefile.am
---- blcr-0.8.2-orig/cr_module/Makefile.am	2008-09-03 02:29:00.000000000 +0200
-+++ blcr-0.8.2/cr_module/Makefile.am	2010-07-29 21:18:29.000000000 +0200
-@@ -31,13 +31,13 @@
- 
- BPROC_VERSION	= "4.0.0pre8"
- vmadump_dir	= $(top_srcdir)/vmadump4
--vmad_sources	= $(vmadump_dir)/vmadump_common.c $(vmadump_dir)/vmadump_@CR_ARCH@.c
-+vmad_sources	= $(vmadump_dir)/vmadump_common.c $(vmadump_dir)/vmadump_@CR_KARCH@.c
- vmad_include	= -I$(vmadump_dir) -D__NR_vmadump=-1 -DBPROC_VERSION='$(BPROC_VERSION)'
- 
- cr_sources	= $(my_sources) $(vmad_sources)
- INCLUDES =	-I$(top_builddir)/include	\
- 		-I$(top_srcdir)/include		\
--		-I$(srcdir)/arch/@CR_ARCH@	\
-+		-I$(srcdir)/arch/@CR_KARCH@	\
- 		$(vmad_include)
- 
- # echo an arbitrary make/environment variable (needed by kbuild glue)
-diff -ru -x Makefile.in -x aclocal.m4 -x configure -x '*config.h.in' -x 'config.*' -x depcomp -x install-sh -x ltmain.sh -x missing blcr-0.8.2-orig/include/blcr_ksyms.h blcr-0.8.2/include/blcr_ksyms.h
---- blcr-0.8.2-orig/include/blcr_ksyms.h	2008-12-02 01:17:42.000000000 +0100
-+++ blcr-0.8.2/include/blcr_ksyms.h	2010-07-29 21:18:29.000000000 +0200
-@@ -55,7 +55,11 @@
- 
- #if defined(__i386__) || defined(__x86_64__)
-   #ifdef CONFIG_RELOCATABLE
--    #define _CR_RELOC_KSYM(_addr) (_addr - CR_EXPORTED_KCODE_register_chrdev + register_chrdev)
-+    #ifndef CR_EXPORTED_KCODE___register_chrdev
-+      #define _CR_RELOC_KSYM(_addr) (_addr - CR_EXPORTED_KCODE_register_chrdev + register_chrdev)
-+    #else
-+      #define _CR_RELOC_KSYM(_addr) (_addr - CR_EXPORTED_KCODE___register_chrdev + __register_chrdev)
-+    #endif
-   #else
-     #define _CR_RELOC_KSYM(_addr) _addr
-   #endif
-diff -ru -x Makefile.in -x aclocal.m4 -x configure -x '*config.h.in' -x 'config.*' -x depcomp -x install-sh -x ltmain.sh -x missing blcr-0.8.2-orig/libcr/arch/arm/cr_atomic.h blcr-0.8.2/libcr/arch/arm/cr_atomic.h
---- blcr-0.8.2-orig/libcr/arch/arm/cr_atomic.h	2008-09-05 05:55:11.000000000 +0200
-+++ blcr-0.8.2/libcr/arch/arm/cr_atomic.h	2010-07-29 21:18:29.000000000 +0200
-@@ -33,6 +33,25 @@
- #ifndef _CR_ATOMIC_H
- #define _CR_ATOMIC_H	1
- 
-+#if defined(__ARM_ARCH_2__) || defined(__ARM_ARCH_3__)
-+  // Sanity-check that we're not building on a really old architecture,
-+  // so that the using #ifdef __ARM_ARCH_4__ works to test for
-+  // lack of blx <register> support.
-+  #error "ARM Architecture versions prior to ARMv4 not supported."
-+#elif defined(__ARM_ARCH_4T__) && defined(__thumb__)
-+  // The inline asm is not compatible with Thumb-1 anyway, but in particular
-+  // we assume later that if __ARM_ARCH_4__ is not defined, we have ARMv5
-+  // or above.  Ensure here that this assumption will be valid.
-+  #error "Building for Thumb on ARMv4 is not supported."
-+#endif
-+
-+// Determine whether to use BLX <register> for function calls to
-+// computed addresses:
-+#undef ARM_HAVE_BLX_REG
-+#if !(defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__))
-+  #define ARM_HAVE_BLX_REG 1
-+#endif
-+
- #include "blcr_config.h"
- 
- #ifndef _STRINGIFY
-@@ -61,7 +80,7 @@
-     __asm__ __volatile__("": : :"memory");
- }
- 
--#if defined(CR_KCODE___kuser_cmpxchg)
-+#if 1
- // For kernel >= 2.6.12, we use __kernel_cmpxchg()
- //    See linux-2.6.12/arch/arm/kernel/entry-armv.S
- // For >= ARM6 we could/should be using load-exclusive directly.
-@@ -83,10 +102,15 @@
- 
-     __asm__ __volatile__ (
- 	"0:	ldr	r0, [r2]	@ r0 = *p		\n"
-+	"	add	r1, r0, %2	@ r1 = r0 + op		\n"
- 	"	mov	r3, #" _STRINGIFY(cri_kuser_base) "	\n"
-+#ifdef ARM_HAVE_BLX_REG
-+	"	sub	r3, r3, #" _STRINGIFY(cri_kuser_offset) "\n"
-+	"	blx	r3\n"
-+#else // ARMv4T and below
- 	"	adr	lr, 1f		@ lr = return address	\n"
--	"	add	r1, r0, %2	@ r1 = r0 + op		\n"
- 	"	sub	pc, r3, #" _STRINGIFY(cri_kuser_offset) "\n"
-+#endif
- 	"1:	bcc     0b		@ retry on Carry Clear"
- 	: "=&r" (__sum)
- 	: "r" (__ptr), "rIL" (op)
-@@ -135,9 +159,14 @@
-     __asm__ __volatile__ (
- 	"0:     mov     r0, r4          @ r0 = oldval           \n"
- 	"	mov	r3, #" _STRINGIFY(cri_kuser_base) "	\n"
--	"	mov	lr, pc		@ lr = return addr	\n"
-+#ifdef ARM_HAVE_BLX_REG
-+	"	sub	r3, r3, #" _STRINGIFY(cri_kuser_offset) "\n"
-+	"	blx	r3\n"
-+#else // ARMv4T and below
-+	"	adr	lr, 1f		@ lr = return addr	\n"
- 	"	sub	pc, r3, #" _STRINGIFY(cri_kuser_offset) "\n"
--	"       ldrcc   ip, [r2]        @ if (!swapped) ip=*p   \n"
-+#endif
-+	"1:	ldrcc   ip, [r2]        @ if (!swapped) ip=*p   \n"
- 	"       eorcs   ip, r4, #1      @ else ip=oldval^1      \n"
- 	"       teq     r4, ip          @ if (ip == oldval)     \n"
- 	"       beq     0b              @    then retry           "
diff --git a/pkgs/os-specific/linux/htop/default.nix b/pkgs/os-specific/linux/htop/default.nix
index e7691f1006f..6a232099351 100644
--- a/pkgs/os-specific/linux/htop/default.nix
+++ b/pkgs/os-specific/linux/htop/default.nix
@@ -10,5 +10,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "An interactive process viewer for Linux";
     homepage = "http://htop.sourceforge.net";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix
index ba9430fb7f0..ba0f1d4fd0f 100644
--- a/pkgs/os-specific/linux/iproute/default.nix
+++ b/pkgs/os-specific/linux/iproute/default.nix
@@ -1,19 +1,31 @@
-{fetchurl, stdenv, flex, bison, db4}:
+{fetchurl, stdenv, flex, bison, db4, iptables}:
 
 stdenv.mkDerivation rec {
-  name = "iproute2-2.6.29-1";
+  name = "iproute2-2.6.35";
 
   src = fetchurl {
     url = "http://devresources.linux-foundation.org/dev/iproute2/download/${name}.tar.bz2";
-    sha256 = "16zvhdzv7yqyvmwxyqa6shzsld6r0wpnk37dig69sk20wpzv1zqk";
+    sha256 = "18why1wy0v859axgrlfxn80zmskss0410hh9rf5gn9cr29zg9cla";
   };
  
   preConfigure =
     ''
       patchShebangs ./configure
+      sed -e '/ARPDDIR/d' -i Makefile
     '';
+  postConfigure = "cat Config";
 
-  makeFlags = "DESTDIR= LIBDIR=$(out)/lib SBINDIR=$(out)/sbin CONFDIR=$(out)/etc DOCDIR=$(out)/share/doc MANDIR=$(out)/share/man";
+  makeFlags = "DESTDIR= LIBDIR=$(out)/lib SBINDIR=$(out)/sbin"
+   + " CONFDIR=$(out)/etc DOCDIR=$(out)/share/doc/${name}"
+  + " MANDIR=$(out)/share/man";
 
-  buildInputs = [bison flex db4];
+  buildInputs = [bison flex db4 iptables];
+
+  meta = {
+    homepage =
+      http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2;
+    description = "A collection of utilities for controlling TCP / IP"
+      + " networking and traffic control in Linux";
+    platforms = stdenv.lib.platforms.linux;
+  };
 }
diff --git a/pkgs/os-specific/linux/iptables/default.nix b/pkgs/os-specific/linux/iptables/default.nix
index 1f56a92efe1..2f447f72ab2 100644
--- a/pkgs/os-specific/linux/iptables/default.nix
+++ b/pkgs/os-specific/linux/iptables/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A program to configure the Linux IP packet filtering ruleset";
     homepage = http://www.netfilter.org/projects/iptables/index.html;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl
index 3db050c900c..05b6867bc55 100644
--- a/pkgs/os-specific/linux/kernel/generate-config.pl
+++ b/pkgs/os-specific/linux/kernel/generate-config.pl
@@ -26,7 +26,7 @@ while (<ANSWERS>) {
     s/#.*//;
     if (/^\s*([A-Za-z0-9_]+)(\?)?\s+(\S+)\s*$/) {
         $answers{$1} = $3;
-        $requiredAnswers{$1} = 1 unless defined $2;
+        $requiredAnswers{$1} = !(defined $2);
     } elsif (!/^\s*$/) {
         die "invalid config line: $_";
     }
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index efc2408d371..f5dd09a2ccc 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -61,6 +61,8 @@ in
 stdenv.mkDerivation {
   name = if userModeLinux then "user-mode-linux-${version}" else "linux-${version}";
 
+  enableParallelBuilding = true;
+
   passthru = {
     inherit version;
     # Combine the `features' attribute sets of all the kernel patches.
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
index beb14c4c87b..dfbe507fd8f 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
@@ -3,11 +3,11 @@ args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? "", ... }:
 import ./generic.nix (
 
   rec {
-    version = "2.6.27.49";
+    version = "2.6.27.51";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "09gnh26gs4bkaj9ib3c5cnmbgj3bhbw7g6b49hz0xrp067slyxai";
+      sha256 = "092x3ribl63i1kj27kg4qmvr20sys0wl58qsf1wjiy33pw5j63lk";
     };
 
     features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.31.nix b/pkgs/os-specific/linux/kernel/linux-2.6.31.nix
index 6bc7e84f3fa..d248e8f8608 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.31.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.31.nix
@@ -4,16 +4,12 @@ assert !userModeLinux;
 
 import ./generic.nix (
 
-  let
-    baseVersion = "2.6.31"; 
-  in
-
   rec {
-    version = "2.6.31";
+    version = "2.6.31.14";
   
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${baseVersion}.tar.bz2";
-      sha256 = "04im1rk53j1im1q8i6pl6qn75zd63dg51dxhq8cfxdsxp3vq7k8a";
+      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
+      sha256 = "1c6ivcjgns4gbx04mhnhndqikm3prqhhfm2a5zrb1mfyvvishqpp";
     };
 
     features = {
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.32.nix b/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
index 48c4b50a5b6..bb7a218f555 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
@@ -206,11 +206,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "2.6.32.17";
+    version = "2.6.32.18";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "12ingi7ml0cw7hjbpaq5mxl4nvi7683kma3d1z0pzrzdd9wngh1x";
+      sha256 = "1z35clz0176blqk3ygfim0a6y7b4ndbjpc1pkz7pxnscsj1kl9k7";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.34.nix b/pkgs/os-specific/linux/kernel/linux-2.6.34.nix
index 281fbc5ea1b..1f44ae05510 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.34.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.34.nix
@@ -194,11 +194,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "2.6.34.2";
+    version = "2.6.34.4";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "1p1s35sffvsdfh5rd5jl8iyin0il690als0q75fszf0fx1bh63sr";
+      sha256 = "19flipl10cbn4xf4skjr6v3p8baxv3igzvhxm175lkrg2qphv5nd";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.35.nix b/pkgs/os-specific/linux/kernel/linux-2.6.35.nix
new file mode 100644
index 00000000000..9a0a9f3d860
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.35.nix
@@ -0,0 +1,207 @@
+args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+, ... }:
+
+let
+  configWithPlatform = kernelPlatform :
+    ''
+      # Don't include any debug features.
+      DEBUG_KERNEL n
+
+      # Support drivers that need external firmware.
+      STANDALONE n
+
+      # Make /proc/config.gz available.
+      IKCONFIG_PROC y
+
+      # Optimize with -O2, not -Os.
+      CC_OPTIMIZE_FOR_SIZE n
+
+      # Enable the kernel's built-in memory tester.
+      MEMTEST y
+
+      # Disable some expensive (?) features.
+      FTRACE n
+      KPROBES n
+      NUMA? n
+      PM_TRACE_RTC n
+
+      # Enable various subsystems.
+      ACCESSIBILITY y # Accessibility support
+      AUXDISPLAY y # Auxiliary Display support
+      DONGLE y # Serial dongle support
+      HIPPI y
+      MTD_COMPLEX_MAPPINGS y # needed for many devices
+      NET_POCKET y # enable pocket and portable adapters
+      SCSI_LOWLEVEL y # enable lots of SCSI devices
+      SCSI_LOWLEVEL_PCMCIA y
+      SPI y # needed for many devices
+      SPI_MASTER y
+      WAN y
+
+      # Networking options.
+      IP_PNP n
+      IPV6_PRIVACY y
+      NETFILTER_ADVANCED y
+      IP_VS_PROTO_TCP y
+      IP_VS_PROTO_UDP y
+      IP_VS_PROTO_ESP y
+      IP_VS_PROTO_AH y
+      IP_DCCP_CCID3 n # experimental
+      CLS_U32_PERF y
+      CLS_U32_MARK y
+
+      # Wireless networking.
+      IPW2100_MONITOR y # support promiscuous mode
+      IPW2200_MONITOR y # support promiscuous mode
+      IWL4965 y # Intel Wireless WiFi 4965AGN
+      IWL5000 y # Intel Wireless WiFi 5000AGN
+      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
+      HOSTAP_FIRMWARE_NVRAM y
+
+      # Some settings to make sure that fbcondecor works - in particular,
+      # disable tileblitting and the drivers that need it.
+
+      # Enable various FB devices.
+      FB y
+      FB_EFI y
+      FB_NVIDIA_I2C y # Enable DDC Support
+      FB_RIVA_I2C y
+      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
+      FB_ATY_GX y # Mach64 GX support
+      FB_SAVAGE_I2C y
+      FB_SAVAGE_ACCEL y
+      FB_SIS_300 y
+      FB_SIS_315 y
+      FB_3DFX_ACCEL y
+      FB_GEODE y
+
+      # Video configuration
+      # The intel drivers already require KMS
+      DRM_I915_KMS y
+
+      # Sound.
+      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
+      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
+      SND_USB_CAIAQ_INPUT y
+      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
+
+      # USB serial devices.
+      USB_SERIAL_GENERIC y # USB Generic Serial Driver
+      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
+      USB_SERIAL_KEYSPAN_USA28 y
+      USB_SERIAL_KEYSPAN_USA28X y
+      USB_SERIAL_KEYSPAN_USA28XA y
+      USB_SERIAL_KEYSPAN_USA28XB y
+      USB_SERIAL_KEYSPAN_USA19 y
+      USB_SERIAL_KEYSPAN_USA18X y
+      USB_SERIAL_KEYSPAN_USA19W y
+      USB_SERIAL_KEYSPAN_USA19QW y
+      USB_SERIAL_KEYSPAN_USA19QI y
+      USB_SERIAL_KEYSPAN_USA49W y
+      USB_SERIAL_KEYSPAN_USA49WLC y
+
+      # Filesystem options - in particular, enable extended attributes and
+      # ACLs for all filesystems that support them.
+      EXT2_FS_XATTR y # Ext2 extended attributes
+      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
+      EXT2_FS_SECURITY y # Ext2 Security Labels
+      EXT2_FS_XIP y # Ext2 execute in place support
+      EXT4_FS_POSIX_ACL y
+      EXT4_FS_SECURITY y
+      REISERFS_FS_XATTR y
+      REISERFS_FS_POSIX_ACL y
+      REISERFS_FS_SECURITY y
+      JFS_POSIX_ACL y
+      JFS_SECURITY y
+      XFS_QUOTA y
+      XFS_POSIX_ACL y
+      XFS_RT y # XFS Realtime subvolume support
+      OCFS2_DEBUG_MASKLOG n
+      BTRFS_FS_POSIX_ACL y
+      UBIFS_FS_XATTR y
+      UBIFS_FS_ADVANCED_COMPR y
+      NFSD_V2_ACL y
+      NFSD_V3 y
+      NFSD_V3_ACL y
+      NFSD_V4 y
+      CIFS_XATTR y
+      CIFS_POSIX y
+
+      # Security related features.
+      STRICT_DEVMEM y # Filter access to /dev/mem
+      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
+
+      # Misc. options.
+      8139TOO_8129 y
+      8139TOO_PIO n # PIO is slower
+      AIC79XX_DEBUG_ENABLE n
+      AIC7XXX_DEBUG_ENABLE n
+      AIC94XX_DEBUG n
+      B43_PCMCIA y
+      BLK_DEV_BSG n
+      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
+      BLK_DEV_IDEACPI y # IDE ACPI support
+      BLK_DEV_INTEGRITY y
+      BSD_PROCESS_ACCT_V3 y
+      BT_HCIUART_BCSP y
+      BT_HCIUART_H4 y # UART (H4) protocol support
+      BT_HCIUART_LL y
+      BT_RFCOMM_TTY y # RFCOMM TTY support
+      CPU_FREQ_DEBUG n
+      CRASH_DUMP n
+      DMAR? n # experimental
+      DVB_DYNAMIC_MINORS y # we use udev
+      FUSION y # Fusion MPT device support
+      IDE_GD_ATAPI y # ATAPI floppy support
+      IRDA_ULTRA y # Ultra (connectionless) protocol
+      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
+      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
+      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
+      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
+      KALLSYMS_EXTRA_PASS n
+      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
+      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
+      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
+      LOGO n # not needed
+      MEDIA_ATTACH y
+      MEGARAID_NEWGEN y
+      MICROCODE_AMD y
+      MODVERSIONS y
+      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
+      MTRR_SANITIZER y
+      NET_FC y # Fibre Channel driver support
+      PPP_MULTILINK y # PPP multilink support
+      REGULATOR y # Voltage and Current Regulator Support
+      SCSI_LOGGING y # SCSI logging facility
+      SERIAL_8250 y # 8250/16550 and compatible serial support
+      SLIP_COMPRESSED y # CSLIP compressed headers
+      SLIP_SMART y
+      THERMAL_HWMON y # Hardware monitoring support
+      USB_DEBUG n
+      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
+      X86_CHECK_BIOS_CORRUPTION y
+      X86_MCE y
+
+      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
+      ${extraConfig}
+    '';
+in
+
+import ./generic.nix (
+
+  rec {
+    version = "2.6.35.2";
+  
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
+      sha256 = "1cvbk58i4724v1wkjc574d61in5q4d3l1ix6icy59dsnhx5v9krn";
+    };
+
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
+
+    features.iwlwifi = true;
+  }
+
+  // removeAttrs args ["extraConfig"]
+)
diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix
index da2292848dc..9a2dc2d28ac 100644
--- a/pkgs/os-specific/linux/lvm2/default.nix
+++ b/pkgs/os-specific/linux/lvm2/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   name = "lvm2-${v}";
   
   src = fetchurl {
-    url = "ftp://sources.redhat.com/pub/lvm2/LVM2.${v}.tgz";
+    url = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${v}.tgz";
     sha256 = "1lbskrj4pxbipq8f0qhql3p1nqa796v4i1cy6n2fmmbs3fwmfh9a";
   };
   
diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix
index 6b0526c3569..0053d89b605 100644
--- a/pkgs/os-specific/linux/pam/default.nix
+++ b/pkgs/os-specific/linux/pam/default.nix
@@ -13,7 +13,18 @@ stdenv.mkDerivation {
       (stdenv.system != "armv5tel-linux" && stdenv.system != "ict_loongson-2_v0.3_fpu_v0.1-linux")
       libxcrypt;
 
+  postInstall = ''
+    mv -v $out/sbin/unix_chkpwd{,.orig}
+    ln -sv /var/setuid-wrappers/unix_chkpwd $out/sbin/unix_chkpwd
+    '';
+
   preConfigure = ''
     configureFlags="$configureFlags --includedir=$out/include/security"
   '';
+
+  meta = {
+    homepage = http://ftp.kernel.org/pub/linux/libs/pam/;
+    description = "Pluggable Authentication Modules, a flexible mechanism for authenticating user";
+    platforms = stdenv.lib.platforms.linux;
+  };
 }
diff --git a/pkgs/os-specific/linux/pam_ldap/default.nix b/pkgs/os-specific/linux/pam_ldap/default.nix
index cb37e4a1815..2be869e73e3 100644
--- a/pkgs/os-specific/linux/pam_ldap/default.nix
+++ b/pkgs/os-specific/linux/pam_ldap/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, pam, openldap}:
    
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "pam_ldap-183";
    
   src = fetchurl {
-    url = http://www.padl.com/download/pam_ldap-183.tar.gz;
+    url = "http://www.padl.com/download/${name}.tar.gz";
     md5 = "c0ad81e9d9712ddc6599a6e7a1688778";
   };
 
@@ -13,4 +13,15 @@ stdenv.mkDerivation {
   ";
 
   buildInputs = [pam openldap];
+
+  meta = {
+    homepage = http://www.padl.com/OSS/pam_ldap.html;
+    description = "LDAP backend for PAM";
+    longDescription = ''
+      The pam_ldap module provides the means for Solaris and Linux servers and
+      workstations to authenticate against LDAP directories, and to change their
+      passwords in the directory.'';
+    license = "LGPL";
+    inherit (pam.meta) platforms;
+  };
 }
diff --git a/pkgs/shells/rush/default.nix b/pkgs/shells/rush/default.nix
index dd1b47f5619..4354a3cd0b3 100644
--- a/pkgs/shells/rush/default.nix
+++ b/pkgs/shells/rush/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "rush-1.6";
+  name = "rush-1.7";
 
   src = fetchurl {
     url = "mirror://gnu/rush/${name}.tar.gz";
-    sha256 = "1j9h1imql05cijav6hr9jigcmy1br8fs9vahvh6y7pf53k4lcfrv";
+    sha256 = "0fh0gbbp0iiq3wbkf503xb40r8ljk42vyj9bnlflbz82d6ipy1rm";
   };
 
   doCheck = true;
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 8cd1dc29d61..27450a84500 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -97,6 +97,7 @@ let
                || result.system == "armv5tel-linux"
                || result.system == "ict_loongson-2_v0.3_fpu_v0.1-linux";
         isSunOS = result.system == "i386-sunos";
+        isCygwin = result.system == "i686-cygwin";
         isi686 = result.system == "i686-linux"
                || result.system == "i686-darwin"
                || result.system == "i686-freebsd"
diff --git a/pkgs/tools/cd-dvd/unetbootin/default.nix b/pkgs/tools/cd-dvd/unetbootin/default.nix
index 9b4e7fd914c..ff5b260c9f3 100644
--- a/pkgs/tools/cd-dvd/unetbootin/default.nix
+++ b/pkgs/tools/cd-dvd/unetbootin/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     homepage = http://unetbootin.sourceforge.net/;
     description = "A tool to create bootable live USB drives from ISO images";
     license = "GPLv2+";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/desktop-file-utils/default.nix b/pkgs/tools/misc/desktop-file-utils/default.nix
index fd63016ddb8..4266f4ab768 100644
--- a/pkgs/tools/misc/desktop-file-utils/default.nix
+++ b/pkgs/tools/misc/desktop-file-utils/default.nix
@@ -1,10 +1,17 @@
-{stdenv, fetchurl, pkgconfig, glib}:
+{ stdenv, fetchurl, pkgconfig, glib }:
+
+stdenv.mkDerivation rec {
+  name = "desktop-file-utils-0.16";
 
-stdenv.mkDerivation {
-  name = "desktop-file-utils-0.15";
   src = fetchurl {
-    url = http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.15.tar.gz;
-    md5 = "2fe8ebe222fc33cd4a959415495b7eed";
+    url = "http://www.freedesktop.org/software/desktop-file-utils/releases/${name}.tar.bz2";
+    sha256 = "18y9am8n43rrnnldd1cy09ls39xz1gx3qczax2c4cjxayx5vwq3r";
   };
+
   buildInputs = [ pkgconfig glib ];
+
+  meta = {
+    homepage = http://www.freedesktop.org/wiki/Software/desktop-file-utils;
+    description = "Command line utilities for working with .desktop files";
+  };
 }
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index f2223d5ce3e..2e8bb49f236 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, perl }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20100620";
+  name = "parallel-20100722";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "1hzdzvkm5cqciy6lhcbdzi4aar09fgsf0lfb4a89mnlq4xdmr8jj";
+    sha256 = "1dq2icd6xigi4pf66178pdim6dmpw7vkfndwady5r93kymz7m399";
   };
 
   patchPhase =
diff --git a/pkgs/tools/misc/partition-manager/default.nix b/pkgs/tools/misc/partition-manager/default.nix
index fd8abf7caf3..7775aae5bd8 100644
--- a/pkgs/tools/misc/partition-manager/default.nix
+++ b/pkgs/tools/misc/partition-manager/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, gettext, parted, libuuid, qt, kde, perl }:
+{ stdenv, fetchurl, cmake, gettext, parted, libuuid, qt4, kde, perl }:
 
 stdenv.mkDerivation {
   name = "partitionmanager-1.0.0";
@@ -9,16 +9,16 @@ stdenv.mkDerivation {
   };
 
   buildInputs =
-    [ cmake gettext parted libuuid qt kde.kdelibs kde.kdebase kde.automoc4 perl kde.phonon ];
+    [ cmake gettext parted libuuid qt4 kde.kdelibs kde.kdebase kde.automoc4 perl kde.phonon ];
 
   preConfigure = ''
     export VERBOSE=1
-    cmakeFlagsArray=($cmakeFlagsArray -DGETTEXT_INCLUDE_DIR=${gettext}/include -DCMAKE_INCLUDE_PATH=${qt}/include/QtGui )
+    cmakeFlagsArray=($cmakeFlagsArray -DGETTEXT_INCLUDE_DIR=${gettext}/include -DCMAKE_INCLUDE_PATH=${qt4}/include/QtGui )
   '';
 
   postInstall = ''
     set -x
-    rpath=`patchelf --print-rpath $out/bin/partitionmanager-bin`:${qt}/lib 
+    rpath=`patchelf --print-rpath $out/bin/partitionmanager-bin`:${qt4}/lib 
     for p in $out/bin/partitionmanager-bin; do
       patchelf --set-rpath $rpath $p
     done
diff --git a/pkgs/tools/misc/ttmkfdir/cstring.patch b/pkgs/tools/misc/ttmkfdir/cstring.patch
index 6b65b44e851..e1da347c64f 100644
--- a/pkgs/tools/misc/ttmkfdir/cstring.patch
+++ b/pkgs/tools/misc/ttmkfdir/cstring.patch
@@ -1,15 +1,3 @@
-diff --git a/directory.cpp b/directory.cpp
-index 5f0d78a..b94cbe5 100644
---- a/directory.cpp
-+++ b/directory.cpp
-@@ -2,6 +2,7 @@
- #include <dirent.h>
- #include <sys/stat.h>
- #include <unistd.h>
-+#include <cstring>
- 
- #include "directory.h"
-
 diff --git a/Makefile b/Makefile
 index e65b64c..52af5ed 100644
 --- a/Makefile
diff --git a/pkgs/tools/misc/ttmkfdir/default.nix b/pkgs/tools/misc/ttmkfdir/default.nix
index 1d633634e59..e4e8d3c3e9b 100644
--- a/pkgs/tools/misc/ttmkfdir/default.nix
+++ b/pkgs/tools/misc/ttmkfdir/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, freetype, fontconfig, libunwind, libtool, flex, bison }:
 
 stdenv.mkDerivation {
-  name = "ttf-mkfontdir-3.0.9-5.1";
+  name = "ttf-mkfontdir-3.0.9-6";
 
   src = fetchurl {
     url = http://ftp.de.debian.org/debian/pool/main/t/ttmkfdir/ttmkfdir_3.0.9.orig.tar.gz;
@@ -12,8 +12,8 @@ stdenv.mkDerivation {
   # who knows more about C/C++ ..
   patches =
     [ (fetchurl {
-        url = http://ftp.de.debian.org/debian/pool/main/t/ttmkfdir/ttmkfdir_3.0.9-5.1.diff.gz;
-        sha256 = "1500kwvhxfq85zg7nwnn9dlvjxyg2ni7as17gdfm67pl9a45q3w4";
+        url = http://ftp.de.debian.org/debian/pool/main/t/ttmkfdir/ttmkfdir_3.0.9-6.diff.gz;
+        sha256 = "141kxaf2by8nf87hqyszaxi0n7nnmswr1nh2i5r5bsvxxmaj9633";
       })
     
       ./cstring.patch # also fixes some other compilation issues (freetype includes)
diff --git a/pkgs/tools/networking/nbd/default.nix b/pkgs/tools/networking/nbd/default.nix
index 2a634f9a2dc..cbdaa39b16f 100644
--- a/pkgs/tools/networking/nbd/default.nix
+++ b/pkgs/tools/networking/nbd/default.nix
@@ -1,20 +1,14 @@
 {stdenv, fetchurl, pkgconfig, glib}:
 
 stdenv.mkDerivation rec {
-  name = "nbd-2.9.17";
+  name = "nbd-2.9.18";
 
   src = fetchurl {
     url = "mirror://sourceforge/nbd/${name}.tar.bz2";
-    sha256 = "07423fba4b1a6d394008505b86fe41d1978956035f49c1197de648fbaa7fb7ff";
+    sha256 = "afaaae330625b61ad67ba988721ddc4ad54bfc7e501daeb45f721c205bfb00f3";
   };
 
   buildInputs = [pkgconfig glib];
-
-  # Link this package statically to generate an nbd-server binary that
-  # has no dynamic dependencies and that can be used on (non-Nix) remote
-  # machines that have a different setup than the local one.
-  configureFlags = "LDFLAGS=-static";
-
   postInstall = ''install -D -m 444 README "$out/share/doc/nbd/README"'';
 
   meta = {
diff --git a/pkgs/tools/networking/ncftp/default.nix b/pkgs/tools/networking/ncftp/default.nix
index 9f4fb29c393..5c5cf342da9 100644
--- a/pkgs/tools/networking/ncftp/default.nix
+++ b/pkgs/tools/networking/ncftp/default.nix
@@ -4,8 +4,8 @@ stdenv.mkDerivation {
   name = "ncftp-3.2.3";
 
   src = fetchurl {
-    url = ftp://ftp.ncftp.com/ncftp/ncftp-3.2.3-src.tar.bz2;
-    sha256 = "0455rf6yw568izq2nvz58mjd719dgp9y63yx9cb7l620vvxz5x26";
+    url = ftp://ftp.ncftp.com/ncftp/ncftp-3.2.4-src.tar.bz2;
+    sha256 = "0v0cfc4kqsvmfighl47djw5nw82dl5j5g5i2s8wy375fllim0cv6";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 3138c0954e6..c75fa1ed60c 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -1,33 +1,43 @@
-{ stdenv, fetchurl, aterm, perl, curl, bzip2, openssl ? null
+{ stdenv, fetchurl, perl, curl, bzip2, openssl ? null
 , storeDir ? "/nix/store"
 , stateDir ? "/nix/var"
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-0.15";
-  
+  name = "nix-0.16";
+
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/326788/download/4/${name}.tar.bz2";
-    sha256 = "2d125e75dba387075a8bd443926d7fc6752e54cc9a21c2ef32e44fffc445a8ce";
+    url = "http://nixos.org/releases/nix/${name}/build/565033/download/4/${name}.tar.bz2";
+    sha256 = "0648ed285f263a2cc5a704c4aee70ec5f0415c3749f540c2691a2a613492c7c3";
   };
 
-  buildInputs = [ perl curl openssl ];
+  buildNativeInputs = [ perl ];
+  buildInputs = [ curl openssl ];
 
   configureFlags =
     ''
       --with-store-dir=${storeDir} --localstatedir=${stateDir}
-      --with-aterm=${aterm} --with-bzip2=${bzip2}
-      ${stdenv.lib.optionalString (openssl != null) "--with-openssl=${openssl}"}
+      --with-bzip2=${bzip2}
       --disable-init-state
+      CFLAGS=-O3 CXXFLAGS=-O3
     '';
 
-  doCheck = true;
+  crossAttrs = {
+    configureFlags =
+      ''
+        --with-store-dir=${storeDir} --localstatedir=${stateDir}
+        --with-bzip2=${bzip2.hostDrv}
+        --disable-init-state
+        CFLAGS=-O3 CXXFLAGS=-O3
+      '';
+    doCheck = false;
+  };
 
-  passthru = { inherit aterm; };
+  doCheck = true;
 
   meta = {
     description = "The Nix Deployment System";
     homepage = http://nixos.org/;
-    license = "LGPL";
+    license = "LGPLv2+";
   };
 }
diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix
index 7b89dcb25b8..3c558bbf673 100644
--- a/pkgs/tools/security/gnupg/default.nix
+++ b/pkgs/tools/security/gnupg/default.nix
@@ -13,11 +13,11 @@ assert useUsb -> (libusb != null);
 assert useCurl -> (curl != null);
 
 stdenv.mkDerivation rec {
-  name = "gnupg-2.0.15";
+  name = "gnupg-2.0.16";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "070diybdiwf45d8xqbb5lwf3jjvhja1lcr6sf4fcw8519lpqi0aq";
+    sha256 = "02x86pgzkdx9fg6mma36lrd8746zr1qvm995rvvb1sq2gjbvnnhd";
   };
 
   buildInputs = [ readline zlib libgpgerror pth libgcrypt libassuan libksba ]
diff --git a/pkgs/tools/text/ebook-tools/default.nix b/pkgs/tools/text/ebook-tools/default.nix
new file mode 100644
index 00000000000..57e5b21582b
--- /dev/null
+++ b/pkgs/tools/text/ebook-tools/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, cmake, libxml2, libzip }:
+
+let
+  pn = "ebook-tools";
+in
+
+stdenv.mkDerivation rec {
+  name = "${pn}-0.1.1";
+
+  src = fetchurl {
+    url = "mirror://sf/${pn}/${name}.tar.gz";
+    sha256 = "07flqm0c252jklggjmg998qzyvwlw67c3db2jbg734figngrjh79";
+  };
+
+  buildInputs = [ cmake libxml2 libzip ];
+
+  meta = {
+    homepage = "http://${pn}.sourceforge.net";
+    description = "Tools and libs for dealing with various ebook file formats";
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/text/xml/xmlstarlet/default.nix b/pkgs/tools/text/xml/xmlstarlet/default.nix
new file mode 100644
index 00000000000..ffeb9a8cd7c
--- /dev/null
+++ b/pkgs/tools/text/xml/xmlstarlet/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, libxslt }:
+
+stdenv.mkDerivation rec {
+  name = "xmlstarlet-1.0.2";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/xmlstar/${name}.tar.gz";
+    sha256 = "07a5c3fhqpvyy07pggl3ky7ahvlcpsmppy71x4h4albvanfbpjwj";
+  };
+
+  buildInputs = [ pkgconfig libxml2 libxslt ];
+
+  preConfigure =
+    ''
+      export LIBXSLT_PREFIX=${libxslt}
+      export LIBXML_PREFIX=${libxml2}
+      export LIBXSLT_LIBS=$(pkg-config --libs libxslt libexslt)
+      export LIBXML_LIBS=$(pkg-config --libs libxml-2.0)
+    '';
+
+  postInstall =
+    ''
+      ln -s xml $out/bin/xmlstarlet
+    '';
+
+  meta = {
+    description = "A command line tool for manipulating and querying XML data";
+    homepage = http://xmlstar.sourceforge.net/;
+    license = "bsd";
+  };
+}
diff --git a/pkgs/tools/text/xml/xpf/default.nix b/pkgs/tools/text/xml/xpf/default.nix
index 7ad55102c4f..fa8e8078362 100644
--- a/pkgs/tools/text/xml/xpf/default.nix
+++ b/pkgs/tools/text/xml/xpf/default.nix
@@ -4,9 +4,16 @@ assert libxml2.pythonSupport == true;
 
 stdenv.mkDerivation {
   name = "xpf-0.2";
+  
   src = fetchurl {
     url = http://nixos.org/tarballs/xpf-0.2.tar.gz;
     md5 = "d92658828139e1495e052d0cfe25d312";
   };
+  
   buildInputs = [python libxml2];
+
+  meta = {
+    description = "XML Pipes and Filters - command line tools for manipulating and querying XML data";
+    homepage = http://www.cs.uu.nl/wiki/bin/view/Martin/XmlPipesAndFilters;
+  };
 }
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.nix b/pkgs/tools/typesetting/pdf2djvu/default.nix
index 9a647e08106..ba70016c3c4 100644
--- a/pkgs/tools/typesetting/pdf2djvu/default.nix
+++ b/pkgs/tools/typesetting/pdf2djvu/default.nix
@@ -1,11 +1,12 @@
 {stdenv, fetchurl, pkgconfig, djvulibre, poppler, fontconfig, libjpeg }:
 
-stdenv.mkDerivation {
-  name = "pdf2djvu-0.5.3";
+stdenv.mkDerivation rec {
+  version = "0.7.4";
+  name = "pdf2djvu-${version}";
 
   src = fetchurl {
-    url = http://pdf2djvu.googlecode.com/files/pdf2djvu_0.5.3.tar.gz;
-    sha256 = "b36b958fc395dc8976485bef09aac2b97435d0d9f21b4cf8dacaa5b55f3f2c1c";
+    url = "http://pdf2djvu.googlecode.com/files/pdf2djvu_${version}.tar.gz";
+    sha256 = "4ca375cd4e873d82428bd934ecc7cdbc6331a8236090c2424bd3c3b7bfc1331c";
   };
 
   buildInputs = [ pkgconfig djvulibre poppler fontconfig libjpeg ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5677e875d4a..4c8a1da089e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -97,10 +97,10 @@ let
   # otherwise the basic overrided packages will not be built with the
   # crossStdenv adapter.
   overrides = (getConfig ["packageOverrides"] (pkgs: {})) pkgsOrig //
-    (if (pkgsOrig.stdenv ? overrides && crossSystem == null)
-    then pkgsOrig.stdenv.overrides else { });
+    (if pkgsOrig.stdenv ? overrides && crossSystem == null
+     then pkgsOrig.stdenv.overrides else { });
 
-  pkgsOrig = pkgsFun {}; # the un-overriden packages, passed to packageOverrides
+  pkgsOrig = pkgsFun { }; # the un-overriden packages, passed to packageOverrides
   pkgs = pkgsFun overrides; # the overriden, final packages
 
 
@@ -128,6 +128,8 @@ let
   # Used by wine, firefox with debugging version of Flash, ...
   pkgsi686Linux = forceSystem "i686-linux";
 
+  callPackage_i686 = lib.callPackageWith (pkgsi686Linux // pkgsi686Linux.xorg);
+
   inherit __overrides;
 
 
@@ -483,7 +485,7 @@ let
     inherit stdenv zlib openssl libssh2;
     zlibSupport = ! ((stdenv ? isDietLibC) || (stdenv ? isStatic));
     sslSupport = zlibSupport;
-    scpSupport = zlibSupport && (!stdenv.isSunOS);
+    scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin;
   };
 
   curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
@@ -546,6 +548,8 @@ let
 
   e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
 
+  ebook_tools = callPackage ../tools/text/ebook-tools { };
+
   ecryptfs = callPackage ../tools/security/ecryptfs { };
 
   enblendenfuse = callPackage ../tools/graphics/enblend-enfuse { };
@@ -976,7 +980,7 @@ let
   pg_top = callPackage ../tools/misc/pg_top { };
 
   pdsh = callPackage ../tools/networking/pdsh {
-    rsh = true;			# enable internal rsh implementation
+    rsh = true;          # enable internal rsh implementation
     ssh = openssh;
   };
 
@@ -1299,7 +1303,8 @@ let
     inherit stdenv fetchgit autoconf automake libusb confuse;
     # It needs a cross compiler for mipsel to build the firmware it will
     # load into the Ben Nanonote
-    gccCross = let
+    gccCross =
+      let
         pkgsCross = (import ./all-packages.nix) {
           inherit system;
           inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
@@ -1336,6 +1341,8 @@ let
     inherit (gnome) libgnomeprint;
   };
 
+  xmlstarlet = callPackage ../tools/text/xml/xmlstarlet { };
+
   xmlto = callPackage ../tools/typesetting/xmlto { };
 
   xmltv = callPackage ../tools/misc/xmltv { };
@@ -2086,14 +2093,17 @@ let
   python = if getConfig ["python" "full"] false then pythonFull else pythonBase;
   python25 = if getConfig ["python" "full"] false then python25Full else python25Base;
   python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
+  python27 = if getConfig ["python" "full"] false then python27Full else python27Base;
   pythonBase = python26Base;
   pythonFull = python26Full;
 
-  python24 = callPackage ../development/interpreters/python/2.4 { };
+  pythonWrapper = callPackage ../development/interpreters/python/wrapper.nix { };
 
-  python25Base = makeOverridable (import ../development/interpreters/python/2.5) {
+  python24 = lowPrio (callPackage ../development/interpreters/python/2.4 { });
+
+  python25Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.5) {
     inherit fetchurl stdenv zlib bzip2 gdbm;
-  };
+  });
 
   python25Full = lowPrio (python25Base.override {
     # FIXME: We lack ncurses support, needed, e.g., for `gpsd'.
@@ -2108,11 +2118,11 @@ let
     ncurses = if getConfig ["python" "curses"] true then ncurses else null;
   });
 
-  python26Base = makeOverridable (import ../development/interpreters/python/2.6) {
+  python26Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.6) {
     inherit fetchurl stdenv zlib bzip2 gdbm;
     arch = if stdenv.isDarwin then darwinArchUtility else null;
     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
-  };
+  });
 
   python26Full = lowPrio (python26Base.override {
     # FIXME: We lack ncurses support, needed, e.g., for `gpsd'.
@@ -2127,8 +2137,19 @@ let
     ncurses = if getConfig ["python" "curses"] true then ncurses else null;
   });
 
+  python27Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.7) {
+    inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
+    arch = if stdenv.isDarwin then darwinArchUtility else null;
+    sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
+  });
+
+  python27Full = lowPrio (python27Base.override {
+    inherit (pkgs) db4 sqlite readline openssl tcl tk ncurses;
+    inherit (pkgs.xlibs) libX11 xproto;
+  });
+
   python31Base = lowPrio (makeOverridable (import ../development/interpreters/python/3.1) {
-    inherit fetchurl stdenv zlib bzip2 gdbm;
+    inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
     arch = if stdenv.isDarwin then darwinArchUtility else null;
     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
   });
@@ -2629,6 +2650,8 @@ let
 
   clearsilver = callPackage ../development/libraries/clearsilver { };
 
+  cln = callPackage ../development/libraries/cln { };
+
   clppcre = builderDefsPackage (import ../development/libraries/cl-ppcre) {
   };
 
@@ -3151,7 +3174,7 @@ let
   libcaca = callPackage ../development/libraries/libcaca { };
 
   libcanberra = callPackage ../development/libraries/libcanberra {
-    inherit (gtkLibs) gtk gthread;
+    inherit (gtkLibs) gtk;
     gstreamer = gst_all.gstreamer;
   };
 
@@ -3245,6 +3268,8 @@ let
     useGTK = getPkgConfig "libiodbc" "gtk" false;
   };
 
+  libktorrent = newScope kde45 ../development/libraries/libktorrent { };
+
   liblqr1 = callPackage ../development/libraries/liblqr-1 {
     inherit (gnome) glib;
   };
@@ -3344,6 +3369,8 @@ let
 
   libpseudo = callPackage ../development/libraries/libpseudo { };
 
+  libqalculate = callPackage ../development/libraries/libqalculate { };
+
   librsync = callPackage ../development/libraries/librsync { };
 
   libsigcxx = callPackage ../development/libraries/libsigcxx { };
@@ -3523,6 +3550,10 @@ let
 
   nss = callPackage ../development/libraries/nss { };
 
+  nssTools = callPackage ../development/libraries/nss {
+    includeTools = true;
+  };
+
   ode = builderDefsPackage (import ../development/libraries/ode) {
   };
 
@@ -3632,13 +3663,11 @@ let
   };
 
   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
-    inherit (gst_all) gstreamer gstPluginsBase;
-    inherit (gnome) glib;
+    inherit (pkgs.gst_all) gstreamer gstPluginsBase;
+    inherit (pkgs.gnome) glib;
   };
 
-  qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator {
-    qt4 = qt46;
-  };
+  qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
 
   quassel = callPackage ../applications/networking/irc/quassel {
     inherit (kde4) qt4 kdelibs phonon automoc4;
@@ -3934,17 +3963,21 @@ let
 
   ### DEVELOPMENT / PYTHON MODULES
 
-  buildPythonPackage =
-    import ../development/python-modules/generic {
-      inherit python setuptools makeWrapper lib;
-    };
+  buildPythonPackage = import ../development/python-modules/generic {
+    inherit python setuptools makeWrapper lib;
+  };
 
-  buildPython26Package =
-    import ../development/python-modules/generic {
-      inherit makeWrapper lib;
-      python = python26;
-      setuptools = setuptools_python26;
-    };
+  buildPython26Package = import ../development/python-modules/generic {
+    inherit makeWrapper lib;
+    python = python26;
+    setuptools = setuptools.override { python = python26; };
+  };
+
+  buildPython27Package = import ../development/python-modules/generic {
+    inherit makeWrapper lib;
+    python = python27;
+    setuptools = setuptools.override { python = python27; doCheck = false; };
+  };
 
   pythonPackages = python26Packages;
 
@@ -3958,14 +3991,18 @@ let
     buildPythonPackage = buildPython26Package;
   });
 
+  python27Packages = recurseIntoAttrs (import ./python-packages.nix {
+    inherit pkgs;
+    python = python27;
+    buildPythonPackage = buildPython27Package;
+  });
+
   foursuite = callPackage ../development/python-modules/4suite { };
 
   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
 
   flup = builderDefsPackage ../development/python-modules/flup {
-    inherit fetchurl stdenv;
-    python = python25;
-    setuptools = setuptools.passthru.function {python = python25;};
+    inherit fetchurl stdenv python setuptools;
   };
 
   numeric = callPackage ../development/python-modules/numeric { };
@@ -4011,11 +4048,6 @@ let
     inherit python makeWrapper;
   };
 
-  setuptools_python26 = builderDefsPackage (import ../development/python-modules/setuptools) {
-    inherit makeWrapper;
-    python = python26;
-  };
-
   wxPython = wxPython26;
 
   wxPython26 = callPackage ../development/python-modules/wxPython/2.6.nix {
@@ -4188,11 +4220,11 @@ let
       xkeyboard_config dbus hal libuuid openssl gperf m4
       automake autoconf libtool xmlto asciidoc udev;
 
-    # !!! pythonBase is use instead of python because this cause an infinite
-    # !!! recursion when the flag python.full is set to true.  Packages
-    # !!! contained in the loop are python, tk, xlibs-wrapper, libX11,
-    # !!! libxcd (and xcb-proto).
-    python =  pythonBase;
+    # !!! pythonBase is used instead of python because this causes an
+    # infinite recursion when the flag python.full is set to true.
+    # Packages contained in the loop are python, tk, xlibs-wrapper,
+    # libX11, libxcd (and xcb-proto).
+    python = pythonBase;
   });
 
   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
@@ -4520,6 +4552,14 @@ let
       ];
   };
 
+  linux_2_6_35 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.35.nix) {
+    inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
+    kernelPatches =
+      [ /*kernelPatches.fbcondecor_2_6_33*/
+        kernelPatches.sec_perm_2_6_24
+      ];
+  };
+
   linux_nanonote_jz_2_6_34 = makeOverridable
     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix) {
       inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools ubootChooser;
@@ -4530,6 +4570,17 @@ let
       inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools ubootChooser;
     };
 
+  linux_2_6_35_oldI686 = linux_2_6_35.override {
+      extraConfig = ''
+          HIGHMEM64G? n
+          XEN? n
+      '';
+      extraMeta = {
+        platforms = ["i686-linux"];
+	maintainers = [lib.maintainers.raskin];
+      };
+  };
+
   /* Linux kernel modules are inherently tied to a specific kernel.  So
      rather than provide specific instances of those packages for a
      specific kernel, we have a function that builds those packages
@@ -4548,8 +4599,8 @@ let
 
     aufs2_util = callPackage ../os-specific/linux/aufs2-util { };
 
-    blcr = callPackage ../os-specific/linux/blcr/0.8.2.nix {
-      libtool = libtool_1_5; # libtool 2 causes a fork bomb
+    blcr = callPackage ../os-specific/linux/blcr {
+      #libtool = libtool_1_5; # libtool 2 causes a fork bomb
     };
 
     exmap = callPackage ../os-specific/linux/exmap {
@@ -4631,6 +4682,7 @@ let
     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_systemtap pkgs.linuxPackages_2_6_32_systemtap);
   linuxPackages_2_6_33 = recurseIntoAttrs (linuxPackagesFor linux_2_6_33 pkgs.linuxPackages_2_6_33);
   linuxPackages_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_2_6_34 pkgs.linuxPackages_2_6_34);
+  linuxPackages_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_2_6_35 pkgs.linuxPackages_2_6_35);
   linuxPackages_nanonote_jz_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_34 pkgs.linuxPackages_nanonote_jz_2_6_34); 
   linuxPackages_nanonote_jz_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_35 pkgs.linuxPackages_nanonote_jz_2_6_35); 
 
@@ -4863,7 +4915,8 @@ let
   windows = rec {
     w32api = callPackage ../os-specific/windows/w32api {
       gccCross = gccCrossStageStatic;
-      binutilsCross = binutilsCross;    };
+      binutilsCross = binutilsCross;
+    };
 
     w32api_headers = w32api.override {
       onlyHeaders = true;
@@ -4970,7 +5023,7 @@ let
   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
 
   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
-  
+
   junicode = callPackage ../data/fonts/junicode { };
 
   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
@@ -5031,30 +5084,15 @@ let
   ### APPLICATIONS
 
 
-  aangifte2005 = import ../applications/taxes/aangifte-2005 {
-    inherit (pkgsi686Linux) stdenv fetchurl;
-    inherit (pkgsi686Linux.xlibs) libX11 libXext;
-  };
+  aangifte2005 = callPackage_i686 ../applications/taxes/aangifte-2005 { };
 
-  aangifte2006 = import ../applications/taxes/aangifte-2006 {
-    inherit (pkgsi686Linux) stdenv fetchurl;
-    inherit (pkgsi686Linux.xlibs) libX11 libXext;
-  };
+  aangifte2006 = callPackage_i686 ../applications/taxes/aangifte-2006 { };
 
-  aangifte2007 = import ../applications/taxes/aangifte-2007 {
-    inherit (pkgsi686Linux) stdenv fetchurl;
-    inherit (pkgsi686Linux.xlibs) libX11 libXext libSM;
-  };
+  aangifte2007 = callPackage_i686 ../applications/taxes/aangifte-2007 { };
 
-  aangifte2008 = import ../applications/taxes/aangifte-2008 {
-    inherit (pkgsi686Linux) stdenv fetchurl;
-    inherit (pkgsi686Linux.xlibs) libX11 libXext libSM;
-  };
+  aangifte2008 = callPackage_i686 ../applications/taxes/aangifte-2008 { };
 
-  aangifte2009 = import ../applications/taxes/aangifte-2009 {
-    inherit (pkgsi686Linux) stdenv fetchurl makeWrapper xdg_utils;
-    inherit (pkgsi686Linux.xlibs) libX11 libXext libSM;
-  };
+  aangifte2009 = callPackage_i686 ../applications/taxes/aangifte-2009 { };
 
   abcde = callPackage ../applications/audio/abcde { };
 
@@ -5063,7 +5101,7 @@ let
     inherit (gnome) libglade libgnomecanvas;
   };
 
-  adobeReader = lib.callPackageWith (pkgsi686Linux // pkgsi686Linux.xorg) ../applications/misc/adobe-reader {
+  adobeReader = callPackage_i686 ../applications/misc/adobe-reader {
     inherit (pkgsi686Linux.gtkLibs) glib pango atk gtk;
   };
 
@@ -5233,6 +5271,7 @@ let
       glib pango libglade libgtkhtml gtkhtml
       libgnomecanvas libgnomeprint
       libgnomeprintui gnomepanel gnomedesktop;
+    inherit pyrex;
     gnomegtk = gnome.gtk;
   };
 
@@ -5347,6 +5386,8 @@ let
   });
 
   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
+    inherit emacs;
+
     bbdb = callPackage ../applications/editors/emacs-modes/bbdb { };
 
     cedet = callPackage ../applications/editors/emacs-modes/cedet { };
@@ -5597,11 +5638,7 @@ let
     inherit (gtkLibs) gtk;
   };
 
-  googleearth = import ../applications/misc/googleearth {
-    inherit (pkgsi686Linux) stdenv fetchurl glibc mesa freetype zlib glib;
-    inherit (pkgsi686Linux.xlibs) libSM libICE libXi libXv libXrender
-      libXrandr libXfixes libXcursor libXinerama libXext libX11;
-  };
+  googleearth = callPackage_i686 ../applications/misc/googleearth { };
 
   gosmore = builderDefsPackage ../applications/misc/gosmore {
     inherit fetchsvn curl pkgconfig libxml2;
@@ -5912,7 +5949,6 @@ let
 
   partitionManager = callPackage ../tools/misc/partition-manager {
     kde = kde44;
-    qt = qt4;
   };
 
   pdftk = callPackage ../tools/typesetting/pdftk { };
@@ -6033,10 +6069,7 @@ let
     inherit (kde4) qt4 kdelibs automoc4 phonon soprano;
   };
 
-  skype_linux = callPackage ../applications/networking/skype {
-    qt = qt46;
-    inherit (gtkLibs) glib;
-  };
+  skype_linux = callPackage_i686 ../applications/networking/skype { };
 
   slim = callPackage ../applications/display-managers/slim { };
 
@@ -6163,7 +6196,8 @@ let
 
   viewMtn = builderDefsPackage (import ../applications/version-management/viewmtn/0.10.nix)
   {
-    inherit monotone flup cheetahTemplate highlight ctags
+    inherit
+      monotone flup cheetahTemplate highlight ctags
       makeWrapper graphviz which python;
   };
 
@@ -6389,7 +6423,7 @@ let
 
   bsdgames = callPackage ../games/bsdgames { };
 
-  castleCombat = callPackage ../games/castle-combat { };
+  castle_combat = callPackage ../games/castle-combat { };
 
   construoBase = callPackage ../games/construo {
     mesa = null;
@@ -6608,27 +6642,26 @@ let
 
   kde45 = callPackage ../desktops/kde-4.5 {
     callPackage = newScope ({
-      qt4 = qt47;
       pyqt4 = pyqt4.override { qt4 = qt47; };
       libdbusmenu_qt = libdbusmenu_qt.override { qt4 = qt47; };
       shared_desktop_ontologies = shared_desktop_ontologies.override { v = "0.5"; };
-    } // kde45);
+    } // pkgs.kde45);
   };
 
   xfce = xfce4;
-  
+
   xfce4 = recurseIntoAttrs
     (let callPackage = newScope pkgs.xfce4; in
      import ../desktops/xfce-4 { inherit callPackage pkgs; });
 
-  
+
   ### SCIENCE
 
   xplanet = callPackage ../applications/science/xplanet {
     inherit (gtkLibs) pango;
   };
 
-  
+
   ### SCIENCE/GEOMETRY
 
   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
@@ -6636,6 +6669,8 @@ let
     inherit libxml2 guile perl intltool libtool pkgconfig;
   };
 
+  tetgen = callPackage ../applications/science/geometry/tetgen { };
+
 
   ### SCIENCE/BIOLOGY
 
@@ -6841,17 +6876,22 @@ let
 
   maven2 = callPackage ../misc/maven { };
 
-  nix = nixUnstable;
+  mess = callPackage ../misc/emulators/mess { };
+
+  nix = nixStable;
 
   nixStable = callPackage ../tools/package-management/nix {
     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
   };
 
+  nixUnstable = nixStable;
+  /*
   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
   };
+  */
 
   # The SQLite branch.
   nixSqlite = lowPrio (makeOverridable (import ../tools/package-management/nix/sqlite.nix) {
@@ -6988,14 +7028,10 @@ let
     inherit (gtkLibs) gtk;
   };
 
-  wine =
-    # Wine cannot be built in 64-bit; use a 32-bit build instead.
-    import ../misc/emulators/wine {
-      inherit (pkgsi686Linux) fetchurl stdenv bison mesa ncurses
-        libpng libjpeg alsaLib lcms xlibs freetype
-        fontconfig fontforge libxml2 libxslt openssl;
-      flex = pkgsi686Linux.flex2535;
-    };
+  # Wine cannot be built in 64-bit; use a 32-bit build instead.
+  wine = callPackage_i686 ../misc/emulators/wine {
+    flex = pkgsi686Linux.flex2535;
+  };
 
   x2x = callPackage ../tools/X11/x2x { };
 
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 819f7ee1416..0c00beb352e 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -489,7 +489,8 @@ rec {
   };
 
   httpdShed = import ../development/libraries/haskell/httpd-shed {
-    inherit cabal network;
+    inherit cabal;
+    network = network2217;
   };
 
   HUnit1221 = import ../development/libraries/haskell/HUnit/1.2.2.1.nix {
@@ -903,7 +904,8 @@ rec {
   };
 
   vacuum = import ../development/libraries/haskell/vacuum {
-    inherit cabal ghcPaths;
+    inherit cabal;
+    ghcPaths = ghcPaths0106;
   };
 
   vacuumCairo = import ../development/libraries/haskell/vacuum-cairo {
diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix
index 93a833c994f..fb9c772d9ac 100644
--- a/pkgs/top-level/make-tarball.nix
+++ b/pkgs/top-level/make-tarball.nix
@@ -56,6 +56,11 @@ releaseTools.makeSourceTarball {
             -qa \* --drv-path --system-filter \* --system --meta --xml
         stopNest
     done
+
+    header "checking eval-release.nix"
+    nix-instantiate --eval-only --strict --xml ./maintainers/scripts/eval-release.nix > $TMPDIR/out.xml
+    xmllint --noout $TMPDIR/out.xml
+    stopNest
   '';
 
   distPhase = ''
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 01d21a49e64..0ebde53ca39 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -48,7 +48,7 @@ with (import ./release-lib.nix);
   bvi = all;
   bzip2 = all;
   cabextract = all;
-  castleCombat = linux;
+  castle_combat = linux;
   cdrkit = linux;
   chatzilla = linux;
   cksfv = all;
@@ -159,8 +159,6 @@ with (import ./release-lib.nix);
   inetutils = linux;
   inkscape = linux;
   iputils = linux;
-  iproute = linux;
-  iptables = linux;
   irssi = linux;
   jfsutils = linux;
   jfsrec = linux;
@@ -228,7 +226,6 @@ with (import ./release-lib.nix);
   openssh = linux;
   openssl = all;
   pam_console = linux;
-  pam_ldap = linux;
   pam_login = linux;
   pam_unix2 = linux;
   pan = gtkSupported;