summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/desktops/kde-4.4/default.nix6
-rw-r--r--pkgs/development/python-modules/4suite/default.nix (renamed from pkgs/development/python2-packages/4suite/default.nix)0
-rw-r--r--pkgs/development/python-modules/bsddb3/default.nix (renamed from pkgs/development/python2-packages/bsddb3/default.nix)0
-rw-r--r--pkgs/development/python-modules/dbus/default.nix (renamed from pkgs/development/python2-packages/dbus/default.nix)0
-rw-r--r--pkgs/development/python-modules/flup/default.nix (renamed from pkgs/development/python2-packages/flup/default.nix)0
-rw-r--r--pkgs/development/python-modules/generic/default.nix (renamed from pkgs/development/python2-packages/generic/default.nix)0
-rw-r--r--pkgs/development/python-modules/irclib/default.nix (renamed from pkgs/development/python2-packages/irclib/default.nix)0
-rw-r--r--pkgs/development/python-modules/libsexy/default.nix (renamed from pkgs/development/python2-packages/libsexy/default.nix)0
-rw-r--r--pkgs/development/python-modules/numeric/default.nix (renamed from pkgs/development/python2-packages/numeric/default.nix)0
-rw-r--r--pkgs/development/python-modules/pil/default.nix (renamed from pkgs/development/python2-packages/pil/default.nix)0
-rw-r--r--pkgs/development/python-modules/psyco/default.nix (renamed from pkgs/development/python2-packages/psyco/default.nix)0
-rw-r--r--pkgs/development/python-modules/pycairo/default.nix (renamed from pkgs/development/python2-packages/pycairo/default.nix)0
-rw-r--r--pkgs/development/python-modules/pycrypto/default.nix (renamed from pkgs/development/python2-packages/pycrypto/default.nix)0
-rw-r--r--pkgs/development/python-modules/pycups/default.nix (renamed from pkgs/development/python2-packages/pycups/default.nix)0
-rw-r--r--pkgs/development/python-modules/pygame/default.nix (renamed from pkgs/development/python2-packages/pygame/default.nix)0
-rw-r--r--pkgs/development/python-modules/pygobject/default.nix (renamed from pkgs/development/python2-packages/pygobject/default.nix)0
-rw-r--r--pkgs/development/python-modules/pygtk/default.nix (renamed from pkgs/development/python2-packages/pygtk/default.nix)0
-rw-r--r--pkgs/development/python-modules/pyopenssl/default.nix (renamed from pkgs/development/python2-packages/pyopenssl/default.nix)0
-rw-r--r--pkgs/development/python-modules/pyqt/default.nix (renamed from pkgs/development/python2-packages/pyqt/4.7.nix)6
-rw-r--r--pkgs/development/python-modules/python-sip/default.nix (renamed from pkgs/development/python2-packages/python-sip/4.10.nix)4
-rw-r--r--pkgs/development/python-modules/pyx/default.nix (renamed from pkgs/development/python2-packages/pyx/default.nix)0
-rw-r--r--pkgs/development/python-modules/pyxml/default.nix (renamed from pkgs/development/python2-packages/pyxml/default.nix)0
-rw-r--r--pkgs/development/python-modules/rhpl/builder.sh (renamed from pkgs/development/python2-packages/rhpl/builder.sh)0
-rw-r--r--pkgs/development/python-modules/rhpl/default.nix (renamed from pkgs/development/python2-packages/rhpl/default.nix)0
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix (renamed from pkgs/development/python2-packages/setuptools/default.nix)0
-rw-r--r--pkgs/development/python-modules/stringtemplate/default.nix (renamed from pkgs/development/python2-packages/stringtemplate/default.nix)0
-rw-r--r--pkgs/development/python-modules/wxPython/2.6.nix (renamed from pkgs/development/python2-packages/wxPython/2.6.nix)0
-rw-r--r--pkgs/development/python-modules/wxPython/2.8.nix (renamed from pkgs/development/python2-packages/wxPython/2.8.nix)0
-rw-r--r--pkgs/development/python-modules/wxPython/builder.sh (renamed from pkgs/development/python2-packages/wxPython/builder.sh)0
-rw-r--r--pkgs/development/python-modules/xmpppy/default.nix (renamed from pkgs/development/python2-packages/xmpppy/default.nix)0
-rw-r--r--pkgs/development/python-modules/zope/default.nix15
-rw-r--r--pkgs/development/python-modules/zope/zope_python-2.4.4.patch (renamed from pkgs/development/python2-packages/zope/zope_python-2.4.4.patch)0
-rw-r--r--pkgs/development/python-modules/zope/zope_python-readline.patch (renamed from pkgs/development/python2-packages/zope/zope_python-readline.patch)0
-rw-r--r--pkgs/development/python2-packages/default.nix957
-rw-r--r--pkgs/development/python2-packages/pyopengl/default.nix28
-rw-r--r--pkgs/development/python2-packages/pyqt/4.5.nix22
-rw-r--r--pkgs/development/python2-packages/python-sip/default.nix20
-rw-r--r--pkgs/tools/filesystems/svnfs/default.nix7
-rw-r--r--pkgs/top-level/all-packages.nix221
-rw-r--r--pkgs/top-level/python-packages.nix785
40 files changed, 979 insertions, 1092 deletions
diff --git a/pkgs/desktops/kde-4.4/default.nix b/pkgs/desktops/kde-4.4/default.nix
index 3e71c3aad5e7..9623f309fc98 100644
--- a/pkgs/desktops/kde-4.4/default.nix
+++ b/pkgs/desktops/kde-4.4/default.nix
@@ -102,8 +102,7 @@ pkgs.recurseIntoAttrs (rec {
   };
   
   kdeadmin = import ./admin {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 pkgconfig perl python sip pyqt4 system_config_printer;
-    inherit (pkgs.pythonPackages) pycups rhpl;
+    inherit (pkgs) stdenv fetchurl lib cmake qt4 pkgconfig perl python sip pyqt4 pycups rhpl system_config_printer;
     inherit kdelibs kdepimlibs kdebindings;
     inherit automoc4 phonon;
   };
@@ -187,8 +186,7 @@ pkgs.recurseIntoAttrs (rec {
   };
     
   kdeutils = import ./utils {
-    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl python gmp libzip libarchive xz sip pyqt4 system_config_printer;
-    inherit (pkgs.pythonPackages) pycups rhpl;
+    inherit (pkgs) stdenv fetchurl lib cmake qt4 perl python gmp libzip libarchive xz sip pyqt4 pycups rhpl system_config_printer;
     inherit kdelibs kdepimlibs kdebase kdebindings;
     inherit automoc4 phonon qimageblitz qca2;
   };
diff --git a/pkgs/development/python2-packages/4suite/default.nix b/pkgs/development/python-modules/4suite/default.nix
index 9f900e4f50ab..9f900e4f50ab 100644
--- a/pkgs/development/python2-packages/4suite/default.nix
+++ b/pkgs/development/python-modules/4suite/default.nix
diff --git a/pkgs/development/python2-packages/bsddb3/default.nix b/pkgs/development/python-modules/bsddb3/default.nix
index 6ba7f9f8d024..6ba7f9f8d024 100644
--- a/pkgs/development/python2-packages/bsddb3/default.nix
+++ b/pkgs/development/python-modules/bsddb3/default.nix
diff --git a/pkgs/development/python2-packages/dbus/default.nix b/pkgs/development/python-modules/dbus/default.nix
index fa8b88d08344..fa8b88d08344 100644
--- a/pkgs/development/python2-packages/dbus/default.nix
+++ b/pkgs/development/python-modules/dbus/default.nix
diff --git a/pkgs/development/python2-packages/flup/default.nix b/pkgs/development/python-modules/flup/default.nix
index 2c0a84aec1a5..2c0a84aec1a5 100644
--- a/pkgs/development/python2-packages/flup/default.nix
+++ b/pkgs/development/python-modules/flup/default.nix
diff --git a/pkgs/development/python2-packages/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 458a30116ae8..458a30116ae8 100644
--- a/pkgs/development/python2-packages/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
diff --git a/pkgs/development/python2-packages/irclib/default.nix b/pkgs/development/python-modules/irclib/default.nix
index c840e0a10035..c840e0a10035 100644
--- a/pkgs/development/python2-packages/irclib/default.nix
+++ b/pkgs/development/python-modules/irclib/default.nix
diff --git a/pkgs/development/python2-packages/libsexy/default.nix b/pkgs/development/python-modules/libsexy/default.nix
index fa00a7040a03..fa00a7040a03 100644
--- a/pkgs/development/python2-packages/libsexy/default.nix
+++ b/pkgs/development/python-modules/libsexy/default.nix
diff --git a/pkgs/development/python2-packages/numeric/default.nix b/pkgs/development/python-modules/numeric/default.nix
index e97b2a5f1a40..e97b2a5f1a40 100644
--- a/pkgs/development/python2-packages/numeric/default.nix
+++ b/pkgs/development/python-modules/numeric/default.nix
diff --git a/pkgs/development/python2-packages/pil/default.nix b/pkgs/development/python-modules/pil/default.nix
index e4586762527d..e4586762527d 100644
--- a/pkgs/development/python2-packages/pil/default.nix
+++ b/pkgs/development/python-modules/pil/default.nix
diff --git a/pkgs/development/python2-packages/psyco/default.nix b/pkgs/development/python-modules/psyco/default.nix
index 1bdade67d68c..1bdade67d68c 100644
--- a/pkgs/development/python2-packages/psyco/default.nix
+++ b/pkgs/development/python-modules/psyco/default.nix
diff --git a/pkgs/development/python2-packages/pycairo/default.nix b/pkgs/development/python-modules/pycairo/default.nix
index 8aebf1d78290..8aebf1d78290 100644
--- a/pkgs/development/python2-packages/pycairo/default.nix
+++ b/pkgs/development/python-modules/pycairo/default.nix
diff --git a/pkgs/development/python2-packages/pycrypto/default.nix b/pkgs/development/python-modules/pycrypto/default.nix
index 67413fa93708..67413fa93708 100644
--- a/pkgs/development/python2-packages/pycrypto/default.nix
+++ b/pkgs/development/python-modules/pycrypto/default.nix
diff --git a/pkgs/development/python2-packages/pycups/default.nix b/pkgs/development/python-modules/pycups/default.nix
index 18de5fbe7f1c..18de5fbe7f1c 100644
--- a/pkgs/development/python2-packages/pycups/default.nix
+++ b/pkgs/development/python-modules/pycups/default.nix
diff --git a/pkgs/development/python2-packages/pygame/default.nix b/pkgs/development/python-modules/pygame/default.nix
index 347501f8a5b7..347501f8a5b7 100644
--- a/pkgs/development/python2-packages/pygame/default.nix
+++ b/pkgs/development/python-modules/pygame/default.nix
diff --git a/pkgs/development/python2-packages/pygobject/default.nix b/pkgs/development/python-modules/pygobject/default.nix
index 4007b7210117..4007b7210117 100644
--- a/pkgs/development/python2-packages/pygobject/default.nix
+++ b/pkgs/development/python-modules/pygobject/default.nix
diff --git a/pkgs/development/python2-packages/pygtk/default.nix b/pkgs/development/python-modules/pygtk/default.nix
index 76b50372ca26..76b50372ca26 100644
--- a/pkgs/development/python2-packages/pygtk/default.nix
+++ b/pkgs/development/python-modules/pygtk/default.nix
diff --git a/pkgs/development/python2-packages/pyopenssl/default.nix b/pkgs/development/python-modules/pyopenssl/default.nix
index 86a79f1070e9..86a79f1070e9 100644
--- a/pkgs/development/python2-packages/pyopenssl/default.nix
+++ b/pkgs/development/python-modules/pyopenssl/default.nix
diff --git a/pkgs/development/python2-packages/pyqt/4.7.nix b/pkgs/development/python-modules/pyqt/default.nix
index 820e272dee15..eb09a32d00c6 100644
--- a/pkgs/development/python2-packages/pyqt/4.7.nix
+++ b/pkgs/development/python-modules/pyqt/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, python, sip, qt4}:
 
 stdenv.mkDerivation {
-  name = "pyqt-x11-gpl-4.7.3";
+  name = "pyqt-x11-gpl-4.7.2";
   
   src = fetchurl {
-    url = http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-4.7.3.tar.gz;
-    sha256 = "0p12m2rjsm3igpqqmgn79my2h16vhxq8dma9ih1744hpnirdcjjp";
+    url = http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-4.7.2.tar.gz;
+    sha256 = "097gxdr7jqv5a58z89djylm2b21x83crqn2fjsr5zmwhc0zwj5yv";
   };
   
   configurePhase = "python ./configure.py --confirm-license -b $out/bin -d $out/lib/${python.libPrefix}/site-packages -v $out/share/sip -p $out/plugins";
diff --git a/pkgs/development/python2-packages/python-sip/4.10.nix b/pkgs/development/python-modules/python-sip/default.nix
index c1812bfec223..c64d7be52f70 100644
--- a/pkgs/development/python2-packages/python-sip/4.10.nix
+++ b/pkgs/development/python-modules/python-sip/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, python }:
 
 stdenv.mkDerivation rec {
-  name = "sip-4.10.2";
+  name = "sip-4.10.1";
   
   src = fetchurl {
     url = "http://www.riverbankcomputing.co.uk/static/Downloads/sip4/${name}.tar.gz";
-    sha256 = "1vw810fa3g59r3cnfizxykq7dg84zcgs278cwrksk7rsgz8gdn9q";
+    sha256 = "16pdk86amcl4hnc9vv2y1ihl8ym9hjkh49andm4jahv4630qhc9h";
   };
   
   configurePhase = "python ./configure.py -d $out/lib/${python.libPrefix}/site-packages -b $out/bin -e $out/include";
diff --git a/pkgs/development/python2-packages/pyx/default.nix b/pkgs/development/python-modules/pyx/default.nix
index 374158da810c..374158da810c 100644
--- a/pkgs/development/python2-packages/pyx/default.nix
+++ b/pkgs/development/python-modules/pyx/default.nix
diff --git a/pkgs/development/python2-packages/pyxml/default.nix b/pkgs/development/python-modules/pyxml/default.nix
index 3c36565b5266..3c36565b5266 100644
--- a/pkgs/development/python2-packages/pyxml/default.nix
+++ b/pkgs/development/python-modules/pyxml/default.nix
diff --git a/pkgs/development/python2-packages/rhpl/builder.sh b/pkgs/development/python-modules/rhpl/builder.sh
index 5c56b70c24f9..5c56b70c24f9 100644
--- a/pkgs/development/python2-packages/rhpl/builder.sh
+++ b/pkgs/development/python-modules/rhpl/builder.sh
diff --git a/pkgs/development/python2-packages/rhpl/default.nix b/pkgs/development/python-modules/rhpl/default.nix
index 7b33932492b9..7b33932492b9 100644
--- a/pkgs/development/python2-packages/rhpl/default.nix
+++ b/pkgs/development/python-modules/rhpl/default.nix
diff --git a/pkgs/development/python2-packages/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index 1cdbb2e26245..1cdbb2e26245 100644
--- a/pkgs/development/python2-packages/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
diff --git a/pkgs/development/python2-packages/stringtemplate/default.nix b/pkgs/development/python-modules/stringtemplate/default.nix
index f70888f102fc..f70888f102fc 100644
--- a/pkgs/development/python2-packages/stringtemplate/default.nix
+++ b/pkgs/development/python-modules/stringtemplate/default.nix
diff --git a/pkgs/development/python2-packages/wxPython/2.6.nix b/pkgs/development/python-modules/wxPython/2.6.nix
index ad8c39b4ea7a..ad8c39b4ea7a 100644
--- a/pkgs/development/python2-packages/wxPython/2.6.nix
+++ b/pkgs/development/python-modules/wxPython/2.6.nix
diff --git a/pkgs/development/python2-packages/wxPython/2.8.nix b/pkgs/development/python-modules/wxPython/2.8.nix
index 5cab740f8c3b..5cab740f8c3b 100644
--- a/pkgs/development/python2-packages/wxPython/2.8.nix
+++ b/pkgs/development/python-modules/wxPython/2.8.nix
diff --git a/pkgs/development/python2-packages/wxPython/builder.sh b/pkgs/development/python-modules/wxPython/builder.sh
index ed7177081f9f..ed7177081f9f 100644
--- a/pkgs/development/python2-packages/wxPython/builder.sh
+++ b/pkgs/development/python-modules/wxPython/builder.sh
diff --git a/pkgs/development/python2-packages/xmpppy/default.nix b/pkgs/development/python-modules/xmpppy/default.nix
index 3fc8058dfb2a..3fc8058dfb2a 100644
--- a/pkgs/development/python2-packages/xmpppy/default.nix
+++ b/pkgs/development/python-modules/xmpppy/default.nix
diff --git a/pkgs/development/python-modules/zope/default.nix b/pkgs/development/python-modules/zope/default.nix
new file mode 100644
index 000000000000..3dc5da98e769
--- /dev/null
+++ b/pkgs/development/python-modules/zope/default.nix
@@ -0,0 +1,15 @@
+{stdenv, fetchurl, python}:
+
+stdenv.mkDerivation rec {
+	version = "3.2.1";
+  name = "zope-${version}";
+  src = fetchurl {
+	  url = "http://www.zope.org/Products/Zope3/${version}/Zope-${version}.tgz";
+    sha256 = "8431984af75054e4ddfe45bf708924240f8b6b02220cd84d090138413ac82341";
+  };
+  patches = [
+    ./zope_python-2.4.4.patch
+    ./zope_python-readline.patch
+  ];
+  buildInputs = [python];
+}
diff --git a/pkgs/development/python2-packages/zope/zope_python-2.4.4.patch b/pkgs/development/python-modules/zope/zope_python-2.4.4.patch
index 223604129641..223604129641 100644
--- a/pkgs/development/python2-packages/zope/zope_python-2.4.4.patch
+++ b/pkgs/development/python-modules/zope/zope_python-2.4.4.patch
diff --git a/pkgs/development/python2-packages/zope/zope_python-readline.patch b/pkgs/development/python-modules/zope/zope_python-readline.patch
index 4775cfba49b9..4775cfba49b9 100644
--- a/pkgs/development/python2-packages/zope/zope_python-readline.patch
+++ b/pkgs/development/python-modules/zope/zope_python-readline.patch
diff --git a/pkgs/development/python2-packages/default.nix b/pkgs/development/python2-packages/default.nix
deleted file mode 100644
index f80062308b02..000000000000
--- a/pkgs/development/python2-packages/default.nix
+++ /dev/null
@@ -1,957 +0,0 @@
-{ pkgs, python, makeWrapper }:
-
-let inherit (pkgs) builderDefsPackage lib fetchurl fetchsvn stdenv zlib libjpeg;
-
-in
-
-rec {
-
-  # pythonPackages
-  # only keep packages being known to build with this python version
-  b = builtins.removeAttrs allPythonPackages
-          (
-           # these packages don't build with specific python versions..
-           (pkgs.lib.optionals (python.libPrefix == "python2.6")
-             [
-             # pythonSexy fails with: /nix/store/8ls1xar0wsxmczas4sr76n1dwpccram9-pygtk-2.16.0/bin/pygtk-codegen-2.0: line 10: exec: /nix/store/8ls1xar0wsxmczas4sr76n1dwpccram9-pygtk-2.16.0/bin/pygobject-codegen-2.0: cannot execute: No such file or directory
-             # Don't disable it even if it fails. Disabling breaks nixpkgs tarball
-             #"pythonSexy"
-             ])
-           ++ (pkgs.lib.optionals (python.libPrefix == "python2.5")
-             [
-             # pygtk requires at least python-2.6. The other packages in this line depend on pygtk
-             "pygobject" "pycairo" "pygtk" "pyGtkGlade" "pythonSexy"
-             # rhpl fails with: diskutil.c:24:20: error: Python.h: No such file or directory
-             "rhpl"
-             ])
-          );
-
-  result = b // {
-    all = builtins.removeAttrs b ["buildPythonPackage"];
-    # also pass this python version so that you can do:
-    # inherit (pythonXYPackages) python libA libB;
-    inherit python;
-  };
-
-  # intentionally not using rec. Using b so that if a depedency doesn't build
-  # its less work to find all depending packages
-  allPythonPackages = {
-
-    setuptools = builderDefsPackage (import ./setuptools) {
-      inherit python;
-      inherit (pkgs) makeWrapper;
-    };
-
-    buildPythonPackage =
-      import ./generic {
-        inherit python makeWrapper lib;
-        inherit (b) setuptools;
-      };
-
-    beautifulsoap = b.buildPythonPackage (rec {
-      name = "beautifulsoap-3.0.8";
-
-      src = fetchurl {
-        url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.0.8.tar.gz";
-        sha256 = "1gasiy5lwbhsxw27g36d88n36xbj52434klisvqhljgckd4xqcy7";
-      };
-
-      # No tests implemented
-      doCheck = false;
-
-      meta = {
-        homepage = http://www.crummy.com/software/BeautifulSoup/;
-
-        license = "bsd";
-
-        description = "Undemanding HTML/XML parser";
-      };
-    }); 
-
-    clientform = b.buildPythonPackage (rec {
-      name = "clientform-0.2.10";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/C/ClientForm/ClientForm-0.2.10.tar.gz";
-        sha256 = "0dydh3i1sx7rrj6d0gj375wkjpiivm7jjlsimw6hmwv4ck7yf1wm";
-      };
-
-      meta = {
-        homepage = http://wwwsearch.sourceforge.net/ClientForm/;
-
-        license = "bsd";
-
-        description = "Python module for handling HTML forms on the client side";
-      };
-    });
-
-    cssutils = b.buildPythonPackage (rec {
-      name = "cssutils-0.9.7a2";
-
-      src = fetchurl {
-        url = http://cssutils.googlecode.com/files/cssutils-0.9.7a2.zip;
-        sha256 = "068p14qhhczpjgn0w7v57a2swj0g4rndhimh8gkg9h9sd7rp6n07";
-      };
-
-      buildInputs = [ pkgs.unzip ];
-
-      # The tests fail - I don't know why
-      doCheck = false;
-
-      meta = {
-        description = "A Python package to parse and build CSS";
-
-        homepage = http://code.google.com/p/cssutils/;
-
-        license = "LGPLv3+";
-      };
-    });
-
-    foursuite = import ./4suite {
-      inherit fetchurl stdenv python;
-    };
-
-    bsddb3 = import ./bsddb3 {
-      inherit fetchurl stdenv python;
-      inherit (pkgs) db4;
-    };
-
-    # python25 only?
-    flup = builderDefsPackage ./flup {
-      inherit fetchurl stdenv python;
-      inherit (b) setuptools;
-    };
-
-    numeric = import ./numeric {
-      inherit fetchurl stdenv python;
-    };
-
-    pil = import ./pil {
-      inherit fetchurl stdenv python;
-      inherit (pkgs) zlib libjpeg freetype;
-    };
-
-    #psyco = import ./psyco {
-    #  inherit fetchurl stdenv python;
-    #};
-
-    pycairo = import ./pycairo {
-      inherit fetchurl stdenv python;
-      inherit (pkgs) cairo x11 pkgconfig;
-    };
-
-    pycrypto = import ./pycrypto {
-      inherit fetchurl stdenv python;
-      inherit (pkgs) gmp;
-    };
-
-    pycups = import ./pycups {
-      inherit stdenv fetchurl python;
-      inherit (pkgs) cups;
-    };
-
-    pygame = import ./pygame {
-      inherit fetchurl stdenv python;
-      inherit (pkgs) pkgconfig SDL SDL_image
-        SDL_mixer SDL_ttf numeric;
-    };
-
-    pygobject = import ./pygobject {
-      inherit fetchurl stdenv python;
-      inherit (pkgs) pkgconfig glib;
-    };
-
-    pygtk = import ./pygtk {
-      inherit fetchurl stdenv python;
-      inherit (b) pygobject pycairo;
-      inherit (pkgs) pkgconfig;
-      inherit (pkgs.gtkLibs) glib gtk;
-    };
-
-    pyGtkGlade = import ./pygtk {
-      inherit fetchurl stdenv python;
-      inherit (b) pygobject pycairo;
-      inherit (pkgs) pkgconfig;
-      inherit (pkgs.gtkLibs) glib gtk;
-      inherit (pkgs.gnome) libglade;
-    };
-
-    pyopengl = import ./pyopengl {
-      inherit fetchurl stdenv python;
-      inherit (b) buildPythonPackage;
-      inherit (pkgs)  mesa freeglut pil;
-    };
-
-    pyopenssl = builderDefsPackage (import ./pyopenssl) {
-      inherit python;
-      inherit (pkgs) openssl;
-    };
-
-    pystringtemplate = import ./stringtemplate {
-      inherit stdenv fetchurl python;
-      inherit (pkgs) antlr;
-    };
-
-    pythonDBus = builderDefsPackage (import ./dbus) {
-      inherit python;
-      inherit (pkgs) pkgconfig dbus_glib;
-      dbus = pkgs.dbus.libs;
-    };
-
-    pythonIRClib = builderDefsPackage (import ./irclib) {
-      inherit python;
-    };
-
-    pythonSexy = builderDefsPackage (import ./libsexy) {
-      inherit python;
-      inherit (pkgs) pkgconfig libxml2 pygtk libsexy;
-      inherit (pkgs.gtkLibs) pango gtk glib;
-    };
-
-    rhpl = import ./rhpl {
-      inherit stdenv fetchurl python;
-      inherit (pkgs) rpm cpio wirelesstools gettext;
-    };
-
-    sip = b.sip410;
-    
-    sip48 = import ./python-sip {
-      inherit stdenv fetchurl python;
-    };
-
-    sip410 = import ./python-sip/4.10.nix {
-      inherit stdenv fetchurl python;
-    };
-
-    pyqt4 = b.pyqt47;
-
-    pyqt45 = import ./pyqt/4.5.nix {
-      inherit stdenv fetchurl python;
-      inherit (b) sip;
-      qt4 = pkgs.qt45;
-    };
-
-    pyqt47 = import ./pyqt/4.7.nix {
-      inherit stdenv fetchurl python;
-      qt4 = pkgs.qt46;
-      sip = b.sip410;
-    };
-
-    pyx = import ./pyx {
-      inherit fetchurl stdenv python makeWrapper;
-    };
-
-    pyxml = import ./pyxml {
-      inherit fetchurl stdenv python makeWrapper;
-    };
-
-    wxPython = b.wxPython26;
-
-    wxPython26 = import ./wxPython/2.6.nix {
-      inherit fetchurl stdenv python;
-      inherit (pkgs) pkgconfig;
-      wxGTK = pkgs.wxGTK26;
-    };
-
-    wxPython28 = import ./wxPython/2.8.nix {
-      inherit fetchurl stdenv python;
-      inherit (pkgs) pkgconfig;
-      inherit (pkgs) wxGTK;
-    };
-
-    argparse = b.buildPythonPackage (rec {
-      name = "argparse-0.9.1";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/a/argparse/${name}.zip";
-        sha256 = "00jw32wwccpf9smraywjk869b93w7f99rw8gi63yfhw6379fnq6m";
-      };
-
-      buildInputs = [ pkgs.unzip ];
-
-      # How do we run the tests?
-      doCheck = false;
-
-      meta = {
-        homepage = http://code.google.com/p/argparse/;
-
-        license = "Apache License 2.0";
-
-        description = "argparse: Python command line parser";
-
-        longDescription = ''
-          The argparse module makes writing command line tools in Python
-          easy.  Just briefly describe your command line interface and
-          argparse will take care of the rest, including: parsing the
-          arguments and flags from sys.argv, converting arg strings into
-          objects for your program, formatting and printing any help
-          messages, and much more.
-        '';
-      };
-    });
-
-    boto = b.buildPythonPackage (rec {
-      name = "boto-1.9b";
-
-      src = fetchurl {
-        url = "http://boto.googlecode.com/files/${name}.tar.gz";
-        sha256 = "0kir3ddm79rxdf7wb5czmxpbnqzgj3j966q4mach29kkb98p48wz";
-      };
-
-      meta = {
-        homepage = http://code.google.com/p/boto/;
-
-        license = "bsd";
-
-        description = "Python interface to Amazon Web Services";
-
-        longDescription = ''
-          The boto module is an integrated interface to current and
-          future infrastructural services offered by Amazon Web
-          Services.  This includes S3, SQS, EC2, among others.
-        '';
-      };
-    });
-
-    darcsver = b.buildPythonPackage (rec {
-      name = "darcsver-1.3.1";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/d/darcsver/${name}.tar.gz";
-        sha256 = "1a5cl2yhnd88a4vkc9r381cbjkcvga87dp9zx5av68857q1nvvvq";
-      };
-
-      buildInputs = [ pkgs.darcs ];
-
-      meta = {
-        description = "Darcsver, generate a version number from Darcs history";
-
-        homepage = http://pypi.python.org/pypi/darcsver;
-
-        license = "BSD-style";
-      };
-    });
-
-    dateutil = b.buildPythonPackage (rec {
-      name = "dateutil-1.4.1";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/p/python-dateutil/python-${name}.tar.gz";
-        sha256 = "0mrkh932k8s74h4rpgksvpmwbrrkq8zn78gbgwc22i2vlp31bdkl";
-      };
-
-      meta = {
-        description = "Powerful extensions to the standard datetime module";
-
-        homepage = http://pypi.python.org/pypi/python-dateutil;
-
-        license = "BSD-style";
-      };
-    });
-
-    foolscap = b.buildPythonPackage (rec {
-      name = "foolscap-0.4.2";
-
-      src = fetchurl {
-        url = "http://foolscap.lothar.com/releases/${name}.tar.gz";
-        sha256 = "14g89kjxxci3ssl9jgvpkyrcq62g361aw8pamlkclk8nnrh4f776";
-      };
-
-      propagatedBuildInputs = [ b.twisted pkgs.pyopenssl ];
-
-      # For some reason "python setup.py test" doesn't work with Python 2.6.
-      doCheck = false;
-
-      meta = {
-        homepage = http://foolscap.lothar.com/;
-
-        description = "Foolscap, an RPC protocol for Python that follows the distributed object-capability model";
-
-        longDescription = ''
-          "Foolscap" is the name for the next-generation RPC protocol,
-          intended to replace Perspective Broker (part of Twisted).
-          Foolscap is a protocol to implement a distributed
-          object-capabilities model in Python.
-        '';
-
-        # See http://foolscap.lothar.com/trac/browser/LICENSE.
-        license = "MIT";
-
-        maintainers = [ stdenv.lib.maintainers.ludo ];
-        platforms = python.meta.platforms;
-      };
-    });
-
-    genshi = b.buildPythonPackage {
-      name = "genshi-0.5.1";
-
-      src = fetchurl {
-        url = http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.tar.bz2;
-        sha256 = "1g2xw3zvgz59ilv7mrdlnvfl6ph8lwflwd4jr6zwrca2zhj7d8rs";
-      };
-
-      patches =
-        [ # Fix `make check' (http://bugs.gentoo.org/276299)
-          (fetchurl {
-            url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/dev-python/genshi/files/genshi-0.5.1_test_fix.patch?rev=1.1";
-            sha256 = "019skkas07lc2kjy5br5jhhf9dqfy4fs389m5f4ws3fc62fklwhk";
-          })
-        ];
-
-      buildInputs = [ b.setuptools ];
-
-      meta = {
-        description = "Python components for parsing HTML, XML and other textual content";
-
-        longDescription = ''
-          Python library that provides an integrated set of
-          components for parsing, generating, and processing HTML, XML or other
-          textual content for output generation on the web.
-        '';
-
-        license = "BSD";
-      };
-    };
-
-    jinja2 = b.buildPythonPackage {
-      name = "jinja2-2.2.1";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.2.1.tar.gz";
-        md5 = "fea849d68891218eb0b21c170f1c32d5";
-      };
-
-      meta = {
-        homepage = http://jinja.pocoo.org/;
-        description = "Stand-alone template engine";
-        license = "BSD";
-        longDescription = ''
-          Jinja2 is a template engine written in pure Python. It provides a
-          Django inspired non-XML syntax but supports inline expressions and
-          an optional sandboxed environment.
-        '';
-      };
-    };
-
-    lxml = b.buildPythonPackage ( rec {
-      name = "lxml-2.2.2";
-
-      src = fetchurl {
-        url = http://pypi.python.org/packages/source/l/lxml/lxml-2.2.2.tar.gz;
-        sha256 = "0zjpsy67wcs69qhb06ficl3a5z229hmczpr8h84rkk05vaagj8qv";
-      };
-
-      buildInputs = [ pkgs.libxml2 pkgs.libxslt ];
-
-      meta = {
-        description = "Pythonic binding for the libxml2 and libxslt libraries";
-        homepage = http://codespeak.net/lxml/index.html;
-        license = "BSD";
-      };
-    });
-
-    matplotlib = b.buildPythonPackage ( rec {
-      name = "matplotlib-0.99.1.2";
-
-      src = fetchurl {
-        url = "http://downloads.sourceforge.net/matplotlib/${name}.tar.gz";
-        sha256 = "12lhwgkahck795946hb8wp605c912zq9ds8067ybbifqs56q24b9";
-      };
-
-      doCheck = false;
-
-      buildInputs = [ b.dateutil b.numpy pkgs.freetype pkgs.libpng pkgs.pkgconfig pkgs.tcl pkgs.tk pkgs.xlibs.libX11 ];
-
-      meta = {
-        description = "python plotting library, making publication quality plots";
-        homepage = "http://matplotlib.sourceforge.net/";
-      };
-    });
-
-    mechanize = b.buildPythonPackage (rec {
-      name = "mechanize-0.1.11";
-
-      src = fetchurl {
-        url = "http://wwwsearch.sourceforge.net/mechanize/src/${name}.tar.gz";
-        sha256 = "1h62mwy4iz09jqz17nrb9j8y0djd500zdfqwrz9xmdwqzqwixkj2";
-      };
-
-      propagatedBuildInputs = [ b.clientform ];
-
-      meta = {
-        description = "Stateful programmatic web browsing in Python";
-
-        homepage = http://wwwsearch.sourceforge.net/;
-
-        license = "BSD-style";
-      };
-    });
-
-    namebench = b.buildPythonPackage (rec {
-      name = "namebench-1.0.5";
-
-      src = fetchurl {
-        url = "http://namebench.googlecode.com/files/${name}.tgz";
-        sha256 = "6cbde35ce94d1f31e7d48f5d8eec13238b4dbc505675a33f1e183e600c1482c3";
-      };
-
-      # No support of GUI yet.
-
-      doCheck = false;
-
-      meta = {
-        homepage = http://namebench.googlecode.com/;
-        description = "Find fastest DNS servers available";
-        license = [
-          "Apache-2.0"
-          # third-party program licenses (embedded in the sources)
-          "LGPL" # Crystal_Clear
-          "free" # dns
-          "Apache-2.0" # graphy
-          "BSD" # jinja2
-        ];
-        longDescription = ''
-          It hunts down the fastest DNS servers available for your computer to
-          use. namebench runs a fair and thorough benchmark using your web
-          browser history, tcpdump output, or standardized datasets in order
-          to provide an individualized recommendation. namebench is completely
-          free and does not modify your system in any way.
-        '';
-      };
-    });
-
-    nevow = b.buildPythonPackage (rec {
-      name = "nevow-0.9.33";
-
-      src = fetchurl {
-        url = "http://divmod.org/trac/attachment/wiki/SoftwareReleases/Nevow-0.9.33.tar.gz?format=raw";
-        sha256 = "1b6zhfxx247b60n1qi2hrawhiaah88v8igg37pf7rjkmvy2z1c6c";
-        name = "${name}.tar.gz";
-      };
-
-      propagatedBuildInputs = [ b.twisted ];
-
-      postInstall = "twistd --help > /dev/null";
-
-      meta = {
-        description = "Nevow, a web application construction kit for Python";
-
-        longDescription = ''
-          Nevow - Pronounced as the French "nouveau", or "noo-voh", Nevow
-          is a web application construction kit written in Python.  It is
-          designed to allow the programmer to express as much of the view
-          logic as desired in Python, and includes a pure Python XML
-          expression syntax named stan to facilitate this.  However it
-          also provides rich support for designer-edited templates, using
-          a very small XML attribute language to provide bi-directional
-          template manipulation capability.
-
-          Nevow also includes formless, a declarative syntax for
-          specifying the types of method parameters and exposing these
-          methods to the web.  Forms can be rendered automatically, and
-          form posts will be validated and input coerced, rendering error
-          pages if appropriate.  Once a form post has validated
-          successfully, the method will be called with the coerced values.
-        '';
-
-        homepage = http://divmod.org/trac/wiki/DivmodNevow;
-
-        license = "BSD-style";
-      };
-    });
-
-    numpy = b.buildPythonPackage ( rec {
-      name = "numpy-1.3.0";
-
-      src = fetchurl {
-        url = "http://downloads.sourceforge.net/numpy/${name}.tar.gz";
-        sha256 = "7524687cce85aa78103046db5e617c626b0ef871a203a049159f88f35647c90d";
-      };
-
-      doCheck = false;
-
-      buildInputs = [ pkgs.liblapack pkgs.blas /* pkgs.gfortran */ ];
-
-      # The build should be run as follows:
-      #
-      #   python setup.py config_fc --fcompiler=gnu95 build
-      #   python setup.py config_fc --fcompiler=gnu95 install
-      #
-      # But I con't figure out how to pass the extra flags to setuptools.
-
-      meta = {
-        description = "Scientific tools for Python";
-        homepage = "http://numpy.scipy.org/";
-      };
-    });
-
-    ply = b.buildPythonPackage (rec {
-      name = "ply-3.2";
-
-      src = fetchurl {
-        url = "http://www.dabeaz.com/ply/${name}.tar.gz";
-        sha256 = "10z4xq8lc8c21v4g7z3zpnvpqbc0vidigrck1kqhwgkqi4gh0kfj";
-      };
-
-      meta = {
-        homepage = http://www.dabeaz.com/ply/;
-
-        description = "PLY (Python Lex-Yacc), an implementation of the lex and yacc parsing tools for Python";
-
-        longDescription = ''
-          PLY is an implementation of lex and yacc parsing tools for Python.
-          In a nutshell, PLY is nothing more than a straightforward lex/yacc
-          implementation.  Here is a list of its essential features: It's
-          implemented entirely in Python; It uses LR-parsing which is
-          reasonably efficient and well suited for larger grammars; PLY
-          provides most of the standard lex/yacc features including support for
-          empty productions, precedence rules, error recovery, and support for
-          ambiguous grammars; PLY is straightforward to use and provides very
-          extensive error checking; PLY doesn't try to do anything more or less
-          than provide the basic lex/yacc functionality.  In other words, it's
-          not a large parsing framework or a component of some larger system.
-        '';
-
-        license = "revised-BSD";
-
-        maintainers = [ stdenv.lib.maintainers.ludo ];
-        platforms = python.meta.platforms;
-      };
-    });
-
-    psycopg2 = b.buildPythonPackage rec {
-      name = "psycopg2-2.0.13";
-
-      doCheck = false;
-
-      src = fetchurl {
-        url = "http://initd.org/pub/software/psycopg/PSYCOPG-2-0/${name}.tar.gz";
-        sha256 = "0arkaa1nbbd3pyn4l1bc75wi7nff3vxxh4s8sj5al5hv20p64pm1";
-      };
-
-      propagatedBuildInputs = [ pkgs.postgresql ];
-
-      meta = {
-        description = "PostgreSQL database adapter for the Python programming language";
-        license = "GPLv2/ZPL";
-      };
-    };
-
-    pycryptopp = b.buildPythonPackage (rec {
-      name = "pycryptopp-0.5.15";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/p/pycryptopp/${name}.tar.gz";
-        sha256 = "0f8v3cs8vjpj423yx3ikj7qjvljrm86x0qpkckidv69kah8kndxa";
-      };
-
-      # Use our own copy of Crypto++.
-      preConfigure = "export PYCRYPTOPP_DISABLE_EMBEDDED_CRYPTOPP=1";
-
-      buildInputs = [ b.setuptoolsDarcs b.darcsver pkgs.cryptopp ];
-
-      meta = {
-        homepage = http://allmydata.org/trac/pycryptopp;
-
-        description = "Python wrappers for the Crypto++ library";
-
-        license = "GPLv2+";
-
-        maintainers = [ stdenv.lib.maintainers.ludo ];
-        platforms = stdenv.lib.platforms.linux;
-      };
-    });
-
-    pysqlite = b.buildPythonPackage (rec {
-      name = "pysqlite-2.5.5";
-
-      src = fetchurl {
-        url = "http://pysqlite.googlecode.com/files/${name}.tar.gz";
-        sha256 = "ef7ca7f44893790e1a7084b10ea083770e138689406fddc7076d12d6bff4d44f";
-      };
-
-      # Since the `.egg' file is zipped, the `NEEDED' of the `.so' files
-      # it contains is not taken into account.  Thus, we must explicitly make
-      # it a propagated input.
-      propagatedBuildInputs = [ pkgs.sqlite ];
-
-      patchPhase = ''
-        substituteInPlace "setup.cfg"                                     \
-                --replace "/usr/local/include" "${pkgs.sqlite}/include"   \
-                --replace "/usr/local/lib" "${pkgs.sqlite}/lib"
-      '';
-
-      # FIXME: How do we run the tests?
-      doCheck = false;
-
-      meta = {
-        homepage = http://pysqlite.org/;
-
-        description = "Python bindings for the SQLite embedded relational database engine";
-
-        longDescription = ''
-          pysqlite is a DB-API 2.0-compliant database interface for SQLite.
-
-          SQLite is a relational database management system contained in
-          a relatively small C library.  It is a public domain project
-          created by D. Richard Hipp.  Unlike the usual client-server
-          paradigm, the SQLite engine is not a standalone process with
-          which the program communicates, but is linked in and thus
-          becomes an integral part of the program.  The library
-          implements most of SQL-92 standard, including transactions,
-          triggers and most of complex queries.
-
-          pysqlite makes this powerful embedded SQL engine available to
-          Python programmers.  It stays compatible with the Python
-          database API specification 2.0 as much as possible, but also
-          exposes most of SQLite's native API, so that it is for example
-          possible to create user-defined SQL functions and aggregates
-          in Python.
-        '';
-
-        license = "revised BSD";
-
-        maintainers = [ stdenv.lib.maintainers.ludo ];
-        platforms = python.meta.platforms;
-      };
-    });
-
-    pyutil = b.buildPythonPackage (rec {
-      name = "pyutil-1.3.30";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/p/pyutil/${name}.tar.gz";
-        sha256 = "1ksb4gn8x53wcyddmjv1ma8cvvhjlmfxc6kpszyhb838i7xzla19";
-      };
-
-      buildInputs = [ b.setuptoolsDarcs ];
-      propagatedBuildInputs = [ b.zbase32 b.argparse ];
-
-      meta = {
-        description = "Pyutil, a collection of mature utilities for Python programmers";
-
-        longDescription = ''
-          These are a few data structures, classes and functions which
-          we've needed over many years of Python programming and which
-          seem to be of general use to other Python programmers. Many of
-          the modules that have existed in pyutil over the years have
-          subsequently been obsoleted by new features added to the
-          Python language or its standard library, thus showing that
-          we're not alone in wanting tools like these.
-        '';
-
-        homepage = http://allmydata.org/trac/pyutil;
-
-        license = "GPLv2+";
-      };
-    });
-
-    pyyaml = b.buildPythonPackage (rec {
-      name = "PyYAML-3.09";
-
-      src = fetchurl {
-        url = "http://pyyaml.org/download/pyyaml/PyYAML-3.09.zip";
-        sha256 = "204aca8b42dbe90e460794d743dd16182011da85507bfd4f092f9f76e0688040";
-      };
-
-      buildInputs = [ pkgs.unzip pkgs.pyrex ];
-      propagatedBuildInputs = [ pkgs.libyaml ];
-
-      meta = {
-        description = "The next generation YAML parser and emitter for Python";
-        homepage = http://pyyaml.org;
-        license = "free"; # !?
-      };
-    });
-
-    setuptoolsDarcs = b.buildPythonPackage {
-      name = "setuptools-darcs-1.2.8";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/s/setuptools_darcs/setuptools_darcs-1.2.8.tar.gz";
-        sha256 = "0jg9q9mhsky444mm7lpmmlxai8hmjg4pc71viv4kni8gls0gk9n8";
-      };
-
-      propagatedBuildInputs = [ pkgs.darcs ];
-
-      meta = {
-        description = "setuptools plugin for the Darcs version control system";
-
-        homepage = http://allmydata.org/trac/setuptools_darcs;
-
-        license = "BSD";
-      };
-    };
-
-    setuptoolsTrial = b.buildPythonPackage {
-      name = "setuptools-trial-0.5.3";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/s/setuptools_trial/setuptools_trial-0.5.3.tar.gz";
-        sha256 = "0h3mgjsz3z1sjl9j0b6bv4bss8d0przamj4gnjmpyazc633hhlyi";
-      };
-
-      propagatedBuildInputs = [ b.twisted ];
-
-      meta = {
-        description = "setuptools plug-in that helps run unit tests built with the \"Trial\" framework (from Twisted)";
-
-        homepage = http://allmydata.org/trac/setuptools_trial;
-
-        license = "unspecified"; # !
-      };
-    };
-
-    simplejson = b.buildPythonPackage (rec {
-      name = "simplejson-2.0.9";
-
-      src = fetchsvn {
-        url = "http://simplejson.googlecode.com/svn/tags/${name}";
-        sha256 = "a48d5256fdb4f258c33da3dda110ecf3c786f086dcb08a01309acde6d1ddb921";
-        rev = "172";  # to be on the safe side
-      };
-
-      meta = {
-        description = "simplejson is a simple, fast, extensible JSON encoder/decoder for Python";
-
-        longDescription = ''
-          simplejson is compatible with Python 2.4 and later with no
-          external dependencies.  It covers the full JSON specification
-          for both encoding and decoding, with unicode support.  By
-          default, encoding is done in an encoding neutral fashion (plain
-          ASCII with \uXXXX escapes for unicode characters).
-        '';
-
-        homepage = http://code.google.com/p/simplejson/;
-
-        license = "MIT";
-      };
-    });
-
-    trac = b.buildPythonPackage {
-      name = "trac-0.11.5";
-
-      src = fetchurl {
-        url = http://ftp.edgewall.com/pub/trac/Trac-0.11.5.tar.gz;
-        sha256 = "cc3362ecc533abc1755dd78e2d096d1413bc975abc3185318f4821458cd6a8ac";
-      };
-
-      doCheck = false;
-
-      PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
-
-      propagatedBuildInputs = [ b.genshi b.setuptools ];
-
-      meta = {
-        description = "Enhanced wiki and issue tracking system for software development projects";
-
-        license = "BSD";
-      };
-    };
-
-    twisted = b.buildPythonPackage {
-      name = "twisted-8.2.0";
-
-      src = fetchurl {
-        url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.2/Twisted-8.2.0.tar.bz2;
-        sha256 = "1c6zplisjdnjzkfs0ld3a0f7m7xbjgx5rcwsdw5i1xiibsq2nq70";
-      };
-
-      propagatedBuildInputs = [ b.zopeInterface ];
-
-      # Generate Twisted's plug-in cache.  Twited users must do it as well.  See
-      # http://twistedmatrix.com/documents/current/core/howto/plugin.html#auto3
-      # and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477103 for
-      # details.
-      postInstall = "$out/bin/twistd --help > /dev/null";
-
-      meta = {
-        homepage = http://twistedmatrix.com/;
-
-        description = "Twisted, an event-driven networking engine written in Python";
-
-        longDescription = ''
-          Twisted is an event-driven networking engine written in Python
-          and licensed under the MIT license.
-        '';
-
-        license = "MIT";
-
-        maintainers = [ stdenv.lib.maintainers.ludo ];
-        platforms = python.meta.platforms;
-      };
-    };
-
-    zbase32 = b.buildPythonPackage (rec {
-      name = "zbase32-1.1.1";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/z/zbase32/${name}.tar.gz";
-        sha256 = "0n59l4rs26vrhxpsfrwybjjir68aj23f09k1yjnbxqy5n0khp8gm";
-      };
-
-      # Tests require `pyutil' so disable them to avoid circular references.
-      doCheck = false;
-
-      buildInputs = [ b.setuptoolsDarcs ];
-
-      meta = {
-        description = "zbase32, a base32 encoder/decoder";
-
-        homepage = http://pypi.python.org/pypi/zbase32;
-
-        license = "BSD";
-      };
-    });
-
-    zfec = b.buildPythonPackage (rec {
-      name = "zfec-1.4.4";
-
-      src = fetchurl {
-        url = "http://pypi.python.org/packages/source/z/zfec/${name}.tar.gz";
-        sha256 = "0rgg7nsvbr4f9xmiclzypc39fnivg23kldv5aa8si0bgsxn6mh6w";
-      };
-
-      buildInputs = [ b.setuptoolsDarcs ];
-      propagatedBuildInputs = [ b.pyutil b.argparse ];
-
-      meta = {
-        homepage = http://allmydata.org/trac/zfec;
-
-        description = "Zfec, a fast erasure codec which can be used with the command-line, C, Python, or Haskell";
-
-        longDescription = ''
-          Fast, portable, programmable erasure coding a.k.a. "forward
-          error correction": the generation of redundant blocks of
-          information such that if some blocks are lost then the
-          original data can be recovered from the remaining blocks. The
-          zfec package includes command-line tools, C API, Python API,
-          and Haskell API.
-        '';
-
-        license = "GPLv2+";
-      };
-    });
-
-    xmpppy = builderDefsPackage (import ./xmpppy) {
-      inherit python;
-      inherit (b) setuptools;
-    };
-
-    zopeInterface = b.buildPythonPackage {
-      name = "zope-interface-3.3.0";
-      src = fetchurl {
-        url = http://www.zope.org/Products/ZopeInterface/3.3.0/zope.interface-3.3.0.tar.gz;
-        sha256 = "0xahg9cmagn4j3dbifvgzbjliw2jdrbf27fhqwkdp8j80xpyyjf0";
-      };
-
-      meta = {
-        description = "Zope.Interface";
-        homepage = http://zope.org/Products/ZopeInterface;
-        license = "ZPL";
-      };
-    };
-
-  };
-
-}.result
diff --git a/pkgs/development/python2-packages/pyopengl/default.nix b/pkgs/development/python2-packages/pyopengl/default.nix
deleted file mode 100644
index 60746c34a822..000000000000
--- a/pkgs/development/python2-packages/pyopengl/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ fetchurl, stdenv, python, mesa, freeglut, pil, buildPythonPackage }:
-
-let version = "3.0.0b5";
-in
-  buildPythonPackage {
-    name = "pyopengl-${version}";
-
-    src = fetchurl {
-      url = "mirror://sourceforge/pyopengl/PyOpenGL-${version}.tar.gz";
-      sha256 = "1rjpl2qdcqn4wamkik840mywdycd39q8dn3wqfaiv35jdsbifxx3";
-    };
-
-    propagatedBuildInputs = [ mesa freeglut pil ];
-
-    meta = {
-      homepage = http://pyopengl.sourceforge.net/;
-      description = "PyOpenGL, the Python OpenGL bindings";
-
-      longDescription = ''
-        PyOpenGL is the cross platform Python binding to OpenGL and
-        related APIs.  The binding is created using the standard (in
-        Python 2.5) ctypes library, and is provided under an extremely
-        liberal BSD-style Open-Source license.
-      '';
-
-      license = "BSD-style";
-    };
-  }
diff --git a/pkgs/development/python2-packages/pyqt/4.5.nix b/pkgs/development/python2-packages/pyqt/4.5.nix
deleted file mode 100644
index 4357a4c0ed0d..000000000000
--- a/pkgs/development/python2-packages/pyqt/4.5.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{stdenv, fetchurl, python, sip, qt4}:
-
-stdenv.mkDerivation {
-  name = "pyqt-x11-gpl-4.5.4";
-  
-  src = fetchurl {
-    url = http://pyqwt.sourceforge.net/support/PyQt-x11-gpl-4.5.4.tar.gz; # Not downloading from riverbank, since they remove older releases
-    sha256 = "1a55zng6yhnbk5swc02bkbyccdgf0f0v94yxk9v5a43hv9xnrl5k";
-  };
-  
-  configurePhase = "python ./configure.py --confirm-license -b $out/bin -d $out/lib/${python.libPrefix}/site-packages -v $out/share/sip -p $out/plugins";
-  
-  buildInputs = [ python sip qt4 ];
-  
-  meta = {
-    description = "Python bindings for Qt";
-    license = "GPL";
-    homepage = http://www.riverbankcomputing.co.uk;
-    maintainers = [ stdenv.lib.maintainers.sander ];
-    platforms = stdenv.lib.platforms.mesaPlatforms;
-  };
-}
diff --git a/pkgs/development/python2-packages/python-sip/default.nix b/pkgs/development/python2-packages/python-sip/default.nix
deleted file mode 100644
index 3fb827e4600e..000000000000
--- a/pkgs/development/python2-packages/python-sip/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, python }:
-
-stdenv.mkDerivation {
-  name = "sip-4.8.2";
-  
-  src = fetchurl {
-    url = http://pyqwt.sourceforge.net/support/sip-4.8.2.tar.gz; # Not downloading from riverbank, since they remove older releases
-    sha256 = "1afr2qaibzgf8fq4fmc31jz9hvbwxbg5jvl68ygvkkdvnbg2kfrf";
-  };
-  
-  configurePhase = "python ./configure.py -d $out/lib/${python.libPrefix}/site-packages -b $out/bin -e $out/include";
-  
-  buildInputs = [ python ];
-  
-  meta = {
-    description = "Creates C++ bindings for Python modules";
-    license = "GPL";
-    maintainers = [ stdenv.lib.maintainers.sander ];
-  };
-}
diff --git a/pkgs/tools/filesystems/svnfs/default.nix b/pkgs/tools/filesystems/svnfs/default.nix
index 4d04bf6ff3c9..c4cd2670e89f 100644
--- a/pkgs/tools/filesystems/svnfs/default.nix
+++ b/pkgs/tools/filesystems/svnfs/default.nix
@@ -1,5 +1,4 @@
-{ stdenv, fetchurl, automake, autoconf, subversion, fuse, apr, perl }: 
-
+args: with args;
 stdenv.mkDerivation {
   name = "svnfs";
 
@@ -23,7 +22,7 @@ stdenv.mkDerivation {
     description = "SvnFs is a filesystem written using FUSE for accessing Subversion repositories";
     homepage = http://www.jmadden.eu/index.php/svnfs/;
     license = "GPLv2";
-    maintainers = [stdenv.lib.maintainers.marcweber];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = [args.lib.maintainers.marcweber];
+    platforms = args.lib.platforms.linux;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index cdaf9aaa8c5c..2be34a33b77e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1234,10 +1234,10 @@ let
     # I did not find any better way of reusing buildPythonPackage+setuptools
     # for a python with openssl support
     buildPythonPackage = assert pythonFull.opensslSupport;
-      import ../development/python2-packages/generic {
+      import ../development/python-modules/generic {
         inherit makeWrapper lib;
         python = pythonFull;
-        setuptools = builderDefsPackage (import ../development/python2-packages/setuptools) {
+        setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
           inherit makeWrapper;
           python = pythonFull;
         };
@@ -1423,6 +1423,24 @@ let
     inherit fetchurl stdenv python emacs;
   };
 
+  pystringtemplate = import ../development/python-modules/stringtemplate {
+    inherit stdenv fetchurl python antlr;
+  };
+
+  pythonDBus = builderDefsPackage (import ../development/python-modules/dbus) {
+    inherit python pkgconfig dbus_glib;
+    dbus = dbus.libs;
+  };
+
+  pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
+    inherit python;
+  };
+
+  pythonSexy = builderDefsPackage (import ../development/python-modules/libsexy) {
+    inherit python libsexy pkgconfig libxml2 pygtk;
+    inherit (gtkLibs) pango gtk glib;
+  };
+
   openmpi = import ../development/libraries/openmpi {
     inherit fetchurl stdenv;
   };
@@ -1844,6 +1862,10 @@ let
     inherit fetchurl perl perlPackages;
   };
 
+  xmpppy = builderDefsPackage (import ../development/python-modules/xmpppy) {
+    inherit python setuptools;
+  };
+
   xpf = import ../tools/text/xml/xpf {
     inherit fetchurl stdenv python;
     libxml2 = libxml2Python;
@@ -2642,6 +2664,16 @@ let
     inherit stdenv fetchurl;
   };
 
+  python = if getConfig ["python" "full"] false then pythonFull else pythonBase;
+  python25 = if getConfig ["python" "full"] false then python25Full else python25Base;
+  python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
+  pythonBase = python26Base;
+  pythonFull = python26Full;
+
+  python24 = import ../development/interpreters/python/2.4 {
+    inherit fetchurl stdenv zlib bzip2;
+  };
+
   python25Base = composedArgsAndFun (import ../development/interpreters/python/2.5) {
     inherit fetchurl stdenv zlib bzip2 gdbm;
   };
@@ -2676,19 +2708,6 @@ let
     xproto = if getConfig ["python" "tkSupport"] true then xlibs.xproto else null;
   };
 
-
-  python31Base = composedArgsAndFun (import ../development/interpreters/python/3.1) {
-    inherit fetchurl stdenv zlib bzip2 gdbm;
-    arch = if stdenv.isDarwin then darwinArchUtility else null;
-    sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
-  };
-
-  python = if getConfig ["python" "full"] false then pythonFull else pythonBase;
-  python25 = if getConfig ["python" "full"] false then python25Full else python25Base;
-  python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
-  pythonBase = python26Base;
-  pythonFull = python26Full;
-
   # new python and lib proposal
   # - adding a python lib to buildinputs should be enough
   #   (handles .pth files by patching site.py
@@ -2699,6 +2718,12 @@ let
   python25New = recurseIntoAttrs ((import ../development/interpreters/python-new/2.5) pkgs);
   pythonNew = python25New; # the default python
 
+  python31Base = composedArgsAndFun (import ../development/interpreters/python/3.1) {
+    inherit fetchurl stdenv zlib bzip2 gdbm;
+    arch = if stdenv.isDarwin then darwinArchUtility else null;
+    sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
+  };
+  
   pyrex = pyrex095;
 
   pyrex095 = import ../development/interpreters/pyrex/0.9.5.nix {
@@ -5278,50 +5303,142 @@ let
 
   ### DEVELOPMENT / PYTHON MODULES
 
-  python25Packages = recurseIntoAttrs( import ../development/python2-packages {
-    inherit pkgs makeWrapper;
-    python = python25;
+  buildPythonPackage =
+    import ../development/python-modules/generic {
+      inherit python setuptools makeWrapper lib;
+    };
+
+  buildPython26Package =
+    import ../development/python-modules/generic {
+      inherit makeWrapper lib;
+      python = python26;
+      setuptools = setuptools_python26;
+    };
+
+  pythonPackages = python26Packages;
+
+  python25Packages = recurseIntoAttrs (import ./python-packages.nix {
+    inherit pkgs python buildPythonPackage;
   });
 
-  python26Packages = recurseIntoAttrs( import ../development/python2-packages {
-    inherit pkgs makeWrapper;
+  python26Packages = recurseIntoAttrs (import ./python-packages.nix {
+    inherit pkgs;
     python = python26;
+    buildPythonPackage = buildPython26Package;
   });
 
-  pythonPackages = python26Packages;
-  buildPythonPackage = pythonPackages.buildPythonPackage;
+  foursuite = import ../development/python-modules/4suite {
+    inherit fetchurl stdenv python;
+  };
+
+  bsddb3 = import ../development/python-modules/bsddb3 {
+    inherit fetchurl stdenv python db4;
+  };
+
+  flup = builderDefsPackage ../development/python-modules/flup {
+    inherit fetchurl stdenv;
+    python = python25;
+    setuptools = setuptools.passthru.function {python = python25;};
+  };
+
+  numeric = import ../development/python-modules/numeric {
+    inherit fetchurl stdenv python;
+  };
+
+  pil = import ../development/python-modules/pil {
+    inherit fetchurl stdenv python zlib libjpeg freetype;
+  };
+
+  psyco = import ../development/python-modules/psyco {
+    inherit fetchurl stdenv python;
+  };
+
+  pycairo = import ../development/python-modules/pycairo {
+    inherit fetchurl stdenv python pkgconfig cairo x11;
+  };
+
+  pycrypto = import ../development/python-modules/pycrypto {
+    inherit fetchurl stdenv python gmp;
+  };
+
+  pycups = import ../development/python-modules/pycups {
+    inherit stdenv fetchurl python cups;
+  };
+
+  pygame = import ../development/python-modules/pygame {
+    inherit fetchurl stdenv python pkgconfig SDL SDL_image
+      SDL_mixer SDL_ttf numeric;
+  };
+
+  pygobject = import ../development/python-modules/pygobject {
+    inherit fetchurl stdenv python pkgconfig glib;
+  };
+
+  pygtk = import ../development/python-modules/pygtk {
+    inherit fetchurl stdenv python pkgconfig pygobject pycairo;
+    inherit (gtkLibs) glib gtk;
+  };
+
+  pyGtkGlade = import ../development/python-modules/pygtk {
+    inherit fetchurl stdenv python pkgconfig pygobject pycairo;
+    inherit (gtkLibs) glib gtk;
+    inherit (gnome) libglade;
+  };
+
+  pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
+    inherit python openssl;
+  };
+
+  rhpl = import ../development/python-modules/rhpl {
+    inherit stdenv fetchurl rpm cpio python wirelesstools gettext;
+  };
+
+  sip = import ../development/python-modules/python-sip {
+    inherit stdenv fetchurl python;
+  };
+
+  pyqt4 = import ../development/python-modules/pyqt {
+    inherit stdenv fetchurl python qt4 sip;
+  };
+
+  pyx = import ../development/python-modules/pyx {
+    inherit fetchurl stdenv python makeWrapper;
+  };
+
+  pyxml = import ../development/python-modules/pyxml {
+    inherit fetchurl stdenv python makeWrapper;
+  };
+
+  setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
+    inherit python makeWrapper;
+  };
+
+  setuptools_python26 = builderDefsPackage (import ../development/python-modules/setuptools) {
+    inherit makeWrapper;
+    python = python26;
+  };
 
-  # global python library aliases:
-  pycrypto = pythonPackages.pycrypto;
-  twisted = pythonPackages.twisted;
-  pygtk = pythonPackages.pygtk;
-  pygobject = pythonPackages.pygobject;
-  pycairo = pythonPackages.pycairo;
-  pyGtkGlade = pythonPackages.pyGtkGlade;
-  pythonDBus = pythonPackages.pythonDBus;
-  setuptools = pythonPackages.setuptools;
-  pil = pythonPackages.pil;
-  pythonIRClib = pythonPackages.pythonIRClib;
-  pyxml = pythonPackages.pyxml;
-  pyopengl = pythonPackages.pyopengl;
-  pygame = pythonPackages.pygame;
-  flup = pythonPackages.flup;
-  numeric = pythonPackages.numeric;
-  pyqt4 = pythonPackages.pyqt4;
-  sip410 = pythonPackages.sip410;
-  pyopenssl = pythonPackages.pyopenssl;
-  pythonSexy = pythonPackages.pythonSexy;
   wxPython = wxPython26;
-  sip = pythonPackages.sip;
-  xmpppy = pythonPackages.xmpppy;
-  pycups = pythonPackages.pycups;
-  rhpl = pythonPackages.rhpl;
-  nevow = pythonPackages.nevow;
-
-  # 2.6 aliases
-  wxPython26 = python26Packages.wxPython;
-  pil_python26 = python26Packages.pil;
- 
+
+  wxPython26 = import ../development/python-modules/wxPython/2.6.nix {
+    inherit fetchurl stdenv pkgconfig python;
+    wxGTK = wxGTK26;
+  };
+
+  wxPython28 = import ../development/python-modules/wxPython/2.8.nix {
+    inherit fetchurl stdenv pkgconfig python;
+    inherit wxGTK;
+  };
+
+  twisted = pythonPackages.twisted;
+
+  ZopeInterface = pythonPackages.zopeInterface;
+
+  zope = import ../development/python-modules/zope {
+    inherit fetchurl stdenv;
+    python = python24;
+  };
+
   ### SERVERS
 
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
new file mode 100644
index 000000000000..16a6544f3ff3
--- /dev/null
+++ b/pkgs/top-level/python-packages.nix
@@ -0,0 +1,785 @@
+{ pkgs, python, buildPythonPackage }:
+
+rec {
+  inherit (pkgs) fetchurl fetchsvn stdenv;
+
+  argparse = buildPythonPackage (rec {
+    name = "argparse-0.9.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/a/argparse/${name}.zip";
+      sha256 = "00jw32wwccpf9smraywjk869b93w7f99rw8gi63yfhw6379fnq6m";
+    };
+
+    buildInputs = [ pkgs.unzip ];
+
+    # How do we run the tests?
+    doCheck = false;
+
+    meta = {
+      homepage = http://code.google.com/p/argparse/;
+
+      license = "Apache License 2.0";
+
+      description = "argparse: Python command line parser";
+
+      longDescription = ''
+        The argparse module makes writing command line tools in Python
+        easy.  Just briefly describe your command line interface and
+        argparse will take care of the rest, including: parsing the
+        arguments and flags from sys.argv, converting arg strings into
+        objects for your program, formatting and printing any help
+        messages, and much more.
+      '';
+    };
+  });
+
+  beautifulsoap = buildPythonPackage (rec {
+    name = "beautifulsoap-3.0.8";
+
+    src = fetchurl {
+      url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.0.8.tar.gz";
+      sha256 = "1gasiy5lwbhsxw27g36d88n36xbj52434klisvqhljgckd4xqcy7";
+    };
+
+    # No tests implemented
+    doCheck = false;
+
+    meta = {
+      homepage = http://www.crummy.com/software/BeautifulSoup/;
+
+      license = "bsd";
+
+      description = "Undemanding HTML/XML parser";
+    };
+  });
+
+  boto = buildPythonPackage (rec {
+    name = "boto-1.9b";
+
+    src = fetchurl {
+      url = "http://boto.googlecode.com/files/${name}.tar.gz";
+      sha256 = "0kir3ddm79rxdf7wb5czmxpbnqzgj3j966q4mach29kkb98p48wz";
+    };
+
+    meta = {
+      homepage = http://code.google.com/p/boto/;
+
+      license = "bsd";
+
+      description = "Python interface to Amazon Web Services";
+
+      longDescription = ''
+        The boto module is an integrated interface to current and
+        future infrastructural services offered by Amazon Web
+        Services.  This includes S3, SQS, EC2, among others.
+      '';
+    };
+  });
+
+  clientform = buildPythonPackage (rec {
+    name = "clientform-0.2.10";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/C/ClientForm/ClientForm-0.2.10.tar.gz";
+      sha256 = "0dydh3i1sx7rrj6d0gj375wkjpiivm7jjlsimw6hmwv4ck7yf1wm";
+    };
+
+    meta = {
+      homepage = http://wwwsearch.sourceforge.net/ClientForm/;
+
+      license = "bsd";
+
+      description = "Python module for handling HTML forms on the client side";
+    };
+  });
+
+  cssutils = buildPythonPackage (rec {
+    name = "cssutils-0.9.7a2";
+
+    src = fetchurl {
+      url = http://cssutils.googlecode.com/files/cssutils-0.9.7a2.zip;
+      sha256 = "068p14qhhczpjgn0w7v57a2swj0g4rndhimh8gkg9h9sd7rp6n07";
+    };
+
+    buildInputs = [ pkgs.unzip ];
+
+    # The tests fail - I don't know why
+    doCheck = false;
+
+    meta = {
+      description = "A Python package to parse and build CSS";
+
+      homepage = http://code.google.com/p/cssutils/;
+
+      license = "LGPLv3+";
+    };
+  });
+
+  darcsver = buildPythonPackage (rec {
+    name = "darcsver-1.3.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/d/darcsver/${name}.tar.gz";
+      sha256 = "1a5cl2yhnd88a4vkc9r381cbjkcvga87dp9zx5av68857q1nvvvq";
+    };
+
+    # Note: We don't actually need to provide Darcs as a build input.
+    # Darcsver will DTRT when Darcs isn't available.  See news.gmane.org
+    # http://thread.gmane.org/gmane.comp.file-systems.tahoe.devel/3200 for a
+    # discussion.
+
+    meta = {
+      description = "Darcsver, generate a version number from Darcs history";
+
+      homepage = http://pypi.python.org/pypi/darcsver;
+
+      license = "BSD-style";
+    };
+  });
+
+  dateutil = buildPythonPackage (rec {
+    name = "dateutil-1.4.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/python-dateutil/python-${name}.tar.gz";
+      sha256 = "0mrkh932k8s74h4rpgksvpmwbrrkq8zn78gbgwc22i2vlp31bdkl";
+    };
+
+    meta = {
+      description = "Powerful extensions to the standard datetime module";
+
+      homepage = http://pypi.python.org/pypi/python-dateutil;
+
+      license = "BSD-style";
+    };
+  });
+
+  foolscap = buildPythonPackage (rec {
+    name = "foolscap-0.4.2";
+
+    src = fetchurl {
+      url = "http://foolscap.lothar.com/releases/${name}.tar.gz";
+      sha256 = "14g89kjxxci3ssl9jgvpkyrcq62g361aw8pamlkclk8nnrh4f776";
+    };
+
+    propagatedBuildInputs = [ twisted pkgs.pyopenssl ];
+
+    # For some reason "python setup.py test" doesn't work with Python 2.6.
+    doCheck = false;
+
+    meta = {
+      homepage = http://foolscap.lothar.com/;
+
+      description = "Foolscap, an RPC protocol for Python that follows the distributed object-capability model";
+
+      longDescription = ''
+        "Foolscap" is the name for the next-generation RPC protocol,
+        intended to replace Perspective Broker (part of Twisted).
+        Foolscap is a protocol to implement a distributed
+        object-capabilities model in Python.
+      '';
+
+      # See http://foolscap.lothar.com/trac/browser/LICENSE.
+      license = "MIT";
+
+      maintainers = [ stdenv.lib.maintainers.ludo ];
+      platforms = python.meta.platforms;
+    };
+  });
+
+  genshi = buildPythonPackage {
+    name = "genshi-0.5.1";
+
+    src = fetchurl {
+      url = http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.tar.bz2;
+      sha256 = "1g2xw3zvgz59ilv7mrdlnvfl6ph8lwflwd4jr6zwrca2zhj7d8rs";
+    };
+
+    patches =
+      [ # Fix `make check' (http://bugs.gentoo.org/276299)
+        (fetchurl {
+          url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/dev-python/genshi/files/genshi-0.5.1_test_fix.patch?rev=1.1";
+          sha256 = "019skkas07lc2kjy5br5jhhf9dqfy4fs389m5f4ws3fc62fklwhk";
+        })
+      ];
+
+    buildInputs = [ pkgs.setuptools ];
+
+    meta = {
+      description = "Python components for parsing HTML, XML and other textual content";
+
+      longDescription = ''
+        Python library that provides an integrated set of
+        components for parsing, generating, and processing HTML, XML or other
+        textual content for output generation on the web.
+      '';
+
+      license = "BSD";
+    };
+  };
+
+  jinja2 = buildPythonPackage {
+    name = "jinja2-2.2.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.2.1.tar.gz";
+      md5 = "fea849d68891218eb0b21c170f1c32d5";
+    };
+
+    meta = {
+      homepage = http://jinja.pocoo.org/;
+      description = "Stand-alone template engine";
+      license = "BSD";
+      longDescription = ''
+        Jinja2 is a template engine written in pure Python. It provides a
+        Django inspired non-XML syntax but supports inline expressions and
+        an optional sandboxed environment.
+      '';
+    };
+  };
+
+  lxml = buildPythonPackage ( rec {
+    name = "lxml-2.2.2";
+
+    src = fetchurl {
+      url = http://pypi.python.org/packages/source/l/lxml/lxml-2.2.2.tar.gz;
+      sha256 = "0zjpsy67wcs69qhb06ficl3a5z229hmczpr8h84rkk05vaagj8qv";
+    };
+
+    buildInputs = [ pkgs.libxml2 pkgs.libxslt ];
+
+    meta = {
+      description = "Pythonic binding for the libxml2 and libxslt libraries";
+      homepage = http://codespeak.net/lxml/index.html;
+      license = "BSD";
+    };
+  });
+
+  matplotlib = buildPythonPackage ( rec {
+    name = "matplotlib-0.99.1.2";
+
+    src = fetchurl {
+      url = "http://downloads.sourceforge.net/matplotlib/${name}.tar.gz";
+      sha256 = "12lhwgkahck795946hb8wp605c912zq9ds8067ybbifqs56q24b9";
+    };
+
+    doCheck = false;
+
+    buildInputs = [ dateutil numpy pkgs.freetype pkgs.libpng pkgs.pkgconfig pkgs.tcl pkgs.tk pkgs.xlibs.libX11 ];
+
+    meta = {
+      description = "python plotting library, making publication quality plots";
+      homepage = "http://matplotlib.sourceforge.net/";
+    };
+  });
+
+  mechanize = buildPythonPackage (rec {
+    name = "mechanize-0.1.11";
+
+    src = fetchurl {
+      url = "http://wwwsearch.sourceforge.net/mechanize/src/${name}.tar.gz";
+      sha256 = "1h62mwy4iz09jqz17nrb9j8y0djd500zdfqwrz9xmdwqzqwixkj2";
+    };
+
+    propagatedBuildInputs = [ clientform ];
+
+    meta = {
+      description = "Stateful programmatic web browsing in Python";
+
+      homepage = http://wwwsearch.sourceforge.net/;
+
+      license = "BSD-style";
+    };
+  });
+
+  namebench = buildPythonPackage (rec {
+    name = "namebench-1.0.5";
+
+    src = fetchurl {
+      url = "http://namebench.googlecode.com/files/${name}.tgz";
+      sha256 = "6cbde35ce94d1f31e7d48f5d8eec13238b4dbc505675a33f1e183e600c1482c3";
+    };
+
+    # No support of GUI yet.
+
+    doCheck = false;
+
+    meta = {
+      homepage = http://namebench.googlecode.com/;
+      description = "Find fastest DNS servers available";
+      license = [
+        "Apache-2.0"
+        # third-party program licenses (embedded in the sources)
+        "LGPL" # Crystal_Clear
+        "free" # dns
+        "Apache-2.0" # graphy
+        "BSD" # jinja2
+      ];
+      longDescription = ''
+        It hunts down the fastest DNS servers available for your computer to
+        use. namebench runs a fair and thorough benchmark using your web
+        browser history, tcpdump output, or standardized datasets in order
+        to provide an individualized recommendation. namebench is completely
+        free and does not modify your system in any way.
+      '';
+    };
+  });
+
+  nevow = buildPythonPackage (rec {
+    name = "nevow-0.9.33";
+
+    src = fetchurl {
+      url = "http://divmod.org/trac/attachment/wiki/SoftwareReleases/Nevow-0.9.33.tar.gz?format=raw";
+      sha256 = "1b6zhfxx247b60n1qi2hrawhiaah88v8igg37pf7rjkmvy2z1c6c";
+      name = "${name}.tar.gz";
+    };
+
+    propagatedBuildInputs = [ twisted ];
+
+    postInstall = "twistd --help > /dev/null";
+
+    meta = {
+      description = "Nevow, a web application construction kit for Python";
+
+      longDescription = ''
+        Nevow - Pronounced as the French "nouveau", or "noo-voh", Nevow
+        is a web application construction kit written in Python.  It is
+        designed to allow the programmer to express as much of the view
+        logic as desired in Python, and includes a pure Python XML
+        expression syntax named stan to facilitate this.  However it
+        also provides rich support for designer-edited templates, using
+        a very small XML attribute language to provide bi-directional
+        template manipulation capability.
+
+        Nevow also includes formless, a declarative syntax for
+        specifying the types of method parameters and exposing these
+        methods to the web.  Forms can be rendered automatically, and
+        form posts will be validated and input coerced, rendering error
+        pages if appropriate.  Once a form post has validated
+        successfully, the method will be called with the coerced values.
+      '';
+
+      homepage = http://divmod.org/trac/wiki/DivmodNevow;
+
+      license = "BSD-style";
+    };
+  });
+
+  numpy = buildPythonPackage ( rec {
+    name = "numpy-1.3.0";
+
+    src = fetchurl {
+      url = "http://downloads.sourceforge.net/numpy/${name}.tar.gz";
+      sha256 = "7524687cce85aa78103046db5e617c626b0ef871a203a049159f88f35647c90d";
+    };
+
+    doCheck = false;
+
+    buildInputs = [ pkgs.liblapack pkgs.blas /* pkgs.gfortran */ ];
+
+    # The build should be run as follows:
+    #
+    #   python setup.py config_fc --fcompiler=gnu95 build
+    #   python setup.py config_fc --fcompiler=gnu95 install
+    #
+    # But I con't figure out how to pass the extra flags to setuptools.
+
+    meta = {
+      description = "Scientific tools for Python";
+      homepage = "http://numpy.scipy.org/";
+    };
+  });
+
+  ply = buildPythonPackage (rec {
+    name = "ply-3.2";
+
+    src = fetchurl {
+      url = "http://www.dabeaz.com/ply/${name}.tar.gz";
+      sha256 = "10z4xq8lc8c21v4g7z3zpnvpqbc0vidigrck1kqhwgkqi4gh0kfj";
+    };
+
+    meta = {
+      homepage = http://www.dabeaz.com/ply/;
+
+      description = "PLY (Python Lex-Yacc), an implementation of the lex and yacc parsing tools for Python";
+
+      longDescription = ''
+        PLY is an implementation of lex and yacc parsing tools for Python.
+        In a nutshell, PLY is nothing more than a straightforward lex/yacc
+        implementation.  Here is a list of its essential features: It's
+        implemented entirely in Python; It uses LR-parsing which is
+        reasonably efficient and well suited for larger grammars; PLY
+        provides most of the standard lex/yacc features including support for
+        empty productions, precedence rules, error recovery, and support for
+        ambiguous grammars; PLY is straightforward to use and provides very
+        extensive error checking; PLY doesn't try to do anything more or less
+        than provide the basic lex/yacc functionality.  In other words, it's
+        not a large parsing framework or a component of some larger system.
+      '';
+
+      license = "revised-BSD";
+
+      maintainers = [ stdenv.lib.maintainers.ludo ];
+      platforms = python.meta.platforms;
+    };
+  });
+
+  psycopg2 = buildPythonPackage rec {
+    name = "psycopg2-2.0.13";
+
+    doCheck = false;
+
+    src = fetchurl {
+      url = "http://initd.org/pub/software/psycopg/PSYCOPG-2-0/${name}.tar.gz";
+      sha256 = "0arkaa1nbbd3pyn4l1bc75wi7nff3vxxh4s8sj5al5hv20p64pm1";
+    };
+
+    propagatedBuildInputs = [ pkgs.postgresql ];
+
+    meta = {
+      description = "PostgreSQL database adapter for the Python programming language";
+      license = "GPLv2/ZPL";
+    };
+  };
+
+  pycryptopp = buildPythonPackage (rec {
+    name = "pycryptopp-0.5.15";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pycryptopp/${name}.tar.gz";
+      sha256 = "0f8v3cs8vjpj423yx3ikj7qjvljrm86x0qpkckidv69kah8kndxa";
+    };
+
+    # Use our own copy of Crypto++.
+    preConfigure = "export PYCRYPTOPP_DISABLE_EMBEDDED_CRYPTOPP=1";
+
+    buildInputs = [ setuptoolsDarcs darcsver pkgs.cryptopp ];
+
+    meta = {
+      homepage = http://allmydata.org/trac/pycryptopp;
+
+      description = "Python wrappers for the Crypto++ library";
+
+      license = "GPLv2+";
+
+      maintainers = [ stdenv.lib.maintainers.ludo ];
+      platforms = stdenv.lib.platforms.linux;
+    };
+  });
+
+  pyopengl =
+    let version = "3.0.0b5";
+    in
+      buildPythonPackage {
+        name = "pyopengl-${version}";
+
+        src = fetchurl {
+          url = "mirror://sourceforge/pyopengl/PyOpenGL-${version}.tar.gz";
+          sha256 = "1rjpl2qdcqn4wamkik840mywdycd39q8dn3wqfaiv35jdsbifxx3";
+        };
+
+        propagatedBuildInputs = with pkgs; [ mesa freeglut pil ];
+
+        meta = {
+          homepage = http://pyopengl.sourceforge.net/;
+          description = "PyOpenGL, the Python OpenGL bindings";
+
+          longDescription = ''
+            PyOpenGL is the cross platform Python binding to OpenGL and
+            related APIs.  The binding is created using the standard (in
+            Python 2.5) ctypes library, and is provided under an extremely
+            liberal BSD-style Open-Source license.
+          '';
+
+          license = "BSD-style";
+        };
+      };
+
+  pysqlite = buildPythonPackage (rec {
+    name = "pysqlite-2.5.5";
+
+    src = fetchurl {
+      url = "http://pysqlite.googlecode.com/files/${name}.tar.gz";
+      sha256 = "ef7ca7f44893790e1a7084b10ea083770e138689406fddc7076d12d6bff4d44f";
+    };
+
+    # Since the `.egg' file is zipped, the `NEEDED' of the `.so' files
+    # it contains is not taken into account.  Thus, we must explicitly make
+    # it a propagated input.
+    propagatedBuildInputs = [ pkgs.sqlite ];
+
+    patchPhase = ''
+      substituteInPlace "setup.cfg"                                     \
+              --replace "/usr/local/include" "${pkgs.sqlite}/include"   \
+              --replace "/usr/local/lib" "${pkgs.sqlite}/lib"
+    '';
+
+    # FIXME: How do we run the tests?
+    doCheck = false;
+
+    meta = {
+      homepage = http://pysqlite.org/;
+
+      description = "Python bindings for the SQLite embedded relational database engine";
+
+      longDescription = ''
+        pysqlite is a DB-API 2.0-compliant database interface for SQLite.
+
+        SQLite is a relational database management system contained in
+        a relatively small C library.  It is a public domain project
+        created by D. Richard Hipp.  Unlike the usual client-server
+        paradigm, the SQLite engine is not a standalone process with
+        which the program communicates, but is linked in and thus
+        becomes an integral part of the program.  The library
+        implements most of SQL-92 standard, including transactions,
+        triggers and most of complex queries.
+
+        pysqlite makes this powerful embedded SQL engine available to
+        Python programmers.  It stays compatible with the Python
+        database API specification 2.0 as much as possible, but also
+        exposes most of SQLite's native API, so that it is for example
+        possible to create user-defined SQL functions and aggregates
+        in Python.
+      '';
+
+      license = "revised BSD";
+
+      maintainers = [ stdenv.lib.maintainers.ludo ];
+      platforms = python.meta.platforms;
+    };
+  });
+
+  pyutil = buildPythonPackage (rec {
+    name = "pyutil-1.3.30";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pyutil/${name}.tar.gz";
+      sha256 = "1ksb4gn8x53wcyddmjv1ma8cvvhjlmfxc6kpszyhb838i7xzla19";
+    };
+
+    buildInputs = [ setuptoolsDarcs ];
+    propagatedBuildInputs = [ zbase32 argparse ];
+
+    meta = {
+      description = "Pyutil, a collection of mature utilities for Python programmers";
+
+      longDescription = ''
+        These are a few data structures, classes and functions which
+        we've needed over many years of Python programming and which
+        seem to be of general use to other Python programmers. Many of
+        the modules that have existed in pyutil over the years have
+        subsequently been obsoleted by new features added to the
+        Python language or its standard library, thus showing that
+        we're not alone in wanting tools like these.
+      '';
+
+      homepage = http://allmydata.org/trac/pyutil;
+
+      license = "GPLv2+";
+    };
+  });
+
+  pyyaml = buildPythonPackage (rec {
+    name = "PyYAML-3.09";
+
+    src = fetchurl {
+      url = "http://pyyaml.org/download/pyyaml/PyYAML-3.09.zip";
+      sha256 = "204aca8b42dbe90e460794d743dd16182011da85507bfd4f092f9f76e0688040";
+    };
+
+    buildInputs = [ pkgs.unzip pkgs.pyrex ];
+    propagatedBuildInputs = [ pkgs.libyaml ];
+
+    meta = {
+      description = "The next generation YAML parser and emitter for Python";
+      homepage = http://pyyaml.org;
+      license = "free"; # !?
+    };
+  });
+
+  setuptoolsDarcs = buildPythonPackage {
+    name = "setuptools-darcs-1.2.8";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/s/setuptools_darcs/setuptools_darcs-1.2.8.tar.gz";
+      sha256 = "0jg9q9mhsky444mm7lpmmlxai8hmjg4pc71viv4kni8gls0gk9n8";
+    };
+
+    propagatedBuildInputs = [ pkgs.darcs ];
+
+    meta = {
+      description = "setuptools plugin for the Darcs version control system";
+
+      homepage = http://allmydata.org/trac/setuptools_darcs;
+
+      license = "BSD";
+    };
+  };
+
+  setuptoolsTrial = buildPythonPackage {
+    name = "setuptools-trial-0.5.3";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/s/setuptools_trial/setuptools_trial-0.5.3.tar.gz";
+      sha256 = "0h3mgjsz3z1sjl9j0b6bv4bss8d0przamj4gnjmpyazc633hhlyi";
+    };
+
+    propagatedBuildInputs = [ twisted ];
+
+    meta = {
+      description = "setuptools plug-in that helps run unit tests built with the \"Trial\" framework (from Twisted)";
+
+      homepage = http://allmydata.org/trac/setuptools_trial;
+
+      license = "unspecified"; # !
+    };
+  };
+
+  simplejson = buildPythonPackage (rec {
+    name = "simplejson-2.0.9";
+
+    src = fetchsvn {
+      url = "http://simplejson.googlecode.com/svn/tags/${name}";
+      sha256 = "a48d5256fdb4f258c33da3dda110ecf3c786f086dcb08a01309acde6d1ddb921";
+      rev = "172";  # to be on the safe side
+    };
+
+    meta = {
+      description = "simplejson is a simple, fast, extensible JSON encoder/decoder for Python";
+
+      longDescription = ''
+        simplejson is compatible with Python 2.4 and later with no
+        external dependencies.  It covers the full JSON specification
+        for both encoding and decoding, with unicode support.  By
+        default, encoding is done in an encoding neutral fashion (plain
+        ASCII with \uXXXX escapes for unicode characters).
+      '';
+
+      homepage = http://code.google.com/p/simplejson/;
+
+      license = "MIT";
+    };
+  });
+
+  trac = buildPythonPackage {
+    name = "trac-0.11.5";
+
+    src = fetchurl {
+      url = http://ftp.edgewall.com/pub/trac/Trac-0.11.5.tar.gz;
+      sha256 = "cc3362ecc533abc1755dd78e2d096d1413bc975abc3185318f4821458cd6a8ac";
+    };
+
+    doCheck = false;
+
+    PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
+
+    propagatedBuildInputs = [ genshi pkgs.setuptools ];
+
+    meta = {
+      description = "Enhanced wiki and issue tracking system for software development projects";
+
+      license = "BSD";
+    };
+  };
+
+  twisted = buildPythonPackage {
+    name = "twisted-8.2.0";
+
+    src = fetchurl {
+      url = http://tmrc.mit.edu/mirror/twisted/Twisted/8.2/Twisted-8.2.0.tar.bz2;
+      sha256 = "1c6zplisjdnjzkfs0ld3a0f7m7xbjgx5rcwsdw5i1xiibsq2nq70";
+    };
+
+    propagatedBuildInputs = [ zopeInterface ];
+
+    # Generate Twisted's plug-in cache.  Twited users must do it as well.  See
+    # http://twistedmatrix.com/documents/current/core/howto/plugin.html#auto3
+    # and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477103 for
+    # details.
+    postInstall = "$out/bin/twistd --help > /dev/null";
+
+    meta = {
+      homepage = http://twistedmatrix.com/;
+
+      description = "Twisted, an event-driven networking engine written in Python";
+
+      longDescription = ''
+        Twisted is an event-driven networking engine written in Python
+        and licensed under the MIT license.
+      '';
+
+      license = "MIT";
+
+      maintainers = [ stdenv.lib.maintainers.ludo ];
+      platforms = python.meta.platforms;
+    };
+  };
+
+  zbase32 = buildPythonPackage (rec {
+    name = "zbase32-1.1.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/z/zbase32/${name}.tar.gz";
+      sha256 = "0n59l4rs26vrhxpsfrwybjjir68aj23f09k1yjnbxqy5n0khp8gm";
+    };
+
+    # Tests require `pyutil' so disable them to avoid circular references.
+    doCheck = false;
+
+    buildInputs = [ setuptoolsDarcs ];
+
+    meta = {
+      description = "zbase32, a base32 encoder/decoder";
+
+      homepage = http://pypi.python.org/pypi/zbase32;
+
+      license = "BSD";
+    };
+  });
+
+  zfec = buildPythonPackage (rec {
+    name = "zfec-1.4.4";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/z/zfec/${name}.tar.gz";
+      sha256 = "0rgg7nsvbr4f9xmiclzypc39fnivg23kldv5aa8si0bgsxn6mh6w";
+    };
+
+    buildInputs = [ setuptoolsDarcs ];
+    propagatedBuildInputs = [ pyutil argparse ];
+
+    meta = {
+      homepage = http://allmydata.org/trac/zfec;
+
+      description = "Zfec, a fast erasure codec which can be used with the command-line, C, Python, or Haskell";
+
+      longDescription = ''
+        Fast, portable, programmable erasure coding a.k.a. "forward
+        error correction": the generation of redundant blocks of
+        information such that if some blocks are lost then the
+        original data can be recovered from the remaining blocks. The
+        zfec package includes command-line tools, C API, Python API,
+        and Haskell API.
+      '';
+
+      license = "GPLv2+";
+    };
+  });
+
+  zopeInterface = buildPythonPackage {
+    name = "zope-interface-3.3.0";
+    src = fetchurl {
+      url = http://www.zope.org/Products/ZopeInterface/3.3.0/zope.interface-3.3.0.tar.gz;
+      sha256 = "0xahg9cmagn4j3dbifvgzbjliw2jdrbf27fhqwkdp8j80xpyyjf0";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "Zope.Interface";
+      homepage = http://zope.org/Products/ZopeInterface;
+      license = "ZPL";
+    };
+  };
+}