about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-01-25 18:52:07 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-01-25 18:52:07 +0000
commitbcba809460349a2af85f5eca92039859e96abf68 (patch)
treeb261e933dea3152355c5765caf117bd9d5be324e
parentede62831805ac72109e355757a116e96147fcb14 (diff)
parent10ca771495c7942bdc316db1ed043ce820808288 (diff)
downloadnixlib-bcba809460349a2af85f5eca92039859e96abf68.tar
nixlib-bcba809460349a2af85f5eca92039859e96abf68.tar.gz
nixlib-bcba809460349a2af85f5eca92039859e96abf68.tar.bz2
nixlib-bcba809460349a2af85f5eca92039859e96abf68.tar.lz
nixlib-bcba809460349a2af85f5eca92039859e96abf68.tar.xz
nixlib-bcba809460349a2af85f5eca92039859e96abf68.tar.zst
nixlib-bcba809460349a2af85f5eca92039859e96abf68.zip
Updating from trunk.
svn path=/nixpkgs/branches/stdenv-updates/; revision=19654
-rw-r--r--doc/release-notes.xml23
-rw-r--r--pkgs/applications/graphics/digikam/default.nix25
-rw-r--r--pkgs/applications/graphics/meshlab/default.nix37
-rw-r--r--pkgs/applications/graphics/rawtherapee/default.nix41
-rw-r--r--pkgs/applications/graphics/rawtherapee/optional-rawzor.patch83
-rw-r--r--pkgs/applications/misc/epdfview/default.nix21
-rw-r--r--pkgs/applications/misc/ikiwiki/default.nix8
-rw-r--r--pkgs/applications/misc/pstree/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/firefox/2.0-builder.sh35
-rw-r--r--pkgs/applications/networking/browsers/firefox/2.0.nix57
-rw-r--r--pkgs/applications/networking/browsers/firefox/3.6.nix (renamed from pkgs/applications/networking/browsers/firefox/3.0.nix)37
-rw-r--r--pkgs/applications/science/electronics/gtkwave/default.nix4
-rw-r--r--pkgs/applications/version-management/cvs/default.nix11
-rw-r--r--pkgs/applications/version-management/cvs/getcwd-chroot.patch302
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix11
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix8
-rw-r--r--pkgs/applications/version-management/monotone/default.nix4
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git122
-rw-r--r--pkgs/build-support/vm/default.nix2
-rw-r--r--pkgs/data/misc/cacert/default.nix23
-rw-r--r--pkgs/desktops/gnome-2.28/default.nix26
-rw-r--r--pkgs/desktops/gnome-2.28/platform/gtkhtml/default.nix13
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libgnomecups/default.nix13
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libgnomeprint/default.nix14
-rw-r--r--pkgs/desktops/gnome-2.28/platform/libgtkhtml/default.nix13
-rw-r--r--pkgs/desktops/kde-4.3/default.nix15
-rw-r--r--pkgs/desktops/kde-4.3/extragear/digikam/default.nix24
-rw-r--r--pkgs/desktops/kde-4.3/extragear/kipi-plugins/default.nix24
-rw-r--r--pkgs/desktops/kde-4.3/extragear/krusader/default.nix1
-rw-r--r--pkgs/desktops/kde-4.3/extragear/krusader/krusader-gcc44.patch10
-rw-r--r--pkgs/desktops/kde-4.3/libs/default.nix7
-rw-r--r--pkgs/development/compilers/ecl/default.nix26
-rw-r--r--pkgs/development/compilers/ecl/src-for-default.nix9
-rw-r--r--pkgs/development/compilers/ecl/src-info-for-default.nix5
-rw-r--r--pkgs/development/interpreters/acl2/default.nix6
-rw-r--r--pkgs/development/interpreters/guile/1.9.nix5
-rw-r--r--pkgs/development/libraries/chmlib/default.nix4
-rw-r--r--pkgs/development/libraries/glew/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/cabal/cabal.nix2
-rw-r--r--pkgs/development/libraries/haskell/uu-parsinglib/default.nix4
-rw-r--r--pkgs/development/libraries/levmar/default.nix28
-rw-r--r--pkgs/development/libraries/levmar/use-atlas.patch37
-rw-r--r--pkgs/development/libraries/lib3ds/default.nix2
-rw-r--r--pkgs/development/libraries/libiptcdata/default.nix16
-rw-r--r--pkgs/development/libraries/libnotify/default.nix20
-rw-r--r--pkgs/development/libraries/libtasn1/default.nix27
-rw-r--r--pkgs/development/libraries/qhull/default.nix6
-rw-r--r--pkgs/development/libraries/qt-4.5/default.nix5
-rw-r--r--pkgs/development/libraries/qt-4.6/default.nix6
-rw-r--r--pkgs/development/tools/misc/distcc/20-minute-io-timeout.patch12
-rw-r--r--pkgs/development/tools/misc/distcc/default.nix6
-rw-r--r--pkgs/development/tools/misc/gengetopt/default.nix29
-rw-r--r--pkgs/os-specific/linux/kbd/default.nix16
-rw-r--r--pkgs/os-specific/linux/kernel/config-blocks.nix6
-rw-r--r--pkgs/os-specific/linux/keyutils/default.nix25
-rw-r--r--pkgs/os-specific/linux/zen-kernel/2.6.32-zen4.nix2
-rw-r--r--pkgs/tools/cd-dvd/mkisofs/default.nix25
-rw-r--r--pkgs/tools/filesystems/genext2fs/default.nix8
-rw-r--r--pkgs/tools/misc/w3c-css-validator/default.nix79
-rw-r--r--pkgs/tools/networking/swec/default.nix73
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix6
-rw-r--r--pkgs/tools/security/ecryptfs/default.nix18
-rw-r--r--pkgs/tools/system/ipmitool/default.nix22
-rw-r--r--pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix8
-rw-r--r--pkgs/tools/virtualization/amazon-ec2-ami-tools/writable.patch33
-rw-r--r--pkgs/top-level/all-packages.nix108
-rw-r--r--pkgs/top-level/perl-packages.nix8
-rw-r--r--pkgs/top-level/python-packages.nix3
-rw-r--r--pkgs/top-level/release.nix14
69 files changed, 1517 insertions, 218 deletions
diff --git a/doc/release-notes.xml b/doc/release-notes.xml
index eb870da3a0e3..37cbdd684038 100644
--- a/doc/release-notes.xml
+++ b/doc/release-notes.xml
@@ -5,6 +5,29 @@
 <title>Nixpkgs Release Notes</title>
 
 
+<section><title>Release 0.13 (Januari NNN, 2010)</title>
+
+<para>As always, there are many changes.  Some of the most important
+updates are:
+
+<itemizedlist>
+
+  <listitem><para>Glibc 2.9.</para></listitem>
+
+  <listitem><para>GCC 4.3.3.</para></listitem>
+
+  <listitem><para>Linux 2.6.32.</para></listitem>
+
+  <listitem><para>X.org 7.5.</para></listitem>
+
+  <listitem><para>KDE 4.3.4.</para></listitem>
+
+</itemizedlist>
+
+
+</section>
+
+
 <section><title>Release 0.12 (April 24, 2009)</title>
 
 <para>There are way too many additions to Nixpkgs since the last
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
new file mode 100644
index 000000000000..907c5ca3e225
--- /dev/null
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl, kdelibs, exiv2, libXt, libXext, zlib, libjpeg, perl, qt3, 
+  libpng, expat, cmake }:
+
+stdenv.mkDerivation {
+  name = "digikam-1.0.0";
+
+  src = fetchurl {
+    url = mirror://sourceforge/digikam/digikam-1.0.0.tar.bz2;
+    sha256 = "0qblqyjn0vas8hyqn5s9rr401d93cagk53y3j8kch0mr0bk706bk";
+  };
+
+/*
+  configurePhase = ''
+    LDFLAGS="$LDFLAGS -ljpeg" ./configure --without-arts --prefix=$out
+    '';
+*/
+
+  buildInputs = [ kdelibs exiv2 libXt libXext zlib libjpeg perl qt3 libpng expat cmake ];
+
+  meta = {
+    homepage = http://digikam.sourceforge.net/;
+    description = "KDE 3.x photo viewer";
+    # license = "GPLv2+";
+  };
+}
diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix
index 10b48b063256..bc816a1daf75 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -1,21 +1,36 @@
-{stdenv, fetchurl, qt, bzip2}:
+{stdenv, fetchurl, qt, bzip2, lib3ds, levmar, muparser, unzip}:
 
-stdenv.mkDerivation {
-  name = "meshlab-1.2.0";
+stdenv.mkDerivation rec {
+  name = "meshlab-1.2.2";
 
   src = fetchurl {
-    url = mirror://sourceforge/meshlab/MeshLabSrc_v120.tgz;
-    sha256 = "0iidp2pzwq96v8zbm8gc67wi1f41anpkncp17ajkv1rrh653nila";
+    url = mirror://sourceforge/meshlab/MeshLabSrc_v122.tar.gz;
+    sha256 = "166a8mx72wf3r84pnpr0ssqkd2xw6y5brviywlj8rjk6w9cy8fdc";
   };
 
+  srcGlew151 = fetchurl {
+    url = http://dfn.dl.sourceforge.net/sourceforge/glew/glew-1.5.1-src.tgz;
+    sha256 = "02n1p6s6sia92fgng9iq0kqq890rga8d8g0y34mc6qxmbh43vrl9";
+  };
+
+  srcQHull20031 = fetchurl {
+    url = http://www.qhull.org/download/qhull-2003.1.zip;
+    sha256 = "07mh371i6xs691qz6wwzkqk9h0d2dkih2q818is2b041w1l79b46";
+  };
 
-  setSourceRoot = "sourceRoot=`pwd`/meshlab/src";
 
-  buildPhase = ''
+  patchPhase = ''
+    cd meshlab/src
+    mkdir external
     pushd external
-    qmake -recursive external.pro
-    make
+    tar xf ${srcGlew151}
+    mv glew glew-1.5.1
+    unzip ${srcQHull20031}
     popd
+  '';
+
+  buildPhase = ''
+    pwd
     qmake -recursive meshlabv12.pro
     make
   '';
@@ -28,11 +43,13 @@ stdenv.mkDerivation {
     ln -s $out/opt/meshlab/meshlab $out/bin/meshlab
   '';
 
-  buildInputs = [ qt bzip2 ];
+  buildInputs = [ qt bzip2 lib3ds levmar muparser unzip ];
 
   meta = {
     description = "System for the processing and editing of unstructured 3D triangular meshes";
     homepage = http://meshlab.sourceforge.net/;
     license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/graphics/rawtherapee/default.nix b/pkgs/applications/graphics/rawtherapee/default.nix
new file mode 100644
index 000000000000..eda187cbf235
--- /dev/null
+++ b/pkgs/applications/graphics/rawtherapee/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchsvn, pkgconfig, gtk, cmake, pixman, libpthreadstubs, gtkmm, libXau,
+libXdmcp, lcms, libiptcdata
+}:
+
+stdenv.mkDerivation rec {
+  name = "rawtherapee-svn-25";
+  
+  src = fetchsvn {
+    url = "http://rawtherapee.googlecode.com/svn/trunk";
+    rev = 25;
+    sha256 = "09jg47rs09lly70x1zlrb3qcwi2rry1m7gjzs39iqzp53hi9j9mh";
+  };
+  
+  buildInputs = [ pkgconfig gtk cmake pixman libpthreadstubs gtkmm libXau libXdmcp
+    lcms libiptcdata ];
+
+  # Rawtherapee died if the default setting for the icc directory pointed to a
+  # non existant place
+  patchPhase = ''
+    sed -i s,/usr/share/color/icc,/tmp/, rtgui/options.cc
+  '';
+
+  # Disable the use of the RAWZOR propietary libraries
+  cmakeFlags = [ "-DWITH_RAWZOR=OFF" ];
+
+  installPhase = ''
+    ensureDir $out/bin $out/lib
+    cp rtgui/rt $out/bin
+    # Weird kind of path reference
+    cp -r ../release/* $out/bin
+    cp rtengine/*.so $out/lib
+  '';
+
+  meta = {
+    description = "RAW converter and digital photo processing software";
+    homepage = http://www.rawtherapee.com/;
+    license = "GPLv3+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/graphics/rawtherapee/optional-rawzor.patch b/pkgs/applications/graphics/rawtherapee/optional-rawzor.patch
new file mode 100644
index 000000000000..bc0210803a1b
--- /dev/null
+++ b/pkgs/applications/graphics/rawtherapee/optional-rawzor.patch
@@ -0,0 +1,83 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,5 +1,7 @@
+ cmake_minimum_required(VERSION 2.6)
+ 
++option (WITH_RAWZOR "Build with Rawzor support" ON)
++
+ add_subdirectory (rtexif)
+ add_subdirectory (rtengine)
+ add_subdirectory (rtgui)
+--- a/rtengine/CMakeLists.txt
++++ b/rtengine/CMakeLists.txt
+@@ -9,9 +9,13 @@
+ IF (WIN32)
+     SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../lib; ${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_win")
+     SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../winclude; ${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_win")
+-    SET (EXTRA_LIB "ws2_32 ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libiptcdata.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libjpeg.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libpng.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libtiff.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libz.a ${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_win/rwz_sdk_s.a")
++    SET (EXTRA_LIB "ws2_32 ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libiptcdata.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libjpeg.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libpng.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libtiff.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libz.a")
++    if (WITH_RAWZOR)
+     ADD_DEFINITIONS (-DRAWZOR_SUPPORT)
++    SET (EXTRA_LIB "${EXTRA_LIB} ${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_win/rwz_sdk_s.a")
++    endif (WITH_RAWZOR)
+ ELSE (WIN32)
++    if (WITH_RAWZOR)
+     IF (CMAKE_SIZEOF_VOID_P EQUAL 4)
+         SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin32")
+ 	SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin32")
+@@ -19,10 +23,11 @@
+         SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin64")
+ 	SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin64")
+     ENDIF (CMAKE_SIZEOF_VOID_P EQUAL 4)
+-    pkg_check_modules (IPTCDATA REQUIRED libiptcdata)
+-    pkg_check_modules (LCMS REQUIRED lcms)
+     SET (EXTRA_LIB "-lrwz_sdk")
+     ADD_DEFINITIONS (-DRAWZOR_SUPPORT)
++    endif (WITH_RAWZOR)
++    pkg_check_modules (IPTCDATA REQUIRED libiptcdata)
++    pkg_check_modules (LCMS REQUIRED lcms)
+ ENDIF (WIN32)
+ 
+ include_directories (${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../rtexif ${EXTRA_INCDIR} ${GTHREAD_INCLUDE_DIRS} ${GOBJECT_INCLUDE_DIRS} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS} ${IPTCDATA_INCLUDE_DIRS} ${LCMS_INCLUDE_DIRS})
+--- a/rtengine/imagedata.cc
++++ b/rtengine/imagedata.cc
+@@ -19,7 +19,9 @@
+ #include <imagedata.h>
+ #include <iptcpairs.h>
+ #include <glib/gstdio.h>
++#ifdef RAWZOR_SUPPORT
+ #include <rwz_sdk.h>
++#endif
+ 
+ using namespace rtengine;
+ 
+--- a/rtengine/myfile.cc
++++ b/rtengine/myfile.cc
+@@ -19,7 +19,9 @@
+ #include <myfile.h>

+ #include <cstdarg>
+ #include <glibmm.h>
++#ifdef RAWZOR_SUPPORT
+ #include <rwz_sdk.h>

++#endif
+ 
+ IMFILE* fopen (const char* fname) {

+ 
+--- a/rtgui/CMakeLists.txt
++++ b/rtgui/CMakeLists.txt
+@@ -75,6 +75,7 @@
+     if (NOT ZLIB_LIBRARIES)
+         message(SEND_ERROR "libz was not found!")
+     endif (NOT ZLIB_LIBRARIES)
++    if (WITH_RAWZOR)
+     IF (CMAKE_SIZEOF_VOID_P EQUAL 4)
+         SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin32")
+ 	    SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin32")
+@@ -82,6 +83,7 @@
+         SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin64")
+ 	    SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin64")
+     ENDIF (CMAKE_SIZEOF_VOID_P EQUAL 4)
++    endif (WITH_RAWZOR)
+ 
+ include_directories (/usr/local/lib ${CMAKE_CURRENT_SOURCE_DIR}/../rtengine . ${CMAKE_CURRENT_SOURCE_DIR}/../rtexif ${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS}
+     ${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS} ${GIO_INCLUDE_DIRS} ${GIOMM_INCLUDE_DIRS} ${IPTCDATA_INCLUDE_DIRS} ${LCMS_INCLUDE_DIRS} ${GTHREAD_INCLUDE_DIRS} ${GOBJECT_INCLUDE_DIRS} )
diff --git a/pkgs/applications/misc/epdfview/default.nix b/pkgs/applications/misc/epdfview/default.nix
new file mode 100644
index 000000000000..4d88096d0423
--- /dev/null
+++ b/pkgs/applications/misc/epdfview/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, gtk, poppler }:
+stdenv.mkDerivation rec {
+  name = "epdfview-0.1.7";
+  src = fetchurl {
+    url = "http://trac.emma-soft.com/epdfview/chrome/site/releases/${name}.tar.bz2";
+    sha256 = "1s2af09ij5jjqryv4dl10flsdk5p953qp94dymn93fnl93rv1yqa";
+  };
+  buildInputs = [ pkgconfig gtk poppler ];
+  meta = {
+    homepage = http://trac.emma-soft.com/epdfview/;
+    description = "A lightweight PDF document viewer using Poppler and GTK+";
+    longDescription = ''
+        ePDFView is a free lightweight PDF document viewer using Poppler and
+        GTK+ libraries. The aim of ePDFView is to make a simple PDF document
+        viewer, in the lines of Evince but without using the Gnome libraries. 
+    '';
+    license = "GPLv2";
+    maintainers = with stdenv.lib.maintainers; [ astsmtl ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix
index 9092c08303c5..bda42123a356 100644
--- a/pkgs/applications/misc/ikiwiki/default.nix
+++ b/pkgs/applications/misc/ikiwiki/default.nix
@@ -6,12 +6,12 @@
   , extraUtils ? []
   }:
 
-stdenv.mkDerivation {
-  name = "ikiwiki_3.20091009";
+stdenv.mkDerivation rec {
+  name = "ikiwiki_3.20100102.3";
 
   src = fetchurl {
-    url = http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/ikiwiki_3.20091009.tar.gz;
-    sha256 = "1iznyiypsnhga71s31782j3rf52fyvxrcys3nfpcr8yg1a5zadpn";
+    url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}.tar.gz";
+    sha256 = "0vb54z7hwb6iwd0j96vhr8ypzwc8l4hd98wbp5wsxkx5bgc38nsp";
   };
 
   buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
diff --git a/pkgs/applications/misc/pstree/default.nix b/pkgs/applications/misc/pstree/default.nix
index e642824d4bf0..71cac8eefa74 100644
--- a/pkgs/applications/misc/pstree/default.nix
+++ b/pkgs/applications/misc/pstree/default.nix
@@ -1,10 +1,10 @@
 args: with args;
 stdenv.mkDerivation rec {
-  name = "pstree-2.32";
+  name = "pstree-2.33";
 
   src = fetchurl {
-    url = "http://fresh.t-systems-sfr.com/unix/src/misc/${name}.tar.gz";
-    sha256 = "0k5r6alnc0ch3frvl5bhh2vi91m6aik10pnjfl86qwkdwsr303az";
+    url = "http://www.sfr-fresh.com/unix/misc/${name}.tar.gz";
+    sha256 = "1469lrhpy6wghlvbjx6lmvh27rakq00x11cpz4n965fg11i121hg";
   };
 
   unpackPhase="unpackFile \$src; sourceRoot=.";
diff --git a/pkgs/applications/networking/browsers/firefox/2.0-builder.sh b/pkgs/applications/networking/browsers/firefox/2.0-builder.sh
deleted file mode 100644
index e77bd2211de2..000000000000
--- a/pkgs/applications/networking/browsers/firefox/2.0-builder.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-source $stdenv/setup
-
-postInstall() {
-
-    # Strip some more stuff
-    strip -S $out/lib/*/* || true
-
-    # Fix some references to /bin paths in the Firefox shell script.
-    substituteInPlace $out/bin/firefox \
-        --replace /bin/pwd "$(type -tP pwd)" \
-        --replace /bin/ls "$(type -tP ls)"
-    
-    # This fixes starting Firefox when there already is a running
-    # instance.  The `firefox' wrapper script actually expects to be
-    # in the same directory as `run-mozilla.sh', apparently.
-    libDir=$(cd $out/lib && ls -d firefox-*)
-    test -n "$libDir"
-    cd $out/bin
-    mv firefox ../lib/$libDir/
-    ln -s ../lib/$libDir/firefox .
-
-    # Register extensions etc.
-    echo "running firefox -register..."
-    (cd $out/lib/$libDir && LD_LIBRARY_PATH=. ./firefox-bin -register) || false
-
-    echo "running regxpcom..."
-    (cd $out/lib/$libDir && LD_LIBRARY_PATH=. ./regxpcom) || false
-
-    # Put the Firefox icon in the right place.
-    ensureDir $out/lib/$libDir/chrome/icons/default
-    ln -s ../../../icons/default.xpm  $out/lib/$libDir/chrome/icons/default/
-    
-}
-
-genericBuild
diff --git a/pkgs/applications/networking/browsers/firefox/2.0.nix b/pkgs/applications/networking/browsers/firefox/2.0.nix
deleted file mode 100644
index 1d3fccefc06c..000000000000
--- a/pkgs/applications/networking/browsers/firefox/2.0.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gtk, perl, zip, libIDL, libXi
-, libjpeg, libpng, zlib, cairo
-
-, # If you want the resulting program to call itself "Firefox" instead
-  # of "Deer Park", enable this option.  However, those binaries may
-  # not be distributed without permission from the Mozilla Foundation,
-  # see http://www.mozilla.org/foundation/trademarks/.
-  enableOfficialBranding ? false
-    
-}:
-
-stdenv.mkDerivation {
-  name = "firefox-2.0.0.20";
-
-  builder = ./2.0-builder.sh;
-
-  src = fetchurl {
-    url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.20/source/firefox-2.0.0.20-source.tar.bz2;
-    sha1 = "16601fdbbb0a83b85fd053e76350f7da397f525e";
-  };
-
-  buildInputs = [
-    pkgconfig gtk perl zip libIDL libXi libjpeg libpng zlib cairo
-  ];
-
-  patches = [
-    ./writable-copies.patch
-    # Ugh, inexplicable problem since GTK+ 2.10.  Probably a Firefox
-    # bug, but I don't know.  See
-    # http://lists.gobolinux.org/pipermail/gobolinux-users/2007-January/004344.html
-    ./xlibs.patch
-  ];
-
-  configureFlags = [
-    "--enable-application=browser"
-    "--enable-optimize"
-    "--disable-debug"
-    "--enable-xft"
-    "--disable-freetype2"
-    "--enable-svg"
-    "--enable-canvas"
-    "--enable-strip"
-    "--enable-default-toolkit=gtk2"
-    "--with-system-jpeg"
-    "--with-system-png"
-    "--with-system-zlib"
-    "--enable-system-cairo"
-  ]
-  ++ (if enableOfficialBranding then ["--enable-official-branding"] else []);
-
-  meta = {
-    description = "Mozilla Firefox - the browser, reloaded";
-    homepage = http://www.mozilla.com/en-US/firefox/;
-  };
-
-  passthru = {inherit gtk;};
-}
diff --git a/pkgs/applications/networking/browsers/firefox/3.0.nix b/pkgs/applications/networking/browsers/firefox/3.6.nix
index e6da5e6f44d0..03c06e0bf372 100644
--- a/pkgs/applications/networking/browsers/firefox/3.0.nix
+++ b/pkgs/applications/networking/browsers/firefox/3.6.nix
@@ -1,24 +1,25 @@
 { stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
 , libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
-, freetype, fontconfig, file
+, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
 
 , # If you want the resulting program to call itself "Firefox" instead
-  # of "Deer Park", enable this option.  However, those binaries may
-  # not be distributed without permission from the Mozilla Foundation,
-  # see http://www.mozilla.org/foundation/trademarks/.
+  # of "Shiretoko" or whatever, enable this option.  However, those
+  # binaries may not be distributed without permission from the
+  # Mozilla Foundation, see
+  # http://www.mozilla.org/foundation/trademarks/.
   enableOfficialBranding ? false
 }:
 
 rec {
 
-  firefoxVersion = "3.0.17";
+  firefoxVersion = "3.6";
   
-  xulVersion = "1.9.0.17"; # this attribute is used by other packages
+  xulVersion = "1.9.2"; # this attribute is used by other packages
 
   
   src = fetchurl {
-    url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}-source.tar.bz2";
-    sha1 = "e4bb7daae1699f3493936ca6739512d28c7f150f";
+    url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
+    sha1 = "33226b45a0bcd795545a980cab475c5492f0ea69";
   };
 
 
@@ -29,10 +30,14 @@ rec {
       "--with-system-jpeg"
       "--with-system-zlib"
       "--with-system-bz2"
+      "--with-system-nspr"
+      #"--with-system-nss"
       # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
       "--enable-system-cairo"
       #"--enable-system-sqlite" # <-- this seems to be discouraged
       "--disable-crashreporter"
+      "--disable-tests"
+      "--disable-necko-wifi" # maybe we want to enable this at some point
     ];
 
 
@@ -45,6 +50,7 @@ rec {
       [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
         python dbus dbus_glib pango freetype fontconfig xlibs.libXi
         xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
+        alsaLib nspr /* nss */ libnotify
       ];
 
     configureFlags =
@@ -52,11 +58,14 @@ rec {
         "--disable-javaxpcom"
       ] ++ commonConfigureFlags;
 
+    # !!! Temporary hack.
+    preBuild = ''
+     export NIX_ENFORCE_PURITY=
+    '';
+
     installFlags = "SKIP_GRE_REGISTRATION=1";
 
     postInstall = ''
-      export dontPatchELF=1
-
       # Fix some references to /bin paths in the Xulrunner shell script.
       substituteInPlace $out/bin/xulrunner \
           --replace /bin/pwd "$(type -tP pwd)" \
@@ -75,7 +84,7 @@ rec {
               ln -s $i $out/bin
           fi;
       done;
-      rm $out/bin/run-mozilla.sh || true
+      rm -f $out/bin/run-mozilla.sh
     ''; # */
 
     meta = {
@@ -88,13 +97,13 @@ rec {
 
 
   firefox = stdenv.mkDerivation rec {
-    name = "firefox-3.0.11";
+    name = "firefox-${firefoxVersion}";
 
     inherit src;
 
     buildInputs =
       [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
-        dbus dbus_glib pango freetype fontconfig
+        dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
       ];
 
     propagatedBuildInputs = [xulrunner];
@@ -123,7 +132,7 @@ rec {
     };
 
     passthru = {
-      inherit gtk;
+      inherit gtk xulrunner nspr;
       isFirefox3Like = true;
     };
   };
diff --git a/pkgs/applications/science/electronics/gtkwave/default.nix b/pkgs/applications/science/electronics/gtkwave/default.nix
index c6256103d070..1630303c603b 100644
--- a/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, gtk, gperf, pkgconfig, bzip2} :
 stdenv.mkDerivation rec {
-  name = "gtkwave-3.2.3";
+  name = "gtkwave-3.3.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/gtkwave/${name}.tar.gz";
-    sha256 = "1ym8fw6cv76gn80qzh6a5y7gikqgnz65hwy0cp6p6h18i5ghgfs0";
+    sha256 = "0dccyyzk963v5nz6hxfvkcnfwm98m8d8s5x0nw6459r9683pdlri";
   };
 
   buildInputs = [ gtk gperf pkgconfig bzip2 ];
diff --git a/pkgs/applications/version-management/cvs/default.nix b/pkgs/applications/version-management/cvs/default.nix
index 80b27b8376ae..05b33f2bcf21 100644
--- a/pkgs/applications/version-management/cvs/default.nix
+++ b/pkgs/applications/version-management/cvs/default.nix
@@ -8,5 +8,16 @@ stdenv.mkDerivation {
     sha256 = "0pjir8cwn0087mxszzbsi1gyfc6373vif96cw4q3m1x6p49kd1bq";
   };
 
+  patches = [ ./getcwd-chroot.patch ];
+
+  preConfigure =
+    # Apply the Debian patches.
+    '' for p in "debian/patches/"*
+       do
+         echo "applying \`$p'..."
+         patch --verbose -p1 < "$p"
+       done
+    '';
+
   buildInputs = [ nano ];
 }
diff --git a/pkgs/applications/version-management/cvs/getcwd-chroot.patch b/pkgs/applications/version-management/cvs/getcwd-chroot.patch
new file mode 100644
index 000000000000..3f827a1e6981
--- /dev/null
+++ b/pkgs/applications/version-management/cvs/getcwd-chroot.patch
@@ -0,0 +1,302 @@
+Fix Gnulib's getcwd in chroots.
+From Debian bug #456164, http://bugs.debian.org/456164 .
+
+--- cvs-1.12.13.orig/debian/patches/20_readdir_errno
++++ cvs-1.12.13/debian/patches/20_readdir_errno
+@@ -0,0 +1,121 @@
++# From Gnulib:
++#   http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=0b78641d85af3b72e3b9d94cb7b94e45f3c08ee5
++# We don't need this directly, but it's required so that 21_getcwd_chroot
++# applies cleanly.
++#
++# 2005-10-29  Paul Eggert  <eggert@cs.ucla.edu>
++#
++# 	* getcwd.c (__getcwd): Don't assume that system calls after readdir
++# 	leave errno alone.  Problem reported by Dmitry V. Levin.
++
++--- cvs-1.12.13-old/lib/getcwd.c
+++++ cvs-1.12.13/lib/getcwd.c
++@@ -201,6 +201,8 @@ __getcwd (char *buf, size_t size)
++       ino_t dotino;
++       bool mount_point;
++       int parent_status;
+++      size_t dirroom;
+++      size_t namlen;
++ 
++       /* Look at the parent directory.  */
++ #ifdef AT_FDCWD
++@@ -241,11 +243,20 @@ __getcwd (char *buf, size_t size)
++ 	goto lose;
++       dotlist[dotlen++] = '/';
++ #endif
++-      /* Clear errno to distinguish EOF from error if readdir returns
++-	 NULL.  */
++-      __set_errno (0);
++-      while ((d = __readdir (dirstream)) != NULL)
+++      for (;;)
++ 	{
+++	  /* Clear errno to distinguish EOF from error if readdir returns
+++	     NULL.  */
+++	  __set_errno (0);
+++	  d = __readdir (dirstream);
+++	  if (d == NULL)
+++	    {
+++	      if (errno == 0)
+++		/* EOF on dirstream, which means that the current directory
+++		   has been removed.  */
+++		__set_errno (ENOENT);
+++	      goto lose;
+++	    }
++ 	  if (d->d_name[0] == '.' &&
++ 	      (d->d_name[1] == '\0' ||
++ 	       (d->d_name[1] == '.' && d->d_name[2] == '\0')))
++@@ -303,48 +314,38 @@ __getcwd (char *buf, size_t size)
++ 		break;
++ 	    }
++ 	}
++-      if (d == NULL)
++-	{
++-	  if (errno == 0)
++-	    /* EOF on dirstream, which means that the current directory
++-	       has been removed.  */
++-	    __set_errno (ENOENT);
++-	  goto lose;
++-	}
++-      else
++-	{
++-	  size_t dirroom = dirp - dir;
++-	  size_t namlen = _D_EXACT_NAMLEN (d);
++ 
++-	  if (dirroom <= namlen)
+++      dirroom = dirp - dir;
+++      namlen = _D_EXACT_NAMLEN (d);
+++
+++      if (dirroom <= namlen)
+++	{
+++	  if (size != 0)
++ 	    {
++-	      if (size != 0)
++-		{
++-		  __set_errno (ERANGE);
++-		  goto lose;
++-		}
++-	      else
++-		{
++-		  char *tmp;
++-		  size_t oldsize = allocated;
+++	      __set_errno (ERANGE);
+++	      goto lose;
+++	    }
+++	  else
+++	    {
+++	      char *tmp;
+++	      size_t oldsize = allocated;
++ 
++-		  allocated += MAX (allocated, namlen);
++-		  if (allocated < oldsize
++-		      || ! (tmp = realloc (dir, allocated)))
++-		    goto memory_exhausted;
+++	      allocated += MAX (allocated, namlen);
+++	      if (allocated < oldsize
+++		  || ! (tmp = realloc (dir, allocated)))
+++		goto memory_exhausted;
++ 
++-		  /* Move current contents up to the end of the buffer.
++-		     This is guaranteed to be non-overlapping.  */
++-		  dirp = memcpy (tmp + allocated - (oldsize - dirroom),
++-				 tmp + dirroom,
++-				 oldsize - dirroom);
++-		  dir = tmp;
++-		}
+++	      /* Move current contents up to the end of the buffer.
+++		 This is guaranteed to be non-overlapping.  */
+++	      dirp = memcpy (tmp + allocated - (oldsize - dirroom),
+++			     tmp + dirroom,
+++			     oldsize - dirroom);
+++	      dir = tmp;
++ 	    }
++-	  dirp -= namlen;
++-	  memcpy (dirp, d->d_name, namlen);
++-	  *--dirp = '/';
++ 	}
+++      dirp -= namlen;
+++      memcpy (dirp, d->d_name, namlen);
+++      *--dirp = '/';
++ 
++       thisdev = dotdev;
++       thisino = dotino;
+--- cvs-1.12.13.orig/debian/patches/21_getcwd_chroot
++++ cvs-1.12.13/debian/patches/21_getcwd_chroot
+@@ -0,0 +1,172 @@
++# From Gnulib:
++#  http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=79c0a43808d9ca85acd04600149fc1a9b75bd1b9
++#
++# 2006-07-03  Paul Eggert  <eggert@cs.ucla.edu>
++#
++# 	Merge from coreutils.
++#
++# 	2006-03-19  Jim Meyering  <jim@meyering.net>
++#
++# 	Work even in a chroot where d_ino values for entries in "/"
++# 	don't match the stat.st_ino values for the same names.
++# 	* getcwd.c (__getcwd): When no d_ino value matches the target inode
++# 	number, iterate through all entries again, using lstat instead.
++# 	Reported by Kenshi Muto in http://bugs.debian.org/355810, and by
++# 	Zouhir Hafidi in https://bugzilla.redhat.com/bugzilla/190656.
++#
++# 	* getcwd.c (__getcwd): Clarify a comment.
++# 	Use memcpy in place of a call to strcpy.
++
++--- cvs-1.12.13-old/lib/getcwd.c
+++++ cvs-1.12.13/lib/getcwd.c
++@@ -211,6 +211,7 @@ __getcwd (char *buf, size_t size)
++       int parent_status;
++       size_t dirroom;
++       size_t namlen;
+++      bool use_d_ino = true;
++ 
++       /* Look at the parent directory.  */
++ #ifdef AT_FDCWD
++@@ -257,11 +258,26 @@ __getcwd (char *buf, size_t size)
++ 	     NULL.  */
++ 	  __set_errno (0);
++ 	  d = __readdir (dirstream);
+++
+++	  /* When we've iterated through all directory entries without finding
+++	     one with a matching d_ino, rewind the stream and consider each
+++	     name again, but this time, using lstat.  This is necessary in a
+++	     chroot on at least one system (glibc-2.3.6 + linux 2.6.12), where
+++	     .., ../.., ../../.., etc. all had the same device number, yet the
+++	     d_ino values for entries in / did not match those obtained
+++	     via lstat.  */
+++	  if (d == NULL && errno == 0 && use_d_ino)
+++	    {
+++	      use_d_ino = false;
+++	      rewinddir (dirstream);
+++	      d = __readdir (dirstream);
+++	    }
+++
++ 	  if (d == NULL)
++ 	    {
++ 	      if (errno == 0)
++-		/* EOF on dirstream, which means that the current directory
++-		   has been removed.  */
+++		/* EOF on dirstream, which can mean e.g., that the current
+++		   directory has been removed.  */
++ 		__set_errno (ENOENT);
++ 	      goto lose;
++ 	    }
++@@ -269,58 +285,65 @@ __getcwd (char *buf, size_t size)
++ 	      (d->d_name[1] == '\0' ||
++ 	       (d->d_name[1] == '.' && d->d_name[2] == '\0')))
++ 	    continue;
++-	  if (MATCHING_INO (d, thisino) || mount_point)
+++
+++	  if (use_d_ino)
++ 	    {
++-	      int entry_status;
+++	      bool match = (MATCHING_INO (d, thisino) || mount_point);
+++	      if (! match)
+++		continue;
+++	    }
+++
+++	  {
+++	    int entry_status;
++ #ifdef AT_FDCWD
++-	      entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW);
+++	    entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW);
++ #else
++-	      /* Compute size needed for this file name, or for the file
++-		 name ".." in the same directory, whichever is larger.
++-	         Room for ".." might be needed the next time through
++-		 the outer loop.  */
++-	      size_t name_alloc = _D_ALLOC_NAMLEN (d);
++-	      size_t filesize = dotlen + MAX (sizeof "..", name_alloc);
++-
++-	      if (filesize < dotlen)
++-		goto memory_exhausted;
++-
++-	      if (dotsize < filesize)
++-		{
++-		  /* My, what a deep directory tree you have, Grandma.  */
++-		  size_t newsize = MAX (filesize, dotsize * 2);
++-		  size_t i;
++-		  if (newsize < dotsize)
++-		    goto memory_exhausted;
++-		  if (dotlist != dots)
++-		    free (dotlist);
++-		  dotlist = malloc (newsize);
++-		  if (dotlist == NULL)
++-		    goto lose;
++-		  dotsize = newsize;
++-
++-		  i = 0;
++-		  do
++-		    {
++-		      dotlist[i++] = '.';
++-		      dotlist[i++] = '.';
++-		      dotlist[i++] = '/';
++-		    }
++-		  while (i < dotlen);
++-		}
++-
++-	      strcpy (dotlist + dotlen, d->d_name);
++-	      entry_status = __lstat (dotlist, &st);
+++	    /* Compute size needed for this file name, or for the file
+++	       name ".." in the same directory, whichever is larger.
+++	       Room for ".." might be needed the next time through
+++	       the outer loop.  */
+++	    size_t name_alloc = _D_ALLOC_NAMLEN (d);
+++	    size_t filesize = dotlen + MAX (sizeof "..", name_alloc);
+++
+++	    if (filesize < dotlen)
+++	      goto memory_exhausted;
+++
+++	    if (dotsize < filesize)
+++	      {
+++		/* My, what a deep directory tree you have, Grandma.  */
+++		size_t newsize = MAX (filesize, dotsize * 2);
+++		size_t i;
+++		if (newsize < dotsize)
+++		  goto memory_exhausted;
+++		if (dotlist != dots)
+++		  free (dotlist);
+++		dotlist = malloc (newsize);
+++		if (dotlist == NULL)
+++		  goto lose;
+++		dotsize = newsize;
+++
+++		i = 0;
+++		do
+++		  {
+++		    dotlist[i++] = '.';
+++		    dotlist[i++] = '.';
+++		    dotlist[i++] = '/';
+++		  }
+++		while (i < dotlen);
+++	      }
+++
+++	    memcpy (dotlist + dotlen, d->d_name, _D_ALLOC_NAMLEN (d));
+++	    entry_status = __lstat (dotlist, &st);
++ #endif
++-	      /* We don't fail here if we cannot stat() a directory entry.
++-		 This can happen when (network) file systems fail.  If this
++-		 entry is in fact the one we are looking for we will find
++-		 out soon as we reach the end of the directory without
++-		 having found anything.  */
++-	      if (entry_status == 0 && S_ISDIR (st.st_mode)
++-		  && st.st_dev == thisdev && st.st_ino == thisino)
++-		break;
++-	    }
+++	    /* We don't fail here if we cannot stat() a directory entry.
+++	       This can happen when (network) file systems fail.  If this
+++	       entry is in fact the one we are looking for we will find
+++	       out soon as we reach the end of the directory without
+++	       having found anything.  */
+++	    if (entry_status == 0 && S_ISDIR (st.st_mode)
+++		&& st.st_dev == thisdev && st.st_ino == thisino)
+++	      break;
+++	  }
++ 	}
++ 
++       dirroom = dirp - dir;
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 2520a4a49e2d..3a43e4ad8128 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -17,6 +17,17 @@ rec {
     perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey subversion];
   };
 
+  # The full-featured Git.
+  gitFull = import ./git {
+    inherit fetchurl stdenv curl openssl zlib expat perl gettext
+      asciidoc texinfo xmlto docbook2x
+      docbook_xsl docbook_xml_dtd_45 libxslt
+      cpio tcl tk makeWrapper subversion;
+    svnSupport = true;
+    guiSupport = true;
+    perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey subversion];
+  };
+
   gitGit = import ./git/git-git.nix {
     inherit fetchurl sourceFromHead stdenv curl openssl zlib expat perl gettext
       asciidoc texinfo xmlto docbook2x
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index babb6aff2206..c1435b768085 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     license = "GPLv2";
-    homepage = http://git.or.cz;
+    homepage = http://git-scm.com/;
     description = "Git, a popular distributed version control system";
 
     longDescription = ''
@@ -110,5 +110,11 @@ stdenv.mkDerivation rec {
       handle very large projects with speed and efficiency.
     '';
 
+    maintainers =
+      [ # Add your name here!
+        stdenv.lib.maintainers.ludo
+      ];
+
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/applications/version-management/monotone/default.nix b/pkgs/applications/version-management/monotone/default.nix
index 263c6f139071..061f4bef3d51 100644
--- a/pkgs/applications/version-management/monotone/default.nix
+++ b/pkgs/applications/version-management/monotone/default.nix
@@ -2,13 +2,13 @@
   lua, pcre, sqlite, perl, lib}:
 
 let 
-  version = "0.45";
+  version = "0.46";
 in stdenv.mkDerivation rec {
   name = "monotone-${version}";
   inherit perl;
   src = fetchurl {
     url = "http://monotone.ca/downloads/${version}/monotone-${version}.tar.gz";
-    sha256 = "64c734274715f392eb4a879172a11c0606d37c02b4a6f23045772af5f8e2a9ec";
+    sha256 = "1pla2fvkmfbrzfbdqd2jjghldpxl9iq81pwwkwaxa7n57snbvq61";
   };
   buildInputs = [boost zlib botan libidn lua pcre sqlite];
   preConfigure = ''
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 9f2eb4b3a4c0..63d756c5807c 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -24,6 +24,104 @@ if test -n "$expHash"; then
     hash=$expHash
 fi
 
+init_remote(){
+    local url=$1;
+    git init;
+    git remote add origin $url;
+}
+
+# Return the reference of an hash if it exists on the remote repository.
+ref_from_hash(){
+    local hash=$1;
+    git ls-remote origin | sed -n "\,$hash\t, { s,\(.*\)\t\(.*\),\2,; p; q}"
+}
+
+# Return the hash of a reference if it exists on the remote repository.
+hash_from_ref(){
+    local ref=$1
+    git ls-remote origin | sed -n "\,\t$ref, { s,\(.*\)\t\(.*\),\1,; p; q}"
+}
+
+# Fetch everything and checkout the right sha1
+checkout_hash(){
+    local hash="$1";
+    local ref="$2";
+
+    if test -z "$hash"; then
+        hash=$(hash_from_ref $ref);
+    fi;
+
+    git fetch origin || return 1
+    git checkout $hash || return 1
+}
+
+# Fetch only a branch/tag and checkout it.
+checkout_ref(){
+    local hash="$1";
+    local ref="$2";
+
+    if test -n "$NIX_PREFETCH_GIT_DEEP_CLONE"; then
+	# The caller explicitly asked for a deep clone.  Deep clones
+	# allow "git describe" and similar tools to work.  See
+	# http://thread.gmane.org/gmane.linux.distributions.nixos/3569
+	# for a discussion.
+	return 1
+    fi
+
+    if test -z "$ref"; then
+        ref=$(ref_from_hash $hash);
+    fi;
+
+    if test -n "$ref"; then
+        # --depth option is ignored on http repository.
+        git fetch --depth 1 origin +"$ref" || return 1
+        git checkout FETCH_HEAD || return 1
+    else
+        return 1;
+    fi;
+}
+
+# Update submodules
+init_submodules(){
+    # Add urls into .git/config file
+    git submodule init
+
+    # list submodule directories and their hashes
+    git submodule status |
+    while read l; do
+        # checkout each submodule
+        local hash=$(echo $l | sed 's,^-\([0-9a-f]*\) \(.*\)$,\1,');
+        local dir=$(echo $l | sed 's,^-\([0-9a-f]*\) \(.*\)$,\2,');
+        local url=$(sed -n "\,$dir, { :loop; n; s,^.*url = ,,; T loop; p; q }" .git/config);
+
+        clone "$dir" "$url" "$hash" "";
+    done;
+}
+
+clone(){
+    local top=$(pwd)
+    local dir="$1"
+    local url="$2"
+    local hash="$3"
+    local ref="$4"
+
+    cd $dir;
+
+    # Initialize the repository.
+    init_remote "$url";
+
+    # Download data from the repository.
+    checkout_ref "$hash" "$ref" ||
+    checkout_hash "$hash" "$ref" || (
+        echo 1>&2 "Unable to checkout $hash$ref from $url.";
+        exit 1;
+    )
+
+    # Checkout linked sources.
+    init_submodules;
+
+    cd $top;
+}
 
 # If we don't know the hash or a path with that hash doesn't exist,
 # download the file and add it to the store.
@@ -31,23 +129,31 @@ if test -z "$finalPath"; then
 
     tmpPath=/tmp/git-checkout-tmp-$$
     tmpFile=$tmpPath/git-export
-    mkdir $tmpPath
+    mkdir $tmpPath $tmpFile
 
     trap "rm -rf $tmpPath" EXIT
 
     # Perform the checkout.
-    git clone "$url" $tmpFile 1>&2
-    if test -n "$rev"; then
-      cd $tmpFile
-      echo $tmpFile >&2
-      git checkout $rev 1>&2
-    fi
+    case "$rev" in
+        HEAD|refs/*)
+            clone "$tmpFile" "$url" "" "$rev" 1>&2;;
+        [0-9a-f]*)
+            if test -z "$(echo $rev | tr -d 0123456789abcdef)"; then
+                clone "$tmpFile" "$url" "$rev" "" 1>&2;
+            else
+                echo 1>&2 "Bad commit hash or bad reference.";
+                exit 1;
+            fi;;
+        "")
+            clone "$tmpFile" "$url" "" "HEAD" 1>&2;;
+    esac
+
     # Allow doing additional processing before .git removal
     eval "$NIX_PREFETCH_GIT_CHECKOUT_HOOK"
     if test "$NIX_PREFETCH_GIT_LEAVE_DOT_GIT" != 1
     then
 	echo "removing \`.git'..." >&2
-	rm -rf .git
+	rm -rf $tmpFile/.git
     fi
 
     # Compute the hash.
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index fa33bd3d369b..8e0818662aa1 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -14,7 +14,7 @@ rec {
 
   modulesClosure = makeModulesClosure {
     inherit kernel;
-    rootModules = ["cifs" "virtio_net" "virtio_pci" "virtio_blk" "virtio_balloon" "nls_utf8" "ext2" "unix"];
+    rootModules = ["cifs" "virtio_net" "virtio_pci" "virtio_blk" "virtio_balloon" "nls_utf8" "ext2" "ext3" "unix"];
   };
 
 
diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix
new file mode 100644
index 000000000000..f981c79b6922
--- /dev/null
+++ b/pkgs/data/misc/cacert/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "cacert-20090922";
+
+  src = fetchurl {
+    url = http://nixos.org/tarballs/cacert-20090922.pem.bz2;
+    sha256 = "1fakipxy5y62vslw6czj24pksh16b042py9v0199mxhzg5nmbmy7";
+  };
+
+  unpackPhase = "true";
+
+  installPhase =
+    ''
+      ensureDir $out/etc
+      bunzip2 < $src > $out/etc/ca-bundle.crt
+    '';
+
+  meta = {
+    homepage = http://curl.haxx.se/docs/caextract.html;
+    description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
+  };
+}
diff --git a/pkgs/desktops/gnome-2.28/default.nix b/pkgs/desktops/gnome-2.28/default.nix
index dfc637551f85..cfc1b1579779 100644
--- a/pkgs/desktops/gnome-2.28/default.nix
+++ b/pkgs/desktops/gnome-2.28/default.nix
@@ -11,8 +11,6 @@ rec {
   gnomeicontheme = gnome_icon_theme;
 
   # !!! Missing! Need to add these.
-  libgnomeprint = throw "libgnomeprint not implemented";
-  libgtkhtml = throw "libgtkhtml not implemented";
   vte = throw "vte not implemented";
   gtksourceview_24 = gtksourceview;
 
@@ -47,6 +45,23 @@ rec {
     inherit (pkgs) stdenv fetchurl pkgconfig libxml2 python gettext;
     inherit (pkgs.gtkLibs) gtk;
   };
+
+  libgnomeprint = import ./platform/libgnomeprint {
+    inherit intltool libart_lgpl libgnomecups;
+    inherit (pkgs) stdenv fetchurl pkgconfig gettext libxml2 bison flex;
+    inherit (pkgs.gtkLibs) gtk;
+  };
+
+  libgnomecups = import ./platform/libgnomecups {
+    inherit intltool libart_lgpl;
+    inherit (pkgs) stdenv fetchurl pkgconfig gettext libxml2;
+    inherit (pkgs.gtkLibs) gtk;
+  };
+
+  libgtkhtml = import ./platform/libgtkhtml {
+    inherit (pkgs) stdenv fetchurl pkgconfig gettext libxml2;
+    inherit (pkgs.gtkLibs) gtk;
+  };
   
   intltool = import ./platform/intltool {
     inherit (pkgs) stdenv fetchurl pkgconfig perl perlXMLParser gettext;
@@ -126,6 +141,13 @@ rec {
 
   # What name should we use??
   gtkdoc = gtk_doc; 
+
+  gtkhtml = import ./platform/gtkhtml {
+    inherit (pkgs.gtkLibs) gtk;
+    inherit (pkgs) fetchurl stdenv pkgconfig intltool enchant isocodes;
+    inherit GConf gnome_icon_theme;
+  };
+
   
   # Freedesktop library
   startup_notification = import ./platform/startup-notification {
diff --git a/pkgs/desktops/gnome-2.28/platform/gtkhtml/default.nix b/pkgs/desktops/gnome-2.28/platform/gtkhtml/default.nix
new file mode 100644
index 000000000000..e4ced2247a5d
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/gtkhtml/default.nix
@@ -0,0 +1,13 @@
+{ stdenv, fetchurl, pkgconfig, gtk, intltool,
+GConf, enchant, isocodes, gnome_icon_theme }:
+
+stdenv.mkDerivation rec {
+  name = "gtkhtml-3.29.5";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtkhtml/3.29/${name}.tar.bz2";
+    sha256 = "0abd91isqbriq9nclq14275v2xd0r9vrr3sxhxwxxp02m8gskwvd";
+  };
+
+  buildInputs = [pkgconfig gtk intltool GConf enchant isocodes gnome_icon_theme ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libgnomecups/default.nix b/pkgs/desktops/gnome-2.28/platform/libgnomecups/default.nix
new file mode 100644
index 000000000000..ec276578cb64
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libgnomecups/default.nix
@@ -0,0 +1,13 @@
+{stdenv, fetchurl, pkgconfig, gtk, gettext, libxml2, intltool, libart_lgpl }:
+
+stdenv.mkDerivation {
+  name = "libgnomecups-0.2.3";
+  
+  src = fetchurl {
+    url = mirror://gnome/sources/libgnomecups/0.2/libgnomecups-0.2.3.tar.bz2;
+    sha256 = "0a8xdaxzz2wc0n1fjcav65093gixzyac3948l8cxx1mk884yhc71";
+  };
+  
+  buildInputs = [ pkgconfig gtk gettext intltool libart_lgpl ];
+  propagatedBuildInputs = [ libxml2 ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libgnomeprint/default.nix b/pkgs/desktops/gnome-2.28/platform/libgnomeprint/default.nix
new file mode 100644
index 000000000000..3fa902c67e6f
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libgnomeprint/default.nix
@@ -0,0 +1,14 @@
+{stdenv, fetchurl, pkgconfig, gtk, gettext, libxml2, intltool, libart_lgpl, libgnomecups, bison,
+flex }:
+
+stdenv.mkDerivation {
+  name = "libgnomeprint-2.11.1";
+  
+  src = fetchurl {
+    url = mirror://gnome/sources/libgnomeprint/2.18/libgnomeprint-2.18.6.tar.bz2;
+    sha256 = "15c00ya2mx0x4mh8lyy3xg9dd66z5yjnax74bqx99zd90sar10fg";
+  };
+  
+  buildInputs = [ pkgconfig gtk gettext intltool libart_lgpl libgnomecups bison flex ];
+  propagatedBuildInputs = [ libxml2 ];
+}
diff --git a/pkgs/desktops/gnome-2.28/platform/libgtkhtml/default.nix b/pkgs/desktops/gnome-2.28/platform/libgtkhtml/default.nix
new file mode 100644
index 000000000000..6aab400c60ae
--- /dev/null
+++ b/pkgs/desktops/gnome-2.28/platform/libgtkhtml/default.nix
@@ -0,0 +1,13 @@
+{stdenv, fetchurl, pkgconfig, gtk, gettext, libxml2 }:
+
+stdenv.mkDerivation {
+  name = "libgtkhtml-2.11.1";
+  
+  src = fetchurl {
+    url = mirror://gnome/sources/libgtkhtml/2.11/libgtkhtml-2.11.1.tar.bz2;
+    sha256 = "0msajafd42545dxzyr5zqka990cjrxw2yz09ajv4zs8m1w6pm9rw";
+  };
+  
+  buildInputs = [ pkgconfig gtk gettext ];
+  propagatedBuildInputs = [ libxml2 ];
+}
diff --git a/pkgs/desktops/kde-4.3/default.nix b/pkgs/desktops/kde-4.3/default.nix
index 9a3968fe7807..48ba9fc65a32 100644
--- a/pkgs/desktops/kde-4.3/default.nix
+++ b/pkgs/desktops/kde-4.3/default.nix
@@ -56,7 +56,8 @@ pkgs.recurseIntoAttrs (rec {
 ### LIBS
   kdelibs = import ./libs {
     inherit (pkgs) stdenv fetchurl lib cmake qt4 perl bzip2 pcre fam libxml2 libxslt;
-    inherit (pkgs) xz flex bison giflib jasper openexr aspell avahi shared_mime_info;
+    inherit (pkgs) xz flex bison giflib jasper openexr aspell avahi shared_mime_info
+      kerberos acl attr;
     inherit automoc4 phonon strigi soprano;
   };
 
@@ -218,6 +219,12 @@ pkgs.recurseIntoAttrs (rec {
     inherit automoc4 phonon strigi soprano qca2;
   };
 
+  digikam = import ./extragear/digikam {
+    inherit (pkgs) stdenv fetchurl lib cmake qt4 lcms jasper libgphoto2 gettext;
+    inherit kdelibs kdepimlibs kdegraphics;
+    inherit automoc4 phonon qimageblitz qca2 eigen;
+  };
+
   filelight = import ./extragear/filelight {
     inherit (pkgs) stdenv fetchurl lib cmake qt4 perl;
     inherit kdelibs kdebase_workspace;
@@ -229,6 +236,12 @@ pkgs.recurseIntoAttrs (rec {
     inherit kdelibs;
     inherit automoc4 phonon;
   };
+
+  kipiplugins = import ./extragear/kipi-plugins {
+    inherit (pkgs) stdenv fetchurl lib cmake qt4 libxml2 libxslt gettext;
+    inherit kdelibs kdepimlibs kdegraphics;
+    inherit automoc4 phonon qimageblitz qca2;
+  };
   
   kmplayer = import ./extragear/kmplayer {
     inherit (pkgs) stdenv fetchurl lib cmake qt4 perl gettext dbus_glib;
diff --git a/pkgs/desktops/kde-4.3/extragear/digikam/default.nix b/pkgs/desktops/kde-4.3/extragear/digikam/default.nix
new file mode 100644
index 000000000000..abf78cd9c62c
--- /dev/null
+++ b/pkgs/desktops/kde-4.3/extragear/digikam/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, lib, cmake, qt4, kdelibs, automoc4, phonon, qimageblitz, qca2, eigen,
+kdegraphics, lcms, jasper, libgphoto2, kdepimlibs, gettext}:
+
+stdenv.mkDerivation {
+  name = "digikam-1.0.0";
+
+  src = fetchurl { 
+    url = mirror://sourceforge/digikam/digikam-1.0.0.tar.bz2;
+    sha256 = "0qblqyjn0vas8hyqn5s9rr401d93cagk53y3j8kch0mr0bk706bk";
+  };
+
+  includeAllQtDirs=true;
+  buildInputs = [ cmake qt4 kdelibs kdegraphics automoc4 phonon qimageblitz qca2 eigen
+    lcms jasper libgphoto2 kdepimlibs gettext ];
+  CMAKE_PREFIX_PATH = kdepimlibs;
+  cmakeFlags = [ "-DGETTEXT_INCLUDE_DIR=${gettext}/include" ];
+  meta = {
+    description = "Photo Management Program";
+    license = "GPL";
+    homepage = http://www.koffice.org;
+    maintainers = [ lib.maintainers.viric ];
+    platforms = with lib.platforms; linux;
+  };
+}
diff --git a/pkgs/desktops/kde-4.3/extragear/kipi-plugins/default.nix b/pkgs/desktops/kde-4.3/extragear/kipi-plugins/default.nix
new file mode 100644
index 000000000000..e4930c1c704d
--- /dev/null
+++ b/pkgs/desktops/kde-4.3/extragear/kipi-plugins/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, lib, cmake, qt4, kdelibs, automoc4, phonon, qimageblitz, qca2,
+kdegraphics, kdepimlibs, libxml2, libxslt, gettext}:
+
+stdenv.mkDerivation {
+  name = "kipi-plugins-0.9.0";
+
+  src = fetchurl { 
+    url = mirror://sourceforge/kipi/kipi-plugins-0.9.0.tar.bz2;
+    sha256 = "0wx1r607q8i4v55k8qjzz7wn8rfd86nniq3h3s7dgnddq7x17fqn";
+  };
+
+  includeAllQtDirs=true;
+  buildInputs = [ cmake qt4 kdelibs kdegraphics automoc4 phonon qimageblitz qca2 kdepimlibs 
+    libxml2 libxslt gettext ];
+  CMAKE_PREFIX_PATH = kdepimlibs;
+  cmakeFlags = [ "-DGETTEXT_INCLUDE_DIR=${gettext}/include" ];
+  meta = {
+    description = "Photo Management Program";
+    license = "GPL";
+    homepage = http://www.koffice.org;
+    maintainers = [ lib.maintainers.viric ];
+    platforms = with lib.platforms; linux;
+  };
+}
diff --git a/pkgs/desktops/kde-4.3/extragear/krusader/default.nix b/pkgs/desktops/kde-4.3/extragear/krusader/default.nix
index 773f741bb7ab..7b2926fd2221 100644
--- a/pkgs/desktops/kde-4.3/extragear/krusader/default.nix
+++ b/pkgs/desktops/kde-4.3/extragear/krusader/default.nix
@@ -8,6 +8,7 @@ stdenv.mkDerivation {
   };
   includeAllQtDirs=true;
   buildInputs = [ cmake qt4 perl gettext kdelibs automoc4 phonon ];
+  patches = [./krusader-gcc44.patch];
   meta = {
     description = "Norton/Total Commander clone for KDE";
     license = "GPL";
diff --git a/pkgs/desktops/kde-4.3/extragear/krusader/krusader-gcc44.patch b/pkgs/desktops/kde-4.3/extragear/krusader/krusader-gcc44.patch
new file mode 100644
index 000000000000..f8840d5f33c6
--- /dev/null
+++ b/pkgs/desktops/kde-4.3/extragear/krusader/krusader-gcc44.patch
@@ -0,0 +1,10 @@
+--- krusader-2.0.0/krusader/VFS/kiojobwrapper.cpp~	2009-04-29 17:13:43.000000000 +0000
++++ krusader-2.0.0/krusader/VFS/kiojobwrapper.cpp	2009-04-29 17:14:01.000000000 +0000
+@@ -37,6 +37,7 @@
+ #include <kio/jobuidelegate.h>
+ #include <kio/job.h>
+ #include <qapplication.h>
++#include <cstdio>
+ #include <iostream>
+ #include <klocale.h>
+ #include "virtualcopyjob.h"
diff --git a/pkgs/desktops/kde-4.3/libs/default.nix b/pkgs/desktops/kde-4.3/libs/default.nix
index a9ee9ef19aac..c37bda037128 100644
--- a/pkgs/desktops/kde-4.3/libs/default.nix
+++ b/pkgs/desktops/kde-4.3/libs/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, cmake, lib, perl
 , qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
-, xz, flex, bison, openexr, aspell, avahi
+, xz, flex, bison, openexr, aspell, avahi, kerberos, acl, attr
 , automoc4, phonon, strigi, soprano
 }:
 
@@ -16,9 +16,12 @@ stdenv.mkDerivation {
 
   buildInputs = [
     cmake perl qt4 stdenv.gcc.libc xz flex bison bzip2 pcre fam libxml2 libxslt
-    shared_mime_info giflib jasper /* openexr */ aspell avahi
+    shared_mime_info giflib jasper /* openexr */ aspell avahi kerberos acl attr
     automoc4 phonon strigi soprano
   ];
+
+  # I don't know why cmake does not find the acl files (but finds attr files)
+  cmakeFlags = [ "-DHAVE_ACL_LIBACL_H=ON" "-DHAVE_SYS_ACL_H=ON" ];
   
   meta = {
     description = "KDE libraries";
diff --git a/pkgs/development/compilers/ecl/default.nix b/pkgs/development/compilers/ecl/default.nix
new file mode 100644
index 000000000000..2571c09a224b
--- /dev/null
+++ b/pkgs/development/compilers/ecl/default.nix
@@ -0,0 +1,26 @@
+a :  
+let 
+  s = import ./src-for-default.nix;
+  buildInputs = with a; [
+    gmp mpfr
+  ];
+in
+rec {
+  src = a.fetchUrlFromSrcInfo s;
+
+  inherit (s) name;
+  inherit buildInputs;
+  configureFlags = [];
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "A Lisp implementation aiming to be small and fast";
+    maintainers = [
+      a.lib.maintainers.raskin
+    ];
+    platforms = with a.lib.platforms; 
+      linux;
+  };
+}
diff --git a/pkgs/development/compilers/ecl/src-for-default.nix b/pkgs/development/compilers/ecl/src-for-default.nix
new file mode 100644
index 000000000000..8e1753cb41fa
--- /dev/null
+++ b/pkgs/development/compilers/ecl/src-for-default.nix
@@ -0,0 +1,9 @@
+rec {
+   version="9.6.2";
+   name="ecl-9.6.2";
+   hash="1847ppfrgfpjwc9qlfcvvsfhkarjz339qzh9mb0fwnqfihrbqpfy";
+   url="http://downloads.sourceforge.net/ecls/files/ecls/9.6.0/ecl-${version}.tar.gz";
+   advertisedUrl="http://downloads.sourceforge.net/ecls/files/ecls/9.6.0/ecl-9.6.2.tar.gz";
+  
+  
+}
diff --git a/pkgs/development/compilers/ecl/src-info-for-default.nix b/pkgs/development/compilers/ecl/src-info-for-default.nix
new file mode 100644
index 000000000000..84be3b3f5273
--- /dev/null
+++ b/pkgs/development/compilers/ecl/src-info-for-default.nix
@@ -0,0 +1,5 @@
+{
+  downloadPage = "http://sourceforge.net/projects/ecls/files/";
+  baseName = "ecl";
+  choiceCommand = "head -1 | sed -e 's@/download@@;'\"$skipRedirectSF\"";
+}
diff --git a/pkgs/development/interpreters/acl2/default.nix b/pkgs/development/interpreters/acl2/default.nix
index 959cd50aae6e..6cad083ac853 100644
--- a/pkgs/development/interpreters/acl2/default.nix
+++ b/pkgs/development/interpreters/acl2/default.nix
@@ -35,7 +35,11 @@ rec {
   name = "acl2-" + version;
   meta = {
     description = "An interpreter and a prover for a Lisp dialect";
-    maintainers = [
+    maintainers = with a.lib.maintainers; 
+    [
+      raskin
     ];
+    platforms = with a.lib.platforms;
+      linux;
   };
 }
diff --git a/pkgs/development/interpreters/guile/1.9.nix b/pkgs/development/interpreters/guile/1.9.nix
index 27e412484056..37773043bda2 100644
--- a/pkgs/development/interpreters/guile/1.9.nix
+++ b/pkgs/development/interpreters/guile/1.9.nix
@@ -7,10 +7,11 @@
  else stdenv.mkDerivation)
 
 rec {
-  name = "guile-1.9.6";  # This is an alpha release!
+  name = "guile-1.9.7";  # This is a beta release!
+
   src = fetchurl {
     url = "ftp://alpha.gnu.org/gnu/guile/${name}.tar.gz";
-    sha256 = "1cfhzm9az1wbq0741v98af09v7f3094ym727qjfgj8n9jyxvpxnw";
+    sha256 = "1jyvckid3wjx82717fy1018qpdnglawv29r4wbv239cva8gv5nbr";
   };
 
   buildInputs = [ makeWrapper gawk readline libtool libunistring pkgconfig ];
diff --git a/pkgs/development/libraries/chmlib/default.nix b/pkgs/development/libraries/chmlib/default.nix
index 4f27a133c99e..319892237aeb 100644
--- a/pkgs/development/libraries/chmlib/default.nix
+++ b/pkgs/development/libraries/chmlib/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "chmlib-0.39";
+  name = "chmlib-0.40";
   
   src = fetchurl {
     url = "${meta.homepage}/${name}.tar.bz2";
-    sha256 = "0hgzw121ffmk79wbpkd0394y5ah99c3i85z6scp958mmkr25sc6j";
+    sha256 = "18zzb4x3z0d7fjh1x5439bs62dmgsi4c1pg3qyr7h5gp1i5xcj9l";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix
index 82925d144b5b..ff3baabe339a 100644
--- a/pkgs/development/libraries/glew/default.nix
+++ b/pkgs/development/libraries/glew/default.nix
@@ -1,10 +1,10 @@
 args: with args;
 stdenv.mkDerivation {
-  name = "glew-1.5.0";
+  name = "glew-1.5.2";
 
   src = fetchurl {
-    url = http://dfn.dl.sourceforge.net/sourceforge/glew/glew-1.5.0-src.tgz;
-    sha256 = "1kjr1fchnl785wsg11vzc03q3pm12lh20n1i593zr1xqfjgx2b4h";
+    url = http://dfn.dl.sourceforge.net/sourceforge/glew/glew-1.5.2.tgz;
+    sha256 = "0dh5wpfq7aaldkiwcqmm9w59c2qcglkjv8zazmnm8n5771n3caj8";
   };
 
   buildInputs = [mesa x11 libXmu libXi];
diff --git a/pkgs/development/libraries/haskell/cabal/cabal.nix b/pkgs/development/libraries/haskell/cabal/cabal.nix
index f6220cb0fb3b..5b9ac3da9b6e 100644
--- a/pkgs/development/libraries/haskell/cabal/cabal.nix
+++ b/pkgs/development/libraries/haskell/cabal/cabal.nix
@@ -67,7 +67,7 @@ attrs :
               ./Setup build
 
               export GHC_PACKAGE_PATH=$(ghc-packages)
-              ./Setup haddock
+              [ -n "$noHadock" ] || ./Setup haddock
 
               eval "$postBuild"
             '';
diff --git a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
index 784fe915814f..6df06579942e 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.0";
-  sha256 = "0ddf5ff41e59d8a777942f821170f1e6c7373712b029261a7efbc16fa663b671";
+  version = "2.3.1";
+  sha256 = "63ed4257f360a861b13f3e0edad6c17bbad90a0e3e031de49ed4d13a1ace98d2";
   meta = {
     description = "New version of the Utrecht University parser combinator library";
   };
diff --git a/pkgs/development/libraries/levmar/default.nix b/pkgs/development/libraries/levmar/default.nix
new file mode 100644
index 000000000000..a17cdf0b4d58
--- /dev/null
+++ b/pkgs/development/libraries/levmar/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+        
+stdenv.mkDerivation rec {
+  name = "levmar-2.5";
+
+  src = fetchurl {
+    url = "http://www.ics.forth.gr/~lourakis/levmar/${name}.tgz";
+    sha256 = "0xcx9fvymr0j5kmfy5cqaa2lxf1c64vv25z2a28w43pkxz1nl3xp";
+  };
+
+  patchPhase = ''
+    sed -i 's/define HAVE_LAPACK/undef HAVE_LAPACK/' levmar.h
+    sed -i 's/LAPACKLIBS=.*/LAPACKLIBS=/' Makefile
+  '';
+
+  installPhase = ''
+    ensureDir $out/include $out/lib
+    cp lm.h $out/include
+    cp liblevmar.a $out/lib
+  '';
+
+  meta = { 
+    description = "ANSI C implementations of Levenberg-Marquardt, usable also from C++";
+    homepage = http://www.ics.forth.gr/~lourakis/levmar/;
+    license = "GPLv2+";
+  };
+}
+
diff --git a/pkgs/development/libraries/levmar/use-atlas.patch b/pkgs/development/libraries/levmar/use-atlas.patch
new file mode 100644
index 000000000000..2be9999b40ff
--- /dev/null
+++ b/pkgs/development/libraries/levmar/use-atlas.patch
@@ -0,0 +1,37 @@
+diff --git a/Makefile b/Makefile
+index af70b4c..53c6fab 100644
+--- a/Makefile
++++ b/Makefile
+@@ -15,11 +15,11 @@ DEMOBJS=lmdemo.o
+ DEMOSRCS=lmdemo.c
+ AR=ar
+ RANLIB=ranlib
+-LAPACKLIBS=-llapack -lblas -lf2c # comment this line if you are not using LAPACK.
++#LAPACKLIBS=-llapack -lblas -lf2c # comment this line if you are not using LAPACK.
+                                  # On systems with a FORTRAN (not f2c'ed) version of LAPACK, -lf2c is
+                                  # not necessary; on others, -lf2c is equivalent to -lF77 -lI77
+ 
+-#LAPACKLIBS=-L/usr/local/atlas/lib -llapack -lcblas -lf77blas -latlas -lf2c # This works with the ATLAS updated lapack and Linux_P4SSE2
++LAPACKLIBS=-llapack -lcblas -lf77blas -latlas -lgfortran # This works with the ATLAS updated lapack and Linux_P4SSE2
+                                                                             # from http://www.netlib.org/atlas/archives/linux/
+ 
+ #LAPACKLIBS=-llapack -lgoto2 -lpthread -lf2c # This works with GotoBLAS
+diff --git a/misc.h b/misc.h
+index e32f18d..827507e 100644
+--- a/misc.h
++++ b/misc.h
+@@ -30,11 +30,11 @@
+ /* f2c'd BLAS */
+ //#define LM_BLAS_PREFIX f2c_
+ /* C BLAS */
+-//#define LM_BLAS_PREFIX cblas_
++#define LM_BLAS_PREFIX cblas_
+ 
+ /* common suffix for BLAS subroutines */
+-//#define LM_BLAS_SUFFIX  // define empty if a f2c_ or cblas_ prefix was defined for LM_BLAS_PREFIX above
+-#define LM_BLAS_SUFFIX _ // use this in case of no BLAS prefix
++#define LM_BLAS_SUFFIX  // define empty if a f2c_ or cblas_ prefix was defined for LM_BLAS_PREFIX above
++//#define LM_BLAS_SUFFIX _ // use this in case of no BLAS prefix
+ 
+ 
+ #define LCAT_(a, b)    #a b
diff --git a/pkgs/development/libraries/lib3ds/default.nix b/pkgs/development/libraries/lib3ds/default.nix
index 82367600467f..a470dac24e16 100644
--- a/pkgs/development/libraries/lib3ds/default.nix
+++ b/pkgs/development/libraries/lib3ds/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   name = "lib3ds-1.3.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/lib3ds/${name}.zip";
+    url = "http://lib3ds.googlecode.com/files/${name}.zip";
     sha256 = "1qr9arfdkjf7q11xhvxwzmhxqz3nhcjkyb8zzfjpz9jm54q0rc7m";
   };
 
diff --git a/pkgs/development/libraries/libiptcdata/default.nix b/pkgs/development/libraries/libiptcdata/default.nix
new file mode 100644
index 000000000000..1094a4e75919
--- /dev/null
+++ b/pkgs/development/libraries/libiptcdata/default.nix
@@ -0,0 +1,16 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "libiptcdata-1.0.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libiptcdata/${name}.tar.gz";
+    sha256 = "03pfvkmmx762iydq0q207x2028d275pbdysfsgpmrr0ywy63pxkr";
+  };
+
+  meta = {
+    description = "Library for reading and writing the IPTC metadata in images and other files";
+    homepage = http://libiptcdata.sourceforge.net/;
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/libnotify/default.nix b/pkgs/development/libraries/libnotify/default.nix
index 8b58fe857e9d..7bfd8c05104b 100644
--- a/pkgs/development/libraries/libnotify/default.nix
+++ b/pkgs/development/libraries/libnotify/default.nix
@@ -1,17 +1,17 @@
-args: with args;
+{ stdenv, fetchurl, pkgconfig, dbus, dbus_glib, gtk, glib }:
  
-stdenv.mkDerivation {
-  name = "libnotify-0.4.4";
-  #builder = ./builder.sh;
+stdenv.mkDerivation rec {
+  name = "libnotify-0.4.5";
 
   src = fetchurl {
-    url = http://www.galago-project.org/files/releases/source/libnotify/libnotify-0.4.4.tar.gz;
-    sha256 = "2389a9b8220f776033f728a8d46352cfee5c8705066e34887bfb188f9f0d3856";
+    url = "http://www.galago-project.org/files/releases/source/libnotify/${name}.tar.gz";
+    sha256 = "1ndh7wpm9qh12vm5avjrq2xv1j681j9qq6j2fyj6a2shl67dp687";
   };
 
-  buildInputs = [
-    pkgconfig dbus.libs dbus_glib gtk glib
-  ];
+  buildInputs = [ pkgconfig dbus.libs dbus_glib gtk glib ];
 
-  configureFlags="";
+  meta = {
+    homepage = http://galago-project.org/;
+    description = "A library that sends desktop notifications to a notification daemon";
+  };
 }
diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix
index e70bdd23dc1d..e259c7b6e439 100644
--- a/pkgs/development/libraries/libtasn1/default.nix
+++ b/pkgs/development/libraries/libtasn1/default.nix
@@ -1,15 +1,26 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "libtasn1-2.4";
 
-stdenv.mkDerivation {
-  name = "libtasn1-1.5";
-  
   src = fetchurl {
-    url = mirror://gnu/gnutls/libtasn1-1.5.tar.gz;
-    sha256 = "1p4m9in144ypk6ndqw46sfz0njx6wccp0zlxjvigxry8034zbn6s";
+    url = "mirror://gnu/libtasn1/${name}.tar.gz";
+    sha256 = "03qz9wnx3643wvy10603syx97mi634z6bhdwznzmqcsq6hwg5g69";
   };
 
   meta = {
-    homepage = http://josefsson.org/libtasn1/;
-    description = "An ASN.1 library";
+    homepage = http://www.gnu.org/software/libtasn1/;
+    description = "GNU Libtasn1, an ASN.1 library";
+
+    longDescription =
+      '' Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and some
+         other packages.  The goal of this implementation is to be highly
+         portable, and only require an ANSI C89 platform.
+      '';
+
+    license = "LGPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/qhull/default.nix b/pkgs/development/libraries/qhull/default.nix
index 522c0cb75358..f91697fb117a 100644
--- a/pkgs/development/libraries/qhull/default.nix
+++ b/pkgs/development/libraries/qhull/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "qhull-2003.1";
+  name = "qhull-2010.1";
   src = fetchurl {
-    url = http://www.qhull.org/download/qhull-2003.1-src.tgz;
-    sha256 = "1ah6yhh8qxqmvjcpmijibxcw8gjwvdcrb9g7j2rkawazq95a2j0s";
+    url = http://www.qhull.org/download/qhull-2010.1-src.tgz;
+    sha256 = "1ghnwci1s56yzzwg8gmlzhsd5v3imsqxf24yb0j5m6qv8kxqaw2m";
   };
 
   NIX_CFLAGS_COMPILE = "-fno-strict-aliasing " +
diff --git a/pkgs/development/libraries/qt-4.5/default.nix b/pkgs/development/libraries/qt-4.5/default.nix
index e19edae3bdbc..d7d69a3fa8e5 100644
--- a/pkgs/development/libraries/qt-4.5/default.nix
+++ b/pkgs/development/libraries/qt-4.5/default.nix
@@ -44,6 +44,11 @@ stdenv.mkDerivation {
     libtiff
   ];
   
+  # libQtNetwork will call libQtCore for it to dlopen openssl.
+  NIX_LDFLAGS = "-rpath ${openssl}/lib";
+  # Don't shrink the rpath, to keep ${openssl} in it.
+  dontPatchELF = 1;
+
   prefixKey = "-prefix ";
 
   configureFlags = ''
diff --git a/pkgs/development/libraries/qt-4.6/default.nix b/pkgs/development/libraries/qt-4.6/default.nix
index 284760537b4c..014ae8505c49 100644
--- a/pkgs/development/libraries/qt-4.6/default.nix
+++ b/pkgs/development/libraries/qt-4.6/default.nix
@@ -5,11 +5,11 @@
 , buildDemos ? false, buildExamples ? false, keepDocumentation ? false}:
 
 stdenv.mkDerivation {
-  name = "qt-4.6.0";
+  name = "qt-4.6.1";
   
   src = fetchurl {
-    url = ftp://ftp.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.0.tar.gz;
-    sha256 = "12c5s9am0wd7a9fkpgizssv21hq17vra46j4ply3ixi46f0rq9am";
+    url = ftp://ftp.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.1.tar.gz;
+    sha256 = "1id05qfxn5rxds3yngn3nbd7dnjmvmhzgjf0x568aii5iadv712c";
   };
   
   setupHook = ./setup-hook.sh;
diff --git a/pkgs/development/tools/misc/distcc/20-minute-io-timeout.patch b/pkgs/development/tools/misc/distcc/20-minute-io-timeout.patch
new file mode 100644
index 000000000000..175060137fda
--- /dev/null
+++ b/pkgs/development/tools/misc/distcc/20-minute-io-timeout.patch
@@ -0,0 +1,12 @@
+diff -ubr distcc-3.1-orig/src/io.c distcc-3.1-patched/src/io.c
+--- distcc-3.1-orig/src/io.c	2008-12-02 22:50:25.000000000 +0100
++++ distcc-3.1-patched/src/io.c	2010-01-07 15:07:18.000000000 +0100
+@@ -64,7 +64,7 @@
+ 
+ /** Timeout for all IO other than opening connections.  Much longer, because
+  * compiling files can take a long time. **/
+-const int dcc_io_timeout = 300; /* seconds */
++const int dcc_io_timeout = 1200; /* seconds */
+ 
+ 
+ /**
diff --git a/pkgs/development/tools/misc/distcc/default.nix b/pkgs/development/tools/misc/distcc/default.nix
index 03fc9badb055..a46c007cf31d 100644
--- a/pkgs/development/tools/misc/distcc/default.nix
+++ b/pkgs/development/tools/misc/distcc/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, popt, avahi, pkgconfig, python, gtk}:
+{stdenv, fetchurl, popt, avahi, pkgconfig, python, gtk, static ? false}:
 
 let name        = "distcc";
     version     = "3.1";
@@ -15,13 +15,15 @@ stdenv.mkDerivation {
   ''
     configureFlagsArray=( CFLAGS="-O2 -fno-strict-aliasing"
                           CXXFLAGS="-O2 -fno-strict-aliasing"
-                          --with${if popt == null then "" else "out"}-included-popt
+                          ${if static then "LDFLAGS=-static" else ""}
+                          --with${if static == true || popt == null then "" else "out"}-included-popt
                           --with${if avahi != null then "" else "out"}-avahi
                           --with${if gtk != null then "" else "out"}-gtk
                           --without-gnome
                           --enable-rfc2553
                          )
   '';
+  patches = [ ./20-minute-io-timeout.patch ];
 
   # The test suite fails because it uses hard-coded paths, i.e. /usr/bin/gcc.
   doCheck = false;
diff --git a/pkgs/development/tools/misc/gengetopt/default.nix b/pkgs/development/tools/misc/gengetopt/default.nix
new file mode 100644
index 000000000000..7d5f47dba397
--- /dev/null
+++ b/pkgs/development/tools/misc/gengetopt/default.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "gengetopt-2.22.4";
+
+  src = fetchurl {
+    url = "mirror://gnu/gengetopt/${name}.tar.gz";
+    sha256 = "08a4wmzvin8ljdgw2c0mcz654h4hpzam2p43hsf951c0xhj6ppsf";
+  };
+
+  doCheck = true;
+
+  meta = {
+    description = "GNU Gengetopt, a command-line option parser generator";
+
+    longDescription =
+      '' GNU Gengetopt program generates a C function that uses getopt_long
+         function to parse the command line options, to validate them and
+         fills a struct
+      '';
+
+    homepage = http://www.gnu.org/software/gengetopt/;
+
+    license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/os-specific/linux/kbd/default.nix b/pkgs/os-specific/linux/kbd/default.nix
index b7dd81c03785..39d14b569f2f 100644
--- a/pkgs/os-specific/linux/kbd/default.nix
+++ b/pkgs/os-specific/linux/kbd/default.nix
@@ -1,14 +1,22 @@
-{stdenv, fetchurl, bison, flex}:
+{ stdenv, fetchurl, bison, flex, autoconf, automake }:
 
 stdenv.mkDerivation rec {
-  name = "kbd-1.15";
+  name = "kbd-1.15.1";
 
   src = fetchurl {
     url = "ftp://ftp.altlinux.org/pub/people/legion/kbd/${name}.tar.gz";
-    sha256 = "1h2klv4sxf0j08fzlpki2zf7f4k7m0j1d0ca01a1bsd8yza0l39d";
+    sha256 = "1klrxas8vjikx6jm6m2lcpmn88lhxb6p3whwgdwq9d9flf1qrf4i";
   };
 
-  buildInputs = [bison flex];
+  buildInputs = [ bison flex autoconf automake  ];
+
+  # Grrr, kbd 1.15.1 doesn't include a configure script.
+  preConfigure = "autoreconf";
 
   makeFlags = "setowner= ";
+
+  meta = {
+    homepage = ftp://ftp.altlinux.org/pub/people/legion/kbd/;
+    description = "Linux keyboard utilities and keyboard maps";
+  };
 }
diff --git a/pkgs/os-specific/linux/kernel/config-blocks.nix b/pkgs/os-specific/linux/kernel/config-blocks.nix
index 1564b0d6161c..f30bc486f5b7 100644
--- a/pkgs/os-specific/linux/kernel/config-blocks.nix
+++ b/pkgs/os-specific/linux/kernel/config-blocks.nix
@@ -254,4 +254,10 @@ rec {
         HZ_300 y
         HZ 300
       '';
+
+      forceCFSched = ''
+        SCHED_CFS? y
+        SCHED_BFS? n
+        NO_HZ? y
+      '';
 }
diff --git a/pkgs/os-specific/linux/keyutils/default.nix b/pkgs/os-specific/linux/keyutils/default.nix
new file mode 100644
index 000000000000..43c580c2528f
--- /dev/null
+++ b/pkgs/os-specific/linux/keyutils/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "keyutils-1.2";
+  
+  src = fetchurl {
+    url = http://people.redhat.com/dhowells/keyutils/keyutils-1.2.tar.bz2;
+    sha256 = "0gcv47crbaw6crgn02j1w75mknhnwgkhmfcmwq2qi9iwiwprnv9h";
+  };
+
+  patchPhase = ''
+    sed -i -e "s, /etc, $out/etc," \
+        -e "s, /bin, $out/bin," \
+        -e "s, /sbin, $out/sbin," \
+        -e "s, /lib, $out/lib," \
+        -e "s,/usr,$out," \
+        Makefile
+  '';
+  
+  meta = {
+    homepage = http://people.redhat.com/dhowells/keyutils/;
+    description = "Tools used to control the Linux kernel key management system";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/os-specific/linux/zen-kernel/2.6.32-zen4.nix b/pkgs/os-specific/linux/zen-kernel/2.6.32-zen4.nix
index c5dc6a3b18ba..ec52d701df5a 100644
--- a/pkgs/os-specific/linux/zen-kernel/2.6.32-zen4.nix
+++ b/pkgs/os-specific/linux/zen-kernel/2.6.32-zen4.nix
@@ -57,7 +57,7 @@ import ../kernel/generic.nix (
       ${blockDevices}
       ${bluetooth}
       ${misc}
-      ${if stdenv.lib.attrByPath ["features" "ckSched"] false args then bfsched else ""}
+      ${if stdenv.lib.attrByPath ["features" "ckSched"] false args then bfsched else forceCFSched}
     '';
 
     preConfigure = ''
diff --git a/pkgs/tools/cd-dvd/mkisofs/default.nix b/pkgs/tools/cd-dvd/mkisofs/default.nix
new file mode 100644
index 000000000000..255e7467def4
--- /dev/null
+++ b/pkgs/tools/cd-dvd/mkisofs/default.nix
@@ -0,0 +1,25 @@
+{ fetchurl, stdenv, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "mkisofs-1.13";
+
+  src = fetchurl {
+    url = "mirror://gnu/isofsmk/${name}.tar.gz";
+    sha256 = "13f8zynl64aaqjgxf0m1m2gbizdh7ndicg5d1bm6s0x97bqifrfn";
+  };
+
+  buildInputs = [ gettext ];
+
+  doCheck = true;
+
+  meta = {
+    homepage = http://savannah.gnu.org/projects/isofsmk;
+
+    description = "GNU mkisofs, an ISO 9660 filesystem builder";
+
+    license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/filesystems/genext2fs/default.nix b/pkgs/tools/filesystems/genext2fs/default.nix
index d58167ab8473..7f7d956afd2f 100644
--- a/pkgs/tools/filesystems/genext2fs/default.nix
+++ b/pkgs/tools/filesystems/genext2fs/default.nix
@@ -1,9 +1,15 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation {
   name = "genext2fs-1.4.1";
+  
   src = fetchurl {
     url = mirror://sourceforge/genext2fs/genext2fs-1.4.1.tar.gz;
     sha256 = "1z7czvsf3ircvz2cw1cf53yifsq29ljxmj15hbgc79l6gbxbnka0";
   };
+
+  meta = {
+    homepage = http://genext2fs.sourceforge.net/;
+    description = "A tool to generate ext2 filesystem images without requiring root privileges";
+  };
 }
diff --git a/pkgs/tools/misc/w3c-css-validator/default.nix b/pkgs/tools/misc/w3c-css-validator/default.nix
new file mode 100644
index 000000000000..dd4e8bbfd9ae
--- /dev/null
+++ b/pkgs/tools/misc/w3c-css-validator/default.nix
@@ -0,0 +1,79 @@
+args: with args;
+
+let 
+
+    inherit (args.stdenv) lib;
+
+    sources = [
+      (fetchurl {
+        name = "jigsaw_2.2.6.tar.gz";
+        url="http://jigsaw.w3.org/Distrib/jigsaw_2.2.6.tar.gz";
+        sha256 = "01cjpqjcs8gbvvzy0f488cb552f9b38hvwr97wydglrzndmcwypd";
+      })
+      (fetchurl {
+        name = "commons-collectionurl3.2.1-bin.tar.gz";
+        url="http://www.apache.org/dist/commons/collections/binaries/commons-collections-3.2.1-bin.tar.gz";
+        sha256 = "7843f8307495b2be446353b10c25218793b776fa3e22615a1f50f067d81713ce";
+      })
+      (fetchurl {
+        name = "commons-lang-2.4-bin.tar.gz";
+        url="http://www.apache.org/dist/commons/lang/binaries/commons-lang-2.4-bin.tar.gz";
+        sha256 = "0phwlgnvwj3n3j1aka2pkm0biacvgs72qc0ldir6s69i9qbv7rh0";
+      })
+
+      (fetchurl {
+        name = "velocity-1.6.1.tar.gz";
+        url="http://www.apache.org/dist/velocity/engine/1.6.1/velocity-1.6.1.tar.gz";
+        sha256 = "125s8yp8whx947kahm902wc49ms44knxdj6yfskhpk0a8h0rz9jm";
+      })
+      (fetchurl {
+        name = "Xerces-J-bin.2.9.1.tar.gz";
+        url="http://www.apache.org/dist/xerces/j/Xerces-J-bin.2.9.1.tar.gz";
+        sha256 = "1xlrrznfgdars0a9m9z5k9q8arbqskdfdfjx4s0pp52wn3r0gbns";
+      })
+    ];
+
+in
+
+stdenv.mkDerivation  {
+  name = "w3c-css-validator";
+
+  # REGION AUTO UPDATE:       { name="w3c-css-validator"; type="cvs"; cvsRoot=":pserver:anonymous:anonymous@dev.w3.org:/sources/public"; module="2002/css-validator"; }
+  src = sourceFromHead "w3c-css-validator-F_17-52-37.tar.gz"
+               (fetchurl { url = "http://mawercer.de/~nix/repos/w3c-css-validator-F_17-52-37.tar.gz"; sha256 = "b6f05d4812eaa464906d101242689effa8b5516d32d6420315740a77d8ee11fd"; });
+  # END
+
+  buildInputs = [apacheAnt];
+
+  # prepare target downloads dependency .tar.gz into tmp
+  # note: There is a .war as well which could be deployed to tomcat
+  installPhase = ''
+    cd css-validator
+    mkdir tmp
+    ${ lib.concatStringsSep "\n" (map (src: "tar xfz ${src} -C tmp") sources) }
+    sed -i -e 's@<property name="servlet.lib" value=".*"/>@<property name="servlet.lib" value="${tomcat}/lib/servlet-api.jar"/>@' \
+          -e '/dest="tmp\//d' \
+          -e '/untar/d' \
+          build.xml
+    ant
+    ensureDir $out/{bin,lib}
+    JAR=$out/lib/css-validator.jar
+    cat >> $out/bin/css-validator << EOF
+    #!/bin/sh
+    exec ${jre}/bin/java -jar $JAR "\$@"
+    EOF
+    chmod +x $out/bin/css-validator
+    cp css-validator.jar $out/lib
+    cp -r lib $out/lib/lib
+  '';
+
+  meta = {
+      description = "w3c CSS validator";
+      homepage = http://dev.w3.org/cvsweb/2002/css-validator/;
+      # dependencies ship their own license files
+      # I think all .java files are covered by this license (?)
+      license = "w3c"; # http://www.w3.org/Consortium/Legal/ 
+      maintainers = [args.lib.maintainers.marcweber];
+      platforms = args.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/swec/default.nix b/pkgs/tools/networking/swec/default.nix
new file mode 100644
index 000000000000..4cb47fada061
--- /dev/null
+++ b/pkgs/tools/networking/swec/default.nix
@@ -0,0 +1,73 @@
+{ fetchurl, stdenv, makeWrapper, perl, LWP, URI, HTMLParser
+, HTTPServerSimple, Parent }:
+
+stdenv.mkDerivation rec {
+  name = "swec-0.4";
+
+  src = fetchurl {
+    url = "http://random.zerodogg.org/files/${name}.tar.bz2";
+    sha256 = "1m3971z4z1wr0paggprfz0n8ng8vsnkc9m6s3bdplgyz7qjk6jwx";
+  };
+
+  buildInputs = [ makeWrapper perl LWP URI HTMLParser ]
+   ++ stdenv.lib.optional doCheck [ HTTPServerSimple Parent ];
+
+  configurePhase =
+    '' for i in swec tests/{runTests,testServer}
+       do
+         sed -i "$i" -e's|/usr/bin/perl|${perl}/bin/perl|g'
+       done
+    '';
+
+  buildPhase  = "true";
+  installPhase =
+    '' make install prefix="$out"
+
+       ensureDir "$out/share/${name}"
+       cp -v default.sdf "$out/share/${name}"
+       sed -i "$out/bin/swec" -e"s|realpath(\$0)|'$out/share/${name}/swec'|g"
+
+       wrapProgram "$out/bin/swec" \
+         --prefix PERL5LIB : \
+         ${stdenv.lib.concatStringsSep ":"
+             (map (x: "${x}/lib/perl5/site_perl") [ LWP URI HTMLParser ])}
+    '';
+
+  doCheck = true;
+  checkPhase = "make test";
+
+  meta = {
+    homepage = http://random.zerodogg.org/swec/;
+
+    description = "Simple Web Error Checker (SWEC)";
+
+    longDescription =
+      '' SWEC (Simple Web Error Checker) is a program that automates testing
+         of dynamic websites.  It parses each HTML file it finds for links,
+         and if those links are within the site specified (ie. local, not
+         external), it will check that page as well.  In this respect it
+         works a lot like a crawler, in that it'll click on any link it finds
+         (more notes about this later).
+
+         In addition to parsing and locating links, it will also parse the
+         pages looking for known errors and report those (such as Mason or
+         PHP errors), and will report if a page can not be read (by either
+         returning a 404, 500 or similar).
+
+         Since you may often want SWEC to be logged in on your site, you have
+         to be careful.  When logged in, SWEC will still click on all links
+         it finds, including things like 'join group' or 'delete account'
+         (though it has some magic trying to avoid the latter).  Therefore it
+         is highly recommended that when you run SWEC as a logged-in user on
+         a site, use a test server, not the live one.
+
+         Running SWEC on a live site without being logged in as a user is
+         perfectly fine, it won't do anything a normal crawler wouldn't do
+         (well, not exactly true, SWEC will ignore robots.txt).
+      '';
+
+    license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+  };
+}
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index bf1b00ace704..131dcfc77198 100644
--- a/pkgs/tools/package-management/nix/unstable.nix
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-0.14pre19016";
+  name = "nix-0.14pre19652";
   
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/191984/download/4/${name}.tar.bz2";
-    sha256 = "998d550ff2420d3fe2fdac498136f228845064f4c70fe730410431985a1b5012";
+    url = "http://hydra.nixos.org/build/259251/download/4/${name}.tar.bz2";
+    sha256 = "e96d5e2cc7a86aea0d06f0d81395290d0c259004cc8a56d9eec203d5bb1a9d71";
   };
 
   buildInputs = [perl curl openssl];
diff --git a/pkgs/tools/security/ecryptfs/default.nix b/pkgs/tools/security/ecryptfs/default.nix
new file mode 100644
index 000000000000..d1ed6f420ec3
--- /dev/null
+++ b/pkgs/tools/security/ecryptfs/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, fuse, python, perl, keyutils, pam, nss, nspr}:
+stdenv.mkDerivation {
+  name = "ecryptfs-82";
+
+  src = fetchurl {
+    url = http://launchpad.net/ecryptfs/trunk/82/+download/ecryptfs-utils_82.orig.tar.gz;
+    sha256 = "1w3swispgp71prz8h56hqby2wwnvam5vllqvc69rn8cf605i69a6";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss";
+
+  buildInputs = [ python perl keyutils pam nss nspr ];
+
+  meta = {
+    description = "Enterprise-class stacked cryptographic filesystem";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/tools/system/ipmitool/default.nix b/pkgs/tools/system/ipmitool/default.nix
new file mode 100644
index 000000000000..87b77a483e38
--- /dev/null
+++ b/pkgs/tools/system/ipmitool/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, openssl }:
+
+let
+  pkgname = "ipmitool";
+  version = "1.8.9";
+in
+stdenv.mkDerivation {
+  name = "${pkgname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pkgname}/${pkgname}-${version}.tar.gz";
+    sha256 = "1d6bf2595d1fd0dbef206c300cc666d3d079548ba97f727077d61c4736a7e63a";
+  };
+
+  buildInputs = [ openssl ];
+
+  meta = {
+    description = ''Command-line interface to IPMI-enabled devices'';
+    license = "BSD";
+    homepage = "http://ipmitool.sourceforge.net";
+  };
+}
diff --git a/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix b/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
index 58a833a33eae..e5114ddaed6a 100644
--- a/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
+++ b/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
@@ -10,6 +10,14 @@ stdenv.mkDerivation {
     sha256 = "2a7c848abea286234adcbb08938cfad50b844ecdfc7770e781289d9d396a1972";
   };
 
+  # Amazon EC2 requires that disk images are writable.  If they're
+  # not, the VM immediately terminates with a mysterious
+  # "Server.InternalError" message.  Since disk images generated in
+  # the Nix store are read-only, they must be made writable in the
+  # tarball uploaded to Amazon S3.  So add a `--mode=0755' flag to the
+  # tar invocation.
+  patches = [ ./writable.patch ];
+
   installPhase =
     ''
       ensureDir $out
diff --git a/pkgs/tools/virtualization/amazon-ec2-ami-tools/writable.patch b/pkgs/tools/virtualization/amazon-ec2-ami-tools/writable.patch
new file mode 100644
index 000000000000..c8d0597b4799
--- /dev/null
+++ b/pkgs/tools/virtualization/amazon-ec2-ami-tools/writable.patch
@@ -0,0 +1,33 @@
+diff -rc --exclude '*~' ec2-ami-tools-1.3-45758-orig/lib/ec2/amitools/bundle.rb ec2-ami-tools-1.3-45758/lib/ec2/amitools/bundle.rb
+*** ec2-ami-tools-1.3-45758-orig/lib/ec2/amitools/bundle.rb	2009-12-02 22:28:44.000000000 +0100
+--- ec2-ami-tools-1.3-45758/lib/ec2/amitools/bundle.rb	2010-01-22 16:16:13.000000000 +0100
+***************
+*** 80,86 ****
+        # piped via several processes. The tee is used to allow a
+        # digest of the file to be calculated without having to re-read
+        # it from disk.
+!       tar = EC2::Platform::Current::Tar::Command.new.create.dereference.sparse
+        tar.add(File::basename( image_file ), File::dirname( image_file ))
+        openssl = EC2::Platform::Current::Constants::Utility::OPENSSL
+        pipeline = EC2::Platform::Current::Pipeline.new('image-bundle-pipeline', debug)
+--- 80,86 ----
+        # piped via several processes. The tee is used to allow a
+        # digest of the file to be calculated without having to re-read
+        # it from disk.
+!       tar = EC2::Platform::Current::Tar::Command.new.create.dereference.sparse.writable
+        tar.add(File::basename( image_file ), File::dirname( image_file ))
+        openssl = EC2::Platform::Current::Constants::Utility::OPENSSL
+        pipeline = EC2::Platform::Current::Pipeline.new('image-bundle-pipeline', debug)
+diff -rc --exclude '*~' ec2-ami-tools-1.3-45758-orig/lib/ec2/platform/linux/tar.rb ec2-ami-tools-1.3-45758/lib/ec2/platform/linux/tar.rb
+*** ec2-ami-tools-1.3-45758-orig/lib/ec2/platform/linux/tar.rb	2009-12-02 22:28:44.000000000 +0100
+--- ec2-ami-tools-1.3-45758/lib/ec2/platform/linux/tar.rb	2010-01-22 16:16:11.000000000 +0100
+***************
+*** 31,36 ****
+--- 31,37 ----
+            def update;         @options << '-u';          self; end
+            def sparse;         @options << '-S';          self; end
+            def dereference;    @options << '-h';          self; end
++           def writable;       @options << '--mode=0755'; self; end
+            
+            def archive(filename)
+              filename = '-' if filename.nil? 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6d2ec6406a34..100e07f01528 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -625,6 +625,10 @@ let
     inherit fetchurl stdenv pkgconfig libuuid;
   };
 
+  ecryptfs = import ../tools/security/ecryptfs {
+    inherit fetchurl stdenv fuse python perl keyutils pam nss nspr;
+  };
+
   enblendenfuse = import ../tools/graphics/enblend-enfuse {
     inherit fetchurl stdenv libtiff libpng lcms libxmi boost;
   };
@@ -733,6 +737,10 @@ let
     inherit fetchurl stdenv;
   };
 
+  gengetopt = import ../development/tools/misc/gengetopt {
+    inherit fetchurl stdenv;
+  };
+
   getopt = import ../tools/misc/getopt {
     inherit fetchurl stdenv;
   };
@@ -916,6 +924,10 @@ let
     inherit fetchurl stdenv;
   };
 
+  ipmitool = import ../tools/system/ipmitool {
+    inherit fetchurl stdenv openssl;
+  };
+
   jdiskreport = import ../tools/misc/jdiskreport {
     inherit fetchurl stdenv unzip jdk;
   };
@@ -1038,6 +1050,10 @@ let
     inherit (xlibs) libX11;
   };
 
+  mkisofs = import ../tools/cd-dvd/mkisofs {
+    inherit fetchurl stdenv gettext;
+  };
+
   mktemp = import ../tools/security/mktemp {
     inherit fetchurl stdenv;
   };
@@ -1529,6 +1545,11 @@ let
     inherit fetchurl stdenv pam;
   };
 
+  swec = import ../tools/networking/swec {
+    inherit fetchurl stdenv makeWrapper perl;
+    inherit (perlPackages) LWP URI HTMLParser HTTPServerSimple Parent;
+  };
+
   system_config_printer = import ../tools/misc/system-config-printer {
     inherit stdenv fetchurl perl perlXMLParser desktop_file_utils;
   };
@@ -1671,6 +1692,11 @@ let
     inherit fetchurl stdenv automake autoconf libtool;
   };
 
+  w3cCSSValidator = import ../tools/misc/w3c-css-validator {
+    inherit fetchurl stdenv apacheAnt jre sourceFromHead lib;
+    tomcat = tomcat6;
+  };
+
   wdfs = import ../tools/filesystems/wdfs {
     inherit stdenv fetchurl neon fuse pkgconfig glib;
   };
@@ -1813,6 +1839,10 @@ let
       };
   };
 
+  ecl = builderDefsPackage ../development/compilers/ecl {
+    inherit gmp mpfr;
+  };
+
   adobeFlexSDK33 = import ../development/compilers/adobe-flex-sdk {
     inherit fetchurl stdenv unzip jre;
   };
@@ -2842,10 +2872,12 @@ let
   };
 
   distcc = import ../development/tools/misc/distcc {
-    inherit fetchurl stdenv popt python;
+    inherit fetchurl stdenv popt;
+    python = if getPkgConfig "distcc" "python" true then python else null;
     avahi = if getPkgConfig "distcc" "avahi" false then avahi else null;
     pkgconfig = if getPkgConfig "distcc" "gtk" false then pkgconfig else null;
     gtk = if getPkgConfig "distcc" "gtk" false then gtkLibs.gtk else null;
+    static = getPkgConfig "distcc" "static" false;
   };
 
   docutils = builderDefsPackage (import ../development/tools/documentation/docutils) {
@@ -3967,6 +3999,10 @@ let
     inherit (xlibs) libXp libXau;
   };
 
+  levmar = import ../development/libraries/levmar {
+    inherit fetchurl stdenv;
+  };
+
   lib3ds = import ../development/libraries/lib3ds {
     inherit fetchurl stdenv unzip;
   };
@@ -4166,6 +4202,10 @@ let
     inherit fetchurl stdenv pkgconfig libraw1394;
   };
 
+  libiptcdata = import ../development/libraries/libiptcdata {
+    inherit fetchurl stdenv;
+  };
+
   libjingle = import ../development/libraries/libjingle/0.3.11.nix {
     inherit fetchurl stdenv mediastreamer;
   };
@@ -5689,7 +5729,7 @@ let
   };
 
   kbd = import ../os-specific/linux/kbd {
-    inherit fetchurl stdenv bison flex;
+    inherit fetchurl stdenv bison flex autoconf automake;
   };
 
   linuxHeaders = linuxHeaders_2_6_28;
@@ -5929,6 +5969,10 @@ let
     inherit fetchurl stdenv perl mktemp module_init_tools;
   });
 
+  keyutils = import ../os-specific/linux/keyutils {
+    inherit fetchurl stdenv;
+  };
+
   libselinux = import ../os-specific/linux/libselinux {
     inherit fetchurl stdenv libsepol;
   };
@@ -6299,6 +6343,10 @@ let
     inherit fetchurl stdenv;
   };
 
+  cacert = import ../data/misc/cacert {
+    inherit fetchurl stdenv;
+  };
+
   corefonts = import ../data/fonts/corefonts {
     inherit fetchurl stdenv cabextract;
   };
@@ -6788,6 +6836,12 @@ let
     inherit (gtkLibs) gtk glib;
   };
 
+  digikam = import ../applications/graphics/digikam {
+    inherit stdenv fetchurl exiv2 zlib libjpeg perl libpng expat qt3 cmake;
+    inherit (kde3) kdelibs;
+    inherit (xlibs) libXt libXext;
+  };
+
   djvulibre = import ../applications/misc/djvulibre {
     inherit stdenv fetchurl libjpeg libtiff libungif zlib
       ghostscript libpng x11 mesa;
@@ -6959,6 +7013,11 @@ let
   emacs22Packages = emacsPackages emacs22;
   emacs23Packages = emacsPackages emacs23;
 
+  epdfview = import ../applications/misc/epdfview {
+    inherit stdenv fetchurl pkgconfig poppler;
+    inherit (gtkLibs) gtk;
+  };
+
   evince = makeOverridable (import ../applications/misc/evince) {
     inherit fetchurl stdenv perl perlXMLParser gettext intltool
       pkgconfig poppler libspectre djvulibre libxslt
@@ -7022,38 +7081,28 @@ let
 
   firefoxWrapper = firefox35Wrapper;
 
-  firefox2 = lowPrio (import ../applications/networking/browsers/firefox/2.0.nix {
-    inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo;
-    inherit (gtkLibs) gtk;
-    inherit (gnome) libIDL;
-    inherit (xlibs) libXi;
-  });
-
-  firefox2Wrapper = wrapFirefox firefox2 "firefox" "";
-
-  firefox3Pkgs = lowPrio (import ../applications/networking/browsers/firefox/3.0.nix {
-    inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo
-      python dbus dbus_glib freetype fontconfig bzip2 xlibs file;
-    inherit (gtkLibs) gtk pango;
-    inherit (gnome) libIDL;
-  });
-
-  firefox3 = firefox3Pkgs.firefox;
-  xulrunner3 = firefox3Pkgs.xulrunner;
-  firefox3Wrapper = wrapFirefox firefox3 "firefox" "";
-
-  firefox35Pkgs = lowPrio (import ../applications/networking/browsers/firefox/3.5.nix {
+  firefox35Pkgs = import ../applications/networking/browsers/firefox/3.5.nix {
     inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo
       python dbus dbus_glib freetype fontconfig bzip2 xlibs file alsaLib
       nspr nss;
     inherit (gtkLibs) gtk pango;
     inherit (gnome) libIDL;
-  });
+  };
 
   firefox35 = firefox35Pkgs.firefox;
   xulrunner35 = firefox35Pkgs.xulrunner;
   firefox35Wrapper = wrapFirefox firefox35 "firefox" "";
 
+  firefox36Pkgs = import ../applications/networking/browsers/firefox/3.6.nix {
+    inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo
+      python dbus dbus_glib freetype fontconfig bzip2 xlibs file alsaLib
+      nspr nss libnotify;
+    inherit (gtkLibs) gtk pango;
+    inherit (gnome) libIDL;
+  };
+
+  firefox36Wrapper = lowPrio (wrapFirefox firefox36Pkgs.firefox "firefox" "");
+  
   flac = import ../applications/audio/flac {
     inherit fetchurl stdenv libogg;
   };
@@ -7063,7 +7112,7 @@ let
   flashplayer9 = (
     import ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
       inherit fetchurl stdenv zlib alsaLib nss nspr fontconfig freetype expat;
-      inherit (xlibs) libX11 libXext libXrender libXt ;
+      inherit (xlibs) libX11 libXext libXrender libXt;
       inherit (gtkLibs) gtk glib pango atk;
     });
 
@@ -7119,6 +7168,7 @@ let
     inherit pkgs;
   });
   git = gitAndTools.git;
+  gitFull = gitAndTools.gitFull;
 
   gnucash = import ../applications/office/gnucash {
     inherit fetchurl stdenv pkgconfig libxml2 goffice enchant
@@ -7457,7 +7507,7 @@ let
   };
 
   meshlab = import ../applications/graphics/meshlab {
-    inherit fetchurl stdenv bzip2;
+    inherit fetchurl stdenv bzip2 lib3ds levmar muparser unzip;
     qt = qt4;
   };
 
@@ -7707,6 +7757,12 @@ let
       libXtst xextproto libXi;
   };
 
+  rawtherapee = import ../applications/graphics/rawtherapee {
+    inherit fetchsvn stdenv pkgconfig cmake lcms libiptcdata;
+    inherit (gtkLibs) gtk gtkmm;
+    inherit (xlibs) libXau libXdmcp pixman libpthreadstubs;
+  };
+
   rcs = import ../applications/version-management/rcs {
     inherit fetchurl stdenv;
   };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index ecc056d90172..b4b166092900 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -1852,6 +1852,14 @@ rec {
     propagatedBuildInputs = [UNIVERSALrequire];
   };
 
+  PadWalker = buildPerlPackage rec {
+    name = "PadWalker-1.9";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROBIN/${name}.tar.gz";
+      sha256 = "0lvh0qlyrpnkssqkhfxhbjpb5lyr4fp6d1p7la8k6w3wv1qmbl1s";
+    };
+  };
+
   Perl6Junction = buildPerlPackage rec {
     name = "Perl6-Junction-1.40000";
     src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index ca6ce2af42f4..feae42220102 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -80,6 +80,9 @@ rec {
 
     propagatedBuildInputs = [ twisted pkgs.pyopenssl ];
 
+    # For some reason "python setup.py test" doesn't work with Python 2.6.
+    doCheck = false;
+
     meta = {
       homepage = http://foolscap.lothar.com/;
 
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 0f7377b43114..3e8df1b6eda2 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -183,9 +183,6 @@ in {
   feh = linux;
   file = all;
   findutils = all;
-  firefox2 = linux;
-  firefox3 = prio 150 linux;
-  firefox35 = linux;
   flex = all;
   flex2535 = all;
   fontforge = linux;
@@ -205,6 +202,7 @@ in {
   ghostscriptX = linux;
   gimp = linux;
   git = linux;
+  gitFull = linux;
   glibc = linux;
   glibcLocales = linux;
   glxinfo = linux;
@@ -228,6 +226,7 @@ in {
   gqview = gtkSupported;
   graphviz = all;
   grub = linux;
+  grub2 = linux;
   gsl = linux;
   guile = linux;  # tests fail on Cygwin
   guileLib = linux;
@@ -244,6 +243,7 @@ in {
   hugin = linux;
   iana_etc = linux;
   icecat3Xul = linux;
+  icewm = linux;
   idutils = all;
   ifplugd = linux;
   imagemagick = allBut "i686-cygwin";
@@ -483,6 +483,14 @@ in {
     jdee = linux;
   };
 
+  firefox35Pkgs = {
+    firefox = prio 150 linux;
+  };
+  
+  firefox36Pkgs = {
+    firefox = linux;
+  };
+  
   gnome = {
     gnome_panel = linux;
     metacity = linux;