summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/release-notes.xml4
-rw-r--r--pkgs/applications/audio/mpc123/default.nix32
-rw-r--r--pkgs/applications/audio/mpc123/use-gcc.patch13
-rw-r--r--pkgs/applications/misc/eaglemode/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/icecat-3/default.nix67
-rw-r--r--pkgs/applications/office/homebank/default.nix27
-rw-r--r--pkgs/applications/office/mmex/default.nix35
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix26
-rw-r--r--pkgs/build-support/fetchgit/builder.sh6
-rw-r--r--pkgs/build-support/fetchgit/default.nix4
-rw-r--r--pkgs/build-support/fetchhg/nix-prefetch-hg71
-rw-r--r--pkgs/build-support/vm/default.nix12
-rw-r--r--pkgs/desktops/gnome-2.28/default.nix1
-rw-r--r--pkgs/development/compilers/ecl/src-for-default.nix10
-rw-r--r--pkgs/development/compilers/ecl/src-info-for-default.nix1
-rw-r--r--pkgs/development/libraries/apr/default.nix7
-rw-r--r--pkgs/development/libraries/boost/1.41.0.nix5
-rw-r--r--pkgs/development/libraries/classads/default.nix22
-rw-r--r--pkgs/development/libraries/gsoap/default.nix19
-rw-r--r--pkgs/development/libraries/libffi/default.nix9
-rw-r--r--pkgs/development/libraries/libofx/default.nix22
-rw-r--r--pkgs/development/libraries/libofx/libofx-0.9.0-gcc43.patch375
-rw-r--r--pkgs/development/libraries/libvirt/default.nix28
-rw-r--r--pkgs/development/libraries/libvirt/non-absolute-ld.patch12
-rw-r--r--pkgs/development/libraries/mpich2/default.nix35
-rw-r--r--pkgs/development/libraries/opencascade/default.nix8
-rw-r--r--pkgs/development/libraries/science/math/blas/default.nix38
-rw-r--r--pkgs/development/libraries/science/math/liblapack/blas-link.patch24
-rw-r--r--pkgs/development/libraries/science/math/liblapack/default.nix53
-rw-r--r--pkgs/development/libraries/scmccid/default.nix6
-rw-r--r--pkgs/development/libraries/sqlite/default.nix23
-rw-r--r--pkgs/development/tools/misc/coccinelle/default.nix4
-rw-r--r--pkgs/games/pioneers/default.nix19
-rw-r--r--pkgs/games/teeworlds/default.nix6
-rw-r--r--pkgs/games/tennix/default.nix23
-rw-r--r--pkgs/games/urbanterror/default.nix73
-rw-r--r--pkgs/games/warsow/default.nix55
-rw-r--r--pkgs/lib/maintainers.nix1
-rw-r--r--pkgs/misc/tex/latex2html/default.nix23
-rw-r--r--pkgs/misc/tex/tex4ht/default.nix37
-rw-r--r--pkgs/os-specific/linux/fuse/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.27.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.32.nix4
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/default.nix10
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch33
-rw-r--r--pkgs/servers/openafs-client/default.nix23
-rw-r--r--pkgs/shells/zsh/default.nix6
-rw-r--r--pkgs/tools/compression/ncompress/default.nix4
-rw-r--r--pkgs/tools/graphics/netpbm/rgbpaths.patch16
-rw-r--r--pkgs/tools/misc/grub/1.9x.nix7
-rw-r--r--pkgs/tools/networking/openssh/default.nix80
-rw-r--r--pkgs/tools/networking/p2p/ktorrent/default.nix22
-rw-r--r--pkgs/tools/networking/p2p/tahoe-lafs/default.nix38
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix6
-rw-r--r--pkgs/tools/system/ipmitool/default.nix9
-rw-r--r--pkgs/tools/text/enscript/default.nix37
-rw-r--r--pkgs/tools/text/sgml/opensp/default.nix18
-rw-r--r--pkgs/top-level/all-packages.nix118
-rw-r--r--pkgs/top-level/make-tarball.nix4
-rw-r--r--pkgs/top-level/python-packages.nix102
60 files changed, 1524 insertions, 263 deletions
diff --git a/doc/release-notes.xml b/doc/release-notes.xml
index 37cbdd684038..0a57aa7da189 100644
--- a/doc/release-notes.xml
+++ b/doc/release-notes.xml
@@ -5,7 +5,7 @@
 <title>Nixpkgs Release Notes</title>
 
 
-<section><title>Release 0.13 (Januari NNN, 2010)</title>
+<section><title>Release 0.13 (January NNN, 2010)</title>
 
 <para>As always, there are many changes.  Some of the most important
 updates are:
@@ -24,6 +24,8 @@ updates are:
 
 </itemizedlist>
 
+</para>
+
 
 </section>
 
diff --git a/pkgs/applications/audio/mpc123/default.nix b/pkgs/applications/audio/mpc123/default.nix
new file mode 100644
index 000000000000..4ea26b458a7c
--- /dev/null
+++ b/pkgs/applications/audio/mpc123/default.nix
@@ -0,0 +1,32 @@
+{ fetchurl, stdenv, gettext, libmpcdec, libao }:
+
+let version = "0.2.4"; in
+stdenv.mkDerivation rec {
+  name = "mpc123-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mpc123/version%20${version}/${name}.tar.gz";
+    sha256 = "0sf4pns0245009z6mbxpx7kqy4kwl69bc95wz9v23wgappsvxgy1";
+  };
+
+  patches = [ ./use-gcc.patch ];
+
+  buildInputs = [ gettext libmpcdec libao ];
+
+  installPhase =
+    # XXX: Should install locales too (though there's only 1 available).
+    '' ensureDir "$out/bin"
+       cp -v mpc123 "$out/bin"
+    '';
+
+  meta = {
+    homepage = http://mpc123.sourceforge.net/;
+
+    description = "mpc123, a Musepack (.mpc) audio player";
+
+    license = "GPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.gnu; # arbitrary choice
+  };
+}
diff --git a/pkgs/applications/audio/mpc123/use-gcc.patch b/pkgs/applications/audio/mpc123/use-gcc.patch
new file mode 100644
index 000000000000..ca4cf84591ce
--- /dev/null
+++ b/pkgs/applications/audio/mpc123/use-gcc.patch
@@ -0,0 +1,13 @@
+Don't worry, just use GCC and everything's gonna be alright.
+
+--- mpc123-0.2.4/Makefile	2008-03-21 22:14:38.000000000 +0100
++++ mpc123-0.2.4/Makefile	2010-01-28 23:26:49.000000000 +0100
+@@ -17,7 +17,7 @@
+ # along with this program; if not, write to the Free Software Foundation,
+ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ 
+-CC := $(shell which colorgcc || which cc)
++CC := gcc
+ 
+ TAGSPRG := ctags
+ 
diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix
index 3984590639f8..8f29fdc8b750 100644
--- a/pkgs/applications/misc/eaglemode/default.nix
+++ b/pkgs/applications/misc/eaglemode/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, libX11, xineLib, libjpeg, libpng, libtiff }:
 
 stdenv.mkDerivation {
-  name = "eaglemode-0.75";
+  name = "eaglemode-0.76.0";
  
   src = fetchurl {
-    url = mirror://sourceforge/eaglemode/eaglemode-0.75.0.tar.bz2;
-    sha256 = "0iqdf55ff0il5frkl3yq3r27yk9xl30b9ygf3fvrv78a5bzpq8r7";
+    url = mirror://sourceforge/eaglemode/eaglemode-0.76.0.tar.bz2;
+    sha256 = "152v7p9dicm8shwncpcifg4b2l4c61c1qn00469cz38vja67npww";
   };
  
   buildInputs = [ perl libX11 xineLib libjpeg libpng libtiff ];
diff --git a/pkgs/applications/networking/browsers/icecat-3/default.nix b/pkgs/applications/networking/browsers/icecat-3/default.nix
index 908b1eff225c..4335c63c7c7a 100644
--- a/pkgs/applications/networking/browsers/icecat-3/default.nix
+++ b/pkgs/applications/networking/browsers/icecat-3/default.nix
@@ -1,47 +1,52 @@
-{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, ply, zip, libIDL
+{ fetchurl, stdenv, pkgconfig, gtk, pango, perl, python, ply, zip, libIDL
 , libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs, alsaLib
-, gnomevfs, libgnomeui
-, freetype, fontconfig
+, libnotify, gnomevfs, libgnomeui
+, freetype, fontconfig, wirelesstools ? null
 , application ? "browser" }:
 
-let version = "3.5.7"; in
+# Build the WiFi stuff on Linux-based systems.
+# FIXME: Disable for now until it can actually be built:
+# http://thread.gmane.org/gmane.comp.gnu.gnuzilla/1376 .
+#assert stdenv.isLinux -> (wirelesstools != null);
+
+let version = "3.6"; in
 stdenv.mkDerivation {
   name = "icecat-${version}";
 
   src = fetchurl {
     url = "mirror://gnu/gnuzilla/${version}/icecat-${version}.tar.bz2";
-    sha256 = "0pz48rz9rpig3xdvs6jkjc4azhwxabn81bz7c0alkfkdzjmcl8ym";
+    sha256 = "0fsf8zd8nncg1w1gg2jhlxwkbljvrx4mm9pywasklyi0gvi939ds";
   };
 
-  buildInputs = [
-    libgnomeui gnomevfs alsaLib
-    pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
-    python ply dbus dbus_glib pango freetype fontconfig
-    xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt
-  ];
+  buildInputs =
+    [ libgnomeui libnotify gnomevfs alsaLib
+      pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+      python ply dbus dbus_glib pango freetype fontconfig
+      xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt
+    ]
+    ++ (stdenv.lib.optional false /* stdenv.isLinux */ wirelesstools);
 
   patches = [
     ./skip-gre-registration.patch ./rpath-link.patch
   ];
 
-  configureFlags = [
-    "--enable-application=${application}"
-    "--enable-libxul"
-    "--disable-javaxpcom"
-
-    "--enable-optimize"
-    "--disable-debug"
-    "--enable-strip"
-    "--with-system-jpeg"
-    "--with-system-zlib"
-    "--with-system-bz2"
-    # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
-    "--enable-system-cairo"
-    #"--enable-system-sqlite" # <-- this seems to be discouraged
-    "--disable-crashreporter"
-  ];
-
-  preConfigure = ''export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC"'';
+  configureFlags =
+    [ "--enable-application=${application}"
+      "--enable-libxul"
+      "--disable-javaxpcom"
+
+      "--enable-optimize"
+      "--disable-debug"
+      "--enable-strip"
+      "--with-system-jpeg"
+      "--with-system-zlib"
+      "--with-system-bz2"
+      # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+      "--enable-system-cairo"
+      #"--enable-system-sqlite" # <-- this seems to be discouraged
+      "--disable-crashreporter"
+    ]
+    ++ (stdenv.lib.optional true /* (!stdenv.isLinux) */ "--disable-necko-wifi");
 
   postInstall = ''
     export dontPatchELF=1;
@@ -79,8 +84,8 @@ stdenv.mkDerivation {
     fi
 
     # Put the GNU IceCat icon in the right place.
-    ensureDir $out/lib/$libDir/chrome/icons/default
-    ln -s ../../../icons/default.xpm  $out/lib/$libDir/chrome/icons/default/
+    ensureDir "$out/lib/$libDir/chrome/icons/default"
+    ln -s ../../../icons/default.xpm  "$out/lib/$libDir/chrome/icons/default/"
   '';
 
   meta = {
diff --git a/pkgs/applications/office/homebank/default.nix b/pkgs/applications/office/homebank/default.nix
new file mode 100644
index 000000000000..4a04580201c0
--- /dev/null
+++ b/pkgs/applications/office/homebank/default.nix
@@ -0,0 +1,27 @@
+{ fetchurl, stdenv, gtk, pkgconfig, libofx, intltool }:
+
+let
+   download_root = "http://homebank.free.fr/public/";
+   name = "homebank-4.1";
+   lastrelease = download_root + name + ".tar.gz";
+   oldrelease = download_root + "old/" + name + ".tar.gz";
+in
+
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    urls = [ lastrelease oldrelease ];
+    sha256 = "0nv69rmcvywgks58w20qgbw8v0ir57gys4zd2gcys6knj6q323b8";
+  };
+
+  buildInputs = [ pkgconfig gtk libofx intltool ];
+
+  meta = {
+    description = "Free, easy, personal accounting for everyone";
+    homepage = http://homebank.free.fr/;
+    license = "GPLv2+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/office/mmex/default.nix b/pkgs/applications/office/mmex/default.nix
new file mode 100644
index 000000000000..1e7aa756471f
--- /dev/null
+++ b/pkgs/applications/office/mmex/default.nix
@@ -0,0 +1,35 @@
+# To use this program, copy all that is in $out/opt/mmax into a writable directory,
+# and run it from there. This is the intended usage, as far as I understand.
+
+{ fetchsvn, stdenv, wxGTK }:
+
+let version = "0.9.5.1";
+in
+  stdenv.mkDerivation {
+    name = "money-manager-ex-${version}";
+
+    src = fetchsvn {
+      url = "https://moneymanagerex.svn.sourceforge.net/svnroot/moneymanagerex/tags/releases/${version}";
+      sha256 = "0mby1p01fyxk5pgd7h3919q91r10zbfk16rfz1kbchqxqz87x4jq";
+    };
+
+    preConfigure = ''
+      export CFLAGS="-I`pwd`/include"
+      export CXXFLAGS="$CFLAGS"
+    '';
+
+    installPhase = ''
+      ensureDir $out/opt/mmex
+      cp -r mmex runtime/{*.txt,*.png,*.db3,en,help,*.wav,*.ico} $out/opt/mmex
+    '';
+
+    buildInputs = [ wxGTK ];
+
+    meta = {
+      description = "Easy-to-use personal finance software";
+      homepage = http://www.codelathe.com/mmex;
+      license = "GPLv2+";
+      maintainers = with stdenv.lib.maintainers; [viric];
+      platforms = with stdenv.lib.platforms; linux;
+    };
+  }
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 3a43e4ad8128..4c8e83956392 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -55,22 +55,30 @@ rec {
         inherit fetchurl stdenv python git;
   };
 
-  topGit = stdenv.mkDerivation {
-    name = "TopGit-git"; # official release 0.8
-    # REGION AUTO UPDATE:     { name = "topGit"; type="git"; url="http://repo.or.cz/w/topgit.git"; }
-    src= sourceFromHead "topGit-341a3713f5c399f97c5c68a74772b12bb3d2ca57.tar.gz"
-                 (fetchurl { url = "http://mawercer.de/~nix/repos/topGit-341a3713f5c399f97c5c68a74772b12bb3d2ca57.tar.gz"; sha256 = "4d53343ed9ba735fb598d6576b20f2641d5a8374a5a11b21fcbcdc6da885e872"; });
-    # END
-    phases="unpackPhase patchPhase installPhase";
-    installPhase = ''
+  topGit = stdenv.mkDerivation rec {
+    name = "topgit-0.8";
+
+    src = fetchurl {
+      # Snapshot for the `topgit-0.8' tag.
+      url = "http://repo.or.cz/w/topgit.git/snapshot/f59e4f9e87e5f485fdaee0af002edd2105fa298a.tar.gz";
+      sha256 = "0bz3anrzjcnywslh9679mhg7n5bdr1dmsbb5x3ywvkp3mma9b4xk";
+    };
+
+    configurePhase = "export prefix=$out";
+
+    postInstall = ''
+      mkdir -p "$out/share/doc/${name}"
+      cp -v README "$out/share/doc/${name}"
+
       mkdir -p $out/etc/bash_completion.d
       make prefix=$out \
         install
       mv contrib/tg-completion.bash $out/etc/bash_completion.d
     '';
+
     meta = {
       description = "TopGit aims to make handling of large amount of interdependent topic branches easier";
-      maintainers = [lib.maintainers.marcweber];
+      maintainers = [ lib.maintainers.marcweber lib.maintainers.ludo ];
       homepage = http://repo.or.cz/w/topgit.git; # maybe there is also another one, I haven't checked
       license = "GPLv2";
     };
diff --git a/pkgs/build-support/fetchgit/builder.sh b/pkgs/build-support/fetchgit/builder.sh
index 08a1cc5d3419..ba06aed90e18 100644
--- a/pkgs/build-support/fetchgit/builder.sh
+++ b/pkgs/build-support/fetchgit/builder.sh
@@ -7,7 +7,9 @@ if test -n "$rev"; then
   cd $out
   git checkout $rev
 fi
-find $out -name .git\* | xargs rm -rf
 
-stopNest
+if test -z "$leaveDotGit"; then
+    find $out -name .git\* | xargs rm -rf
+fi
 
+stopNest
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index 8fd86cd24815..a0ad57ea3064 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -1,5 +1,5 @@
 {stdenv, git}:
-{url, rev ? "HEAD", md5 ? "", sha256 ? ""}:
+{url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? false }:
 
 /* NOTE:
    fetchgit has one problem: git fetch only works for refs.
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
   outputHashMode = "recursive";
   outputHash = if sha256 == "" then md5 else sha256;
 
-  inherit url rev;
+  inherit url rev leaveDotGit;
 
   impureEnvVars = [
     # We borrow these environment variables from the caller to allow
diff --git a/pkgs/build-support/fetchhg/nix-prefetch-hg b/pkgs/build-support/fetchhg/nix-prefetch-hg
new file mode 100644
index 000000000000..b2711392acc4
--- /dev/null
+++ b/pkgs/build-support/fetchhg/nix-prefetch-hg
@@ -0,0 +1,71 @@
+#! /bin/sh -e
+
+url=$1
+rev=$2
+expHash=$3
+
+hashType=$NIX_HASH_ALGO
+if test -z "$hashType"; then
+    hashType=sha256
+fi
+if test -z "$hashFormat"; then
+    hashFormat=--base32
+fi
+
+if test -z "$url"; then
+    echo "syntax: nix-prefetch-hg URL [rev [EXPECTED-HASH]]" >&2
+    exit 1
+fi
+
+test -n "$rev" || rev="tip"
+
+
+# If the hash was given, a file with that hash may already be in the
+# store.
+if test -n "$expHash"; then
+    finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" hg-archive)
+    if ! nix-store --check-validity "$finalPath" 2> /dev/null; then
+        finalPath=
+    fi
+    hash=$expHash
+fi
+
+
+# If we don't know the hash or a path with that hash doesn't exist,
+# download the file and add it to the store.
+if test -z "$finalPath"; then
+
+    tmpPath=/tmp/hg-checkout-tmp-$$
+    tmpClone=$tmpPath/hg-clone
+    tmpArchive=$tmpPath/hg-archive
+    mkdir $tmpPath
+
+    trap "rm -rf $tmpPath" EXIT
+
+    # Perform the checkout.
+    hg clone -q -y -U "$url" $tmpClone >&2
+    hg archive -q -y -r "$rev" --cwd $tmpClone $tmpArchive
+
+
+    # Compute the hash.
+    hash=$(nix-hash --type $hashType $hashFormat $tmpArchive)
+    if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi
+
+    # Add the downloaded file to the Nix store.
+    finalPath=$(nix-store --add-fixed --recursive "$hashType" $tmpArchive)
+
+    if test -n "$expHash" -a "$expHash" != "$hash"; then
+        echo "hash mismatch for URL \`$url'"
+        exit 1
+    fi
+
+
+fi
+
+if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi
+
+echo $hash
+
+if test -n "$PRINT_PATH"; then
+    echo $finalPath
+fi
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 8e0818662aa1..7870f987fafa 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -970,21 +970,21 @@ rec {
     } // args);
 
     debian50i386 = args: makeImageFromDebDist ({
-      name = "debian-5.0.3-lenny-i386";
-      fullName = "Debian 5.0.3 Lenny (i386)";
+      name = "debian-5.0.4-lenny-i386";
+      fullName = "Debian 5.0.4 Lenny (i386)";
       packagesList = fetchurl {
         url = mirror://debian/dists/lenny/main/binary-i386/Packages.bz2;
-        sha256 = "87886ed314c53a57c6689022c0043c25c3c96c643e3034fc51acae0572b5ff1f";
+        sha256 = "6c5ca67fb401a5d29f02557c290bbaee35c457172d548583b510d49eadd0f9ff";
       };
       urlPrefix = mirror://debian;
     } // args);
         
     debian50x86_64 = args: makeImageFromDebDist ({
-      name = "debian-5.0.3-lenny-amd64";
-      fullName = "Debian 5.0.3 Lenny (amd64)";
+      name = "debian-5.0.4-lenny-amd64";
+      fullName = "Debian 5.0.4 Lenny (amd64)";
       packagesList = fetchurl {
         url = mirror://debian/dists/lenny/main/binary-amd64/Packages.bz2;
-        sha256 = "c51dc5b87d7cd12bd3537bb905428a49869a0f4e0e7cb3546dd8a00fb32db380";
+        sha256 = "c3b660b861ed257e82293a350ab868c2ce566bc084d35cc66b7388a881eaf3c5";
       };
       urlPrefix = mirror://debian;
     } // args);
diff --git a/pkgs/desktops/gnome-2.28/default.nix b/pkgs/desktops/gnome-2.28/default.nix
index cfc1b1579779..fb6b03274327 100644
--- a/pkgs/desktops/gnome-2.28/default.nix
+++ b/pkgs/desktops/gnome-2.28/default.nix
@@ -12,6 +12,7 @@ rec {
 
   # !!! Missing! Need to add these.
   vte = throw "vte not implemented";
+  libgnomeprintui = throw "libgnomeprintui not implemented";
   gtksourceview_24 = gtksourceview;
 
 
diff --git a/pkgs/development/compilers/ecl/src-for-default.nix b/pkgs/development/compilers/ecl/src-for-default.nix
index 8e1753cb41fa..fd813243ecc0 100644
--- a/pkgs/development/compilers/ecl/src-for-default.nix
+++ b/pkgs/development/compilers/ecl/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="9.6.2";
-   name="ecl-9.6.2";
-   hash="1847ppfrgfpjwc9qlfcvvsfhkarjz339qzh9mb0fwnqfihrbqpfy";
-   url="http://downloads.sourceforge.net/ecls/files/ecls/9.6.0/ecl-${version}.tar.gz";
-   advertisedUrl="http://downloads.sourceforge.net/ecls/files/ecls/9.6.0/ecl-9.6.2.tar.gz";
+   version="9.12.3";
+   name="ecl-9.12.3";
+   hash="10p6qncsx8jh3dwfv5l0rbqx1ib7mmvac2dxc6xvj38khkaykwpl";
+   url="http://downloads.sourceforge.net/ecls/files/ecls/9.12/ecl-${version}.tgz";
+   advertisedUrl="http://downloads.sourceforge.net/ecls/files/ecls/9.12/ecl-9.12.3.tgz";
   
   
 }
diff --git a/pkgs/development/compilers/ecl/src-info-for-default.nix b/pkgs/development/compilers/ecl/src-info-for-default.nix
index 84be3b3f5273..1f5f3270f53a 100644
--- a/pkgs/development/compilers/ecl/src-info-for-default.nix
+++ b/pkgs/development/compilers/ecl/src-info-for-default.nix
@@ -2,4 +2,5 @@
   downloadPage = "http://sourceforge.net/projects/ecls/files/";
   baseName = "ecl";
   choiceCommand = "head -1 | sed -e 's@/download@@;'\"$skipRedirectSF\"";
+  sourceRegexp = ".*[.](tar.gz|tgz|tbz2|tar.bz2)";
 }
diff --git a/pkgs/development/libraries/apr/default.nix b/pkgs/development/libraries/apr/default.nix
index 1b63aee0595e..9f28485754a1 100644
--- a/pkgs/development/libraries/apr/default.nix
+++ b/pkgs/development/libraries/apr/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "apr-1.3.9";
@@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
     sha256 = "1qicxnk62d9mjza8vch2wxy4xlq8sa76chwi5cp6bs4cyj9s61ap";
   };
 
+  configureFlags =
+    # Including the Windows headers breaks unistd.h.
+    # Based on ftp://sourceware.org/pub/cygwin/release/libapr1/libapr1-1.3.8-2-src.tar.bz2
+    stdenv.lib.optionalString (stdenv.system == "i686-cygwin") "ac_cv_header_windows_h=no";
+  
   meta = {
     homepage = http://apr.apache.org/;
     description = "The Apache Portable Runtime library";
diff --git a/pkgs/development/libraries/boost/1.41.0.nix b/pkgs/development/libraries/boost/1.41.0.nix
index 7b1166fb656f..1bd500e270a2 100644
--- a/pkgs/development/libraries/boost/1.41.0.nix
+++ b/pkgs/development/libraries/boost/1.41.0.nix
@@ -5,6 +5,7 @@
 , enableMultiThreaded ? true
 , enableShared ? true
 , enableStatic ? false
+, enablePIC ? false
 }:
 
 let
@@ -27,6 +28,8 @@ let
     (enableShared && enableStatic)) then
     "tagged" else "system";
 
+  cflags = if (enablePIC) then "cflags=-fPIC cxxflags=-fPIC linkflags=-fPIC" else "";
+
 in
 
 stdenv.mkDerivation {
@@ -48,7 +51,7 @@ stdenv.mkDerivation {
   configureScript = "./bootstrap.sh";
   configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python";
 
-  buildPhase = "./bjam -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${finalLayout} variant=${variant} threading=${threading} link=${link} install";
+  buildPhase = "./bjam -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${finalLayout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
 
   installPhase = ":";
 }
diff --git a/pkgs/development/libraries/classads/default.nix b/pkgs/development/libraries/classads/default.nix
new file mode 100644
index 000000000000..5739690e59a1
--- /dev/null
+++ b/pkgs/development/libraries/classads/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl }:
+
+let version = "1.0.4"; in
+
+stdenv.mkDerivation {
+  name = "classads-${version}";
+
+  src = fetchurl {
+    url = "ftp://ftp.cs.wisc.edu/condor/classad/c++/classads-${version}.tar.gz";
+    sha256 = "80b11c6d383891c90e04e403b2f282e91177940c3fe536082899fbfb9e854d24";
+  };
+
+  configureFlags = ''                                                  
+    --enable-namespace --enable-flexible-member
+  '';
+  
+  meta = {
+    homepage = http://www.cs.wisc.edu/condor/classad/;
+    description = "The Classified Advertisements library provides a generic means for matching resources.";
+    license = "Apache-2.0";
+  };
+}
diff --git a/pkgs/development/libraries/gsoap/default.nix b/pkgs/development/libraries/gsoap/default.nix
new file mode 100644
index 000000000000..4d661d4088f3
--- /dev/null
+++ b/pkgs/development/libraries/gsoap/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, m4, bison, flex, openssl, zlib }:
+
+let version = "2.7.15"; in
+
+stdenv.mkDerivation {
+  name = "gsoap-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gsoap2/files/gSOAP/2.7.15%20stable/gsoap_${version}.tar.gz";
+    sha256 = "3ed883ab1a3d32b5bb2bf599306f247f6de3ffedd8890eb0e6303ae15995dc12";
+  };
+
+  buildInputs = [ m4 bison flex openssl zlib ];
+  meta = {
+    homepage = "http://www.cs.fsu.edu/~engelen/soap.html";
+    description = "The gSOAP toolkit is an open source C and C++ software development toolkit for SOAP/WSDL and XML Web services.";
+    license = "free-non-copyleft";
+  };
+}
diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix
index 1bcb4579bcab..4bf0c05eb285 100644
--- a/pkgs/development/libraries/libffi/default.nix
+++ b/pkgs/development/libraries/libffi/default.nix
@@ -1,10 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "libffi-3.0.5";
+  name = "libffi-3.0.9";
+
   src = fetchurl {
     url = "ftp://sourceware.org/pub/libffi/${name}.tar.gz";
-    sha256 = "1i0ms6ilhjzz0691nymnvs5a3b5lf95n6p99l65z2zn83rd7pahf";
+    sha256 = "0ln4jbpb6clcsdpb9niqk0frgx4k0xki96wiv067ig0q4cajb7aq";
   };
 
   doCheck = true;
@@ -34,8 +35,10 @@ stdenv.mkDerivation rec {
 
     homepage = http://sources.redhat.com/libffi/;
 
-    license = "http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/libffi/LICENSE?rev=1.6&content-type=text/plain&cvsroot=libffi&only_with_tag=MAIN";
+    # See http://github.com/atgreen/libffi/blob/master/LICENSE .
+    license = "free, non-copyleft";
 
     maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libofx/default.nix b/pkgs/development/libraries/libofx/default.nix
new file mode 100644
index 000000000000..2043381ffc6f
--- /dev/null
+++ b/pkgs/development/libraries/libofx/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, opensp, pkgconfig, libxml2, curl }:
+        
+stdenv.mkDerivation rec {
+  name = "libofx-0.9.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libofx/${name}.tar.gz";
+    sha256 = "0gyana7v3pcqdpncjr5vg5z2r2z3rvg0fiml59mazi9n62zk86rj";
+  };
+
+  patches = [ ./libofx-0.9.0-gcc43.patch ];
+
+  configureFlags = [ "--with-opensp-includes=${opensp}/include/OpenSP" ];
+  buildInputs = [ opensp pkgconfig libxml2 curl ];
+
+  meta = { 
+    description = "Opensource implementation of the Open Financial eXchange specification";
+    homepage = http://libofx.sourceforge.net/;
+    license = "LGPL";
+  };
+}
+
diff --git a/pkgs/development/libraries/libofx/libofx-0.9.0-gcc43.patch b/pkgs/development/libraries/libofx/libofx-0.9.0-gcc43.patch
new file mode 100644
index 000000000000..63ced2d5f81c
--- /dev/null
+++ b/pkgs/development/libraries/libofx/libofx-0.9.0-gcc43.patch
@@ -0,0 +1,375 @@
+http://bugs.gentoo.org/218782
+diff -NrU5 libofx-0.9.0.orig/lib/ofx_container_transaction.cpp libofx-0.9.0/lib/ofx_container_transaction.cpp
+--- libofx-0.9.0.orig/lib/ofx_container_transaction.cpp	2007-11-10 00:10:49.000000000 +0100
++++ libofx-0.9.0/lib/ofx_container_transaction.cpp	2008-04-21 22:26:24.000000000 +0200
+@@ -19,10 +19,11 @@
+ 
+ #ifdef HAVE_CONFIG_H
+ #include <config.h>
+ #endif
+ 
++#include <cstdlib>
+ #include <string>
+ #include "messages.hh"
+ #include "libofx.h"
+ #include "ofx_containers.hh"
+ #include "ofx_utilities.hh"
+diff -NrU5 libofx-0.9.0.orig/lib/ofx_request_accountinfo.cpp libofx-0.9.0/lib/ofx_request_accountinfo.cpp
+--- libofx-0.9.0.orig/lib/ofx_request_accountinfo.cpp	2007-10-28 03:33:43.000000000 +0100
++++ libofx-0.9.0/lib/ofx_request_accountinfo.cpp	2008-04-21 22:26:24.000000000 +0200
+@@ -19,10 +19,11 @@
+ 
+ #ifdef HAVE_CONFIG_H
+ #include <config.h>
+ #endif
+ 
++#include <cstdlib>
+ #include <string>
+ #include "libofx.h"
+ #include "ofx_request_accountinfo.hh"
+ 
+ using namespace std;
+diff -NrU5 libofx-0.9.0.orig/lib/ofx_request.cpp libofx-0.9.0/lib/ofx_request.cpp
+--- libofx-0.9.0.orig/lib/ofx_request.cpp	2007-10-28 03:37:52.000000000 +0100
++++ libofx-0.9.0/lib/ofx_request.cpp	2008-04-21 22:26:24.000000000 +0200
+@@ -19,10 +19,11 @@
+ 
+ #ifdef HAVE_CONFIG_H
+ #include <config.h>
+ #endif
+ 
++#include <cstring>
+ #include <string>
+ #include "messages.hh"
+ #include "libofx.h"
+ #include "ofx_request.hh"
+ 
+diff -NrU5 libofx-0.9.0.orig/lib/ofx_request_statement.cpp libofx-0.9.0/lib/ofx_request_statement.cpp
+--- libofx-0.9.0.orig/lib/ofx_request_statement.cpp	2007-10-28 13:57:18.000000000 +0100
++++ libofx-0.9.0/lib/ofx_request_statement.cpp	2008-04-21 22:26:24.000000000 +0200
+@@ -19,10 +19,11 @@
+ 
+ #ifdef HAVE_CONFIG_H
+ #include <config.h>
+ #endif
+ 
++#include <cstdlib>
+ #include <string>
+ #include "libofx.h"
+ #include "ofx_utilities.hh"
+ #include "ofx_request_statement.hh"
+ 
+diff -NrU5 libofx-0.9.0.orig/lib/ofx_utilities.cpp libofx-0.9.0/lib/ofx_utilities.cpp
+--- libofx-0.9.0.orig/lib/ofx_utilities.cpp	2007-10-27 14:12:49.000000000 +0200
++++ libofx-0.9.0/lib/ofx_utilities.cpp	2008-04-21 22:26:24.000000000 +0200
+@@ -19,11 +19,12 @@
+ #include <iostream>
+ #include <assert.h>
+ 
+ #include "ParserEventGeneratorKit.h"
+ #include "SGMLApplication.h"
+-#include <time.h>
++#include <ctime>
++#include <cstdlib>
+ #include <string>
+ #include <locale.h>
+ #include "messages.hh"
+ #include "ofx_utilities.hh"
+ 
+diff -NrU5 libofx-0.9.0.orig/lib/ofx_utilities.cpp.orig libofx-0.9.0/lib/ofx_utilities.cpp.orig
+--- libofx-0.9.0.orig/lib/ofx_utilities.cpp.orig	1970-01-01 01:00:00.000000000 +0100
++++ libofx-0.9.0/lib/ofx_utilities.cpp.orig	2007-10-27 14:12:49.000000000 +0200
+@@ -0,0 +1,245 @@
++/***************************************************************************
++                          ofx_util.cpp
++                             -------------------
++    copyright            : (C) 2002 by Benoit Grégoire
++    email                : bock@step.polymtl.ca
++ ***************************************************************************/
++/**@file
++ * \brief Various simple functions for type conversion & al
++ */
++/***************************************************************************
++ *                                                                         *
++ *   This program is free software; you can redistribute it and/or modify  *
++ *   it under the terms of the GNU General Public License as published by  *
++ *   the Free Software Foundation; either version 2 of the License, or     *
++ *   (at your option) any later version.                                   *
++ *                                                                         *
++ ***************************************************************************/
++#include <config.h>
++#include <iostream>
++#include <assert.h>
++
++#include "ParserEventGeneratorKit.h"
++#include "SGMLApplication.h"
++#include <time.h>
++#include <string>
++#include <locale.h>
++#include "messages.hh"
++#include "ofx_utilities.hh"
++
++#ifdef OS_WIN32
++# define DIRSEP "\\"
++#else
++# define DIRSEP "/"
++#endif
++
++
++using namespace std;
++/**
++   Convert an OpenSP CharString directly to a C++ stream, to enable the use of cout directly for debugging.
++*/ 
++/*ostream &operator<<(ostream &os, SGMLApplication::CharString s)
++  {
++  for (size_t i = 0; i < s.len; i++)
++  {
++  os << ((char *)(s.ptr))[i*sizeof(SGMLApplication::Char)];
++  }
++  return os;
++  }*/
++
++/*wostream &operator<<(wostream &os, SGMLApplication::CharString s)
++  {
++  for (size_t i = 0; i < s.len; i++)
++  {//cout<<i;
++  os << wchar_t(s.ptr[i*MULTIPLY4]);  
++  }
++  return os;
++  }            */
++
++/*wchar_t* CharStringtowchar_t(SGMLApplication::CharString source, wchar_t *dest)
++  {
++  size_t i;
++  for (i = 0; i < source.len; i++)
++  {
++  dest[i]+=wchar_t(source.ptr[i*sizeof(SGMLApplication::Char)*(sizeof(char)/sizeof(wchar_t))]);
++  }
++  return dest;
++  }*/
++
++string CharStringtostring(const SGMLApplication::CharString source, string &dest)
++{
++  size_t i;
++  dest.assign("");//Empty the provided string
++  //  cout<<"Length: "<<source.len<<"sizeof(Char)"<<sizeof(SGMLApplication::Char)<<endl;
++  for (i = 0; i < source.len; i++){
++    dest+=(char)(((source.ptr)[i]));  
++    //    cout<<i<<" "<<(char)(((source.ptr)[i]))<<endl; 
++  }
++  return dest;
++}
++
++string AppendCharStringtostring(const SGMLApplication::CharString source, string &dest)
++{
++  size_t i;
++  for (i = 0; i < source.len; i++)
++    {
++      dest+=(char)(((source.ptr)[i]));
++    }
++  return dest;
++}
++
++/** 
++ * Converts a date from the YYYYMMDDHHMMSS.XXX[gmt offset:tz name] OFX format (see OFX 2.01 spec p.66) to a C time_t.
++ * @param ofxdate date from the YYYYMMDDHHMMSS.XXX[gmt offset:tz name] OFX format
++ * @return C time_t in the local time zone
++ * @note
++ * @li The library always returns the time in the systems local time
++ * @li OFX defines the date up to the millisecond.  The library ignores those milliseconds, since ANSI C does not handle such precision cleanly.  The date provided by LibOFX is precise to the second, assuming that information this precise was provided in the ofx file.  So you wont know the millisecond you were ruined...
++ 
++ * @note DEVIATION FROM THE SPECS : The OFX specifications (both version 1.6 and 2.02) state that a client should assume that if the server returns a date without à specific time, we assume it means 0h00 GMT.  As such, when we apply the local timezone and for example you are in the EST timezone, we will remove 5h, and the transaction will have occurred on the prior day!  This is probably not what the bank intended (and will lead to systematic errors), but the spec is quite explicit in this respect (Ref:  OFX 2.01 spec pp. 66-68)<BR><BR>
++ * To solve this problem (since usually a time error is relatively unimportant, but date error is), and to avoid problems in Australia caused by the behaviour in libofx up to 0.6.4, it was decided starting with 0.6.5 to use the following behavior:<BR><BR>
++ * -No specific time is given in the file (date only):  Considering that most banks seem to be sending dates in this format represented as local time (not compliant with the specs), the transaction is assumed to have occurred 11h59 (just before noon) LOCAL TIME.  This way, we should never change the date, since you'd have to travel in a timezone at least 11 hours backwards or 13 hours forward from your own to introduce mistakes.  However, if you are in timezone +13 or +14, and your bank meant the data to be interpreted by the spec, you will get the wrong date.  We hope that banks in those timezone will either represent in local time like most, or specify the timezone properly.<BR><BR>
++ * -No timezone is specified, but exact time is, the same behavior is mostly used, as many banks just append zeros instead of using the short notation.  However, the time specified is used, even if 0 (midnight).<BR><BR>
++ * -When a timezone is specified, it is always used to properly convert in local time, following the spec.
++ *
++ */
++time_t ofxdate_to_time_t(const string ofxdate)
++{
++  struct tm time;
++  double local_offset; /* in seconds */
++  float ofx_gmt_offset; /* in fractionnal hours */
++  char timezone[4]; /* Original timezone: the library does not expose this value*/
++  char exact_time_specified = false;
++  char time_zone_specified = false;
++
++  time_t temptime;
++  std::time(&temptime);
++  local_offset = difftime(mktime(localtime(&temptime)), mktime(gmtime(&temptime)));
++  
++  if(ofxdate.size()!=0){
++    time.tm_year=atoi(ofxdate.substr(0,4).c_str())-1900;
++    time.tm_mon=atoi(ofxdate.substr(4,2).c_str())-1;
++    time.tm_mday=atoi(ofxdate.substr(6,2).c_str());
++    if(ofxdate.size()>8) {
++    /* if exact time is specified */
++exact_time_specified = true;
++      time.tm_hour=atoi(ofxdate.substr(8,2).c_str());
++      time.tm_min=atoi(ofxdate.substr(10,2).c_str());
++      time.tm_sec=atoi(ofxdate.substr(12,2).c_str());
++    }
++    
++    /* Check if the timezone has been specified */
++    string::size_type startidx = ofxdate.find("[");
++    string::size_type endidx;
++    if(startidx!=string::npos){
++      /* Time zone was specified */
++      time_zone_specified = true;
++      startidx++;
++      endidx = ofxdate.find(":", startidx)-1;
++      ofx_gmt_offset=atof(ofxdate.substr(startidx,(endidx-startidx)+1).c_str());
++      startidx = endidx+2;
++      strncpy(timezone,ofxdate.substr(startidx,3).c_str(),4);
++    }
++    else{
++      /* Time zone was not specified, assume GMT (provisionnaly) in case exact time is specified */
++      ofx_gmt_offset=0;
++      strcpy(timezone, "GMT");
++    }
++
++    if(time_zone_specified == true)
++      {
++	/* If the timezone is specified always correct the timezone */
++	/* If the timezone is not specified, but the exact time is, correct the timezone, assuming GMT following the spec */
++	/* Correct the time for the timezone */
++	time.tm_sec = time.tm_sec + (int)(local_offset - (ofx_gmt_offset*60*60));//Convert from fractionnal hours to seconds
++      }
++    else if (exact_time_specified == false)
++      {
++	/*Time zone data missing and exact time not specified, diverge from the OFX spec ans assume 11h59 local time */
++       time.tm_hour=11;
++       time.tm_min=59;
++       time.tm_sec=0;
++      }
++  }
++  else{
++    message_out(ERROR, "ofxdate_to_time_t():  Unable to convert time, string is 0 length!");
++  }
++  return mktime(&time);
++}
++
++/**
++ * Convert a C++ string containing an amount of money as specified by the OFX standard and convert it to a double float.
++ *\note The ofx number format is the following:  "." or "," as decimal separator, NO thousands separator.
++ */ 
++double ofxamount_to_double(const string ofxamount)
++{
++  //Replace commas and decimal points for atof()
++  string::size_type idx;
++  string tmp = ofxamount;
++
++  idx = tmp.find(',');
++  if(idx==string::npos){
++    idx = tmp.find('.');
++  }
++  
++  if(idx!=string::npos){
++    tmp.replace(idx,1,1,((localeconv())->decimal_point)[0]);
++  }
++
++  return atof(tmp.c_str());
++}
++
++/**
++Many weird caracters can be present inside a SGML element, as a result on the transfer protocol, or for any reason.  This function greatly enhances the reliability of the library by zapping those gremlins (backspace,formfeed,newline,carriage return, horizontal and vertical tabs) as well as removing whitespace at the begining and end of the string.  Otherwise, many problems will occur during stringmatching.
++*/
++string strip_whitespace(const string para_string)
++{
++  size_t index;
++  size_t i;
++  string temp_string = para_string;
++  const char *whitespace = " \b\f\n\r\t\v";
++  const char *abnormal_whitespace = "\b\f\n\r\t\v";//backspace,formfeed,newline,cariage return, horizontal and vertical tabs
++  message_out(DEBUG4,"strip_whitespace() Before: |"+temp_string+"|");
++  for(i=0;i<=temp_string.size()&&temp_string.find_first_of(whitespace, i)==i&&temp_string.find_first_of(whitespace, i)!=string::npos;i++);
++  temp_string.erase(0,i);//Strip leading whitespace
++  for(i=temp_string.size()-1;(i>=0)&&(temp_string.find_last_of(whitespace, i)==i)&&(temp_string.find_last_of(whitespace, i)!=string::npos);i--);
++  temp_string.erase(i+1,temp_string.size()-(i+1));//Strip trailing whitespace
++  
++while ((index = temp_string.find_first_of(abnormal_whitespace))!=string::npos)
++  {
++    temp_string.erase(index,1);//Strip leading whitespace
++  };
++ 
++ message_out(DEBUG4,"strip_whitespace() After:  |"+temp_string+"|");
++ 
++ return temp_string;
++}
++
++
++int mkTempFileName(const char *tmpl, char *buffer, unsigned int size) {
++  const char *tmp_dir;
++
++  tmp_dir = getenv ("TMPDIR");
++  if (!tmp_dir)
++    tmp_dir = getenv ("TMP");
++  if (!tmp_dir)
++    tmp_dir = getenv ("TEMP");
++
++  if (!tmp_dir)
++    {
++#ifdef OS_WIN32
++      tmp_dir = "C:\\";
++#else  
++      tmp_dir = "/tmp";
++#endif	/* !OS_WIN32 */
++    }
++
++  strncpy(buffer, tmp_dir, size);
++  assert((strlen(buffer)+strlen(tmpl)+2)<size);
++  strcat(buffer, DIRSEP);
++  strcat(buffer, tmpl);
++  return 0;
++}
++
++
++
+diff -NrU5 libofx-0.9.0.orig/ofxconnect/ofxconnect.cpp libofx-0.9.0/ofxconnect/ofxconnect.cpp
+--- libofx-0.9.0.orig/ofxconnect/ofxconnect.cpp	2007-10-26 20:24:10.000000000 +0200
++++ libofx-0.9.0/ofxconnect/ofxconnect.cpp	2008-04-21 22:31:18.000000000 +0200
+@@ -34,10 +34,11 @@
+ #include "libofx.h"
+ #include <config.h>		/* Include config constants, e.g., VERSION TF */
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
++#include <cstring>
+ 
+ #ifdef HAVE_LIBCURL
+ #include <curl/curl.h>
+ #endif
+ 
+diff -NrU5 libofx-0.9.0.orig/ofxconnect/ofxpartner.cpp libofx-0.9.0/ofxconnect/ofxpartner.cpp
+--- libofx-0.9.0.orig/ofxconnect/ofxpartner.cpp	2006-03-26 06:49:54.000000000 +0200
++++ libofx-0.9.0/ofxconnect/ofxpartner.cpp	2008-04-21 22:28:26.000000000 +0200
+@@ -33,10 +33,13 @@
+ #include <sys/stat.h>
+ 
+ #include <iostream>
+ #include <string>
+ #include <vector>
++#include <algorithm>
++#include <cstring>
++
+ 
+ using std::string;
+ using std::vector;
+ using std::cout;
+ using std::endl;
+diff -NrU5 libofx-0.9.0.orig/ofxdump/ofxdump.cpp libofx-0.9.0/ofxdump/ofxdump.cpp
+--- libofx-0.9.0.orig/ofxdump/ofxdump.cpp	2006-08-02 06:19:22.000000000 +0200
++++ libofx-0.9.0/ofxdump/ofxdump.cpp	2008-04-21 22:26:24.000000000 +0200
+@@ -27,10 +27,12 @@
+  *   (at your option) any later version.                                   *
+  *                                                                         *
+  ***************************************************************************/
+ #include <iostream>
+ #include <iomanip>
++#include <cstdlib>
++#include <cstring>
+ #include <string>
+ #include "libofx.h"
+ #include <stdio.h>		/* for printf() */
+ #include <config.h>		/* Include config constants, e.g., VERSION TF */
+ #include <errno.h>
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
new file mode 100644
index 000000000000..39539b9ad4bd
--- /dev/null
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, libxml2, gnutls, devicemapper, perl }:
+
+let version = "0.7.5"; in
+
+stdenv.mkDerivation {
+  name = "libvirt-${version}";
+
+  src = fetchurl {
+    url = "http://libvirt.org/sources/libvirt-${version}.tar.gz";
+    sha256 = "922481aadf72a74cf14012fe3967c60d01e70f7e88908410d57428943ab4eb8b";
+  };
+
+  buildInputs = [ libxml2 gnutls devicemapper perl ];
+
+  # fix for redhat bz 531496
+  patches = [ ./non-absolute-ld.patch ];
+
+  # xen currently disabled in nixpkgs
+  configureFlags = ''                                                  
+    --without-xen
+  '';
+  
+  meta = {
+    homepage = http://libvirt.org/;
+    description = "A toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes).";
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/libvirt/non-absolute-ld.patch b/pkgs/development/libraries/libvirt/non-absolute-ld.patch
new file mode 100644
index 000000000000..ba73010c4398
--- /dev/null
+++ b/pkgs/development/libraries/libvirt/non-absolute-ld.patch
@@ -0,0 +1,12 @@
+diff -Naur libvirt-0.7.5.orig/configure libvirt-0.7.5/configure
+--- libvirt-0.7.5.orig/configure	2009-12-23 09:17:34.000000000 -0600
++++ libvirt-0.7.5/configure	2010-01-13 21:16:02.000000000 -0600
+@@ -41051,7 +41051,7 @@
+ 
+ 
+ VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+-`/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null` || \
++`ld --help 2>&1 | grep -- --version-script >/dev/null` || \
+     VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
+ 
+ 
diff --git a/pkgs/development/libraries/mpich2/default.nix b/pkgs/development/libraries/mpich2/default.nix
index 7fb0e009f4ae..9e0920eb1c42 100644
--- a/pkgs/development/libraries/mpich2/default.nix
+++ b/pkgs/development/libraries/mpich2/default.nix
@@ -1,16 +1,34 @@
-{stdenv, fetchurl, python}:
+{ stdenv, fetchurl, python, perl }:
+
+let version = "1.2.1"; in
+stdenv.mkDerivation {
+  name = "mpich2-${version}";
 
-stdenv.mkDerivation rec {
-  name = "mpich2-1.0.6p1";
-  
   src = fetchurl {
-    url = "http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/${name}.tar.gz";
-    sha256 = "1k0za8951j5fn89ww6bsy9b4yi989zz7bnd8a6acfr8r0yb8z01q";
+    url = "http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/${version}/mpich2-${version}.tar.gz";
+    sha256 = "1h91hygal4h33yci7sw76hibf803r9c0mx7kfgmc06h27xa3cirr";
   };
 
-  buildInputs = [ python ];
+  buildInputs = [ python perl ];
+
+  patchPhase =
+    '' for i in $(find -type f -not -name Makefile.\*)
+       do
+         if grep -q /usr/bin/env "$i"
+         then
+             interpreter="$(cat $i | grep /usr/bin/env | sed -'es|^.*/usr/bin/env \([^ ]\+\).*$|\1|g')"
+             echo "file \`$i' -> interpreter \`$interpreter'"
+             path="$(type -P $interpreter)"
+             echo "\`/usr/bin/env $interpreter' -> \`$path' in \`$i'..."
+             sed -i "$i" -e "s|/usr/bin/env $interpreter|$path|g"
+         fi
+       done
+       true
+    '';
 
   meta = {
+    description = "MPICH2, an implementation of the Message Passing Interface (MPI) standard";
+
     longDescription = ''
       MPICH2 is a free high-performance and portable implementation of
       the Message Passing Interface (MPI) standard, both version 1 and
@@ -18,5 +36,8 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://www.mcs.anl.gov/mpi/mpich2/;
     license = "free, see http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=license";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/opencascade/default.nix b/pkgs/development/libraries/opencascade/default.nix
index de3b9f32cf38..2f178edccd5e 100644
--- a/pkgs/development/libraries/opencascade/default.nix
+++ b/pkgs/development/libraries/opencascade/default.nix
@@ -1,6 +1,6 @@
 {stdenv, fetchurl, mesa, qt4, tcl, tk}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "opencascade-6.3.0";
   src = fetchurl {
     url = http://files.opencascade.com/OCC_6.3_release/OpenCASCADE_src.tgz;
@@ -11,6 +11,12 @@ stdenv.mkDerivation {
 
   preConfigure = "cd ros";
 
+  postInstall = ''
+    mv $out/inc $out/include
+    ensureDir $out/share/doc/${name}
+    cp -R ../doc $out/share/doc/${name}
+  '';
+
   meta = {
     description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
     homepage = http://www.opencascade.org/;
diff --git a/pkgs/development/libraries/science/math/blas/default.nix b/pkgs/development/libraries/science/math/blas/default.nix
new file mode 100644
index 000000000000..eeaf28aec3c3
--- /dev/null
+++ b/pkgs/development/libraries/science/math/blas/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, gfortran }:
+
+stdenv.mkDerivation {
+  name = "blas-20070405";
+  src = fetchurl {
+    url = "http://www.netlib.org/blas/blas.tgz";
+    sha256 = "07alzd2yxkah96vjczqwi3ld5w00bvqv7qxb2fayvhs1h64jabxw";
+  };
+
+  buildInputs = [gfortran];
+
+  configurePhase = ''
+    echo >make.inc  "SHELL = ${stdenv.shell}"
+    echo >>make.inc "PLAT = _LINUX"
+    echo >>make.inc "FORTRAN = gfortran"
+    echo >>make.inc "OPTS = -O2 -fPIC"
+    echo >>make.inc "DRVOPTS = $$(OPTS)"
+    echo >>make.inc "NOOPT = -O0 -fPIC"
+    echo >>make.inc "LOADER = gfortran"
+    echo >>make.inc "LOADOPTS ="
+    echo >>make.inc "ARCH = gfortran"
+    echo >>make.inc "ARCHFLAGS = -shared -o"
+    echo >>make.inc "RANLIB = echo"
+    echo >>make.inc "BLASLIB = libblas.so.3.0.3"
+  '';
+
+  installPhase = ''
+    install -D -m755 libblas.so.3.0.3 "$out/lib/libblas.so.3.0.3"
+    ln -s libblas.so.3.0.3 "$out/lib/libblas.so.3"
+    ln -s libblas.so.3.0.3 "$out/lib/libblas.so"
+  '';
+
+  meta = {
+    description = "Basic Linear Algebra Subprograms";
+    license = "public domain";
+    homepage = "http://www.netlib.org/blas/";
+  };
+}
diff --git a/pkgs/development/libraries/science/math/liblapack/blas-link.patch b/pkgs/development/libraries/science/math/liblapack/blas-link.patch
new file mode 100644
index 000000000000..7770142be772
--- /dev/null
+++ b/pkgs/development/libraries/science/math/liblapack/blas-link.patch
@@ -0,0 +1,24 @@
+diff -Naur lapack-3.2.old/SRC/Makefile lapack-3.2/SRC/Makefile
+--- lapack-3.2.old/SRC/Makefile	2009-02-04 11:33:35.006839507 +0100
++++ lapack-3.2/SRC/Makefile	2009-02-04 11:33:51.987551506 +0100
+@@ -367,7 +367,7 @@
+ 	$(ALLAUX)
+ 
+ ../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ)
+-	$(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ)
++	$(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ) -lblas
+ 	$(RANLIB) $@
+ 
+ single: $(SLASRC) $(ALLAUX) $(SCLAUX) 
+diff -Naur lapack-3.2.old/TESTING/MATGEN/Makefile lapack-3.2/TESTING/MATGEN/Makefile
+--- lapack-3.2.old/TESTING/MATGEN/Makefile	2009-02-04 11:35:10.426806473 +0100
++++ lapack-3.2/TESTING/MATGEN/Makefile	2009-02-04 11:34:42.850565181 +0100
+@@ -60,7 +60,7 @@
+ 
+ ../../$(TMGLIB): $(SMATGEN) $(CMATGEN) $(SCATGEN) $(DMATGEN)	\
+ 		$(ZMATGEN) $(DZATGEN)
+-	$(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ)
++	$(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) -lblas
+ 	$(RANLIB) $@
+ 
+ single: $(SMATGEN) $(SCATGEN)
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index fad9218bbc9a..240d13105f85 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -1,25 +1,50 @@
-args: with args;
+{ stdenv, fetchurl, gfortran, blas }:
 
 stdenv.mkDerivation {
-  name = "liblapack-3.1.1";
+  name = "liblapack-3.2.1";
   src = fetchurl {
-    url = http://www.netlib.org/lapack/lapack.tgz;
-    sha256 = "0am0yzgqhaz6yzliaxc2cgm2mbqjzwcq70b01migk5231frkbhz4";
+    url = "http://www.netlib.org/lapack/lapack-3.2.1.tgz";
+    sha256 = "5825f83971157001fd4235514afe8ff5fc16e1c06b2e872e442c242efd6c166d";
   };
 
-  buildInputs = [gfortran];
-  patches = [ ./gfortran.patch ];
+  buildInputs = [gfortran blas];
+  patches = [ ./blas-link.patch ];
+
+  configurePhase = ''
+    echo >make.inc  "SHELL = ${stdenv.shell}"
+    echo >>make.inc "PLAT ="
+    echo >>make.inc "FORTRAN = gfortran"
+    echo >>make.inc "OPTS = -O2 -fPIC"
+    echo >>make.inc "DRVOPTS = \$(OPTS)"
+    echo >>make.inc "NOOPT = -O0 -fPIC"
+    echo >>make.inc "LOADER = gfortran"
+    echo >>make.inc "LOADOPTS ="
+    echo >>make.inc "TIMER = INT_ETIME"
+    echo >>make.inc "ARCH = gfortran"
+    echo >>make.inc "ARCHFLAGS = -shared -o"
+    echo >>make.inc "RANLIB = echo"
+    echo >>make.inc "BLASLIB = -lblas"
+    echo >>make.inc "LAPACKLIB = liblapack.so.3"
+    echo >>make.inc "TMGLIB = libtmglib.so.3"
+    echo >>make.inc "EIGSRCLIB = libeigsrc.so.3"
+    echo >>make.inc "LINSRCLIB = liblinsrc.so.3"
+  '';
 
   buildPhase = ''
-    cp make.inc.example make.inc
-    make blaslib
-    # make lapacklib
-    cd SRC
-    make
+    make clean
+    make lib
   '';
+
+  installPhase = ''
+    ensureDir "$out/lib"
+    install -m755 *.so* "$out/lib"
+    ln -sf liblapack.so.3 "$out/lib/liblapack.so"
+    ln -sf libtmglib.so.3 "$out/lib/libtmglib.so"
+  '';
+
   meta = {
-    description     = "lapack library";
-    license     = "Free, copyrighted";
-    homepage    = http://www.netlib.org/lapac;
+    description = "Linear Algebra PACKage";
+    license = "revised-BSD";
+    homepage = "http://www.netlib.org/lapack/";
   };
 }
diff --git a/pkgs/development/libraries/scmccid/default.nix b/pkgs/development/libraries/scmccid/default.nix
index 32c4fe3de897..01dc63353d66 100644
--- a/pkgs/development/libraries/scmccid/default.nix
+++ b/pkgs/development/libraries/scmccid/default.nix
@@ -1,13 +1,15 @@
 {stdenv, fetchurl, patchelf, libusb}:
 
+assert stdenv ? gcc && stdenv.gcc.libc != null;
+
 stdenv.mkDerivation rec {
   name = "scmccid-5.0.11";
   
-  src = if (stdenv.system == "i686-linux") then (fetchurl {
+  src = if stdenv.system == "i686-linux" then (fetchurl {
       url = "http://www.scmmicro.com/support/download/scmccid_5.0.11_linux.tar.gz";
       sha256 = "1r5wkarhzl09ncgj55baizf573czw0nplh1pgddzx9xck66kh5bm";
     })
-    else if (stdenv.system == "x86_64-linux") then (fetchurl {
+    else if stdenv.system == "x86_64-linux" then (fetchurl {
         url = "http://www.scmmicro.com/support/download/scmccid_5.0.11_linux_x64.tar.gz";
         sha256 = "0k9lzlk01sl4ycfqgrqqy3bildz0mcr1r0kkicgjz96l4s0jgz0i";
     })
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index 38ff34e52ea8..c869ac7daba8 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -1,31 +1,16 @@
-{stdenv, fetchurl, readline, tcl, static ? false}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "sqlite-3.6.22";
 
-  # Note: don't use the "amalgamation" source release, since it
-  # doesn't install sqlite3.pc.
   src = fetchurl {
-    url = "http://www.sqlite.org/${name}.tar.gz";
-    sha256 = "1xjpryhrk6b3h2y0hwrzaa1vj44pbhgm65f8fj73kd5fbj4ikk68";
+    url = "http://www.sqlite.org/sqlite-amalgamation-3.6.22.tar.gz";
+    sha256 = "1k5qyl0v2y4fpkh7vvxvb0irpnl71g0ffhfc3ksm40mrhcdq9qk8";
   };
 
-  buildInputs = [readline tcl];
-
-  configureFlags = ''
-    CFLAGS=-O3
-    --enable-load-extension
-    ${if static then "--disable-shared --enable-static" else ""}
-    --enable-amalgamation
-    --enable-threadsafe
-    --disable-cross-thread-connections
-    --disable-tcl
-    --disable-tempstore
-    --with-readline-inc=-I${readline}/include
-  '';
+  configureFlags = "--enable-threadsafe";
 
   NIX_CFLAGS_COMPILE = "-DSQLITE_ENABLE_COLUMN_METADATA=1";
-  NIX_CFLAGS_LINK = "-ldl"; # needed for --enable-load-extension
 
   meta = {
     homepage = http://www.sqlite.org/;
diff --git a/pkgs/development/tools/misc/coccinelle/default.nix b/pkgs/development/tools/misc/coccinelle/default.nix
index 02de182ff767..6b257f2f21be 100644
--- a/pkgs/development/tools/misc/coccinelle/default.nix
+++ b/pkgs/development/tools/misc/coccinelle/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, ocaml, perl, python, ncurses, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "coccinelle-0.2.0";
+  name = "coccinelle-0.2.1";
 
   src = fetchurl {
     url = "http://coccinelle.lip6.fr/distrib/${name}.tgz";
-    sha256 = "1mg6r92h8j3kqgy9iv6kk0g96m84wcj71iavgvv9qdbk3qwim8i4";
+    sha256 = "06nfk40kq0pxz38pw7j3ldkakr4bx0dlypyfg3gimx8a751i0b22";
   };
 
   buildInputs = [ ocaml perl python ncurses makeWrapper ];
diff --git a/pkgs/games/pioneers/default.nix b/pkgs/games/pioneers/default.nix
new file mode 100644
index 000000000000..77e8ab3b92e2
--- /dev/null
+++ b/pkgs/games/pioneers/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl, gtk, pkgconfig, intltool } :
+
+stdenv.mkDerivation rec {
+  name = "pioneers-0.12.3";
+  src = fetchurl {
+    url = "mirror://sourceforge/pio/${name}.tar.gz";
+    sha256 = "1yqypk5wmia8fqyrg9mn9xw6yfd0fpkxj1355csw1hgx8mh44y1d";
+  };
+
+  buildInputs = [ gtk pkgconfig intltool ];
+
+  meta = {
+    homepage = http://pio.sourceforge.net/;
+    license = "GPLv2+";
+    description = "Addicting game based on The Settlers of Catan";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/games/teeworlds/default.nix b/pkgs/games/teeworlds/default.nix
index 70852ff85bad..1185b663a02f 100644
--- a/pkgs/games/teeworlds/default.nix
+++ b/pkgs/games/teeworlds/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, python, alsaLib, libX11, mesa, SDL }:
 
 stdenv.mkDerivation rec {
-  name = "teeworlds-0.5.1";
+  name = "teeworlds-0.5.2";
 
   src = fetchurl {
     url = "http://www.teeworlds.com/files/${name}-src.tar.gz";
-    sha256 = "0y7yfb1n8rrcz8vcng9jch05sc5vl57nvjvd1x0mkm74ki1y6wpc";
+    sha256 = "1h7likcqbyr3q8djzlgxmr8fiwwj8is3b01hd5x0qix1z4dsf48q";
   };
 
   # Note: Teeworlds requires Python 2.x to compile.  Python 3.0 will
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
       mv -v "$out/bin/$program" "$out/bin/.wrapped-$program"
       cat > "$out/bin/$program" <<EOF
 #!/bin/sh
-cd "$out/share/${name}" && exec "$out/bin/.wrapped-$program"
+cd "$out/share/${name}" && exec "$out/bin/.wrapped-$program" "\$@"
 EOF
       chmod -v +x "$out/bin/$program"
     done
diff --git a/pkgs/games/tennix/default.nix b/pkgs/games/tennix/default.nix
new file mode 100644
index 000000000000..e06aec68b1a2
--- /dev/null
+++ b/pkgs/games/tennix/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf} :
+
+stdenv.mkDerivation rec {
+  name = "tennix-1.0";
+  src = fetchurl {
+    url = "http://icculus.org/tennix/downloads/${name}.tar.gz";
+    sha256 = "18rd7h1j5skpkh037misixw9gigzc7qy13vrnrs21rphcfxzpifn";
+  };
+
+
+  preConfigure = ''
+    makeFlags="PREFIX=$out USE_PYTHON=0"
+    installFlags="PREFIX=$out install"
+  '';
+
+  buildInputs = [ SDL SDL_mixer SDL_image SDL_ttf ];
+
+  meta = {
+    homepage = http://icculus.org/tennix/;
+    description = "Tennix 2009 World Tennis Championship Tour";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/games/urbanterror/default.nix b/pkgs/games/urbanterror/default.nix
new file mode 100644
index 000000000000..c5e562ced534
--- /dev/null
+++ b/pkgs/games/urbanterror/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchurl, unzip, SDL, mesa, curl, openal }:
+stdenv.mkDerivation rec {
+  name = "urbanterror-${version}";
+  version = "4.1";
+  src1 = fetchurl {
+    url = "http://ftp.snt.utwente.nl/pub/games/urbanterror/UrbanTerror_41_FULL.zip";
+    sha256 = "0pr6xpwq8zllc0xsdxl8cfd0zz5fhggw5fsbrizygr6hhdvra1jp";
+  };
+  src2 = fetchurl {
+    url = "http://ftp.snt.utwente.nl/pub/games/urbanterror/iourbanterror/source/complete/ioUrbanTerrorSource_2007_12_20.zip";
+    sha256 = "1s1wq9m7shhvvk7s4400yrmz7dys501i4c9ln1mglc9dhmi8dmcn";
+  };
+  unpackPhase = ''
+    mkdir urbanterror
+    cd urbanterror
+    unzip $src1
+    unzip $src2
+  '';
+  # FIXME
+  #patchPhase = ''
+  #  cd ioUrbanTerrorClientSource
+  #  substituteInPlace code/client/snd_openal.c \
+  #                    --replace libopenal.so.0 ${openal}/lib/libopenal.so
+  #  substituteInPlace code/client/cl_curl.h \
+  #                    --replace libcurl.so.3 ${curl}/lib/libcurl.so
+  #  cd ..
+  #'';
+  buildInputs = [ unzip SDL mesa ];
+  buildPhase = ''
+    for d in ioUrbanTerrorClientSource ioUrbanTerrorServerSource
+    do
+      cd $d
+      make
+      cd ..
+    done
+  '';
+  installPhase = ''
+    destDir="$out/opt/urbanterror"
+    ensureDir "$destDir"
+    ensureDir "$out/bin"
+    cp -v ioUrbanTerrorClientSource/build/release-linux-*/ioUrbanTerror.* \
+          "$destDir/ioUrbanTerror"
+    cp -v ioUrbanTerrorServerSource/build/release-linux-*/ioUrTded.* \
+          "$destDir/ioUrTded"
+    cp -rv UrbanTerror/q3ut4 "$destDir"
+    cat << EOF > "$out/bin/urbanterror"
+#!/bin/sh
+cd "$destDir"
+exec ./ioUrbanTerror "\$@"
+EOF
+    chmod +x "$out/bin/urbanterror"
+    cat << EOF > "$out/bin/urbanterror-ded"
+#!/bin/sh
+cd "$destDir"
+exec ./ioUrTded "\$@"
+EOF
+    chmod +x "$out/bin/urbanterror-ded"
+  '';
+  meta = {
+    description = "A multiplayer tactical FPS on top of Quake 3 engine";
+    longDescription = ''
+      Urban Terror is a free multiplayer first person shooter developed by
+      FrozenSand, that (thanks to the ioquake3-code) does not require
+      Quake III Arena anymore. Urban Terror can be described as a Hollywood
+      tactical shooter; somewhat realism based, but the motto is "fun over
+      realism". This results in a very unique, enjoyable and addictive game.
+    '';
+    homepage = http://www.urbanterror.net;
+    license = [ "unfree-redistributable" ];
+    maintainers = with stdenv.lib.maintainers; [ astsmtl ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/games/warsow/default.nix b/pkgs/games/warsow/default.nix
new file mode 100644
index 000000000000..e3d17e855d5a
--- /dev/null
+++ b/pkgs/games/warsow/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, unzip, pkgconfig, zlib, curl, libjpeg, libvorbis
+, libXxf86dga, libXxf86vm, libXinerama, SDL, mesa, openal
+}:
+stdenv.mkDerivation rec {
+  name = "warsow-${version}";
+  version = "0.5";
+  src1 = fetchurl {
+    url = "http://static.warsow.net/release/warsow_${version}_sdk.zip";
+    sha256 = "018z83irj6wr5mj4pnya1r4abmg9sqznnkyq0gw9sr9q9dxr7k1m";
+  };
+  src2 = fetchurl {
+    url = "http://static.warsow.net/release/warsow_${version}_unified.zip";
+    sha256 = "002idzqjq41ygjny9kk31fjx7l9clxy4xm38hc5dky6yfx17ib36";
+  };
+  unpackPhase = ''
+    mkdir warsow_${version}_sdk
+    cd warsow_${version}_sdk
+    unzip $src1
+    cd source
+    unzip $src2 'basewsw/*' -d release
+  '';
+  inherit openal;
+  patchPhase = ''
+    substituteInPlace Makefile --replace "openal-config" "pkg-config openal"
+    substituteInPlace snd_openal/snd_main.c --replace libopenal.so.0 $openal/lib/libopenal.so
+  '';
+  buildInputs = [ unzip pkgconfig zlib curl libjpeg libvorbis libXxf86dga
+                  libXxf86vm libXinerama SDL mesa openal ];
+  installPhase = ''
+    dest=$out/opt/warsow
+    cd release
+    for f in warsow wsw_server wswtv_server; do
+        substituteInPlace $f --replace BINARY_DIR= BINARY_DIR=$dest
+    done
+    ensureDir $dest
+    ensureDir $out/bin
+    cp -v {warsow,wsw_server,wswtv_server}.* $dest
+    cp -rv basewsw libs $dest
+    cp -v warsow wsw_server wswtv_server $out/bin
+  '';
+  meta = {
+    description = "A multiplayer FPS designed for competitive gaming.";
+    longDescription = ''
+      Set in a futuristic cartoon-like world where rocketlauncher-wielding
+      pigs and lasergun-carrying cyberpunks roam the streets, Warsow is a
+      completely free fast-paced first-person shooter (FPS) for Windows, Linux
+      and Mac OS X.
+    '';
+    homepage = http://www.warsow.net;
+    # Engine is under GPLv2, everything else is under
+    license = [ "unfree-redistributable" ];
+    maintainers = with stdenv.lib.maintainers; [ astsmtl ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/lib/maintainers.nix b/pkgs/lib/maintainers.nix
index 4b53ad0bb614..02df80265c52 100644
--- a/pkgs/lib/maintainers.nix
+++ b/pkgs/lib/maintainers.nix
@@ -4,6 +4,7 @@
   /* Add your name and email address here.  Keep the list
      alphabetically sorted.  */
 
+  all = "Nix Committers <nix-commits@cs.uu.nl>";
   andres = "Andres Loeh <andres@cs.uu.nl>";
   astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
   eelco = "Eelco Dolstra <e.dolstra@tudelft.nl>";
diff --git a/pkgs/misc/tex/latex2html/default.nix b/pkgs/misc/tex/latex2html/default.nix
new file mode 100644
index 000000000000..354cb6d22b0e
--- /dev/null
+++ b/pkgs/misc/tex/latex2html/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, tex, perl, netpbm, ghostscript}:
+
+stdenv.mkDerivation {
+  name = "latex2html-2002-1";
+  
+  buildInputs = [ tex perl ghostscript netpbm ];
+
+  preConfigure = ''
+      configureFlags="--with-texpath=$out/share/texmf-nix";
+  '';
+
+  src = fetchurl {
+    url = mirror://ubuntu/pool/multiverse/l/latex2html/latex2html_2002-2-1-20050114.orig.tar.gz;
+    sha256 = "22049a77cf88a647776e61e06800ace4f9a06afc6ffe2590574487f023d0881f";
+  };
+
+  meta = {
+    homepage = http://www.latex2html.org/;
+    license = "unfree-redistributable";
+    description = "Convertor written in Perl that converts LaTeX documents to HTML";
+  };
+
+}
diff --git a/pkgs/misc/tex/tex4ht/default.nix b/pkgs/misc/tex/tex4ht/default.nix
new file mode 100644
index 000000000000..f565cb1a48c0
--- /dev/null
+++ b/pkgs/misc/tex/tex4ht/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, tetex}:
+
+stdenv.mkDerivation rec {
+  name = "tex4ht-1.0.2009_06_11_1038";
+
+  src = fetchurl {
+    url = "http://www.cse.ohio-state.edu/~gurari/TeX4ht/fix/${name}.tar.gz";
+    sha1 = "7d46488059316dec3234b6478cd0d2ca8f4d110f";
+  };
+
+  buildInputs = [ tetex ];
+
+  buildPhase = ''
+    cd src
+    for f in tex4ht t4ht htcmd ; do
+      # -DENVFILE="$out/share/texmf-nix/tex4ht/base/unix/tex4ht.env"
+      gcc -o $f $f.c -I${tetex}/include -L${tetex}/lib  -DHAVE_DIRENT_H -DHAVE_DIRENT_H -DKPATHSEA -lkpathsea
+    done
+    cd -
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    for f in src/tex4ht src/t4ht src/htcmd bin/unix/*; do # */
+      mv $f $out/bin/.
+    done
+
+    ensureDir $out/share
+    cp -r texmf $out/share/.
+  '';
+
+  meta = {
+    homepage = http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html;
+    # LaTeX Project Public License
+    license = "LPPL";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix
index cbf09e704b2c..0c890da77b3b 100644
--- a/pkgs/os-specific/linux/fuse/default.nix
+++ b/pkgs/os-specific/linux/fuse/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, utillinux }:
 
 stdenv.mkDerivation rec {
-  name = "fuse-2.8.1";
+  name = "fuse-2.8.2";
   
   builder = ./builder.sh;
   
   src = fetchurl {
     url = "mirror://sourceforge/fuse/${name}.tar.gz";
-    sha256 = "1brfgm2yxy060i6kcdlg30g2d48r6v9nhyxbfscpr6ijrrb10zq0";
+    sha256 = "05sfrw4qzhsysdf1qvd89lvin36ry6rvakmm4zjhf3g1f28rwdr6";
   };
   
   configureFlags = "--disable-kernel-module";
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
index cc058770938e..06790b2a2151 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
@@ -3,11 +3,11 @@ args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? "", ... }:
 import ./generic.nix (
 
   rec {
-    version = "2.6.27.43";
+    version = "2.6.27.45";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "0y2fpc6maazzg75ixrzc7h0v0k48jaflbjjcsh6c69f0mq3l8zay";
+      sha256 = "0hv4pa83ff8kihvjwhxkx01yf5dfrvk9xkn1bzhr9m0rv3s8d6sy";
     };
 
     features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.32.nix b/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
index d4f3ea88f9d1..17db41b12503 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
@@ -4,11 +4,11 @@ args @ { stdenv, fetchurl, platform, userModeLinux ? false, extraConfig ? ""
 import ./generic.nix (
 
   rec {
-    version = "2.6.32.3";
+    version = "2.6.32.7";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "09zg9xk67vjpfrrb3m4rzql4nd7bz64i9sng5sbdpfgs7d4pi1cp";
+      sha256 = "0s6xl3x4gwwibdfb68f6aybssp1rl2inx68a3padrb1l49k6lq44";
     };
 
     features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix
index bca1d4b3026e..9bcb5a28e162 100644
--- a/pkgs/os-specific/linux/qemu-kvm/default.nix
+++ b/pkgs/os-specific/linux/qemu-kvm/default.nix
@@ -1,18 +1,18 @@
-{stdenv, fetchurl, zlib, SDL, alsaLib, pkgconfig, pciutils}:
+{ stdenv, fetchurl, zlib, SDL, alsaLib, pkgconfig, pciutils, libuuid }:
    
 assert stdenv.isLinux;
    
 stdenv.mkDerivation rec {
-  name = "qemu-kvm-0.12.1.2";
+  name = "qemu-kvm-0.12.2";
    
   src = fetchurl {
     url = "mirror://sourceforge/kvm/${name}.tar.gz";
-    sha256 = "1k5xx9rn0n311bgvl6g9c8h1bxj2nhjpjpzbngy0sf9hdjidnba7";
+    sha256 = "0nmg9dp3h040dkxq5vv4i7ip76v98rnhzqwy4pd88zznawc2k9l2";
   };
 
-  patches = [ ./unix-domain.patch ];
+  patches = [ ./unix-domain.patch ./smb-tmpdir.patch ];
 
-  buildInputs = [zlib SDL alsaLib pkgconfig pciutils];
+  buildInputs = [ zlib SDL alsaLib pkgconfig pciutils libuuid ];
 
   preBuild =
     ''
diff --git a/pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch b/pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch
new file mode 100644
index 000000000000..6d6c7831d15e
--- /dev/null
+++ b/pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch
@@ -0,0 +1,33 @@
+Honour $TMPDIR for the qemu-smb temporary directory.
+
+diff -rc -x '*~' qemu-kvm-0.12.2-orig/net/slirp.c qemu-kvm-0.12.2/net/slirp.c
+*** qemu-kvm-0.12.2-orig/net/slirp.c	2010-02-01 19:05:24.000000000 +0100
+--- qemu-kvm-0.12.2/net/slirp.c	2010-02-01 19:05:54.000000000 +0100
+***************
+*** 476,486 ****
+                       struct in_addr vserver_addr)
+  {
+      static int instance;
+!     char smb_conf[128];
+!     char smb_cmdline[128];
+      FILE *f;
+  
+!     snprintf(s->smb_dir, sizeof(s->smb_dir), "/tmp/qemu-smb.%ld-%d",
+               (long)getpid(), instance++);
+      if (mkdir(s->smb_dir, 0700) < 0) {
+          qemu_error("could not create samba server dir '%s'\n", s->smb_dir);
+--- 476,489 ----
+                       struct in_addr vserver_addr)
+  {
+      static int instance;
+!     char smb_conf[1024];
+!     char smb_cmdline[1024];
+      FILE *f;
+  
+!     char *tmpdir = getenv("TMPDIR");
+! 
+!     snprintf(s->smb_dir, sizeof(s->smb_dir), "%s/qemu-smb.%ld-%d",
+!              tmpdir ? tmpdir : "/tmp",
+               (long)getpid(), instance++);
+      if (mkdir(s->smb_dir, 0700) < 0) {
+          qemu_error("could not create samba server dir '%s'\n", s->smb_dir);
diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix
index 1ae7839643f8..330bcc2e8635 100644
--- a/pkgs/servers/openafs-client/default.nix
+++ b/pkgs/servers/openafs-client/default.nix
@@ -1,21 +1,20 @@
 { stdenv, fetchurl, autoconf, automake, flex, yacc,
-  linux_2_6_28, glibc, ncurses, perl, krb5 }:
+  kernel, glibc, ncurses, perl, krb5 }:
 
 assert stdenv.isLinux;
 
 let
   pname = "openafs";
   version = "1.4.11";
-  name = "${pname}-${version}";
+  name = "${pname}-${version}-${kernel.version}";
   webpage = http://www.openafs.org;
-  kernel = linux_2_6_28;
 in
 
 stdenv.mkDerivation rec {
   inherit name;
 
   src = fetchurl {
-    url = "${webpage}/dl/${pname}/${version}/${name}-src.tar.gz";
+    url = "${webpage}/dl/${pname}/${version}/${pname}-${version}-src.tar.gz";
     sha256 = "ea5377119fd7b5317428644fa427066b9edbde395d997943a448426742d2c5c9";
   };
 
@@ -26,20 +25,6 @@ stdenv.mkDerivation rec {
   replace_usrbinperl = ./replace-usrbinperl;
   replace_usrsrc = ./replace-usrsrc;
 
-/*
-    xargs -IXX -L1 -a ${replace_usrbinenv} \
-      substituteInPlace XX --replace "/usr/bin/env" $(type -tp env)
-
-    xargs -IXX -L1 -a ${replace_usrinclude} \
-      substituteInPlace XX --replace "/usr/include" "${glibc}/include"
-
-    xargs -IXX -L1 -a ${replace_usrbinperl} \
-      substituteInPlace XX --replace "/usr/bin/perl" $(type -tp perl)
-
-    xargs -IXX -L1 -a ${replace_usrsrc} \
-      substituteInPlace XX --replace "/usr/src" "$TMP"
-*/
-
   configurePhase = ''
     ln -s ${kernel}/lib/modules/*/build $TMP/linux
 
@@ -63,9 +48,9 @@ stdenv.mkDerivation rec {
     ./configure \
        --prefix=$out \
        --with-linux-kernel-build=$TMP/linux \
-       --with-afs-sysname=amd64_linux26 \
        --with-krb5-conf=${krb5}/bin/krb5-config \
        --sysconfdir=/etc/static
+       #--with-afs-sysname=amd64_linux26 \
 
     substituteInPlace src/pinstall/install.c --replace "/bin/cp" $(type -tp cp)
   '';
diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix
index eacda19a8de2..037ceddfd018 100644
--- a/pkgs/shells/zsh/default.nix
+++ b/pkgs/shells/zsh/default.nix
@@ -2,11 +2,11 @@
 
 let
 
-  version = "4.3.9";
+  version = "4.3.10";
 
   documentation = fetchurl {
     url = "mirror://sourceforge/zsh/zsh-${version}-doc.tar.bz2";
-    sha256 = "0rc19q5r8x2yln7synpqzxngm7g4g6idrpgc1i0jsawc48m7dbhm";
+    sha256 = "f53d5c434fdb26fc79755279175514507eb1d11cf793ac57270d053ee61f37f9";
   };
   
 in
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/zsh/zsh-${version}.tar.bz2";
-    sha256 = "1aw28c5w83vl2ckbvf6ljj00s36icyrnxcm1r6q63863dmn6vpcg";
+    sha256 = "63fdc0273eadbb42d164f38b0b79922c0b3df0e97084e746a318276d935a4f7c";
   };
   
   configureFlags = "--with-tcsetpgrp --enable-maildir-support --enable-multibyte";
diff --git a/pkgs/tools/compression/ncompress/default.nix b/pkgs/tools/compression/ncompress/default.nix
index 33edf9bb84ed..a97ab190678c 100644
--- a/pkgs/tools/compression/ncompress/default.nix
+++ b/pkgs/tools/compression/ncompress/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    homepage = http://sourceforge.net/projects/ncompress/files/ncompress%20%28bugfixes%29/ncompress-4.2.4.2/ncompress-4.2.4.2.tar.gz/download;
+    homepage = http://ncompress.sourceforge.net/;
+    license = "free-non-copyleft";
+    description = "A fast, simple LZW file compressor";
   };
 }
diff --git a/pkgs/tools/graphics/netpbm/rgbpaths.patch b/pkgs/tools/graphics/netpbm/rgbpaths.patch
new file mode 100644
index 000000000000..0e6baa78bfe7
--- /dev/null
+++ b/pkgs/tools/graphics/netpbm/rgbpaths.patch
@@ -0,0 +1,16 @@
+diff -Naur advanced.orig/pm_config.in.h advanced/pm_config.in.h
+--- advanced.orig/pm_config.in.h	2010-01-12 22:04:07.000000000 +0100
++++ advanced/pm_config.in.h	2010-01-12 22:05:56.000000000 +0100
+@@ -67,9 +67,9 @@
+ #define RGB_DB2 "PBMplus_Dir:RGB.TXT"
+ #define RGB_DB3 "PBMplus_Dir:RGB.TXT"
+ #else
+-#define RGB_DB1 "/usr/lib/X11/rgb.txt"
+-#define RGB_DB2 "/usr/share/X11/rgb.txt"
+-#define RGB_DB3 "/usr/X11R6/lib/X11/rgb.txt"
++#define RGB_DB1 "@rgbPath1@"
++#define RGB_DB2 "@rgbPath2@"
++#define RGB_DB3 "@rgbPath3@"
+ #endif
+ 
+ /* CONFIGURE: This is the name of an environment variable that tells
diff --git a/pkgs/tools/misc/grub/1.9x.nix b/pkgs/tools/misc/grub/1.9x.nix
index 87235a60eea3..b57a98dd5baf 100644
--- a/pkgs/tools/misc/grub/1.9x.nix
+++ b/pkgs/tools/misc/grub/1.9x.nix
@@ -7,11 +7,11 @@ let unifont_bdf = fetchurl {
 in
 
 stdenv.mkDerivation rec {
-  name = "grub-1.97.1";
+  name = "grub-1.97.2";
 
   src = fetchurl {
     url = "ftp://alpha.gnu.org/gnu/grub/${name}.tar.gz";
-    sha256 = "1grpz4jphrhlmjr0ai4vi5rs1xknwfqgb376cq7hlwzblcblbw2i";
+    sha256 = "0j8wdaq9r0ayfsz25lbq2k3q0iasq5cyldlip8jyq2g87iid5hcq";
   };
 
   buildInputs = [ bison ncurses libusb freetype ];
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
          Unified Bootloader, which was originally designed and implemented by
          Erich Stefan Boleyn.
 
-         Briefly, boot loader is the first software program that runs when a
+         Briefly, the boot loader is the first software program that runs when a
          computer starts.  It is responsible for loading and transferring
          control to the operating system kernel software (such as the Hurd or
          the Linux).  The kernel, in turn, initializes the rest of the
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     license = "GPLv3+";
 
     maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.gnu;
   };
 }
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 8a1d46663423..a46762a4a4f0 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -6,47 +6,61 @@
 
 assert pamSupport -> pam != null;
 
-stdenv.mkDerivation (rec {
-  name = "openssh-5.2p1";
+let
+
+  hpnSrc = fetchurl {
+    url = http://www.psc.edu/networking/projects/hpn-ssh/openssh-5.3p1-hpn13v7.diff.gz;
+    sha256 = "1kqir6v14z77l0wn9j4jzdqsip5s1ky34w749psvbshbp9dzizn8";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "openssh-5.3p1";
 
   src = fetchurl {
     url = "ftp://ftp.nluug.nl/pub/security/OpenSSH/${name}.tar.gz";
-    sha256 = "1bpc6i07hlakb9vrxr8zb1yxnc9avsv7kjwrcagdgcyh6w6728s0";
+    sha256 = "04pgqmb43p5lr5wrfnvyys8r504brghshm24n60495wn5131gjfh";
   };
 
-  buildInputs = [zlib openssl perl
-    (if pamSupport then pam else null)
-  ];
+  patchPhase = stdenv.lib.optionalString hpnSupport
+    ''
+      gunzip -c ${hpnSrc} | patch -p1
+    '';
+  
+  buildInputs =
+    [ zlib openssl perl ]
+    ++ stdenv.lib.optional pamSupport pam;
 
-  configureFlags = "
-    --with-mantype=man
-    ${if pamSupport then "--with-pam" else "--without-pam"}
-    ${if etcDir != null then "--sysconfdir=${etcDir}" else ""}
-  ";
+  configureFlags =
+    ''
+      --with-mantype=man
+      ${if pamSupport then "--with-pam" else "--without-pam"}
+      ${if etcDir != null then "--sysconfdir=${etcDir}" else ""}
+    '';
 
-  preConfigure = "
-    configureFlags=\"$configureFlags --with-privsep-path=$out/empty\"
-    ensureDir $out/empty
-  ";
+  preConfigure =
+    ''
+      configureFlags="$configureFlags --with-privsep-path=$out/empty"
+      ensureDir $out/empty
+    '';
 
-  postInstall = "
-    # Install ssh-copy-id, it's very useful.
-    cp contrib/ssh-copy-id $out/bin/
-    chmod +x $out/bin/ssh-copy-id
-    cp contrib/ssh-copy-id.1 $out/share/man/man1/
-  ";
+  postInstall =
+    ''
+      # Install ssh-copy-id, it's very useful.
+      cp contrib/ssh-copy-id $out/bin/
+      chmod +x $out/bin/ssh-copy-id
+      cp contrib/ssh-copy-id.1 $out/share/man/man1/
+
+      ensureDir $out/etc/ssh
+      cp moduli $out/etc/ssh/
+    '';
 
   installTargets = "install-nosysconf";
-} //
-(if hpnSupport then
-rec {
-   hpnSrc = fetchurl {
-     url = http://www.psc.edu/networking/projects/hpn-ssh/openssh-5.2p1-hpn13v6.diff.gz;
-     sha256 = "1g91xl1vfg772072qcbcfzyqj7yfvm38xgk8zyy8wsl2g81rb8wh";
-   };
-
-   patchPhase = ''
-     gunzip -c ${hpnSrc} | patch -p1
-   '';
+
+  meta = {
+    homepage = http://www.openssh.org/;
+    description = "An implementation of the SSH protocol";
+    license = "bsd";
+  };
 }
-else {}))
diff --git a/pkgs/tools/networking/p2p/ktorrent/default.nix b/pkgs/tools/networking/p2p/ktorrent/default.nix
index 6950d9557de5..4966a9f9c6ec 100644
--- a/pkgs/tools/networking/p2p/ktorrent/default.nix
+++ b/pkgs/tools/networking/p2p/ktorrent/default.nix
@@ -1,21 +1,27 @@
-{ stdenv, fetchurl, pkgconfig, kdelibs, xlibs, zlib
-, libpng, libjpeg, perl, gmp
+{ stdenv, fetchurl, pkgconfig, kde, xlibs, zlib
+, libpng, libjpeg, perl, gmp, cmake, gettext, boost
 }:
 
 stdenv.mkDerivation {
-  name = "ktorrent-2.2.8";
+  name = "ktorrent-3.3.3";
   
   src = fetchurl {
-    url = http://ktorrent.org/downloads/2.2.8/ktorrent-2.2.8.tar.bz2;
-    sha256 = "10zpc50sggg8h1g6vgcv12mm4sw4d6jvzvnghdplqs86m5bwpg9k";
+    url = http://ktorrent.org/downloads/3.3.3/ktorrent-3.3.3.tar.bz2;
+    sha256 = "1f2hr8q8j1fxd3wa74vavq7b0spdsjfcl3jbyfi9xhk9mxxlm216";
   };
   
   buildInputs = [
-    pkgconfig kdelibs kdelibs.qt xlibs.xlibs zlib libpng libjpeg perl gmp
+    pkgconfig xlibs.xlibs zlib libpng libjpeg perl gmp cmake gettext boost
+  ];
+
+  propagatedBuildInputs = [
+    kde.qt4 kde.automoc4 kde.kdelibs kde.phonon kde.qca2 kde.kdepimlibs
   ];
-  
-  configureFlags = "--without-arts";
 
+  CMAKE_PREFIX_PATH=kde.kdepimlibs;
+  cmakeFlags = [ "-DGETTEXT_INCLUDE_DIR=${gettext}/include" ];
+  includeAllQtDirs=true;
+  
   meta = {
     homepage = http://ktorrent.org/;
     description = "A BitTorrent client for KDE";
diff --git a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
index 1bf6f920c4cf..0017c13a7874 100644
--- a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
+++ b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
@@ -1,13 +1,14 @@
 { fetchurl, lib, unzip, buildPythonPackage, twisted, foolscap, nevow
-, simplejson, zfec, pycryptopp, pysqlite, nettools }:
+, simplejson, zfec, pycryptopp, pysqlite, darcsver, setuptoolsTrial
+, setuptoolsDarcs, numpy, nettools }:
 
 buildPythonPackage (rec {
-  name = "tahoe-lafs-1.5.0";
+  name = "tahoe-lafs-1.6.0";
   namePrefix = "";
 
   src = fetchurl {
-    url = "http://allmydata.org/source/tahoe/releases/allmydata-tahoe-1.5.0.zip";
-    sha256 = "1cgwm7v49mlfsq47k8gw2bz14d6lnls0mr6dc18815pf24z4f00n";
+    url = "http://allmydata.org/source/tahoe/releases/allmydata-tahoe-1.6.0.zip";
+    sha256 = "10j6s4wqqxb0x6plwvfnabxxl0k8jy1g1dfsrhpfgdi42f25dain";
   };
 
   patchPhase = ''
@@ -26,18 +27,25 @@ buildPythonPackage (rec {
 
     sed -i "src/allmydata/util/iputil.py" \
         -es"|_linux_path = '/sbin/ifconfig'|_linux_path = '${nettools}/sbin/ifconfig'|g"
+
+    # Chroots don't have /etc/hosts and /etc/resolv.conf, so work around
+    # that.
+    for i in $(find src/allmydata/test -type f)
+    do
+      sed -i "$i" -e"s/localhost/127.0.0.1/g"
+    done
   '';
 
-  buildInputs = [ unzip ];
+  buildInputs = [ unzip ]
+    ++ [ numpy ]; # Some tests want this
 
-  # The `backup' command works best with `pysqlite'.
-  propagatedBuildInputs = [
-    twisted foolscap nevow simplejson zfec pycryptopp pysqlite
-  ];
+  # The `backup' command requires `pysqlite'.
+  propagatedBuildInputs =
+    [ twisted foolscap nevow simplejson zfec pycryptopp pysqlite
+      darcsver setuptoolsTrial
+    ];
 
-  # FIXME: Many tests try to write to the Nix store or to $HOME, which
-  # fails.  Disable tests until we have a reasonable hack to allow
-  # them to run.
+  # The test suite is run in `postInstall'.
   doCheck = false;
 
   postInstall = ''
@@ -50,6 +58,12 @@ buildPythonPackage (rec {
     ensureDir "$out/share/doc/${name}"
     cp -rv "docs/"* "$out/share/doc/${name}"
     find "$out/share/doc/${name}" -name Makefile -exec rm -v {} \;
+
+    # Run the tests once everything is installed.
+    # FIXME: Some of the tests want to run $out/bin/tahoe, which isn't usable
+    # yet because it gets wrapped later on, in `postFixup'.
+    export PYTHON_EGG_CACHE="$TMPDIR"
+    python setup.py trial
   '';
 
   meta = {
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index 131dcfc77198..06c005f6b916 100644
--- a/pkgs/tools/package-management/nix/unstable.nix
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-0.14pre19652";
+  name = "nix-0.14pre19767";
   
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/259251/download/4/${name}.tar.bz2";
-    sha256 = "e96d5e2cc7a86aea0d06f0d81395290d0c259004cc8a56d9eec203d5bb1a9d71";
+    url = "http://hydra.nixos.org/build/278172/download/4/${name}.tar.bz2";
+    sha256 = "787f39d66b9548c8f56166e280ef53b3696e90d99b79f926e504235760146e04";
   };
 
   buildInputs = [perl curl openssl];
diff --git a/pkgs/tools/system/ipmitool/default.nix b/pkgs/tools/system/ipmitool/default.nix
index 87b77a483e38..0a4c4b01ef6f 100644
--- a/pkgs/tools/system/ipmitool/default.nix
+++ b/pkgs/tools/system/ipmitool/default.nix
@@ -1,18 +1,21 @@
-{ fetchurl, stdenv, openssl }:
+{ fetchurl, stdenv, openssl, static ? false }:
 
 let
   pkgname = "ipmitool";
-  version = "1.8.9";
+  version = "1.8.11";
 in
 stdenv.mkDerivation {
   name = "${pkgname}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pkgname}/${pkgname}-${version}.tar.gz";
-    sha256 = "1d6bf2595d1fd0dbef206c300cc666d3d079548ba97f727077d61c4736a7e63a";
+    sha256 = "5612f4835d89a6f2cede588eef978a05d63435cf2646256300d9785d8020a13e";
   };
 
   buildInputs = [ openssl ];
+  dontDisableStatic = static;
+  configureFlags = if static then "LDFLAGS=-static --enable-static --disable-shared" else "--enable-shared";
+  makeFlags = if static then "AM_LDFLAGS=-all-static" else "";
 
   meta = {
     description = ''Command-line interface to IPMI-enabled devices'';
diff --git a/pkgs/tools/text/enscript/default.nix b/pkgs/tools/text/enscript/default.nix
index 67dc4302d03f..33c82ec52d8d 100644
--- a/pkgs/tools/text/enscript/default.nix
+++ b/pkgs/tools/text/enscript/default.nix
@@ -1,9 +1,36 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "enscript-1.6.5";
 
-stdenv.mkDerivation {
-  name = "enscript-1.6.4";
   src = fetchurl {
-    url = http://www.iki.fi/mtr/genscript/enscript-1.6.4.tar.gz;
-    md5 = "b5174b59e4a050fb462af5dbf28ebba3";
+    url = "mirror://gnu/enscript/${name}.tar.gz";
+    sha256 = "1sq4ng7z34qhx6cavnzndgkjpjr9lbvpxgd5a3ajgif3n57fjki2";
+  };
+
+  buildInputs = [ gettext ];
+
+  doCheck = true;
+
+  meta = {
+    description = "GNU Enscript, a converter from ASCII to PostScript, HTML, or RTF";
+
+    longDescription =
+      '' GNU Enscript converts ASCII files to PostScript, HTML, or RTF and
+         stores generated output to a file or sends it directly to the
+         printer.  It includes features for `pretty-printing'
+         (language-sensitive code highlighting) in several programming
+         languages.
+
+         Enscript can be easily extended to handle different output media and
+         it has many options that can be used to customize printouts.
+      '';
+
+    license = "GPLv3+";
+
+    homepage = http://www.gnu.org/software/enscript/;
+
+    maintainer = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/text/sgml/opensp/default.nix b/pkgs/tools/text/sgml/opensp/default.nix
index 4acf13af6fbd..76efbd0b1af6 100644
--- a/pkgs/tools/text/sgml/opensp/default.nix
+++ b/pkgs/tools/text/sgml/opensp/default.nix
@@ -1,16 +1,20 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, xmlto, docbook_xml_dtd_412, libxslt, docbook_xsl}:
 
 stdenv.mkDerivation {
-  # OpenSP-1.5.1 requires gcc 3.3 to build.
-  # The next release is likely to be compatible with newer gccs.
-  # If so the overrideGCC in top-level/all-packages should be removed.
-  name = "OpenSP-1.5.1";
+  name = "opensp-1.5.2";
 
   src = fetchurl {
-    url = "http://prdownloads.sourceforge.net/openjade/OpenSP-1.5.1.tar.gz";
-    sha256 = "0svkgk85m6f848fi3nxnrkzg62422wxr739w5r1yrmn31n24j1iz";
+    url = mirror://sourceforge/openjade/OpenSP-1.5.2.tar.gz;
+    sha256 = "1khpasr6l0a8nfz6kcf3s81vgdab8fm2dj291n5r2s53k228kx2p";
   };
 
+  patchPhase = ''
+    sed -i s,/usr/share/sgml/docbook/xml-dtd-4.1.2/,${docbook_xml_dtd_412}/xml/dtd/docbook/, \
+      docsrc/*.xml
+  '';
+
+  buildInputs = [ xmlto docbook_xml_dtd_412 libxslt docbook_xsl ];
+
   meta = {
     description = "A suite of SGML/XML processing tools";
     license = "BSD";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c965d60a2039..d697b5af82e2 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -455,10 +455,6 @@ let
     inherit fetchurl stdenv;
   };
 
-  ncompress = import ../tools/compression/ncompress {
-    inherit fetchurl stdenv;
-  };
-
   bzip2 = useFromStdenv "bzip2"
     (import ../tools/compression/bzip2 {
       inherit fetchurl stdenv;
@@ -635,7 +631,7 @@ let
   };
 
   enscript = import ../tools/text/enscript {
-    inherit fetchurl stdenv;
+    inherit fetchurl stdenv gettext;
   };
 
   eprover = composedArgsAndFun (import ../tools/misc/eProver) {
@@ -927,6 +923,7 @@ let
 
   ipmitool = import ../tools/system/ipmitool {
     inherit fetchurl stdenv openssl;
+    static = getPkgConfig "ipmitool" "static" false;
   };
 
   jdiskreport = import ../tools/misc/jdiskreport {
@@ -971,8 +968,9 @@ let
   };
 
   ktorrent = import ../tools/networking/p2p/ktorrent {
-    inherit fetchurl stdenv pkgconfig kdelibs
-      xlibs zlib libpng libjpeg perl gmp;
+    inherit fetchurl stdenv pkgconfig boost
+      xlibs zlib libpng libjpeg perl gmp cmake gettext;
+    kde = kde43;
   };
 
   less = import ../tools/misc/less {
@@ -1141,6 +1139,10 @@ let
     inherit fetchurl stdenv ncurses coreutils;
   };
 
+  ncompress = import ../tools/compression/ncompress {
+    inherit fetchurl stdenv;
+  };
+
   netcat = import ../tools/networking/netcat {
     inherit fetchurl stdenv;
   };
@@ -1221,13 +1223,13 @@ let
   openssh = import ../tools/networking/openssh {
     inherit fetchurl stdenv zlib openssl pam perl;
     pamSupport = getPkgConfig "openssh" "pam" true;
-    hpnSupport = getConfig [ "openssh" "hpn" ] false;
-    etcDir = getConfig [ "openssh" "etcDir" ] "/etc/ssh";
+    hpnSupport = getPkgConfig "openssh" "hpn" true;
+    etcDir = getPkgConfig "openssh" "etcDir" "/etc/ssh";
   };
 
   opensp = import ../tools/text/sgml/opensp {
-    inherit fetchurl;
-    stdenv = overrideGCC stdenv gcc33;
+    inherit fetchurl xmlto docbook_xml_dtd_412 libxslt docbook_xsl;
+    inherit stdenv;
   };
 
   openvpn = import ../tools/networking/openvpn {
@@ -3036,11 +3038,6 @@ let
     inherit fetchurl stdenv;
   };
 
-  openafsClient = import ../servers/openafs-client {
-    inherit stdenv fetchurl autoconf automake flex yacc;
-    inherit linux_2_6_28 glibc ncurses perl krb5;
-  };
-
   openocd = import ../development/tools/misc/openocd {
     inherit fetchurl stdenv libftdi;
   };
@@ -3348,6 +3345,10 @@ let
     inherit (xlibs) libX11 xf86vidmodeproto libXmu libXxf86vm;
   };
 
+  classads = import ../development/libraries/classads {
+    inherit fetchurl stdenv;
+  };
+
   classpath = import ../development/libraries/java/classpath {
     javac = gcj;
     jvm = gcj;
@@ -3786,6 +3787,10 @@ let
     inherit fetchurl stdenv;
   };
 
+  gsoap = import ../development/libraries/gsoap {
+    inherit fetchurl stdenv m4 bison flex openssl zlib;
+  };
+
   gtkimageview = import ../development/libraries/gtkimageview {
     inherit fetchurl stdenv pkgconfig;
     inherit (gnome) gtk;
@@ -4271,6 +4276,10 @@ let
     inherit fetchurl stdenv;
   };
 
+  libofx = import ../development/libraries/libofx {
+    inherit fetchurl stdenv opensp pkgconfig libxml2 curl;
+  };
+
   libogg = import ../development/libraries/libogg {
     inherit fetchurl stdenv;
   };
@@ -4364,6 +4373,10 @@ let
     inherit fetchurl stdenv;
   };
 
+  libvirt = import ../development/libraries/libvirt {
+    inherit stdenv fetchurl libxml2 gnutls devicemapper perl;
+  };
+
   libvncserver = builderDefsPackage (import ../development/libraries/libvncserver) {
     inherit libtool libjpeg openssl zlib;
     inherit (xlibs) xproto libX11 damageproto libXdamage
@@ -4493,7 +4506,7 @@ let
   };
 
   mpich2 = import ../development/libraries/mpich2 {
-    inherit fetchurl stdenv python;
+    inherit fetchurl stdenv python perl;
   };
 
   muparser = import ../development/libraries/muparser {
@@ -4824,7 +4837,7 @@ let
   };
 
   sqlite = import ../development/libraries/sqlite {
-    inherit fetchurl stdenv readline tcl;
+    inherit fetchurl stdenv;
   };
 
   stlport =  import ../development/libraries/stlport {
@@ -5887,6 +5900,11 @@ let
       inherit stdenv fetchurl kernel xlibs gtkLibs zlib;
     };
 
+    openafsClient = import ../servers/openafs-client {
+      inherit stdenv fetchurl autoconf automake flex yacc;
+      inherit kernel glibc ncurses perl krb5;
+    };
+
     wis_go7007 = import ../os-specific/linux/wis-go7007 {
       inherit fetchurl stdenv kernel ncurses fxload;
     };
@@ -6160,7 +6178,7 @@ let
   };
 
   qemu_kvm = import ../os-specific/linux/qemu-kvm {
-    inherit fetchurl stdenv zlib SDL alsaLib pkgconfig pciutils;
+    inherit fetchurl stdenv zlib SDL alsaLib pkgconfig pciutils libuuid;
   };
 
   radeontools = import ../os-specific/linux/radeontools {
@@ -7093,7 +7111,7 @@ let
   };
 
   firefox36Wrapper = lowPrio (wrapFirefox firefox36Pkgs.firefox "firefox" "");
-  
+
   flac = import ../applications/audio/flac {
     inherit fetchurl stdenv libogg;
   };
@@ -7284,6 +7302,11 @@ let
     inherit fetchurl stdenv;
   };
 
+  homebank = import ../applications/office/homebank {
+    inherit fetchurl stdenv pkgconfig libofx intltool;
+    inherit (gtkLibs) gtk;
+  };
+
   hugin = import ../applications/graphics/hugin {
     inherit fetchurl stdenv cmake panotools libtiff libpng boost pkgconfig
       exiv2 gettext ilmbase enblendenfuse autopanosiftc mesa freeglut
@@ -7299,7 +7322,8 @@ let
 
   icecat3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
     inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo
-      python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib;
+      python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
+      wirelesstools;
     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
     inherit (pythonPackages) ply;
   });
@@ -7307,7 +7331,8 @@ let
   icecatXulrunner3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
     application = "xulrunner";
     inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo
-      python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib;
+      python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
+      wirelesstools;
     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
     inherit (pythonPackages) ply;
   });
@@ -7513,6 +7538,10 @@ let
     inherit fetchurl stdenv ncurses;
   };
 
+  mmex = import ../applications/office/mmex {
+    inherit fetchsvn stdenv wxGTK;
+  };
+
   monodevelop = import ../applications/editors/monodevelop {
     inherit fetchurl stdenv file mono gtksourceviewsharp
             gtkmozembedsharp monodoc perl perlXMLParser pkgconfig;
@@ -7549,6 +7578,10 @@ let
     inherit (xlibs) libX11 xproto;
   };
 
+  mpc123 = import ../applications/audio/mpc123 {
+    inherit stdenv fetchurl gettext libao libmpcdec;
+  };
+
   mpg321 = import ../applications/audio/mpg321 {
     inherit stdenv fetchurl libao libmad libid3tag zlib;
   };
@@ -7879,7 +7912,8 @@ let
   tahoelafs = import ../tools/networking/p2p/tahoe-lafs {
     inherit fetchurl lib unzip nettools buildPythonPackage;
     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
-      pycryptopp pysqlite;
+      pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
+      numpy;
   };
 
   tailor = builderDefsPackage (import ../applications/version-management/tailor) {
@@ -8353,6 +8387,11 @@ let
     zlib = zlibStatic;
   };
 
+  pioneers = import ../games/pioneers {
+    inherit stdenv fetchurl pkgconfig intltool;
+    inherit (gtkLibs) gtk /*glib gtkmm*/;
+  };
+
   quake3demo = import ../games/quake3/wrapper {
     name = "quake3-demo-${quake3game.name}";
     description = "Demo of Quake 3 Arena, a classic first-person shooter";
@@ -8405,6 +8444,10 @@ let
     inherit (xlibs) libX11;
   };
 
+  tennix = import ../games/tennix {
+    inherit stdenv fetchurl SDL SDL_mixer SDL_image SDL_ttf;
+  };
+
   /*tpm = import ../games/thePenguinMachine {
     inherit stdenv fetchurl pil pygame SDL;
     python24 = python;
@@ -8414,10 +8457,20 @@ let
     inherit stdenv fetchurl SDL mesa SDL_image freealut;
   };
 
+  urbanterror = import ../games/urbanterror {
+    inherit fetchurl stdenv unzip SDL mesa curl openal;
+  };
+
   ut2004demo = import ../games/ut2004demo {
     inherit fetchurl stdenv xlibs mesa;
   };
 
+  warsow = import ../games/warsow {
+    inherit stdenv fetchurl unzip pkgconfig zlib curl libjpeg libvorbis SDL
+            mesa openal;
+    inherit (xlibs) libXxf86dga libXxf86vm libXinerama;
+  };
+
   xboard = builderDefsPackage (import ../games/xboard) {
     inherit (xlibs) libX11 xproto libXt libXaw libSM
       libICE libXmu libXext libXpm;
@@ -8558,15 +8611,19 @@ let
     inherit fetchurl stdenv gfortran;
   };
 
+  blas = import ../development/libraries/science/math/blas {
+    inherit fetchurl stdenv gfortran;
+  };
+
   content = builderDefsPackage ../applications/science/math/content {
     inherit mesa lesstif;
     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
       libXmu libXext libXcursor;
   };
 
-  /* liblapack = import ../development/libraries/science/math/liblapack {
-    inherit fetchurl stdenv gfortran;
-  }; */
+  liblapack = import ../development/libraries/science/math/liblapack {
+    inherit fetchurl stdenv gfortran blas;
+  };
 
 
   ### SCIENCE/LOGIC
@@ -8794,6 +8851,11 @@ let
     inherit stdenv fetchsvn apacheAnt jdk axis2 shebangfix;
   };
 
+  latex2html = import ../misc/tex/latex2html/default.nix {
+    inherit fetchurl stdenv perl ghostscript netpbm;
+    tex = tetex;
+  };
+
   pgadmin = import ../applications/misc/pgadmin {
     inherit fetchurl stdenv postgresql libxml2 libxslt openssl;
     inherit wxGTK;
@@ -8861,6 +8923,10 @@ let
     inherit fetchurl stdenv flex bison zlib libpng ncurses ed;
   };
 
+  tex4ht = import ../misc/tex/tex4ht {
+    inherit fetchurl stdenv tetex;
+  };
+
   texFunctions = import ../misc/tex/nix {
     inherit stdenv perl tetex graphviz ghostscript makeFontsConf imagemagick runCommand lib;
     inherit (haskellPackages) lhs2tex;
diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix
index 1b04e68c2b6c..5f5938d25cae 100644
--- a/pkgs/top-level/make-tarball.nix
+++ b/pkgs/top-level/make-tarball.nix
@@ -59,6 +59,8 @@ releaseTools.makeSourceTarball {
   '';
 
   distPhase = ''
+    find . -name "\.svn" -exec rm -rvf {} \; -prune
+  
     ensureDir $out/tarballs
     mkdir ../$releaseName
     cp -prd . ../$releaseName
@@ -80,6 +82,6 @@ releaseTools.makeSourceTarball {
   '';
 
   meta = {
-    maintainers = [lib.maintainers.eelco];
+    maintainers = [ lib.maintainers.all ];
   };
 }
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index feae42220102..b55c101167aa 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -105,23 +105,23 @@ rec {
 
   genshi = buildPythonPackage {
     name = "genshi-0.5.1";
-    
+
     src = fetchurl {
       url = http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.tar.bz2;
       sha256 = "1g2xw3zvgz59ilv7mrdlnvfl6ph8lwflwd4jr6zwrca2zhj7d8rs";
     };
-    
+
     buildInputs = [ pkgs.setuptools ];
-    
+
     meta = {
       description = "Python components for parsing HTML, XML and other textual content";
-      
+
       longDescription = ''
         Python library that provides an integrated set of
         components for parsing, generating, and processing HTML, XML or other
         textual content for output generation on the web.
       '';
-      
+
       license = "BSD";
     };
   };
@@ -156,13 +156,31 @@ rec {
 
     buildInputs = [ pkgs.libxml2 pkgs.libxslt ];
 
-    meta = { 
+    meta = {
       description = "Pythonic binding for the libxml2 and libxslt libraries";
       homepage = http://codespeak.net/lxml/index.html;
       license = "BSD";
     };
   });
 
+  matplotlib = buildPythonPackage ( rec {
+    name = "matplotlib-0.99.1.2";
+
+    src = fetchurl {
+      url = "http://downloads.sourceforge.net/matplotlib/${name}.tar.gz";
+      sha256 = "12lhwgkahck795946hb8wp605c912zq9ds8067ybbifqs56q24b9";
+    };
+
+    doCheck = false;
+
+    buildInputs = [ dateutil numpy pkgs.freetype pkgs.libpng pkgs.pkgconfig pkgs.tcl pkgs.tk pkgs.xlibs.libX11 ];
+
+    meta = {
+      description = "python plotting library, making publication quality plots";
+      homepage = "http://matplotlib.sourceforge.net/";
+    };
+  });
+
   mechanize = buildPythonPackage (rec {
     name = "mechanize-0.1.11";
 
@@ -224,6 +242,8 @@ rec {
 
     propagatedBuildInputs = [ twisted ];
 
+    postInstall = "twistd --help > /dev/null";
+
     meta = {
       description = "Nevow, a web application construction kit for Python";
 
@@ -251,6 +271,31 @@ rec {
     };
   });
 
+  numpy = buildPythonPackage ( rec {
+    name = "numpy-1.3.0";
+
+    src = fetchurl {
+      url = "http://downloads.sourceforge.net/numpy/${name}.tar.gz";
+      sha256 = "7524687cce85aa78103046db5e617c626b0ef871a203a049159f88f35647c90d";
+    };
+
+    doCheck = false;
+
+    buildInputs = [ pkgs.liblapack pkgs.blas /* pkgs.gfortran */ ];
+
+    # The build should be run as follows:
+    #
+    #   python setup.py config_fc --fcompiler=gnu95 build
+    #   python setup.py config_fc --fcompiler=gnu95 install
+    #
+    # But I con't figure out how to pass the extra flags to setuptools.
+
+    meta = {
+      description = "Scientific tools for Python";
+      homepage = "http://numpy.scipy.org/";
+    };
+  });
+
   ply = buildPythonPackage (rec {
     name = "ply-3.2";
 
@@ -289,20 +334,20 @@ rec {
     name = "psycopg2-2.0.13";
 
     doCheck = false;
-    
+
     src = fetchurl {
       url = "http://initd.org/pub/software/psycopg/PSYCOPG-2-0/${name}.tar.gz";
       sha256 = "0arkaa1nbbd3pyn4l1bc75wi7nff3vxxh4s8sj5al5hv20p64pm1";
     };
-    
+
     propagatedBuildInputs = [ pkgs.postgresql ];
-    
+
     meta = {
       description = "PostgreSQL database adapter for the Python programming language";
       license = "GPLv2/ZPL";
     };
   };
-  
+
   pycryptopp = buildPythonPackage (rec {
     name = "pycryptopp-0.5.15";
 
@@ -449,6 +494,25 @@ rec {
     };
   };
 
+  setuptoolsTrial = buildPythonPackage {
+    name = "setuptools-trial-0.5.3";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/s/setuptools_trial/setuptools_trial-0.5.3.tar.gz";
+      sha256 = "0h3mgjsz3z1sjl9j0b6bv4bss8d0przamj4gnjmpyazc633hhlyi";
+    };
+
+    propagatedBuildInputs = [ twisted ];
+
+    meta = {
+      description = "setuptools plug-in that helps run unit tests built with the \"Trial\" framework (from Twisted)";
+
+      homepage = http://allmydata.org/trac/setuptools_trial;
+
+      license = "unspecified"; # !
+    };
+  };
+
   simplejson = buildPythonPackage (rec {
     name = "simplejson-2.0.9";
 
@@ -477,21 +541,21 @@ rec {
 
   trac = buildPythonPackage {
     name = "trac-0.11.5";
-    
+
     src = fetchurl {
       url = http://ftp.edgewall.com/pub/trac/Trac-0.11.5.tar.gz;
       sha256 = "cc3362ecc533abc1755dd78e2d096d1413bc975abc3185318f4821458cd6a8ac";
     };
-    
+
     doCheck = false;
-    
+
     PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
-    
+
     propagatedBuildInputs = [ genshi pkgs.setuptools ];
-    
+
     meta = {
       description = "Enhanced wiki and issue tracking system for software development projects";
-      
+
       license = "BSD";
     };
   };
@@ -506,6 +570,12 @@ rec {
 
     propagatedBuildInputs = [ pkgs.ZopeInterface ];
 
+    # Generate Twisted's plug-in cache.  Twited users must do it as well.  See
+    # http://twistedmatrix.com/documents/current/core/howto/plugin.html#auto3
+    # and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477103 for
+    # details.
+    postInstall = "$out/bin/twistd --help > /dev/null";
+
     meta = {
       homepage = http://twistedmatrix.com/;