summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2008-06-13 11:46:39 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2008-06-13 11:46:39 +0000
commitfc5eebdf8bbb2f65ab3b8bbd148346124e950abf (patch)
treea3217dad34a75da3ab3347a91c2118dea486ce26
parent4192f35202e34c74462c62332c03c0dbc1092fa2 (diff)
parentcd60dc0edee6f16e42afd266701fae9a42afd2ce (diff)
downloadnixpkgs-fc5eebdf8bbb2f65ab3b8bbd148346124e950abf.tar
nixpkgs-fc5eebdf8bbb2f65ab3b8bbd148346124e950abf.tar.gz
nixpkgs-fc5eebdf8bbb2f65ab3b8bbd148346124e950abf.tar.bz2
nixpkgs-fc5eebdf8bbb2f65ab3b8bbd148346124e950abf.tar.lz
nixpkgs-fc5eebdf8bbb2f65ab3b8bbd148346124e950abf.tar.xz
nixpkgs-fc5eebdf8bbb2f65ab3b8bbd148346124e950abf.tar.zst
nixpkgs-fc5eebdf8bbb2f65ab3b8bbd148346124e950abf.zip
* Merged the stdenv branch
  (https://svn.nixos.org/repos/nix/nixpkgs/branches/stdenv-updates
  -r10966:12061).

svn path=/nixpkgs/trunk/; revision=12073
-rw-r--r--pkgs/applications/editors/emacs-22/builder.sh21
-rw-r--r--pkgs/applications/editors/emacs-22/crt.patch41
-rw-r--r--pkgs/applications/editors/emacs-22/default.nix27
-rw-r--r--pkgs/applications/editors/emacs-22/makefile-pwd.patch129
-rw-r--r--pkgs/applications/networking/newsreaders/pan/default.nix8
-rw-r--r--pkgs/applications/networking/p2p/valknut/builder.sh2
-rw-r--r--pkgs/applications/video/mythtv/builder.sh4
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix6
-rw-r--r--pkgs/desktops/gnome/GConf.nix13
-rw-r--r--pkgs/desktops/gnome/default.nix149
-rw-r--r--pkgs/desktops/gnome/esound.nix8
-rw-r--r--pkgs/desktops/gnome/gail.nix7
-rw-r--r--pkgs/desktops/gnome/gnome-keyring.nix9
-rw-r--r--pkgs/desktops/gnome/gnome-terminal.nix18
-rw-r--r--pkgs/desktops/gnome/gnome-vfs.nix11
-rw-r--r--pkgs/desktops/gnome/libgnomecanvas.nix10
-rw-r--r--pkgs/desktops/gnome/libgnomeprint.nix12
-rw-r--r--pkgs/desktops/gnome/libgnomeprintui.nix13
-rw-r--r--pkgs/desktops/gnome/src-gnome-desktop-2.20.3.nix543
-rw-r--r--pkgs/desktops/gnome/src-gnome-desktop-2.22.1.nix599
-rw-r--r--pkgs/desktops/gnome/src-gnome-platform-2.16.3.nix6
-rw-r--r--pkgs/desktops/gnome/src-gnome-platform-2.20.3.nix179
-rw-r--r--pkgs/desktops/gnome/src-gnome-platform-2.22.1.nix165
-rw-r--r--pkgs/desktops/kde/kdebase/default.nix6
-rw-r--r--pkgs/desktops/kde/kdelibs/default.nix8
-rw-r--r--pkgs/development/compilers/abc/builder-binjar.sh4
-rw-r--r--pkgs/development/compilers/abc/builder.sh6
-rw-r--r--pkgs/development/compilers/abc/jasmin/builder.sh10
-rw-r--r--pkgs/development/compilers/abc/polyglot/builder.sh14
-rw-r--r--pkgs/development/compilers/abc/soot/builder.sh10
-rw-r--r--pkgs/development/compilers/gcc-4.2/default.nix8
-rw-r--r--pkgs/development/compilers/jdk/dlj-bundle-builder.sh2
-rw-r--r--pkgs/development/compilers/qcmm/builder.sh4
-rw-r--r--pkgs/development/libraries/acl/acl-2.2.45-patch222
-rw-r--r--pkgs/development/libraries/acl/builder.sh12
-rw-r--r--pkgs/development/libraries/acl/default.nix24
-rw-r--r--pkgs/development/libraries/attr/attr-2.4.32-makefile.patch25
-rw-r--r--pkgs/development/libraries/attr/attr-2.4.32.patch171
-rw-r--r--pkgs/development/libraries/attr/builder.sh11
-rw-r--r--pkgs/development/libraries/attr/default.nix16
-rw-r--r--pkgs/development/libraries/audiofile/default.nix9
-rw-r--r--pkgs/development/libraries/cairo/default.nix27
-rw-r--r--pkgs/development/libraries/fontconfig/default.nix18
-rw-r--r--pkgs/development/libraries/freetype/default.nix12
-rw-r--r--pkgs/development/libraries/glibc-2.7/builder.sh3
-rw-r--r--pkgs/development/libraries/glibc-2.7/default.nix25
-rw-r--r--pkgs/development/libraries/glibc-2.7/nss-skip-unavail.patch25
-rw-r--r--pkgs/development/libraries/gnutls/default.nix2
-rw-r--r--pkgs/development/libraries/gtk-libs/2.12/atk/default.nix6
-rw-r--r--pkgs/development/libraries/gtk-libs/2.12/glib/default.nix11
-rw-r--r--pkgs/development/libraries/gtk-libs/2.12/glibmm/default.nix7
-rw-r--r--pkgs/development/libraries/gtk-libs/2.12/gtk+/default.nix22
-rw-r--r--pkgs/development/libraries/gtk-libs/2.12/gtkmm/default.nix3
-rw-r--r--pkgs/development/libraries/gtk-libs/2.12/pango/default.nix19
-rw-r--r--pkgs/development/libraries/libpng/default.nix14
-rw-r--r--pkgs/development/libraries/librsvg/default.nix17
-rw-r--r--pkgs/development/libraries/libtasn1/default.nix15
-rw-r--r--pkgs/development/libraries/libxml2/default.nix6
-rw-r--r--pkgs/development/libraries/libxslt/default.nix6
-rw-r--r--pkgs/development/libraries/openssl/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/scons/builder.sh8
-rw-r--r--pkgs/development/tools/misc/binutils/builder.sh12
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix18
-rw-r--r--pkgs/development/tools/misc/binutils/new-dtags.patch10
-rw-r--r--pkgs/development/tools/misc/patchelf/default.nix9
-rw-r--r--pkgs/development/tools/misc/pkgconfig/default.nix10
-rw-r--r--pkgs/development/tools/misc/pkgconfig/setup-hook.sh1
-rw-r--r--pkgs/lib/default.nix2
-rw-r--r--pkgs/os-specific/linux/libcap/default.nix6
-rw-r--r--pkgs/os-specific/linux/nss_ldap/default.nix8
-rwxr-xr-xpkgs/os-specific/linux/nvidia/builder.sh16
-rw-r--r--pkgs/os-specific/linux/nvidia/default.nix13
-rw-r--r--pkgs/servers/x11/xorg/default.nix30
-rw-r--r--pkgs/servers/x11/xorg/tarballs2
-rw-r--r--pkgs/shells/bash/default.nix6
-rw-r--r--pkgs/stdenv/generic/setup.sh153
-rw-r--r--pkgs/stdenv/linux/default.nix23
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools.sh12
-rw-r--r--pkgs/tools/archivers/gnutar/default.nix6
-rw-r--r--pkgs/tools/backup/rdiff-backup/default.nix20
-rw-r--r--pkgs/tools/compression/bzip2/default.nix8
-rw-r--r--pkgs/tools/graphics/glxinfo/default.nix8
-rw-r--r--pkgs/tools/graphics/transfig/builder.sh2
-rw-r--r--pkgs/tools/misc/coreutils/default.nix10
-rw-r--r--pkgs/tools/misc/findutils/default.nix6
-rw-r--r--pkgs/tools/networking/curl/connect-timeout.patch50
-rw-r--r--pkgs/tools/networking/curl/default.nix19
-rw-r--r--pkgs/top-level/all-packages.nix70
-rw-r--r--pkgs/top-level/build-for-release.nix12
89 files changed, 1487 insertions, 1853 deletions
diff --git a/pkgs/applications/editors/emacs-22/builder.sh b/pkgs/applications/editors/emacs-22/builder.sh
index e9c909739d5..6bb6c54a5b8 100644
--- a/pkgs/applications/editors/emacs-22/builder.sh
+++ b/pkgs/applications/editors/emacs-22/builder.sh
@@ -1,13 +1,20 @@
 source $stdenv/setup
 
-myglibc=`cat ${NIX_GCC}/nix-support/orig-libc`
-echo "glibc: $myglibc" 
+preConfigure=preConfigure
+preConfigure() {
+    libc=$(cat ${NIX_GCC}/nix-support/orig-libc)
+    echo "libc: $libc"
 
-postConfigure() {
-  cp $myglibc/lib/crt1.o src
-  cp $myglibc/lib/crti.o src
-  cp $myglibc/lib/crtn.o src
+    for i in src/s/*.h src/m/*.h; do
+        substituteInPlace $i \
+            --replace /usr/lib/crt1.o $libc/lib/crt1.o \
+            --replace /usr/lib/crti.o $libc/lib/crti.o \
+            --replace /usr/lib/crtn.o $libc/lib/crtn.o
+    done
+
+    for i in Makefile.in ./src/Makefile.in ./lib-src/Makefile.in ./leim/Makefile.in; do
+        substituteInPlace $i --replace /bin/pwd pwd
+    done
 }
-postConfigure=postConfigure
 
 genericBuild
diff --git a/pkgs/applications/editors/emacs-22/crt.patch b/pkgs/applications/editors/emacs-22/crt.patch
deleted file mode 100644
index 93f17643a1a..00000000000
--- a/pkgs/applications/editors/emacs-22/crt.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Only in emacs-21.3: configure.in~
-Only in emacs-21.3: patchfile
-Only in emacs-21.3/src: Makefile.in~
-diff -rc emacs-orig/src/s/gnu-linux.h emacs-21.3/src/s/gnu-linux.h
-*** emacs-orig/src/s/gnu-linux.h	2001-09-28 17:50:04.000000000 +0200
---- emacs-21.3/src/s/gnu-linux.h	2004-10-06 13:13:19.000000000 +0200
-***************
-*** 173,179 ****
-  /* GNU/Linux usually has crt0.o in a non-standard place */
-  #define START_FILES pre-crt0.o /usr/lib/crt0.o
-  #else
-! #define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
-  #endif
-  
-  #ifdef __ELF__
---- 173,179 ----
-  /* GNU/Linux usually has crt0.o in a non-standard place */
-  #define START_FILES pre-crt0.o /usr/lib/crt0.o
-  #else
-! #define START_FILES pre-crt0.o crt1.o crti.o
-  #endif
-  
-  #ifdef __ELF__
-***************
-*** 225,231 ****
-  #else
-  #undef LIB_GCC
-  #define LIB_GCC
-! #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o
-  #endif
-  
-  /* Don't use -g in test compiles in configure.
---- 225,231 ----
-  #else
-  #undef LIB_GCC
-  #define LIB_GCC
-! #define LIB_STANDARD -lgcc -lc -lgcc crtn.o
-  #endif
-  
-  /* Don't use -g in test compiles in configure.
-Only in emacs-21.3/src/s: gnu-linux.h~
diff --git a/pkgs/applications/editors/emacs-22/default.nix b/pkgs/applications/editors/emacs-22/default.nix
index d527e305154..17b8386bb72 100644
--- a/pkgs/applications/editors/emacs-22/default.nix
+++ b/pkgs/applications/editors/emacs-22/default.nix
@@ -13,19 +13,26 @@ assert xpmSupport -> libXpm != null;
 assert gtkGUI -> pkgconfig != null && gtk != null;
 
 stdenv.mkDerivation {
-  name = "emacs-22.1";
+  name = "emacs-22.2";
 
   builder = ./builder.sh;
+  
   src = fetchurl {
-    url = mirror://gnu/emacs/emacs-22.1.tar.gz;
-    sha256 = "1l1y3il98pq3cz464p244wz2d3nga5lq8fkw5pwp5r97f7pkpi0y";
+    url = mirror://gnu/emacs/emacs-22.2.tar.gz;
+    md5 = "d6ee586b8752351334ebf072904c4d51";
   };
-  patches = [./crt.patch ./makefile-pwd.patch];
-  buildInputs = [
-    ncurses x11
-    (if xawSupport then if xaw3dSupport then Xaw3d else libXaw else null)
-    (if xpmSupport then libXpm else null)
-  ] ++ (if gtkGUI then [pkgconfig gtk] else []);
+  
+  buildInputs = [ncurses x11]
+    ++ stdenv.lib.optional xawSupport (if xaw3dSupport then Xaw3d else libXaw)
+    ++ stdenv.lib.optional xpmSupport libXpm
+    ++ stdenv.lib.optionals gtkGUI [pkgconfig gtk];
+  
   configureFlags =
-    if gtkGUI then ["--with-x-toolkit=gtk"] else [];
+    stdenv.lib.optional gtkGUI "--with-x-toolkit=gtk";
+
+  meta = {
+    description = "Emacs, *the* text editor";
+    homepage = http://www.gnu.org/software/emacs/;
+    license = "GPL";
+  };
 }
diff --git a/pkgs/applications/editors/emacs-22/makefile-pwd.patch b/pkgs/applications/editors/emacs-22/makefile-pwd.patch
deleted file mode 100644
index 232b881c9a6..00000000000
--- a/pkgs/applications/editors/emacs-22/makefile-pwd.patch
+++ /dev/null
@@ -1,129 +0,0 @@
---- emacs-22.1/Makefile.in	2008-02-10 23:56:29.000000000 +0100
-+++ emacs-22.1/Makefile.in	2008-02-10 23:55:55.000000000 +0100
-@@ -420,7 +420,7 @@
- 	-set ${COPYDESTS} ; \
- 	unset CDPATH; \
- 	for dir in ${COPYDIR} ; do \
--	  if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \
-+	  if [ `(cd $$1 && pwd)` != `(cd $${dir} && pwd)` ] ; then \
- 	    rm -rf $$1 ; \
- 	  fi ; \
- 	  shift ; \
-@@ -432,7 +432,7 @@
- 	for dir in ${COPYDIR} ; do \
- 	  dest=$$1 ; shift ; \
- 	  [ -d $${dir} ] \
--	  && [ `(cd $${dir} && /bin/pwd)` != `(cd $${dest} && /bin/pwd)` ] \
-+	  && [ `(cd $${dir} && pwd)` != `(cd $${dest} && pwd)` ] \
- 	  && (echo "Copying $${dir} to $${dest}..." ; \
- 	      (cd $${dir}; tar -chf - . ) \
- 		| (cd $${dest}; umask 022; \
-@@ -472,7 +472,7 @@
- 	fi
- 	-chmod a+r $(DESTDIR)${datadir}/emacs/site-lisp/subdirs.el
- 	-unset CDPATH; \
--	if [ `(cd ./etc; /bin/pwd)` != `(cd $(DESTDIR)${docdir}; /bin/pwd)` ]; \
-+	if [ `(cd ./etc; pwd)` != `(cd $(DESTDIR)${docdir}; pwd)` ]; \
- 	then \
- 	   echo "Copying etc/DOC-* to $(DESTDIR)${docdir} ..." ; \
- 	   (cd ./etc; tar -chf - DOC*) \
-@@ -483,8 +483,8 @@
- 	-unset CDPATH; \
- 	if [ -r ./lisp ] \
- 	   && [ -r ./lisp/simple.el ] \
--	   && [ x`(cd ./lisp; /bin/pwd)` != x`(cd $(DESTDIR)${lispdir}; /bin/pwd)` ] \
--	   && [ x`(cd ${srcdir}/lisp; /bin/pwd)` != x`(cd ./lisp; /bin/pwd)` ]; \
-+	   && [ x`(cd ./lisp; pwd)` != x`(cd $(DESTDIR)${lispdir}; pwd)` ] \
-+	   && [ x`(cd ${srcdir}/lisp; pwd)` != x`(cd ./lisp; pwd)` ]; \
- 	then \
- 	   echo "Copying lisp/*.el and lisp/*.elc to $(DESTDIR)${lispdir} ..." ; \
- 	   (cd lisp; tar -chf - *.el *.elc) \
-@@ -500,8 +500,8 @@
- 	    done) \
- 	else true; fi
- 	-unset CDPATH; \
--	thisdir=`/bin/pwd`; \
--	if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \
-+	thisdir=`pwd`; \
-+	if [ `(cd ${srcdir}/info && pwd)` != `(cd $(DESTDIR)${infodir} && pwd)` ]; \
- 	then \
- 	  (cd $(DESTDIR)${infodir};  \
- 	   if [ -f dir ]; then true; \
-@@ -519,8 +519,8 @@
- 	   done); \
- 	else true; fi
- 	-unset CDPATH; \
--	thisdir=`/bin/pwd`; \
--	if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \
-+	thisdir=`pwd`; \
-+	if [ `(cd ${srcdir}/info && pwd)` != `(cd $(DESTDIR)${infodir} && pwd)` ]; \
- 	then \
- 	  for elt in $(INFO_FILES); do \
- 	    (cd $${thisdir}; \
-@@ -528,7 +528,7 @@
- 	  done; \
- 	else true; fi
- 	-chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} $(DESTDIR)${datadir}/emacs/site-lisp ${COPYDESTS} $(DESTDIR)${infodir}
--	thisdir=`/bin/pwd`; \
-+	thisdir=`pwd`; \
- 	cd ${srcdir}/etc; \
- 	for page in emacs emacsclient etags ctags ; do \
- 	  (cd $${thisdir}; \
-@@ -575,8 +575,8 @@
- 	-unset CDPATH; \
- 	for dir in $(DESTDIR)${lispdir} $(DESTDIR)${etcdir} ; do 	\
- 	  if [ -d $${dir} ]; then			\
--	    case `(cd $${dir} ; /bin/pwd)` in		\
--	      `(cd ${srcdir} ; /bin/pwd)`* ) ;;		\
-+	    case `(cd $${dir} ; pwd)` in		\
-+	      `(cd ${srcdir} ; pwd)`* ) ;;		\
- 	      * ) rm -rf $${dir} ;;			\
- 	    esac ;					\
- 	    case $${dir} in				\
---- emacs-22.1/leim/Makefile.in	2008-02-10 23:55:31.000000000 +0100
-+++ emacs-22.1/leim/Makefile.in	2008-02-10 23:55:41.000000000 +0100
-@@ -207,7 +207,7 @@
- leim-list.el: ${SUBDIRS} ${TIT-MISC} changed.tit changed.misc ${srcdir}/leim-ext.el
- 	${RUN-EMACS}  -l ${buildlisppath}/international/quail \
- 	  -f batch-byte-compile-if-not-done ${TIT-MISC:.elc=.el}
--	if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \
-+	if [ x`(cd ${srcdir} && pwd)` = x`(pwd)` ] ; then \
- 	  ${RUN-EMACS} -l ${buildlisppath}/international/quail \
- 	    --eval "(update-leim-list-file \".\")" ; \
- 	else \
-@@ -220,11 +220,11 @@
- 	if [ ! -d ${INSTALLDIR} ] ; then \
-           ${srcdir}/${dot}${dot}/mkinstalldirs ${INSTALLDIR}; \
- 	else true; fi
--	if [ x`(cd ${INSTALLDIR} && /bin/pwd)` != x`(/bin/pwd)` ] ; then \
-+	if [ x`(cd ${INSTALLDIR} && pwd)` != x`(pwd)` ] ; then \
- 	  rm -rf ${INSTALLDIR}/leim-list.el; \
- 	  rm -rf ${INSTALLDIR}/quail ${INSTALLDIR}/ja-dic ; \
- 	  echo "Copying leim files to ${INSTALLDIR} ..." ; \
--	  if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \
-+	  if [ x`(cd ${srcdir} && pwd)` = x`(pwd)` ] ; then \
- 	    tar -chf - leim-list.el quail ja-dic \
- 		| (cd ${INSTALLDIR}; umask 0; tar -xvf - && cat > /dev/null) ;\
- 	  else \
---- emacs-22.1/lib-src/Makefile.in	2008-02-10 23:59:08.000000000 +0100
-+++ emacs-22.1/lib-src/Makefile.in	2008-02-10 23:59:13.000000000 +0100
-@@ -306,7 +306,7 @@
- 	@echo
- 	@echo "Installing utilities run internally by Emacs."
- 	$(top_srcdir)/mkinstalldirs $(DESTDIR)${archlibdir}
--	if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` != `/bin/pwd` ]; then \
-+	if [ `(cd $(DESTDIR)${archlibdir} && pwd)` != `pwd` ]; then \
- 	  for file in ${UTILITIES}; do \
- 	    $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ; \
- 	  done ; \
-@@ -321,8 +321,8 @@
- 	  chown ${gameuser} $(DESTDIR)${gamedir}; \
- 	  chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \
- 	fi
--        if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \
--             != `(cd ${srcdir} && /bin/pwd)` ]; then \
-+        if [ `(cd $(DESTDIR)${archlibdir} && pwd)` \
-+             != `(cd ${srcdir} && pwd)` ]; then \
- 	  for file in ${SCRIPTS}; do \
- 	    $(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \
- 	  done ; \
diff --git a/pkgs/applications/networking/newsreaders/pan/default.nix b/pkgs/applications/networking/newsreaders/pan/default.nix
index 83d5e1bf008..a427e3550f8 100644
--- a/pkgs/applications/networking/newsreaders/pan/default.nix
+++ b/pkgs/applications/networking/newsreaders/pan/default.nix
@@ -14,6 +14,14 @@ stdenv.mkDerivation {
     sha1 = "dc0bf586145b9d617039f49101874fbc76a9dc18";
   };
 
+  patches = [
+    # Patch to build Pan on recent glibs.
+    (fetchurl {
+      url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/net-nntp/pan/files/pan-0.132-glib-compat.patch?rev=1.1";
+      sha256 = "0bmgnc3l1pz763xns8057qbsjirc0njr8dn34fhy4ig9yk4kp9k7";
+    })
+  ];
+
   buildInputs = [
     pkgconfig gtk perl pcre gmime gettext
     (if spellChecking then gtkspell else null)
diff --git a/pkgs/applications/networking/p2p/valknut/builder.sh b/pkgs/applications/networking/p2p/valknut/builder.sh
index 5bf84a308e5..56f5dd87005 100644
--- a/pkgs/applications/networking/p2p/valknut/builder.sh
+++ b/pkgs/applications/networking/p2p/valknut/builder.sh
@@ -1,7 +1,7 @@
 addInputsHook=addBzip2
 addBzip2() {
     bzip2=$(type -tP bzip2)
-    test -n $bzip2 || fail
+    test -n $bzip2
     buildInputs="$(dirname $(dirname $bzip2)) $buildInputs"
 }
 
diff --git a/pkgs/applications/video/mythtv/builder.sh b/pkgs/applications/video/mythtv/builder.sh
index daeedf3ae20..ec1eea3b38b 100644
--- a/pkgs/applications/video/mythtv/builder.sh
+++ b/pkgs/applications/video/mythtv/builder.sh
@@ -11,8 +11,8 @@ echo $LD_LIBRARY_PATH
 
 buildPhase=myBuilder
 myBuilder() {
-    qmake mythtv.pro || fail
-    make || fail
+    qmake mythtv.pro
+    make
 }
 
 
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 2f22334b709..69dbdbc57a8 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -143,4 +143,10 @@ rec {
     http://ftp.opensuse.org/pub/opensuse/
   ];
 
+  # Gnome (see http://ftp.gnome.org/pub/GNOME/MIRRORS).
+  gnome = [
+    # This one redirects to some mirror closeby, so it should be all you need.
+    http://download.gnome.org/
+  ];
+
 }
diff --git a/pkgs/desktops/gnome/GConf.nix b/pkgs/desktops/gnome/GConf.nix
deleted file mode 100644
index 74b646f6cc3..00000000000
--- a/pkgs/desktops/gnome/GConf.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{input, stdenv, fetchurl, pkgconfig, perl, glib, gtk, libxml2, ORBit2, popt}:
-
-assert pkgconfig != null && perl != null
-  && glib != null && gtk != null
-  && libxml2 != null && ORBit2 != null && popt != null;
-
-stdenv.mkDerivation {
-  inherit (input) name src;
-
-  # Perl is not `supposed' to be required, but it is.
-  buildInputs = [pkgconfig perl glib gtk libxml2 popt];
-  propagatedBuildInputs = [ORBit2];
-}
diff --git a/pkgs/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix
index 014a99b674a..942835593b7 100644
--- a/pkgs/desktops/gnome/default.nix
+++ b/pkgs/desktops/gnome/default.nix
@@ -1,5 +1,3 @@
-# todo audiofile is also part of the gnome platform. Move it to this collection?
-
 args: with args;
 
 assert dbus_glib.glib == gtkLibs.glib;
@@ -10,7 +8,7 @@ rec {
 
   # Platform
 
-  platform = import ./src-gnome-platform-2.16.3.nix {
+  platform = import ./src-gnome-platform-2.22.1.nix {
     inherit fetchurl;
   };
 
@@ -22,9 +20,13 @@ rec {
 
   gtk = gtkLibs.gtk;
 
-  esound = import ./esound.nix {
-    inherit fetchurl stdenv audiofile;
-    input = platform.esound;
+  audiofile = stdenv.mkDerivation {
+    inherit (platform.audiofile) name src;
+  };
+
+  esound = stdenv.mkDerivation {
+    inherit (platform.esound) name src;
+    propagatedBuildInputs = [pkgconfig audiofile];
   };
 
   libIDL = import ./libIDL.nix {
@@ -39,9 +41,10 @@ rec {
     input = platform.ORBit2;
   };
 
-  GConf = import ./GConf.nix {
-    inherit fetchurl stdenv pkgconfig perl glib gtk libxml2 ORBit2 popt;
-    input = platform.GConf;
+  GConf = stdenv.mkDerivation {
+    inherit (platform.GConf) name src;
+    buildInputs = [pkgconfig perl glib gtk libxml2 popt gettext perlXMLParser];
+    propagatedBuildInputs = [ORBit2];
   };
 
   gnomemimedata = import ./gnome-mime-data.nix {
@@ -49,16 +52,20 @@ rec {
     input = platform.gnomemimedata;
   };
 
-  gnomevfs = import ./gnome-vfs.nix {
-    inherit fetchurl stdenv gnome pkgconfig perl libxml2 popt
-      perlXMLParser gettext bzip2 dbus_glib openssl hal samba fam;
-    input = platform.gnomevfs;
+  gnomevfs = stdenv.mkDerivation {
+    inherit (platform.gnomevfs) name src;
+    buildInputs = [
+      pkgconfig perl glib libxml2 libbonobo
+      gnomemimedata popt perlXMLParser gettext bzip2
+      dbus_glib hal openssl samba fam
+    ];
+    propagatedBuildInputs = [GConf];
+    patches = [./no-kerberos.patch];
   };
 
-  gail = import ./gail.nix {
-    inherit fetchurl stdenv pkgconfig;
-    inherit gtk atk libgnomecanvas;
-    input = platform.gail;
+  gail = stdenv.mkDerivation {
+    inherit (platform.gail) name src;
+    buildInputs = [pkgconfig atk gtk];
   };
 
   libgnome = import ./libgnome.nix {
@@ -77,10 +84,10 @@ rec {
     input = platform.libglade;
   };
 
-  libgnomecanvas = import ./libgnomecanvas.nix {
-    inherit fetchurl stdenv pkgconfig gtk libglade;
-    libart = libart_lgpl;
-    input = platform.libgnomecanvas;
+  libgnomecanvas = stdenv.mkDerivation {
+    inherit (platform.libgnomecanvas) name src;
+    buildInputs = [pkgconfig libglade perl perlXMLParser gail gettext];
+    propagatedBuildInputs = [gtk libart_lgpl];
   };
 
   libbonobo = import ./libbonobo.nix {
@@ -109,22 +116,32 @@ rec {
 
   # Desktop
 
-  desktop = import ./src-gnome-desktop-2.16.3.nix {
+  desktop = import ./src-gnome-desktop-2.22.1.nix {
     inherit fetchurl;
   };
 
-  libgnomeprint = import ./libgnomeprint.nix {
-    inherit fetchurl stdenv libxml2 perl perlXMLParser pkgconfig popt
-         bison flex;
-    inherit glib pango;
-    libart = libart_lgpl;
-    input = desktop.libgnomeprint;
+  libgnomeprint = stdenv.mkDerivation {
+    inherit (desktop.libgnomeprint) name src;
+
+    buildInputs = [
+      perl perlXMLParser pkgconfig popt libxml2
+      glib pango bison flex gettext
+    ];
+
+    propagatedBuildInputs = [libxml2 libart_lgpl];
   };
 
-  libgnomeprintui = import ./libgnomeprintui.nix {
-    inherit fetchurl stdenv perl perlXMLParser pkgconfig;
-    inherit gtk libgnomeprint libgnomecanvas gnomeicontheme;
-    input = desktop.libgnomeprintui;
+  libgnomeprintui = stdenv.mkDerivation {
+    inherit (desktop.libgnomeprintui) name src;
+
+    buildInputs = [
+      perl perlXMLParser pkgconfig gtk libgnomecanvas gnomeicontheme
+      gettext
+    ];
+
+    propagatedBuildInputs = [
+      libgnomeprint
+    ];
   };
 
   gtkhtml = import ./gtkhtml.nix {
@@ -141,9 +158,10 @@ rec {
     input = desktop.gnomeicontheme;
   };
 
-  gnomekeyring = import ./gnome-keyring.nix {
-    inherit fetchurl stdenv pkgconfig glib gtk perl perlXMLParser gettext;
-    input = desktop.gnomekeyring;
+  gnomekeyring = stdenv.mkDerivation {
+    inherit (desktop.gnomekeyring) name src;
+    buildInputs = [pkgconfig gtk glib perl perlXMLParser gettext GConf libgcrypt libtasn1];
+    CFLAGS = "-DENABLE_NLS=0";
   };
 
   gtksourceview = import ./gtksourceview.nix {
@@ -156,7 +174,15 @@ rec {
   scrollkeeper = import ./scrollkeeper.nix {
     inherit fetchurl stdenv pkgconfig perl perlXMLParser
             libxml2 libxslt docbook_xml_dtd_42;
-    input = desktop.scrollkeeper;
+    # Scrollkeeper has disappeared from recent Gnome releases, but
+    # it's still being used.
+    input = {
+      name = "scrollkeeper-0.3.14";
+      src = fetchurl {
+        url = http://ftp.gnome.org/pub/GNOME/desktop/2.16/2.16.3/sources/scrollkeeper-0.3.14.tar.bz2;
+        md5 = "b175e582a6cec3e50a9de73a5bb7455a";
+      };
+    };
   };
 
   gnomedesktop = import ./gnome-desktop.nix {
@@ -176,11 +202,27 @@ rec {
     input = desktop.gnomemenus;
   };
 
-  gnomepanel = import ./gnome-panel.nix {
-    inherit fetchurl stdenv pkgconfig gnome perl perlXMLParser libjpeg
-      libpng dbus_glib gettext libxslt;
-    inherit (xlibs) libXmu libXau;
-    input = desktop.gnomepanel;
+  librsvg = stdenv.mkDerivation {
+    inherit (desktop.librsvg) name src;
+    buildInputs = [libxml2 libart_lgpl pkgconfig glib pkgconfig pango gtk];
+  };
+
+  libgweather = stdenv.mkDerivation {
+    inherit (desktop.libgweather) name src;
+    buildInputs = [gettext perl perlXMLParser pkgconfig gtk libxml2 gnomevfs];
+  };
+
+  gnomepanel = stdenv.mkDerivation {
+    inherit (desktop.gnomepanel) name src;
+
+    buildInputs = [
+      pkgconfig perl perlXMLParser gtk glib ORBit2 libgnome libgnomeui
+      gnomedesktop libglade libwnck libjpeg libpng scrollkeeper
+      xlibs.libXmu xlibs.libXau dbus_glib gnomemenus gnomedocutils
+      gettext libxslt librsvg libgweather which
+    ];
+
+    configureFlags = "--disable-scrollkeeper";
   };
 
   libsoup = import ./libsoup.nix {
@@ -190,7 +232,15 @@ rec {
   
   startupnotification = import ./startup-notification.nix {
     inherit stdenv fetchurl pkgconfig x11;
-    input = desktop.startupnotification;
+    # Strangely, startup-notificatio has disappeared from Gnome
+    # releases, but it's still used. 
+    input = {
+      name = "startup-notification-0.8";
+      src = fetchurl {
+        url = http://ftp.gnome.org/pub/GNOME/desktop/2.16/2.16.3/sources/startup-notification-0.8.tar.bz2;
+        md5 = "d9b2e9fba18843314ae42334ceb4336d";
+      };
+    };
   };
 
   metacity = import ./metacity.nix {
@@ -220,10 +270,17 @@ rec {
     input = desktop.vte;
   };
   
-  gnometerminal = import ./gnome-terminal.nix {
-    inherit stdenv fetchurl pkgconfig gnome perl perlXMLParser
-      gettext which python libxml2Python libxslt;
-    input = desktop.gnometerminal;
+  gnometerminal = stdenv.mkDerivation {
+    inherit (desktop.gnometerminal) name src;
+
+    buildInputs = [
+      pkgconfig perl perlXMLParser gtk GConf libglade
+      libgnomeui startupnotification gnomevfs vte
+      gnomedocutils gettext which scrollkeeper
+      python libxml2Python libxslt
+    ];
+
+    configureFlags = "--disable-scrollkeeper";
   };
 
   libgtop = import ./libgtop.nix {
diff --git a/pkgs/desktops/gnome/esound.nix b/pkgs/desktops/gnome/esound.nix
deleted file mode 100644
index eb3727bc1c2..00000000000
--- a/pkgs/desktops/gnome/esound.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{input, stdenv, fetchurl, audiofile}:
-
-assert audiofile != null;
-
-stdenv.mkDerivation {
-  inherit (input) name src;
-  propagatedBuildInputs = [audiofile];
-}
diff --git a/pkgs/desktops/gnome/gail.nix b/pkgs/desktops/gnome/gail.nix
deleted file mode 100644
index 2957aa90de5..00000000000
--- a/pkgs/desktops/gnome/gail.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{input, stdenv, fetchurl, pkgconfig, atk, gtk, libgnomecanvas}:
-
-stdenv.mkDerivation {
-  inherit (input) name src;
-  buildInputs = [pkgconfig atk gtk libgnomecanvas];
-  propagatedBuildInputs = [libgnomecanvas];
-}
diff --git a/pkgs/desktops/gnome/gnome-keyring.nix b/pkgs/desktops/gnome/gnome-keyring.nix
deleted file mode 100644
index 5d544c63851..00000000000
--- a/pkgs/desktops/gnome/gnome-keyring.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-# gnome-keyring
-
-{input, stdenv, fetchurl, pkgconfig, glib, gtk, perl, perlXMLParser, gettext}:
-
-stdenv.mkDerivation {
-  inherit (input) name src;
-  buildInputs = [pkgconfig gtk glib perl perlXMLParser gettext];
-  CFLAGS = "-DENABLE_NLS=0";
-}
diff --git a/pkgs/desktops/gnome/gnome-terminal.nix b/pkgs/desktops/gnome/gnome-terminal.nix
deleted file mode 100644
index 81a8a0f4d14..00000000000
--- a/pkgs/desktops/gnome/gnome-terminal.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ input, stdenv, fetchurl, gnome, pkgconfig, perl, perlXMLParser
-, gettext, which, python, libxml2Python, libxslt
-}:
-
-# !!! should get rid of libxml2Python, see gnomedocutils
-
-stdenv.mkDerivation {
-  inherit (input) name src;
-  
-  buildInputs = [
-    pkgconfig perl perlXMLParser gnome.gtk gnome.GConf gnome.libglade
-    gnome.libgnomeui gnome.startupnotification gnome.gnomevfs gnome.vte
-    gnome.gnomedocutils gettext which gnome.scrollkeeper
-    python libxml2Python libxslt
-  ];
-
-  configureFlags = "--disable-scrollkeeper";
-}
diff --git a/pkgs/desktops/gnome/gnome-vfs.nix b/pkgs/desktops/gnome/gnome-vfs.nix
deleted file mode 100644
index 24b99fb3b83..00000000000
--- a/pkgs/desktops/gnome/gnome-vfs.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-args: with args;
-
-stdenv.mkDerivation {
-  inherit (input) name src;
-  buildInputs = [
-    pkgconfig perl gnome.glib libxml2 gnome.GConf gnome.libbonobo
-    gnome.gnomemimedata popt perlXMLParser gettext bzip2
-    dbus_glib hal openssl samba fam
-  ];
-  patches = [./no-kerberos.patch];
-}
diff --git a/pkgs/desktops/gnome/libgnomecanvas.nix b/pkgs/desktops/gnome/libgnomecanvas.nix
deleted file mode 100644
index 6602cf43ebc..00000000000
--- a/pkgs/desktops/gnome/libgnomecanvas.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{input, stdenv, fetchurl, pkgconfig, gtk, libart, libglade}:
-
-assert pkgconfig != null && gtk != null && libart != null
-  && libglade != null;
-
-stdenv.mkDerivation {
-  inherit (input) name src;
-  buildInputs = [pkgconfig libglade];
-  propagatedBuildInputs = [gtk libart];
-}
diff --git a/pkgs/desktops/gnome/libgnomeprint.nix b/pkgs/desktops/gnome/libgnomeprint.nix
deleted file mode 100644
index 6a44c549f4c..00000000000
--- a/pkgs/desktops/gnome/libgnomeprint.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{input, stdenv, fetchurl, perl, perlXMLParser, pkgconfig, glib, pango, libart, libxml2, popt, bison, flex}:
-
-stdenv.mkDerivation {
-  inherit (input) name src;
-
-  buildInputs = [
-    perl perlXMLParser pkgconfig popt libxml2
-    glib pango bison flex
-  ];
-
-  propagatedBuildInputs = [libxml2 libart];
-}
diff --git a/pkgs/desktops/gnome/libgnomeprintui.nix b/pkgs/desktops/gnome/libgnomeprintui.nix
deleted file mode 100644
index e1980a0dab1..00000000000
--- a/pkgs/desktops/gnome/libgnomeprintui.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{input, stdenv, fetchurl, perl, perlXMLParser, pkgconfig, gtk, libgnomeprint, libgnomecanvas, gnomeicontheme}:
-
-stdenv.mkDerivation {
-  inherit (input) name src;
-
-  buildInputs = [
-    perl perlXMLParser pkgconfig gtk libgnomecanvas gnomeicontheme
-  ];
-
-  propagatedBuildInputs = [
-    libgnomeprint
-  ];
-}
diff --git a/pkgs/desktops/gnome/src-gnome-desktop-2.20.3.nix b/pkgs/desktops/gnome/src-gnome-desktop-2.20.3.nix
deleted file mode 100644
index bf279e3a3a8..00000000000
--- a/pkgs/desktops/gnome/src-gnome-desktop-2.20.3.nix
+++ /dev/null
@@ -1,543 +0,0 @@
-# Note: this file was generated automatically by make-listing.pl!
-
-{fetchurl} : {
-  alacarte = {
-    name = "alacarte-0.11.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/alacarte-0.11.3.tar.bz2;
-      md5 = "5ca9f07e839f64b7fcefc84cfb05aa17";
-    };
-  };
-  bugbuddy = {
-    name = "bug-buddy-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/bug-buddy-2.20.1.tar.bz2;
-      md5 = "6b9ea4c067674120bd93711b3b9a9e63";
-    };
-  };
-  dasher = {
-    name = "dasher-4.6.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/dasher-4.6.1.tar.bz2;
-      md5 = "1457df5075477d757f7df5693947464d";
-    };
-  };
-  deskbarapplet = {
-    name = "deskbar-applet-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/deskbar-applet-2.20.3.tar.bz2;
-      md5 = "f84abfede0bbe5b172b24f581550e4a0";
-    };
-  };
-  eel = {
-    name = "eel-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/eel-2.20.0.tar.bz2;
-      md5 = "691734dc1078e05e726b4f5b8646dadf";
-    };
-  };
-  ekiga = {
-    name = "ekiga-2.0.11";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/ekiga-2.0.11.tar.bz2;
-      md5 = "c4b18fdd5f392545f4c8498fb8874882";
-    };
-  };
-  eog = {
-    name = "eog-2.20.4";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/eog-2.20.4.tar.bz2;
-      md5 = "f9c923e1e09caa8e6f764ae8242f8d61";
-    };
-  };
-  epiphany = {
-    name = "epiphany-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/epiphany-2.20.3.tar.bz2;
-      md5 = "df2861b3e91bef6d365f50187b6170cb";
-    };
-  };
-  evince = {
-    name = "evince-2.20.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/evince-2.20.2.tar.bz2;
-      md5 = "15214f5211d9f98ffa0afd8158b7d021";
-    };
-  };
-  evolution = {
-    name = "evolution-2.12.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/evolution-2.12.3.tar.bz2;
-      md5 = "554698d7387aee82c5f4d4520760503d";
-    };
-  };
-  evolutiondataserver = {
-    name = "evolution-data-server-1.12.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/evolution-data-server-1.12.3.tar.bz2;
-      md5 = "9a04e379c34ad538764866dfd4eb2931";
-    };
-  };
-  evolutionexchange = {
-    name = "evolution-exchange-2.12.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/evolution-exchange-2.12.3.tar.bz2;
-      md5 = "1bdda76724a17fb7606abcdfdb6ec170";
-    };
-  };
-  evolutionwebcal = {
-    name = "evolution-webcal-2.12.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/evolution-webcal-2.12.0.tar.bz2;
-      md5 = "21e77fa081decb87ce641f3a77245864";
-    };
-  };
-  fastuserswitchapplet = {
-    name = "fast-user-switch-applet-2.18.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/fast-user-switch-applet-2.18.0.tar.bz2;
-      md5 = "aefe9ea3aecc908336ae909aeee385b5";
-    };
-  };
-  fileroller = {
-    name = "file-roller-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/file-roller-2.20.3.tar.bz2;
-      md5 = "7af6bac2e96ad9c728d791ce21dba8f5";
-    };
-  };
-  gcalctool = {
-    name = "gcalctool-5.20.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gcalctool-5.20.2.tar.bz2;
-      md5 = "bcde10b8029d3a513183e8aac9506c1f";
-    };
-  };
-  gconfeditor = {
-    name = "gconf-editor-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gconf-editor-2.20.0.tar.bz2;
-      md5 = "b686677878b5754ffa8d0a2cc1129988";
-    };
-  };
-  gdm = {
-    name = "gdm-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gdm-2.20.3.tar.bz2;
-      md5 = "0074b163986cfe48d3998518084c4d00";
-    };
-  };
-  gedit = {
-    name = "gedit-2.20.4";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gedit-2.20.4.tar.bz2;
-      md5 = "6c7d74f9b4339c9ec9e81f6ea3eb19c9";
-    };
-  };
-  gnomeapplets = {
-    name = "gnome-applets-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-applets-2.20.1.tar.bz2;
-      md5 = "e49402e7323bdd9595dc5cbfdba6ba5b";
-    };
-  };
-  gnomebackgrounds = {
-    name = "gnome-backgrounds-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-backgrounds-2.20.0.tar.bz2;
-      md5 = "391c0c64407c5bd2a52207b0298beac4";
-    };
-  };
-  gnomecontrolcenter = {
-    name = "gnome-control-center-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-control-center-2.20.1.tar.bz2;
-      md5 = "d7420f0fc28937573a13bc5c1633b23b";
-    };
-  };
-  gnomedesktop = {
-    name = "gnome-desktop-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-desktop-2.20.3.tar.bz2;
-      md5 = "d59ddca5e9bc4e4d1717538ceae57501";
-    };
-  };
-  gnomedocutils = {
-    name = "gnome-doc-utils-0.12.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-doc-utils-0.12.0.tar.bz2;
-      md5 = "5934c08d12407d8233416343cd73df24";
-    };
-  };
-  gnomegames = {
-    name = "gnome-games-2.20.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-games-2.20.2.tar.bz2;
-      md5 = "3cfd717e7cf1478ce9cba7b712ede219";
-    };
-  };
-  gnomeicontheme = {
-    name = "gnome-icon-theme-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-icon-theme-2.20.0.tar.bz2;
-      md5 = "56857a6d5f26c236b48fcf6760549d1b";
-    };
-  };
-  gnomekeyring = {
-    name = "gnome-keyring-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-keyring-2.20.3.tar.bz2;
-      md5 = "2205177a168e745fa803c96a4fb62102";
-    };
-  };
-  gnomekeyringmanager = {
-    name = "gnome-keyring-manager-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-keyring-manager-2.20.0.tar.bz2;
-      md5 = "61d701888f00c02490c0cd551bf3fcb1";
-    };
-  };
-  gnomemag = {
-    name = "gnome-mag-0.14.10";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-mag-0.14.10.tar.bz2;
-      md5 = "e3e498c7df873ecc7acabd52a7b4ddc7";
-    };
-  };
-  gnomemedia = {
-    name = "gnome-media-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-media-2.20.1.tar.bz2;
-      md5 = "75036a6990725c4323812afd4cd734f5";
-    };
-  };
-  gnomemenus = {
-    name = "gnome-menus-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-menus-2.20.3.tar.bz2;
-      md5 = "b8ab05f5edfdc3e6a46662a504934657";
-    };
-  };
-  gnomenetstatus = {
-    name = "gnome-netstatus-2.12.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-netstatus-2.12.1.tar.bz2;
-      md5 = "8651ca1694a6c222ae5cad6e21814d24";
-    };
-  };
-  gnomenettool = {
-    name = "gnome-nettool-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-nettool-2.20.0.tar.bz2;
-      md5 = "8f16e4207655ccf1e7af679fc0f58bbd";
-    };
-  };
-  gnomepanel = {
-    name = "gnome-panel-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-panel-2.20.3.tar.bz2;
-      md5 = "0ddf04cea0859570216319d6f1f8c4d8";
-    };
-  };
-  gnomepowermanager = {
-    name = "gnome-power-manager-2.20.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-power-manager-2.20.2.tar.bz2;
-      md5 = "8a38e3a169b80c44639f4383a64835d0";
-    };
-  };
-  gnomepythondesktop = {
-    name = "gnome-python-desktop-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-python-desktop-2.20.0.tar.bz2;
-      md5 = "02b177f488091d27bf0648ec4660d8f7";
-    };
-  };
-  gnomescreensaver = {
-    name = "gnome-screensaver-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-screensaver-2.20.0.tar.bz2;
-      md5 = "d166a3ebf69289331b2ebcf5c0187fd9";
-    };
-  };
-  gnomesession = {
-    name = "gnome-session-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-session-2.20.3.tar.bz2;
-      md5 = "f9d80e12c8fd79efa9786f617ba18bc7";
-    };
-  };
-  gnomesharp = {
-    name = "gnome-sharp-2.16.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-sharp-2.16.0.tar.bz2;
-      md5 = "09034669acec52f9d9818d9a31c032d5";
-    };
-  };
-  gnomespeech = {
-    name = "gnome-speech-0.4.17";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-speech-0.4.17.tar.bz2;
-      md5 = "a202dbc9df89e1c91e66cbf0fd21f26b";
-    };
-  };
-  gnomesystemmonitor = {
-    name = "gnome-system-monitor-2.20.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-system-monitor-2.20.2.tar.bz2;
-      md5 = "d5e52f923b0b725b3a49e4bb7a296436";
-    };
-  };
-  gnomesystemtools = {
-    name = "gnome-system-tools-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-system-tools-2.20.0.tar.bz2;
-      md5 = "382ed1f5ad4cb6ce7b88985611e2be18";
-    };
-  };
-  gnometerminal = {
-    name = "gnome-terminal-2.18.4";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-terminal-2.18.4.tar.bz2;
-      md5 = "e4429d66d0d2ede8e14756cfbc15d30a";
-    };
-  };
-  gnomethemes = {
-    name = "gnome-themes-2.20.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-themes-2.20.2.tar.bz2;
-      md5 = "52d018251ef8164deaf9343cbfb7af16";
-    };
-  };
-  gnomeuserdocs = {
-    name = "gnome-user-docs-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-user-docs-2.20.1.tar.bz2;
-      md5 = "d6bba44acaed20117769ec8dce378f71";
-    };
-  };
-  gnomeutils = {
-    name = "gnome-utils-2.20.0.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-utils-2.20.0.1.tar.bz2;
-      md5 = "2d4385df2fb566b437b283bd2ce70190";
-    };
-  };
-  gnomevolumemanager = {
-    name = "gnome-volume-manager-2.17.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gnome-volume-manager-2.17.0.tar.bz2;
-      md5 = "104cec26e721e0bba69debd392367195";
-    };
-  };
-  gok = {
-    name = "gok-1.3.7";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gok-1.3.7.tar.bz2;
-      md5 = "14b2407604ceec0ffcbf4866fef35502";
-    };
-  };
-  gstpluginsbase = {
-    name = "gst-plugins-base-0.10.15";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gst-plugins-base-0.10.15.tar.bz2;
-      md5 = "8449359b465074433fec626778bcf36f";
-    };
-  };
-  gstpluginsgood = {
-    name = "gst-plugins-good-0.10.6";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gst-plugins-good-0.10.6.tar.bz2;
-      md5 = "25f111360c2930705b91b4fcf93ae5c5";
-    };
-  };
-  gstreamer = {
-    name = "gstreamer-0.10.15";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gstreamer-0.10.15.tar.bz2;
-      md5 = "09f1c4ea025faef88b566fa26ec24ae0";
-    };
-  };
-  gtkengines = {
-    name = "gtk-engines-2.12.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gtk-engines-2.12.2.tar.bz2;
-      md5 = "a73506d8262eb52e0e4bd8e04517ea4e";
-    };
-  };
-  gtkhtml = {
-    name = "gtkhtml-3.16.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gtkhtml-3.16.3.tar.bz2;
-      md5 = "bba94aecc723946e2a4e68e2dcf59722";
-    };
-  };
-  gtksourceview = {
-    name = "gtksourceview-2.0.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gtksourceview-2.0.2.tar.bz2;
-      md5 = "8a9daf3fa9ddeed92c18572ee16cd1f5";
-    };
-  };
-  gucharmap = {
-    name = "gucharmap-1.10.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/gucharmap-1.10.2.tar.bz2;
-      md5 = "0a81695c916b2dbae2392f4bcb8c4e22";
-    };
-  };
-  libgailgnome = {
-    name = "libgail-gnome-1.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/libgail-gnome-1.20.0.tar.bz2;
-      md5 = "5a7662e3d637c86baa95a50adb225e56";
-    };
-  };
-  libgnomekbd = {
-    name = "libgnomekbd-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/libgnomekbd-2.20.0.tar.bz2;
-      md5 = "0b495d355e25c3531419cb3996be7e28";
-    };
-  };
-  libgnomeprint = {
-    name = "libgnomeprint-2.18.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/libgnomeprint-2.18.2.tar.bz2;
-      md5 = "b1f6c95a8dbb8ce17ab00fc2eea2aa91";
-    };
-  };
-  libgnomeprintui = {
-    name = "libgnomeprintui-2.18.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/libgnomeprintui-2.18.1.tar.bz2;
-      md5 = "4f9a09372a5fa2cd5c35be30dff3fcd6";
-    };
-  };
-  libgtop = {
-    name = "libgtop-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/libgtop-2.20.1.tar.bz2;
-      md5 = "b6fa671e8325bd8dbce684527791225a";
-    };
-  };
-  liboobs = {
-    name = "liboobs-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/liboobs-2.20.0.tar.bz2;
-      md5 = "c0562e115af4777da471182b9d462b40";
-    };
-  };
-  librsvg = {
-    name = "librsvg-2.18.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/librsvg-2.18.2.tar.bz2;
-      md5 = "4691ad687281e943260021272c28043e";
-    };
-  };
-  libsoup = {
-    name = "libsoup-2.2.104";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/libsoup-2.2.104.tar.bz2;
-      md5 = "ab3b10b1c97de5abe38a748a3656da4c";
-    };
-  };
-  libwnck = {
-    name = "libwnck-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/libwnck-2.20.3.tar.bz2;
-      md5 = "0f0f54764993497ed02f34a44056efb2";
-    };
-  };
-  metacity = {
-    name = "metacity-2.20.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/metacity-2.20.2.tar.bz2;
-      md5 = "3b986030629860674b219fc35c226b1b";
-    };
-  };
-  nautilus = {
-    name = "nautilus-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/nautilus-2.20.0.tar.bz2;
-      md5 = "3856ec2ffeba786d12f8f6622e398c33";
-    };
-  };
-  nautiluscdburner = {
-    name = "nautilus-cd-burner-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/nautilus-cd-burner-2.20.0.tar.bz2;
-      md5 = "a7ddb02c33be107f6c9c1874b7703e9e";
-    };
-  };
-  orca = {
-    name = "orca-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/orca-2.20.3.tar.bz2;
-      md5 = "a270df4640493e0a96dc6d363ae800a6";
-    };
-  };
-  pygtksourceview = {
-    name = "pygtksourceview-2.0.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/pygtksourceview-2.0.0.tar.bz2;
-      md5 = "a4947108e7a669b67ff0ff157a132728";
-    };
-  };
-  seahorse = {
-    name = "seahorse-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/seahorse-2.20.3.tar.bz2;
-      md5 = "6f03b38cb0a52e682c73be49f244f83b";
-    };
-  };
-  soundjuicer = {
-    name = "sound-juicer-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/sound-juicer-2.20.1.tar.bz2;
-      md5 = "cea3c67215c99acf513ee7ea4b5eba7b";
-    };
-  };
-  tomboy = {
-    name = "tomboy-0.8.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/tomboy-0.8.2.tar.bz2;
-      md5 = "cca5b43cd1eb6bc6d277b307944ae884";
-    };
-  };
-  totem = {
-    name = "totem-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/totem-2.20.3.tar.bz2;
-      md5 = "7360e0856042615c7c1c3baf03d50bbf";
-    };
-  };
-  vino = {
-    name = "vino-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/vino-2.20.1.tar.bz2;
-      md5 = "c45379bd177e0bc9a937a3388fc81650";
-    };
-  };
-  vte = {
-    name = "vte-0.16.12";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/vte-0.16.12.tar.bz2;
-      md5 = "9816c35be2ff1b0cf57bd831e1344d1d";
-    };
-  };
-  yelp = {
-    name = "yelp-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/yelp-2.20.0.tar.bz2;
-      md5 = "8902618c343093b1c64ee6d647ec41ed";
-    };
-  };
-  zenity = {
-    name = "zenity-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/desktop/2.20/2.20.3/sources/zenity-2.20.1.tar.bz2;
-      md5 = "b9989582ea43f8fd58819d85ef9c9bc5";
-    };
-  };
-}
diff --git a/pkgs/desktops/gnome/src-gnome-desktop-2.22.1.nix b/pkgs/desktops/gnome/src-gnome-desktop-2.22.1.nix
new file mode 100644
index 00000000000..d1308fc1ee5
--- /dev/null
+++ b/pkgs/desktops/gnome/src-gnome-desktop-2.22.1.nix
@@ -0,0 +1,599 @@
+# Note: this file was generated automatically by make-listing.pl!
+
+{fetchurl} : {
+  alacarte = {
+    name = "alacarte-0.11.5";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/alacarte-0.11.5.tar.bz2;
+      md5 = "e4dc193d36c76b974e66e517e9c7ea33";
+    };
+  };
+  bugbuddy = {
+    name = "bug-buddy-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/bug-buddy-2.22.0.tar.bz2;
+      md5 = "092e1f91d0be4ca133cd0650622a6b06";
+    };
+  };
+  cheese = {
+    name = "cheese-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/cheese-2.22.1.tar.bz2;
+      md5 = "0f3c583081f56263541f9a8644569829";
+    };
+  };
+  dasher = {
+    name = "dasher-4.7.3";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/dasher-4.7.3.tar.bz2;
+      md5 = "f97dfd3c54f6d6c5f2873d4f82cb33c4";
+    };
+  };
+  deskbarapplet = {
+    name = "deskbar-applet-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/deskbar-applet-2.22.1.tar.bz2;
+      md5 = "b506328780abaa6a7e0e59a1f262c22c";
+    };
+  };
+  eel = {
+    name = "eel-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/eel-2.22.1.tar.bz2;
+      md5 = "dd393ad7de2e230a7604af9560140920";
+    };
+  };
+  ekiga = {
+    name = "ekiga-2.0.12";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/ekiga-2.0.12.tar.bz2;
+      md5 = "d86636c2195b4fb95aec427c17570008";
+    };
+  };
+  eog = {
+    name = "eog-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/eog-2.22.1.tar.bz2;
+      md5 = "ca40ada77bda9b396809e08782f5d718";
+    };
+  };
+  epiphany = {
+    name = "epiphany-2.22.1.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/epiphany-2.22.1.1.tar.bz2;
+      md5 = "24bb8c430a6165b9c43a2ed0452cc6a5";
+    };
+  };
+  evince = {
+    name = "evince-2.22.1.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/evince-2.22.1.1.tar.bz2;
+      md5 = "568ff7211a185d71d0e9de15a07f4987";
+    };
+  };
+  evolution = {
+    name = "evolution-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/evolution-2.22.1.tar.bz2;
+      md5 = "b8eddd6e26b59b1fe6ad0ae849916836";
+    };
+  };
+  evolutiondataserver = {
+    name = "evolution-data-server-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/evolution-data-server-2.22.1.tar.bz2;
+      md5 = "1972fa3dbd46c25216b00c1d35f83eaf";
+    };
+  };
+  evolutionexchange = {
+    name = "evolution-exchange-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/evolution-exchange-2.22.1.tar.bz2;
+      md5 = "213db2462016f18ad3261d3e7fb00004";
+    };
+  };
+  evolutionwebcal = {
+    name = "evolution-webcal-2.21.92";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/evolution-webcal-2.21.92.tar.bz2;
+      md5 = "049ea414f6d82a1e4b1e88f71a4f19cb";
+    };
+  };
+  fastuserswitchapplet = {
+    name = "fast-user-switch-applet-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/fast-user-switch-applet-2.22.0.tar.bz2;
+      md5 = "540f2567582e77cdd673dde3546b61db";
+    };
+  };
+  fileroller = {
+    name = "file-roller-2.22.2";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/file-roller-2.22.2.tar.bz2;
+      md5 = "68f89c4723e4f2d2e58b15f7b2a20d23";
+    };
+  };
+  gcalctool = {
+    name = "gcalctool-5.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gcalctool-5.22.1.tar.bz2;
+      md5 = "a4103972f07e85cf242b9a5e4efcfa91";
+    };
+  };
+  gconfeditor = {
+    name = "gconf-editor-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gconf-editor-2.22.0.tar.bz2;
+      md5 = "7ca99aec214dd855b5de7dacc8937055";
+    };
+  };
+  gdm = {
+    name = "gdm-2.20.5";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gdm-2.20.5.tar.bz2;
+      md5 = "151d90901abc2088a0825ee1dd8da7f6";
+    };
+  };
+  gedit = {
+    name = "gedit-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gedit-2.22.1.tar.bz2;
+      md5 = "ee797f4e2eed291dc28ef8ff7082445e";
+    };
+  };
+  gnomeapplets = {
+    name = "gnome-applets-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-applets-2.22.1.tar.bz2;
+      md5 = "d6df0a48c875b77a4fafe47fc81bde29";
+    };
+  };
+  gnomebackgrounds = {
+    name = "gnome-backgrounds-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-backgrounds-2.22.0.tar.bz2;
+      md5 = "1997e020288ea6b91ed460c2c6bfc8d4";
+    };
+  };
+  gnomecontrolcenter = {
+    name = "gnome-control-center-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-control-center-2.22.1.tar.bz2;
+      md5 = "170815bcf2627bf64436283f86c751aa";
+    };
+  };
+  gnomedesktop = {
+    name = "gnome-desktop-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-desktop-2.22.1.tar.bz2;
+      md5 = "39d1421dbfe54d0838a00b055edcb5cf";
+    };
+  };
+  gnomedesktopsharp = {
+    name = "gnome-desktop-sharp-2.20.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-desktop-sharp-2.20.1.tar.bz2;
+      md5 = "874cfcf8a6547476906b638355a0ed2f";
+    };
+  };
+  gnomedocutils = {
+    name = "gnome-doc-utils-0.12.2";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-doc-utils-0.12.2.tar.bz2;
+      md5 = "e1a9e9ba923b8950f8803c90ebeaadb8";
+    };
+  };
+  gnomegames = {
+    name = "gnome-games-2.22.1.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-games-2.22.1.1.tar.bz2;
+      md5 = "57500e063a6f26f2fbfd364a68842297";
+    };
+  };
+  gnomeicontheme = {
+    name = "gnome-icon-theme-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-icon-theme-2.22.0.tar.bz2;
+      md5 = "a4c03092da28ad53ed3867aef83f29d9";
+    };
+  };
+  gnomekeyring = {
+    name = "gnome-keyring-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-keyring-2.22.1.tar.bz2;
+      md5 = "4ca9c19fa6ada61cdc93ab24214b5c4f";
+    };
+  };
+  gnomemag = {
+    name = "gnome-mag-0.15.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-mag-0.15.0.tar.bz2;
+      md5 = "a297f2b2fae4cd0cde2a30bfacc4c380";
+    };
+  };
+  gnomemedia = {
+    name = "gnome-media-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-media-2.22.0.tar.bz2;
+      md5 = "e3fabb87abd2731d7f345d724b40333a";
+    };
+  };
+  gnomemenus = {
+    name = "gnome-menus-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-menus-2.22.1.tar.bz2;
+      md5 = "6e31d10da8c1ef315ca2d7f02e807395";
+    };
+  };
+  gnomenetstatus = {
+    name = "gnome-netstatus-2.12.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-netstatus-2.12.1.tar.bz2;
+      md5 = "8651ca1694a6c222ae5cad6e21814d24";
+    };
+  };
+  gnomenettool = {
+    name = "gnome-nettool-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-nettool-2.22.0.tar.bz2;
+      md5 = "290dd50a08a3859332afb6daf46dde25";
+    };
+  };
+  gnomepanel = {
+    name = "gnome-panel-2.22.1.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-panel-2.22.1.1.tar.bz2;
+      md5 = "c80f265af2dd009917aece662fd6ab37";
+    };
+  };
+  gnomepowermanager = {
+    name = "gnome-power-manager-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-power-manager-2.22.1.tar.bz2;
+      md5 = "bfb10f96771dd161ff16171f78a7dc21";
+    };
+  };
+  gnomepythondesktop = {
+    name = "gnome-python-desktop-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-python-desktop-2.22.0.tar.bz2;
+      md5 = "504877a973f6abc0788283232cd703cb";
+    };
+  };
+  gnomescreensaver = {
+    name = "gnome-screensaver-2.22.2";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-screensaver-2.22.2.tar.bz2;
+      md5 = "496a2e0cba5c27db57a72ecf2e17f789";
+    };
+  };
+  gnomesession = {
+    name = "gnome-session-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-session-2.22.1.tar.bz2;
+      md5 = "8cd499f49cecfdcb32fd4f97965e9017";
+    };
+  };
+  gnomesettingsdaemon = {
+    name = "gnome-settings-daemon-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-settings-daemon-2.22.1.tar.bz2;
+      md5 = "959d0d289ed81f950004fa64dbcff89d";
+    };
+  };
+  gnomesharp = {
+    name = "gnome-sharp-2.20.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-sharp-2.20.0.tar.bz2;
+      md5 = "1cdb85652a6504afe6fad569daa901ee";
+    };
+  };
+  gnomespeech = {
+    name = "gnome-speech-0.4.18";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-speech-0.4.18.tar.bz2;
+      md5 = "f325037fdc74e19d943f397066454ac3";
+    };
+  };
+  gnomesystemmonitor = {
+    name = "gnome-system-monitor-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-system-monitor-2.22.0.tar.bz2;
+      md5 = "7b809a4db72902ca5f47a63f62917d14";
+    };
+  };
+  gnomesystemtools = {
+    name = "gnome-system-tools-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-system-tools-2.22.0.tar.bz2;
+      md5 = "6559bb97fc75bc28b559dc530571d527";
+    };
+  };
+  gnometerminal = {
+    name = "gnome-terminal-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-terminal-2.22.1.tar.bz2;
+      md5 = "0e6c71def04b2a56e8d6725cef7950b4";
+    };
+  };
+  gnomethemes = {
+    name = "gnome-themes-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-themes-2.22.0.tar.bz2;
+      md5 = "e902194175c6f7298bd53e5aa7eef56b";
+    };
+  };
+  gnomeuserdocs = {
+    name = "gnome-user-docs-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-user-docs-2.22.0.tar.bz2;
+      md5 = "f3af808e754701b83105eab2f5ca690c";
+    };
+  };
+  gnomeutils = {
+    name = "gnome-utils-2.20.0.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-utils-2.20.0.1.tar.bz2;
+      md5 = "2d4385df2fb566b437b283bd2ce70190";
+    };
+  };
+  gnomevolumemanager = {
+    name = "gnome-volume-manager-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gnome-volume-manager-2.22.1.tar.bz2;
+      md5 = "a0cb86f541515f33443c848879d04785";
+    };
+  };
+  gok = {
+    name = "gok-1.3.7";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gok-1.3.7.tar.bz2;
+      md5 = "14b2407604ceec0ffcbf4866fef35502";
+    };
+  };
+  gstpluginsbase = {
+    name = "gst-plugins-base-0.10.19";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gst-plugins-base-0.10.19.tar.bz2;
+      md5 = "9c9614cbb6497b7fee1c954b9d5ae3b7";
+    };
+  };
+  gstpluginsgood = {
+    name = "gst-plugins-good-0.10.6";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gst-plugins-good-0.10.6.tar.bz2;
+      md5 = "25f111360c2930705b91b4fcf93ae5c5";
+    };
+  };
+  gstreamer = {
+    name = "gstreamer-0.10.19";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gstreamer-0.10.19.tar.bz2;
+      md5 = "12072a3168420350ea450749a3b63be8";
+    };
+  };
+  gtkengines = {
+    name = "gtk-engines-2.14.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gtk-engines-2.14.1.tar.bz2;
+      md5 = "eef8ee067bad0b76b9773aef1994930c";
+    };
+  };
+  gtkhtml = {
+    name = "gtkhtml-3.18.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gtkhtml-3.18.1.tar.bz2;
+      md5 = "e314eba21158afa018d47f63c67000d3";
+    };
+  };
+  gtksourceview = {
+    name = "gtksourceview-2.2.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gtksourceview-2.2.1.tar.bz2;
+      md5 = "1c5bd86f854ead3aedb96463ebbb275f";
+    };
+  };
+  gucharmap = {
+    name = "gucharmap-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gucharmap-2.22.1.tar.bz2;
+      md5 = "cd5f6ae44d29a7582dc179ebc64b42b4";
+    };
+  };
+  gvfs = {
+    name = "gvfs-0.2.3";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/gvfs-0.2.3.tar.bz2;
+      md5 = "cefc1279b98838f26bc7878029ed13b3";
+    };
+  };
+  libgailgnome = {
+    name = "libgail-gnome-1.20.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/libgail-gnome-1.20.0.tar.bz2;
+      md5 = "5a7662e3d637c86baa95a50adb225e56";
+    };
+  };
+  libgnomekbd = {
+    name = "libgnomekbd-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/libgnomekbd-2.22.0.tar.bz2;
+      md5 = "a8b64278ae3471583607d734db9347eb";
+    };
+  };
+  libgnomeprint = {
+    name = "libgnomeprint-2.18.4";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/libgnomeprint-2.18.4.tar.bz2;
+      md5 = "bc460f875425a956176f07440b3fa46e";
+    };
+  };
+  libgnomeprintui = {
+    name = "libgnomeprintui-2.18.2";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/libgnomeprintui-2.18.2.tar.bz2;
+      md5 = "88b404e7b62bb9ad96b25908c1315dcd";
+    };
+  };
+  libgtop = {
+    name = "libgtop-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/libgtop-2.22.1.tar.bz2;
+      md5 = "d157224c951f1284132361e50a8195b5";
+    };
+  };
+  libgweather = {
+    name = "libgweather-2.22.1.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/libgweather-2.22.1.1.tar.bz2;
+      md5 = "6b0e12931db8c640992bef75bd3cc24b";
+    };
+  };
+  liboobs = {
+    name = "liboobs-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/liboobs-2.22.0.tar.bz2;
+      md5 = "1b090ecd6c0df58b131795ff9a5c9057";
+    };
+  };
+  librsvg = {
+    name = "librsvg-2.22.2";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/librsvg-2.22.2.tar.bz2;
+      md5 = "aae602677ce201b1a0ed6a0c18c207f2";
+    };
+  };
+  libsoup = {
+    name = "libsoup-2.4.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/libsoup-2.4.1.tar.bz2;
+      md5 = "d0fc91ccb9da401e9e40d2f4612bdac9";
+    };
+  };
+  libwnck = {
+    name = "libwnck-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/libwnck-2.22.1.tar.bz2;
+      md5 = "6b16643a107d9fc37136335939ab3f1a";
+    };
+  };
+  metacity = {
+    name = "metacity-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/metacity-2.22.0.tar.bz2;
+      md5 = "8cb6d02cf66a1003532b4f5d2754d696";
+    };
+  };
+  mousetweaks = {
+    name = "mousetweaks-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/mousetweaks-2.22.1.tar.bz2;
+      md5 = "16ef7e51728c27c7ea3378a9f296f352";
+    };
+  };
+  nautilus = {
+    name = "nautilus-2.22.2";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/nautilus-2.22.2.tar.bz2;
+      md5 = "4758815c46f350bd314d9e104f0a1b72";
+    };
+  };
+  nautiluscdburner = {
+    name = "nautilus-cd-burner-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/nautilus-cd-burner-2.22.1.tar.bz2;
+      md5 = "6bf96cb55a11813a26118eabafa69143";
+    };
+  };
+  orca = {
+    name = "orca-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/orca-2.22.1.tar.bz2;
+      md5 = "ef477a5b43846060ccbc636f5b731f21";
+    };
+  };
+  pygtksourceview = {
+    name = "pygtksourceview-2.2.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/pygtksourceview-2.2.0.tar.bz2;
+      md5 = "5dd0a9aa99168f989ed04123a65077e4";
+    };
+  };
+  seahorse = {
+    name = "seahorse-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/seahorse-2.22.1.tar.bz2;
+      md5 = "e0e409ab825c954b5937b8b115dd5118";
+    };
+  };
+  soundjuicer = {
+    name = "sound-juicer-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/sound-juicer-2.22.0.tar.bz2;
+      md5 = "20f83a28915b7d7029198396258d1b4f";
+    };
+  };
+  swfdecgnome = {
+    name = "swfdec-gnome-2.22.2";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/swfdec-gnome-2.22.2.tar.bz2;
+      md5 = "7de99aff7978bc870e1eabb4ba8f0fc7";
+    };
+  };
+  tomboy = {
+    name = "tomboy-0.10.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/tomboy-0.10.1.tar.bz2;
+      md5 = "c9b2534e2ea58bf0a8cf7c8dc5643fc1";
+    };
+  };
+  totem = {
+    name = "totem-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/totem-2.22.1.tar.bz2;
+      md5 = "f4920ffef2a90f019ff7e9d6a411e532";
+    };
+  };
+  totemplparser = {
+    name = "totem-pl-parser-2.22.2";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/totem-pl-parser-2.22.2.tar.bz2;
+      md5 = "d2f5e023de8d24c21e863dd7257594f0";
+    };
+  };
+  vinagre = {
+    name = "vinagre-0.5.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/vinagre-0.5.1.tar.bz2;
+      md5 = "48e0079631952216743720fa1c59f621";
+    };
+  };
+  vino = {
+    name = "vino-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/vino-2.22.1.tar.bz2;
+      md5 = "01c5ffd0b252edb8921bfcca88438339";
+    };
+  };
+  vte = {
+    name = "vte-0.16.13";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/vte-0.16.13.tar.bz2;
+      md5 = "40480f20f6b7664f3d364e4f2ed27889";
+    };
+  };
+  yelp = {
+    name = "yelp-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/yelp-2.22.1.tar.bz2;
+      md5 = "a292c6712bb820e6aa2ade84ebdc9609";
+    };
+  };
+  zenity = {
+    name = "zenity-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/desktop/2.22/2.22.1/sources/zenity-2.22.1.tar.bz2;
+      md5 = "4e1e1f080e7253ee4f6a5cee3306c78d";
+    };
+  };
+}
diff --git a/pkgs/desktops/gnome/src-gnome-platform-2.16.3.nix b/pkgs/desktops/gnome/src-gnome-platform-2.16.3.nix
index d53ae980739..28c458ea7df 100644
--- a/pkgs/desktops/gnome/src-gnome-platform-2.16.3.nix
+++ b/pkgs/desktops/gnome/src-gnome-platform-2.16.3.nix
@@ -114,10 +114,10 @@
     };
   };
   libglade = {
-    name = "libglade-2.6.0";
+    name = "libglade-2.6.2";
     src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.16/2.16.3/sources/libglade-2.6.0.tar.bz2;
-      md5 = "81d7b2b64871ce23a5fae1e5da0b1f6e";
+      url = http://ftp.acc.umu.se/pub/GNOME/sources/libglade/2.6/libglade-2.6.2.tar.bz2;
+      md5 = "da4f9d1c6cd1337f6ef5e2db768d8557";
     };
   };
   libgnome = {
diff --git a/pkgs/desktops/gnome/src-gnome-platform-2.20.3.nix b/pkgs/desktops/gnome/src-gnome-platform-2.20.3.nix
deleted file mode 100644
index a3d138ce4b1..00000000000
--- a/pkgs/desktops/gnome/src-gnome-platform-2.20.3.nix
+++ /dev/null
@@ -1,179 +0,0 @@
-# Note: this file was generated automatically by make-listing.pl!
-
-{fetchurl} : {
-  atk = {
-    name = "atk-1.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/atk-1.20.0.tar.bz2;
-      md5 = "b1a9e28d9f54ea306bd85a4c84b25fb8";
-    };
-  };
-  atspi = {
-    name = "at-spi-1.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/at-spi-1.20.1.tar.bz2;
-      md5 = "9dc4ce96c17452cd285d006d03574e93";
-    };
-  };
-  audiofile = {
-    name = "audiofile-0.2.6";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/audiofile-0.2.6.tar.bz2;
-      md5 = "3d01302834660850b6141cac1e6f5501";
-    };
-  };
-  esound = {
-    name = "esound-0.2.38";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/esound-0.2.38.tar.bz2;
-      md5 = "1c48c100b450d617b58dacb59837d34f";
-    };
-  };
-  gail = {
-    name = "gail-1.20.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/gail-1.20.2.tar.bz2;
-      md5 = "e805806f897cf6040e1f3e9c0cd2151b";
-    };
-  };
-  GConf = {
-    name = "GConf-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/GConf-2.20.1.tar.bz2;
-      md5 = "646fc896c6282a8f103365af0fa2e303";
-    };
-  };
-  glib = {
-    name = "glib-2.14.4";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/glib-2.14.4.tar.bz2;
-      md5 = "7ee7874108cbe9ea7fff1f4ab3389ce8";
-    };
-  };
-  gnomemimedata = {
-    name = "gnome-mime-data-2.18.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/gnome-mime-data-2.18.0.tar.bz2;
-      md5 = "541858188f80090d12a33b5a7c34d42c";
-    };
-  };
-  gnomevfs = {
-    name = "gnome-vfs-2.20.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/gnome-vfs-2.20.1.tar.bz2;
-      md5 = "a350a5a3e201951d7e7867d0900df423";
-    };
-  };
-  gnomevfsmonikers = {
-    name = "gnome-vfs-monikers-2.15.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/gnome-vfs-monikers-2.15.3.tar.bz2;
-      md5 = "b16f0db0482263be3318e269f52bb5b6";
-    };
-  };
-  gtk = {
-    name = "gtk+-2.12.4";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/gtk+-2.12.4.tar.bz2;
-      md5 = "72e2a930f65667ab86dc46141bbaf9e2";
-    };
-  };
-  gtkdoc = {
-    name = "gtk-doc-1.9";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/gtk-doc-1.9.tar.bz2;
-      md5 = "bcd002f381385812737a05538eb8b21e";
-    };
-  };
-  intltool = {
-    name = "intltool-0.36.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/intltool-0.36.3.tar.bz2;
-      md5 = "4a4428eedf69ac2717f2353b742fe42e";
-    };
-  };
-  libart_lgpl = {
-    name = "libart_lgpl-2.3.19";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/libart_lgpl-2.3.19.tar.bz2;
-      md5 = "ac885805d1918026a18b560f4015bc66";
-    };
-  };
-  libbonobo = {
-    name = "libbonobo-2.20.3";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/libbonobo-2.20.3.tar.bz2;
-      md5 = "db152a4e97eaf2670b666fef45098413";
-    };
-  };
-  libbonoboui = {
-    name = "libbonoboui-2.20.0";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/libbonoboui-2.20.0.tar.bz2;
-      md5 = "14427a459f6ca355de5f5e47ce95c1c4";
-    };
-  };
-  libglade = {
-    name = "libglade-2.6.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/libglade-2.6.2.tar.bz2;
-      md5 = "da4f9d1c6cd1337f6ef5e2db768d8557";
-    };
-  };
-  libgnome = {
-    name = "libgnome-2.20.1.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/libgnome-2.20.1.1.tar.bz2;
-      md5 = "cfab025a8b9a19cdae1c64f8b005c513";
-    };
-  };
-  libgnomecanvas = {
-    name = "libgnomecanvas-2.20.1.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/libgnomecanvas-2.20.1.1.tar.bz2;
-      md5 = "948ed771d2957d24a0c9a414e9581055";
-    };
-  };
-  libgnomeui = {
-    name = "libgnomeui-2.20.1.1";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/libgnomeui-2.20.1.1.tar.bz2;
-      md5 = "d1f500c5d33ce93159b4952bb476fcf3";
-    };
-  };
-  libIDL = {
-    name = "libIDL-0.8.9";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/libIDL-0.8.9.tar.bz2;
-      md5 = "a4f84903e289bb874ae2fbe92d80e656";
-    };
-  };
-  libxml2 = {
-    name = "libxml2-2.6.30";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/libxml2-2.6.30.tar.bz2;
-      md5 = "cbc6d381daaa836b90a7ab449c1bc1ae";
-    };
-  };
-  libxslt = {
-    name = "libxslt-1.1.22";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/libxslt-1.1.22.tar.bz2;
-      md5 = "f2061dddea77257488601e20e2f3b5a7";
-    };
-  };
-  ORBit2 = {
-    name = "ORBit2-2.14.10";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/ORBit2-2.14.10.tar.bz2;
-      md5 = "180f486f07d6db84aca0f71f68e54618";
-    };
-  };
-  pango = {
-    name = "pango-1.18.4";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/platform/2.20/2.20.3/sources/pango-1.18.4.tar.bz2;
-      md5 = "5f4a24eb03789746a13e41beb7044776";
-    };
-  };
-}
diff --git a/pkgs/desktops/gnome/src-gnome-platform-2.22.1.nix b/pkgs/desktops/gnome/src-gnome-platform-2.22.1.nix
new file mode 100644
index 00000000000..0f83354b1e2
--- /dev/null
+++ b/pkgs/desktops/gnome/src-gnome-platform-2.22.1.nix
@@ -0,0 +1,165 @@
+# Note: this file was generated automatically by make-listing.pl!
+
+{fetchurl} : {
+  atk = {
+    name = "atk-1.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/atk-1.22.0.tar.bz2;
+      md5 = "06a2b39a22d5ca35c47435da6b9643ac";
+    };
+  };
+  atspi = {
+    name = "at-spi-1.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/at-spi-1.22.1.tar.bz2;
+      md5 = "2ee1b35ef25e753e6bac840a418608f5";
+    };
+  };
+  audiofile = {
+    name = "audiofile-0.2.6";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/audiofile-0.2.6.tar.bz2;
+      md5 = "3d01302834660850b6141cac1e6f5501";
+    };
+  };
+  esound = {
+    name = "esound-0.2.38";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/esound-0.2.38.tar.bz2;
+      md5 = "1c48c100b450d617b58dacb59837d34f";
+    };
+  };
+  gail = {
+    name = "gail-1.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/gail-1.22.1.tar.bz2;
+      md5 = "521e2e1ae1dfe4699c037b1be205b0b3";
+    };
+  };
+  GConf = {
+    name = "GConf-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/GConf-2.22.0.tar.bz2;
+      md5 = "a56c043afeb1052abaf45407409b0331";
+    };
+  };
+  glib = {
+    name = "glib-2.16.3";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/glib-2.16.3.tar.bz2;
+      md5 = "195f9a803cc5279dbb39afdf985f44cb";
+    };
+  };
+  gnomemimedata = {
+    name = "gnome-mime-data-2.18.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/gnome-mime-data-2.18.0.tar.bz2;
+      md5 = "541858188f80090d12a33b5a7c34d42c";
+    };
+  };
+  gnomevfs = {
+    name = "gnome-vfs-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/gnome-vfs-2.22.0.tar.bz2;
+      md5 = "369105fd82cb99e69e63acab8f3b89b7";
+    };
+  };
+  gnomevfsmonikers = {
+    name = "gnome-vfs-monikers-2.15.3";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/gnome-vfs-monikers-2.15.3.tar.bz2;
+      md5 = "b16f0db0482263be3318e269f52bb5b6";
+    };
+  };
+  gtk = {
+    name = "gtk+-2.12.9";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/gtk+-2.12.9.tar.bz2;
+      md5 = "33499772fdc3bea569c6d5673e5831b4";
+    };
+  };
+  gtkdoc = {
+    name = "gtk-doc-1.9";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/gtk-doc-1.9.tar.bz2;
+      md5 = "bcd002f381385812737a05538eb8b21e";
+    };
+  };
+  intltool = {
+    name = "intltool-0.37.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/intltool-0.37.1.tar.bz2;
+      md5 = "860d392f04299c2740d0752501639c3b";
+    };
+  };
+  libart_lgpl = {
+    name = "libart_lgpl-2.3.20";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/libart_lgpl-2.3.20.tar.bz2;
+      md5 = "d0ce67f2ebcef1e51a83136c69242a73";
+    };
+  };
+  libbonobo = {
+    name = "libbonobo-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/libbonobo-2.22.0.tar.bz2;
+      md5 = "998a576ad26784ac87eab99e96013527";
+    };
+  };
+  libbonoboui = {
+    name = "libbonoboui-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/libbonoboui-2.22.0.tar.bz2;
+      md5 = "e4e4d74c9387d08c956574f981cf91f2";
+    };
+  };
+  libglade = {
+    name = "libglade-2.6.2";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/libglade-2.6.2.tar.bz2;
+      md5 = "da4f9d1c6cd1337f6ef5e2db768d8557";
+    };
+  };
+  libgnome = {
+    name = "libgnome-2.22.0";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/libgnome-2.22.0.tar.bz2;
+      md5 = "52db42762589826c66d27def66112807";
+    };
+  };
+  libgnomecanvas = {
+    name = "libgnomecanvas-2.20.1.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/libgnomecanvas-2.20.1.1.tar.bz2;
+      md5 = "948ed771d2957d24a0c9a414e9581055";
+    };
+  };
+  libgnomeui = {
+    name = "libgnomeui-2.22.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/libgnomeui-2.22.1.tar.bz2;
+      md5 = "5a60405f006e873ba7bc97ec9c8e4c5d";
+    };
+  };
+  libIDL = {
+    name = "libIDL-0.8.10";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/libIDL-0.8.10.tar.bz2;
+      md5 = "9e10a77ff225587e59c0a28c66b4faa7";
+    };
+  };
+  ORBit2 = {
+    name = "ORBit2-2.14.12";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/ORBit2-2.14.12.tar.bz2;
+      md5 = "6f4bf7d803d442e9d093a0daa203d506";
+    };
+  };
+  pango = {
+    name = "pango-1.20.1";
+    src = fetchurl {
+      url = http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.1/sources/pango-1.20.1.tar.bz2;
+      md5 = "376e6d94686b888fb70f24d191b84f82";
+    };
+  };
+}
diff --git a/pkgs/desktops/kde/kdebase/default.nix b/pkgs/desktops/kde/kdebase/default.nix
index c550c228ed7..25ae63e3806 100644
--- a/pkgs/desktops/kde/kdebase/default.nix
+++ b/pkgs/desktops/kde/kdebase/default.nix
@@ -5,7 +5,7 @@
 let version = "3.5.7"; in
 
 stdenv.mkDerivation {
-  name = "kdebase-3.5.7";
+  name = "kdebase-${version}";
   
   src = fetchurl {
     url = "mirror://kde/stable/${version}/src/kdebase-${version}.tar.bz2";
@@ -21,11 +21,11 @@ stdenv.mkDerivation {
     xlibs.scrnsaverproto xlibs.libXScrnSaver
   ];
 
-  configureFlags = "
+  configureFlags = ''
     --without-arts 
     --with-ssl-dir=${openssl}
     --with-extra-includes=${libjpeg}/include
-  ";
+  '';
 
   # Prevent configure from looking for pkg-config and freetype-config
   # in the wrong location (it looks in /usr/bin etc. *before* looking
diff --git a/pkgs/desktops/kde/kdelibs/default.nix b/pkgs/desktops/kde/kdelibs/default.nix
index 76c5f5cc3f5..1e04be5ba16 100644
--- a/pkgs/desktops/kde/kdelibs/default.nix
+++ b/pkgs/desktops/kde/kdelibs/default.nix
@@ -3,14 +3,14 @@
 , freetype, bzip2, cups
 }:
 
-let version = "3.5.7"; in
+let version = "3.5.9"; in
 
 stdenv.mkDerivation {
   name = "kdelibs-${version}";
   
   src = fetchurl {
     url = "mirror://kde/stable/${version}/src/kdelibs-${version}.tar.bz2";
-    md5 = "50ed644f2ec91963570fe2b155652957";
+    md5 = "55e5f00874933d1a7ba7c95e369a205e";
   };
 
   passthru = {inherit openssl libX11 libjpeg qt;};
@@ -31,11 +31,11 @@ stdenv.mkDerivation {
       --replace /opt/local/bin /no-such-path
   '';
 
-  configureFlags = "
+  configureFlags = ''
     --without-arts 
     --with-ssl-dir=${openssl}
     --with-extra-includes=${libjpeg}/include
     --x-includes=${libX11}/include
     --x-libraries=${libX11}/lib
-  ";
+  '';
 }
diff --git a/pkgs/development/compilers/abc/builder-binjar.sh b/pkgs/development/compilers/abc/builder-binjar.sh
index 90458f9897d..9faa0541c6c 100644
--- a/pkgs/development/compilers/abc/builder-binjar.sh
+++ b/pkgs/development/compilers/abc/builder-binjar.sh
@@ -1,4 +1,4 @@
 source $stdenv/setup
 
-ensureDir $out/jars || fail
-cp $src $out/jars/$jarname.jar || fail
+ensureDir $out/jars
+cp $src $out/jars/$jarname.jar
diff --git a/pkgs/development/compilers/abc/builder.sh b/pkgs/development/compilers/abc/builder.sh
index 935fcf8fecd..36d2e4e68e1 100644
--- a/pkgs/development/compilers/abc/builder.sh
+++ b/pkgs/development/compilers/abc/builder.sh
@@ -1,12 +1,12 @@
 source $stdenv/setup
 
-tar zxvf $src || fail
+tar zxvf $src
 
-cd abc-*  || fail
+cd abc-*
 
 for p in $patches; do
   echo "applying patch $p"
-  patch -p1 < $p || fail
+  patch -p1 < $p
 done
 
 cat > ant.settings <<EOF
diff --git a/pkgs/development/compilers/abc/jasmin/builder.sh b/pkgs/development/compilers/abc/jasmin/builder.sh
index b591b60c56a..c30f86fb7f5 100644
--- a/pkgs/development/compilers/abc/jasmin/builder.sh
+++ b/pkgs/development/compilers/abc/jasmin/builder.sh
@@ -1,7 +1,7 @@
 source $stdenv/setup
 
-tar zxvf $src  || fail
-cd jasmin-*  || fail
+tar zxvf $src
+cd jasmin-*
 
 sed -e 's/<javac/<javac source="1.4"/' build.xml > build-tmp.xml
 mv build-tmp.xml build.xml
@@ -18,7 +18,7 @@ jasmin.version=foo
 build.compiler=javac1.4
 EOF
 
-ant jasmin-jar || fail
+ant jasmin-jar
 
-ensureDir $out/jars/ || fail
-mv lib/jasminclasses-foo.jar $out/jars/jasmin.jar || fail
+ensureDir $out/jars/
+mv lib/jasminclasses-foo.jar $out/jars/jasmin.jar
diff --git a/pkgs/development/compilers/abc/polyglot/builder.sh b/pkgs/development/compilers/abc/polyglot/builder.sh
index 197d1680914..81acfde1d4f 100644
--- a/pkgs/development/compilers/abc/polyglot/builder.sh
+++ b/pkgs/development/compilers/abc/polyglot/builder.sh
@@ -1,11 +1,11 @@
 source $stdenv/setup
 
-tar zxvf $src  || fail
-cd polyglot-*  || fail
+tar zxvf $src
+cd polyglot-*
 
-ant polyglot-jar || fail
-ant cup || fail
+ant polyglot-jar
+ant cup
 
-ensureDir $out/jars/ || fail
-mv lib/java_cup.jar $out/jars/ || fail
-mv lib/polyglot*.jar $out/jars/ || fail
+ensureDir $out/jars/
+mv lib/java_cup.jar $out/jars/
+mv lib/polyglot*.jar $out/jars/
diff --git a/pkgs/development/compilers/abc/soot/builder.sh b/pkgs/development/compilers/abc/soot/builder.sh
index 732a8d20e15..18718943077 100644
--- a/pkgs/development/compilers/abc/soot/builder.sh
+++ b/pkgs/development/compilers/abc/soot/builder.sh
@@ -1,7 +1,7 @@
 source $stdenv/setup
 
-tar zxvf $src  || fail
-cd soot-*  || fail
+tar zxvf $src
+cd soot-*
 
 export NIX_ANT_OPTS="$ANT_OPTS -Xmx200m"
 
@@ -13,7 +13,7 @@ release.loc=lib
 javaapi.url=http://java.sun.com/j2se/1.4.2/docs/api/
 EOF
 
-ant classesjar || fail
+ant classesjar
 
-ensureDir $out/jars/ || fail
-mv lib/sootclasses-foo.jar $out/jars/soot.jar || fail
+ensureDir $out/jars/
+mv lib/sootclasses-foo.jar $out/jars/soot.jar
diff --git a/pkgs/development/compilers/gcc-4.2/default.nix b/pkgs/development/compilers/gcc-4.2/default.nix
index 8c442ddca0c..1ed4dd5058a 100644
--- a/pkgs/development/compilers/gcc-4.2/default.nix
+++ b/pkgs/development/compilers/gcc-4.2/default.nix
@@ -9,7 +9,7 @@ assert langC;
 
 with import ../../../lib;
 
-let version = "4.2.3"; in
+let version = "4.2.4"; in
 
 stdenv.mkDerivation {
   name = "gcc-${version}";
@@ -18,15 +18,15 @@ stdenv.mkDerivation {
   src =
     optional /*langC*/ true (fetchurl {
       url = "mirror://gnu/gcc/gcc-${version}/gcc-core-${version}.tar.bz2";
-      sha256 = "04y84s46wzy4h44hpacf7vyla7b5zfc1qvdq3myvrhp82cp0bv4r";
+      sha256 = "0cm5yzhqhgdfk03aayakmdj793sya42xkkqhslj7s2b697hygjfg";
     }) ++
     optional langCC (fetchurl {
       url = "mirror://gnu/gcc/gcc-${version}/gcc-g++-${version}.tar.bz2";
-      sha256 = "0spzz549fifwv02ym33azzwizl0zkq5m1fgy88ccmcyzmwpgyzfq";
+      sha256 = "0gq8ikci0qqgck71qqlhfld6zkwn9179x6z15vdd9blkdig55nxg";
     }) ++
     optional langF77 (fetchurl {
       url = "mirror://gnu/gcc/gcc-${version}/gcc-fortran-${version}.tar.bz2";
-      sha256 = "1l3ww6qymrkcfqlssb41a5fdnh6w2hqk0v2ijx56jgjbdnzawyp0";
+      sha256 = "013yqiqhdavgxzjryvylgf3lcnknmw89fx41jf2v4899srn0bhkg";
     });
     
   patches =
diff --git a/pkgs/development/compilers/jdk/dlj-bundle-builder.sh b/pkgs/development/compilers/jdk/dlj-bundle-builder.sh
index e990eaf5392..e0e31e7a75b 100644
--- a/pkgs/development/compilers/jdk/dlj-bundle-builder.sh
+++ b/pkgs/development/compilers/jdk/dlj-bundle-builder.sh
@@ -5,7 +5,7 @@ unzip ${src} || true
 
 # set the dynamic linker of unpack200, necessary for construct script
 echo "patching unpack200"
-patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" --set-rpath "" */bin/unpack200 || fail
+patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" --set-rpath "" */bin/unpack200
 
 echo "constructing JDK and JRE installations"
 if test -z "$installjdk"; then
diff --git a/pkgs/development/compilers/qcmm/builder.sh b/pkgs/development/compilers/qcmm/builder.sh
index dd08d483409..c6aa18fea3c 100644
--- a/pkgs/development/compilers/qcmm/builder.sh
+++ b/pkgs/development/compilers/qcmm/builder.sh
@@ -19,13 +19,11 @@ installPhase() {
   find $out/man -type f -exec gzip -9 {} \;
 
   find $out -name \*.a -exec echo stripping {} \; \
-            -exec strip -S {} \; || fail
+            -exec strip -S {} \;
 
   patchELF $out
 }
 
-buildPhase=buildPhase
-installPhase=installPhase
 checkPhase="mk $MKFLAGS test.opt"
 
 genericBuild
diff --git a/pkgs/development/libraries/acl/acl-2.2.45-patch b/pkgs/development/libraries/acl/acl-2.2.45-patch
deleted file mode 100644
index 557381922c3..00000000000
--- a/pkgs/development/libraries/acl/acl-2.2.45-patch
+++ /dev/null
@@ -1,222 +0,0 @@
-diff -u -U3 -r acl-2.2.45-orig/aclocal.m4 acl-2.2.45-mod/aclocal.m4
---- acl-2.2.45-orig/aclocal.m4	2007-12-23 16:16:11.000000000 +0300
-+++ acl-2.2.45-mod/aclocal.m4	2007-12-23 18:09:04.000000000 +0300
-@@ -228,32 +228,32 @@
-     AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler])
- 
-     if test -z "$MAKE"; then
--        AC_PATH_PROG(MAKE, gmake,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-+        AC_PATH_PROG(MAKE, gmake,,)
-     fi
-     if test -z "$MAKE"; then
--        AC_PATH_PROG(MAKE, make,, /usr/bin)
-+        AC_PATH_PROG(MAKE, make,, )
-     fi
-     make=$MAKE
-     AC_SUBST(make)
-     AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
- 
-     if test -z "$LIBTOOL"; then
--	AC_PATH_PROG(LIBTOOL, glibtool,, /usr/bin)
-+	AC_PATH_PROG(LIBTOOL, glibtool,, )
-     fi
-     if test -z "$LIBTOOL"; then
--	AC_PATH_PROG(LIBTOOL, libtool,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-+	AC_PATH_PROG(LIBTOOL, libtool,, )
-     fi
-     libtool=$LIBTOOL
-     AC_SUBST(libtool)
-     AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool])
- 
-     if test -z "$TAR"; then
--        AC_PATH_PROG(TAR, tar,, /usr/freeware/bin:/bin:/usr/local/bin:/usr/bin)
-+        AC_PATH_PROG(TAR, tar,, )
-     fi
-     tar=$TAR
-     AC_SUBST(tar)
-     if test -z "$ZIP"; then
--        AC_PATH_PROG(ZIP, gzip,, /bin:/usr/bin:/usr/local/bin:/usr/freeware/bin)
-+        AC_PATH_PROG(ZIP, gzip,, )
-     fi
- 
-     zip=$ZIP
-@@ -266,25 +266,25 @@
-     AC_SUBST(makedepend)
- 
-     if test -z "$AWK"; then
--        AC_PATH_PROG(AWK, awk,, /bin:/usr/bin)
-+        AC_PATH_PROG(AWK, awk,, )
-     fi
-     awk=$AWK
-     AC_SUBST(awk)
- 
-     if test -z "$SED"; then
--        AC_PATH_PROG(SED, sed,, /bin:/usr/bin)
-+        AC_PATH_PROG(SED, sed,, )
-     fi
-     sed=$SED
-     AC_SUBST(sed)
- 
-     if test -z "$ECHO"; then
--        AC_PATH_PROG(ECHO, echo,, /bin:/usr/bin)
-+        AC_PATH_PROG(ECHO, echo,, )
-     fi
-     echo=$ECHO
-     AC_SUBST(echo)
- 
-     if test -z "$SORT"; then
--        AC_PATH_PROG(SORT, sort,, /bin:/usr/bin)
-+        AC_PATH_PROG(SORT, sort,, )
-     fi
-     sort=$SORT
-     AC_SUBST(sort)
-@@ -294,21 +294,21 @@
- 
-     if test "$enable_gettext" = yes; then
-         if test -z "$MSGFMT"; then
--                AC_PATH_PROG(MSGFMT, msgfmt,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-+                AC_PATH_PROG(MSGFMT, msgfmt,, )
-         fi
-         msgfmt=$MSGFMT
-         AC_SUBST(msgfmt)
-         AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext)
- 
-         if test -z "$MSGMERGE"; then
--                AC_PATH_PROG(MSGMERGE, msgmerge,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-+                AC_PATH_PROG(MSGMERGE, msgmerge,, )
-         fi
-         msgmerge=$MSGMERGE
-         AC_SUBST(msgmerge)
-         AC_PACKAGE_NEED_UTILITY($1, "$msgmerge", msgmerge, gettext)
- 
-         if test -z "$XGETTEXT"; then
--                AC_PATH_PROG(XGETTEXT, xgettext,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-+                AC_PATH_PROG(XGETTEXT, xgettext,, )
-         fi
-         xgettext=$XGETTEXT
-         AC_SUBST(xgettext)
-@@ -316,7 +316,7 @@
-     fi
- 
-     if test -z "$RPM"; then
--        AC_PATH_PROG(RPM, rpm,, /bin:/usr/bin:/usr/freeware/bin)
-+        AC_PATH_PROG(RPM, rpm,, )
-     fi
-     rpm=$RPM
-     AC_SUBST(rpm)
-ôÏÌØËÏ × acl-2.2.45-orig/: configure
-diff -u -U3 -r acl-2.2.45-orig/m4/package_utilies.m4 acl-2.2.45-mod/m4/package_utilies.m4
---- acl-2.2.45-orig/m4/package_utilies.m4	2007-12-23 16:16:11.000000000 +0300
-+++ acl-2.2.45-mod/m4/package_utilies.m4	2007-12-23 18:01:28.000000000 +0300
-@@ -23,32 +23,26 @@
-     AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler])
- 
-     if test -z "$MAKE"; then
--        AC_PATH_PROG(MAKE, gmake,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-     fi
-     if test -z "$MAKE"; then
--        AC_PATH_PROG(MAKE, make,, /usr/bin)
-     fi
-     make=$MAKE
-     AC_SUBST(make)
-     AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
- 
-     if test -z "$LIBTOOL"; then
--	AC_PATH_PROG(LIBTOOL, glibtool,, /usr/bin)
-     fi
-     if test -z "$LIBTOOL"; then
--	AC_PATH_PROG(LIBTOOL, libtool,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-     fi
-     libtool=$LIBTOOL
-     AC_SUBST(libtool)
-     AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool])
- 
-     if test -z "$TAR"; then
--        AC_PATH_PROG(TAR, tar,, /usr/freeware/bin:/bin:/usr/local/bin:/usr/bin)
-     fi
-     tar=$TAR
-     AC_SUBST(tar)
-     if test -z "$ZIP"; then
--        AC_PATH_PROG(ZIP, gzip,, /bin:/usr/bin:/usr/local/bin:/usr/freeware/bin)
-     fi
- 
-     zip=$ZIP
-@@ -61,25 +55,21 @@
-     AC_SUBST(makedepend)
- 
-     if test -z "$AWK"; then
--        AC_PATH_PROG(AWK, awk,, /bin:/usr/bin)
-     fi
-     awk=$AWK
-     AC_SUBST(awk)
- 
-     if test -z "$SED"; then
--        AC_PATH_PROG(SED, sed,, /bin:/usr/bin)
-     fi
-     sed=$SED
-     AC_SUBST(sed)
- 
-     if test -z "$ECHO"; then
--        AC_PATH_PROG(ECHO, echo,, /bin:/usr/bin)
-     fi
-     echo=$ECHO
-     AC_SUBST(echo)
- 
-     if test -z "$SORT"; then
--        AC_PATH_PROG(SORT, sort,, /bin:/usr/bin)
-     fi
-     sort=$SORT
-     AC_SUBST(sort)
-@@ -89,21 +79,18 @@
- 
-     if test "$enable_gettext" = yes; then
-         if test -z "$MSGFMT"; then
--                AC_PATH_PROG(MSGFMT, msgfmt,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-         fi
-         msgfmt=$MSGFMT
-         AC_SUBST(msgfmt)
-         AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext)
- 
-         if test -z "$MSGMERGE"; then
--                AC_PATH_PROG(MSGMERGE, msgmerge,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-         fi
-         msgmerge=$MSGMERGE
-         AC_SUBST(msgmerge)
-         AC_PACKAGE_NEED_UTILITY($1, "$msgmerge", msgmerge, gettext)
- 
-         if test -z "$XGETTEXT"; then
--                AC_PATH_PROG(XGETTEXT, xgettext,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-         fi
-         xgettext=$XGETTEXT
-         AC_SUBST(xgettext)
-@@ -111,7 +98,6 @@
-     fi
- 
-     if test -z "$RPM"; then
--        AC_PATH_PROG(RPM, rpm,, /bin:/usr/bin:/usr/freeware/bin)
-     fi
-     rpm=$RPM
-     AC_SUBST(rpm)
-diff -u -U3 -r acl-2.2.45-orig/Makefile acl-2.2.45-mod/Makefile
---- acl-2.2.45-orig/Makefile	2007-12-23 16:16:11.000000000 +0300
-+++ acl-2.2.45-mod/Makefile	2007-12-23 18:01:28.000000000 +0300
-@@ -33,19 +33,6 @@
- endif
- 
- $(CONFIGURE):
--	autoconf
--	./configure \
--		--prefix=/ \
--		--exec-prefix=/ \
--		--sbindir=/bin \
--		--bindir=/usr/bin \
--		--libdir=/lib \
--		--libexecdir=/usr/lib \
--		--enable-lib64=yes \
--		--includedir=/usr/include \
--		--mandir=/usr/share/man \
--		--datadir=/usr/share \
--		$$LOCAL_CONFIGURE_OPTIONS
- 	touch .census
- 
- aclocal.m4::
diff --git a/pkgs/development/libraries/acl/builder.sh b/pkgs/development/libraries/acl/builder.sh
deleted file mode 100644
index 4cabc84f828..00000000000
--- a/pkgs/development/libraries/acl/builder.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-source $stdenv/setup
-
-preConfigure() {
-  rm configure
-  autoconf
-}
-
-preConfigure=preConfigure
-
-installFlags='install-lib install-dev'
-
-genericBuild
diff --git a/pkgs/development/libraries/acl/default.nix b/pkgs/development/libraries/acl/default.nix
index b9992af612e..bbba61c1de6 100644
--- a/pkgs/development/libraries/acl/default.nix
+++ b/pkgs/development/libraries/acl/default.nix
@@ -1,14 +1,16 @@
-args: with args;
+{stdenv, fetchurl, gettext, attr, libtool}:
 
 stdenv.mkDerivation {
-  name = "acl-2.2.45";
-
-  builder = ./builder.sh;
-  src = 
-	fetchurl {
-		url = ftp://oss.sgi.com/projects/xfs/cmd_tars/acl_2.2.45-1.tar.gz;
-		sha256 = "1bb2k5br494yk863w27k1h8gkdkq4kzakvajhj844hl1cixhhf1a";
-	};
-  buildInputs = [autoconf libtool gettext attr];
-  patches = [ ./acl-2.2.45-patch ];
+  name = "acl-2.2.47";
+
+  src = fetchurl {
+    url = ftp://oss.sgi.com/projects/xfs/cmd_tars/acl_2.2.47-1.tar.gz;
+    sha256 = "1j39g62fki0iyji9s62slgwdfskpkqy7rmjlqcnmsvsnxbxhc294";
+  };
+  
+  buildInputs = [gettext attr libtool];
+
+  configureFlags = "MAKE=make LIBTOOL=libtool MSGFMT=msgfmt MSGMERGE=msgmerge XGETTEXT=xgettext ZIP=gzip ECHO=echo SED=sed AWK=gawk";
+
+  installTargets = "install install-lib install-dev";
 }
diff --git a/pkgs/development/libraries/attr/attr-2.4.32-makefile.patch b/pkgs/development/libraries/attr/attr-2.4.32-makefile.patch
deleted file mode 100644
index 96b2f78ca80..00000000000
--- a/pkgs/development/libraries/attr/attr-2.4.32-makefile.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -rc attr-2.4.32/Makefile attr-2.4.32.new/Makefile
-*** attr-2.4.32/Makefile	2006-06-20 08:51:25.000000000 +0200
---- attr-2.4.32.new/Makefile	2006-08-13 20:47:52.000000000 +0200
-***************
-*** 33,51 ****
-  endif
-  
-  $(CONFIGURE):
-- 	autoconf
-- 	./configure \
-- 		--prefix=/ \
-- 		--exec-prefix=/ \
-- 		--sbindir=/bin \
-- 		--bindir=/usr/bin \
-- 		--libdir=/lib \
-- 		--libexecdir=/usr/lib \
-- 		--enable-lib64=yes \
-- 		--includedir=/usr/include \
-- 		--mandir=/usr/share/man \
-- 		--datadir=/usr/share \
-- 		$$LOCAL_CONFIGURE_OPTIONS
-  	touch .census
-  
-  aclocal.m4::
---- 33,38 ----
diff --git a/pkgs/development/libraries/attr/attr-2.4.32.patch b/pkgs/development/libraries/attr/attr-2.4.32.patch
deleted file mode 100644
index 6ed932e9f15..00000000000
--- a/pkgs/development/libraries/attr/attr-2.4.32.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-diff -rc attr-2.4.32/aclocal.m4 attr-2.4.32.new/aclocal.m4
-*** attr-2.4.32/aclocal.m4	2006-06-20 08:51:25.000000000 +0200
---- attr-2.4.32.new/aclocal.m4	2006-08-13 19:57:07.000000000 +0200
-***************
-*** 144,175 ****
-      AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler])
-  
-      if test -z "$MAKE"; then
-!         AC_PATH_PROG(MAKE, gmake,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-      fi
-      if test -z "$MAKE"; then
-!         AC_PATH_PROG(MAKE, make,, /usr/bin)
-      fi
-      make=$MAKE
-      AC_SUBST(make)
-      AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
-  
-      if test -z "$LIBTOOL"; then
-! 	AC_PATH_PROG(LIBTOOL, glibtool,, /usr/bin)
-      fi
-      if test -z "$LIBTOOL"; then
-! 	AC_PATH_PROG(LIBTOOL, libtool,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-      fi
-      libtool=$LIBTOOL
-      AC_SUBST(libtool)
-      AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool])
-  
-      if test -z "$TAR"; then
-!         AC_PATH_PROG(TAR, tar,, /usr/freeware/bin:/bin:/usr/local/bin:/usr/bin)
-      fi
-      tar=$TAR
-      AC_SUBST(tar)
-      if test -z "$ZIP"; then
-!         AC_PATH_PROG(ZIP, gzip,, /bin:/usr/bin:/usr/local/bin:/usr/freeware/bin)
-      fi
-  
-      zip=$ZIP
---- 144,175 ----
-      AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler])
-  
-      if test -z "$MAKE"; then
-!         AC_PATH_PROG(MAKE, gmake)
-      fi
-      if test -z "$MAKE"; then
-!         AC_PATH_PROG(MAKE, make)
-      fi
-      make=$MAKE
-      AC_SUBST(make)
-      AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
-  
-      if test -z "$LIBTOOL"; then
-! 	AC_PATH_PROG(LIBTOOL, glibtool)
-      fi
-      if test -z "$LIBTOOL"; then
-! 	AC_PATH_PROG(LIBTOOL, libtool)
-      fi
-      libtool=$LIBTOOL
-      AC_SUBST(libtool)
-      AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool])
-  
-      if test -z "$TAR"; then
-!         AC_PATH_PROG(TAR, tar)
-      fi
-      tar=$TAR
-      AC_SUBST(tar)
-      if test -z "$ZIP"; then
-!         AC_PATH_PROG(ZIP, gzip)
-      fi
-  
-      zip=$ZIP
-***************
-*** 182,206 ****
-      AC_SUBST(makedepend)
-  
-      if test -z "$AWK"; then
-!         AC_PATH_PROG(AWK, awk,, /bin:/usr/bin)
-      fi
-      awk=$AWK
-      AC_SUBST(awk)
-  
-      if test -z "$SED"; then
-!         AC_PATH_PROG(SED, sed,, /bin:/usr/bin)
-      fi
-      sed=$SED
-      AC_SUBST(sed)
-  
-      if test -z "$ECHO"; then
-!         AC_PATH_PROG(ECHO, echo,, /bin:/usr/bin)
-      fi
-      echo=$ECHO
-      AC_SUBST(echo)
-  
-      if test -z "$SORT"; then
-!         AC_PATH_PROG(SORT, sort,, /bin:/usr/bin)
-      fi
-      sort=$SORT
-      AC_SUBST(sort)
---- 182,206 ----
-      AC_SUBST(makedepend)
-  
-      if test -z "$AWK"; then
-!         AC_PATH_PROG(AWK, awk)
-      fi
-      awk=$AWK
-      AC_SUBST(awk)
-  
-      if test -z "$SED"; then
-!         AC_PATH_PROG(SED, sed)
-      fi
-      sed=$SED
-      AC_SUBST(sed)
-  
-      if test -z "$ECHO"; then
-!         AC_PATH_PROG(ECHO, echo)
-      fi
-      echo=$ECHO
-      AC_SUBST(echo)
-  
-      if test -z "$SORT"; then
-!         AC_PATH_PROG(SORT, sort)
-      fi
-      sort=$SORT
-      AC_SUBST(sort)
-***************
-*** 210,223 ****
-  
-      if test "$enable_gettext" = yes; then
-          if test -z "$MSGFMT"; then
-!                 AC_PATH_PROG(MSGFMT, msgfmt,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-          fi
-          msgfmt=$MSGFMT
-          AC_SUBST(msgfmt)
-          AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext)
-  
-          if test -z "$MSGMERGE"; then
-!                 AC_PATH_PROG(MSGMERGE, msgmerge,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-          fi
-          msgmerge=$MSGMERGE
-          AC_SUBST(msgmerge)
---- 210,223 ----
-  
-      if test "$enable_gettext" = yes; then
-          if test -z "$MSGFMT"; then
-!                 AC_PATH_PROG(MSGFMT, msgfmt)
-          fi
-          msgfmt=$MSGFMT
-          AC_SUBST(msgfmt)
-          AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext)
-  
-          if test -z "$MSGMERGE"; then
-!                 AC_PATH_PROG(MSGMERGE, msgmerge)
-          fi
-          msgmerge=$MSGMERGE
-          AC_SUBST(msgmerge)
-***************
-*** 225,231 ****
-      fi
-  
-      if test -z "$RPM"; then
-!         AC_PATH_PROG(RPM, rpm,, /bin:/usr/bin:/usr/freeware/bin)
-      fi
-      rpm=$RPM
-      AC_SUBST(rpm)
---- 225,231 ----
-      fi
-  
-      if test -z "$RPM"; then
-!         AC_PATH_PROG(RPM, rpm)
-      fi
-      rpm=$RPM
-      AC_SUBST(rpm)
diff --git a/pkgs/development/libraries/attr/builder.sh b/pkgs/development/libraries/attr/builder.sh
deleted file mode 100644
index 78f10591142..00000000000
--- a/pkgs/development/libraries/attr/builder.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-source $stdenv/setup
-
-preConfigure() {
-  autoconf
-}
-
-preConfigure=preConfigure
-
-installFlags='install-lib install-dev'
-
-genericBuild
diff --git a/pkgs/development/libraries/attr/default.nix b/pkgs/development/libraries/attr/default.nix
index 79da04d486a..af30d08d7d7 100644
--- a/pkgs/development/libraries/attr/default.nix
+++ b/pkgs/development/libraries/attr/default.nix
@@ -1,14 +1,16 @@
-{stdenv, fetchurl, autoconf, libtool, gettext}:
+{stdenv, fetchurl, libtool, gettext}:
 
 stdenv.mkDerivation {
-  name = "attr-2.4.32";
+  name = "attr-2.4.41";
 
-  builder = ./builder.sh;
   src = fetchurl {
-    url = ftp://oss.sgi.com/projects/xfs/download/download/cmd_tars/attr_2.4.32-1.tar.gz;
-    md5 = "092739e9b944815aecc1f5d8379d5ea5";
+    url = ftp://oss.sgi.com/projects/xfs/cmd_tars/attr_2.4.41-1.tar.gz;
+    sha256 = "0dc286g8vr402aca6wg945sdm92bys8a142vrkwx6bkjz4bwz6gp";
   };
 
-  buildInputs = [autoconf libtool gettext];
-  patches = [./attr-2.4.32.patch ./attr-2.4.32-makefile.patch];
+  buildInputs = [libtool gettext];
+  
+  configureFlags = "MAKE=make LIBTOOL=libtool MSGFMT=msgfmt MSGMERGE=msgmerge XGETTEXT=xgettext ECHO=echo SED=sed AWK=gawk";
+  
+  installTargets = "install install-lib install-dev";
 }
diff --git a/pkgs/development/libraries/audiofile/default.nix b/pkgs/development/libraries/audiofile/default.nix
deleted file mode 100644
index de02110aeeb..00000000000
--- a/pkgs/development/libraries/audiofile/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "audiofile-0.2.6";
-  src = fetchurl {
-    url = http://www.68k.org/~michael/audiofile/audiofile-0.2.6.tar.gz;
-    sha256 = "1a921w6jwcnkmx3vm091qrj7109jzri6kw4ygjq6ym91dssnfqab";
-  };
-}
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 3a82759df01..7f9701fe3dc 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -2,26 +2,33 @@
 , pdfSupport ? true
 , pngSupport ? true
 , stdenv, fetchurl, pkgconfig, x11, fontconfig, freetype
-, zlib, libpng
+, zlib, libpng, pixman
 }:
 
 assert postscriptSupport -> zlib != null;
 assert pngSupport -> libpng != null;
 
 stdenv.mkDerivation {
-  name = "cairo-1.4.6";
+  name = "cairo-1.6.4";
+  
   src = fetchurl {
-    url = http://cairographics.org/releases/cairo-1.4.6.tar.gz;
-    sha256 = "15l87pzmlwbxk6m4102g2zln4drq0l32qs60ccs5bpmcnky2lqya";
+    url = http://cairographics.org/releases/cairo-1.6.4.tar.gz;
+    sha1 = "9d990fe39a125ceb07221623c237cd7015855d5c";
   };
+
   buildInputs = [
-    pkgconfig x11 fontconfig freetype
-    (if pngSupport then libpng else null)
-  ];
-  propagatedBuildInputs = [
-    (if postscriptSupport then zlib else null)
-    (if pngSupport then libpng else null)
+    pkgconfig x11 fontconfig freetype pixman
   ];
+  
+  propagatedBuildInputs =
+    stdenv.lib.optional postscriptSupport zlib ++
+    stdenv.lib.optional pngSupport libpng;
+    
   configureFlags =
     (if pdfSupport then ["--enable-pdf"] else []);
+
+  meta = {
+    description = "A 2D graphics library with support for multiple output devices";
+    homepage = http://cairographics.org/;
+  };
 }
diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix
index 7e286d0800b..96303b19bc5 100644
--- a/pkgs/development/libraries/fontconfig/default.nix
+++ b/pkgs/development/libraries/fontconfig/default.nix
@@ -3,12 +3,22 @@
 assert freetype != null && expat != null;
 
 stdenv.mkDerivation {
-  name = "fontconfig-2.4.2";
-  builder = ./builder.sh;
+  name = "fontconfig-2.6.0";
+  
   src = fetchurl {
-    url = http://fontconfig.org/release/fontconfig-2.4.2.tar.gz;
-    sha256 = "0qqk6hqh8ardqlgzdgj0zjn6a61z4j6ba9x3xs8pp0c2650xd8v3";
+    url = http://fontconfig.org/release/fontconfig-2.6.0.tar.gz;
+    sha256 = "19fqr2vh7rzpqfh2lnkymh7q5pxn9r4w2z35lh36crp5l3m3k9m9";
   };
+  
   buildInputs = [freetype];
   propagatedBuildInputs = [expat]; # !!! shouldn't be necessary, but otherwise pango breaks
+
+  preConfigure = ''
+    configureFlags="--with-confdir=$out/etc/fonts --disable-docs --with-default-fonts="
+  '';
+
+  meta = {
+    description = "A library for font customization and configuration";
+    homepage = http://fontconfig.org/;
+  };  
 }
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index 0c9dc55e643..9cdfe730c46 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -1,9 +1,15 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "freetype-2.3.1";
+  name = "freetype-2.3.6";
+  
   src = fetchurl {
-    url = mirror://sourceforge/freetype/freetype-2.3.1.tar.bz2;
-    sha256 = "0mb11mprdlcvxyjb62ganwfgvzg4kk3rmr677li8j0484b6ywf5y";
+    url = mirror://sourceforge/freetype/freetype-2.3.6.tar.bz2;
+    sha256 = "0xqf24d42qj5x8h6cmwpdqg455kpcbaxc3jlwqf4rlbn0g1ri9nm";
+  };
+
+  meta = {
+    description = "A font engine";
+    homepage = http://www.freetype.org/;
   };
 }
diff --git a/pkgs/development/libraries/glibc-2.7/builder.sh b/pkgs/development/libraries/glibc-2.7/builder.sh
index f9b9c6b87aa..1bf806c0149 100644
--- a/pkgs/development/libraries/glibc-2.7/builder.sh
+++ b/pkgs/development/libraries/glibc-2.7/builder.sh
@@ -7,6 +7,9 @@ source $stdenv/setup
 # Explicitly tell glibc to use our pwd, not /bin/pwd.
 export PWD_P=$(type -tP pwd)
 
+# Needed to install share/zoneinfo/zone.tab.
+export BASH_SHELL=$SHELL
+
 
 preConfigure=preConfigure
 preConfigure() {
diff --git a/pkgs/development/libraries/glibc-2.7/default.nix b/pkgs/development/libraries/glibc-2.7/default.nix
index f33f95fda9f..7eb34e88899 100644
--- a/pkgs/development/libraries/glibc-2.7/default.nix
+++ b/pkgs/development/libraries/glibc-2.7/default.nix
@@ -16,6 +16,31 @@ stdenv.mkDerivation {
 
   inherit (stdenv) is64bit;
 
+  patches = [
+    /* Fix for NIXPKGS-79: when doing host name lookups, when
+       nsswitch.conf contains a line like
+       
+         hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
+
+       don't return an error when mdns4_minimal can't be found.  This
+       is a bug in Glibc: when a service can't be found, NSS should
+       continue to the next service unless "UNAVAIL=return" is set.
+       ("NOTFOUND=return" refers to the service returning a NOTFOUND
+       error, not the service itself not being found.)  The reason is
+       that the "status" variable (while initialised to UNAVAIL) is
+       outside of the loop that iterates over the services, the
+       "files" service sets status to NOTFOUND.  So when the call to
+       find "mdns4_minimal" fails, "status" will still be NOTFOUND,
+       and it will return instead of continuing to "dns".  Thus, the
+       line
+       
+         hosts: mdns4_minimal [NOTFOUND=return] dns mdns4
+
+       does work because "status" will contain UNAVAIL after the
+       failure to find mdns4_minimal. */
+    ./nss-skip-unavail.patch
+  ];
+
   # `--with-tls --without-__thread' enables support for TLS but causes
   # it not to be used.  Required if we don't want to barf on 2.4
   # kernels.  Or something.
diff --git a/pkgs/development/libraries/glibc-2.7/nss-skip-unavail.patch b/pkgs/development/libraries/glibc-2.7/nss-skip-unavail.patch
new file mode 100644
index 00000000000..4d29082f941
--- /dev/null
+++ b/pkgs/development/libraries/glibc-2.7/nss-skip-unavail.patch
@@ -0,0 +1,25 @@
+diff -rc glibc-2.7-orig/sysdeps/posix/getaddrinfo.c glibc-2.7/sysdeps/posix/getaddrinfo.c
+*** glibc-2.7-orig/sysdeps/posix/getaddrinfo.c	2007-10-17 18:05:12.000000000 +0200
+--- glibc-2.7/sysdeps/posix/getaddrinfo.c	2008-04-08 12:17:09.000000000 +0200
+***************
+*** 498,505 ****
+  	  int no_data = 0;
+  	  int no_inet6_data = 0;
+  	  service_user *nip = NULL;
+- 	  enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
+- 	  enum nss_status status = NSS_STATUS_UNAVAIL;
+  	  int no_more;
+  	  int old_res_options;
+  
+--- 498,503 ----
+***************
+*** 689,694 ****
+--- 687,694 ----
+  
+  	  while (!no_more)
+  	    {
++               enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
++               enum nss_status status = NSS_STATUS_UNAVAIL;
+  	      nss_gethostbyname3_r fct = NULL;
+  	      if (req->ai_flags & AI_CANONNAME)
+  		/* No need to use this function if we do not look for
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index a84fa006aac..86b88868e86 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [zlib lzo libgcrypt]
-    ++ (if guileBindings then [guile] else []);
+    ++ stdenv.optional guileBindings guile;
 
   doCheck = true;
   
diff --git a/pkgs/development/libraries/gtk-libs/2.12/atk/default.nix b/pkgs/development/libraries/gtk-libs/2.12/atk/default.nix
index c2843961adb..649123a2e75 100644
--- a/pkgs/development/libraries/gtk-libs/2.12/atk/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.12/atk/default.nix
@@ -1,10 +1,10 @@
 args: with args;
 
 stdenv.mkDerivation {
-  name = "atk-1.12.4";
+  name = "atk-1.20.0";
   src = fetchurl {
-    url = http://ftp.gnome.org/pub/gnome/sources/atk/1.22/atk-1.22.0.tar.bz2;
-    sha256 = "1sax4a63v7vy2f23lqgy33956nglas9vyh4dq91914gwl3lnczb7";
+    url = mirror://gnome/sources/atk/1.20/atk-1.20.0.tar.bz2;
+    sha256 = "1ja76wd40ibmvgqhl2rnwk217znb7rnccw29jah8s3avpcn2yfqz";
   };
   buildInputs = [pkgconfig perl];
   propagatedBuildInputs = [glib];
diff --git a/pkgs/development/libraries/gtk-libs/2.12/glib/default.nix b/pkgs/development/libraries/gtk-libs/2.12/glib/default.nix
index 89d440e6968..e7c20859ac7 100644
--- a/pkgs/development/libraries/gtk-libs/2.12/glib/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.12/glib/default.nix
@@ -2,9 +2,16 @@ args: with args;
 
 stdenv.mkDerivation {
   name = "glib-2.16.3";
+  
   src = fetchurl {
-    url = ftp://ftp.gnome.org/pub/GNOME/sources/glib/2.16/glib-2.16.3.tar.bz2;
-    sha256 = "0zc8irn9zx8j37ih3jiwhqrkq2ddpv4x93pcj7c45f676ji449sn";
+    url = mirror://gnome/sources/glib/2.16/glib-2.16.3.tar.bz2;
+    md5 = "195f9a803cc5279dbb39afdf985f44cb";
   };
+  
   buildInputs = [pkgconfig gettext perl];
+
+  meta = {
+    description = "A C library providing non-GUI functionality";
+    homepage = http://www.gtk.org/;
+  };
 }
diff --git a/pkgs/development/libraries/gtk-libs/2.12/glibmm/default.nix b/pkgs/development/libraries/gtk-libs/2.12/glibmm/default.nix
index 29b42f28344..2435a80149f 100644
--- a/pkgs/development/libraries/gtk-libs/2.12/glibmm/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.12/glibmm/default.nix
@@ -1,13 +1,12 @@
 args: with args;
 
 stdenv.mkDerivation {
-  name = "glibmm-2.16.1";
+  name = "glibmm-2.16.2";
   src = fetchurl {
-    url = http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.16/glibmm-2.16.1.tar.bz2;
-    sha256 = "0x710y9pkn4nfhl95dqfk90bk29qr5alzqxdl3l1n6af5yl2yn3i";
+    url = mirror://gnome/GNOME/sources/glibmm/2.16/glibmm-2.16.2.tar.bz2;
+    sha256 = "0a3d4z3kzbr84pg873397nja6wc6810pw233rvn1gz1jkkrzcczh";
   };
 
   buildInputs = [pkgconfig];
   propagatedBuildInputs = [glib libsigcxx];
 }
-
diff --git a/pkgs/development/libraries/gtk-libs/2.12/gtk+/default.nix b/pkgs/development/libraries/gtk-libs/2.12/gtk+/default.nix
index 037c1acbb9d..890f310f570 100644
--- a/pkgs/development/libraries/gtk-libs/2.12/gtk+/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.12/gtk+/default.nix
@@ -1,13 +1,23 @@
 args: with args;
 
 stdenv.mkDerivation {
-  name = "gtk+-2.12.9";
+  name = "gtk+-2.12.10";
+  
   src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/gtk/v2.12/gtk+-2.12.9.tar.bz2;
-    sha256 = "1j0fil4rzvkrlq3mwpb5mpwks1h5sk580qq54l69y99incgvznav";
+    url = mirror://gnome/sources/gtk+/2.12/gtk+-2.12.10.tar.bz2;
+    md5 = "5fcbdd2254eedb6b9ae828afc01d9eaa";
   };
-  buildInputs = [ pkgconfig perl ];
-  propagatedBuildInputs = [x11 glib atk pango libtiff libjpeg libpng cairo
-    libXrandr (if xineramaSupport then libXinerama else null)];
+  
+  buildInputs = [pkgconfig perl];
+  
+  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";
+    homepage = http://www.gtk.org/;
+  };
 }
diff --git a/pkgs/development/libraries/gtk-libs/2.12/gtkmm/default.nix b/pkgs/development/libraries/gtk-libs/2.12/gtkmm/default.nix
index 3aa495026b1..8cf6a04295a 100644
--- a/pkgs/development/libraries/gtk-libs/2.12/gtkmm/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.12/gtkmm/default.nix
@@ -3,11 +3,10 @@ args: with args;
 stdenv.mkDerivation {
   name = "gtkmm-2.12.7";
   src = fetchurl {
-    url = http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.12/gtkmm-2.12.7.tar.bz2;
+    url = mirror://gnome/sources/gtkmm/2.12/gtkmm-2.12.7.tar.bz2;
     sha256 = "1syrn4ppjd0an4ly6vmi388q6aav5fakj39wbcvs4nbphanwjn2f";
   };
 
   buildInputs = [pkgconfig];
   propagatedBuildInputs = [glibmm gtk atk cairomm];
 }
-
diff --git a/pkgs/development/libraries/gtk-libs/2.12/pango/default.nix b/pkgs/development/libraries/gtk-libs/2.12/pango/default.nix
index e91fc747515..13b6092a2d8 100644
--- a/pkgs/development/libraries/gtk-libs/2.12/pango/default.nix
+++ b/pkgs/development/libraries/gtk-libs/2.12/pango/default.nix
@@ -1,11 +1,24 @@
 args: with args;
 
 stdenv.mkDerivation {
-  name = "pango-1.20.2";
+  name = "pango-1.18.4";
+  
   src = fetchurl {
-    url = ftp://ftp.gtk.org/pub/pango/1.20/pango-1.20.2.tar.bz2;
-    sha256 = "0kjqhlwm43ad8avxz4b8l4w37jjhfilv30ph8sklnqzjj5vz3ayk";
+    url = mirror://gnome/sources/pango/1.18/pango-1.18.4.tar.bz2;
+    sha256 = "1pggwyvklj5pbfwab0dki8nqhph90nq8j4g2rl8d87xanwpcilvg";
   };
+  
   buildInputs = [pkgconfig];
+  
   propagatedBuildInputs = [x11 glib cairo libpng];
+
+  # The configure script doesn't seem to pick up the Cairo cflags.
+  preConfigure = ''
+    CAIRO_CFLAGS=$(pkg-config --cflags cairo --debug)
+  '';
+
+  meta = {
+    description = "A library for laying out and rendering of text, with an emphasis on internationalization";
+    homepage = http://www.pango.org/;
+  };
 }
diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/development/libraries/libpng/default.nix
index f6252c794ce..ea194272fff 100644
--- a/pkgs/development/libraries/libpng/default.nix
+++ b/pkgs/development/libraries/libpng/default.nix
@@ -3,11 +3,19 @@
 assert zlib != null;
 
 stdenv.mkDerivation {
-  name = "libpng-1.2.24";
+  name = "libpng-1.2.29";
+  
   src = fetchurl {
-    url = mirror://sourceforge/libpng/libpng-1.2.24.tar.bz2;
-    sha256 = "0kd0qkakc5zh2inrzw5r0h02761v1s9q223lv7za7iaxyl4byash";
+    url = mirror://sourceforge/libpng/libpng-1.2.29.tar.bz2;
+    md5 = "f588cb4ee39e3a333604096f937ea157";
   };
+  
   propagatedBuildInputs = [zlib];
+  
   inherit zlib;
+
+  meta = {
+    description = "The official reference implementation for the PNG file format";
+    homepage = http://www.libpng.org/pub/png/libpng.html;
+  };
 }
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
deleted file mode 100644
index 584cbf02cfe..00000000000
--- a/pkgs/development/libraries/librsvg/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, fetchurl
-, pkgconfig, glib, cairo, fontconfig, freetype, pango, gtk
-, libxml2, libart
-
-}:
-
-#required: libxml and libart at a minimum, while providing extra features when used with libcroco, libgsf, and mozilla
-
-stdenv.mkDerivation {
-  name = "librsvg-2.16.1";
-  src = fetchurl {
-    url = http://ftp.gnome.org/pub/GNOME/sources/librsvg/2.16/librsvg-2.16.1.tar.gz;
-    md5 = "2bbd4f634ef229cbb1552b574aacf0bd";
-  };
-  propagatedBuildInputs = [ libxml2 libart pkgconfig glib pkgconfig cairo fontconfig freetype pango gtk ];
-
-}
diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix
new file mode 100644
index 00000000000..b1130f6fd34
--- /dev/null
+++ b/pkgs/development/libraries/libtasn1/default.nix
@@ -0,0 +1,15 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "libtasn1-1.4";
+  
+  src = fetchurl {
+    url = http://josefsson.org/gnutls/releases/libtasn1/libtasn1-1.4.tar.gz;
+    sha256 = "15k14cl334cjdw6hbw3scdxm0pfv078kfq6bnz9ngyg4by1kgal4";
+  };
+
+  meta = {
+    homepage = http://josefsson.org/libtasn1/;
+    description = "An ASN.1 library";
+  };
+}
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index 7f1e120e775..a1043bad67c 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -4,12 +4,12 @@ assert zlib != null;
 assert pythonSupport -> python != null;
 
 stdenv.mkDerivation {
-  name = "libxml2-2.6.30";
+  name = "libxml2-2.6.32";
   builder = ./builder.sh;
 
   src = fetchurl {
-    url = ftp://xmlsoft.org/libxml2/libxml2-2.6.30.tar.gz;
-    sha256 = "0pkk6cw0qd56kz2fkn768dcygbb4ncyvvmvyfiyli1a7yjh64xw7";
+    url = ftp://xmlsoft.org/libxml2/libxml2-2.6.32.tar.gz;
+    sha256 = "0lsxr0akvp1sx29yh0nmzdhhc15dpa1i5chk40yaxjmgg6w2hi0v";
   };
 
   python = if pythonSupport then python else null;
diff --git a/pkgs/development/libraries/libxslt/default.nix b/pkgs/development/libraries/libxslt/default.nix
index 896d0fc563b..b5026abfa11 100644
--- a/pkgs/development/libraries/libxslt/default.nix
+++ b/pkgs/development/libraries/libxslt/default.nix
@@ -3,10 +3,10 @@
 assert libxml2 != null;
 
 stdenv.mkDerivation {
-  name = "libxslt-1.1.22";
+  name = "libxslt-1.1.24";
   src = fetchurl {
-    url = ftp://xmlsoft.org/libxml2/libxslt-1.1.22.tar.gz;
-    sha256 = "1nj9pvn4ibhwxpl3ry9n6d7jahppcnqc7mi87nld4vsr2vp3j7sf";
+    url = ftp://xmlsoft.org/libxml2/libxslt-1.1.24.tar.gz;
+    sha256 = "0ghb31mgm3bq5k41jf7b0c2azcfil26nz720kpr7k6hyhi20khf0";
   };
   buildInputs = [libxml2];
   postInstall = "ensureDir $out/nix-support; ln -s ${libxml2}/nix-support/setup-hook $out/nix-support/";
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index a4f09612f9b..709c78db1c7 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -1,9 +1,11 @@
-{stdenv, fetchurl, perl}: stdenv.mkDerivation {
-  name = "openssl-0.9.8g";
+{stdenv, fetchurl, perl}:
+
+stdenv.mkDerivation {
+  name = "openssl-0.9.8h";
   builder = ./builder.sh;
   src = fetchurl {
-    url = ftp://ftp.nluug.nl/pub/security/openssl/openssl-0.9.8g.tar.gz;
-    sha256 = "1w0wj3pgg9ga0hay3jdxs9sl17bfw307b6qvkxn735fy8ml8h9hf";
+    url = ftp://ftp.nluug.nl/pub/security/openssl/openssl-0.9.8h.tar.gz;
+    sha1 = "ced4f2da24a202e01ea22bef30ebc8aee274de86";
   };
   buildInputs = [perl];
 }
diff --git a/pkgs/development/tools/build-managers/scons/builder.sh b/pkgs/development/tools/build-managers/scons/builder.sh
index a33aa00c137..c5c1a97e459 100644
--- a/pkgs/development/tools/build-managers/scons/builder.sh
+++ b/pkgs/development/tools/build-managers/scons/builder.sh
@@ -1,13 +1,11 @@
 source $stdenv/setup
 
-buildPhase=myBuildPhase
-myBuildPhase() {
+buildPhase() {
     true
 }
 
-installPhase=myInstallPhase
-myInstallPhase() {
-    python setup.py install --prefix=$out || fail
+installPhase() {
+    python setup.py install --prefix=$out
 }
 
 genericBuild
diff --git a/pkgs/development/tools/misc/binutils/builder.sh b/pkgs/development/tools/misc/binutils/builder.sh
deleted file mode 100644
index 788effe9b24..00000000000
--- a/pkgs/development/tools/misc/binutils/builder.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-source $stdenv/setup
-
-patchConfigure() {
-    # Clear the default library search path.
-    if test "$noSysDirs" = "1"; then
-        echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt
-    fi
-}
-
-preConfigure=patchConfigure
-
-genericBuild
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 52112c17b6c..29cf5074e1c 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -2,12 +2,28 @@
 
 stdenv.mkDerivation {
   name = "binutils-2.18";
-  builder = ./builder.sh;
+  
   src = fetchurl {
     url = mirror://gnu/binutils/binutils-2.18.tar.bz2;
     sha256 = "16zfc7llbjdn69bbdy7kqgg2xa67ypgj7z5qicgwzvghaaj36yj8";
   };
+
+  patches = [
+    # Turn on --enable-new-dtags by default to make the linker set
+    # RUNPATH instead of RPATH on binaries.  This is important because
+    # RUNPATH can be overriden using LD_LIBRARY_PATH at runtime.
+    ./new-dtags.patch
+  ];
+  
   inherit noSysDirs;
+
+  preConfigure = ''
+    # Clear the default library search path.
+    if test "$noSysDirs" = "1"; then
+        echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt
+    fi
+  '';
+  
   configureFlags = "--disable-werror"; # needed for dietlibc build
 
   meta = {
diff --git a/pkgs/development/tools/misc/binutils/new-dtags.patch b/pkgs/development/tools/misc/binutils/new-dtags.patch
new file mode 100644
index 00000000000..eea6f8c39d5
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/new-dtags.patch
@@ -0,0 +1,10 @@
+--- binutils/ld/ldmain.c
++++ binutils/ld/ldmain.c
+@@ -296,6 +296,7 @@ main (int argc, char **argv)
+
+   link_info.allow_undefined_version = TRUE;
+   link_info.keep_memory = TRUE;
++  link_info.new_dtags = TRUE;
+   link_info.combreloc = TRUE;
+   link_info.strip_discarded = TRUE;
+   link_info.callbacks = &link_callbacks;
diff --git a/pkgs/development/tools/misc/patchelf/default.nix b/pkgs/development/tools/misc/patchelf/default.nix
index 27b1b73b67c..91832cd45a7 100644
--- a/pkgs/development/tools/misc/patchelf/default.nix
+++ b/pkgs/development/tools/misc/patchelf/default.nix
@@ -1,14 +1,15 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "patchelf-0.3";
+  name = "patchelf-0.4";
+  
   src = fetchurl {
-    url = http://nix.cs.uu.nl/dist/nix/patchelf-0.3/patchelf-0.3.tar.bz2;
-    md5 = "20d77052ae559c60e6c5efb6ea95af9b";
+    url = http://nixos.org/releases/patchelf/patchelf-0.4/patchelf-0.4.tar.bz2;
+    sha256 = "65c455b62fc52292e2488f05f46e7e38c46fdcf69c002750f5887145284c4f85";
   };
 
   meta = {
-    homepage = "http://nix.cs.uu.nl/patchelf.html";
+    homepage = http://nixos.org/patchelf.html;
     license = "GPL";
     description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
   };
diff --git a/pkgs/development/tools/misc/pkgconfig/default.nix b/pkgs/development/tools/misc/pkgconfig/default.nix
index 41a61f600e0..df35368d0cd 100644
--- a/pkgs/development/tools/misc/pkgconfig/default.nix
+++ b/pkgs/development/tools/misc/pkgconfig/default.nix
@@ -1,8 +1,10 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "pkgconfig-0.22";
+  name = "pkg-config-0.22";
+  
   setupHook = ./setup-hook.sh;
+  
   src = fetchurl {
     url = http://pkgconfig.freedesktop.org/releases/pkg-config-0.22.tar.gz;
     sha256 = "1rpb5wygmp0f8nal7y3ga4556i7hkjdslv3wdq04fj30gns621vy";
@@ -17,5 +19,11 @@ stdenv.mkDerivation {
       sha256 = "1pcrdbb7dypg2biy0yqc7bdxak5zii8agqljdvk7j4wbyghpqzws";
     })
   ];
+
+  meta = {
+    description = "A tool that allows packages to find out information about other packages";
+    homepage = http://pkg-config.freedesktop.org/wiki/;
+  };
+
 }
 
diff --git a/pkgs/development/tools/misc/pkgconfig/setup-hook.sh b/pkgs/development/tools/misc/pkgconfig/setup-hook.sh
index c137fb0e96c..ccb48c129e7 100644
--- a/pkgs/development/tools/misc/pkgconfig/setup-hook.sh
+++ b/pkgs/development/tools/misc/pkgconfig/setup-hook.sh
@@ -1,5 +1,6 @@
 addPkgConfigPath () {
     addToSearchPath PKG_CONFIG_PATH /lib/pkgconfig "" $1
+    addToSearchPath PKG_CONFIG_PATH /share/pkgconfig "" $1
 }
 
 envHooks=(${envHooks[@]} addPkgConfigPath)
diff --git a/pkgs/lib/default.nix b/pkgs/lib/default.nix
index af2785f30e5..2c8e29cc04b 100644
--- a/pkgs/lib/default.nix
+++ b/pkgs/lib/default.nix
@@ -81,6 +81,8 @@ rec {
   concatStringsSep = separator: list:
     concatStrings (intersperse separator list);
 
+  makeLibraryPath = paths: concatStringsSep ":" (map (path: path + "/lib") paths);
+
 
   # Flatten the argument into a single list; that is, nested lists are
   # spliced into the top-level lists.  E.g., `flatten [1 [2 [3] 4] 5]
diff --git a/pkgs/os-specific/linux/libcap/default.nix b/pkgs/os-specific/linux/libcap/default.nix
index 2a773584bdb..46f40167a7e 100644
--- a/pkgs/os-specific/linux/libcap/default.nix
+++ b/pkgs/os-specific/linux/libcap/default.nix
@@ -3,11 +3,11 @@
 assert stdenv.isLinux;
 
 stdenv.mkDerivation {
-  name = "libcap-2.07";
+  name = "libcap-2.09";
   
   src = fetchurl {
-    url = mirror://kernel/linux/libs/security/linux-privs/kernel-2.6/libcap-2.07.tar.gz;
-    sha256 = "1zz8nyqzb15lf31akwyzzfdhyhf9xvl9rqih90m9kypmcmc4yz5q";
+    url = mirror://kernel/linux/libs/security/linux-privs/kernel-2.6/libcap-2.09.tar.bz2;
+    sha256 = "0sq15y8yfm7knf6jhqcycb9wz52n3r1sriii66xk0djvd4hw69jr";
   };
   
   buildInputs = [attr];
diff --git a/pkgs/os-specific/linux/nss_ldap/default.nix b/pkgs/os-specific/linux/nss_ldap/default.nix
index bbf63e43c8b..34de5108164 100644
--- a/pkgs/os-specific/linux/nss_ldap/default.nix
+++ b/pkgs/os-specific/linux/nss_ldap/default.nix
@@ -8,11 +8,13 @@ stdenv.mkDerivation {
     sha256 = "0kn022js39mqmy7g5ba911q46223vk7vcf51x28rbl86lp32zv4v";
   };
 
-  preInstall = "
+  preInstall = ''
     installFlagsArray=(INST_UID=$(id -u) INST_GID=$(id -g) LIBC_VERS=2.5 NSS_VERS=2 NSS_LDAP_PATH_CONF=$out/etc/ldap.conf)
-    substituteInPlace Makefile --replace '/usr$(libdir)' $TMPDIR
+    substituteInPlace Makefile \
+      --replace '/usr$(libdir)' $TMPDIR \
+      --replace 'install-data-local:' 'install-data-local-disabled:'
     ensureDir $out/etc
-  ";
+  '';
 
   buildInputs = [openldap];
 }
diff --git a/pkgs/os-specific/linux/nvidia/builder.sh b/pkgs/os-specific/linux/nvidia/builder.sh
index 00d70d6198f..cb4e67614bb 100755
--- a/pkgs/os-specific/linux/nvidia/builder.sh
+++ b/pkgs/os-specific/linux/nvidia/builder.sh
@@ -8,8 +8,7 @@ unpackFile() {
 }
 
 
-buildPhase=myBuildPhase
-myBuildPhase() {
+buildPhase() {
     echo "Building linux driver against kernel: " $kernel;
 
     cd usr/src/nv/
@@ -28,8 +27,7 @@ myBuildPhase() {
 }
 
 
-installPhase=myInstallPhase
-myInstallPhase() {
+installPhase() {
 
     # Install the kernel module.
     ensureDir $out/lib/modules/$kernelVersion/misc
@@ -58,15 +56,15 @@ myInstallPhase() {
     # Install the programs.
     ensureDir $out/bin
 
-    fullPath=$out/lib
-    for i in $libPath; do
-	fullPath=$fullPath:$i/lib
-    done
+    patchelf --set-rpath $out/lib:$glPath $out/lib/libGL.so.*.*.*
+    patchelf --set-rpath $out/lib:$glPath $out/lib/libXvMCNVIDIA.so.*.*.*
+    patchelf --set-rpath $cudaPath $out/lib/libcuda.so.*.*.*
+    patchelf --set-rpath $out/lib $out/lib/xorg/modules/extensions/libglx.so.*.*.*
 
     for i in nvidia-settings nvidia-xconfig; do
 	cp usr/bin/$i $out/bin/$i
 	patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
-	    --set-rpath $fullPath $out/bin/$i
+	    --set-rpath $out/lib:$programPath:$glPath $out/bin/$i
     done
     
     # Header files etc.
diff --git a/pkgs/os-specific/linux/nvidia/default.nix b/pkgs/os-specific/linux/nvidia/default.nix
index b38e302ddd4..9ad1abd621b 100644
--- a/pkgs/os-specific/linux/nvidia/default.nix
+++ b/pkgs/os-specific/linux/nvidia/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, kernel, xlibs, gtkLibs}:
+{stdenv, fetchurl, kernel, xlibs, gtkLibs, zlib}:
 
 let 
 
@@ -7,7 +7,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "nvidiaDrivers-${versionNumber}-${kernel.version}";
+  name = "nvidia-x11-${versionNumber}-${kernel.version}";
   
   builder = ./builder.sh;
   
@@ -30,8 +30,11 @@ stdenv.mkDerivation {
 
   dontStrip = true;
 
-  libPath = [
-    gtkLibs.gtk gtkLibs.atk gtkLibs.pango gtkLibs.glib 
-    xlibs.libXext xlibs.libX11 xlibs.libXv
+  glPath = stdenv.lib.makeLibraryPath [xlibs.libXext xlibs.libX11];
+
+  cudaPath = stdenv.lib.makeLibraryPath [zlib stdenv.gcc.gcc];
+
+  programPath = stdenv.lib.makeLibraryPath [
+    gtkLibs.gtk gtkLibs.atk gtkLibs.pango gtkLibs.glib xlibs.libXv
   ];
 }
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 00f412418a6..ff99399bee9 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1155,14 +1155,14 @@ rec {
   }) // {inherit libX11 libXext libXmu libXt ;};
     
   pixman = (stdenv.mkDerivation {
-    name = "pixman-0.9.6";
+    name = "pixman-0.10.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = http://mirror.switch.ch/ftp/mirror/X11/pub/individual/lib/pixman-0.9.6.tar.bz2;
-      sha256 = "0nrksqwkaq1kczzkpqw1nvxc0b2d89d81gzb4j43hz6n729xn165";
+      url = http://mirror.switch.ch/ftp/mirror/X11/pub/individual/lib/pixman-0.10.0.tar.bz2;
+      sha256 = "1r6il420j7ws9xbk6y3nn8zb7mc76rk1npz5763qp525n94iz11b";
     };
-    buildInputs = [pkgconfig libX11 ];
-  }) // {inherit libX11 ;};
+    buildInputs = [pkgconfig ];
+  }) // {inherit ;};
     
   printproto = (stdenv.mkDerivation {
     name = "printproto-1.0.3";
@@ -1741,11 +1741,11 @@ rec {
       url = http://mirror.switch.ch/ftp/mirror/X11/pub/X11R7.3/src/everything/xf86-input-evdev-1.1.2.tar.bz2;
       sha256 = "15avwy8isbqagzcdj20ngqajl22k40pssfx7vjirhrqyyq19fiwb";
     };
+    buildInputs = [pkgconfig inputproto kbproto xorgserver xproto ];
     preBuild = "
     sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c
     ";
-    buildInputs = [pkgconfig inputproto kbproto randrproto xorgserver xproto ];
-  }) // {inherit inputproto kbproto randrproto xorgserver xproto ;};
+  }) // {inherit inputproto kbproto xorgserver xproto ;};
     
   xf86inputfpit = (stdenv.mkDerivation {
     name = "xf86-input-fpit-1.1.0";
@@ -1984,8 +1984,8 @@ rec {
       url = http://mirror.switch.ch/ftp/mirror/X11/pub/X11R7.3/src/everything/xf86-video-ati-6.6.3.tar.bz2;
       sha256 = "102p6nz1jvd3pgbl83a4zi99smydqr6il61r33l0lqmi3yg452nh";
     };
-    buildInputs = [pkgconfig fontsproto libdrm randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xineramaproto xorgserver xproto mesaHeaders glproto ];
-  }) // {inherit fontsproto libdrm randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xineramaproto xorgserver xproto mesaHeaders glproto;};
+    buildInputs = [pkgconfig fontsproto libdrm randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xineramaproto xorgserver xproto ];
+  }) // {inherit fontsproto libdrm randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xineramaproto xorgserver xproto ;};
     
   xf86videoati_680 = (stdenv.mkDerivation {
     name = "xf86-video-ati-6.8.0";
@@ -2224,8 +2224,8 @@ rec {
       url = http://mirror.switch.ch/ftp/mirror/X11/pub/X11R7.3/src/everything/xf86-video-sis-0.9.3.tar.bz2;
       sha256 = "1xin2hcjjwj2810h7kxhkmqq841plbsvk0swmjl9py7z2vxyi3l9";
     };
-    buildInputs = [pkgconfig fontsproto glproto mesaHeaders libdrm randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xf86miscproto xineramaproto xorgserver xproto ];
-  }) // {inherit fontsproto glproto mesaHeaders libdrm randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xf86miscproto xineramaproto xorgserver xproto ;};
+    buildInputs = [pkgconfig fontsproto glproto libdrm mesaHeaders randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xf86miscproto xineramaproto xorgserver xproto ];
+  }) // {inherit fontsproto glproto libdrm mesaHeaders randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xf86miscproto xineramaproto xorgserver xproto ;};
     
   xf86videosisusb = (stdenv.mkDerivation {
     name = "xf86-video-sisusb-0.8.1";
@@ -2234,8 +2234,8 @@ rec {
       url = http://mirror.switch.ch/ftp/mirror/X11/pub/X11R7.3/src/everything/xf86-video-sisusb-0.8.1.tar.bz2;
       sha256 = "1js5vf5xjxpi0nb0bpjc1glbx2l0fq1wqmnlwayn6cp3nfdbg5hm";
     };
-    buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xextproto xf86miscproto xineramaproto xorgserver xproto ];
-  }) // {inherit fontsproto randrproto renderproto videoproto xextproto xf86miscproto xineramaproto xorgserver xproto ;};
+    buildInputs = [pkgconfig fontsproto glproto mesaHeaders randrproto renderproto videoproto xextproto xf86miscproto xineramaproto xorgserver xproto ];
+  }) // {inherit fontsproto glproto mesaHeaders randrproto renderproto videoproto xextproto xf86miscproto xineramaproto xorgserver xproto ;};
     
   xf86videosunbw2 = (stdenv.mkDerivation {
     name = "xf86-video-sunbw2-1.1.0";
@@ -2724,8 +2724,8 @@ rec {
       url = http://mirror.switch.ch/ftp/mirror/X11/pub/X11R7.3/src/everything/xorg-server-1.4.tar.bz2;
       sha256 = "1hpbq0bl1jkq84gvksp0xzbbrwwgl0wz2wakf11p2hld6bgl5cai";
     };
-    buildInputs = [pkgconfig pixman renderproto bigreqsproto compositeproto damageproto dbus.libs libdmx dmxproto evieext fixesproto fontcacheproto libfontenc fontsproto freetype glproto hal inputproto kbproto libdrm mkfontdir mkfontscale perl printproto randrproto recordproto resourceproto scrnsaverproto trapproto videoproto libX11 libXau libXaw xcmiscproto libXdmcp libXext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86vidmodeproto libXfixes libXfont libXi xineramaproto libxkbfile libxkbui libXmu libXpm xproto libXrender libXres libXt xtrans libXtst libXxf86misc libXxf86vm zlib ]; mesaSrc = mesa.src; x11BuildHook = ./xorgserver.sh; patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch ./xorgserver-xkb-leds.patch ]; 
-  }) // {inherit pixman renderproto bigreqsproto compositeproto damageproto libdmx dmxproto evieext fixesproto fontcacheproto libfontenc fontsproto freetype glproto hal inputproto kbproto libdrm mkfontdir mkfontscale perl printproto randrproto recordproto resourceproto scrnsaverproto trapproto videoproto libX11 libXau libXaw xcmiscproto libXdmcp libXext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86vidmodeproto libXfixes libXfont libXi xineramaproto libxkbfile libxkbui libXmu libXpm xproto libXrender libXres libXt xtrans libXtst libXxf86misc libXxf86vm zlib ;};
+    buildInputs = [pkgconfig pixman renderproto bigreqsproto compositeproto damageproto dbus libdmx dmxproto evieext fixesproto fontcacheproto libfontenc fontsproto freetype glproto hal inputproto kbproto libdrm mkfontdir mkfontscale perl printproto randrproto recordproto resourceproto scrnsaverproto trapproto videoproto libX11 libXau libXaw xcmiscproto libXdmcp libXext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86vidmodeproto libXfixes libXfont libXi xineramaproto libxkbfile libxkbui libXmu libXpm xproto libXrender libXres libXt xtrans libXtst libXxf86misc libXxf86vm zlib ]; mesaSrc = mesa.src; x11BuildHook = ./xorgserver.sh; patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch ./xorgserver-xkb-leds.patch ]; 
+  }) // {inherit pixman renderproto bigreqsproto compositeproto damageproto dbus libdmx dmxproto evieext fixesproto fontcacheproto libfontenc fontsproto freetype glproto hal inputproto kbproto libdrm mkfontdir mkfontscale perl printproto randrproto recordproto resourceproto scrnsaverproto trapproto videoproto libX11 libXau libXaw xcmiscproto libXdmcp libXext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86vidmodeproto libXfixes libXfont libXi xineramaproto libxkbfile libxkbui libXmu libXpm xproto libXrender libXres libXt xtrans libXtst libXxf86misc libXxf86vm zlib ;};
     
   xorgsgmldoctools = (stdenv.mkDerivation {
     name = "xorg-sgml-doctools-1.2";
diff --git a/pkgs/servers/x11/xorg/tarballs b/pkgs/servers/x11/xorg/tarballs
index d1bb20c3563..ac8558e62ca 100644
--- a/pkgs/servers/x11/xorg/tarballs
+++ b/pkgs/servers/x11/xorg/tarballs
@@ -292,5 +292,5 @@ http://xcb.freedesktop.org/dist/libxcb-1.1.tar.bz2
 http://xcb.freedesktop.org/dist/xcb-proto-1.1.tar.bz2
 http://xcb.freedesktop.org/dist/xcb-util-0.2.tar.bz2
 http://xcb.freedesktop.org/dist/libpthread-stubs-0.1.tar.bz2
-http://mirror.switch.ch/ftp/mirror/X11/pub/individual/lib/pixman-0.9.6.tar.bz2
+http://mirror.switch.ch/ftp/mirror/X11/pub/individual/lib/pixman-0.10.0.tar.bz2
 http://mirror.switch.ch/ftp/mirror/X11/pub/individual/driver/xf86-video-i810-1.7.4.tar.bz2
diff --git a/pkgs/shells/bash/default.nix b/pkgs/shells/bash/default.nix
index 31fa5e77649..3e33292e742 100644
--- a/pkgs/shells/bash/default.nix
+++ b/pkgs/shells/bash/default.nix
@@ -3,11 +3,11 @@
 assert interactive -> ncurses != null;
 
 stdenv.mkDerivation {
-  name = "bash-3.2-p33";
+  name = "bash-3.2-p39";
 
   src = fetchurl {
-    url = http://losser.st-lab.cs.uu.nl/~eelco/dist/bash-3.2-p33.tar.bz2;
-    sha256 = "11fv73nbcckmm4f1q9cf73754chsgfps9pklwcaj2ryfd5ql9wnb";
+    url = http://nixos.org/tarballs/bash-3.2-p39.tar.bz2;
+    sha256 = "075qs6nfjql57y8ffg3f4glb3l5yl3xy5hny75x6kpwxkqlcxqfy";
   };
 
   postInstall = "ln -s bash $out/bin/sh";
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 475d786762c..b4e499a53bc 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -1,3 +1,44 @@
+exitHandler() {
+    exitCode=$?
+    set +e
+
+    closeNest
+
+    if test -n "$showBuildStats"; then
+        times > $NIX_BUILD_TOP/.times
+        local -a times=($(cat $NIX_BUILD_TOP/.times))
+        # Print the following statistics:
+        # - user time for the shell
+        # - system time for the shell
+        # - user time for all child processes
+        # - system time for all child processes
+        echo "build time elapsed: " ${times[*]}
+    fi
+    
+    if test $exitCode != 0; then
+        eval "$failureHook"
+    
+        # If the builder had a non-zero exit code and
+        # $succeedOnFailure is set, create the file
+        # `$out/nix-support/failed' to signal failure, and exit
+        # normally.  Otherwise, return the original exit code.
+        if test -n "$succeedOnFailure"; then
+            echo "build failed with exit code $exitCode (ignored)"
+            ensureDir "$out/nix-support"
+            echo -n $exitCode > "$out/nix-support/failed"
+            exit 0
+        fi
+        
+    else
+        eval "$exitHook"
+    fi
+    
+    exit $exitCode
+}
+
+trap "exitHandler" EXIT
+
+
 ######################################################################
 # Helper functions that might be useful in setup hooks.
 
@@ -17,8 +58,7 @@ addToSearchPathWithCustomDelimiter() {
     fi
 }
 
-addToSearchPath()
-{
+addToSearchPath() {
     addToSearchPathWithCustomDelimiter "${PATH_DELIMITER}" "$@"
 }
 
@@ -34,6 +74,7 @@ test -z $NIX_GCC && NIX_GCC=@gcc@
 # Set up the initial path.
 PATH=
 for i in $NIX_GCC @initialPath@; do
+    if test "$i" = /; then i=; fi
     PATH=$PATH${PATH:+:}$i/bin
 done
 
@@ -88,20 +129,6 @@ assertEnvExists(){
   fi
 }
 
-# Called when some build action fails.  If $succeedOnFailure is set,
-# create the file `$out/nix-support/failed' to signal failure, and
-# exit normally.  Otherwise, exit with failure.
-fail() {
-    exitCode=$?
-    if test "$succeedOnFailure" = 1; then
-        ensureDir "$out/nix-support"
-        touch "$out/nix-support/failed"
-        exit 0
-    else
-        exit $?
-    fi
-}
-
 
 # Allow the caller to augment buildInputs (it's not always possible to
 # do this before the call to setup.sh, since the PATH is empty at that
@@ -110,8 +137,7 @@ eval "$addInputsHook"
 
 
 # Recursively find all build inputs.
-findInputs()
-{
+findInputs() {
     local pkg=$1
 
     case $pkgs in
@@ -144,13 +170,12 @@ done
 
 # Set the relevant environment variables to point to the build inputs
 # found above.
-addToEnv()
-{
+addToEnv() {
     local pkg=$1
 
     if test "$ignoreFailedInputs" != "1" -a -e $1/nix-support/failed; then
         echo "failed input $1" >&2
-        fail
+        exit 1
     fi
 
     if test -d $1/bin; then
@@ -232,8 +257,9 @@ stripDirs() {
     dirs=${dirsNew}
 
     if test -n "${dirs}"; then
-        echo "stripping (with flags $stripFlags) in $dirs"
+        header "stripping (with flags $stripFlags) in $dirs"
         find $dirs -type f -print0 | xargs -0 strip $stripFlags || true
+        stopNest
     fi
 }
 
@@ -340,8 +366,6 @@ closeNest() {
     done
 }
 
-trap "closeNest" EXIT
-
 
 # This function is useful for debugging broken Nix builds.  It dumps
 # all environment variables to a file `env-vars' in the build
@@ -425,21 +449,21 @@ unpackFile() {
 
     case "$file" in
         *.tar)
-            tar xvf $file || fail
+            tar xvf $file
             ;;
         *.tar.gz | *.tgz | *.tar.Z)
-            gzip -d < $file | tar xvf - || fail
+            gzip -d < $file | tar xvf -
             ;;
         *.tar.bz2 | *.tbz2)
-            bzip2 -d < $file | tar xvf - || fail
+            bzip2 -d < $file | tar xvf -
             ;;
         *.zip)
-            unzip $file || fail
+            unzip $file
             ;;
         *)
             if test -d "$file"; then
                 stripHash $file
-                cp -prvd $file $strippedName || fail
+                cp -prvd $file $strippedName
             else
                 if test -n "$findUnpacker"; then
                     $findUnpacker $1;
@@ -448,7 +472,7 @@ unpackFile() {
                     echo "source archive $file has unknown type"
                     exit 1
                 fi
-                eval "$unpackCmd" || fail
+                eval "$unpackCmd"
             fi
             ;;
     esac
@@ -463,6 +487,8 @@ unpackPhase() {
         return
     fi
 
+    eval "$preUnpack"
+    
     if test -z "$srcs"; then
         if test -z "$src"; then
             echo 'variable $src or $srcs should point to the source'
@@ -533,6 +559,8 @@ patchPhase() {
         return
     fi
 
+    eval "$prePatch"
+    
     if test -z "$patchPhase" -a -z "$patches"; then return; fi
     
     if test -z "$patchFlags"; then
@@ -550,15 +578,16 @@ patchPhase() {
                 uncompress="bzip2 -d"
                 ;;
         esac
-        $uncompress < $i | patch $patchFlags || fail
+        $uncompress < $i | patch $patchFlags
         stopNest
     done
+
+    eval "$postPatch"
 }
 
 
 fixLibtool() {
-    sed 's^eval sys_lib_.*search_path=.*^^' < $1 > $1.tmp
-    mv $1.tmp $1
+    sed -i -e 's^eval sys_lib_.*search_path=.*^^' "$1"
 }
 
 
@@ -592,12 +621,12 @@ configurePhase() {
     # Add --disable-dependency-tracking to speed up some builds.
     if test -z "$dontAddDisableDepTrack"; then
         if grep -q dependency-tracking $configureScript; then
-            configureFlags="--disable-dependency-tracking ${prefixKey:---prefix=}$prefix $configureFlags"
+            configureFlags="--disable-dependency-tracking $configureFlags"
         fi
     fi
 
     echo "configure flags: $configureFlags ${configureFlagsArray[@]}"
-    $configureScript $configureFlags"${configureFlagsArray[@]}" || fail
+    $configureScript $configureFlags"${configureFlagsArray[@]}"
 
     eval "$postConfigure"
 }
@@ -619,7 +648,7 @@ buildPhase() {
     echo "make flags: $makeFlags ${makeFlagsArray[@]} $buildFlags ${buildFlagsArray[@]}"
     make ${makefile:+-f $makefile} \
         $makeFlags "${makeFlagsArray[@]}" \
-        $buildFlags "${buildFlagsArray[@]}" || fail
+        $buildFlags "${buildFlagsArray[@]}"
 
     eval "$postBuild"
 }
@@ -631,6 +660,8 @@ checkPhase() {
         return
     fi
 
+    eval "$preCheck"
+
     if test -z "$checkTarget"; then
         checkTarget="check"
     fi
@@ -638,17 +669,43 @@ checkPhase() {
     echo "check flags: $makeFlags ${makeFlagsArray[@]} $checkFlags ${checkFlagsArray[@]}"
     make ${makefile:+-f $makefile} \
         $makeFlags "${makeFlagsArray[@]}" \
-        $checkFlags "${checkFlagsArray[@]}" $checkTarget || fail
+        $checkFlags "${checkFlagsArray[@]}" $checkTarget
+
+    eval "$postCheck"
 }
 
 
 patchELF() {
     # Patch all ELF executables and shared libraries.
     header "patching ELF executables and libraries"
-    find "$prefix" \( \
-        \( -type f -a -name "*.so*" \) -o \
-        \( -type f -a -perm +0100 \) \
-        \) -print -exec patchelf --shrink-rpath {} \;
+    if test -e "$prefix"; then
+        find "$prefix" \( \
+            \( -type f -a -name "*.so*" \) -o \
+            \( -type f -a -perm +0100 \) \
+            \) -print -exec patchelf --shrink-rpath {} \;
+    fi
+    stopNest
+}
+
+
+patchShebangs() {
+    # Rewrite all script interpreter file names (`#! /path') under the
+    # specified  directory tree to paths found in $PATH.  E.g.,
+    # /bin/sh will be rewritten to /nix/store/<hash>-some-bash/bin/sh.
+    # Interpreters that are already in the store are left untouched.
+    header "patching script interpreter paths"
+    local dir="$1"
+    local f
+    for f in $(find "$dir" -type f -perm +0100); do
+        local oldPath=$(sed -ne '1 s,^#![ ]*\([^ ]*\).*$,\1,p' "$f")
+        if test -n "$oldPath" -a "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE"; then
+            local newPath=$(type -P $(basename $oldPath) || true)
+            if test -n "$newPath" -a "$newPath" != "$oldPath"; then
+                echo "$f: interpreter changed from $oldPath to $newPath"
+                sed -i -e "1 s,$oldPath,$newPath," "$f"
+            fi
+        fi
+    done
     stopNest
 }
 
@@ -670,7 +727,7 @@ installPhase() {
         echo "install flags: $installTargets $makeFlags ${makeFlagsArray[@]} $installFlags ${installFlagsArray[@]}"
         make ${makefile:+-f $makefile} $installTargets \
             $makeFlags "${makeFlagsArray[@]}" \
-            $installFlags "${installFlagsArray[@]}" || fail
+            $installFlags "${installFlagsArray[@]}"
     else
         eval "$installCommand"
     fi
@@ -726,6 +783,10 @@ fixupPhase() {
         patchELF "$prefix"
     fi
 
+    if test -z "$dontPatchShebangs"; then
+        patchShebangs "$prefix"
+    fi
+
     if test -n "$propagatedBuildInputs"; then
         ensureDir "$out/nix-support"
         echo "$propagatedBuildInputs" > "$out/nix-support/propagated-build-inputs"
@@ -753,7 +814,7 @@ distPhase() {
     fi
 
     echo "dist flags: $distFlags ${distFlagsArray[@]}"
-    make ${makefile:+-f $makefile} $distFlags "${distFlagsArray[@]}" $distTarget || fail
+    make ${makefile:+-f $makefile} $distFlags "${distFlagsArray[@]}" $distTarget
 
     if test "$dontCopyDist" != 1; then
         ensureDir "$out/tarballs"
@@ -795,8 +856,10 @@ genericBuild() {
     fi
 
     if test -z "$phases"; then
-        phases="unpackPhase patchPhase configurePhase buildPhase checkPhase \
-            installPhase fixupPhase distPhase $extraPhases";
+        phases="$prePhases unpackPhase patchPhase $preConfigurePhases \
+            configurePhase $preBuildPhases buildPhase checkPhase \
+            $preInstallPhases installPhase fixupPhase \
+            $preDistPhases distPhase $postPhases";
     fi
 
     for curPhase in $phases; do
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 8f237ec6062..fdb7326958e 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -4,7 +4,8 @@
 # compiler and linker that do not search in default locations,
 # ensuring purity of components produced by it.
 
-{system, allPackages}:
+# The function defaults are for easy testing.
+{system ? "i686-linux", allPackages ? import ../../top-level/all-packages.nix}:
 
 rec {
 
@@ -98,7 +99,7 @@ rec {
   # This function builds the various standard environments used during
   # the bootstrap.
   stdenvBootFun =
-    {gcc, staticGlibc, extraAttrs ? {}}:
+    {gcc, staticGlibc, extraAttrs ? {}, extraPath ? []}:
 
     let
       fetchurlBoot = import ../../build-support/fetchurl {
@@ -111,9 +112,7 @@ rec {
       preHook = ./scripts/prehook.sh;
       stdenv = stdenvInitial;
       shell = bootstrapTools.bash;
-      initialPath = [
-        staticTools
-      ];
+      initialPath = [staticTools] ++ extraPath;
       inherit fetchurlBoot;
       extraAttrs = extraAttrs // {fetchurl = fetchurlBoot;};
       inherit gcc;
@@ -159,6 +158,14 @@ rec {
     bootStdenv = stdenvLinuxBoot2;
   };
 
+
+  # Ugh, some packages in stdenvLinuxBoot3Pkgs need "sh", so create a
+  # package that contains just a symlink to bash.
+  shSymlink = stdenvLinuxBoot2Pkgs.runCommand "sh-symlink" {} ''
+    ensureDir $out/bin
+    ln -s $shell $out/bin/sh
+  '';
+
   
   # 6) Construct a third stdenv identical to the second, except that
   #    this one uses the dynamically linked GCC and Binutils from step
@@ -170,6 +177,7 @@ rec {
       libc = stdenvLinuxGlibc;
       gcc = stdenvLinuxBoot2Pkgs.gcc.gcc;
     };
+    extraPath = [stdenvLinuxBoot2Pkgs.replace shSymlink];
   };
 
   
@@ -183,7 +191,7 @@ rec {
   # 8) Construct the final stdenv.  It uses the Glibc, GCC and
   #    Binutils built above, and adds in dynamically linked versions
   #    of all other tools.
-  stdenvLinux = (import ../generic) {
+  stdenvLinux = import ../generic {
     name = "stdenv-linux";
     preHook = ./scripts/prehook.sh;
     initialPath = [
@@ -208,7 +216,8 @@ rec {
       inherit (stdenvLinuxBoot2Pkgs) binutils /* gcc */ glibc;
       inherit (stdenvLinuxBoot3Pkgs)
         gzip bzip2 bash coreutils diffutils findutils gawk
-        gnumake gnused gnutar gnugrep patch patchelf;
+        gnumake gnused gnutar gnugrep patch patchelf
+        attr acl;
     };
   };
 
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.sh b/pkgs/stdenv/linux/make-bootstrap-tools.sh
index cadc2129b31..820e26f5d65 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools.sh
+++ b/pkgs/stdenv/linux/make-bootstrap-tools.sh
@@ -102,10 +102,10 @@ rm -rf gcc/lib/gcc/*/*/include/root
 rm -rf gcc/lib/gcc/*/*/include/linux
 if test "$system" = "powerpc-linux"; then
     nukeRefs gcc/lib/gcc/powerpc-unknown-linux-gnu/*/include/bits/mathdef.h
-    # Dangling symlink "sound", probably produced by fixinclude.
-    # Should investigate why it's there in the first place.
-    rm -f gcc/lib/gcc/powerpc-unknown-linux-gnu/*/include/sound
 fi
+# Dangling symlink "sound", probably produced by fixinclude.
+# Should investigate why it's there in the first place.
+rm -f gcc/lib/gcc/*/*/include/sound
 
 
 # Create the glibc tarball.
@@ -130,10 +130,8 @@ for i in glibc/include/asm-*; do
     rm $i
     cp -prd $target glibc/include
 done
-if test "$system" = "powerpc-linux"; then
-    # Hopefully we won't need these.
-    rm -f glibc/include/mtd glibc/include/rdma glibc/include/sound glibc/include/video
-fi
+# Hopefully we won't need these.
+rm -f glibc/include/mtd glibc/include/rdma glibc/include/sound glibc/include/video
 
 
 # Strip executables even further.
diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix
index 7242f32f71c..e2d9b9eee8b 100644
--- a/pkgs/tools/archivers/gnutar/default.nix
+++ b/pkgs/tools/archivers/gnutar/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "gnutar-1.19";
+  name = "gnutar-1.20";
   
   src = fetchurl {
-    url = mirror://gnu/tar/tar-1.19.tar.bz2;
-    sha256 = "1d4wh27wlgryz3ld6gp6fn56knh7dmny93bmgixy07kvlxnx9466";
+    url = mirror://gnu/tar/tar-1.20.tar.bz2;
+    sha256 = "1swx3whm2vh0qzq8v04vgwk5zds6zlznk52xwivj7p2szcxg72xy";
   };
   
   patches = [./implausible.patch];
diff --git a/pkgs/tools/backup/rdiff-backup/default.nix b/pkgs/tools/backup/rdiff-backup/default.nix
index 8cd660adc8c..0c4f4b494fb 100644
--- a/pkgs/tools/backup/rdiff-backup/default.nix
+++ b/pkgs/tools/backup/rdiff-backup/default.nix
@@ -7,18 +7,18 @@ stdenv.mkDerivation {
     sha256 = "0sh2kz90z47yfa9786dyn3q9ba1xcmjvd65rykvm7mg5apnrg27h";
   };
 
-  phases="installPhase";
-  installPhase="python setup.py install --prefix=\$out || fail
-  sed -i \$out/bin/rdiff-backup -e \\
-    \"/import sys/ asys.path += [ \\\"\$out/lib/python2.4/site-packages/\\\" ]\"
-    
-  ";
+  phases = "installPhase";
+  installPhase = ''
+    python setup.py install --prefix=$out
+    sed -i $out/bin/rdiff-backup -e \
+      "/import sys/ asys.path += [ \"$out/lib/python2.4/site-packages/\" ]"
+  '';
 
   buildInputs = [python librsync gnused ];
 
   meta = {
-      description = "backup system trying to combine best a mirror and an incremental backup system";
-      homepage = http://rdiff-backup.nongnu.org/;
-      license = "GPL-2";
-    };
+    description = "backup system trying to combine best a mirror and an incremental backup system";
+    homepage = http://rdiff-backup.nongnu.org/;
+    license = "GPL-2";
+  };
 }
diff --git a/pkgs/tools/compression/bzip2/default.nix b/pkgs/tools/compression/bzip2/default.nix
index 9ed3e941bf6..eedcf242bca 100644
--- a/pkgs/tools/compression/bzip2/default.nix
+++ b/pkgs/tools/compression/bzip2/default.nix
@@ -1,16 +1,18 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation {
-  name = "bzip2-1.0.4";
+  name = "bzip2-1.0.5";
+  
   builder = ./builder.sh;
     
   src = fetchurl {
-    url = http://www.bzip.org/1.0.4/bzip2-1.0.4.tar.gz;
-    md5 = "fc310b254f6ba5fbb5da018f04533688";
+    url = http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz;
+    sha256 = "08py2s9vw6dgw457lbklh1vsr3b8x8dlv7d8ygdfaxlx61l57gzp";
   };
 
   sharedLibrary =
     !stdenv.isDarwin && !(stdenv ? isDietLibC) && stdenv.system != "i686-cygwin";
+    
   meta = {
     homepage = http://www.bzip.org;
   };
diff --git a/pkgs/tools/graphics/glxinfo/default.nix b/pkgs/tools/graphics/glxinfo/default.nix
index 5bff7815eba..0e2fa198a86 100644
--- a/pkgs/tools/graphics/glxinfo/default.nix
+++ b/pkgs/tools/graphics/glxinfo/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, x11, mesa, libXext}:
+{stdenv, fetchurl, x11, mesa}:
 
 stdenv.mkDerivation {
   name = "glxinfo-6.5.2";
@@ -20,10 +20,4 @@ stdenv.mkDerivation {
     ensureDir $out/bin
     cp glxinfo glxgears $out/bin
   ";
-
-  postFixup = "
-    for i in $out/bin/*; do
-      patchelf --set-rpath /var/run/opengl-driver/lib:${libXext}/lib:$(patchelf --print-rpath $i) $i
-    done
-  ";
 }
diff --git a/pkgs/tools/graphics/transfig/builder.sh b/pkgs/tools/graphics/transfig/builder.sh
index 8a91d78a089..d00aa90c61f 100644
--- a/pkgs/tools/graphics/transfig/builder.sh
+++ b/pkgs/tools/graphics/transfig/builder.sh
@@ -4,7 +4,7 @@ patchPhase=patchPhase
 patchPhase() {
     for i in $patches; do
         header "applying patch $i" 3
-        patch -p0 < $i || fail
+        patch -p0 < $i
         stopNest
     done
 
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index 8292c56f0ea..fb55325dcb7 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -1,15 +1,17 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, aclSupport ? false, acl}:
 
 stdenv.mkDerivation {
-  name = "coreutils-6.10";
+  name = "coreutils-6.12";
   
   src = fetchurl {
-    url = mirror://gnu/coreutils/coreutils-6.10.tar.gz;
-    sha256 = "0zpbxfl16sq45s53fxw43i9i8lrdcc845714c1j5f84zi13ka08x";
+    url = mirror://gnu/coreutils/coreutils-6.12.tar.gz;
+    sha256 = "12pi7i2mxff5jab48pqpwlz2pi0j6sp9p7bgrcl663iiw81zglj9";
   };
 
   meta = {
     homepage = http://www.gnu.org/software/coreutils/;
     description = "The basic file, shell and text manipulation utilities of the GNU operating system";
   };
+
+  buildInputs = stdenv.lib.optional aclSupport acl;
 }
diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix
index acfbf90d946..34667f596ed 100644
--- a/pkgs/tools/misc/findutils/default.nix
+++ b/pkgs/tools/misc/findutils/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, coreutils}:
 
 stdenv.mkDerivation {
-  name = "findutils-4.2.32";
+  name = "findutils-4.2.33";
   src = fetchurl {
-    url = mirror://gnu/findutils/findutils-4.2.32.tar.gz;
-    sha256 = "05sj0154kl4mbqg7dcabiaa16snjv2ppfwwhcvl2zyn2yc28igc7";
+    url = mirror://gnu/findutils/findutils-4.2.33.tar.gz;
+    sha256 = "0y0gmdc55kknf5438c1da5xsvpch3v800r79rgz5rv6fb90djg41";
   };
   buildInputs = [coreutils];
 
diff --git a/pkgs/tools/networking/curl/connect-timeout.patch b/pkgs/tools/networking/curl/connect-timeout.patch
index 829c724c30e..339930e03f6 100644
--- a/pkgs/tools/networking/curl/connect-timeout.patch
+++ b/pkgs/tools/networking/curl/connect-timeout.patch
@@ -1,6 +1,6 @@
-diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
-*** curl-7.17.1-orig/lib/connect.c	2007-10-22 16:30:17.000000000 +0200
---- curl-7.17.1/lib/connect.c	2007-12-19 18:30:32.000000000 +0100
+diff -rc curl-7.18.1-orig/lib/connect.c curl-7.18.1/lib/connect.c
+*** curl-7.18.1-orig/lib/connect.c	2008-02-07 23:25:04.000000000 +0100
+--- curl-7.18.1/lib/connect.c	2008-04-23 11:25:30.000000000 +0200
 ***************
 *** 99,105 ****
   singleipconnect(struct connectdata *conn,
@@ -9,7 +9,7 @@ diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
 !                 bool *connected);
   
   /*
-   * Curl_nonblock() set the given socket to either blocking or non-blocking
+   * Curl_timeleft() returns the amount of milliseconds left allowed for the
 --- 99,106 ----
   singleipconnect(struct connectdata *conn,
                   const Curl_addrinfo *ai, /* start connecting to this */
@@ -18,10 +18,10 @@ diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
 !                 bool *timed_out);
   
   /*
-   * Curl_nonblock() set the given socket to either blocking or non-blocking
+   * Curl_timeleft() returns the amount of milliseconds left allowed for the
 ***************
-*** 492,497 ****
---- 493,499 ----
+*** 552,557 ****
+--- 553,559 ----
   {
     curl_socket_t sockfd;
     Curl_addrinfo *ai;
@@ -30,24 +30,24 @@ diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
     /* first close the failed socket */
     sclose(conn->sock[sockindex]);
 ***************
-*** 505,511 ****
+*** 565,571 ****
     ai = conn->ip_addr->ai_next;
   
-    while (ai) {
+    while(ai) {
 !     sockfd = singleipconnect(conn, ai, 0L, connected);
       if(sockfd != CURL_SOCKET_BAD) {
         /* store the new socket descriptor */
         conn->sock[sockindex] = sockfd;
---- 507,513 ----
+--- 567,573 ----
     ai = conn->ip_addr->ai_next;
   
-    while (ai) {
+    while(ai) {
 !     sockfd = singleipconnect(conn, ai, 0L, connected, &timed_out);
       if(sockfd != CURL_SOCKET_BAD) {
         /* store the new socket descriptor */
         conn->sock[sockindex] = sockfd;
 ***************
-*** 669,675 ****
+*** 720,726 ****
   singleipconnect(struct connectdata *conn,
                   const Curl_addrinfo *ai,
                   long timeout_ms,
@@ -55,7 +55,7 @@ diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
   {
     char addr_buf[128];
     int rc;
---- 671,678 ----
+--- 722,729 ----
   singleipconnect(struct connectdata *conn,
                   const Curl_addrinfo *ai,
                   long timeout_ms,
@@ -65,8 +65,8 @@ diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
     char addr_buf[128];
     int rc;
 ***************
-*** 689,694 ****
---- 692,699 ----
+*** 740,745 ****
+--- 743,750 ----
     struct curl_sockaddr *addr=(struct curl_sockaddr*)&addr_storage;
     const void *iptoprint;
   
@@ -76,7 +76,7 @@ diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
     addr->socktype=conn->socktype;
     addr->protocol=ai->ai_protocol;
 ***************
-*** 790,797 ****
+*** 841,848 ****
       infof(data, "connected\n");
       return sockfd;
     }
@@ -85,7 +85,7 @@ diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
     else {
       data->state.os_errno = error;
       infof(data, "%s\n", Curl_strerror(conn, error));
---- 795,804 ----
+--- 846,855 ----
       infof(data, "connected\n");
       return sockfd;
     }
@@ -97,26 +97,26 @@ diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
       data->state.os_errno = error;
       infof(data, "%s\n", Curl_strerror(conn, error));
 ***************
-*** 822,829 ****
+*** 872,879 ****
+    int num_addr;
     Curl_addrinfo *ai;
     Curl_addrinfo *curr_addr;
-    int timeout_set = 0;
   
 -   struct timeval after;
     struct timeval before = Curl_tvnow();
   
     /*************************************************************
---- 829,836 ----
+--- 879,886 ----
+    int num_addr;
     Curl_addrinfo *ai;
     Curl_addrinfo *curr_addr;
-    int timeout_set = 0;
 +   bool timed_out;
   
     struct timeval before = Curl_tvnow();
   
     /*************************************************************
 ***************
-*** 891,909 ****
+*** 915,933 ****
          curr_addr = curr_addr->ai_next, aliasindex++) {
   
       /* start connecting to the IP curr_addr points to */
@@ -135,8 +135,8 @@ diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
 -     before = after;
     }  /* end of connect-to-each-address loop */
   
-    if (sockfd == CURL_SOCKET_BAD) {
---- 898,914 ----
+    if(sockfd == CURL_SOCKET_BAD) {
+--- 922,938 ----
          curr_addr = curr_addr->ai_next, aliasindex++) {
   
       /* start connecting to the IP curr_addr points to */
@@ -153,4 +153,4 @@ diff -rc curl-7.17.1-orig/lib/connect.c curl-7.17.1/lib/connect.c
       }
     }  /* end of connect-to-each-address loop */
   
-    if (sockfd == CURL_SOCKET_BAD) {
+    if(sockfd == CURL_SOCKET_BAD) {
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 85a9ab957d6..a429e1c9514 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -4,17 +4,21 @@ assert zlibSupport -> zlib != null;
 assert sslSupport -> openssl != null;
 
 stdenv.mkDerivation {
-  name = "curl-7.17.1";
+  name = "curl-7.18.1";
+  
   src = fetchurl {
-    url = http://curl.haxx.se/download/curl-7.17.1.tar.bz2;
-    sha256 = "0yz50r75jhfr2ya6wqi6n90bn4ij30299pjglmlckzq6jp28wrkz";
+    url = http://curl.haxx.se/download/curl-7.18.1.tar.bz2;
+    sha256 = "0v5fpr4bsdlg262nsgrijlfhp3vgr1ypir1rrkmhxcsnpv4frw6c";
   };
+  
   buildInputs =
     stdenv.lib.optional zlibSupport zlib ++
     stdenv.lib.optional sslSupport openssl;
-  configureFlags = "
+    
+  configureFlags = ''
     ${if sslSupport then "--with-ssl=${openssl}" else "--without-ssl"}
-  ";
+  '';
+  
   CFLAGS = if stdenv ? isDietLibC then "-DHAVE_INET_NTOA_R_2_ARGS=1" else "";
   CXX = "g++";
   CXXCPP = "g++ -E";
@@ -37,4 +41,9 @@ stdenv.mkDerivation {
        considered non-transient so it won't retry. */
     ./connect-timeout.patch
   ];
+
+  meta = {
+    description = "A command line tool for transferring files with URL syntax";
+    homepage = http://curl.haxx.se/;
+  };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b410a6818e6..69bc927df2e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -520,7 +520,8 @@ let pkgs = rec {
       then import ../tools/misc/coreutils-5
       else import ../tools/misc/coreutils)
     {
-      inherit fetchurl stdenv;
+      inherit fetchurl stdenv acl;
+      aclSupport = stdenv.isLinux;
     });
 
   cpio = import ../tools/archivers/cpio {
@@ -655,7 +656,6 @@ let pkgs = rec {
 
   glxinfo = assert mesaSupported; import ../tools/graphics/glxinfo {
     inherit fetchurl stdenv x11 mesa;
-    inherit (xlibs) libXext;
   };
 
   gnugrep = useFromStdenv "gnugrep"
@@ -2320,9 +2320,10 @@ let pkgs = rec {
     inherit fetchurl stdenv ncurses;
   };
 
-  acl = import ../development/libraries/acl {
-    inherit stdenv fetchurl autoconf libtool gettext attr;
-  };
+  acl = useFromStdenv "acl"
+    (import ../development/libraries/acl {
+      inherit stdenv fetchurl gettext attr libtool;
+    });
 
   agg = import ../development/libraries/agg {
     inherit fetchurl stdenv autoconf automake libtool pkgconfig
@@ -2370,13 +2371,10 @@ let pkgs = rec {
     inherit fetchurl stdenv;
   };
 
-  attr = import ../development/libraries/attr {
-    inherit stdenv fetchurl autoconf libtool gettext;
-  };
-
-  audiofile = import ../development/libraries/audiofile {
-    inherit fetchurl stdenv;
-  };
+  attr = useFromStdenv "attr"
+    (import ../development/libraries/attr {
+      inherit stdenv fetchurl libtool gettext;
+    });
 
   axis = import ../development/libraries/axis {
     inherit fetchurl stdenv;
@@ -2400,6 +2398,7 @@ let pkgs = rec {
 
   cairo = import ../development/libraries/cairo {
     inherit fetchurl stdenv pkgconfig x11 fontconfig freetype zlib libpng;
+    inherit (xlibs) pixman;
   };
 
   cairomm = import ../development/libraries/cairomm {
@@ -2645,17 +2644,14 @@ let pkgs = rec {
     inherit (gtkLibs) glib;
   };
 
-  gnutls = import ../development/libraries/gnutls
-    (let guileBindings = getConfig ["gnutls" "guile"] false;
-     in {
-	 inherit fetchurl stdenv libgcrypt zlib lzo;
-	 inherit guileBindings;
-	 guile = (if guileBindings then guile else null);
-       });
+  gnutls = import ../development/libraries/gnutls {
+    inherit fetchurl stdenv libgcrypt zlib lzo guile;
+    guileBindings = getConfig ["gnutls" "guile"] false;
+  };
 
   gpgme = import ../development/libraries/gpgme {
     inherit fetchurl stdenv libgpgerror pkgconfig pth gnupg gnupg2;
-  inherit (gtkLibs) glib;
+    inherit (gtkLibs) glib;
   };
 
   # gnu scientific library
@@ -2663,7 +2659,7 @@ let pkgs = rec {
     inherit fetchurl stdenv;
   };
 
-  gtkLibs = recurseIntoAttrs gtkLibs210;
+  gtkLibs = recurseIntoAttrs gtkLibs212;
 
   gtkLibs1x = import ../development/libraries/gtk-libs/1.x {
     inherit fetchurl stdenv x11 libtiff libjpeg libpng;
@@ -2676,6 +2672,13 @@ let pkgs = rec {
     xineramaSupport = true;
   };
 
+  gtkLibs212 = import ../development/libraries/gtk-libs/2.12 {
+    inherit fetchurl stdenv pkgconfig gettext perl x11
+            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;
@@ -3010,6 +3013,10 @@ let pkgs = rec {
     inherit fetchurl stdenv;
   };
 
+  libtasn1 = import ../development/libraries/libtasn1 {
+    inherit fetchurl stdenv;
+  };
+
   libtheora = import ../development/libraries/libtheora {
     inherit fetchurl stdenv libogg libvorbis;
   };
@@ -5008,13 +5015,7 @@ let pkgs = rec {
     inherit (gtkLibs) glib gtk pango;
   };
 
-  librsvg = import ../development/libraries/librsvg {
-    inherit fetchurl stdenv;
-    inherit libxml2 pkgconfig cairo fontconfig freetype;
-    inherit (gtkLibs) glib pango gtk;
-    #gtkLibs = gtkLibs210;          #need gtk+
-    libart = gnome.libart_lgpl;
-  };
+  librsvg = gnome.librsvg;
 
   libsepol = import ../os-specific/linux/libsepol {
     inherit fetchurl stdenv;
@@ -6812,12 +6813,13 @@ let pkgs = rec {
 
 
   gnome = recurseIntoAttrs (import ../desktops/gnome {
-    inherit fetchurl stdenv pkgconfig audiofile
-            flex bison popt zlib libxml2 libxslt
-            perl perlXMLParser docbook_xml_dtd_42 docbook_xml_dtd_412
-            gettext x11 libtiff libjpeg libpng gtkLibs xlibs bzip2
-            libcm python dbus_glib ncurses which libxml2Python
-            iconnamingutils openssl hal samba fam;
+    inherit
+      fetchurl stdenv pkgconfig
+      flex bison popt zlib libxml2 libxslt
+      perl perlXMLParser docbook_xml_dtd_42 docbook_xml_dtd_412
+      gettext x11 libtiff libjpeg libpng gtkLibs xlibs bzip2
+      libcm python dbus_glib ncurses which libxml2Python
+      iconnamingutils openssl hal samba fam libgcrypt libtasn1;
   });
 
   kdelibs = import ../desktops/kde/kdelibs {
diff --git a/pkgs/top-level/build-for-release.nix b/pkgs/top-level/build-for-release.nix
index 118bf3896da..3018b8bef69 100644
--- a/pkgs/top-level/build-for-release.nix
+++ b/pkgs/top-level/build-for-release.nix
@@ -26,7 +26,7 @@ let
     bzip2
     cabextract
     cdrkit
-    chatzilla
+    #chatzilla
     cksfv
     #compiz
     coreutils
@@ -225,22 +225,30 @@ let
   };
 
   x86_64LinuxPkgs = {inherit (allPackages {system = "x86_64-linux";})
+    MPlayer
+    MPlayerPlugin
     aterm242fixes
     autoconf
     automake19x
     bash
     binutils
     bison23
+    emacs
+    firefoxWrapper
     gcc
     hello
     libtool
     nixUnstable
     subversion
+    pan
     ;    
   inherit ((allPackages {system = "i686-linux";}).kernelPackages_2_6_23)
     iwlwifi
     kernel
     ;
+  inherit ((allPackages {system = "i686-linux";}).xorg)
+    xorgserver
+    ;
   };
   
   i686FreeBSDPkgs = {inherit (allPackages {system = "i686-freebsd";})
@@ -305,5 +313,5 @@ in [
   #i686FreeBSDPkgs
   #powerpcDarwinPkgs
   i686DarwinPkgs
-  cygwinPkgs
+  #cygwinPkgs
 ]