about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-01-29 16:33:02 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-01-29 16:33:02 +0000
commitc584bb878a9bf394835cffc2b08ce9f24b5d4735 (patch)
tree9da69b906c1e4ce030f214a50d6077f3f3a95de4
parente8a9844354f2ec561a4f668438ea2ed306c73e9f (diff)
parentedc5cdaf98c7f1e5965bf99ed1529f95a76ce5a5 (diff)
downloadnixlib-c584bb878a9bf394835cffc2b08ce9f24b5d4735.tar
nixlib-c584bb878a9bf394835cffc2b08ce9f24b5d4735.tar.gz
nixlib-c584bb878a9bf394835cffc2b08ce9f24b5d4735.tar.bz2
nixlib-c584bb878a9bf394835cffc2b08ce9f24b5d4735.tar.lz
nixlib-c584bb878a9bf394835cffc2b08ce9f24b5d4735.tar.xz
nixlib-c584bb878a9bf394835cffc2b08ce9f24b5d4735.tar.zst
nixlib-c584bb878a9bf394835cffc2b08ce9f24b5d4735.zip
* Sync with trunk.
svn path=/nixpkgs/branches/stdenv-updates/; revision=13903
-rw-r--r--pkgs/applications/graphics/ImageMagick/default.nix4
-rw-r--r--pkgs/applications/graphics/inkscape/configure-python-libs.patch4
-rw-r--r--pkgs/applications/graphics/inkscape/default.nix5
-rw-r--r--pkgs/applications/graphics/inkscape/libpng-setjmp.patch62
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/default.nix10
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix6
-rw-r--r--pkgs/applications/networking/yafc/default.nix20
-rw-r--r--pkgs/applications/office/abiword/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix71
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix (renamed from pkgs/applications/version-management/git/default.nix)0
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/docbook2texi-2.patch28
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch (renamed from pkgs/applications/version-management/git/docbook2texi.patch)0
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/git-git.nix (renamed from pkgs/applications/version-management/git/git-git.nix)7
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/glob-path.patch (renamed from pkgs/applications/version-management/git/glob-path.patch)0
-rw-r--r--pkgs/applications/version-management/git-and-tools/hg2git/default.nix26
-rw-r--r--pkgs/applications/version-management/git-and-tools/qgit/default.nix (renamed from pkgs/applications/version-management/qgit/default.nix)0
-rw-r--r--pkgs/applications/version-management/git-and-tools/qgit/qgit-git.nix17
-rw-r--r--pkgs/applications/version-management/git-and-tools/stgit/default.nix (renamed from pkgs/applications/version-management/stgit/default.nix)0
-rw-r--r--pkgs/applications/version-management/subversion-1.5.x/default.nix6
-rw-r--r--pkgs/applications/virtualization/virtualbox/2.1.2.nix47
-rw-r--r--pkgs/desktops/enlightenment/default.nix29
-rw-r--r--pkgs/development/compilers/dev86/default.nix18
-rw-r--r--pkgs/development/compilers/ghc-6.8/ghc-6.8.2.nix9
-rw-r--r--pkgs/development/compilers/iasl/default.nix27
-rw-r--r--pkgs/development/libraries/adns/default.nix5
-rw-r--r--pkgs/development/libraries/cairo/default.nix33
-rw-r--r--pkgs/development/libraries/cairomm/default.nix28
-rw-r--r--pkgs/development/libraries/gtk-libs/2.14/atk/default.nix30
-rw-r--r--pkgs/development/libraries/gtk-libs/2.14/default.nix21
-rw-r--r--pkgs/development/libraries/gtk-libs/2.14/glib/default.nix27
-rw-r--r--pkgs/development/libraries/gtk-libs/2.14/glibmm/default.nix21
-rw-r--r--pkgs/development/libraries/gtk-libs/2.14/gtk+/default.nix37
-rw-r--r--pkgs/development/libraries/gtk-libs/2.14/gtkmm/default.nix31
-rw-r--r--pkgs/development/libraries/gtk-libs/2.14/pango/default.nix29
-rw-r--r--pkgs/development/libraries/libcanberra/default.nix31
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix4
-rw-r--r--pkgs/development/libraries/libvorbis/default.nix3
-rw-r--r--pkgs/development/libraries/opencascade/default.nix18
-rw-r--r--pkgs/development/libraries/wxGTK-2.8/default.nix8
-rw-r--r--pkgs/development/tools/cdecl/cdecl-2.5.patch64
-rw-r--r--pkgs/development/tools/cdecl/default.nix19
-rw-r--r--pkgs/development/tools/parsing/ragel/default.nix44
-rw-r--r--pkgs/games/sgt-puzzles/default.nix4
-rw-r--r--pkgs/lib/composable-derivation.nix5
-rw-r--r--pkgs/lib/default.nix197
-rw-r--r--pkgs/misc/bleeding-edge-fetch-infos.nix20
-rw-r--r--pkgs/misc/ghostscript/builder.sh3
-rw-r--r--pkgs/misc/ghostscript/default.nix11
-rw-r--r--pkgs/os-specific/linux/alsa/1.0.19.nix14
-rw-r--r--pkgs/os-specific/linux/alsa/common.nix11
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.27.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.28.nix4
-rw-r--r--pkgs/os-specific/linux/klibc/default.nix40
-rw-r--r--pkgs/os-specific/linux/mingetty/builder.sh8
-rw-r--r--pkgs/os-specific/linux/mingetty/default.nix18
-rw-r--r--pkgs/os-specific/linux/mingetty/makefile.patch20
-rw-r--r--pkgs/os-specific/linux/splashutils/1.3.nix2
-rw-r--r--pkgs/os-specific/linux/splashutils/1.5.nix2
-rw-r--r--pkgs/os-specific/linux/splashutils/no-fbsplash.patch88
-rw-r--r--pkgs/servers/dict/1.9.15.nix2
-rw-r--r--pkgs/servers/pulseaudio/default.nix14
-rw-r--r--pkgs/servers/samba/default.nix6
-rw-r--r--pkgs/servers/x11/xorg/default.nix12
-rw-r--r--pkgs/stdenv/linux/test.nix11
-rw-r--r--pkgs/top-level/all-packages.nix178
-rw-r--r--pkgs/top-level/build-for-release.nix13
67 files changed, 1256 insertions, 290 deletions
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index 1050332cc287..e5a57dd6db9e 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -1,13 +1,13 @@
 args: with args;
 
-let version = "6.4.1-1"; in
+let version = "6.4.8-9"; in
 
 stdenv.mkDerivation (rec {
   name = "ImageMagick-${version}";
 
   src = fetchurl {
     url = "mirror://imagemagick/${name}.tar.bz2";
-    sha256 = "0a8defbfa867bb5e969f898d9a3b65a8c4f6952cb71411b40f005dd0a183644e";
+    sha256 = "1ngfs99wryrc7v5pqrjbcrvhsilc29iaj6zplzxm450f49xmpidq";
   };
 
   configureFlags = ''
diff --git a/pkgs/applications/graphics/inkscape/configure-python-libs.patch b/pkgs/applications/graphics/inkscape/configure-python-libs.patch
index 840f15a40324..c79006d33201 100644
--- a/pkgs/applications/graphics/inkscape/configure-python-libs.patch
+++ b/pkgs/applications/graphics/inkscape/configure-python-libs.patch
@@ -1,3 +1,7 @@
+Work around Python misdetection and set `PYTHON_LIBS' to
+"-L/nix/store/... -lpython2.4" instead of "/nix/store/.../libpython2.4.so".
+Changed to 2.5.
+
 --- inkscape-0.45.1/configure	2007-03-20 14:56:43.000000000 +0100
 +++ inkscape-0.45.1/configure	2008-02-22 16:19:10.000000000 +0100
 @@ -10202,7 +10202,7 @@ if test "x$with_python" = "xyes"; then
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index 1f8bff4db9ba..33defc0bea42 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -8,10 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0flrjqa68vnnn8lrhj86xpa6h2cyzrvjy6873v9id092f86ix1li";
   };
 
-  # Work around Python misdetection and set `PYTHON_LIBS' to
-  # "-L/nix/store/... -lpython2.4" instead of "/nix/store/.../libpython2.4.so".
-  # Changed to 2.5
-  patches = [ ./configure-python-libs.patch ];
+  patches = [ ./configure-python-libs.patch ./libpng-setjmp.patch ]; 
 
   propagatedBuildInputs = [
     # Python is used at run-time to execute scripts, e.g., those from
diff --git a/pkgs/applications/graphics/inkscape/libpng-setjmp.patch b/pkgs/applications/graphics/inkscape/libpng-setjmp.patch
new file mode 100644
index 000000000000..623e891b24ba
--- /dev/null
+++ b/pkgs/applications/graphics/inkscape/libpng-setjmp.patch
@@ -0,0 +1,62 @@
+Include <png.h> as early as possible to make sure <setjmp.h> is not
+included before it.
+
+See http://thread.gmane.org/gmane.linux.distributions.nixos/1501 .
+
+--- inkscape-0.46/src/sp-image.cpp	2008-03-11 05:19:56.000000000 +0100
++++ inkscape-0.46/src/sp-image.cpp	2009-01-26 15:34:33.000000000 +0100
+@@ -17,6 +17,8 @@
+ # include "config.h"
+ #endif
+ 
++#include <png.h>
++
+ #include <cstring>
+ #include <string>
+ #include <libnr/nr-matrix-fns.h>
+@@ -41,7 +43,6 @@
+ #include "libnr/nr-matrix-fns.h"
+ 
+ #include "io/sys.h"
+-#include <png.h>
+ #if ENABLE_LCMS
+ #include "color-profile-fns.h"
+ #include "color-profile.h"
+
+--- inkscape-0.46/src/dialogs/export.cpp	2008-03-11 05:19:54.000000000 +0100
++++ inkscape-0.46/src/dialogs/export.cpp	2009-01-26 17:01:13.000000000 +0100
+@@ -20,6 +20,7 @@
+ # include "config.h"
+ #endif
+ 
++#include <png.h>
+ #include <gtk/gtk.h>
+ #include <gtkmm/box.h>
+ #include <gtkmm/buttonbox.h>
+@@ -60,7 +61,6 @@
+ #include "io/sys.h"
+ 
+ #include "helper/png-write.h"
+-#include <png.h>
+ 
+ 
+ #define SP_EXPORT_MIN_SIZE 1.0
+
+--- inkscape-0.46/src/main.cpp	2008-03-11 05:20:50.000000000 +0100
++++ inkscape-0.46/src/main.cpp	2009-01-26 17:57:12.000000000 +0100
+@@ -26,6 +26,7 @@
+ #ifdef HAVE_CONFIG_H
+ # include "config.h"
+ #endif
++#include <png.h>
+ #include "path-prefix.h"
+ 
+ #include <gtk/gtkmessagedialog.h>
+@@ -111,7 +112,6 @@ using Inkscape::Extension::Internal::Pri
+ 
+ #include "main-cmdlineact.h"
+ 
+-#include <png.h>
+ #include <errno.h>
+ 
+ enum {
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 434c1983e03a..93c3a46b6d1a 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -13,17 +13,17 @@
 { stdenv, fetchurl, pkgconfig, gtk, gtkspell, aspell,
   GStreamer, startupnotification, gettext,
   perl, perlXMLParser, libxml2, nss,
-  libXScrnSaver, ncurses, avahi, dbus, dbus_glib
+  libXScrnSaver, ncurses, avahi, dbus, dbus_glib, intltool
   , lib
   , openssl ? null
   , gnutls ? null
 } :
 
 stdenv.mkDerivation {
-  name = "pidgin-2.5.2";
+  name = "pidgin-2.5.4";
   src = fetchurl {
-    url = mirror://sourceforge/pidgin/pidgin-2.5.2.tar.bz2;
-    sha256 = "1p39nvwy3c7wc97a6i88f6rrg5d3a6vv0wdard4vkfmva81l24r0";
+    url = mirror://sourceforge/pidgin/pidgin-2.5.4.tar.bz2;
+    sha256 = "0qqvv9x5p2yxmw57sj3hvc10vxpd9mqv61w1pk97qcwbggwvxgn6";
   };
 
   inherit nss ncurses;
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
   ++
   [nss
     libXScrnSaver ncurses
-    avahi dbus dbus_glib
+    avahi dbus dbus_glib intltool
   ]
   ;
 
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index 748fef9439c2..cba78189789f 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -1,9 +1,9 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "rsync-3.0.4";
+  name = "rsync-3.0.5";
   src = fetchurl {
-    url = http://rsync.samba.org/ftp/rsync/src/rsync-3.0.4.tar.gz;
-    sha256 = "0lfyrs8vj47p1p19b0f5grxhxcn00hpb1yvvprbwzr6j077ljfkl";
+    url = http://rsync.samba.org/ftp/rsync/src/rsync-3.0.5.tar.gz;
+    sha256 = "1js36yv5s9dic524s7jczqk5myzp67bp24rqhbnikg6lh6pj1b20";
   };
 }
diff --git a/pkgs/applications/networking/yafc/default.nix b/pkgs/applications/networking/yafc/default.nix
new file mode 100644
index 000000000000..ae3ce06ca50f
--- /dev/null
+++ b/pkgs/applications/networking/yafc/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl, readline, openssh}:
+
+stdenv.mkDerivation {
+  name = "yafc-1.1.1";
+  src = fetchurl {
+    url = mirror://sourceforge/yafc/yafc-1.1.1.tar.bz2;
+    sha256 = "ab72b2ed89fb75dbe8ebd119458cf513392225f367cccfad881e9780aefcd7e6";
+  };
+
+  buildInputs = [readline openssh];
+
+  patchPhase = "
+    sed -e 's@/usr/bin/ssh@${openssh}/bin/ssh@' -i src/main.c
+  ";
+
+  meta = {
+    description = "ftp/sftp client with readline, autocompletion and bookmarks";
+    homepage = http://yafc.sourceforge.net;
+  };
+}
diff --git a/pkgs/applications/office/abiword/default.nix b/pkgs/applications/office/abiword/default.nix
index d7a88d739623..7f22187793e0 100644
--- a/pkgs/applications/office/abiword/default.nix
+++ b/pkgs/applications/office/abiword/default.nix
@@ -4,10 +4,10 @@ enchant, wv
 }:
 
 stdenv.mkDerivation {
-  name = "abiword-2.6.4";
+  name = "abiword-2.6.6";
   src = fetchurl {
-    url = http://www.abisource.com/downloads/abiword/2.6.4/source/abiword-2.6.4.tar.gz;
-    sha256 = "1zp9p2dfrskn7r827ivvii2477ysxkvrsshk79hgw3xhd5mplbad";
+    url = http://www.abisource.org/downloads/abiword/2.6.6/source/abiword-2.6.6.tar.gz;
+    sha256 = "1cgi6l3wd82vgni4wcqasyl2rvxwffliyqgbwvzv0nn99wasg5gx";
   };
 
   buildInputs = [pkgconfig gtk libglade libgnomeprint libgnomeprintui
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
new file mode 100644
index 000000000000..9506e7a5f0ef
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -0,0 +1,71 @@
+/* moving all git tools into one attribute set because git is unlikely to be
+ * referenced by other packages and you can get a fast overview.
+*/
+args: with args; with pkgs;
+let
+  inherit (pkgs) stdenv fetchurl getConfig;
+  inherit (pkgs.bleedingEdgeRepos) sourceByName;
+in
+rec {
+
+  git = import ./git {
+    inherit fetchurl stdenv curl openssl zlib expat perl gettext
+      asciidoc texinfo xmlto docbook2x
+      docbook_xsl docbook_xml_dtd_42 libxslt
+      cpio tcl tk makeWrapper subversion;
+    svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
+    guiSupport = getConfig ["git" "guiSupport"] false;
+    perlLibs = [perlLWP perlURI perlTermReadKey subversion];
+  };
+
+  gitGit = import ./git/git-git.nix {
+    inherit fetchurl stdenv curl openssl zlib expat perl gettext
+      asciidoc texinfo xmlto docbook2x
+      docbook_xsl docbook_xml_dtd_42 libxslt
+      cpio tcl tk makeWrapper subversion autoconf;
+    inherit (bleedingEdgeRepos) sourceByName;
+    svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
+    guiSupport = getConfig ["git" "guiSupport"] false;
+    perlLibs = [perlLWP perlURI perlTermReadKey subversion];
+  };
+
+  qgit = import ./qgit {
+    inherit fetchurl stdenv;
+    inherit (xlibs) libXext libX11;
+    qt = qt3;
+  };
+
+  qgitGit = import ./qgit/qgit-git.nix {
+    inherit fetchurl stdenv;
+    inherit (xlibs) libXext libX11;
+    inherit (bleedingEdgeRepos) sourceByName;
+    qt = qt4;
+  };
+
+
+  stgit = import ./stgit {
+        inherit fetchurl stdenv python git;
+  };
+
+  topGit = stdenv.mkDerivation {
+      name = "TopGit-git-patched";
+      src = sourceByName "topGit"; # destination directory is patched
+      installPhase = ''
+        mkdir -p $out/etc/bash_completion.d
+        make install
+        mv contrib/tg-completion.bash $out/etc/bash_completion.d
+      '';
+      dontPatchELF = 1;
+      meta = {
+        description = "TopGit aims to make handling of large amount of interdependent topic branches easier";
+        homepage = http://repo.or.cz/w/topgit.git; # maybe there is also another one, I haven't checked
+        license = "GPLv2";
+    };
+  };
+
+  hg2git = import ./hg2git {
+    inherit fetchurl stdenv mercurial coreutils git makeWrapper;
+    inherit (bleedingEdgeRepos) sourceByName;
+  };
+
+}
diff --git a/pkgs/applications/version-management/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 7824eaf69735..7824eaf69735 100644
--- a/pkgs/applications/version-management/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
diff --git a/pkgs/applications/version-management/git-and-tools/git/docbook2texi-2.patch b/pkgs/applications/version-management/git-and-tools/git/docbook2texi-2.patch
new file mode 100644
index 000000000000..25a76ea3dd23
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git/docbook2texi-2.patch
@@ -0,0 +1,28 @@
+
+make sure `gitman.info' isn't produced since it's broken (duplicate
+node names).
+
+diff --git a/Documentation/Makefile b/Documentation/Makefile
+--- a/Documentation/Makefile
++++ b/Documentation/Makefile
+@@ -84,7 +84,7 @@ man1: $(DOC_MAN1)
+ man5: $(DOC_MAN5)
+ man7: $(DOC_MAN7)
+ 
+-info: git.info gitman.info
++info: git.info
+ 
+ install: man
+ 	$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
+@@ -96,10 +96,9 @@ install: man
+ 
+ install-info: info
+ 	$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
+-	$(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir)
++	$(INSTALL) -m 644 git.info $(DESTDIR)$(infodir)
+ 	if test -r $(DESTDIR)$(infodir)/dir; then \
+ 	  $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\
+-	  $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\
+ 	else \
+ 	  echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
+ 	fi
diff --git a/pkgs/applications/version-management/git/docbook2texi.patch b/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch
index b2a6fbcaec5f..b2a6fbcaec5f 100644
--- a/pkgs/applications/version-management/git/docbook2texi.patch
+++ b/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch
diff --git a/pkgs/applications/version-management/git/git-git.nix b/pkgs/applications/version-management/git-and-tools/git/git-git.nix
index cb885280b5a3..a711f399a82f 100644
--- a/pkgs/applications/version-management/git/git-git.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/git-git.nix
@@ -14,11 +14,16 @@ assert svnSupport -> (subversion != null && perlLibs != [] && subversion.perlBin
 assert svnSupport -> subversion.perlBindings;
 
 stdenv.mkDerivation rec {
+  # the glob patch adds the filter [touching paths (glob)] to gitk
+  # contact marco-oweber@gmx.de if you want to know more details
   name = "git-git-with-glob-patch";
 
   src = sourceByName "git";
 
-  patches = [  ./glob-path.patch ./docbook2texi.patch ];
+  patchePhase = ''
+    patch -p1 < ${./docbook2texi-2.patch}
+    sed -i 's/docbook2x-texi/docbook2texi/gc' Documentation/Makefile
+  '';
   # maybe this introduces unneccessary dependencies ?
   patchPhase = "
     unset patchPhase; patchPhase;
diff --git a/pkgs/applications/version-management/git/glob-path.patch b/pkgs/applications/version-management/git-and-tools/git/glob-path.patch
index 7515ade57875..7515ade57875 100644
--- a/pkgs/applications/version-management/git/glob-path.patch
+++ b/pkgs/applications/version-management/git-and-tools/git/glob-path.patch
diff --git a/pkgs/applications/version-management/git-and-tools/hg2git/default.nix b/pkgs/applications/version-management/git-and-tools/hg2git/default.nix
new file mode 100644
index 000000000000..291391b67191
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/hg2git/default.nix
@@ -0,0 +1,26 @@
+args: with args;
+stdenv.mkDerivation {
+  name = "hg2git";
+
+  src = sourceByName "hg2git";
+
+  buildInputs =([mercurial.python mercurial makeWrapper]);
+
+  installPhase = ''
+    ensureDir $out/bin;
+    cp hg2git.sh hg2git.py $out/bin
+    cat >> $out/bin/hg2git-doc << EOF
+    #!${coreutils}/bin/cat
+    $(cat hg2git.txt)
+    EOF
+    chmod +x $out/bin/hg2git-doc
+    wrapProgram $out/bin/hg2git.sh \
+      --set PYTHONPATH "$(echo ${mercurial}/lib/python*/site-packages)"
+  '';
+
+  meta = {
+      description = "mercurial to git one way conversion";
+      homepage = "http://git.grml.org/?p=hg-to-git.git;a=summary";
+      license = "?"; # the .py file is GPLv2
+  };
+}
diff --git a/pkgs/applications/version-management/qgit/default.nix b/pkgs/applications/version-management/git-and-tools/qgit/default.nix
index e84f447f505f..e84f447f505f 100644
--- a/pkgs/applications/version-management/qgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/qgit/default.nix
diff --git a/pkgs/applications/version-management/git-and-tools/qgit/qgit-git.nix b/pkgs/applications/version-management/git-and-tools/qgit/qgit-git.nix
new file mode 100644
index 000000000000..b794b34052cb
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/qgit/qgit-git.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl, qt, libXext, libX11, sourceByName}:
+
+stdenv.mkDerivation rec {
+  name = "qgit-git";
+  meta =
+  {
+    license = "GPLv2";
+    homepage = "http://digilander.libero.it/mcostalba/";
+    description = "Graphical front-end to Git";
+  };
+  src = sourceByName "qgit";
+  buildInputs = [qt libXext libX11];
+  buildPhase = ''
+    qmake PREFIX=$out
+    make
+  '';
+}
diff --git a/pkgs/applications/version-management/stgit/default.nix b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index f31e6ec16b03..f31e6ec16b03 100644
--- a/pkgs/applications/version-management/stgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
diff --git a/pkgs/applications/version-management/subversion-1.5.x/default.nix b/pkgs/applications/version-management/subversion-1.5.x/default.nix
index bde985a64f00..b89ef9cf468a 100644
--- a/pkgs/applications/version-management/subversion-1.5.x/default.nix
+++ b/pkgs/applications/version-management/subversion-1.5.x/default.nix
@@ -20,13 +20,13 @@ assert compressionSupport -> neon.compressionSupport;
 
 stdenv.mkDerivation rec {
 
-  version = "1.5.4";
+  version = "1.5.5";
 
   name = "subversion-${version}";
 
   src = fetchurl {
-    url = http://subversion.tigris.org/downloads/subversion-1.5.4.tar.bz2;
-    sha256 = "0h7v8ngbjmxbcwjxl4y7w6qygs0qc228jdpqf5s2i21rnmbn4jz2";
+    url = http://subversion.tigris.org/downloads/subversion-1.5.5.tar.bz2;
+    sha256 = "1gkpmnwspb3x1310l97kb7n1kh5bmdb7bzq92xwm34sqbnx29kw8";
   };
 
   buildInputs = [zlib apr aprutil]
diff --git a/pkgs/applications/virtualization/virtualbox/2.1.2.nix b/pkgs/applications/virtualization/virtualbox/2.1.2.nix
new file mode 100644
index 000000000000..b33c58455fa2
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/2.1.2.nix
@@ -0,0 +1,47 @@
+{stdenv, fetchurl, iasl, dev86, libxslt, libxml2, libX11, xproto, libXext, libXcursor, qt3, qt4, libIDL, SDL, hal, libcap, zlib, libpng, glib, kernel}:
+
+stdenv.mkDerivation {
+  name = "virtualbox-2.1.2";
+
+  src = fetchurl {
+    url = http://download.virtualbox.org/virtualbox/2.1.2/VirtualBox-2.1.2-OSE.tar.bz2;
+    sha256 = "d3c1ae8ed7594094aaf8496204c5415479e1943e5b5179c5baae8a66885362de";
+  };
+
+  buildInputs = [iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt3 qt4 libIDL SDL hal libcap glib kernel];
+
+  patchPhase = "
+    set -x
+    MODULES_BUILD_DIR=`echo ${kernel}/lib/modules/*/build`
+    sed -e 's@/lib/modules/`uname -r`/build@'$MODULES_BUILD_DIR@ \\
+        -i configure
+    ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 
+    export USER=nix
+    set +x
+  ";
+
+  configurePhase = ''
+    # It wants the qt utils from qt3, and it takes them from QTDIR
+    export QTDIR=${qt3}
+    ./configure --with-qt-dir=${qt3} --with-qt4-dir=${qt4} --disable-python --disable-alsa --disable-pulse --disable-hardening
+    sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
+        -i AutoConfig.kmk
+    sed -e 's@arch/x86/@@' \
+        -i Config.kmk
+    cat >> AutoConfig.kmk << END_PATHS
+    VBOX_PATH_APP_PRIVATE := $out
+    VBOX_PATH_APP_DOCS := $out/doc
+    END_PATHS
+  '';
+
+  buildPhase = "
+    source env.sh
+    kmk
+  ";
+    
+  
+  meta = {
+    description = "PC emulator";
+    homepage = http://www.virtualbox.org/;
+  };
+}
diff --git a/pkgs/desktops/enlightenment/default.nix b/pkgs/desktops/enlightenment/default.nix
new file mode 100644
index 000000000000..61f58719b272
--- /dev/null
+++ b/pkgs/desktops/enlightenment/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, x11, xlibs, dbus, imlib2, freetype }:
+
+let version = "0.16.8.15"; in
+  stdenv.mkDerivation {
+    name = "enlightenment-${version}";
+
+    src = fetchurl {
+      url = "mirror://sourceforge/enlightenment/e16-${version}.tar.gz";
+      sha256 = "0f8hg79mrk6b3fsvynvsrnqh1zgmvnnza0lf7qn4pq2mqyigbhgk";
+    };
+
+    buildInputs = [pkgconfig imlib2 freetype 
+      xlibs.libX11 xlibs.libXt xlibs.libXext xlibs.libXrender xlibs.libXft ];
+
+    meta = {
+      description = "Desktop shell built on the Enlightenment Foundation Libraries";
+
+      longDescription = ''
+        Enlightenment is a window manager.  Enlightenment is a desktop
+        shell.  Enlightenment is the building blocks to create
+        beautiful applications.  Enlightenment, or simply e, is a
+        group of people trying to make a new generation of software.
+      '';
+
+      homepage = http://enlightenment.org/;
+
+      license = "BSD-style";
+    };
+  }
diff --git a/pkgs/development/compilers/dev86/default.nix b/pkgs/development/compilers/dev86/default.nix
new file mode 100644
index 000000000000..867eeeddfc99
--- /dev/null
+++ b/pkgs/development/compilers/dev86/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "dev86-0.16.17";
+  src = fetchurl {
+    url = http://homepage.ntlworld.com/robert.debath/dev86/Dev86src-0.16.17.tar.gz;
+    md5 = "e7bbfdbe61c2fb964994a087e29b0087";
+  };
+
+  preBuild = "
+    makeFlags=\"PREFIX=$out\"
+  ";
+
+  meta = {
+    description = "Linux 8086 development environment";
+    homepage = http://www.debath.co.uk/;
+  };
+}
diff --git a/pkgs/development/compilers/ghc-6.8/ghc-6.8.2.nix b/pkgs/development/compilers/ghc-6.8/ghc-6.8.2.nix
index 5c7b093e3428..9b78a979a967 100644
--- a/pkgs/development/compilers/ghc-6.8/ghc-6.8.2.nix
+++ b/pkgs/development/compilers/ghc-6.8/ghc-6.8.2.nix
@@ -1,14 +1,15 @@
 {stdenv, fetchurl, readline, ghc, perl, m4, gmp, ncurses}:
 
 stdenv.mkDerivation (rec {
-  name = "ghc-6.8.2";
+  version = "6.8.2";
+  name = "ghc-${version}";
   homepage = "http://www.haskell.org/ghc";
 
   src = map fetchurl [
-    { url = "${homepage}/dist/stable/dist/${name}-src.tar.bz2";
-      md5 = "745c6b7d4370610244419cbfec4b2f84";
+    { url = "${homepage}/dist/${version}/${name}-src.tar.bz2";
+      sha256 = "2d10f973c35e8d7d9f62b53e26fef90177a9a15105cda4b917340ba7696a22d9";
     }
-    { url = "${homepage}/dist/stable/dist/${name}-src-extralibs.tar.bz2";
+    { url = "${homepage}/dist/${version}/${name}-src-extralibs.tar.bz2";
       md5 = "d199c50814188fb77355d41058b8613c";
     }
   ];
diff --git a/pkgs/development/compilers/iasl/default.nix b/pkgs/development/compilers/iasl/default.nix
new file mode 100644
index 000000000000..383b8183cc71
--- /dev/null
+++ b/pkgs/development/compilers/iasl/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, bison, flex}:
+
+stdenv.mkDerivation {
+  name = "iasl-20090123.tar.gz";
+  src = fetchurl {
+    url = http://www.acpica.org/download/acpica-unix-20090123.tar.gz;
+    md5 = "4ca6484acbf16cf67fd4ba91d32fd0a0";
+  };
+
+  buildPhase = "
+    cd compiler
+    make
+    cd ..
+  ";
+
+  installPhase = "
+    install -d $out/bin
+    install compiler/iasl $out/bin
+  ";
+
+  buildInputs = [ bison flex ];
+
+  meta = {
+    description = "Intel ACPI Compiler";
+    homepage = http://www.acpica.org/;
+  };
+}
diff --git a/pkgs/development/libraries/adns/default.nix b/pkgs/development/libraries/adns/default.nix
index d825f00528a1..f433b1611bb4 100644
--- a/pkgs/development/libraries/adns/default.nix
+++ b/pkgs/development/libraries/adns/default.nix
@@ -17,7 +17,10 @@ stdenv.mkDerivation
   configureFlags = if static then "--disable-dynamic" else "--enable-dynamic";
   CPPFLAGS = "-DNDEBUG";
   CFLAGS = "-O3";
-  doCheck = 1;
+
+  # FIXME: The test suite fails on NixOS in a chroot.  See
+  # http://thread.gmane.org/gmane.linux.distributions.nixos/1328 for details.
+  doCheck = false;
 
   # adns doesn't understand the automatic --disable-shared from the Cygwin stdenv.
   cygwinConfigureEnableShared = true;
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 46e6dfba2d47..a9c929c3d59e 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -8,27 +8,50 @@
 assert postscriptSupport -> zlib != null;
 assert pngSupport -> libpng != null;
 
-stdenv.mkDerivation {
-  name = "cairo-1.8.0";
+stdenv.mkDerivation rec {
+  name = "cairo-1.8.6";
   
   src = fetchurl {
-    url = http://cairographics.org/releases/cairo-1.8.0.tar.gz;
-    sha1 = "8a689ca47c24216f37bb8cabae21ff08a7f47899";
+    url = "http://cairographics.org/releases/${name}.tar.gz";
+    sha256 = "0d9mfwq7r66j85hqjcjavwbn7c8gdaqnahmmiyz5iwpc1jplg8wk";
   };
 
   buildInputs = [
-    pkgconfig x11 fontconfig freetype pixman libxcb xcbutil
+    pkgconfig x11 fontconfig pixman libxcb xcbutil
   ];
 
   propagatedBuildInputs =
+    [ freetype ] ++
     stdenv.lib.optional postscriptSupport zlib ++
     stdenv.lib.optional pngSupport libpng;
     
   configureFlags = ["--disable-static" "--enable-xcb"] ++
     stdenv.lib.optional pdfSupport "--enable-pdf";
 
+  preConfigure = ''
+    # Work around broken `Requires.private' that prevents Freetype
+    # `-I' flags to be propagated.
+    sed -i "src/cairo.pc.in" \
+        -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype}/include/freetype2 -I${freetype}/include|g'
+  '';
+
   meta = {
     description = "A 2D graphics library with support for multiple output devices";
+
+    longDescription = ''
+      Cairo is a 2D graphics library with support for multiple output
+      devices.  Currently supported output targets include the X
+      Window System, Quartz, Win32, image buffers, PostScript, PDF,
+      and SVG file output.  Experimental backends include OpenGL
+      (through glitz), XCB, BeOS, OS/2, and DirectFB.
+
+      Cairo is designed to produce consistent output on all output
+      media while taking advantage of display hardware acceleration
+      when available (e.g., through the X Render Extension).
+    '';
+
     homepage = http://cairographics.org/;
+
+    licenses = [ "LGPLv2+" "MPLv1" ];
   };
 }
diff --git a/pkgs/development/libraries/cairomm/default.nix b/pkgs/development/libraries/cairomm/default.nix
index a22788c288ec..712a5068a995 100644
--- a/pkgs/development/libraries/cairomm/default.nix
+++ b/pkgs/development/libraries/cairomm/default.nix
@@ -1,15 +1,35 @@
-args: with args;
+{ fetchurl, stdenv, pkgconfig, cairo, x11, fontconfig, freetype, libsigcxx }:
 
 stdenv.mkDerivation rec {
-  name = "cairomm-1.4.6";
+  name = "cairomm-1.7.2";
 
   src = fetchurl {
     url = "http://cairographics.org/releases/${name}.tar.gz";
-    sha256 = "1zd5pq5jd507w1v994awpsl7m26g4dfl0rwgrxig2823hl3rqmrp";
+    sha256 = "0rcbkk16yj9k1y491ms5j6f9z5wrvv4qkd7wbx44nziwhw6hc0qx";
   };
 
   buildInputs = [pkgconfig];
-  propagatedBuildInputs = [cairo x11 fontconfig freetype];
+  propagatedBuildInputs = [ cairo x11 fontconfig freetype libsigcxx ];
 
   configureFlags = "--enable-shared --disable-static";
+
+  meta = {
+    description = "A 2D graphics library with support for multiple output devices";
+
+    longDescription = ''
+      Cairo is a 2D graphics library with support for multiple output
+      devices.  Currently supported output targets include the X
+      Window System, Quartz, Win32, image buffers, PostScript, PDF,
+      and SVG file output.  Experimental backends include OpenGL
+      (through glitz), XCB, BeOS, OS/2, and DirectFB.
+
+      Cairo is designed to produce consistent output on all output
+      media while taking advantage of display hardware acceleration
+      when available (e.g., through the X Render Extension).
+    '';
+
+    homepage = http://cairographics.org/;
+
+    licenses = [ "LGPLv2+" "MPLv1" ];
+  };
 }
diff --git a/pkgs/development/libraries/gtk-libs/2.14/atk/default.nix b/pkgs/development/libraries/gtk-libs/2.14/atk/default.nix
new file mode 100644
index 000000000000..320033bad009
--- /dev/null
+++ b/pkgs/development/libraries/gtk-libs/2.14/atk/default.nix
@@ -0,0 +1,30 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "atk-1.24.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/atk/1.24/${name}.tar.bz2";
+    sha256 = "0mjxliarzcy7iksh6v1npxsqdpc9sjj3q4wcl567asbdzdpbd803";
+  };
+
+  buildInputs = [pkgconfig perl];
+  propagatedBuildInputs = [glib];
+
+  meta = {
+    description = "ATK, the accessibility toolkit";
+
+    longDescription = ''
+      ATK is the Accessibility Toolkit.  It provides a set of generic
+      interfaces allowing accessibility technologies such as screen
+      readers to interact with a graphical user interface.  Using the
+      ATK interfaces, accessibility tools have full access to view and
+      control running applications.
+    '';
+
+    homepage = http://library.gnome.org/devel/atk/;
+
+    license = "LGPLv2+";
+  };
+
+}
diff --git a/pkgs/development/libraries/gtk-libs/2.14/default.nix b/pkgs/development/libraries/gtk-libs/2.14/default.nix
new file mode 100644
index 000000000000..a5ac93d068d1
--- /dev/null
+++ b/pkgs/development/libraries/gtk-libs/2.14/default.nix
@@ -0,0 +1,21 @@
+args: with args;
+
+rec {
+
+  glib = (import ./glib) args;
+
+  atk = (import ./atk) (args // { inherit glib; });
+
+  pango = (import ./pango) (args // { inherit glib cairo; });
+
+  gtk = (import ./gtk+) (args // {
+    inherit glib atk pango;
+  });
+
+
+  glibmm = (import ./glibmm) (args // { inherit glib; });
+
+  pangomm = (import ./pangomm) (args // { inherit pango glibmm cairomm; });
+
+  gtkmm = (import ./gtkmm) (args // { inherit gtk atk glibmm pangomm; });
+}
diff --git a/pkgs/development/libraries/gtk-libs/2.14/glib/default.nix b/pkgs/development/libraries/gtk-libs/2.14/glib/default.nix
new file mode 100644
index 000000000000..fa575b13a6e5
--- /dev/null
+++ b/pkgs/development/libraries/gtk-libs/2.14/glib/default.nix
@@ -0,0 +1,27 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "glib-2.18.4";
+  
+  src = fetchurl {
+    url = "mirror://gnome/sources/glib/2.18/${name}.tar.bz2";
+    sha256 = "00711nscyya6j1kdda7sbxy01qspccpvmnmc8f4kip4zbs22rsva";
+  };
+  
+  buildInputs = [pkgconfig gettext perl];
+
+  meta = {
+    description = "GLib, a C library of programming buildings blocks";
+
+    longDescription = ''
+      GLib provides the core application building blocks for libraries
+      and applications written in C.  It provides the core object
+      system used in GNOME, the main loop implementation, and a large
+      set of utility functions for strings and common data structures.
+    '';
+
+    homepage = http://www.gtk.org/;
+
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/gtk-libs/2.14/glibmm/default.nix b/pkgs/development/libraries/gtk-libs/2.14/glibmm/default.nix
new file mode 100644
index 000000000000..790b006f90a5
--- /dev/null
+++ b/pkgs/development/libraries/gtk-libs/2.14/glibmm/default.nix
@@ -0,0 +1,21 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "glibmm-2.18.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/GNOME/sources/glibmm/2.18/${name}.tar.bz2";
+    sha256 = "0jg65hv6pwxqk4fabsjjz2zwn5hb6rgy3szj956avliarbliyr3r";
+  };
+
+  buildInputs = [pkgconfig];
+  propagatedBuildInputs = [glib libsigcxx];
+
+  meta = {
+    description = "C++ interface to the GLib library";
+
+    homepage = http://gtkmm.org/;
+
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/gtk-libs/2.14/gtk+/default.nix b/pkgs/development/libraries/gtk-libs/2.14/gtk+/default.nix
new file mode 100644
index 000000000000..99d84d622855
--- /dev/null
+++ b/pkgs/development/libraries/gtk-libs/2.14/gtk+/default.nix
@@ -0,0 +1,37 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "gtk+-2.14.7";
+  
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtk+/2.14/${name}.tar.bz2";
+    sha256 = "053yn2fdxhqd4jhds4j96daw2zd4cfw5wx9vf4szrfidwll4fbz8";
+  };
+  
+  buildInputs = [ pkgconfig perl jasper ];
+  
+  propagatedBuildInputs = [
+    x11 glib atk pango libtiff libjpeg libpng cairo libXrandr
+  ] ++ stdenv.lib.optional xineramaSupport libXinerama;
+    
+  passthru = { inherit libtiff libjpeg libpng; };
+
+  meta = {
+    description = "A multi-platform toolkit for creating graphical user interfaces";
+
+    longDescription = ''
+      GTK+ is a highly usable, feature rich toolkit for creating
+      graphical user interfaces which boasts cross platform
+      compatibility and an easy to use API.  GTK+ it is written in C,
+      but has bindings to many other popular programming languages
+      such as C++, Python and C# among others.  GTK+ is licensed
+      under the GNU LGPL 2.1 allowing development of both free and
+      proprietary software with GTK+ without any license fees or
+      royalties.
+    '';
+
+    homepage = http://www.gtk.org/;
+
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/gtk-libs/2.14/gtkmm/default.nix b/pkgs/development/libraries/gtk-libs/2.14/gtkmm/default.nix
new file mode 100644
index 000000000000..2379dc04c120
--- /dev/null
+++ b/pkgs/development/libraries/gtk-libs/2.14/gtkmm/default.nix
@@ -0,0 +1,31 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "gtkmm-2.14.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtkmm/2.14/${name}.tar.bz2";
+    sha256 = "18jral2lv9jv02d3balh0mi0wgbqhrz5y2laclri1skccc2q3c94";
+  };
+
+  buildInputs = [pkgconfig];
+  propagatedBuildInputs = [ glibmm gtk atk cairomm pangomm ];
+
+  meta = {
+    description = "C++ interface to the GTK+ graphical user interface library";
+
+    longDescription = ''
+      gtkmm is the official C++ interface for the popular GUI library
+      GTK+.  Highlights include typesafe callbacks, and a
+      comprehensive set of widgets that are easily extensible via
+      inheritance.  You can create user interfaces either in code or
+      with the Glade User Interface designer, using libglademm.
+      There's extensive documentation, including API reference and a
+      tutorial.
+    '';
+
+    homepage = http://gtkmm.org/;
+
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/gtk-libs/2.14/pango/default.nix b/pkgs/development/libraries/gtk-libs/2.14/pango/default.nix
new file mode 100644
index 000000000000..a309d414213e
--- /dev/null
+++ b/pkgs/development/libraries/gtk-libs/2.14/pango/default.nix
@@ -0,0 +1,29 @@
+args: with args;
+
+stdenv.mkDerivation rec {
+  name = "pango-1.22.4";
+  
+  src = fetchurl {
+    url = "mirror://gnome/sources/pango/1.22/${name}.tar.bz2";
+    sha256 = "0d55x97c78rmcsls5g236xwwhjq1bvscrlxqligyzsv0hgnxfizz";
+  };
+  
+  buildInputs = [pkgconfig];
+  
+  propagatedBuildInputs = [x11 glib cairo libpng];
+
+  meta = {
+    description = "A library for laying out and rendering of text, with an emphasis on internationalization";
+
+    longDescription = ''
+      Pango is a library for laying out and rendering of text, with an
+      emphasis on internationalization.  Pango can be used anywhere
+      that text layout is needed, though most of the work on Pango so
+      far has been done in the context of the GTK+ widget toolkit.
+      Pango forms the core of text and font handling for GTK+-2.x.
+    '';
+
+    homepage = http://www.pango.org/;
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
new file mode 100644
index 000000000000..f36bfa0d1441
--- /dev/null
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, libtool, gtk, gthread
+, alsaLib, pulseaudio, gstreamer, libvorbis }:
+
+stdenv.mkDerivation rec {
+  name = "libcanberra-0.10";
+
+  src = fetchurl {
+    url = "http://0pointer.de/lennart/projects/libcanberra/${name}.tar.gz";
+    sha256 = "0wl2hd8zqwzbbp4icng6siim85jb6hvczy9c6m92lh85wrcwpqxh";
+  };
+
+  buildInputs = [ pkgconfig libtool gtk alsaLib pulseaudio gstreamer libvorbis ];
+
+  configureFlags = "--disable-oss";
+
+  meta = {
+    description = "libcanberra, an implementation of the XDG Sound Theme and Name Specifications";
+
+    longDescription = ''
+      libcanberra is an implementation of the XDG Sound Theme and Name
+      Specifications, for generating event sounds on free desktops
+      such as GNOME.  It comes with several backends (ALSA,
+      PulseAudio, OSS, GStreamer, null) and is designed to be
+      portable.
+    '';
+
+    homepage = http://0pointer.de/lennart/projects/libcanberra/;
+
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index e65ba064606f..70ac77c53f8b 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libgpgerror }:
 
 stdenv.mkDerivation rec {
-  name = "libgcrypt-1.4.3";
+  name = "libgcrypt-1.4.4";
 
   src = fetchurl {
     url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
-    sha256 = "02r31dycxvlld9mn1ah78g1phkh42ajk7qcqi20x9mq1kyyikj48";
+    sha256 = "0vrhpw6xp05q98l4yf68j6aw59dgdwbzqf2d2q3a13ygh20bh4ij";
   };
 
   propagatedBuildInputs = [ libgpgerror ];
diff --git a/pkgs/development/libraries/libvorbis/default.nix b/pkgs/development/libraries/libvorbis/default.nix
index 1b3a7c811465..83925503ade4 100644
--- a/pkgs/development/libraries/libvorbis/default.nix
+++ b/pkgs/development/libraries/libvorbis/default.nix
@@ -6,5 +6,6 @@ stdenv.mkDerivation {
     url = http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.bz2;
     sha256 = "0nq62b8y2rhhgxxyiw6b4wchic61q5v649fdl8dd7090nxxcbx4y";
   };
-  buildInputs = [libogg];
+
+  propagatedBuildInputs = [ libogg ];
 }
diff --git a/pkgs/development/libraries/opencascade/default.nix b/pkgs/development/libraries/opencascade/default.nix
new file mode 100644
index 000000000000..60feea3a5b3b
--- /dev/null
+++ b/pkgs/development/libraries/opencascade/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, mesa, qt4, tcl, tk}:
+
+stdenv.mkDerivation {
+  name = "opencascade-6.3.0";
+  src = fetchurl {
+    url = http://files.opencascade.com/OCC_6.3_release/OpenCASCADE_src.tgz;
+    md5 = "52778127974cb3141c2827f9d40d1f11";
+  };
+
+  buildInputs = [ mesa qt4 tcl tk];
+
+  preConfigure = "cd ros";
+
+  meta = {
+    description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
+    homepage = http://www.opencascade.org/;
+  };
+}
diff --git a/pkgs/development/libraries/wxGTK-2.8/default.nix b/pkgs/development/libraries/wxGTK-2.8/default.nix
index e8543444140a..11d7a1e29f35 100644
--- a/pkgs/development/libraries/wxGTK-2.8/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.8/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk, libXinerama, libSM, libXxf86vm, xf86vidmodeproto
-, compat24 ? false, compat26 ? true, unicode ? true
+, mesa, compat24 ? false, compat26 ? true, unicode ? true,
 }:
 
 assert pkgconfig != null && gtk != null;
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
   buildInputs = [
     pkgconfig gtk gtk.libtiff gtk.libjpeg gtk.libpng gtk.libpng.zlib
-    libXinerama libSM libXxf86vm xf86vidmodeproto
+    libXinerama libSM libXxf86vm xf86vidmodeproto mesa
   ];
 
   configureFlags = [
@@ -27,17 +27,21 @@ stdenv.mkDerivation {
     (if compat26 then "--enable-compat26" else "--disable-compat26")
     "--disable-precomp-headers"
     (if unicode then "--enable-unicode" else "")
+    "--with-opengl"
   ];
 
   # This variable is used by configure to find some dependencies.
   SEARCH_INCLUDE =
     "${libXinerama}/include ${libSM}/include ${libXxf86vm}/include";
 
+  SEARCH_LIB = "${mesa}/lib";
+
   # Work around a bug in configure.
   NIX_CFLAGS_COMPILE = "-DHAVE_X11_XLIB_H=1";
 
   preConfigure = "
     substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
+    substituteInPlace configure --replace 'SEARCH_LIB=' 'DUMMY_SEARCH_LIB='
     substituteInPlace configure --replace /usr /no-such-path
   ";
 
diff --git a/pkgs/development/tools/cdecl/cdecl-2.5.patch b/pkgs/development/tools/cdecl/cdecl-2.5.patch
new file mode 100644
index 000000000000..b66ee1a2c4e7
--- /dev/null
+++ b/pkgs/development/tools/cdecl/cdecl-2.5.patch
@@ -0,0 +1,64 @@
+diff --git a/Makefile b/Makefile
+index 9e85686..b8e6e02 100644
+--- a/Makefile
++++ b/Makefile
+@@ -15,13 +15,14 @@
+ #
+ # add -DUSE_READLINE	To compile in support for the GNU readline library.
+ 
+-CFLAGS= -s -O2 -DUSE_READLINE
++
+ CC= gcc
+-LIBS= -lreadline -ltermcap
++
+ ALLFILES= makefile cdgram.y cdlex.l cdecl.c cdecl.1 testset testset++
+-BINDIR= /usr/bin
+-MANDIR= /usr/man/man1
+-CATDIR= /usr/man/cat1
++PREFIX?= /usr
++BINDIR= $(PREFIX)/bin
++MANDIR= $(PREFIX)/man/man1
++CATDIR= $(PREFIX)/man/cat1
+ INSTALL= install -c
+ INSTALL_DATA= install -c -m 644
+ 
+@@ -33,7 +34,7 @@ c++decl: cdgram.c cdlex.c cdecl.c
+ 	rm -f cdecl
+ 
+ cdlex.c: cdlex.l
+-	lex cdlex.l && mv lex.yy.c cdlex.c
++	flex cdlex.l && mv lex.yy.c cdlex.c
+ 
+ cdgram.c: cdgram.y
+ 	yacc cdgram.y && mv y.tab.c cdgram.c
+@@ -43,8 +44,10 @@ test:
+ 	./c++decl < testset++
+ 
+ install: cdecl
++	$(INSTALL) -d $(BINDIR)
+ 	$(INSTALL) cdecl $(BINDIR)
+ 	ln $(BINDIR)/cdecl $(BINDIR)/c++decl
++	$(INSTALL) -d $(MANDIR)
+ 	$(INSTALL_DATA) cdecl.1 $(MANDIR)
+ 	$(INSTALL_DATA) c++decl.1 $(MANDIR)
+ 
+diff --git a/cdecl.c b/cdecl.c
+index f03f01e..1fdde9f 100644
+--- a/cdecl.c
++++ b/cdecl.c
+@@ -67,6 +67,7 @@ char cdeclsccsid[] = "@(#)cdecl.c	2.5 1/15/96";
+ # include <stddef.h>
+ # include <string.h>
+ # include <stdarg.h>
++# include <errno.h>
+ #else
+ # ifndef NOVARARGS
+ #  include <varargs.h>
+@@ -124,7 +125,6 @@ char real_prompt[MAX_NAME+3];
+ 
+ #if __STDC__
+   char *ds(char *), *cat(char *, ...), *visible(int);
+-  int getopt(int,char **,char *);
+   int main(int, char **);
+   int yywrap(void);
+   int dostdin(void);
diff --git a/pkgs/development/tools/cdecl/default.nix b/pkgs/development/tools/cdecl/default.nix
new file mode 100644
index 000000000000..65377508d9f4
--- /dev/null
+++ b/pkgs/development/tools/cdecl/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl, yacc, flex, readline}:
+
+stdenv.mkDerivation {
+  name = "cdecl-2.5";
+  src = fetchurl {
+    url = ftp://metalab.unc.edu/pub/linux/devel/lang/c/cdecl-2.5.tar.gz;
+    md5 = "29895dab52e85b2474a59449e07b7996";
+  };
+
+  patches = [ ./cdecl-2.5.patch ];
+  preBuild = "
+    makeFlags=\"PREFIX=$out\"
+  ";
+  buildInputs = [yacc flex readline];
+
+  meta = {
+    description = "Translator English -- C/C++ declarations";
+  };
+}
diff --git a/pkgs/development/tools/parsing/ragel/default.nix b/pkgs/development/tools/parsing/ragel/default.nix
new file mode 100644
index 000000000000..f60d32f09ea2
--- /dev/null
+++ b/pkgs/development/tools/parsing/ragel/default.nix
@@ -0,0 +1,44 @@
+{composableDerivation, fetchurl, transfig, texLive}:
+
+let
+  version = "6.3";
+  name = "ragel-${version}";
+in
+
+composableDerivation.composableDerivation {
+  initial = rec {
+    inherit name;
+    src = fetchurl {
+      url = "http://www.complang.org/ragel/${name}.tar.gz";
+      sha256 = "018cedc8a68be85cda330fc53d0bb8a1ca6ad39b1cf790eed0311e7baa5a2520";
+    };
+
+    flags = {
+      doc = {
+        # require fig2dev & pdflatex (see README)
+        buildInputs = [transfig texLive];
+        # use post* because default values of buildPhase is empty.
+        postBuild = ''
+          pushd doc
+          make
+          popd
+        '';
+        postInstall = ''
+          pushd doc
+          make install
+          popd
+        '';
+      };
+    };
+
+    cfg = {
+      docSupport = false;
+    };
+
+    meta = {
+      homepage = http://www.complang.org/ragel;
+      description = "State machine compiler";
+      license = "GPL-2";
+    };
+  };
+}
diff --git a/pkgs/games/sgt-puzzles/default.nix b/pkgs/games/sgt-puzzles/default.nix
index 9eaa17e15b37..830db2f117df 100644
--- a/pkgs/games/sgt-puzzles/default.nix
+++ b/pkgs/games/sgt-puzzles/default.nix
@@ -2,7 +2,7 @@ a :
 let 
   fetchurl = a.fetchurl;
 
-  version = a.lib.getAttr ["version"] "r8373" a; 
+  version = a.lib.getAttr ["version"] "r8419" a; 
   buildInputs = with a; [
     gtk glib pkgconfig libX11 
   ];
@@ -10,7 +10,7 @@ in
 rec {
   src = fetchurl {
     url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
-    sha256 = "1mkf36rah61x0pxpmjbpgy8ccv8m38hf088mf2i5cx9paya830dc";
+    sha256 = "0lm6d34i9g8krwvchqkq433gmpy4d7c4423h8855rvd3jxga82qa";
   };
 
   inherit buildInputs;
diff --git a/pkgs/lib/composable-derivation.nix b/pkgs/lib/composable-derivation.nix
index 790a0bcc9dbc..f597dc07bd6a 100644
--- a/pkgs/lib/composable-derivation.nix
+++ b/pkgs/lib/composable-derivation.nix
@@ -1,7 +1,10 @@
 {lib, pkgs} :
 let inherit (lib) nv nvs; in
 {
-  # see new python derivations for example..
+  # see for example:
+  # - development/interpreters/php_configurable/default.nix
+  # - .. search composableDerivation in all-packages.nix ..
+  #
   # You should be able to override anything you like easily
   # grep the mailinglist by title "python proposal" (dec 08)
   # -> http://mail.cs.uu.nl/pipermail/nix-dev/2008-December/001571.html
diff --git a/pkgs/lib/default.nix b/pkgs/lib/default.nix
index 73cb9d383c44..ba91271835e4 100644
--- a/pkgs/lib/default.nix
+++ b/pkgs/lib/default.nix
@@ -373,22 +373,18 @@ rec {
     (rec { result = f result; }).result;
 
   # flatten a list of elements by following the properties of the elements.
-  # key    : return the key which correspond to the value.
-  # value  : return the value inserted in the returned list.
   # next   : return the list of following elements.
-  # keys   : lists of keys already seen.
+  # seen   : lists of elements already visited.
   # default: result if 'x' is empty.
   # x      : list of values that have to be processed.
-  uniqFlatten = prop@{key, value, next, ...}: keys: default: x:
+  uniqFlatten = next: seen: default: x:
     if x == []
     then default
     else
-      let h = head x; t = tail x;
-          k = key h; v = value h; n = next h;
-      in
-      if elem k keys
-      then uniqFlatten prop keys default t
-      else uniqFlatten prop (keys ++ [k]) (default ++ [v]) (n ++ t)
+      let h = head x; t = tail x; n = next h; in
+      if elem h seen
+      then uniqFlatten next seen default t
+      else uniqFlatten next (seen ++ [h]) (default ++ [h]) (n ++ t)
     ;
 
   /* If. ThenElse. Always. */
@@ -407,6 +403,10 @@ rec {
     };
 
 
+  isNotdef = attrs: (typeOf attrs) == "notdef";
+  mkNotdef = {_type = "notdef";};
+
+
   isThenElse = attrs: (typeOf attrs) == "then-else";
   mkThenElse = attrs:
     assert attrs ? thenPart && attrs ? elsePart;
@@ -438,8 +438,7 @@ rec {
   rmIf = pushIf (condition: val: val);
 
   evalIf = pushIf (condition: val:
-    # guess: empty else part.
-    ifEnable condition val
+    if condition then val else mkNotdef
   );
 
   delayIf = pushIf (condition: val:
@@ -478,18 +477,18 @@ rec {
       }
     ) (builtins.attrNames defs));
 
-  mergeDefaultOption = name: list:
+  mergeDefaultOption = list:
     if list != [] && tail list == [] then head list
     else if all __isFunction list then x: mergeDefaultOption (map (f: f x) list)
     else if all __isList list then concatLists list
     else if all __isAttrs list then mergeAttrs list
     else if all (x: true == x || false == x) list then fold logicalOR false list
     else if all (x: x == toString x) list then concatStrings list
-    else abort "${name}: Cannot merge values.";
+    else throw "Cannot merge values.";
 
-  mergeTypedOption = typeName: predicate: merge: name: list:
+  mergeTypedOption = typeName: predicate: merge: list:
     if all predicate list then merge list
-    else abort "${name}: Expect a ${typeName}.";
+    else throw "Expect a ${typeName}.";
 
   mergeEnableOption = mergeTypedOption "boolean"
     (x: true == x || false == x) (fold logicalOR false);
@@ -501,74 +500,129 @@ rec {
     (x: if builtins ? isString then builtins.isString x else x + "")
     concatStrings;
 
-  # Merge sets of options and bindings.
-  # noOption: function to call if no option is declared.
-  mergeOptionSets = noOption: path: opts:
+  mergeOneOption = list:
+    if list == [] then abort "This case should never happens."
+    else if tail list != [] then throw "Multiple definitions. Only one is allowed for this option."
+    else head list;
+
+
+  # Handle the traversal of option sets.  All sets inside 'opts' are zipped
+  # and options declaration and definition are separated.  If no option are
+  # declared at a specific depth, then the function recurse into the values.
+  # Other cases are handled by the optionHandler which contains two
+  # functions that are used to defined your goal.
+  # - export is a function which takes two arguments which are the option
+  # and the list of values.
+  # - notHandle is a function which takes the list of values are not handle
+  # by this function.
+  handleOptionSets = optionHandler@{export, notHandle, ...}: path: opts:
     if all __isAttrs opts then
       zip (attr: opts:
         let
+          # Compute the path to reach the attribute.
           name = if path == "" then attr else path + "." + attr;
-          test = partition isOption opts;
-          opt = ({ merge = mergeDefaultOption; apply = id; } // head test.right);
-        in
-          if test.right == [] then mergeOptionSets noOption name (map delayIf test.wrong)
-          else if tail test.right != [] then throw "Multiple options for '${name}'."
-          else if test.wrong == [] then opt.apply opt.default
-          else opt.apply (opt.merge name (map evalIf test.wrong))
-      ) opts
-   else noOption path opts;
 
-  # Keep all option declarations and add an attribute "name" inside
-  # each option which contains the path that has to be followed to
-  # access it.
-  filterOptionSets = path: opts:
-    if all __isAttrs opts then
-      zip (attr: opts:
-        let
-          name = if path == "" then attr else path + "." + attr;
+          # Divide the definitions of the attribute "attr" between
+          # declaration (isOption) and definitions (!isOption).
           test = partition isOption opts;
+          decls = test.right; defs = test.wrong;
+
+          # Return the option declaration and add missing default
+          # attributes.
+          opt = {
+            inherit name;
+            merge = mergeDefaultOption;
+            apply = id;
+          } // (head decls);
+
+          # Return the list of option sets.
+          optAttrs = map delayIf defs;
+
+          # return the list of option values.
+          # Remove undefined values that are coming from evalIf.
+          optValues = filter (x: !isNotdef x) (map evalIf defs);
         in
-          if test.right == [] then filterOptionSets name (map delayIf test.wrong)
-          else if tail test.right != [] then  throw "Multiple options for '${name}'."
-          else { inherit name; } // (head test.right)
+          if decls == [] then handleOptionSets optionHandler name optAttrs
+          else addErrorContext "while evaluating the option ${name}:" (
+            if tail decls != [] then throw "Multiple options."
+            else export opt optValues
+          )
       ) opts
-    else {};
+   else addErrorContext "while evaluating ${path}:" (notHandle opts);
+
+  # Merge option sets and produce a set of values which is the merging of
+  # all options declare and defined.  If no values are defined for an
+  # option, then the default value is used otherwise it use the merge
+  # function of each option to get the result.
+  mergeOptionSets = noOption: newMergeOptionSets; # ignore argument
+  newMergeOptionSets =
+    handleOptionSets {
+      export = opt: values:
+        opt.apply (
+          if values == [] then
+            if opt ? default then opt.default
+            else throw "Not defined."
+          else opt.merge values
+        );
+      notHandle = opts: throw "Used without option declaration.";
+    };
+
+  # Keep all option declarations.
+  filterOptionSets =
+    handleOptionSets {
+      export = opt: values: opt;
+      notHandle = opts: {};
+    };
 
   # Evaluate a list of option sets that would be merged with the
   # function "merge" which expects two arguments.  The attribute named
   # "require" is used to imports option declarations and bindings.
-  fixOptionSetsFun = merge: pkgs: opts:
+  #
+  # * cfg[0-9]: configuration
+  # * cfgSet[0-9]: configuration set
+  #
+  # merge: the function used to merge options sets.
+  # pkgs: is the set of packages available. (nixpkgs)
+  # opts: list of option sets or option set functions.
+  # config: result of this evaluation.
+  fixOptionSetsFun = merge: pkgs: opts: config:
     let
-      # ignore all conditions that are on require attributes.
-      rmRequireIf = conf:
-        let conf2 = delayIf conf; in
-        if conf2 ? require then
-          conf2 // { require = rmIf conf2.require; }
+      # remove possible mkIf to access the require attribute.
+      noImportConditions = cfgSet0:
+        let cfgSet1 = delayIf cfgSet0; in
+        if cfgSet1 ? require then
+          cfgSet1 // { require = rmIf cfgSet1.require; }
         else
-          conf2;
+          cfgSet1;
 
       # call configuration "files" with one of the existing convention.
-      optionSet = config: configFun:
-        if __isFunction configFun then
-          let result = configFun { inherit pkgs config; }; in
-        # {pkgs, config, ...}: {..}
-          if builtins.isAttrs result then result
-        # pkgs: config: {..}
-          else configFun pkgs config
-        # {..}
-        else configFun;
-
-      processConfig = config: configFun:
-        rmRequireIf (optionSet config configFun);
-
-      prop = config: rec {
-        key = id;
-        prepare = x: processConfig config x;
-        value = x: removeAttrs (prepare x) ["require"];
-        next = x: toList (getAttr ["require"] [] (prepare x));
-      };
-    in config:
-      merge "" (uniqFlatten (prop config) [] [] (toList opts));
+      argumentHandler = cfg:
+        let
+          # {..}
+          cfg0 = cfg;
+          # {pkgs, config, ...}: {..}
+          cfg1 = cfg { inherit pkgs config merge; };
+          # pkgs: config: {..}
+          cfg2 = cfg {} {};
+        in
+        if __isFunction cfg0 then
+          if builtins.isAttrs cfg1 then cfg1
+          else builtins.trace "Use '{pkgs, config, ...}:'." cfg2
+        else cfg0;
+
+      preprocess = cfg0:
+        let cfg1 = argumentHandler cfg0;
+            cfg2 = noImportConditions cfg1;
+        in cfg2;
+
+      getRequire = x: toList (getAttr ["require"] [] (preprocess x));
+      rmRequire = x: removeAttrs (preprocess x) ["require"];
+    in
+      merge "" (
+        map rmRequire (
+          uniqFlatten getRequire [] [] (toList opts)
+        )
+      );
 
   fixOptionSets = merge: pkgs: opts:
     fix (fixOptionSetsFun merge pkgs opts);
@@ -592,6 +646,13 @@ rec {
 	innerModifySumArgs f x (a // b);
   modifySumArgs = f: x: innerModifySumArgs f x {};
 
+  # Wrapper aroung addErrorContext.  The builtin should not be used
+  # directly.
+  addErrorContext =
+    if builtins ? addErrorContext
+    then builtins.addErrorContext
+    else msg: val: val;
+
   debugVal = if builtins ? trace then x: (builtins.trace x x) else x: x;
   debugXMLVal = if builtins ? trace then x: (builtins.trace (builtins.toXML x) x) else x: x;
 
diff --git a/pkgs/misc/bleeding-edge-fetch-infos.nix b/pkgs/misc/bleeding-edge-fetch-infos.nix
index 3ab6bcd44f56..e398fd08b7f5 100644
--- a/pkgs/misc/bleeding-edge-fetch-infos.nix
+++ b/pkgs/misc/bleeding-edge-fetch-infos.nix
@@ -15,9 +15,9 @@
     url = http://mawercer.de/~nix/repos/ghc_lambdavm.tar.gz;
     sha256 = "3d10e839b8226987383e870258ff38b56442ff254688f7c50983850676f992cb";
   };
-  git = args: with args; fetchurl {
-    url = http://mawercer.de/~nix/repos/git.tar.gz;
-    sha256 = "1f0df3da8d6c9425ab80bd9c623570b7a35e5a622fbf56b903e1bf82a01d4e5f";
+  git = args: with args; fetchurl { # Tue Jan 20 22:28:04 UTC 2009
+    url = "http://mawercer.de/~nix/repos/git-a227bce65f3fcdfbf28f109809b7e2e518b906f8.tar.gz";
+    sha256 = "7420a385718c7edec956fb0cba1a8a11d4b45edc833d7c06bf7c4764188ce180";
   };
   happs_data = args: with args; fetchurl {
     url = http://mawercer.de/~nix/repos/happs_data.tar.gz;
@@ -219,9 +219,9 @@
     url = "http://mawercer.de/~nix/repos/cinelerra-9f9adf2ad5472886d5bc43a05c6aa8077cabd967.tar.gz";
     sha256 = "1e84ff59dcd7a3c80343eb9be302f822e510c95398fd1a6c8f2e4b163fd51e45";
   };
-  hg2git = args: with args; fetchurl { # Sat Oct 18 21:02:44 UTC 2008
-    url = "http://mawercer.de/~nix/repos/hg2git-4c77e121b739d2aac8a23352503763343823f870.tar.gz";
-    sha256 = "22354d36937bf9e5d3e3dfc1a3ef9e3f2bc183b8e114a23958a2b10f83abc97e";
+  hg2git = args: with args; fetchurl { # Tue Jan 20 22:49:27 UTC 2009
+    url = "http://mawercer.de/~nix/repos/hg2git-0fabb998a19c850cb8fcfcf72414b18070d94378.tar.gz";
+    sha256 = "ce7cd089681e6eee24f5bc9ab3b73f1e49d368b83a32d00695eadca00533ac5d";
   };
  octave = args: with args; fetchurl { # Mon Dec  1 23:23:49 UTC 2008
    url = "http://mawercer.de/~nix/repos/octave-03b414516dd8.tar.gz";
@@ -231,4 +231,12 @@
     url = "http://mawercer.de/~nix/repos/zsh-2008-12-21_12-50-23.tar.gz";
     sha256 = "9af16f89205759d7ade51268dbdfa02cec3db10b35dc7a56ffe8e1fde2074ae7";
   };
+  topGit = args: with args; fetchurl { # Tue Jan 20 21:29:50 UTC 2009
+    url = "http://mawercer.de/~nix/repos/topGit-5b823563a678fe46ddf768977ab9d00525945ec6.tar.gz";
+    sha256 = "e027311b2b058bab05a7175546854d61325bba591109e68c59209edc6939e5cb";
+  };
+  qgit = args: with args; fetchurl { # Tue Jan 20 21:35:00 UTC 2009
+    url = "http://mawercer.de/~nix/repos/qgit-b5dd5fd691e9423124cf356abe26e641bc33d159.tar.gz";
+    sha256 = "e04de308feb40716a6b02d1f69dc834f4fa859865b64e8f91beb6018fa953f96";
+  };
 }
diff --git a/pkgs/misc/ghostscript/builder.sh b/pkgs/misc/ghostscript/builder.sh
index 13ec107ed9ab..d2e33f26bfc2 100644
--- a/pkgs/misc/ghostscript/builder.sh
+++ b/pkgs/misc/ghostscript/builder.sh
@@ -4,6 +4,9 @@ preConfigure=preConfigure
 preConfigure() {
     # "ijs" is impure: it contains symlinks to /usr/share/automake etc.!
     rm -rf ijs/ltmain.sh
+
+    # Don't install stuff in the Cups store path.
+    makeFlagsArray=(CUPSSERVERBIN=$out/lib/cups CUPSSERVERROOT=$out/etc/cups CUPSDATA=$out/share/cups)
 }
 
 installTargets="install install-so install-data install-doc install-man"
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 1c0c82a94a33..6f9aa8530b6b 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -1,13 +1,17 @@
-{ stdenv, fetchurl, libjpeg, libpng, zlib
+{ stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl
 , x11Support, x11 ? null
+, cupsSupport ? false, cups ? null
 }:
 
 assert x11Support -> x11 != null;
+assert cupsSupport -> cups != null;
 
 stdenv.mkDerivation rec {
   name = "ghostscript-8.62.0";
   
   builder = ./builder.sh;
+
+  x = true;
   
   src = fetchurl {
     url = "mirror://gnu/ghostscript/gnu-${name}.tar.bz2"; 
@@ -26,8 +30,9 @@ stdenv.mkDerivation rec {
     # ... add other fonts here
   ];
 
-  buildInputs = [libjpeg libpng zlib]
-    ++ stdenv.lib.optional x11Support x11;
+  buildInputs = [libjpeg libpng libtiff zlib pkgconfig fontconfig openssl]
+    ++ stdenv.lib.optional x11Support x11
+    ++ stdenv.lib.optional cupsSupport cups;
 
   configureFlags = "
     --disable-static
diff --git a/pkgs/os-specific/linux/alsa/1.0.19.nix b/pkgs/os-specific/linux/alsa/1.0.19.nix
new file mode 100644
index 000000000000..60c848fcaccd
--- /dev/null
+++ b/pkgs/os-specific/linux/alsa/1.0.19.nix
@@ -0,0 +1,14 @@
+args: with args;
+
+rec {
+  alsaLib = (import ./common.nix) {
+    aName = "lib";
+    sha256 = "11i898dc6qbachn046gl6dg6g7bl2k8crddl97f3z5i57bcjdvij";
+  } args;
+
+  alsaUtils = (import ./common.nix) {
+    aName = "utils";
+    sha256 = "1bcchd5nwgb2hy0z9c6jxbqlzirkh6wvxv6nldjcwmvqmvsj8j8z";
+    buildInputs = [alsaLib ncurses gettext];
+  } args;
+}
diff --git a/pkgs/os-specific/linux/alsa/common.nix b/pkgs/os-specific/linux/alsa/common.nix
index 218a4b91c8e7..b14d458d7378 100644
--- a/pkgs/os-specific/linux/alsa/common.nix
+++ b/pkgs/os-specific/linux/alsa/common.nix
@@ -9,5 +9,14 @@ args: with args; stdenv.mkDerivation rec {
 
   inherit buildInputs propagatedBuildInputs;
 
-  meta = { homepage = http://www.alsa-project.org; };
+  meta = {
+    description = "ALSA, the Advanced Linux Sound Architecture (${aName})";
+
+    longDescription = ''
+      The Advanced Linux Sound Architecture (ALSA) provides audio and
+      MIDI functionality to the Linux-based operating system.
+    '';
+
+    homepage = http://www.alsa-project.org/;
+  };
 }
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 11bac64ced7c..4db485c2c47c 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -34,6 +34,8 @@
 , # A list of additional statements to be appended to the
   # configuration file.
   extraConfig ? []
+
+, preConfigure ? ""
 }:
 
 assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
@@ -55,6 +57,8 @@ stdenv.mkDerivation {
   
   builder = ./builder.sh;
 
+  inherit preConfigure;
+
   inherit src config;
   
   patches = map (p: p.patch) kernelPatches;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
index a1e77b1b94bc..e0f8e953c101 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
@@ -5,11 +5,11 @@ assert !userModeLinux;
 import ./generic.nix (
 
   rec {
-    version = "2.6.27.11";
+    version = "2.6.27.13";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "0mwcycipbs7n9zzzarnlikyl0k7pcs8yk8n5mhz92illxgzzihjn";
+      sha256 = "1zxyid70nlzxmx08mrg6a2vafqvs6q1szlcix417d1qq52c88l9i";
     };
 
     features = {
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.28.nix b/pkgs/os-specific/linux/kernel/linux-2.6.28.nix
index bb42312b6333..4c5e0467c7ff 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.28.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.28.nix
@@ -5,11 +5,11 @@ assert !userModeLinux;
 import ./generic.nix (
 
   rec {
-    version = "2.6.28";
+    version = "2.6.28.2";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "1023nl992s4qmnwzbfz385azzpph58azi5rw4w0wwzzybv2rf3df";
+      sha256 = "0fw4wv9xnajsw3prp2p79470wsflpnigflyyg21s2lfy0xn66ay8";
     };
 
     features = {
diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix
index 024b1ffe9fa3..3a92c2f4d297 100644
--- a/pkgs/os-specific/linux/klibc/default.nix
+++ b/pkgs/os-specific/linux/klibc/default.nix
@@ -1,30 +1,34 @@
-{stdenv, fetchurl, perl, bison, mktemp, kernel
-  , version ? "1.5"
-  , sha256 ?  "1izhf8kscjymsvsvhcqw9awnmp94vwv70zdj09srg9bkpjj0n017"
-  , subdir ? ""
-  , addPreBuild ? ""
-}:
+{stdenv, fetchurl, perl, bison, mktemp, kernelHeaders}:
 
 assert stdenv.isLinux;
 
+let version = "1.5"; in
+
 stdenv.mkDerivation {
   name = "klibc-${version}";
-  #builder = ./builder.sh;
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/libs/klibc/klibc-${version}.tar.bz2";
+    sha256 = "1izhf8kscjymsvsvhcqw9awnmp94vwv70zdj09srg9bkpjj0n017";
+  };
+  
   makeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"];
+  
   preBuild = ''
     makeFlags=$(eval "echo $makeFlags")
 
-    mkdir -p linux/include
-    cp -prd $kernel/lib/modules/*/build/include/* linux/include/
+    mkdir linux
+    cp -prsd ${kernelHeaders}/include linux/
     chmod -R u+w linux/include/
-  '' + addPreBuild;
-  src = fetchurl {
-    url = "mirror://kernel/linux/libs/klibc/${subdir}klibc-${version}.tar.bz2";
-    inherit sha256;
-#    url = mirror://kernel/linux/libs/klibc/Testing/klibc-1.5.14.tar.bz2;
-#    sha256 = "1cmrqpgamnv2ns7dlxjm61zc88dxm4ff0aya413ij1lmhp2h2sfc";
-  };
-  inherit kernel;
+  ''; # */
+  
+  # Install static binaries as well.
+  postInstall = ''
+    dir=$out/lib/klibc/bin.static
+    mkdir $dir
+    cp $(find $(find . -name static) -type f ! -name "*.g" -a ! -name ".*") $dir/
+    cp usr/dash/sh $dir/
+  '';
+  
   buildInputs = [perl bison mktemp];
-  #patches = [./install.patch];
 }
diff --git a/pkgs/os-specific/linux/mingetty/builder.sh b/pkgs/os-specific/linux/mingetty/builder.sh
deleted file mode 100644
index 2a2d5005455f..000000000000
--- a/pkgs/os-specific/linux/mingetty/builder.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-source $stdenv/setup
-
-echo $out
-
-export DESTDIR=$out
-
-genericBuild
-
diff --git a/pkgs/os-specific/linux/mingetty/default.nix b/pkgs/os-specific/linux/mingetty/default.nix
index efb8240fdde5..fc3c50e1986e 100644
--- a/pkgs/os-specific/linux/mingetty/default.nix
+++ b/pkgs/os-specific/linux/mingetty/default.nix
@@ -1,11 +1,19 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "mingetty-1.07";
-  builder = ./builder.sh;
+  name = "mingetty-1.08";
+  
   src = fetchurl {
-    url = ftp://ftp.nluug.nl/pub/os/Linux/distr/debian/pool/main/m/mingetty/mingetty_1.07.orig.tar.gz;
-    md5 = "491dedf1ceff0e0f5f7bb9f55bf5213e";
+    url = mirror://sourceforge/mingetty/mingetty-1.08.tar.gz;
+    sha256 = "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g";
+  };
+
+  preInstall = ''
+    ensureDir $out/sbin $out/share/man/man8
+    makeFlagsArray=(SBINDIR=$out/sbin MANDIR=$out/share/man/man8)
+  '';
+
+  meta = {
+    homepage = http://sourceforge.net/projects/mingetty;
   };
-  patches = [./makefile.patch];
 }
diff --git a/pkgs/os-specific/linux/mingetty/makefile.patch b/pkgs/os-specific/linux/mingetty/makefile.patch
deleted file mode 100644
index 5b8091b6ff1c..000000000000
--- a/pkgs/os-specific/linux/mingetty/makefile.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -ruN mingetty-1.07.orig/Makefile mingetty-1.07.orig.new/Makefile
---- mingetty-1.07.orig/Makefile	2003-05-24 21:21:17.000000000 +0200
-+++ mingetty-1.07.orig.new/Makefile	2005-06-23 15:43:28.000000000 +0200
-@@ -1,4 +1,4 @@
--DESTDIR=
-+DESTDIR=$(out)
- CC=gcc
- CFLAGS=-O2 -Wall -W -pipe -D_GNU_SOURCE
- MANDIR=/usr/share/man/man8
-@@ -7,8 +7,8 @@
- all:		mingetty
- 
- install:	all
--		install -m 0755 mingetty $(DESTDIR)$(SBINDIR)
--		install -m 0644 mingetty.8 $(DESTDIR)$(MANDIR)
-+		install -D -m 0755 mingetty $(DESTDIR)$(SBINDIR)/mingetty
-+		install -D -m 0644 mingetty.8 $(DESTDIR)$(MANDIR)/mingetty.8
- 
- mingetty:	mingetty.o
- 
diff --git a/pkgs/os-specific/linux/splashutils/1.3.nix b/pkgs/os-specific/linux/splashutils/1.3.nix
index 9775f66a1b79..51c53dd2a799 100644
--- a/pkgs/os-specific/linux/splashutils/1.3.nix
+++ b/pkgs/os-specific/linux/splashutils/1.3.nix
@@ -2,10 +2,12 @@
 
 stdenv.mkDerivation {
   name = "splashutils-1.3";
+  
   src = fetchurl {
     url = http://dev.gentoo.org/~spock/projects/splashutils/archive/splashutils-1.3.tar.bz2;
     md5 = "c7c92b98e34b860511aa57bd29d62f76";
   };
+  
   patches = [
     ./purity.patch
     ./no-fbsplash.patch
diff --git a/pkgs/os-specific/linux/splashutils/1.5.nix b/pkgs/os-specific/linux/splashutils/1.5.nix
index 2544b3f05654..48c1b0ff78ce 100644
--- a/pkgs/os-specific/linux/splashutils/1.5.nix
+++ b/pkgs/os-specific/linux/splashutils/1.5.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   name = "splashutils-1.5.4.3";
 
   src = fetchurl {
-    url = http://download.berlios.de/fbsplash/splashutils-1.5.4.3.tar.bz2;
+    url = http://dev.gentoo.org/~spock/projects/splashutils/current/splashutils-1.5.4.3.tar.bz2;
     sha256 = "0vn0ifqp9a3bmprzx2yr82hgq8m2y5xv8qcifs2plz6p3lidagpg";
   };
 
diff --git a/pkgs/os-specific/linux/splashutils/no-fbsplash.patch b/pkgs/os-specific/linux/splashutils/no-fbsplash.patch
index a39fda6591c3..f83275ea84a1 100644
--- a/pkgs/os-specific/linux/splashutils/no-fbsplash.patch
+++ b/pkgs/os-specific/linux/splashutils/no-fbsplash.patch
@@ -1,21 +1,67 @@
-diff --git a/splash.h b/splash.h
-index 5dccfe0..eae2939 100644
---- a/splash.h
-+++ b/splash.h
-@@ -30,10 +30,14 @@ #endif
-  */
- #ifdef TARGET_KERNEL
- 	#include <linux/fb.h>
--	#include <linux/console_splash.h>
-+	#ifdef CONFIG_FBSPLASH
-+		#include <linux/console_splash.h>
-+	#endif
- #else
- 	#include <fb.h>
--	#include <console_splash.h>
-+	#ifdef CONFIG_FBSPLASH
-+		#include <console_splash.h>
-+	#endif
- #endif
- 
- /*
+diff -rc splashutils-1.3-orig/splash.h splashutils-1.3/splash.h
+*** splashutils-1.3-orig/splash.h	2006-07-15 00:02:23.000000000 +0200
+--- splashutils-1.3/splash.h	2009-01-29 16:41:00.000000000 +0100
+***************
+*** 21,40 ****
+   */
+  #ifdef TARGET_KERNEL
+  	#include <linux/fb.h>
+- 	#include <linux/console_splash.h>
+  #else
+  	#include <fb.h>
+- 	#include <console_splash.h>
+  #endif
+  
+  /*
+   * Necessary to avoid compilation errors when fbsplash support is
+   * disabled.
+   */
+- #if !defined(CONFIG_FBSPLASH)
+  	#define FB_SPLASH_IO_ORIG_USER		0
+  	#define FB_SPLASH_IO_ORIG_KERNEL	1
+! #endif
+  
+  /*
+   * Adjustable settings
+--- 21,60 ----
+   */
+  #ifdef TARGET_KERNEL
+  	#include <linux/fb.h>
+  #else
+  	#include <fb.h>
+  #endif
+  
+  /*
+   * Necessary to avoid compilation errors when fbsplash support is
+   * disabled.
+   */
+  	#define FB_SPLASH_IO_ORIG_USER		0
+  	#define FB_SPLASH_IO_ORIG_KERNEL	1
+! 
+! #define FBIOSPLASH_SETCFG      _IOWR('F', 0x19, struct fb_splash_iowrapper)
+! #define FBIOSPLASH_GETCFG      _IOR('F', 0x1A, struct fb_splash_iowrapper)
+! #define FBIOSPLASH_SETSTATE    _IOWR('F', 0x1B, struct fb_splash_iowrapper)
+! #define FBIOSPLASH_GETSTATE    _IOR('F', 0x1C, struct fb_splash_iowrapper)
+! #define FBIOSPLASH_SETPIC      _IOWR('F', 0x1D, struct fb_splash_iowrapper)
+! 
+! #define FB_SPLASH_THEME_LEN            128     /* Maximum lenght of a theme name */
+! 
+! struct fb_splash_iowrapper
+! {
+!        unsigned short vc;              /* Virtual console */
+!        unsigned char origin;           /* Point of origin of the request */
+!        void *data;
+! };
+! 
+! /* A structure used by the framebuffer splash code (drivers/video/fbsplash.c) */
+! struct vc_splash {
+!        __u8 bg_color;                          /* The color that is to be treated as transparent */
+!        __u8 state;                             /* Current splash state: 0 = off, 1 = on */
+!        __u16 tx, ty;                           /* Top left corner coordinates of the text field */
+!        __u16 twidth, theight;                  /* Width and height of the text field */
+!        char* theme;
+! };
+  
+  /*
+   * Adjustable settings
+Only in splashutils-1.3/: splash.h~
diff --git a/pkgs/servers/dict/1.9.15.nix b/pkgs/servers/dict/1.9.15.nix
index b3d104b39011..2886bb24ae9b 100644
--- a/pkgs/servers/dict/1.9.15.nix
+++ b/pkgs/servers/dict/1.9.15.nix
@@ -2,7 +2,7 @@ args : with args; with builderDefs;
         let localDefs = builderDefs.passthru.function ((rec {
                 src = /* put a fetchurl here */
                 fetchurl {
-                        url = ftp://ftp.dict.org/pub/dict/dictd-1.9.15.tar.gz;
+                        url = mirror://sourceforge/dict/dictd-1.9.15.tar.gz;
                         sha256 = "0p41yf72l0igmshz6vxy3hm51z25600vrnb9j2jpgws4c03fqnac";
                 };
 
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index 7244eac46318..1e2ffd31d944 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gnum4, gdbm, libtool, glib, dbus, hal, avahi
-, gconf, liboil, intltool, gettext
+, gconf, liboil, libX11, libICE, libSM, intltool, gettext, alsaLib
 , libsamplerate, libsndfile, speex }:
 
 stdenv.mkDerivation rec {
@@ -12,12 +12,20 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     pkgconfig gnum4 gdbm libtool glib dbus hal avahi gconf liboil
-    libsamplerate libsndfile speex
+    libsamplerate libsndfile speex alsaLib
+    libX11 libICE libSM
     intltool gettext
   ];
 
+  preConfigure = ''
+    # Disable the ConsoleKit module since we don't currently have that
+    # on NixOS.
+    sed -i "src/daemon/default.pa.in" \
+        -e 's/^\( *load-module \+module-console-kit\)/# \1/g'
+  '';
+
   configureFlags = ''
-    --disable-solaris --disable-jack --disable-bluez --disable-polkit
+    --disable-solaris --disable-jack --disable-bluez --disable-polkit --with-x --enable-asyncdns --localstatedir=/var
   '';
 
   meta = {
diff --git a/pkgs/servers/samba/default.nix b/pkgs/servers/samba/default.nix
index 862fc78c7eb3..d0da8808da79 100644
--- a/pkgs/servers/samba/default.nix
+++ b/pkgs/servers/samba/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "samba-3.2.4";
+  name = "samba-3.2.7";
 
   src = fetchurl {
-    url = http://us3.samba.org/samba/ftp/stable/samba-3.2.4.tar.gz;
-    sha256 = "1srypwpmfhw30kd7zdv7q2dpdjlzdwb28lc34z1dnls4wbpaapm8";
+    url = http://us3.samba.org/samba/ftp/stable/samba-3.2.7.tar.gz;
+    sha256 = "18q4q1ay9dsk3djl1s2ibj51n8c111y05h5dsc2ssl2wg32vhasg";
   };
 
   buildInputs = [readline pam openldap kerberos popt iniparser libunwind fam acl];
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 350b71184780..12137bb9fe31 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1004,15 +1004,15 @@ rec {
     buildInputs = [pkgconfig libfontenc freetype xproto zlib ];
   }) // {inherit libfontenc freetype xproto zlib ;};
     
-  pixman = (stdenv.mkDerivation {
-    name = "pixman-0.12.0";
+  pixman = (stdenv.mkDerivation rec {
+    name = "pixman-0.13.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/pixman-0.12.0.tar.bz2;
-      sha256 = "0a5j4lxlsn4sns2zcv9z32jh4mll7qv8yb5dyx1gphl258w58ax8";
+      url = "http://mirror.switch.ch/ftp/mirror/X11/pub/individual/lib/${name}.tar.bz2";
+      sha256 = "1p3wzgzaivl4f0vm6p628jav8v4hz8kdml50a3agxiq447frysvv";
     };
-    buildInputs = [pkgconfig perl ];
-  }) // {inherit perl ;};
+    buildInputs = [ perl pkgconfig ];
+  }) // {inherit ;};
     
   printproto = (stdenv.mkDerivation {
     name = "printproto-1.0.4";
diff --git a/pkgs/stdenv/linux/test.nix b/pkgs/stdenv/linux/test.nix
index 8125c76f723c..c0beb34625d1 100644
--- a/pkgs/stdenv/linux/test.nix
+++ b/pkgs/stdenv/linux/test.nix
@@ -14,6 +14,17 @@ rec {
   gcc = gcc43;
 
 
+  curl = import ../../tools/networking/curl {
+    inherit fetchurl;
+    stdenv = makeStaticBinaries stdenv;
+    zlibSupport = false;
+    sslSupport = false;
+  };
+
+
+  foo = kernelPackages.klibc;
+
+
   build = 
 
     stdenv.mkDerivation {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0d0139be5f53..230f31154263 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -563,6 +563,10 @@ let
     inherit fetchurl stdenv;
   };
 
+  cdecl = import ../development/tools/cdecl {
+    inherit fetchurl stdenv yacc flex readline;
+  };
+
   cdrdao = import ../tools/cd-dvd/cdrdao {
     inherit fetchurl stdenv;
   };
@@ -634,6 +638,10 @@ let
 
   ddrescue = builderDefsPackage (selectVersion ../tools/system/ddrescue "1.8") {};
 
+  dev86 = import ../development/compilers/dev86 {
+    inherit fetchurl stdenv;
+  };
+
   dnsmasq = import ../tools/networking/dnsmasq {
     # TODO i18n can be installed as well, implement it?
     inherit fetchurl stdenv;
@@ -855,11 +863,6 @@ let
     inherit fetchurl stdenv ocaml;
   };
 
-  hg2git = import ../tools/misc/hg2git {
-    inherit fetchurl stdenv mercurial coreutils git makeWrapper;
-    inherit (bleedingEdgeRepos) sourceByName;
-  };
-
   highlight = builderDefsPackage (selectVersion ../tools/text/highlight "2.6.10") {
     inherit getopt;
   };
@@ -877,6 +880,10 @@ let
   };
   */
 
+  iasl = import ../development/compilers/iasl {
+    inherit fetchurl stdenv bison flex;
+  };
+
   idutils = import ../tools/misc/idutils {
     inherit fetchurl stdenv emacs;
   };
@@ -2508,6 +2515,10 @@ let
       inherit fetchurl stdenv;
     });
 
+  ragel = import ../development/tools/parsing/ragel {
+    inherit composableDerivation fetchurl transfig texLive;
+  };
+
   # couldn't find the source yet
   selenium_rc_binary = import ../development/tools/selenium/remote-control {
     inherit fetchurl stdenv unzip;
@@ -2703,7 +2714,7 @@ let
   };
 
   cairomm = import ../development/libraries/cairomm {
-    inherit fetchurl stdenv pkgconfig cairo x11 fontconfig freetype;
+    inherit fetchurl stdenv pkgconfig cairo x11 fontconfig freetype libsigcxx;
   };
 
   chipmunk = builderDefsPackage (import ../development/libraries/chipmunk) {
@@ -3046,6 +3057,13 @@ let
     xineramaSupport = true;
   };
 
+  gtkLibs214 = import ../development/libraries/gtk-libs/2.14 {
+    inherit fetchurl stdenv pkgconfig gettext perl x11 jasper
+            libtiff libjpeg libpng cairo libsigcxx cairomm;
+    inherit (xlibs) libXinerama libXrandr;
+    xineramaSupport = true;
+  };
+
   gtkmozembedsharp = import ../development/libraries/gtkmozembed-sharp {
     inherit fetchurl stdenv mono pkgconfig monoDLLFixer;
     inherit (gnome) gtk;
@@ -3177,6 +3195,12 @@ let
     inherit fetchurl stdenv ncurses;
   };
 
+  libcanberra = import ../development/libraries/libcanberra {
+    inherit fetchurl stdenv pkgconfig libtool alsaLib pulseaudio libvorbis;
+    inherit (gtkLibs214) gtk gthread;
+    gstreamer = gst_all.gstreamer;
+  };
+
   libcdaudio = import ../development/libraries/libcdaudio {
     inherit fetchurl stdenv;
   };
@@ -3574,6 +3598,10 @@ let
     inherit fetchurl stdenv zlib libxml2;
   };
 
+  opencascade = import ../development/libraries/opencascade {
+    inherit fetchurl stdenv mesa qt4 tcl tk;
+  };
+
   # this ctl version is needed by openexr_viewers
   openexr_ctl = import ../development/libraries/openexr_ctl {
     inherit fetchurl stdenv ilmbase ctl;
@@ -3645,6 +3673,15 @@ let
     inherit fetchurl stdenv;
   };
 
+  qt3gcc33 = import ../development/libraries/qt-3 {
+    stdenv = overrideGCC stdenv gcc33;
+    inherit fetchurl x11 zlib libjpeg libpng which mysql mesa;
+    inherit (xlibs) xextproto libXft libXrender libXrandr randrproto
+      libXmu libXinerama xineramaproto libXcursor;
+    openglSupport = false;
+    mysqlSupport = false;
+  };
+
   qt3 = import ../development/libraries/qt-3 {
     inherit fetchurl stdenv x11 zlib libjpeg libpng which mysql mesa;
     inherit (xlibs) xextproto libXft libXrender libXrandr randrproto
@@ -3810,7 +3847,7 @@ let
   wxGTK28fun = lib.sumArgs (import ../development/libraries/wxGTK-2.8);
 
   wxGTK28deps = wxGTK28fun {
-    inherit fetchurl stdenv pkgconfig;
+    inherit fetchurl stdenv pkgconfig mesa;
     inherit (gtkLibs) gtk;
     inherit (xlibs) libXinerama libSM libXxf86vm xf86vidmodeproto;
   };
@@ -5757,7 +5794,9 @@ let
       dbus hal avahi liboil libsamplerate libsndfile speex
       intltool gettext;
     inherit (gtkLibs) glib;
+    inherit (xlibs) libX11 libICE libSM;
     gconf = gnome.GConf;
+    alsaLib = alsa_1_0_19.alsaLib;  # Needs ALSA >= 1.0.17.
   };
 
   tomcat_connectors = import ../servers/http/apache-modules/tomcat-connectors {
@@ -5892,9 +5931,16 @@ let
   };
 
   alsaLib = alsa.alsaLib;
-
   alsaUtils = alsa.alsaUtils;
 
+  # A newer ALSA.  Make it the default during the next `stdenv-updates' merge.
+  alsa_1_0_19 = import ../os-specific/linux/alsa/1.0.19.nix {
+    inherit fetchurl stdenv ncurses gettext;
+    version = "1.0.19";
+  };
+  alsaLib_1_0_19 = alsa_1_0_19.alsaLib;
+  alsaUtils_1_0_19 = alsa_1_0_19.alsaUtils;
+
   blcr = builderDefsPackage (selectVersion ../os-specific/linux/blcr "0.6.5"){
     inherit perl;
   };
@@ -6135,7 +6181,7 @@ let
           "# CONFIG_PROC_MM_DUMPABLE is not set\n";
       }
       { name = "fbsplash-0.9.2-r5-2.6.21";
-        patch = fetchurl {
+        patch = fetchurl { # !!! missing!
           url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.21/4200_fbsplash-0.9.2-r5.patch;
           sha256 = "00s8074fzsly2zpir885zqkvq267qyzg6vhsn7n1z2v1z78avxd8";
         };
@@ -6149,7 +6195,7 @@ let
     kernelPatches = [
       { name = "fbsplash-0.9.2-r5-2.6.21";
         patch = fetchurl {
-          url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.22/4200_fbsplash-0.9.2-r5.patch;
+          url = http://nixos.org/tarballs/4200_fbsplash-0.9.2-r5.patch;
           sha256 = "0822wwlf2dqsap5qslnnp0yl1nbvvvb76l73w2dd8zsyn0bqg3px";
         };
         extraConfig = "CONFIG_FB_SPLASH=y";
@@ -6183,7 +6229,7 @@ let
       */
       { name = "fbsplash-0.9.2-r5-2.6.21";
         patch = fetchurl {
-          url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.22/4200_fbsplash-0.9.2-r5.patch;
+          url = http://nixos.org/tarballs/4200_fbsplash-0.9.2-r5.patch;
           sha256 = "0822wwlf2dqsap5qslnnp0yl1nbvvvb76l73w2dd8zsyn0bqg3px";
         };
         extraConfig = "CONFIG_FB_SPLASH=y";
@@ -6337,33 +6383,11 @@ let
       inherit kernel;
     };
 
-    # Actually, klibc builds fine with the static kernelHeaders, but
-    # splashutils expects a klibc with patched headers...
-    klibc = composedArgsAndFun (import ../os-specific/linux/klibc) {
-      inherit fetchurl stdenv perl bison mktemp kernel;
-    };
-
-    klibcShrunk = composedArgsAndFun (import ../os-specific/linux/klibc/shrunk.nix) {
-      inherit stdenv klibc;
-    };
-
     splashutils =
       if kernel.features ? fbSplash then splashutils_13 else
       if kernel.features ? fbConDecor && system != "x86_64-linux" then splashutils_15 else
       null;
 
-    splashutils_13 = import ../os-specific/linux/splashutils/1.3.nix {
-      inherit fetchurl stdenv klibc;
-      zlib = zlibStatic;
-      libjpeg = libjpegStatic;
-    };
-
-    splashutils_15 = import ../os-specific/linux/splashutils/1.5.nix {
-      inherit fetchurl stdenv klibc;
-      zlib = zlibStatic;
-      libjpeg = libjpegStatic;
-    };
-
     ext3cowtools = import ../os-specific/linux/ext3cow-tools {
       inherit stdenv fetchurl;
       kernel_ext3cowpatched = kernel;
@@ -6400,6 +6424,15 @@ let
       inherit fetchurl stdenv binutils pkgconfig kernel;
       inherit (gnome) gtk glib pango libglade;
     };
+
+    # Broken build, still. The install step fails, and I never tried to run that compiled.
+    virtualbox = import ../applications/virtualization/virtualbox/2.1.2.nix {
+      inherit stdenv fetchurl iasl dev86 libxslt libxml2 qt3 qt4 SDL hal
+          libcap libpng zlib kernel;
+      inherit (gtkLibs) glib;
+      inherit (xlibs) xproto libX11 libXext libXcursor;
+      inherit (gnome) libIDL;
+    };
   };
 
   # Build the kernel modules for the some of the kernels.
@@ -6413,7 +6446,7 @@ let
   kernelPackages = kernelPackages_2_6_25;
 
   customKernel = composedArgsAndFun (lib.sumTwoArgs (import ../os-specific/linux/kernel/generic.nix) {
-    inherit fetchurl stdenv perl mktemp module_init_tools lib;
+    inherit fetchurl stdenv perl mktemp module_init_tools;
   });
 
   libselinux = import ../os-specific/linux/libselinux {
@@ -6443,6 +6476,15 @@ let
     inherit fetchurl stdenv bison flex perl;
   };
 
+  klibc = composedArgsAndFun (import ../os-specific/linux/klibc) {
+    inherit fetchurl stdenv perl bison mktemp;
+    kernelHeaders = glibc.kernelHeaders;
+  };
+
+  klibcShrunk = composedArgsAndFun (import ../os-specific/linux/klibc/shrunk.nix) {
+    inherit stdenv klibc;
+  };
+
   kvm = kvm76;
 
   kvm57 = import ../os-specific/linux/kvm/57.nix {
@@ -6592,6 +6634,18 @@ let
     inherit fetchurl stdenv;
   };
 
+  splashutils_13 = import ../os-specific/linux/splashutils/1.3.nix {
+    inherit fetchurl stdenv klibc;
+    zlib = zlibStatic;
+    libjpeg = libjpegStatic;
+  };
+
+  splashutils_15 = import ../os-specific/linux/splashutils/1.5.nix {
+    inherit fetchurl stdenv klibc;
+    zlib = zlibStatic;
+    libjpeg = libjpegStatic;
+  };
+
   squashfsTools = import ../os-specific/linux/squashfs {
     inherit fetchurl stdenv zlib;
   };
@@ -7393,32 +7447,10 @@ let
     inherit (gnome) gtk libgtkhtml libart_lgpl;
   };
 
-  git = import ../applications/version-management/git {
-    inherit fetchurl stdenv curl openssl zlib expat perl gettext
-      asciidoc texinfo xmlto docbook2x
-      docbook_xsl docbook_xml_dtd_42 libxslt
-      cpio tcl tk makeWrapper subversion;
-    svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
-    guiSupport = getConfig ["git" "guiSupport"] false;
-    perlLibs = [perlLWP perlURI perlTermReadKey subversion];
-  };
-
-  gitGit = import ../applications/version-management/git/git-git.nix {
-    inherit fetchurl stdenv curl openssl zlib expat perl gettext
-      asciidoc texinfo xmlto docbook2x
-      docbook_xsl docbook_xml_dtd_42 libxslt
-      cpio tcl tk makeWrapper subversion autoconf;
-    inherit (bleedingEdgeRepos) sourceByName;
-    svnSupport = getConfig ["git" "svnSupport"] false; # for git-svn support
-    guiSupport = getConfig ["git" "guiSupport"] false;
-    perlLibs = [perlLWP perlURI perlTermReadKey subversion];
-  };
-
-  qgit = import ../applications/version-management/qgit {
-    inherit fetchurl stdenv;
-    inherit (xlibs) libXext libX11;
-    qt = qt3;
-  };
+  gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
+    inherit pkgs;
+  });
+  git = gitAndTools.git;
 
   qjackctl = import ../applications/audio/qjackctl {
     inherit fetchurl stdenv alsaLib jackaudio;
@@ -7757,9 +7789,9 @@ let
     inherit fetchurl zlib glibc stdenv;
 # stdenv = overrideGCC stdenv gcc40;
     inherit (xlibs) libX11 libSM libICE libXt libXext;
-    qt = qt3;
+    qt = qt3gcc33;
     #33motif = lesstif;
-    libstdcpp5 = (if (stdenv.system == "i686-linux") then gcc33 /* stdc++ 3.8 is used */ else gcc42).gcc;
+    libstdcpp5 = gcc33.gcc;
   };
 
   pan = import ../applications/networking/newsreaders/pan {
@@ -7770,7 +7802,7 @@ let
 
   pidgin = import ../applications/networking/instant-messengers/pidgin {
     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss
-      gtkspell aspell gettext ncurses avahi dbus dbus_glib lib;
+      gtkspell aspell gettext ncurses avahi dbus dbus_glib lib intltool;
     openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
     gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
     GStreamer = gst_all.gstreamer;
@@ -7917,10 +7949,6 @@ let
   };
 
 
-  stgit = import ../applications/version-management/stgit {
-    inherit fetchurl stdenv python git;
-  };
-
   stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
     inherit clisp texinfo;
   };
@@ -8458,6 +8486,10 @@ let
   ### DESKTOP ENVIRONMENTS
 
 
+  enlightenment = import ../desktops/enlightenment {
+    inherit stdenv fetchurl pkgconfig x11 xlibs dbus imlib2 freetype;
+  };
+
   gnome = recurseIntoAttrs (import ../desktops/gnome {
     inherit
       fetchurl stdenv pkgconfig
@@ -8640,13 +8672,17 @@ let
   };
 
   ghostscript = import ../misc/ghostscript {
-    inherit fetchurl stdenv libjpeg libpng zlib x11;
+    inherit fetchurl stdenv libjpeg libpng libtiff zlib x11 pkgconfig
+      fontconfig cups openssl;
     x11Support = false;
+    cupsSupport = true;
   };
 
   ghostscriptX = lowPrio (appendToName "with-X" (import ../misc/ghostscript {
-    inherit fetchurl stdenv libjpeg libpng zlib x11;
+    inherit fetchurl stdenv libjpeg libpng libtiff zlib x11 pkgconfig
+      fontconfig cups openssl;
     x11Support = true;
+    cupsSupport = true;
   }));
 
   gxemul = (import ../misc/gxemul) {
@@ -8889,6 +8925,10 @@ let
     inherit (xlibs) libX11;
   };
 
+  yafc = import ../applications/networking/yafc {
+    inherit fetchurl stdenv readline openssh;
+  };
+
   myEnvFun = import ../misc/my-env {
     inherit substituteAll pkgs;
     inherit (stdenv) mkDerivation;
diff --git a/pkgs/top-level/build-for-release.nix b/pkgs/top-level/build-for-release.nix
index 2ab5d421708f..c51fc40a3ac2 100644
--- a/pkgs/top-level/build-for-release.nix
+++ b/pkgs/top-level/build-for-release.nix
@@ -98,6 +98,7 @@ let
       kbd
       kcachegrind
       kdebase
+      klibc
       ktorrent
       kvm
       less
@@ -160,6 +161,8 @@ let
       seccure
       slim
       spidermonkey
+      splashutils_13
+      splashutils_15
       ssmtp
       strace
       su
@@ -242,36 +245,26 @@ let
       inherit (pkgs.kernelPackages_2_6_23)
         iwlwifi
         kernel
-        klibc
-        splashutils
         ;
     };
     kernelPackages_2_6_25 = pkgs.recurseIntoAttrs {
       inherit (pkgs.kernelPackages_2_6_25)
         kernel
-        klibc
-#        splashutils
         ;
     };
     kernelPackages_2_6_26 = pkgs.recurseIntoAttrs {
       inherit (pkgs.kernelPackages_2_6_26)
         kernel
-        klibc
-#        splashutils
         ;
     };
     kernelPackages_2_6_27 = pkgs.recurseIntoAttrs {
       inherit (pkgs.kernelPackages_2_6_27)
         kernel
-        klibc
-#        splashutils
         ;
     };
     kernelPackages_2_6_28 = pkgs.recurseIntoAttrs {
       inherit (pkgs.kernelPackages_2_6_28)
         kernel
-        klibc
-#        splashutils
         ;
     };
   };