diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
new file mode 100644
index 000000000000..d45d724ae589
--- /dev/null
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "pylint-0.26.0";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "http://download.logilab.org/pub/pylint/${name}.tar.gz";
+    sha256 = "1mg1ywpj0klklv63s2hwn5xwxi3wfwgnyz9d4pz32hzb53azq835";
+  };
+
+  propagatedBuildInputs = [ pythonPackages.logilab_astng ];
+
+  postInstall = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp "elisp/"*.el $out/share/emacs/site-lisp/
+  '';
+
+  meta = {
+    homepage = http://www.logilab.org/project/pylint;
+    description = "A bug and style checker for Python";
+  };
+}
diff --git a/pkgs/development/python-modules/rbtools/default.nix b/pkgs/development/python-modules/rbtools/default.nix
new file mode 100644
index 000000000000..7d82ef9adf2e
--- /dev/null
+++ b/pkgs/development/python-modules/rbtools/default.nix
@@ -0,0 +1,13 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "rbtools-0.4.1";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "http://downloads.reviewboard.org/releases/RBTools/0.4/RBTools-0.4.1.tar.gz";
+    sha256 = "1v0r7rfzrasj56s53mib51wl056g7ykh2y1c6dwv12r6hzqsycgv";
+  };
+
+  propagatedBuildInputs = [ pythonPackages.setuptools ];
+}
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index 3dcaaca4c250..d6ad28645c11 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -34,9 +34,10 @@ stdenv.mkDerivation rec {
     ${python}/bin/${python.executable} setup.py test
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Utilities to facilitate the installation of Python packages";
     homepage = http://pypi.python.org/pypi/setuptools;
     licenses = [ "PSF" "ZPL" ];
+    platforms = platforms.all;
   };    
 }
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
new file mode 100644
index 000000000000..aa8361c737f1
--- /dev/null
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "awscli-${version}";
+  version = "0.8.3";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "https://github.com/aws/aws-cli/archive/${version}.tar.gz";
+    sha256 = "0v7igh00zja560v8qz315g3m7x9six1hprrrb10cpp9sy8n58xnn";
+  };
+
+  propagatedBuildInputs = [ 
+    pythonPackages.argparse
+    pythonPackages.botocore
+    pythonPackages.colorama
+  ];
+}
diff --git a/pkgs/tools/video/vnc2flv/default.nix b/pkgs/tools/video/vnc2flv/default.nix
new file mode 100644
index 000000000000..f2f77bd84cd4
--- /dev/null
+++ b/pkgs/tools/video/vnc2flv/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "vnc2flv-20100207";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "http://pypi.python.org/packages/source/v/vnc2flv/${name}.tar.gz";
+    md5 = "8492e46496e187b49fe5569b5639804e";
+  };
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = {
+    description = "Tool to record VNC sessions to Flash Video";
+    homepage = http://www.unixuser.org/~euske/python/vnc2flv/;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f7ebd70ee812..5d06b8732bb9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -421,6 +421,8 @@ let
     };
   };
 
+  awscli = callPackage ../tools/admin/awscli { };
+
   ec2_api_tools = callPackage ../tools/virtualization/ec2-api-tools { };
 
   ec2_ami_tools = callPackage ../tools/virtualization/ec2-ami-tools { };
@@ -1825,6 +1827,8 @@ let
     inherit (gnome) scrollkeeper;
   };
 
+  vnc2flv = callPackage ../tools/video/vnc2flv {};
+
   vncrec = builderDefsPackage ../tools/video/vncrec {
     inherit (xlibs) imake libX11 xproto gccmakedep libXt
       libXmu libXaw libXext xextproto libSM libICE libXpm
@@ -5740,11 +5744,11 @@ let
 
   python3Packages = python33Packages;
 
-  python33Packages = import ./python-packages.nix {
+  python33Packages = recurseIntoAttrs (import ./python-packages.nix {
     inherit pkgs;
     inherit (lib) lowPrio;
     python = python33;
-  };
+  });
 
   python32Packages = import ./python-packages.nix {
     inherit pkgs;
@@ -5758,11 +5762,11 @@ let
     python = python27;
   });
 
-  pypyPackages = import ./python-packages.nix {
+  pypyPackages = recurseIntoAttrs (import ./python-packages.nix {
     inherit pkgs;
     inherit (lib) lowPrio;
     python = pypy;
-  };
+  });
 
   plone41Packages = import ../development/web/plone/4.1.nix {
     inherit pkgs;
@@ -5807,6 +5811,8 @@ let
 
   pyGtkGlade = pythonPackages.pyGtkGlade;
 
+  pylint = callPackage ../development/python-modules/pylint { };
+
   pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
     inherit python openssl;
   };
@@ -5831,6 +5837,8 @@ let
 
   pyxml = callPackage ../development/python-modules/pyxml { };
 
+  rbtools = callPackage ../development/python-modules/rbtools { };
+
   setuptools = pythonPackages.setuptools;
 
   wxPython = pythonPackages.wxPython;
@@ -9308,7 +9316,8 @@ let
 
   spyder = callPackage ../applications/science/spyder {
     inherit (pythonPackages) pyflakes rope sphinx numpy scipy matplotlib; # recommended
-    inherit (pythonPackages) ipython pylint pep8; # optional
+    inherit (pythonPackages) ipython pep8; # optional
+    inherit pylint;
   };
 
   stellarium = callPackage ../applications/science/astronomy/stellarium { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index bd2d5cca922d..d6bf93b394ae 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -341,24 +341,6 @@ pythonPackages = modules // rec {
     };
   });
 
-
-  awscli = buildPythonPackage rec {
-    name = "awscli-0.8.3";
-    namePrefix = "";
-
-    src = fetchurl {
-      url = https://github.com/aws/aws-cli/archive/0.8.3.tar.gz;
-      sha256 = "0v7igh00zja560v8qz315g3m7x9six1hprrrb10cpp9sy8n58xnn";
-    };
-
-    propagatedBuildInputs =
-      [ pythonPackages.argparse
-        pythonPackages.botocore
-        pythonPackages.colorama
-      ];
-  };
-
-
   beautifulsoup = buildPythonPackage (rec {
     name = "beautifulsoup-3.2.1";
 
@@ -573,11 +555,12 @@ pythonPackages = modules // rec {
 
 
   botocore = buildPythonPackage rec {
-    name = "botocore-0.8.3";
+    version = "0.13.1";
+    name = "botocore-${version}";
 
     src = fetchurl {
-      url = https://github.com/boto/botocore/archive/0.8.3.tar.gz;
-      sha256 = "0dbm2clrh7zs4brqqj3xssz3nymdg24ff2lww27s3wliirwqdiv1";
+      url = "https://pypi.python.org/packages/source/b/botocore/${name}.tar.gz";
+      sha256 = "192kxgw76b22zmk5mxjkij5rskibb9jfaggvpznzy3ggsgja7yy8";
     };
 
     propagatedBuildInputs =
@@ -2294,11 +2277,11 @@ pythonPackages = modules // rec {
 
 
   jmespath = buildPythonPackage rec {
-    name = "jmespath-0.0.1";
+    name = "jmespath-0.0.2";
 
     src = fetchurl {
-      url = "https://github.com/boto/jmespath/archive/0.0.1.tar.gz";
-      sha256 = "1a5d62qbgfjbaw8wgkfh78gairnpy6bbdsygwm1prqwap1kyq6ch";
+      url = "https://github.com/boto/jmespath/archive/0.0.2.tar.gz";
+      sha256 = "0wr1gq3gdyn3n21pvj62csdm095512zxd10gkg5ai1vvxh0mbn3r";
     };
 
     propagatedBuildInputs = [ ply ];
@@ -4167,8 +4150,7 @@ pythonPackages = modules // rec {
   });
 
   ldap = buildPythonPackage rec {
-    name = "python-ldap-2.4.10";
-    namePrefix = "";
+    name = "ldap-2.4.10";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/python-ldap/${name}.tar.gz";
@@ -4201,29 +4183,6 @@ pythonPackages = modules // rec {
   });
 
 
-  pylint = buildPythonPackage rec {
-    name = "pylint-0.26.0";
-    namePrefix = "";
-
-    src = fetchurl {
-      url = "http://download.logilab.org/pub/pylint/${name}.tar.gz";
-      sha256 = "1mg1ywpj0klklv63s2hwn5xwxi3wfwgnyz9d4pz32hzb53azq835";
-    };
-
-    propagatedBuildInputs = [ logilab_astng ];
-
-    postInstall = ''
-      mkdir -p $out/share/emacs/site-lisp
-      cp "elisp/"*.el $out/share/emacs/site-lisp/
-    '';
-
-    meta = {
-      homepage = http://www.logilab.org/project/pylint;
-      description = "A bug and style checker for Python";
-    };
-  };
-
-
   pymacs = pkgs.stdenv.mkDerivation rec {
     version = "v0.25";
     name = "Pymacs-${version}";
@@ -4514,19 +4473,6 @@ pythonPackages = modules // rec {
   });
 
 
-  RBTools = buildPythonPackage rec {
-    name = "rbtools-0.4.1";
-    namePrefix = "";
-
-    src = fetchurl {
-      url = "http://downloads.reviewboard.org/releases/RBTools/0.4/RBTools-0.4.1.tar.gz";
-      sha256 = "1v0r7rfzrasj56s53mib51wl056g7ykh2y1c6dwv12r6hzqsycgv";
-    };
-
-    propagatedBuildInputs = [ setuptools ];
-  };
-
-
   recaptcha_client = buildPythonPackage rec {
     name = "recaptcha-client-1.0.6";
 
@@ -5445,24 +5391,6 @@ pythonPackages = modules // rec {
     };
   };
 
-  vnc2flv = buildPythonPackage rec {
-    name = "vnc2flv-20100207";
-    namePrefix = "";
-
-    src = fetchurl {
-      url = "http://pypi.python.org/packages/source/v/vnc2flv/${name}.tar.gz";
-      md5 = "8492e46496e187b49fe5569b5639804e";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      description = "Tool to record VNC sessions to Flash Video";
-      homepage = http://www.unixuser.org/~euske/python/vnc2flv/;
-    };
-  };
-
   waitress = buildPythonPackage rec {
     name = "waitress-0.8.5";