summary refs log tree commit diff
path: root/pkgs/development/interpreters
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters')
-rw-r--r--pkgs/development/interpreters/groovy/default.nix27
-rw-r--r--pkgs/development/interpreters/guile/1.9.nix4
-rw-r--r--pkgs/development/interpreters/maude/default.nix18
-rw-r--r--pkgs/development/interpreters/python-new/2.5/default.nix682
-rw-r--r--pkgs/development/interpreters/python-new/2.5/gentoo-python-2.5-compat.patch72
-rw-r--r--pkgs/development/interpreters/python-new/2.5/nix-find-sites-2.5.patch33
-rw-r--r--pkgs/development/interpreters/python-new/2.5/python.nix68
-rw-r--r--pkgs/development/interpreters/python/2.6/default.nix4
-rw-r--r--pkgs/development/interpreters/python/3.1/default.nix95
-rw-r--r--pkgs/development/interpreters/python/3.1/search-path.patch (renamed from pkgs/development/interpreters/python-new/2.5/search-path.patch)1
-rw-r--r--pkgs/development/interpreters/python/3.1/setup-hook.sh15
-rw-r--r--pkgs/development/interpreters/ruby/libs.nix399
12 files changed, 346 insertions, 1072 deletions
diff --git a/pkgs/development/interpreters/groovy/default.nix b/pkgs/development/interpreters/groovy/default.nix
new file mode 100644
index 00000000000..b7dc135215c
--- /dev/null
+++ b/pkgs/development/interpreters/groovy/default.nix
@@ -0,0 +1,27 @@
+args: with args;
+
+# at runtime, need jdk
+
+stdenv.mkDerivation rec {
+  name = "groovy-1.7.1";
+
+  src = fetchurl {
+    url = "http://dist.groovy.codehaus.org/distributions/groovy-binary-1.7.1.zip";
+    sha256 = "0a204f6835f07e6a079bd4761e70cd5e0c31ebc0c9eb293fda11dfb2d8bf137c";
+  };
+
+  installPhase = ''
+    ensureDir $out
+    rm bin/*.bat
+    mv * $out
+  '';
+
+  phases = "unpackPhase installPhase";
+
+  buildInputs = [unzip];
+
+  meta = {
+    description = "An agile dynamic language for the Java Platform";
+    homepage = http://groovy.codehaus.org/;
+  };
+}
diff --git a/pkgs/development/interpreters/guile/1.9.nix b/pkgs/development/interpreters/guile/1.9.nix
index ef3c9a16f56..94a396446f9 100644
--- a/pkgs/development/interpreters/guile/1.9.nix
+++ b/pkgs/development/interpreters/guile/1.9.nix
@@ -7,11 +7,11 @@
  else stdenv.mkDerivation)
 
 rec {
-  name = "guile-1.9.8";  # This is a beta release!
+  name = "guile-1.9.10";  # This is a beta release!
 
   src = fetchurl {
     url = "ftp://alpha.gnu.org/gnu/guile/${name}.tar.gz";
-    sha256 = "1b8n1dma3fbxf2j3hprl43xnwfs4knqp2g85s5gsq2j1grlmrb5g";
+    sha256 = "0vdvxkwm0xi65cw77a3yzjvwp3s66p2cpgqgqvp8w46r4amv1zpy";
   };
 
   buildInputs =
diff --git a/pkgs/development/interpreters/maude/default.nix b/pkgs/development/interpreters/maude/default.nix
index ccf0c53daec..c41c17c6e3c 100644
--- a/pkgs/development/interpreters/maude/default.nix
+++ b/pkgs/development/interpreters/maude/default.nix
@@ -2,34 +2,34 @@
 
 stdenv.mkDerivation rec {
   name = "maude-2.4";
-  
+
   meta = {
     homepage = "http://maude.cs.uiuc.edu/";
     description = "Maude -- a high-level specification language";
     license = "GPLv2";
   };
-  
+
   src = fetchurl {
     url = "http://maude.cs.uiuc.edu/download/current/Maude-2.4.tar.gz";
     sha256 = "0bydkf8fd5v267bfak4mm5lmm3vvnr6ir1jr7gimgyzqygdk0in2";
   };
-  
+
   fullMaude = fetchurl {
     url = "http://maude.cs.uiuc.edu/download/current/FM2.4/full-maude24.maude";
     sha256 = "9e4ebdc717dc968d0b6c1179f360e60b3a39ea8cecc1a7fa49f2105bbddc48c4";
   };
-  
+
   docs = fetchurl {
     url = "http://mirror.switch.ch/mirror/gentoo/distfiles/maude-2.3.0-extras.tar.bz2";
     sha256 = "0kd5623k1wwj1rk4b6halrm3sdvd9kbiwg1hi2c3qim1nlfdgl0d";
   };
-  
+
   buildInputs = [flex bison ncurses buddy tecla gmpxx libsigsegv makeWrapper];
-  
+
   configurePhase = ''./configure --disable-dependency-tracking --prefix=$out --datadir=$out/share/maude TECLA_LIBS="-ltecla -lncursesw" CFLAGS="-O3" CXXFLAGS="-O3"'';
-  
+
   doCheck = true;
-  
+
   postInstall =
   ''
     for n in $out/bin/*; do wrapProgram "$n" --suffix MAUDE_LIB ':' "$out/share/maude"; done
@@ -42,4 +42,6 @@ stdenv.mkDerivation rec {
     mv maude-2.3.0-extras/pdfs $out/share/doc/maude/pdf
     mv maude-2.3.0-extras/* $out/share/doc/maude/
   '';
+
+  maintainers = [ stdenv.lib.maintainers.simons ];
 }
diff --git a/pkgs/development/interpreters/python-new/2.5/default.nix b/pkgs/development/interpreters/python-new/2.5/default.nix
deleted file mode 100644
index d47a063f63b..00000000000
--- a/pkgs/development/interpreters/python-new/2.5/default.nix
+++ /dev/null
@@ -1,682 +0,0 @@
-# the nix-python way..
-
-# By default python looks in the $prefix/lib/python-$version/site-packages directory
-# and reads the .pth files to add the library paths to sys.path. 
-# Using PYHTONPATH is not enough because it doesn't make python read the .pth files
-# telling python where to find additional modules. PYTHONUSERBASE would suffice, but
-# it only supports *one* user location. That's why I've added the new env var NIX_PYTHON_SITES
-# containing a colon separated list of modules telling python where to look
-# for imports and also read the .pth files
-
-# TODO optimize py modules automatically (gentoo has a ebuild function called python_mod_optimize ?)
-
-p: # p = pkgs
-let 
-  inherit (builtins) isAttrs hasAttr;
-  inherit (p) lib fetchurl stdenv getConfig sourceFromHead;
-  inherit (p.composableDerivation) composableDerivation;
-  # withName prevents  nix-env -qa \* from aborting (pythonLibStub is a derivation but hasn't a name)
-  withName = lib.mapAttrs (n : v : if (isAttrs v && (!hasAttr "name" v)) then null else v);
-in
-  withName ( lib.fix ( t : { # t = this attrs
-
-    version = "2.5";
-    versionAttr = "python25";
-
-    # see pythonFull.
-    pythonMinimal = ( (import ./python.nix) {
-      name = "python-${t.version}";
-      inherit composableDerivation;
-      inherit (p) fetchurl stdenv lib bzip2 ncurses;
-      inherit  (p) zlib sqlite db4 readline openssl gdbm;
-    });
-
-    # python wiht all features enabled.
-    # if you really need a stripped version we should add __overides
-    # so that you can replace it the way it's done in all-packages.nix
-    pythonFull = t.pythonMinimal.merge {
-     name = "python-${t.version}-full";
-      cfg = {
-        zlibSupport = true;
-        sqliteSupport = true;
-        db4Support = true;
-        readlineSupport = true;
-        opensslSupport = true;
-        gdbmSupport = true;
-      };
-    };
-
-    # python wrapper. You should install this
-    # It automatically wrapps python adding NIX_PYTHON_SITES so that you can use all the libraries
-    # when running the wrapper from the console.
-    # configuration:
-    # python25 = { wrapperLibs = let p = pkgs.python25New; in [ p.wxPython25 p.name p.name2 ]; }; 
-    # python25 = { wrapperLibs = [ "all" ]; }; # install all libraries provided by this file
-    # TODO: does pydoc find stuff from libraries?
-    pythonWrapper = stdenv.mkDerivation {
-      name = "${t.pythonFull.name}-wrapper";
-      # [1] using full because I feel installing various versions isn't any better
-      phases = "buildPhase";
-      buildInputs = [ p.makeWrapper ] 
-        ++ lib.concatMap (x: if x == "all" then t.all else [x]) (getConfig [t.versionAttr "wrapperLibs"] []);
-
-      buildPhase = ''
-        ensureDir $out/bin
-
-        for prog in python pydoc; do
-          echo ========= prog $prog
-          cat >> $out/bin/$prog << EOF
-          export NIX_PYTHON_SITES=\$NIX_PYTHON_SITES:$NIX_PYTHON_SITES
-          exec ${t.pythonFull}/bin/$prog "\$@"
-        EOF
-          echo chmod +x
-          chmod +x $out/bin/$prog
-        done
-      '';
-    };
-
-    ### basic support for installing python libraries
-    # set pyCheck to a small python snippet importing all modules of this python
-    # lib to verify it works
-    # You can define { python25 { debugCmd = "DISPLAY=:0.0 pathtoxterm"; }
-    # in your config for easier debugging..
-    pythonLibStub = composableDerivation {} {
-        propagatedBuildInputs = [ t.pythonFull ]; # see [1]
-        postPhases = ["postAll"]; # using new name so that you dno't override this phase by accident
-        # ensure phases are run or a non zero exit status is caused (if there are any syntax errors such as eval "while")
-        postAll = ''
-          ensureDir $out/nix-support
-          echo "export NIX_PYTHON_SITES=\"$out:\$NIX_PYTHON_SITES\"" >> $out/nix-support/setup-hook 
-          # run check
-          if [ -n "$pyCheck" ]; then
-             ( . $out/nix-support/setup-hook
-                 mkdir $TMP/new-test; cd $TMP/new-test
-                 echo PYTHONPATH=$PYTHONPATH
-                 echo NIX_PYTHON_SITES=$NIX_PYTHON_SITES
-                 script="$(echo -e "import sys\nprint sys.path\npyCheck\nprint \"check ok\"")"
-                 script="''${script/pyCheck/$pyCheck}"
-                 echo "check script is"; echo "$script"
-                 echo "$script" | python || { ${ getConfig [t.versionAttr "debugCmd"] ":"} ; echo "pycheck failed"; exit 1; }
-             )
-           fi'';
-        passthru = {
-          libPython = t.version; # used to find all python libraries fitting this version (-> see name all below)
-        };
-        mergeAttrBy = {
-          postPhases = lib.concat;
-          pyCheck = x : y : "${x}\n${y}";
-        };
-    };
-
-    # same as pythonLibStub, but runs default python setup.py actions
-    pythonLibSetup = t.pythonLibStub.merge {
-      buildPhase = ''python setup.py $setupFlags build'';
-      installPhase = ''python setup.py $setupFlags install --prefix=$out'';
-      mergeAttrBy = {
-        setupFlags = lib.concat;
-      };
-    };
-
-    ### python libraries:
-
-    wxPythonBaseFun = (t.pythonLibSetup.merge (a :
-      let inherit (a.fixed.passthru) wxGTK;  inherit (a.fixed) version; in
-        {
-          buildInputs = [p.pkgconfig wxGTK (wxGTK.gtk)];
-          setupFlags=["WXPORT=gtk2 NO_HEADERS=1 BUILD_GLCANVAS=0 BUILD_OGL=0 UNICODE=1"];
-          configurePhase = ''cd wxPython'';
-          pyCheck = "import wx";
-          name = "wxPython-${version}";
-          meta = { # 2.6.x and 2.8.x
-            description="A blending of the wxWindows C++ class library with Python";
-            homepage="http://www.wxpython.org/";
-            license="wxWinLL-3";
-          };
-        }
-    )).merge;
-
-    wxPython26 = t.wxPythonBaseFun {
-      version = "2.6.3.3";
-      passthru = { wxGTK = p.wxGTK26; };
-      src = fetchurl {
-        url = mirror://sourceforge/wxpython/wxPython-src-2.6.3.3.tar.bz2;
-        md5 = "66b9c5f8e20a9505c39dab1a1234daa9";
-      };
-    };
-
-    # compilation errors
-    #wxPython28 = t.wxPythonBaseFun {
-    #  version = "2.8.9.1";
-    #  passthru = { wxGTK = wxGTK28; };
-    #  src = fetchurl {
-    #    url = mirror://sourceforge.net/sourceforge/wxpython/wxPython-src-2.8.9.1.tar.bz2;
-    #    sha256 = "1yp7l2c2lfpwc2x5lk5pawmzq2bqajzhbzqs1p10jd211slwhjsq";
-    #  };
-    #};
-
-    # couldn't download source
-    #foursuite = pythonLibSetup.merge {
-    #  version = "1.0.2";
-    #  name = "4suite-${version}";
-    #  src = fetchurl {
-    #    url = "mirror://sourceforge/foursuite/4Suite-XML-${version}.tar.bz2";
-    #    sha256 = "0g5cyqxhhiqnvqk457k8sb97r18pwgx6gff18q5296xd3zf4cias";
-    #  };
-    #};
-
-    #bsddb3 = t.pythonLibSetup.merge {
-    #  version = "1.0.2";
-    #  name = "bsddb3-4.5.0";
-    #  setupFlags = ["--berkeley-db=${p.db4}"];
-    #  src = fetchurl {
-    #    url = mirror://sourceforge/pybsddb/bsddb3-4.5.0.tar.gz;
-    #    sha256 = "1h09kij32iikr9racp5p7qrb4li2gf2hs0lyq6d312qarja4d45v";
-    #  };
-    #};
-
-  # pyglib contains import reference to pygtk! So its best to install both at
-  # the same time. I don't want to patch this.
-  # You can install both into different store paths, however you won't be able
-  # to import gtk because after pygtk.require sys.path contains to 
-  # /nix/store/*-pygobject/**/gtk-2.0 (should be pygtk/**/gtk-2.0 instead)
-
-  # gnome python is added here as well because it is loaded after
-  # pygtk.require('2.0') as well. So the pygtk lib path is added to sys.path only.
-  # We could make extra derivations for that. But on the other hand that would require
-  # patching pygtk to another */gtk2.0 directory to sys.path for each NIX_PYTHON_SITES.
-  # If you install dozens of python packages this might be bloat.
-  # So  I think the overhead of installing these packages into the same store path should be prefered.
-  pygtkBaseFun = (t.pythonLibStub.merge (a :
-    let inherit (a.fixed.passthru) glib gtk; in lib.mergeAttrsByFuncDefaults [
-    {
-      unpackPhase = "true";
-      configurePhase = "true";
-      patchPhase = "true";
-      buildPhase = "true";
-      installPhase = ''
-        unset unpackPhase
-        unset configurePhase
-        unset buildPhase
-        unset installPhase
-        export G2CONF="--enable-gconf" # hack, should be specified somewhere else
-        for srcs in $pygobjectSrc $pygtkSrc $pySrcs; do
-          cd $TMP; mkdir "$(basename $srcs)"; cd "$(basename $srcs)"; unpackFile $srcs
-          cd *
-          configurePhase; buildPhase; installPhase
-            addToEnv $out # pygtk has to know about pygobject
-            PATH=$out/bin:$PATH # gnome-python nees pygtk-codegen
-        done
-      '';
-      mergeAttrBy = {
-        phases = lib.concat;
-        pySrcs = lib.concat;
-        pyCheck = x : y : "${x}\n${y}";
-      };
-    }
-    # pygobject
-    {
-      flags = {
-        libffi = { buildInputs = [p.libffi];};
-      };
-      cfg = {
-        libffiSupport = true;
-      };
-      pyCheck = "import gobject";
-      passthru = {
-        pygobjectVersion = "2.15.4";
-      };
-      pygobjectSrc = fetchurl {
-        url = "http://ftp.gnome.org/pub/GNOME/sources/pygobject/2.15/pygobject-2.15.4.tar.bz2";
-        sha256 = "19vxczy01xyss2f5aqf93al3jzrxn50srgzkl4w7ivdz50rnjin7";
-      };
-      buildInputs = [ p.glibc ]; # requires ld-config
-
-      propagatedBuildInputs = [ p.pkgconfig glib gtk ];
-    }
-    # pygtk
-    {
-      propagatedBuildInputs = [ t.pycairo ];
-      flags = {
-        cairo = {
-          propagatedBuildInputs = [ p.cairo ];
-          pyCheck = "import cairo";
-        }; # TODO add pyCheck
-        glade = {
-          propagatedBuildInputs = [ p.gnome.libglade ];
-          pyCheck = "from gtk import glade";
-        };
-      };
-      pyCheck = ''
-        import pygtk; pygtk.require('2.0')
-        import gtk
-        import gconf
-      '';
-      cfg = {
-        gladeSupport = true;
-        cairoSupport = true;
-      };
-    }
-    # gnome-python
-    {
-      #name = "gnome-python-2.22.3";
-      buildInputs = [ p.pkgconfig  p.gnome.libgnome ];
-      propagatedBuildInputs = [ p.gnome.GConf ];
-      pySrcs = [(fetchurl {
-        url = http://ftp.gnome.org/pub/GNOME/sources/gnome-python/2.22/gnome-python-2.22.3.tar.bz2;
-        sha256 = "0ndm3cns9381mm6d8jxxfd931fk93nqfcszy38p1bz501bs3wxm1";
-      })];
-    }
-    # gnome-desktop or gnome-python-extras desktop containing egg.trayicon needed by istanbul
-    {
-      # name = "gnome-desktop-2.24.0";
-      buildInputs = [ p.pkgconfig ];
-      propagatedBuildInputs = [ p.gnome.GConf ];
-      pySrcs = [(fetchurl {
-        url = http://ftp.gnome.org/pub/GNOME/sources/gnome-python-desktop/2.24/gnome-python-desktop-2.24.0.tar.bz2;
-        sha256 = "16514gmv42ygjh5ggzsis697m73pgg7ydz11h487932kkzv4mmlg";
-      })];
-      pyCheck = "import egg.trayicon";
-    }
-    {
-      # name = "gnome-python-extras-2.13";
-      buildInputs = [ p.pkgconfig ];
-      propagatedBuildInputs = [ p.gnome.GConf ];
-      pySrcs = [(fetchurl {
-        url = http://ftp.gnome.org/pub/GNOME/sources/gnome-python-extras/2.13/gnome-python-extras-2.13.3.tar.gz;
-        sha256 = "0vj0289snagrnvbmrs1camwmrc93xgpw650iavj6mq7a3wqcra0b";
-      })];
-    }
-  ]));
-
-  #pygtk213 = t.pygtkBaseFun {
-  #  version = "2.13.0";
-  #  pygtkSrc = fetchurl {
-  #    url = http://ftp.gnome.org/pub/GNOME/sources/pygtk/2.13/pygtk-2.13.0.tar.bz2;
-  #    sha256 = "0644ll48hi8kwfng37b0k5qgb0fbiy298r7sxd4j7ag7lj4bgic0";
-  #  };
-  #  passthru = { inherit (p.gtkLibs) glib gitk; };
-  #  pyCheck = ''
-  #    import pygtk; pygtk.require('2.0')
-  #    import gtk
-  #  '';
-  #};
-
-  pygtk212 = t.pygtkBaseFun.merge (a : {
-    version = "2.12.1";
-    name = "pygobject-${a.fixed.passthru.pygobjectVersion}-and-pygtk-${a.fixed.version}";
-    pygtkSrc = fetchurl { 
-      url = http://ftp.acc.umu.se/pub/GNOME/sources/pygtk/2.12/pygtk-2.12.1.tar.bz2;
-      sha256 = "0gg13xgr7y9sppw8bdys042928nc66czn74g60333c4my95ys021";
-    };
-    passthru = { inherit (p.gtkLibs) glib gtk; };
-    pyCheck = ''
-      import pygtk; pygtk.require('2.0')
-      import gtk
-    '';
-  });
-
-  pycairo = t.pythonLibStub.merge {
-    name = "pycairo-1.8.0";
-    buildInputs = [ p.pkgconfig p.cairo p.x11 ];
-    src = fetchurl {
-      url = http://www.cairographics.org/releases/pycairo-1.6.4.tar.gz;
-      md5 = "2c3aa21e6e610321498f9f81f7b625df";
-    };
-    pyCheck = "import cairo";
-  };
-
-  gstPython = t.pythonLibStub.merge {
-    name = "gst-python-0.10.13";
-    src = fetchurl {
-      url = http://gstreamer.freedesktop.org/src/gst-python/gst-python-0.10.13.tar.gz;
-      sha256 = "0yin36acr5ryfpmhlb4rlagabgxrjcmbpizwrc8csadmxzmigb86";
-    };
-    buildInputs =[ p.flex2535 p.pkgconfig];
-    flags = {
-      pluginsGood = { propagatedBuildInputs = [p.gst_all.gstPluginsGood]; };
-      ffmpeg = { propagatedBuildInputs = [p.gst_all.gstFfmpeg]; };
-    };
-    cfg = {
-      pluginsGoodSupport = true;
-      ffmpegSupport = true;
-    };
-    propagatedBuildInputs = [
-          t.pygtk212
-          p.gst_all.gstreamer
-          p.gst_all.gstPluginsBase
-          p.gst_all.gnonlin
-        ];
-    # this check fails while building: It succeeds running as normal user
-    /*
-    Traceback (most recent call last):
-      File "<stdin>", line 5, in <module>
-      File "/nix/store/hnc51h035phlk68i1qmr5a8kc73dfvhp-gst-python-0.10.13/lib/python2.5/site-packages/gst-0.10/gst/__init__.py", line 170, in <module>
-        from _gst import *
-    RuntimeError: can't initialize module gst: Error re-scanning registry , child terminated by signal
-    */
-    pyCheck = ''
-      #import pygst
-      #pygst.require('0.10')
-      #import gst
-    '';
-    meta = {
-      description = "python gstreamer bindings";
-      homepage = http://gstreamer.freedesktop.org/modules/gst-python.html;
-      license = "GPLv2.1";
-    };
-  };
-
-  pygoocanvas = t.pythonLibStub.merge {
-    src = p.fetchurl {
-      url = http://download.berlios.de/pygoocanvas/pygoocanvas-0.10.0.tar.gz;
-      sha256 = "0pxznzdscbhvn8102vrqy3r1g6ss4sgs8wwy6y4c5g26rrp7l55d";
-    };
-    propagatedBuildInputs = [ t.pygtk212 ];
-    buildInputs = [ p.pkgconfig p.goocanvas ];
-    pyCheck = "import goocanvas";
-    name = "pygoocanvas-0.10.0";
-    meta = {
-      description = "";
-      homepage = http://developer.berlios.de/projects/pygoocanvas/;
-      license = "LGPL";
-    };
-  };
-
-  setuptools = t.pythonLibSetup.merge {
-    name = "setuptools-0.6c9";
-    postUnpack = ''
-      ensureDir $out/lib/python2.5/site-packages
-      export PYTHONPATH="$out/lib/python${t.version}/site-packages" # shut up installation script
-
-      # setuptools tries to write to the installation location, so ensure it exists
-      # and it requires PYTHONPATH to be set to that location (maybe its better to patch it. - I'm lazy)
-      ensureDir $out/nix-support
-      cat >> $out/nix-support/setup-hook << EOF
-      ensureDir \$out/lib/python${t.version}/site-packages
-      export PYTHONPATH="\$out/lib/python${t.version}/site-packages" # shut up installation script
-      EOF
-    '';
-    src = p.fetchurl {
-      url = "http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c9.tar.gz";
-      md5 = "3864c01d9c719c8924c455714492295e";
-    };
-  };
-
-  zopeInterface = t.pythonLibSetup.merge rec {
-    version = "3.3.0";
-    name = "zope.interface-${version}";
-    buildInputs = [ t.setuptools ];
-    src = p.fetchurl {
-      url = "http://www.zope.org/Products/ZopeInterface/3.3.0/zope.interface-${version}.tar.gz";
-      sha256 = "0xahg9cmagn4j3dbifvgzbjliw2jdrbf27fhqwkdp8j80xpyyjf0";
-    };
-    pyCheck = "from zope.interface import Interface, Attribute";
-  };
-
-  dbusPython = t.pythonLibStub.merge rec {
-    version = "0.83.0";
-    name = "dbus-python-0.83.0";
-    buildInputs = [ p.pkgconfig ];
-    propagatedBuildInputs = [ p.dbus p.dbus_glib ];
-    src = fetchurl {
-      url = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-0.83.0.tar.gz";
-      sha256 = "14b1fwq9jyvg9qbbrmpk1264s9shm9n638hsgmkh9fn2lmd1vpc9";
-    };
-    pyCheck = "import dbus";
-    meta = { 
-      description = "";
-      homepage = http://freedesktop.org/wiki/Software/DBusBindings;
-      license = [ "GPLv2" "AFL-2.1" ];
-    };
-  };
-
-  pythonXlib = t.pythonLibSetup.merge {
-    name = "python-xlib-0.14";
-    src = fetchurl {
-      url = http://puzzle.dl.sourceforge.net/sourceforge/python-xlib/python-xlib-0.14.tar.gz;
-      sha256 = "1sv0447j0rx8cgs3jhjl695p5pv13ihglcjlrrz1kq05lsvb0wa7";
-    };
-    meta = {
-      description = "tries to be a fully functional X client library beeing entirely written in python";
-      license = [ "GPL" ];
-      homepage = http://python-xlib.sourceforge.net/;
-    };
-  };
-
-  mechanize = t.pythonLibSetup.merge {
-    name = "mechanize-0.1.11";
-    buildInputs = [ t.setuptools ];
-    src = fetchurl {
-      url = http://wwwsearch.sourceforge.net/mechanize/src/mechanize-0.1.11.tar.gz;
-      sha256 = "1h62mwy4iz09jqz17nrb9j8y0djd500zdfqwrz9xmdwqzqwixkj2";
-    };
-    meta = {
-      description = "Stateful programmatic web browsing in Python, after Andy Lester's Perl module WWW::Mechanize";
-      homepage = http://wwwsearch.sourceforge.net/mechanize/;
-      license = ["BSD" "ZPL 2.1"];
-    };
-    pyCheck = "from mechanize import Browser";
-  };
-
-  pexpect = t.pythonLibSetup.merge {
-    name = "pexpect-2.3";
-    src = fetchurl {
-      url = mirror://sourceforge/pexpect/pexpect-2.3.tar.gz;
-      sha256 = "0x8bfjjqygriry1iyygm5048ykl5qpbpzqfp6i8dhkslm3ryf5fk";
-    };
-    meta = {
-      description = "tcl expect as python library";
-      homepage = http://www.noah.org/wiki/Pexpect;
-      license = "MIT";
-    };
-  };
-
-  # unmantained ? (gentoo/ debian even do have python-3* patches)
-  pyxml = t.pythonLibSetup.merge {
-    name = "pyxml-0.8.4";
-    src = fetchurl {
-      url = mirror://sourceforge/pyxml/PyXML-0.8.4.tar.gz;
-      sha256 = "04wc8i7cdkibhrldy6j65qp5l75zjxf5lx6qxdxfdf2gb3wndawz";
-    };
-    meta = { 
-      description = "python xml package";
-      homepage = http://sourceforge.net/projects/pyxml/;
-      license = "Python License"; # (CNRI Python License);
-    };
-  };
-
-  /*
-  # untested
-  libxml2dom = t.pythonLibSetup.merge {
-    name = "libxml2dom-0.4.7";
-    buildInputs = [ p.libxml2 ];
-    src = fetchurl {
-      url = http://www.boddie.org.uk/python/downloads/libxml2dom-0.4.7.tar.gz;
-      sha256 = "0zh68adxn4l4b6q99jl1pi00171ah2marbbs8qfww4wpjavfw844";
-    };
-    pyCheck = "import libxml2dom.svg";
-    meta = {
-      description = "provides a traditional DOM wrapper around the Python bindings for libxml2";
-      homepage = http://www.boddie.org.uk/python/libxml2dom.html;
-      license = "LGPL3+";
-    };
-  };
-  */
-
-  fpconst = t.pythonLibSetup.merge {
-    name = "fpconst-0.7.3";
-    pyCheck = "import fpconst";
-    src = fetchurl {
-      url="mirror://sourceforge/rsoap/fpconst-0.7.3.tar.gz";
-      sha256 = "1a5c2e4a1ecefd9981988cea15068699eccbc55e350af3471e782083d390c727";
-    };
-    meta = {
-      description="Python Module for handling IEEE 754 floating point special values";
-      homepage="http://chaco.bst.rochester.edu:8080/statcomp/projects/RStatServer/fpconst/";
-      license = "GPLv2";
-    };
-  };
-
-  soappy = t.pythonLibSetup.merge {
-    name = "soappy-0.12";
-    pyCheck = "from SOAPpy import WSDL";
-    propagatedBuildInputs = [ t.fpconst ];
-    # REGION AUTO UPDATE:   { name="pywebcvs"; type = "svn"; url = "https://pywebsvcs.svn.sourceforge.net/svnroot/pywebsvcs/trunk"; }
-    src = sourceFromHead "pywebcvs-1493.tar.gz"
-                 (fetchurl { url = "http://mawercer.de/~nix/repos/pywebcvs-1493.tar.gz"; sha256 = "54e9faca87d8a59a22e06374b8416555cf76d3f411fa2be168ad542c2d8e6fc1"; });
-    # END
-    postUnpack = "sourceRoot=$sourceRoot/SOAPpy";
-    /* The release is buggy. I can't get list of dedicated netboots from ovh ?
-    src = fetchurl {
-      url = "http://switch.dl.sourceforge.net/sourceforge/pywebsvcs/SOAPpy-0.12.0.tar.gz";
-      sha256 = "02a0wpir0gl0n9cl7a5hxliwsywvcw847i5in7i14i57kk6dl7rd";
-    };
-    patches = [ ./gentoo-python-2.5-compat.patch ];
-    */
-    meta = {
-      description = "SOAP implementation for Python";
-      homepage="http://pywebsvcs.sourceforge.net/";
-      license = "BSD";
-    };
-  };
-
-  sqlalchemy05 = t.pythonLibSetup.merge {
-    name = "sqlalchemy-0.5.5-svn-trunk";
-    pyCheck = ''
-      import sqlalchemy
-      import sqlalchemy.orm
-      import sqlalchemy.orm.collections
-    '';
-    # REGION AUTO UPDATE:   { name="sqlalchemy05"; type = "svn"; url="http://svn.sqlalchemy.org/sqlalchemy/trunk"; }
-    src = sourceFromHead "sqlalchemy05-6076.tar.gz"
-                 (fetchurl { url = "http://mawercer.de/~nix/repos/sqlalchemy05-6076.tar.gz"; sha256 = "f35e6475996f7591d49affbc935c40b4c93e4cdaff86a50af9321774de2025b2"; });
-    # END
-    meta = { 
-      description = "sql orm wrapper for python";
-      homepage = http://www.sqlalchemy.org;
-      license = "MIT";
-    };
-    postPhases = ["installMigration"];
-
-    buildInputs = [ t.setuptools /* required for migration lib */ ];
-
-    /* impure ? I don't care right now
-      Reading http://pypi.python.org/simple/decorator/
-      Reading http://www.phyast.pitt.edu/~micheles/python/documentation.html
-      Best match: decorator 3.0.1
-      Downloading http://pypi.python.org/packages/source/d/decorator/decorator-3.0.1.tar.gz#md5=c4130a467be7f71154976c84af4a04c6
-
-      iElectric: column.alter could be broken ..
-    */
-    installMigration =
-    let src = {
-      # REGION AUTO UPDATE:   { name="sqlalchemyMigrate"; type = "svn"; url="http://sqlalchemy-migrate.googlecode.com/svn/trunk"; }
-      src = sourceFromHead "sqlalchemyMigrate-569.tar.gz"
-                   (fetchurl { url = "http://mawercer.de/~nix/repos/sqlalchemyMigrate-569.tar.gz"; sha256 = "3b076b33aa13bb2923e719489fd7988a5660bd8d8e87dac03f453b510e2695f4"; });
-      # END
-    }.src; in
-    ''
-      cd $TMP
-      mkdir migrate
-      cd migrate
-      unpackFile ${src}
-      cd *
-      python setup.py $setupFlags build
-      python setup.py $setupFlags install --prefix=$out
-      echo "import migrate.changeset.schema" | python
-    '';
-
-      /*
-
-      mv $out/lib/python2.5/site-packages/sqlalchemy_migrate-0.5.5.dev_r0-py2.5.egg/* \
-         $out/lib/python2.5/site-packages
-         */
-  };
-
-  /* doesn't work on its own, its included in sqlalchemy05 for that reason.
-  sqlalchemyMigrate = t.pythonLibSetup.merge {
-    name = "sqlalchemy-migrate-svn";
-    buildInputs = [ t.setuptools t.sqlalchemy05 ];
-    pyCheck = ''
-      import migrate
-      import migrate.changeset
-      import migrate.changeset.schema
-    '';
-    # REGION AUTO UPDATE:   { name="sqlalchemyMigrate"; type = "svn"; url="http://sqlalchemy-migrate.googlecode.com/svn/trunk"; }
-    src = sourceFromHead "sqlalchemyMigrate-569.tar.gz"
-                 (fetchurl { url = "http://mawercer.de/~nix/repos/sqlalchemyMigrate-569.tar.gz"; sha256 = "2bfbd41e31c9dce4434ca4cb209338ccef1fd0394999b18111be838b79db703b"; });
-    # END
-    meta = { 
-      description = "sqlalchemy database versioning and scheme migration";
-      homepage = http://packages.python.org/sqlalchemy-migrate/download.html;
-      license = "MIT";
-    };
-  };
-  */
-
-  ### python applications
-
-  pythonExStub = composableDerivation {} {
-    buildInputs = [p.makeWrapper];
-    postPhases = ["wrapExecutables"];
-    propagatedBuildInputs = [ t.pythonFull ]; # see [1]
-
-    # adding $out to NIX_PYTHON_SITES because some of those executables seem to come with extra libs
-    wrapExecutables = ''
-      for prog in $out/bin/*; do
-      wrapProgram "$prog" \
-                   --set NIX_PYTHON_SITES "$NIX_PYTHON_SITES:$out" \
-                   --set PYTHONPATH "\$PYTHONPATH:$out"
-      done
-    '';
-  };
-
-  pitivi = t.pythonExStub.merge {
-    name = "pitivi-0.11.2";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/sources/pitivi/0.11/pitivi-0.11.2.tar.bz2;
-      sha256 = "0d3bqgfp60qm5bf904k477bd8jhxizj1klv84wbxsz9vhjwx9zcl";
-    };
-    buildInputs = [ t.pygtk212 t.gstPython t.pygoocanvas t.zopeInterface t.dbusPython
-      p.intltool p.gettext p.makeWrapper p.gettext ];
-    # why do have to add gtk-2.0 explicitely?
-    meta = {
-        description = "A non-linear video editor using the GStreamer multimedia framework";
-        homepage = http://www.pitivi.org/wiki/Downloads;
-        license = "LGPL-2.1";
-    };
-    postInstall = ''
-      # set the python which has been used to compile this package
-      sed -i -e 's@#!.*@#!'"$(which python)@" $out/bin/pitivi
-    '';
-  };
-
-  istanbul = t.pythonExStub.merge {
-    name = "istanbul-0.2.2";
-    buildInputs = [ t.pygtk212 t.gstPython /*t.gnomePython (contained in gtk) t.gnomePythonExtras */ t.pythonXlib
-      p.perl p.perlXMLParser p.gettext];
-    # gstPython can't be imported when building (TODO).. so just run true instead of python
-    configurePhase = ''./configure --prefix=""''; # DESTDIR is set below
-    postUnpack = ''
-      sed -i 's/$PYTHON/true/' istanbul-0.2.2/configure
-      mkdir -p $out/bin
-      export DESTDIR="$out"
-    '';
-    src = fetchurl {
-      url = http://zaheer.merali.org/istanbul-0.2.2.tar.bz2;
-      sha256 = "1mdc82d0xs9pyavs616bz0ywq3zwy3h5y0ydjl6kvcgixii29aiv";
-    };
-    postInstall = "chmod a+x $out/bin/istanbul";
-    meta = {
-      description = "A non-linear video editor using the GStreamer multimedia framework";
-      homepage = http://live.gnome.org/Istanbul;
-      license = "LGPLv2";
-    };
-  };
-
-  all = lib.filter (x:
-                   (isAttrs x)
-                && ((lib.maybeAttr "libPython" false x) == t.version)
-                && (lib.maybeAttr "name" false x != false) # don't collect pythonLibStub etc
-        ) (lib.flattenAttrs (removeAttrs t ["all"])); # nix is not yet lazy enough, so I've to remove all first
-}))
diff --git a/pkgs/development/interpreters/python-new/2.5/gentoo-python-2.5-compat.patch b/pkgs/development/interpreters/python-new/2.5/gentoo-python-2.5-compat.patch
deleted file mode 100644
index 60c65faf015..00000000000
--- a/pkgs/development/interpreters/python-new/2.5/gentoo-python-2.5-compat.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff --git a/SOAPpy/Client.py b/SOAPpy/Client.py
-index 7437049..13ba160 100644
---- a/SOAPpy/Client.py
-+++ b/SOAPpy/Client.py
-@@ -40,11 +40,11 @@
- ################################################################################
- """
- 
-+from __future__ import nested_scopes
-+
- ident = '$Id: Client.py,v 1.27 2005/02/21 20:27:09 warnes Exp $'
- from version import __version__
- 
--from __future__ import nested_scopes
--
- #import xml.sax
- import urllib
- from types import *
-diff --git a/SOAPpy/GSIServer.py b/SOAPpy/GSIServer.py
-index 48c1303..c7ad13d 100644
---- a/SOAPpy/GSIServer.py
-+++ b/SOAPpy/GSIServer.py
-@@ -43,11 +43,11 @@ GSIServer - Contributed by Ivan R. Judson <judson@mcs.anl.gov>
- ################################################################################
- """
- 
-+from __future__ import nested_scopes
-+
- ident = '$Id: GSIServer.py,v 1.5 2005/02/15 16:32:22 warnes Exp $'
- from version import __version__
- 
--from __future__ import nested_scopes
--
- #import xml.sax
- import re
- import socket
-diff --git a/SOAPpy/Server.py b/SOAPpy/Server.py
-index b28153d..76ce0b4 100644
---- a/SOAPpy/Server.py
-+++ b/SOAPpy/Server.py
-@@ -40,11 +40,11 @@
- ################################################################################
- """
- 
-+from __future__ import nested_scopes
-+
- ident = '$Id: Server.py,v 1.21 2005/02/15 16:32:22 warnes Exp $'
- from version import __version__
- 
--from __future__ import nested_scopes
--
- #import xml.sax
- import re
- import socket
-diff --git a/SOAPpy/Types.py b/SOAPpy/Types.py
-index 6cc5456..62d44b2 100644
---- a/SOAPpy/Types.py
-+++ b/SOAPpy/Types.py
-@@ -33,11 +33,11 @@
- ################################################################################
- """
- 
-+from __future__ import nested_scopes
-+
- ident = '$Id: Types.py,v 1.19 2005/02/22 04:29:43 warnes Exp $'
- from version import __version__
- 
--from __future__ import nested_scopes
--
- import UserList
- import base64
- import cgi
diff --git a/pkgs/development/interpreters/python-new/2.5/nix-find-sites-2.5.patch b/pkgs/development/interpreters/python-new/2.5/nix-find-sites-2.5.patch
deleted file mode 100644
index c856429b630..00000000000
--- a/pkgs/development/interpreters/python-new/2.5/nix-find-sites-2.5.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/site.py    2008-11-19 14:48:49.000000000 +0100
---- Python-2.5-orig/Lib/site.py	2008-05-10 19:36:24.000000000 +0200
-+++ Python-2.5/Lib/site.py	2008-11-17 05:37:02.000000000 +0100
-@@ -390,6 +390,20 @@
-     except ImportError:
-         pass
- 
-+def addnixsitepackages(known_paths):
-+    """
-+    used to add multiple site packages for /nix/store to sys.path also
-+    evaluating the .pth files (http://docs.python.org/library/site.html#module-site)
-+    """
-+    env_nix_sites = os.environ.get("NIX_PYTHON_SITES", None)
-+    if env_nix_sites:
-+      for path in env_nix_sites.split(":"):
-+        
-+          NIX_SITE = os.path.join(path, "lib",
-+                                 "python" + sys.version[:3],
-+                                 "site-packages")
-+          addsitedir(NIX_SITE, known_paths)
-+    return known_paths
- 
- def main():
-     abs__file__()
-@@ -400,6 +414,7 @@
-     paths_in_sys = addsitepackages(paths_in_sys)
-     if sys.platform == 'os2emx':
-         setBEGINLIBPATH()
-+    paths_in_sys = addnixsitepackages(paths_in_sys)
-     setquit()
-     setcopyright()
-     sethelper()
-
diff --git a/pkgs/development/interpreters/python-new/2.5/python.nix b/pkgs/development/interpreters/python-new/2.5/python.nix
deleted file mode 100644
index 932d29b4084..00000000000
--- a/pkgs/development/interpreters/python-new/2.5/python.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-args: with args;
-let inherit (lib) optional prepareDerivationArgs concatStringsSep fix;  in
-
-composableDerivation {
-  mkDerivation = attr : stdenv.mkDerivation ( attr // {
-      C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") attr.buildInputs);
-      LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") attr.buildInputs);
-    });
-  } {
-
-    postPhases = ["runCheck"];
-
-    mergeAttrBy = { pyCheck = x : y : "${x}\n${y}"; };
-
-    # should be last because it sources setup-hook of this package itself
-    runCheck = ''
-      PATH=$out/bin:$PATH; . $out/nix-support/setup-hook;
-      echo -e "import sys\n$pyCheck\nprint \"import pyCheck ok\"" | python
-    '';
-
-    inherit (args) name;
-
-    # everything can be overriden by composedArgsAndFun additional args 
-    # assuming that if a module can be loaded that it does also work..
-    flags = {
-      zlib = { buildInputs = [ zlib ]; pyCheck = "import zlib"; };
-      gdbm = { buildInputs = [ gdbm ]; pyCheck = "import gdbm"; };
-      sqlite = { buildInputs = [ sqlite ]; pyCheck = "import sqlite3"; };
-      db4 = { buildInputs = [ db4 ]; }; # TODO add pyCheck
-      readline = { buildInputs = [ readline ]; }; # doesn't work yet (?)
-      openssl = { buildInputs = [ openssl ]; pyCheck ="import socket\nsocket.ssl"; };
-    };
-
-    src = fetchurl {
-      url = http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tar.bz2;
-      sha256 = "0gh8bvs56vdv8qmlfmiwyczjpldj0y3zbzd0zyhyjfd0c8m0xy7j";
-    };
-
-    configureFlags = ["--enable-shared" "--with-wctype-functions"];
-
-    buildInputs =
-      optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
-      [bzip2 ncurses];
-
-    patches = [
-      # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
-      ./search-path.patch
-
-
-      # make python know about libraries reading .pth files
-      # http://docs.python.org/library/site.html#module-site
-      # TODO: think about security (see the other code contained in site.py)
-      ./nix-find-sites-2.5.patch
-    ];
-
-    preConfigure = ''
-      # Purity.
-      for i in /usr /sw /opt /pkg; do 
-        substituteInPlace ./setup.py --replace $i /no-such-path
-      done
-      export NIX_LDFLAGS="$NIX_LDFLAGS -lncurses"
-    '';
-    
-    postInstall = "
-      rm -rf $out/lib/python2.5/test
-    ";
-
-  }
diff --git a/pkgs/development/interpreters/python/2.6/default.nix b/pkgs/development/interpreters/python/2.6/default.nix
index 2d607926a23..88e9c32a808 100644
--- a/pkgs/development/interpreters/python/2.6/default.nix
+++ b/pkgs/development/interpreters/python/2.6/default.nix
@@ -22,7 +22,7 @@ with stdenv.lib;
 let
 
   majorVersion = "2.6";
-  version = "${majorVersion}.4";
+  version = "${majorVersion}.5";
 
   buildInputs =
     optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
@@ -48,7 +48,7 @@ stdenv.mkDerivation ( {
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
-    sha256 = "dad8d5575144a210d5cc4fdbc40b8a26386e9cdb1ef58941bec0be02c7cb9d89";
+    sha256 = "62da62eb685621ede2be1275f11b89fa0e0be578db8daa5320d0a7855c0a9ebc";
   };
 
   patches = [
diff --git a/pkgs/development/interpreters/python/3.1/default.nix b/pkgs/development/interpreters/python/3.1/default.nix
new file mode 100644
index 00000000000..8f3a94e137e
--- /dev/null
+++ b/pkgs/development/interpreters/python/3.1/default.nix
@@ -0,0 +1,95 @@
+{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2
+, gdbmSupport ? true, gdbm ? null
+, sqlite ? null
+, db4 ? null
+, readline ? null
+, openssl ? null
+, tk ? null
+, tcl ? null
+, libX11 ? null
+, xproto ? null
+, arch ? null
+, sw_vers ? null
+}:
+
+# I haven't spend much time on this derivation. So some of these settings may not apply to python-3.1
+# 
+
+assert zlibSupport -> zlib != null;
+assert gdbmSupport -> gdbm != null;
+assert stdenv.isDarwin -> arch != null;
+assert stdenv.isDarwin -> sw_vers != null;
+
+with stdenv.lib;
+
+let
+
+  majorVersion = "3.1";
+  version = "${majorVersion}.1";
+
+  buildInputs =
+    optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
+    [bzip2]
+    ++ optional zlibSupport zlib
+    ++ optional gdbmSupport gdbm
+    ++ optional (sqlite != null) sqlite
+    ++ optional (db4 != null) db4
+    ++ optional (readline != null) readline
+    ++ optional (openssl != null) openssl
+    ++ optional (tk != null) tk
+    ++ optional (tcl != null) tcl
+    ++ optional (libX11 != null) libX11
+    ++ optional (xproto != null) xproto
+    ++ optional (arch != null) arch
+    ++ optional (sw_vers != null) sw_vers
+    ;
+
+in
+
+stdenv.mkDerivation ( {
+  name = "python-${version}";
+
+  src = fetchurl {
+    url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
+    sha256 = "1zai7damkpbzwgflrm3rc9r024kb2iiqwasb2b0kmpmsi9bw4z6q";
+  };
+
+  patches = [
+    # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
+    ./search-path.patch
+  ];
+
+  inherit buildInputs;
+  C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
+  LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+  configureFlags = "--enable-shared --with-threads --enable-unicode --with-wctype-functions";
+
+  preConfigure = ''
+    # Purity.
+    for i in /usr /sw /opt /pkg; do
+      substituteInPlace ./setup.py --replace $i /no-such-path
+    done
+  '' + (if readline != null then ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lncurses"
+  '' else "");
+
+  setupHook = ./setup-hook.sh;
+
+  postInstall = ''
+    rm -rf "$out/lib/python${majorVersion}/test"
+  '';
+
+  passthru = {
+    inherit zlibSupport;
+    sqliteSupport = sqlite != null;
+    db4Support = db4 != null;
+    readlineSupport = readline != null;
+    opensslSupport = openssl != null;
+    tkSupport = (tk != null) && (tcl != null);
+    libPrefix = "python${majorVersion}";
+  };
+
+  meta = {
+    platforms = stdenv.lib.platforms.all;
+  };
+} // (if stdenv.isDarwin then { NIX_CFLAGS_COMPILE = "-msse2" ; patches = [./search-path.patch]; } else {} ) )
diff --git a/pkgs/development/interpreters/python-new/2.5/search-path.patch b/pkgs/development/interpreters/python/3.1/search-path.patch
index 8fcddcb3f8d..2e7b7526c0c 100644
--- a/pkgs/development/interpreters/python-new/2.5/search-path.patch
+++ b/pkgs/development/interpreters/python/3.1/search-path.patch
@@ -25,4 +25,3 @@ diff -rc Python-2.4.4-orig/setup.py Python-2.4.4/setup.py
           # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
           if platform in ['osf1', 'unixware7', 'openunix8']:
               lib_dirs += ['/usr/ccs/lib']
-
diff --git a/pkgs/development/interpreters/python/3.1/setup-hook.sh b/pkgs/development/interpreters/python/3.1/setup-hook.sh
new file mode 100644
index 00000000000..290525c3571
--- /dev/null
+++ b/pkgs/development/interpreters/python/3.1/setup-hook.sh
@@ -0,0 +1,15 @@
+addPythonPath() {
+    addToSearchPathWithCustomDelimiter : PYTHONPATH $1/lib/python2.6/site-packages
+}
+
+toPythonPath() {
+    local paths="$1"
+    local result=
+    for i in $paths; do
+        p="$i/lib/python2.6/site-packages"
+        result="${result}${result:+:}$p"
+    done
+    echo $result
+}
+
+envHooks=(${envHooks[@]} addPythonPath)
diff --git a/pkgs/development/interpreters/ruby/libs.nix b/pkgs/development/interpreters/ruby/libs.nix
index 1b135b2b747..7f128c4322c 100644
--- a/pkgs/development/interpreters/ruby/libs.nix
+++ b/pkgs/development/interpreters/ruby/libs.nix
@@ -33,9 +33,10 @@ let libs =
     # either the nameNoVersion or name must match
     patches = {
       sup = {
-        buildInputs = [ pkgs.ncurses pkgs.xapianBindings ];
+        buildInputs = [ pkgs.ncurses pkgs.xapianBindings libs.ncursesw ];
       };
       ncurses = { buildInputs = [ pkgs.ncurses ]; };
+      ncursesw = { buildInputs = [ pkgs.ncurses ]; };
       nokogiri = {
         buildFlags=["--with-xml2-dir=${pkgs.libxml2} --with-xml2-include=${pkgs.libxml2}/include/libxml2"
                     "--with-xslt-dir=${pkgs.libxslt}" ];
@@ -80,6 +81,10 @@ let libs =
           cat ${patch} | gunzip | patch -p 1;
         '';
       };
+
+      xapian_full = {
+        buildInputs = [ libs.rake pkgs.zlib pkgs.libuuid ];
+      };
     };
 
     rubyDerivation = args :
@@ -118,7 +123,7 @@ let libs =
 
               for prog in $out/bin/*; do
                 wrapProgram "$prog" \
-                  --prefix RUBYLIB : "$RUBYLIB" \
+                  --prefix RUBYLIB : "$RUBYLIB":${rubygems}/lib \
                   --prefix GEM_PATH : "$GEM_PATH" \
                   --set RUBYOPT 'rubygems'
               done
@@ -150,38 +155,38 @@ let libs =
 
   # ================ START automatically generated code ================
          # WARNING: automatically generated CODE
-         # This section has been generated by gem nix sup chronic rubygems-update xrefresh-server rb-inotify jeweler
+         # This section has been generated by gem nix sup chronic rubygems-update xrefresh-server rb-inotify jeweler ncursesw
          # the gem nix command has been added by a nix patch to ruby gems
       
-  rake_0_8_7 = rubyDerivation {
-     name = "ruby-rake-0.8.7"; # full_name
-     nameNoVersion = "rake";
+  json_pure_1_2_4 = rubyDerivation {
+     name = "ruby-json_pure-1.2.4"; # full_name
+     nameNoVersion = "json_pure";
      propagatedBuildInputs = [  ];
      src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rake-0.8.7.gem";
-       sha256 = "03z1zm7xwl2r9v945ambwbd9sn2smbi34xldmac7qjcmsvd7pcqh";
+       url = "http://gems.rubyforge.org/gems/json_pure-1.2.4.gem";
+       sha256 = "1j3lwa20659qb5rvsnzxd6qlr0m56fyppgdhxc7v4phdsw3im4bp";
      };
      meta = {
-       homepage = "http://rake.rubyforge.org";
+       homepage = "http://flori.github.com/json";
        license = []; # one of ?
-       description = "Rake is a Make-like program implemented in Ruby[...]";
-       longDescription = "Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax.";
+       description = "This is a JSON implementation in pure Ruby[...]";
+       longDescription = "This is a JSON implementation in pure Ruby.";
      };
   };
 
-  ferret_0_11_6 = rubyDerivation {
-     name = "ruby-ferret-0.11.6"; # full_name
-     nameNoVersion = "ferret";
+  rake_0_8_7 = rubyDerivation {
+     name = "ruby-rake-0.8.7"; # full_name
+     nameNoVersion = "rake";
      propagatedBuildInputs = [  ];
      src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/ferret-0.11.6.gem";
-       sha256 = "0q0zdrmfm41ijf1n19s85vg34b1a558x5cnwmbb8fc8kzxklzbih";
+       url = "http://gems.rubyforge.org/gems/rake-0.8.7.gem";
+       sha256 = "03z1zm7xwl2r9v945ambwbd9sn2smbi34xldmac7qjcmsvd7pcqh";
      };
      meta = {
-       homepage = "http://ferret.davebalmain.com/trac";
+       homepage = "http://rake.rubyforge.org";
        license = []; # one of ?
-       description = "Ferret is a port of the Java Lucene project[...]";
-       longDescription = "Ferret is a port of the Java Lucene project. It is a powerful indexing and search library.";
+       description = "Rake is a Make-like program implemented in Ruby[...]";
+       longDescription = "Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax.";
      };
   };
 
@@ -201,16 +206,32 @@ let libs =
      };
   };
 
-  rubygems_update_1_3_5 = rubyDerivation {
-     name = "ruby-rubygems-update-1.3.5"; # full_name
+  json_1_2_4 = rubyDerivation {
+     name = "ruby-json-1.2.4"; # full_name
+     nameNoVersion = "json";
+     propagatedBuildInputs = [  ];
+     src = fetchurl {
+       url = "http://gems.rubyforge.org/gems/json-1.2.4.gem";
+       sha256 = "1wdj91bl7xabgkwpz285b8086v5898x72h4lxl11n750652mrrax";
+     };
+     meta = {
+       homepage = "http://flori.github.com/json";
+       license = []; # one of ?
+       description = "This is a JSON implementation as a Ruby extension in C[...]";
+       longDescription = "This is a JSON implementation as a Ruby extension in C.";
+     };
+  };
+
+  rubygems_update_1_3_6 = rubyDerivation {
+     name = "ruby-rubygems-update-1.3.6"; # full_name
      nameNoVersion = "rubygems_update";
      propagatedBuildInputs = [  ];
      src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rubygems-update-1.3.5.gem";
-       sha256 = "1idzrbnl24ldxz8dmn8lz466avsn1w0rbc35lyp92fd3ar2b23qj";
+       url = "http://gems.rubyforge.org/gems/rubygems-update-1.3.6.gem";
+       sha256 = "1fqbm9hmy3skj9s98v8k0qghdmli7kv84wlm0m4grsrdn26xw14l";
      };
      meta = {
-       homepage = "http://rubygems.rubyforge.org/";
+       homepage = "http://rubygems.org/";
        license = []; # one of ?
        description = "RubyGems is a package management framework for Ruby  This gem is an update for the RubyGems software. You must have an in"; # cut to 120 chars
        longDescription = "RubyGems is a package management framework for Ruby.
@@ -222,11 +243,11 @@ See Gem for information on RubyGems (or `ri Gem`)
 
 To upgrade to the latest RubyGems, run:
 
-  $ gem install --system  # you might need to be an administrator or root
+  $ gem update --system  # you might need to be an administrator or root
 
 NOTE:  RubyGems 1.1 and 1.2 have problems upgrading when there is no
 rubygems-update installed.  You will need to use the following instructions
-if you see &quot;Nothing to update&quot;.
+if you see \"Nothing to update\".
 
 If you have an older version of RubyGems installed, then you can still
 do it in two steps:
@@ -247,54 +268,6 @@ For more details and other options, see:
      };
   };
 
-  net_ssh_2_0_17 = rubyDerivation {
-     name = "ruby-net-ssh-2.0.17"; # full_name
-     nameNoVersion = "net_ssh";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/net-ssh-2.0.17.gem";
-       sha256 = "0qswvcmq91sfii3cfr6myws2ncch9l4yzd09070yn5a3wsx4i6r5";
-     };
-     meta = {
-       homepage = "http://rubyforge.org/projects/net-ssh/";
-       license = []; # one of ?
-       description = "Net::SSH: a pure-Ruby implementation of the SSH2 client protocol[...]";
-       longDescription = "Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.";
-     };
-  };
-
-  rb_inotify_0_4_0 = rubyDerivation {
-     name = "ruby-rb-inotify-0.4.0"; # full_name
-     nameNoVersion = "rb_inotify";
-     propagatedBuildInputs = [ ffi_0_5_4 ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rb-inotify-0.4.0.gem";
-       sha256 = "17wanfs4jmp8c3sslb7a947ay9k78fhm1nls87cgpssmynpsmbvl";
-     };
-     meta = {
-       homepage = "http://github.com/nex3/rb-notify";
-       license = []; # one of ?
-       description = "A Ruby wrapper for Linux's inotify, using FFI[...]";
-       longDescription = "A Ruby wrapper for Linux's inotify, using FFI";
-     };
-  };
-
-  term_ansicolor_1_0_4 = rubyDerivation {
-     name = "ruby-term-ansicolor-1.0.4"; # full_name
-     nameNoVersion = "term_ansicolor";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/term-ansicolor-1.0.4.gem";
-       sha256 = "0pvyr3f0kk17nap1bm0myziskd8wn3kwba7zmp3zxks8icn0sa5j";
-     };
-     meta = {
-       homepage = "http://term-ansicolor.rubyforge.org";
-       license = []; # one of ?
-       description = "[...]";
-       longDescription = "";
-     };
-  };
-
   chronic_0_2_3 = rubyDerivation {
      name = "ruby-chronic-0.2.3"; # full_name
      nameNoVersion = "chronic";
@@ -327,13 +300,29 @@ For more details and other options, see:
      };
   };
 
-  ffi_0_5_4 = rubyDerivation {
-     name = "ruby-ffi-0.5.4"; # full_name
+  xapian_full_1_1_3_4 = rubyDerivation {
+     name = "ruby-xapian-full-1.1.3.4"; # full_name
+     nameNoVersion = "xapian_full";
+     propagatedBuildInputs = [  ];
+     src = fetchurl {
+       url = "http://gems.rubyforge.org/gems/xapian-full-1.1.3.4.gem";
+       sha256 = "0yc08y7v5yh0lfidc0rkr072q88jvp5prv7pllv4qn4wryna8mwl";
+     };
+     meta = {
+       homepage = "";
+       license = []; # one of ?
+       description = "Xapian bindings for Ruby without dependency on system Xapian library[...]";
+       longDescription = "Xapian bindings for Ruby without dependency on system Xapian library";
+     };
+  };
+
+  ffi_0_6_3 = rubyDerivation {
+     name = "ruby-ffi-0.6.3"; # full_name
      nameNoVersion = "ffi";
      propagatedBuildInputs = [ rake_0_8_7 ];
      src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/ffi-0.5.4.gem";
-       sha256 = "1kxa1ljcl1907kav400w43n9fdw535qr7klj06wx1bnyaq7bfnik";
+       url = "http://gems.rubyforge.org/gems/ffi-0.6.3.gem";
+       sha256 = "08qnxqcnjq4i2vv1jfwdxdlsphqjrrh7r0cw8x2q0x9vjd27ncbb";
      };
      meta = {
        homepage = "http://wiki.github.com/ffi/ffi";
@@ -347,35 +336,39 @@ using Ruby-FFI here[http://wiki.github.com/ffi/ffi/why-use-ffi].";
      };
   };
 
-  fastthread_1_0_7 = rubyDerivation {
-     name = "ruby-fastthread-1.0.7"; # full_name
-     nameNoVersion = "fastthread";
+  term_ansicolor_1_0_5 = rubyDerivation {
+     name = "ruby-term-ansicolor-1.0.5"; # full_name
+     nameNoVersion = "term_ansicolor";
      propagatedBuildInputs = [  ];
      src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/fastthread-1.0.7.gem";
-       sha256 = "003ngap8rmwsl4bvf44hz8q4ajm9d0sbn38pm28dajng3pm8q6mx";
+       url = "http://gems.rubyforge.org/gems/term-ansicolor-1.0.5.gem";
+       sha256 = "1xhcc4dkfylj14w413pmd8jhc04wj3nlw0xa6qy9h0fnbbyh6bc1";
      };
      meta = {
-       homepage = "";
+       homepage = "http://flori.github.com/term-ansicolor";
        license = []; # one of ?
-       description = "Optimized replacement for thread[...]";
-       longDescription = "Optimized replacement for thread.rb primitives";
+       description = "[...]";
+       longDescription = "";
      };
   };
 
-  gemcutter_0_3_0 = rubyDerivation {
-     name = "ruby-gemcutter-0.3.0"; # full_name
-     nameNoVersion = "gemcutter";
+  trollop_1_16_2 = rubyDerivation {
+     name = "ruby-trollop-1.16.2"; # full_name
+     nameNoVersion = "trollop";
      propagatedBuildInputs = [  ];
      src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/gemcutter-0.3.0.gem";
-       sha256 = "07rm04lj5rb093gf1w87rzkj9gr1pkyd5frs716wn5gd4c1silik";
+       url = "http://gems.rubyforge.org/gems/trollop-1.16.2.gem";
+       sha256 = "0frrp90dw266h3kf9g925dppir9l7p8jxknw6dn5nz6fa6c4g5lg";
      };
      meta = {
-       homepage = "http://gemcutter.org";
+       homepage = "http://trollop.rubyforge.org";
        license = []; # one of ?
-       description = "Adds several commands to RubyGems for managing gems and more on Gemcutter[...]";
-       longDescription = "Adds several commands to RubyGems for managing gems and more on Gemcutter.org.";
+       description = "Trollop is a commandline option parser for Ruby that just gets out of your way For that, you get a nice automatically-gen"; # cut to 120 chars
+       longDescription = "Trollop is a commandline option parser for Ruby that just
+gets out of your way. One line of code per option is all you need to write.
+For that, you get a nice automatically-generated help page, robust option
+parsing, command subcompletion, and sensible defaults for everything you don't
+specify.";
      };
   };
 
@@ -414,13 +407,61 @@ using Ruby-FFI here[http://wiki.github.com/ffi/ffi/why-use-ffi].";
      };
   };
 
-  rubyforge_2_0_3 = rubyDerivation {
-     name = "ruby-rubyforge-2.0.3"; # full_name
+  xrefresh_server_0_3_0 = rubyDerivation {
+     name = "ruby-xrefresh-server-0.3.0"; # full_name
+     nameNoVersion = "xrefresh_server";
+     propagatedBuildInputs = [ json_1_2_4 term_ansicolor_1_0_5 ];
+     src = fetchurl {
+       url = "http://gems.rubyforge.org/gems/xrefresh-server-0.3.0.gem";
+       sha256 = "1k80hadnmaxi8q8fw879xaj0ragy4bmqjqm7zjkv9bq8njb3i0c5";
+     };
+     meta = {
+       homepage = "http://github.com/darwin/xrefresh-server";
+       license = []; # one of ?
+       description = "XRefresh is browser refresh automation for web developers[...]";
+       longDescription = "XRefresh is browser refresh automation for web developers";
+     };
+  };
+
+  net_ssh_2_0_21 = rubyDerivation {
+     name = "ruby-net-ssh-2.0.21"; # full_name
+     nameNoVersion = "net_ssh";
+     propagatedBuildInputs = [  ];
+     src = fetchurl {
+       url = "http://gems.rubyforge.org/gems/net-ssh-2.0.21.gem";
+       sha256 = "0wjfv68gn297vhb0r9qhlij9p7qnkn4afav0nylr6avrsd8mgdc4";
+     };
+     meta = {
+       homepage = "http://github.com/net-ssh/net-ssh";
+       license = []; # one of ?
+       description = "Net::SSH: a pure-Ruby implementation of the SSH2 client protocol[...]";
+       longDescription = "Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.";
+     };
+  };
+
+  gemcutter_0_5_0 = rubyDerivation {
+     name = "ruby-gemcutter-0.5.0"; # full_name
+     nameNoVersion = "gemcutter";
+     propagatedBuildInputs = [  ];
+     src = fetchurl {
+       url = "http://gems.rubyforge.org/gems/gemcutter-0.5.0.gem";
+       sha256 = "16pf64d0mj320llars6x1zl0vhv2x8vh7pwgqj0k48pyh5426iim";
+     };
+     meta = {
+       homepage = "http://rubygems.org";
+       license = []; # one of ?
+       description = "Adds several commands to RubyGems for managing gems and more on RubyGems[...]";
+       longDescription = "Adds several commands to RubyGems for managing gems and more on RubyGems.org.";
+     };
+  };
+
+  rubyforge_2_0_4 = rubyDerivation {
+     name = "ruby-rubyforge-2.0.4"; # full_name
      nameNoVersion = "rubyforge";
-     propagatedBuildInputs = [ json_pure_1_2_0 ];
+     propagatedBuildInputs = [ json_pure_1_2_4 ];
      src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/rubyforge-2.0.3.gem";
-       sha256 = "1ck9hkad55dy25819v4gd1nmnpvcrb3i4np3hc03h1j6q8qpxg5p";
+       url = "http://gems.rubyforge.org/gems/rubyforge-2.0.4.gem";
+       sha256 = "1wdaa4nzy39yzy848fa1rybi72qlyf9vhi1ra9wpx9rpi810fwh1";
      };
      meta = {
        homepage = "http://codeforpeople.rubyforge.org/rubyforge/";
@@ -437,19 +478,19 @@ using Ruby-FFI here[http://wiki.github.com/ffi/ffi/why-use-ffi].";
      };
   };
 
-  xrefresh_server_0_3_0 = rubyDerivation {
-     name = "ruby-xrefresh-server-0.3.0"; # full_name
-     nameNoVersion = "xrefresh_server";
-     propagatedBuildInputs = [ json_1_2_0 term_ansicolor_1_0_4 ];
+  rb_inotify_0_7_1 = rubyDerivation {
+     name = "ruby-rb-inotify-0.7.1"; # full_name
+     nameNoVersion = "rb_inotify";
+     propagatedBuildInputs = [ ffi_0_6_3 ];
      src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/xrefresh-server-0.3.0.gem";
-       sha256 = "1k80hadnmaxi8q8fw879xaj0ragy4bmqjqm7zjkv9bq8njb3i0c5";
+       url = "http://gems.rubyforge.org/gems/rb-inotify-0.7.1.gem";
+       sha256 = "00q2zl9361ji5z7blgipphsjvnysyw016vbb0vh6f5i5v6fz5bzh";
      };
      meta = {
-       homepage = "http://github.com/darwin/xrefresh-server";
+       homepage = "http://github.com/nex3/rb-notify";
        license = []; # one of ?
-       description = "XRefresh is browser refresh automation for web developers[...]";
-       longDescription = "XRefresh is browser refresh automation for web developers";
+       description = "A Ruby wrapper for Linux's inotify, using FFI[...]";
+       longDescription = "A Ruby wrapper for Linux's inotify, using FFI";
      };
   };
 
@@ -486,42 +527,30 @@ using Ruby-FFI here[http://wiki.github.com/ffi/ffi/why-use-ffi].";
      };
   };
 
-  highline_1_5_1 = rubyDerivation {
-     name = "ruby-highline-1.5.1"; # full_name
+  highline_1_5_2 = rubyDerivation {
+     name = "ruby-highline-1.5.2"; # full_name
      nameNoVersion = "highline";
      propagatedBuildInputs = [  ];
      src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/highline-1.5.1.gem";
-       sha256 = "0sawb011sc1i5glr80a4iflr0vvn3s5c97a4jmrhj3palv4df19i";
+       url = "http://gems.rubyforge.org/gems/highline-1.5.2.gem";
+       sha256 = "0l25zris20drrwkhxx9hplq7g353xh960y5i19fdb7g84jl4bp19";
      };
      meta = {
        homepage = "http://highline.rubyforge.org";
        license = []; # one of ?
-       description = "A high-level IO library that provides validation, type conversion, and more for command-line interfaces[...]";
-       longDescription = "A high-level IO library that provides validation, type conversion, and more for command-line interfaces. HighLine also includes a complete menu system that can crank out anything from simple list selection to complete shells with just minutes of work.";
-     };
-  };
-
-  json_pure_1_2_0 = rubyDerivation {
-     name = "ruby-json_pure-1.2.0"; # full_name
-     nameNoVersion = "json_pure";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/json_pure-1.2.0.gem";
-       sha256 = "162lzzbadp62q1fjf5zyg45qly9pryjh7f6xhnf04zbjiq815pc5";
-     };
-     meta = {
-       homepage = "http://json.rubyforge.org";
-       license = []; # one of ?
-       description = "This is a JSON implementation in pure Ruby[...]";
-       longDescription = "This is a JSON implementation in pure Ruby.";
+       description = "A high-level IO library that provides validation, type conversion, and more for command-line interfaces crank out anythin"; # cut to 120 chars
+       longDescription = "A high-level IO library that provides validation, type conversion, and more for
+command-line interfaces. HighLine also includes a complete menu system that can
+crank out anything from simple list selection to complete shells with just
+minutes of work.
+";
      };
   };
 
   jeweler_1_4_0 = rubyDerivation {
      name = "ruby-jeweler-1.4.0"; # full_name
      nameNoVersion = "jeweler";
-     propagatedBuildInputs = [ git_1_2_5 rubyforge_2_0_3 gemcutter_0_3_0 ];
+     propagatedBuildInputs = [ git_1_2_5 rubyforge_2_0_4 gemcutter_0_5_0 ];
      src = fetchurl {
        url = "http://gems.rubyforge.org/gems/jeweler-1.4.0.gem";
        sha256 = "0hsz38wc37k1zzmy1jjvsqj6am14n410bbxk1dhq55cgapnwm3kb";
@@ -534,29 +563,13 @@ using Ruby-FFI here[http://wiki.github.com/ffi/ffi/why-use-ffi].";
      };
   };
 
-  json_1_2_0 = rubyDerivation {
-     name = "ruby-json-1.2.0"; # full_name
-     nameNoVersion = "json";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/json-1.2.0.gem";
-       sha256 = "0srfhr38g322l4lcnzsa6kzp64i9p24ai2bmh5wl0xx2g925b7n7";
-     };
-     meta = {
-       homepage = "http://json.rubyforge.org";
-       license = []; # one of ?
-       description = "This is a JSON implementation as a Ruby extension in C[...]";
-       longDescription = "This is a JSON implementation as a Ruby extension in C.";
-     };
-  };
-
-  sup_0_9_1 = rubyDerivation {
-     name = "ruby-sup-0.9.1"; # full_name
+  sup_0_11 = rubyDerivation {
+     name = "ruby-sup-0.11"; # full_name
      nameNoVersion = "sup";
-     propagatedBuildInputs = [ ferret_0_11_6 ncurses_0_9_1 rmail_1_0_0 highline_1_5_1 net_ssh_2_0_17 trollop_1_15 lockfile_1_4_3 mime_types_1_16 gettext_2_1_0 fastthread_1_0_7 ];
+     propagatedBuildInputs = [ xapian_full_1_1_3_4 ncurses_0_9_1 rmail_1_0_0 highline_1_5_2 net_ssh_2_0_21 trollop_1_16_2 lockfile_1_4_3 mime_types_1_16 gettext_2_1_0 ];
      src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/sup-0.9.1.gem";
-       sha256 = "0hifzcvfsbcyjszyyryfi60qiysn0i47f8jlwj3p7v7agxy5hm5a";
+       url = "http://gems.rubyforge.org/gems/sup-0.11.gem";
+       sha256 = "0dijz1vl1kk4axfnry71bnl2585y1hw0n6sizg9aag7r9m13194q";
      };
      meta = {
        homepage = "http://sup.rubyforge.org/";
@@ -566,43 +579,6 @@ using Ruby-FFI here[http://wiki.github.com/ffi/ffi/why-use-ffi].";
      };
   };
 
-  trollop_1_15 = rubyDerivation {
-     name = "ruby-trollop-1.15"; # full_name
-     nameNoVersion = "trollop";
-     propagatedBuildInputs = [  ];
-     src = fetchurl {
-       url = "http://gems.rubyforge.org/gems/trollop-1.15.gem";
-       sha256 = "0xxd96xpnxmm4195qwawpjqgnsbzw4s70jf0wz32ynmya7flgdhk";
-     };
-     meta = {
-       homepage = "http://trollop.rubyforge.org";
-       license = []; # one of ?
-       description = "Documentation quickstart: See Trollop::options (for some reason rdoc isn't linking that; it's in the top right of the scr"; # cut to 120 chars
-       longDescription = "Documentation quickstart: See Trollop::options (for some reason rdoc isn't
-linking that; it's in the top right of the screen if you're browsing online)
-and then Trollop::Parser#opt. Also see the examples at
-http://trollop.rubyforge.org/.
-
-== DESCRIPTION
-
-== REQUIREMENTS
-
-* A burning desire to write less code.
-
-== INSTALL
-
-* gem install trollop
-
-== LICENSE
-
-Copyright (c) 2008--2009 William Morgan. Trollop is distributed under the same
-terms as Ruby.
-
-
-";
-     };
-  };
-
   rmail_1_0_0 = rubyDerivation {
      name = "ruby-rmail-1.0.0"; # full_name
      nameNoVersion = "rmail";
@@ -619,32 +595,47 @@ terms as Ruby.
      };
   };
 
+  ncursesw_1_2_4_1 = rubyDerivation {
+     name = "ruby-ncursesw-1.2.4.1"; # full_name
+     nameNoVersion = "ncursesw";
+     propagatedBuildInputs = [  ];
+     src = fetchurl {
+       url = "http://gems.rubyforge.org/gems/ncursesw-1.2.4.1.gem";
+       sha256 = "0cn13h14pk8yds8aklpdcpzl0z6rqifpmaz4lw29g10lgwvfv409";
+     };
+     meta = {
+       homepage = "http://ncurses-ruby.berlios.de/";
+       license = []; # one of ?
+       description = "Hacked up version of ncurses gem that supports wide characters and ruby1[...]";
+       longDescription = "Hacked up version of ncurses gem that supports wide characters and ruby1.9.1. Original ncurses gem by t-peters@users.berlios.de.";
+     };
+  };
+
 # aliases
 rmail=rmail_1_0_0;
-term_ansicolor=term_ansicolor_1_0_4;
-fastthread=fastthread_1_0_7;
-rb_inotify=rb_inotify_0_4_0;
-highline=highline_1_5_1;
-rubygems_update=rubygems_update_1_3_5;
+term_ansicolor=term_ansicolor_1_0_5;
+rb_inotify=rb_inotify_0_7_1;
+highline=highline_1_5_2;
+rubygems_update=rubygems_update_1_3_6;
 rake=rake_0_8_7;
-sup=sup_0_9_1;
+sup=sup_0_11;
 mime_types=mime_types_1_16;
-rubyforge=rubyforge_2_0_3;
-gemcutter=gemcutter_0_3_0;
-ferret=ferret_0_11_6;
-json=json_1_2_0;
+rubyforge=rubyforge_2_0_4;
+gemcutter=gemcutter_0_5_0;
+net_ssh=net_ssh_2_0_21;
 xrefresh_server=xrefresh_server_0_3_0;
+xapian_full=xapian_full_1_1_3_4;
 ncurses=ncurses_0_9_1;
-net_ssh=net_ssh_2_0_17;
-trollop=trollop_1_15;
+json=json_1_2_4;
 jeweler=jeweler_1_4_0;
 gettext=gettext_2_1_0;
+trollop=trollop_1_16_2;
 git=git_1_2_5;
-json_pure=json_pure_1_2_0;
 locale=locale_2_0_5;
 chronic=chronic_0_2_3;
+json_pure=json_pure_1_2_4;
 lockfile=lockfile_1_4_3;
-ffi=ffi_0_5_4;
-
+ffi=ffi_0_6_3;
+ncursesw=ncursesw_1_2_4_1;
   # ================ END automatically generated code ================
   }; in libs