From d23f0bf7e935f0c3b458a35b4a164fa7b9eb106f Mon Sep 17 00:00:00 2001
From: "Yury G. Kudryashov" <urkud.urkud@gmail.com>
Date: Sat, 8 Dec 2007 15:21:03 +0000
Subject: [PATCH] merging trunk...

svn path=/nixpkgs/branches/stdenv-updates/; revision=9895
---
 .../graphics/exrdisplay/default.nix           |  27 ++++
 pkgs/applications/graphics/xara/default.nix   |  26 +++-
 pkgs/applications/misc/audio/sox/default.nix  |   2 +-
 .../office/openoffice/default.nix             |  29 +++-
 .../office/openoffice/libawt_problem          |  10 ++
 pkgs/build-support/fetchsvn/builder.sh        |   2 +-
 pkgs/build-support/fetchsvn/default.nix       |   9 +-
 pkgs/development/compilers/ghc-6.8/d.nix      |  37 +++++
 .../development/compilers/ghc-6.8/default.nix |   5 +-
 .../compilers/ghc-6.8/x86_64-linux_patch      |  24 ++++
 pkgs/development/libraries/ctl/default.nix    |  23 ++++
 .../libraries/ffmpeg_svn_snapshot/default.nix |  13 +-
 pkgs/development/libraries/fltk/default.nix   |  74 +++++-----
 pkgs/development/libraries/geos/default.nix   |  42 ++++++
 pkgs/development/libraries/gsl/default.nix    |  17 +++
 .../development/libraries/ilmbase/default.nix |   6 +-
 .../libraries/libsamplerate/default.nix       |   2 +-
 .../development/libraries/openexr/default.nix |  10 +-
 .../libraries/openexr_ctl/default.nix         |  24 ++++
 pkgs/development/libraries/proj.4/default.nix |  17 +++
 .../tools/selenium/remote-control/default.nix |  23 ++++
 pkgs/games/construo/0.2.2.nix                 |  29 ++++
 pkgs/misc/tex/auctex/default.nix              |   1 +
 .../os-specific/linux/ndiswrapper/default.nix |  26 ++++
 pkgs/os-specific/linux/upstart/jobcontrol.nix |  15 ++
 pkgs/os-specific/linux/util-linux/default.nix |   6 +-
 pkgs/tools/misc/relfs/cvs.2007.12.01.nix      |  48 +++++++
 pkgs/tools/networking/openssh/default.nix     |   1 +
 pkgs/top-level/all-packages.nix               | 130 ++++++++++++++----
 pkgs/top-level/builder-defs.nix               |   5 +
 30 files changed, 585 insertions(+), 98 deletions(-)
 create mode 100644 pkgs/applications/graphics/exrdisplay/default.nix
 create mode 100644 pkgs/applications/office/openoffice/libawt_problem
 create mode 100644 pkgs/development/compilers/ghc-6.8/d.nix
 create mode 100644 pkgs/development/compilers/ghc-6.8/x86_64-linux_patch
 create mode 100644 pkgs/development/libraries/ctl/default.nix
 create mode 100644 pkgs/development/libraries/geos/default.nix
 create mode 100644 pkgs/development/libraries/gsl/default.nix
 create mode 100644 pkgs/development/libraries/openexr_ctl/default.nix
 create mode 100644 pkgs/development/libraries/proj.4/default.nix
 create mode 100644 pkgs/development/tools/selenium/remote-control/default.nix
 create mode 100644 pkgs/games/construo/0.2.2.nix
 create mode 100644 pkgs/os-specific/linux/ndiswrapper/default.nix
 create mode 100644 pkgs/os-specific/linux/upstart/jobcontrol.nix
 create mode 100644 pkgs/tools/misc/relfs/cvs.2007.12.01.nix

diff --git a/pkgs/applications/graphics/exrdisplay/default.nix b/pkgs/applications/graphics/exrdisplay/default.nix
new file mode 100644
index 000000000000..980f94e95d43
--- /dev/null
+++ b/pkgs/applications/graphics/exrdisplay/default.nix
@@ -0,0 +1,27 @@
+args:
+
+assert args.fltk.flag_set_gl;
+args.stdenv.mkDerivation {
+
+  name ="openexr_viewers-1.0.1";
+
+  src = args.fetchurl {
+    url =  "http://download.savannah.nongnu.org/releases/openexr/openexr_viewers-1.0.1.tar.gz";
+    sha256 = "1w5qbcdp7sw48z1wk2v07f7p14vqqb1m2ncxyxnbkm9f4ab0ymg6";
+  };
+
+  inherit (args) fltk mesa;
+
+  configurePhase = "
+    # don't know why.. adding these flags it works
+    #export CXXFLAGS=`fltk-config --use-gl --cxxflags --ldflags`
+    ./configure --prefix=\$out --with-fltk-config=\$fltk/bin/fltk-config";
+
+  buildInputs =(with args; [openexr fltk pkgconfig mesa which openexr_ctl]);
+
+  meta = {
+      description = "tool to view OpenEXR images";
+      homepage = http://openexr.com;
+      license = "BSD-like";
+  };
+}
diff --git a/pkgs/applications/graphics/xara/default.nix b/pkgs/applications/graphics/xara/default.nix
index 495e1f930762..e2fdd33c1a6f 100644
--- a/pkgs/applications/graphics/xara/default.nix
+++ b/pkgs/applications/graphics/xara/default.nix
@@ -1,5 +1,5 @@
 {stdenv, fetchurl, autoconf, automake, gettext, libtool, cvs, wxGTK, gtk,
-pkgconfig, libxml2, zip, libpng, libjpeg}:
+pkgconfig, libxml2, zip, libpng, libjpeg, shebangfix, perl, freetype}:
 
 stdenv.mkDerivation {
   name = "xaralx-0.7r1766";
@@ -7,9 +7,29 @@ stdenv.mkDerivation {
     url = http://downloads2.xara.com/opensource/XaraLX-0.7r1766.tar.bz2;
     sha256 = "1rcl7hqvcai586jky7hvzxhnq8q0ka2rsmgiq5ijwclgr5d4ah7n";
   };
-  
-  buildInputs = [automake autoconf gettext libtool cvs wxGTK gtk pkgconfig libxml2 zip libpng libjpeg];
+
+  buildInputs = [automake autoconf gettext libtool cvs wxGTK gtk pkgconfig libxml2 zip libpng libjpeg shebangfix perl];
+
+  inherit freetype libpng libjpeg libxml2;
   configureFlags = "--with-wx-config --disable-svnversion --disable-international";
 
   patches = [./gtk_cflags.patch];
+
+  # Why do I need to add library path for freetype ? 
+  installPhase = "
+    make install
+    ensureDir \$out/lib
+    mv \$out/{bin,lib}/XaraLX
+cat >> \$out/bin/XaraLX << EOF
+#!/bin/sh
+LD_LIBRARY_PATH=\$freetype/lib:\$libpng/lib:\$libjpeg/lib:\$libxml2/lib:
+\$out/lib/XaraLX \"\\$@\"
+EOF
+chmod +x \$out/bin/XaraLX
+";
+ 
+  patchPhase = "
+    find . -iname \"*.pl\" | xargs shebangfix;
+    unset patchPhase; patchPhase
+   "; 
 }
diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix
index 91bd5be07880..c0cf9d91b730 100644
--- a/pkgs/applications/misc/audio/sox/default.nix
+++ b/pkgs/applications/misc/audio/sox/default.nix
@@ -1,5 +1,5 @@
 args:
-( args.mkDerivationByConfigruation {
+( args.mkDerivationByConfiguration {
     flagConfig = {
     mandatory = { implies = [ "no_oss" "no_sun_audio" ]; };
     # are these options of interest? We'll see
diff --git a/pkgs/applications/office/openoffice/default.nix b/pkgs/applications/office/openoffice/default.nix
index 789bc5a53dac..c7cedc69deea 100644
--- a/pkgs/applications/office/openoffice/default.nix
+++ b/pkgs/applications/office/openoffice/default.nix
@@ -10,11 +10,21 @@ stdenv.mkDerivation rec {
   name = "openoffice.org-2.3.0";
   builder = ./builder.sh;
 
-  src = fetchurl {
-	url = http://openoffice.bouncer.osuosl.org/?product=OpenOffice.org&os=src_bzip&lang=core&version=2.3.0;
-	name = "OOo_2.3.0_src_core.tar.bz2";
-    sha256 = "0mkxn9qj3f03rjkmxc4937gr2w429hnxzb9j5j2grdknfga5a1c3";
-  };
+  src =
+    #if (stdenv.system == "i686-linux") then
+      #fetchurl {
+        # stable 2.3.0 is failing - got the tip on the mailinglist to have look
+        # at http://www.openoffice.org/issues/show_bug.cgi?id=74751
+        # now I'm trying snapshot because it should already have this patch
+        #url = http://ftp.ussg.iu.edu/openoffice/contrib/rc/2.3.1rc1/OOo_2.3.1rc1_src_core.tar.bz2;
+        #name = "OOo_2.3.1_src_core.tar.bz2";
+        #sha256 = "";
+    #} else 
+    fetchurl {
+        url = http://openoffice.bouncer.osuosl.org/?product=OpenOffice.org&os=src_bzip&lang=core&version=2.3.0;
+        name = "OOo_2.3.0_src_core.tar.bz2";
+        sha256 = "0mkxn9qj3f03rjkmxc4937gr2w429hnxzb9j5j2grdknfga5a1c3";
+    };
 
   configureFlags = "
     --with-package-format=native
@@ -63,7 +73,14 @@ stdenv.mkDerivation rec {
 
   inherit icu fontconfig libjpeg jdk cups;
 
-  patches = [./ooo-libtextcat.patch];
+  # libawt_problem see http://www.openoffice.org/issues/show_bug.cgi?id=74751 
+  # Can be removed in newer releases than 2.3.0
+  patch_file = ./libawt_problem;
+  patches = [./ooo-libtextcat.patch ];
+  patchPhase = " 
+  patch config_office/set_soenv.in \$patch_file
+  unset patchPhase; patchPhase;
+  ";
 
   meta = {
     description = "OpenOffice.org is a multiplatform and multilingual office suite";
diff --git a/pkgs/applications/office/openoffice/libawt_problem b/pkgs/applications/office/openoffice/libawt_problem
new file mode 100644
index 000000000000..edfb72cd8d26
--- /dev/null
+++ b/pkgs/applications/office/openoffice/libawt_problem
@@ -0,0 +1,10 @@
+--- config_office/set_soenv.in  2007-02-21 16:31:51.000000000 +0100
++++ config_office/set_soenv.in.new      2007-02-21 20:37:17.000000000 +0100
+@@ -426,6 +426,7 @@
+       $OUTPATH        = "unxlngx6";
+       # Blackdown.org JDK porting project uses `amd64' and `server' in JDK 1.4.2 RC1
+       $JRELIBDIR      = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64";
++      $JREEXTRALIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."xawt";
+       $JRETOOLKITDIR  = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."server";
+       $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."native_threads";
+    }
diff --git a/pkgs/build-support/fetchsvn/builder.sh b/pkgs/build-support/fetchsvn/builder.sh
index d06efa88e291..b53ce95579ab 100644
--- a/pkgs/build-support/fetchsvn/builder.sh
+++ b/pkgs/build-support/fetchsvn/builder.sh
@@ -12,7 +12,7 @@ fi
 # hash of the output matters.
 echo 'p' | svn export -r "$rev" "$url" $out
 
-actual=$(nix-hash $out)
+actual=$(nix-hash $out --type "$outputHashAlgo")
 if test "$actual" != "$outputHash"; then
     echo "hash is $actual, expected $outputHash" >&2
     exit 1
diff --git a/pkgs/build-support/fetchsvn/default.nix b/pkgs/build-support/fetchsvn/default.nix
index ff842b0ee243..ce6a1e61d9cf 100644
--- a/pkgs/build-support/fetchsvn/default.nix
+++ b/pkgs/build-support/fetchsvn/default.nix
@@ -1,4 +1,5 @@
-{stdenv, subversion, nix, sshSupport ? false, openssh ? null}: {url, rev ? "HEAD", md5}:
+{stdenv, subversion, nix, sshSupport ? false, openssh ? null}: 
+{url, rev ? "HEAD", md5 ? "", sha256 ? ""}:
 
 stdenv.mkDerivation {
   name = "svn-export";
@@ -6,11 +7,11 @@ stdenv.mkDerivation {
   buildInputs = [subversion nix];
 
   # Nix <= 0.7 compatibility.
-  id = md5;
+  /*id = if sha256 == "" then md5 else sha256;*/
 
-  outputHashAlgo = "md5";
+  outputHashAlgo = if sha256=="" then "md5" else "sha256";
   outputHashMode = "recursive";
-  outputHash = md5;
+  outputHash = if sha256 =="" then md5 else sha256;
   
   inherit url rev sshSupport openssh;
 }
diff --git a/pkgs/development/compilers/ghc-6.8/d.nix b/pkgs/development/compilers/ghc-6.8/d.nix
new file mode 100644
index 000000000000..a011405f541f
--- /dev/null
+++ b/pkgs/development/compilers/ghc-6.8/d.nix
@@ -0,0 +1,37 @@
+
+stdenv.mkDerivation (rec {
+  homepage = "http://www.haskell.org/ghc";
+
+  src = map fetchurl [
+    { url = "${homepage}/dist/stable/dist/${name}-src.tar.bz2";
+    }
+    { url = "${homepage}/dist/stable/dist/${name}-src-extralibs.tar.bz2";
+    }
+  ];
+
+
+  setupHook = ./setup-hook.sh;
+
+  meta = {
+  };
+
+  postInstall = "
+    ensureDir \"$out/nix-support\"
+    echo \"# Path to the GHC compiler directory in the store\" > $out/nix-support/setup-hook
+    echo \"ghc=$out\" >> $out/nix-support/setup-hook
+    echo \"\"         >> $out/nix-support/setup-hook
+    cat $setupHook    >> $out/nix-support/setup-hook
+  ";
+
+  patch64 = ./x86_64-linux_patch;
+
+  # Thanks to Ian Lynagh ghc now works on x86_64-linux as well 
+  patchPhase = if (stdenv.system == "x86_64-linx") then "patch -p2 < $patch64" else "";
+
+
+  # the presence of this file makes Cabal cry for happy while generating makefiles ...
+  preConfigure = "
+    echo 'GhcThreaded=NO' > mk/build.mk
+    rm libraries/haskell-src/Language/Haskell/Parser.ly
+  ";
+})
diff --git a/pkgs/development/compilers/ghc-6.8/default.nix b/pkgs/development/compilers/ghc-6.8/default.nix
index 7588fbb13759..c87d84570827 100644
--- a/pkgs/development/compilers/ghc-6.8/default.nix
+++ b/pkgs/development/compilers/ghc-6.8/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation (rec {
   buildInputs = [ghc readline perl m4 pkgconfig gtk];
   patchPhase = "
   sed -e s@/bin/cat@\$(type -p cat)@ -i configure
-  ";
+  " + 
+  (if (stdenv.system == "x86_64-linx") then "patch -p2 < $patch64" else "");
 
   setupHook = ./setup-hook.sh;
 
@@ -32,7 +33,7 @@ stdenv.mkDerivation (rec {
     cat $setupHook    >> $out/nix-support/setup-hook
   ";
 
-  #configureFlags="--with-gmp-libraries=${gmp}/lib --with-readline-libraries=${readline}/lib";
+  patch64 = ./x86_64-linux_patch;
 
   # the presence of this file makes Cabal cry for happy while generating makefiles ...
   preConfigure = "
diff --git a/pkgs/development/compilers/ghc-6.8/x86_64-linux_patch b/pkgs/development/compilers/ghc-6.8/x86_64-linux_patch
new file mode 100644
index 000000000000..26a9cf2781e4
--- /dev/null
+++ b/pkgs/development/compilers/ghc-6.8/x86_64-linux_patch
@@ -0,0 +1,24 @@
+diff -ru /tmp/ghc_fresh/ghc-6.9.20071119/compiler/codeGen/CgUtils.hs ./ghc-6.9.20071119/compiler/codeGen/CgUtils.hs
+--- /tmp/ghc_fresh/ghc-6.9.20071119/compiler/codeGen/CgUtils.hs 2007-12-05 15:02:30.000000000 +0100
++++ ./ghc-6.9.20071119/compiler/codeGen/CgUtils.hs      2007-12-05 15:33:16.000000000 +0100
+@@ -51,7 +51,7 @@
+   ) where
+ 
+ #include "HsVersions.h"
+-#include "MachRegs.h"
++#include "../includes/MachRegs.h"
+ 
+ import CgMonad
+ import TyCon
+diff -ru /tmp/ghc_fresh/ghc-6.9.20071119/compiler/nativeGen/MachRegs.lhs ./ghc-6.9.20071119/compiler/nativeGen/MachRegs.lhs
+--- /tmp/ghc_fresh/ghc-6.9.20071119/compiler/nativeGen/MachRegs.lhs     2007-12-05 15:02:30.000000000 +0100
++++ ./ghc-6.9.20071119/compiler/nativeGen/MachRegs.lhs  2007-12-05 15:32:41.000000000 +0100
+@@ -90,7 +90,7 @@
+ -- HACK: go for the max
+ #endif
+ 
+-#include "MachRegs.h"
++#include "../includes/MachRegs.h"
+ 
+ import Cmm
+ import MachOp          ( MachRep(..) )
diff --git a/pkgs/development/libraries/ctl/default.nix b/pkgs/development/libraries/ctl/default.nix
new file mode 100644
index 000000000000..c6a6cee0ca67
--- /dev/null
+++ b/pkgs/development/libraries/ctl/default.nix
@@ -0,0 +1,23 @@
+args:
+args.stdenv.mkDerivation {
+  name = "ctl-1.4.1";
+
+  src = args.fetchurl {
+    url = http://surfnet.dl.sourceforge.net/sourceforge/ampasctl/ctl-1.4.1.tar.gz;
+    sha256 = "16lzgbpxdyhykdwndj1i9vx3h4bfkxqqcrvasvgg70gb5raxj0mj";
+  };
+
+  propagatedBuildInputs = (with args; [ilmbase]);
+  configureFlags="--with-ilmbase-prefix=${args.ilmbase}";
+  #configurePhase = "
+    #export CXXFLAGS=\"-I${args.ilmbase}/include -L${args.ilmbase}/lib\"
+    #echo $CXXFLAGS
+    #unset configurePhase; configurePhase
+  #";
+
+  meta = {
+      description = "Color Transformation Language";
+      homepage = http://ampasctl.sourceforge.net;
+      license = "SOME OPEN SOURCE LICENSE"; # TODO which exactly is this?
+  };
+}
diff --git a/pkgs/development/libraries/ffmpeg_svn_snapshot/default.nix b/pkgs/development/libraries/ffmpeg_svn_snapshot/default.nix
index 3719f1301a3f..f3611afb0b63 100644
--- a/pkgs/development/libraries/ffmpeg_svn_snapshot/default.nix
+++ b/pkgs/development/libraries/ffmpeg_svn_snapshot/default.nix
@@ -1,11 +1,16 @@
-{stdenv, fetchurl}:
+{stdenv, fetchsvn}:
 
 stdenv.mkDerivation {
-  name = "ffmpeg-svn";
-  src = fetchurl {
+  name = "ffmpeg-svn-2007-12-04";
+  src = fetchsvn {
+    url = svn://svn.mplayerhq.hu/ffmpeg/trunk ;
+    rev = "11164";
+    sha256 = "95658455e466aeab5a302ddd6e7b2f79f620d4495012add46028a548e6c364b2";
+  };
+  /*fetchurl {
     url = http://ffmpeg.mplayerhq.hu/ffmpeg-export-snapshot.tar.bz2;
     sha256 = "040a35f0c004323af14329c09ad3cff8d040e2cf9797d97cde3d9d83d02b4d87";
-  };
+  };*/
   # !!! Hm, what are the legal consequences of --enable-gpl?
   configureFlags = "--enable-shared --enable-pp --enable-gpl --disable-ffserver --disable-ffplay";
 }
diff --git a/pkgs/development/libraries/fltk/default.nix b/pkgs/development/libraries/fltk/default.nix
index 0b35b3e34b07..25b8379e3794 100644
--- a/pkgs/development/libraries/fltk/default.nix
+++ b/pkgs/development/libraries/fltk/default.nix
@@ -1,45 +1,37 @@
 args:
-with args;
-with args.lib; 
-let 
-  co = chooseOptionsByFlags {
-    inherit args;
-    flagDescr = 
-      { mandatory = { cfgOption = " --prefix=\$out"; 
-                      buildInputs=["libX11" "libXext"]; 
-                      blocks = ["cygwin" "quartz"]; } # cgywin quartz and much more not yet tested
-      ; cygwin = { cfgOption = "--enable-cygwin"; } #         use the CygWin libraries default=no
-      ; debug = { cfgOption = "--enable-debug"; } #          turn on debugging default=no
-      ; gl = { cfgOption = "--enable-gl"; buildInputs = [ "mesa" "mesa-heaaders"]; } #             turn on OpenGL support default=yes
-      ; shared = { cfgOption = "--enable-shared"; } #         turn on shared libraries default=no
-      ; threads = { cfgOption = "--enable-threads"; } #        enable multi-threading support
-      ; quartz = { cfgOption = "--enable-quartz"; buildInputs = "quartz"; } # don't konw yet what quartz is #         use Quartz instead of Quickdraw (default=no)
-      ; largefile = { cfgOption = "--disable-largefile"; } #     omit support for large files
-      ; useNixLibs = { implies = [ "nixjpeg" "nixpng" "nixzlib" ]; } # use nix libraries only
-      ; nixjpeg = { cfgOption = "--disable-localjpeg"; buildInputs = "libjpeg"; } #      use local JPEG library, default=auto
-      ; nixzlib = { cfgOption = "--disable-localzlib"; buildInputs = "zlib"; } #      use local ZLIB library, default=auto
-      ; nixpng = { cfgOption = "--disable-localpng"; buildInputs = "libpng"; } #       use local PNG library, default=auto
-      ; xinerama = { cfgOption = "--enable-xinerama"; buildInputs = "xinerama"; } #       turn on Xinerama support default=no
-      ; xft = { cfgOption = "--enable-xft"; buildInputs="xft"; } #            turn on Xft support default=no
-      ; xdbe = { cfgOption = "--enable-xdbe"; } #           turn on Xdbe support default=no
-      ;};
+( args.mkDerivationByConfiguration {
+    flagConfig = {
+      mandatory = { propagatedBuildInputs=["x11"]; 
+                    blocks = ["cygwin" "quartz"]; }; # cgywin quartz and much more not yet tested
+      cygwin = { cfgOption = "--enable-cygwin"; }; #         use the CygWin libraries default=no
+      debug = { cfgOption = "--enable-debug"; }; #          turn on debugging default=no
+      gl = { cfgOption = "--enable-gl"; buildInputs = [ "mesa" ]; }; #             turn on OpenGL support default=yes
+      shared = { cfgOption = "--enable-shared"; }; #         turn on shared libraries default=no
+      threads = { cfgOption = "--enable-threads"; }; #        enable multi-threading support
+      quartz = { cfgOption = "--enable-quartz"; buildInputs = "quartz"; }; # don't konw yet what quartz is #         use Quartz instead of Quickdraw (default=no)
+      largefile = { cfgOption = "--disable-largefile"; }; #     omit support for large files
+      useNixLibs = { implies = [ "nixjpeg" "nixpng" "nixzlib" ]; }; # use nix libraries only
+      nixjpeg = { cfgOption = "--disable-localjpeg"; buildInputs = "libjpeg"; }; #      use local JPEG library, default=auto
+      nixzlib = { cfgOption = "--disable-localzlib"; buildInputs = "zlib"; }; #      use local ZLIB library, default=auto
+      nixpng = { cfgOption = "--disable-localpng"; buildInputs = "libpng"; }; #       use local PNG library, default=auto
+      xinerama = { cfgOption = "--enable-xinerama"; buildInputs = "xinerama"; }; #       turn on Xinerama support default=no
+      xft = { cfgOption = "--enable-xft"; buildInputs="xft"; }; #            turn on Xft support default=no
+      xdbe = { cfgOption = "--enable-xdbe"; }; #           turn on Xdbe support default=no
+    }; 
+
+    extraAttrs = co : {
+      name = "fltk-2.0.x-r5940";
+
+    src = args.fetchurl {
+      #url = http://mirror.switch.ch/mirror/gentoo/distfiles/fltk-1.1.7-source.tar.bz2;
+      #sha256 = "855a97e35da823f205253b865758715872cd2c7720e4dcf134a3b6dc18bfb96a";
+      url = ftp://ftp.easysw.com/pub/fltk/snapshots/fltk-1.1.x-r5989.tar.bz2;
+      sha256 = "1zk5qh9133zd53hsn03bc4h6j4vjy61y92j4zxxw94z8y3jkc8yw";
     };
-in
-args.stdenv.mkDerivation {
-  inherit (co) /* flags */ buildInputs;
-  name = "fltk-2.0.x-r5940";
 
-  configurePhase = "./configure " + co.configureFlags;
-
-  src = fetchurl {
-    url = http://mirror.switch.ch/mirror/gentoo/distfiles/fltk-1.1.7-source.tar.bz2;
-    sha256 = "855a97e35da823f205253b865758715872cd2c7720e4dcf134a3b6dc18bfb96a";
+    meta = { 
+        description = "a C++ cross platform lightweight gui library binding";
+        homepage = http://www.fltk.org;
+    };
   };
-
-  meta = { 
-      description = "a C++ cross platform lightweight gui library binding";
-      homepage = http://www.fltk.org;
-  };
-  
-  dummy=2;
-}
+} ) args
diff --git a/pkgs/development/libraries/geos/default.nix b/pkgs/development/libraries/geos/default.nix
new file mode 100644
index 000000000000..bcfe8f757a24
--- /dev/null
+++ b/pkgs/development/libraries/geos/default.nix
@@ -0,0 +1,42 @@
+args:
+( args.mkDerivationByConfiguration {
+
+    flagConfig = {
+      mandatory = { implies = "python"; 
+                    buildInputs = [ "which" ]; # which is needed for the autogen.sh
+                  };
+    # python and ruby untested 
+      python =            { cfgOption = "--enable-python"; #Enable build of python module
+                            buildInputs=["python"] ++ (if args.use_svn then ["libtool" "autoconf" "automake" "swig"] else []); 
+                          };
+      ruby =              { cfgOption = "--enable-ruby"; };  #Enable build of ruby module
+    }; 
+
+    extraAttrs = co : {
+      name = "geos-3.0.0rc4";
+
+      src = if (args.use_svn) then
+        args.fetchsvn { 
+            url = http://svn.osgeo.org/geos/trunk; 
+            md5 = "b46f5ea517a337064006bab92f3090d4";
+        } else args.fetchurl {
+          url = http://geos.refractions.net/geos-3.0.0rc4.tar.bz2;
+          sha256 = "0pgwwv8q4p234r2jwdkaxcf68z2fwgmkc74c6dnmms2sdwkb5lbw";
+        };
+
+      configurePhase = "
+        [ -f configure ] || \\
+        LIBTOOLIZE=libtoolize ./autogen.sh
+        #{ automake --add-missing; autoconf; }
+        unset configurePhase; configurePhase
+        ";
+
+      meta = {
+          description = "C++ port of the Java Topology Suite (JTS)"
+            + "- all the OpenGIS \"Simple Features for SQL\" spatial predicate functions and spatial operators,"
+            + " as well as specific JTS topology functions such as IsValid";
+          homepage = http://geos.refractions.net/;
+          license = "GPL";
+      };
+  };
+} ) args
diff --git a/pkgs/development/libraries/gsl/default.nix b/pkgs/development/libraries/gsl/default.nix
new file mode 100644
index 000000000000..a5248d422996
--- /dev/null
+++ b/pkgs/development/libraries/gsl/default.nix
@@ -0,0 +1,17 @@
+args:
+args.stdenv.mkDerivation {
+  name = "gsl-1.9";
+
+  src = args.fetchurl {
+    url = ftp://ftp.gnu.org/gnu/gsl/gsl-1.9.tar.gz;
+    sha256 = "0l12js65c1qf3s7gmgay6gj5nbs6635py41dj8nk3hlp95wcdlgw";
+  };
+
+  buildInputs =(with args; []);
+
+  meta = { 
+      description = "numerical library (>1000 functions)";
+      homepage = http://www.gnu.org/software/gsl;
+      license = "GPL2";
+  };
+}
diff --git a/pkgs/development/libraries/ilmbase/default.nix b/pkgs/development/libraries/ilmbase/default.nix
index 49fae13aec88..0ab548bef86d 100644
--- a/pkgs/development/libraries/ilmbase/default.nix
+++ b/pkgs/development/libraries/ilmbase/default.nix
@@ -1,9 +1,9 @@
 args: with args;
 stdenv.mkDerivation {
-	name = "ilmbase-1.0.0";
+	name = "ilmbase-1.0.1";
 	src = fetchurl {
-		url = http://FIXME/ilmbase-1.0.0.tar.gz;
-		sha256 = "1dpgi3hbff9nflg95r2smb6ssg5bh5g8mj9dxh896w29nh08ipnz";
+		url = http://download.savannah.nongnu.org/releases/openexr/ilmbase-1.0.1.tar.gz;
+		sha256 = "0z9r3r0bxyhgwhkdwln0dg1lnxz691qnjygrqlg3jym34rxzq52g";
 	};
 	configureFlags = "--enable-shared --disable-static";
 }
diff --git a/pkgs/development/libraries/libsamplerate/default.nix b/pkgs/development/libraries/libsamplerate/default.nix
index 895772d7fc0c..2ea959528a87 100644
--- a/pkgs/development/libraries/libsamplerate/default.nix
+++ b/pkgs/development/libraries/libsamplerate/default.nix
@@ -1,5 +1,5 @@
 args:
-( args.mkDerivationByConfigruation {
+( args.mkDerivationByConfiguration {
     flagConfig = {
       mandatory = { buildInputs = ["pkgconfig"];};
     # are these options of interest? We'll see
diff --git a/pkgs/development/libraries/openexr/default.nix b/pkgs/development/libraries/openexr/default.nix
index e30f25d9778d..4d4aefc95812 100644
--- a/pkgs/development/libraries/openexr/default.nix
+++ b/pkgs/development/libraries/openexr/default.nix
@@ -1,11 +1,15 @@
 args: with args;
 
 stdenv.mkDerivation {
-  name = "openexr-1.6.0";
+  inherit version;
+  name = "openexr-${version}";
   src = fetchurl {
-    url = http://FIXME/openexr-1.6.0.tar.gz;
-	sha256 = "0mzbwavkbj26g43ar5jhdrqlvw9nq1mxh9l2044sqlcyharcnfq4";
+    url = "http://download.savannah.nongnu.org/releases/openexr/openexr-${version}.tar.gz";
+    sha256 = if (version == "1.6.1") then "0l2rdbx9lg4qk2ms98hwbsnzpggdrx3pbjl6pcvrrpjqp5m905n6"
+             else if (version == "1.4.0") then "1y3dxakpg9651dgbj2xp6r4044b5gi74g23w3sr5cs6xi7cywv7m"
+               else abort "not supported version";
   };
+  buildInputs = [pkgconfig zlib] ++ (lib.optional (args ? ctl) (args.ctl));
   propagatedBuildInputs = [pkgconfig zlib ilmbase];
   configureFlags = "--enable-shared --disable-static --enable-imfexamples";
 }
diff --git a/pkgs/development/libraries/openexr_ctl/default.nix b/pkgs/development/libraries/openexr_ctl/default.nix
new file mode 100644
index 000000000000..634a38990cb1
--- /dev/null
+++ b/pkgs/development/libraries/openexr_ctl/default.nix
@@ -0,0 +1,24 @@
+args:
+args.stdenv.mkDerivation {
+  name = "openexr_ctl-1.0.1";
+
+  src = args.fetchurl {
+    url = http://kent.dl.sourceforge.net/sourceforge/ampasctl/openexr_ctl-1.0.1.tar.gz;
+    sha256 = "1jg9smpaplal8l14djp184wzk11nwd3dvm4lhkp69kjgw8jdd21d";
+  };
+
+  propagatedBuildInputs = (with args; [ilmbase]);
+  buildInputs = ( with args; [openexr ctl]);
+  configureFlags="--with-ilmbase-prefix=${args.ilmbase}";
+  #configurePhase = "
+    #export CXXFLAGS=\"-I${args.ilmbase}/include -L${args.ilmbase}/lib\"
+    #echo $CXXFLAGS
+    #unset configurePhase; configurePhase
+  #";
+
+  meta = {
+      description = "Color Transformation Language";
+      homepage = http://ampasctl.sourceforge.net;
+      license = "SOME OPEN SOURCE LICENSE"; # TODO which exactly is this?
+  };
+}
diff --git a/pkgs/development/libraries/proj.4/default.nix b/pkgs/development/libraries/proj.4/default.nix
new file mode 100644
index 000000000000..6449a188f2be
--- /dev/null
+++ b/pkgs/development/libraries/proj.4/default.nix
@@ -0,0 +1,17 @@
+args:
+args.stdenv.mkDerivation {
+  name = "proj-4.5.0";
+
+  src = args.fetchurl {
+    url = ftp://ftp.remotesensing.org/proj/proj-4.5.0.tar.gz;
+    sha256 = "1d2qz0vgp13hkfgaz7hkblhb9w2fh2blbjqz73xdinwc08cmflqv";
+  };
+
+  buildInputs =(with args; []);
+
+  meta = { 
+      description = "Cartographic Projections Library";
+      homepage = http://proj.maptools.org;
+      license = "MIT";
+  };
+}
diff --git a/pkgs/development/tools/selenium/remote-control/default.nix b/pkgs/development/tools/selenium/remote-control/default.nix
new file mode 100644
index 000000000000..e2bf63264a6d
--- /dev/null
+++ b/pkgs/development/tools/selenium/remote-control/default.nix
@@ -0,0 +1,23 @@
+args:
+args.stdenv.mkDerivation {
+  name = "selenium-rc-0.8.3-binary";
+
+  src = args.fetchurl {
+    url = http://release.openqa.org/cgi-bin/selenium-remote-control-redirect.zip;
+    sha256 = "694b46a8440011bcedc4fdc6d01fd91c8b4b4b62b7c6629ace4e745ef47f583e";
+  };
+
+  phases = "installPhase";
+  installPhase = "
+  ensureDir \$out/lib
+  cp selenium-server-*/*.jar \$out/lib
+  ";
+
+  buildInputs =(with args; [unzip]);
+
+  meta = { 
+      description = "test tool for web applications";
+      homepage = http://www.openqa.org/selenium-c;
+      license = "";
+  };
+}
diff --git a/pkgs/games/construo/0.2.2.nix b/pkgs/games/construo/0.2.2.nix
new file mode 100644
index 000000000000..964b0e3898e6
--- /dev/null
+++ b/pkgs/games/construo/0.2.2.nix
@@ -0,0 +1,29 @@
+args : with args;
+	with builderDefs {
+		src = /* put a fetchurl here */
+		fetchurl {
+			url = http://savannah.nongnu.org/download/construo/construo-0.2.2.tar.gz;
+			sha256 = "0c661rjasax4ykw77dgqj39jhb4qi48m0bhhdy42vd5a4rfdrcck";
+		};
+
+		buildInputs = [libX11 zlib xproto]
+		++ (if args ? mesa then [mesa freeglut] else [])
+		;
+		configureFlags = [""];
+	} null; /* null is a terminator for sumArgs */
+let 
+preConfigure = FullDepEntry ("
+  sed -e 's/math[.]h/cmath/' -i vector.cxx
+  sed -e 's/games/bin/' -i Makefile.in
+") [doUnpack minInit];
+in
+stdenv.mkDerivation rec {
+	name = "construo-"+version;
+	builder = writeScript (name + "-builder")
+		(textClosure [preConfigure doConfigure doMakeInstall doForceShare doPropagate]);
+	meta = {
+		description = "
+	Construo masses and springs simulation.
+";
+	};
+}
diff --git a/pkgs/misc/tex/auctex/default.nix b/pkgs/misc/tex/auctex/default.nix
index 68599f4b246d..1059e85cdc05 100644
--- a/pkgs/misc/tex/auctex/default.nix
+++ b/pkgs/misc/tex/auctex/default.nix
@@ -10,5 +10,6 @@ stdenv.mkDerivation {
     url = http://ftp.gnu.org/pub/gnu/auctex/auctex-11.84.tar.gz;
     md5 = "73970c51221524442c11cde13d0584e9";
   };
+  configureFlags="--with-lispdir=\${out}/emacs/site-lisp --disable-preview";
   buildInputs = [ emacs tetex ];
 }
diff --git a/pkgs/os-specific/linux/ndiswrapper/default.nix b/pkgs/os-specific/linux/ndiswrapper/default.nix
new file mode 100644
index 000000000000..0d8b351e58b4
--- /dev/null
+++ b/pkgs/os-specific/linux/ndiswrapper/default.nix
@@ -0,0 +1,26 @@
+args:
+with args;
+args.stdenv.mkDerivation {
+  name = "ndiswrapper-1.49-stable";
+
+  # need at least .config and include 
+  inherit kernel;
+
+  buildPhase = "
+    make KBUILD=\$kernel/lib/modules/*/build;
+  ";
+
+  # should we use unstable? 
+  src = args.fetchurl {
+    url = http://kent.dl.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-1.49.tar.gz;
+    sha256 = "1b9nqkk7gv6gffzj9b8mjy5myxf2afwpyr2n5wbfsylf15dvvvjr";
+  };
+
+  buildInputs =(with args; [kernelHeaders kernel]);
+
+  meta = { 
+      description = "Ndis driver wrapper for the Linux kernel";
+      homepage = http://sourceforge.net/projects/ndiswrapper;
+      license = "GPL";
+  };
+}
diff --git a/pkgs/os-specific/linux/upstart/jobcontrol.nix b/pkgs/os-specific/linux/upstart/jobcontrol.nix
new file mode 100644
index 000000000000..5be0276ffd52
--- /dev/null
+++ b/pkgs/os-specific/linux/upstart/jobcontrol.nix
@@ -0,0 +1,15 @@
+args: with args;
+stdenv.mkDerivation {
+	name = "upstart-jobcontrol";
+	buildCommand = "
+		mkdir -p \$out/bin
+		echo '
+			file=/etc/event.d/\$1
+			shift
+			controlscript=\$(egrep exec\\|respawn \$file | tail | sed -e s/^\\\\s\\\\+//g  | sed -e s/\\\\s\\\\+/\\ /g | cut -f 2 -d \\  )
+			echo Running \$controlscript \"\$@\"
+			\$controlscript \"\$@\"
+		' >\$out/bin/jobcontrol
+		chmod a+x \$out/bin/jobcontrol
+	";
+}
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index 7f54a0c32eeb..0c7ebef7eb3b 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+args: with args;
 
 stdenv.mkDerivation {
   name = "util-linux-2.13-pre7";
@@ -10,6 +10,10 @@ stdenv.mkDerivation {
   
   configureFlags = "--disable-use-tty-group";
 
+  buildInputs = [] 
+  	++ (if args ? ncurses then [args.ncurses] else [])
+  ;
+
   preBuild = "
     makeFlagsArray=(usrbinexecdir=$out/bin usrsbinexecdir=$out/sbin datadir=$out/share exampledir=$out/share/getopt)
   ";
diff --git a/pkgs/tools/misc/relfs/cvs.2007.12.01.nix b/pkgs/tools/misc/relfs/cvs.2007.12.01.nix
new file mode 100644
index 000000000000..146d55e90c6f
--- /dev/null
+++ b/pkgs/tools/misc/relfs/cvs.2007.12.01.nix
@@ -0,0 +1,48 @@
+args : with args;
+	with builderDefs {
+	src = /* put a fetchurl here */
+	fetchcvs {
+		url = ":pserver:anonymous@relfs.cvs.sourceforge.net:/cvsroot/relfs";
+		module = "relfs";
+		date = "2007-12-01";
+		sha256 = "ef8e2ebfda6e43240051a7af9417092b2af50ece8b5c6c3fbd908ba91c4fe068";
+	};
+		
+		buildInputs = [ocaml fuse postgresql pcre
+			e2fsprogs gnomevfs pkgconfig GConf];
+		configureFlags = [];
+	} null; /* null is a terminator for sumArgs */
+let build = FullDepEntry ("
+	cd deps 
+	sed -e 's/^CPP/#&/ ; s/^# CPP=gcc/CPP=gcc/' -i Makefile.camlidl
+	make 
+	cd ../src
+	sed -e 's/NULL\\|FALSE/0/g' -i Mimetype_lib.c
+	sed -e 's@/usr/local/@'\$out/'@' -i Makefile
+	sed -e '/install:/a\\\tmkdir -p '\$out'/share' -i Makefile
+	make
+	mkdir -p \$out/bin
+	echo 'dropdb relfs_\$1 ; 
+		rm -rf /tmp/relfs-\$1-tmp;  
+		mkdir /tmp/relfs-\$1-tmp;  
+		USER=\$1 relfs -f -s /tmp/relfs-raskin-tmp  & 
+		sleep 1 && 
+		kill -15 \${!};
+		rm -rf /tmp/relfs-\$1-tmp ; 
+		psql -d relfs_\$1 <<< \"ALTER DATABASE relfs_raskin OWNER TO raskin; 
+			ALTER TABLE obj OWNER TO \$1; 
+			ALTER TABLE obj_mimetype OWNER TO \$1; 
+			ALTER TABLE membership OWNER TO \$1;\"' > \$out/bin/relfs_grant;
+	chmod a+x \$out/bin/relfs_grant;
+") [minInit doUnpack addInputs];
+in
+stdenv.mkDerivation rec {
+	name = "relfs-"+version;
+	builder = writeScript (name + "-builder")
+		(textClosure [build doMakeInstall doForceShare doPropagate]);
+	meta = {
+		description = "
+	Relational FS over FUSE.
+";
+	};
+}
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 12e1594fdfbc..2802ac887aab 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
   preConfigure = "
     configureFlags=\"$configureFlags --with-privsep-path=$out/empty\"
     ensureDir $out/empty
+    substituteInPlace pathnames.h --replace 'SSHDIR \"/ssh_config\"' '\"/etc/ssh/ssh_config\"'
   ";
 
   postInstall = "
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6977679bb2c9..e38513d65a77 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -204,7 +204,7 @@ rec {
     args: with args.lib; with args;
     if ( builtins.isAttrs extraAttrs ) then builtins.throw "the argument extraAttrs needs to be a function beeing passed co, but attribute set passed "
     else
-    let co = chooseOptionsByFlags { inherit args flagConfig optionals defaults collectExtraPhaseActions; }; in
+    let co = lib_unstable.chooseOptionsByFlags { inherit args flagConfig optionals defaults collectExtraPhaseActions; }; in
       args.stdenv.mkDerivation ( 
       {
         inherit (co) configureFlags buildInputs /*flags*/;
@@ -672,6 +672,16 @@ rec {
     zlibSupport = !stdenv ? isDietLibC;
   };
 
+  relfsFun = lib.sumArgs (selectVersion ../tools/misc/relfs) {
+    inherit fetchcvs stdenv ocaml postgresql fuse pcre
+      builderDefs e2fsprogs pkgconfig;
+    inherit (gnome) gnomevfs GConf;
+  };
+
+  relfs = relfsFun {
+    version = "cvs.2007.12.01";
+  } null;
+
   replace = import ../tools/text/replace {
     inherit fetchurl stdenv;
   };
@@ -972,7 +982,7 @@ rec {
   ghcsAndLibs = 
     assert builtins ? listToAttrs;
     recurseIntoAttrs (import ../development/compilers/ghcs {
-      inherit ghcboot fetchurl recurseIntoAttrs perl gnum4 gmp readline;
+      inherit ghcboot fetchurl recurseIntoAttrs perl gnum4 gmp readline stdenv;
       inherit ghcPkgUtil;
       lib = lib_unstable;
     });
@@ -1013,10 +1023,10 @@ rec {
   ghc = ghc661;
 
   ghc68 = lowPrio (import ../development/compilers/ghc-6.8 {
-    inherit fetchurl stdenv readline perl gmp ncurses libxml2 libxslt pkgconfig;
+    inherit fetchurl stdenv readline perl gmp ncurses pkgconfig;
+	inherit (gtkLibs) gtk;
     m4 = gnum4;
     ghc = ghcboot;
-	inherit (gtkLibs) gtk;
   });
 
   ghc661 = import ../development/compilers/ghc-6.6.1 {
@@ -1229,7 +1239,7 @@ rec {
   # perhaps this can be done setting php_value in apache don't have time to investigate any further ?
   # This expression is a quick hack now. But perhaps it helps you adding the configuration flags you need?
   php = (import ../development/interpreters/php_configurable) {
-   inherit mkDerivationByConfiguration;
+   inherit mkDerivationByConfiguration stdenv;
    lib = lib_unstable;
    inherit fetchurl flex bison apacheHttpd; # gettext;
    mysql = mysql5;
@@ -1489,6 +1499,11 @@ rec {
       inherit fetchurl stdenv;
     });
 
+  # couldn't find the source yet
+  selenium_rc_binary = import ../development/tools/selenium/remote-control {
+    inherit fetchurl stdenv unzip;
+  };
+
   scons = import ../development/tools/build-managers/scons {
     inherit fetchurl stdenv python;
   };
@@ -1651,6 +1666,10 @@ rec {
     inherit fetchurl stdenv;
   };
 
+  ctl = import ../development/libraries/ctl {
+    inherit fetchurl stdenv ilmbase;
+  };
+
   cppunit = import ../development/libraries/cppunit {
 	  inherit fetchurl stdenv;
   };
@@ -1726,7 +1745,7 @@ rec {
   };
 
   ffmpeg_svn = import ../development/libraries/ffmpeg_svn_snapshot {
-    inherit fetchurl stdenv;
+    inherit fetchsvn stdenv;
   };
 
   fftw = import ../development/libraries/fftw {
@@ -1734,13 +1753,12 @@ rec {
   };
 
 
-  # commented out because it's using the new configuration style proposal which is unstable
-  # needs some testing ..
-  #fltk20 = (import ../development/libraries/fltk) {
-    #inherit fetchurl stdenv lib mesa mesaHeaders libpng libjpeg zlib ;
-    #inherit (xlibs) libX11 libXext;
-    #flags = [ "useNixLibs" "threads" "shared" ];
-  #};
+  fltk20 = (import ../development/libraries/fltk) {
+    inherit mkDerivationByConfiguration x11;
+    inherit fetchurl stdenv mesa mesaHeaders libpng libjpeg zlib ;
+    flags = [ "useNixLibs" "threads" "shared" "gl" ];
+    lib = lib_unstable;
+  };
 
   fontconfig = import ../development/libraries/fontconfig {
     inherit fetchurl stdenv freetype expat;
@@ -1762,6 +1780,15 @@ rec {
     inherit fetchurl stdenv;
   };
 
+  geos = import ../development/libraries/geos {
+    lib = lib_unstable;
+    inherit fetchurl fetchsvn stdenv mkDerivationByConfiguration autoconf automake libtool swig which;
+    use_svn = stdenv.system == "x86_64-linux";
+    python = python;
+    # optional features:  
+    # python / ruby support
+  };
+
   gettext = getVersion "gettext" gettext_alts;
 
   gettext_alts = import ../development/libraries/gettext {
@@ -1818,6 +1845,11 @@ rec {
     inherit fetchurl stdenv libgpgerror gnupg;
   };
 
+  # gnu scientific library
+  gsl = import ../development/libraries/gsl {
+    inherit fetchurl stdenv;
+  };
+
   gtkLibs = recurseIntoAttrs gtkLibs210;
 
   gtkLibs1x = import ../development/libraries/gtk-libs-1.x {
@@ -2019,9 +2051,9 @@ rec {
   };
 
   # commented out because it's using the new configuration style proposal which is unstable
-  #libsamplerate = (import ../development/libraries/libsamplerate) {
-  #  inherit fetchurl stdenv mkDerivationByConfigruation pkgconfig lib;
-  #};
+  libsamplerate = if builtins ? listToAttrs then (import ../development/libraries/libsamplerate) {
+    inherit fetchurl stdenv mkDerivationByConfiguration pkgconfig lib;
+  } else null;
 
   libgsf = import ../development/libraries/libgsf {
     inherit fetchurl stdenv perl perlXMLParser pkgconfig libxml2 gettext bzip2
@@ -2214,13 +2246,21 @@ rec {
 	  inherit fetchurl stdenv zlib libxml2;
   };
 
+  # this ctl version is needed by openexr_viewers
+  openexr_ctl = import ../development/libraries/openexr_ctl {
+    inherit fetchurl stdenv ilmbase ctl;
+    openexr = openexr_1_6_1;
+  };
+
   openexr_1_6_1 = import ../development/libraries/openexr {
-	  inherit fetchurl stdenv ilmbase zlib pkgconfig;
+	  inherit fetchurl stdenv ilmbase zlib pkgconfig lib;
           version = "1.6.1";
+          # optional features:
+          inherit ctl;
   };
   # This older version is needed by blender (it complains about missing half.h )
   openexr_1_4_0 = import ../development/libraries/openexr {
-	  inherit fetchurl stdenv ilmbase zlib pkgconfig;
+	  inherit fetchurl stdenv ilmbase zlib pkgconfig lib;
           version = "1.4.0";
   };
 
@@ -2240,7 +2280,6 @@ rec {
   pcre = import ../development/libraries/pcre {
     inherit fetchurl stdenv;
     unicodeSupport = getFlag "unicode" "pcre" false;
-    cplusplusSupport = !stdenv ? isDietLibC;
   };
 
   poppler = import ../development/libraries/poppler {
@@ -2256,6 +2295,11 @@ rec {
     inherit fetchurl stdenv gettext libtool autoconf automake;
   };
 
+
+  proj = import ../development/libraries/proj.4 {
+    inherit fetchurl stdenv;
+  };
+
   qt3 = import ../development/libraries/qt-3 {
     inherit fetchurl stdenv x11 zlib libjpeg libpng which mysql mesa;
     inherit (xlibs) xextproto libXft libXrender libXrandr randrproto
@@ -3146,6 +3190,13 @@ rec {
     stdenv = overrideGCC stdenv gcc34;
   };
 
+  /* compiles but has to be integrated into the kernel somehow
+  ndiswrapper = import ../os-specific/linux/ndiswrapper {
+    inherit fetchurl stdenv;
+    inherit kernel;
+  };
+  */
+
   nettools = import ../os-specific/linux/net-tools {
     inherit fetchurl stdenv;
   };
@@ -3276,6 +3327,10 @@ rec {
     inherit fetchurl stdenv;
   };
 
+  upstartJobControl = import ../os-specific/linux/upstart/jobcontrol.nix {
+    inherit stdenv;
+  };
+
   usbutils = import ../os-specific/linux/usbutils {
     inherit fetchurl stdenv libusb;
   };
@@ -3284,6 +3339,10 @@ rec {
     inherit fetchurl stdenv;
   };
 
+  utillinuxCurses = import ../os-specific/linux/util-linux {
+    inherit fetchurl stdenv ncurses;
+  };
+
   utillinuxStatic = lowPrio (appendToName "static" (import ../os-specific/linux/util-linux {
     inherit fetchurl;
     stdenv = makeStaticBinaries stdenv;
@@ -3436,13 +3495,12 @@ rec {
   };
   blender = import ../applications/misc/blender {
     inherit cmake mesa gettext freetype SDL libtiff fetchurl glibc scons x11
-      libjpeg libpng zlib /* smpeg  sdl */;
+      libjpeg libpng zlib stdenv /* smpeg  sdl */;
     inherit (xlibs) inputproto libXi;
     lib = lib_unstable;
-    python = python_alts.v_2_5;
+    python = builtins.getAttr "2.5" python_alts;
     freealut = freealut_soft;
     openal = openalSoft;
-    stdenv = stdenvUsingSetupNew2;
     openexr = openexr_1_4_0;
   };
 
@@ -3628,6 +3686,12 @@ rec {
     xftSupport = true;
   };
 
+  exrdisplay = import ../applications/graphics/exrdisplay {
+    inherit fetchurl stdenv pkgconfig mesa which openexr_ctl;
+    fltk = fltk20;
+    openexr = openexr_1_6_1;
+  };
+
   fbpanelFun = lib.sumArgs (selectVersion ../applications/window-managers/fbpanel) {
     inherit fetchurl stdenv builderDefs pkgconfig libpng libjpeg libtiff librsvg;
     inherit (gtkLibs) gtk;
@@ -4045,9 +4109,9 @@ rec {
   } null;
 
   # commented out because it's using the new configuration style proposal which is unstable
-  /*
-  sox = import ../applications/misc/audio/sox {
-    inherit fetchurl stdenv lib mkDerivationByConfigruation;
+  
+  sox = if builtins ? listToAttrs then  import ../applications/misc/audio/sox {
+    inherit fetchurl stdenv lib mkDerivationByConfiguration;
     # optional features 
     inherit alsaLib; # libao
     inherit libsndfile libogg flac libmad lame libsamplerate;
@@ -4056,8 +4120,8 @@ rec {
      # /tmp/nix-7957-1/sox-14.0.0/src/ffmpeg.c:130: undefined reference to `avcodec_decode_audio2
      # That's why I'v added ffmpeg_svn
     ffmpeg = ffmpeg_svn;
-  };
-  */
+  } else null;
+  
 
   spoofax = import ../applications/editors/eclipse/plugins/spoofax {
     inherit fetchurl stdenv;
@@ -4188,7 +4252,7 @@ rec {
 
   xara = import ../applications/graphics/xara {
     inherit fetchurl stdenv autoconf automake libtool gettext cvs wxGTK
-      pkgconfig libxml2 zip libpng libjpeg;
+      pkgconfig libxml2 zip libpng libjpeg shebangfix perl freetype;
     inherit (gtkLibs) gtk;
   };
 
@@ -4280,6 +4344,16 @@ rec {
 
   ### GAMES
 
+  construoFun = lib.sumArgs (selectVersion ../games/construo) {
+    inherit stdenv fetchurl builderDefs
+      zlib;
+    inherit (xlibs) libX11 xproto;
+  };
+
+  construo = construoFun {
+    inherit mesa freeglut;
+    version = "0.2.2";
+  } null;
 
   exult = import ../games/exult {
     inherit fetchurl SDL SDL_mixer zlib libpng unzip;
diff --git a/pkgs/top-level/builder-defs.nix b/pkgs/top-level/builder-defs.nix
index 94f83b9c06fd..df7df3e71a0f 100644
--- a/pkgs/top-level/builder-defs.nix
+++ b/pkgs/top-level/builder-defs.nix
@@ -12,6 +12,7 @@ args: with args; with stringsWithDeps; with lib;
 		else if (hasSuffixHack ".tar.gz" s) || (hasSuffixHack ".tgz" s) then "tgz" 
 		else if (hasSuffixHack ".tar.bz2" s) || (hasSuffixHack ".tbz2" s) then "tbz2"
 		else if (hasSuffixHack ".zip" s) || (hasSuffixHack ".ZIP" s) then "zip"
+		else if (hasSuffixHack "-cvs-export" s) then "cvs-dir"
 		else (abort "unknown archive type : ${s}"));
 
 	defAddToSearchPath = FullDepEntry ("
@@ -175,6 +176,10 @@ args: with args; with stringsWithDeps; with lib;
 		unzip '${s}'
 		cd \"$( unzip -lqq '${s}' | tail -1 | 
 			sed -e 's@^\\(\\s\\+[-0-9:]\\+\\)\\{3,3\\}\\s\\+\\([^/]\\+\\)/.*@\\2@' )\"
+	" else if (archiveType s) == "cvs-dir" then "
+		cp -r '${s}' .
+		cd \$(basename ${s})
+		chmod u+rwX -R .
 	" else (abort "unknown archive type : ${s}"))+
 		(if args ? goSrcDir then args.goSrcDir else "")
 	) [minInit];