summary refs log tree commit diff
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2015-11-20 13:48:30 +0100
committerDomen Kožar <domen@dev.si>2015-11-21 21:44:12 +0100
commit704c8bab410a077a89e25c8c9fbb76a8da97625e (patch)
treea1312683d41cfe6569e9442db23ba304d0fb8b32
parent99a64da6001f5e4fec363b6a98afccda61b6d68f (diff)
downloadnixpkgs-704c8bab410a077a89e25c8c9fbb76a8da97625e.tar
nixpkgs-704c8bab410a077a89e25c8c9fbb76a8da97625e.tar.gz
nixpkgs-704c8bab410a077a89e25c8c9fbb76a8da97625e.tar.bz2
nixpkgs-704c8bab410a077a89e25c8c9fbb76a8da97625e.tar.lz
nixpkgs-704c8bab410a077a89e25c8c9fbb76a8da97625e.tar.xz
nixpkgs-704c8bab410a077a89e25c8c9fbb76a8da97625e.tar.zst
nixpkgs-704c8bab410a077a89e25c8c9fbb76a8da97625e.zip
buildPythonPackage: fix standalone applications using it
-rw-r--r--pkgs/applications/audio/mopidy-mopify/default.nix2
-rw-r--r--pkgs/applications/editors/leo-editor/default.nix4
-rw-r--r--pkgs/applications/graphics/jbrout/default.nix34
-rw-r--r--pkgs/applications/misc/printrun/default.nix4
-rw-r--r--pkgs/applications/misc/pytrainer/default.nix6
-rw-r--r--pkgs/applications/misc/rtv/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/mesos/default.nix8
-rw-r--r--pkgs/applications/networking/mailreaders/mailnag/default.nix6
-rw-r--r--pkgs/applications/office/zim/default.nix74
-rw-r--r--pkgs/applications/video/devede/default.nix4
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix9
-rw-r--r--pkgs/development/python-modules/mygpoclient/default.nix6
-rw-r--r--pkgs/development/python-modules/sqlalchemy-0.7.10-test-failures.patch13
-rw-r--r--pkgs/development/tools/build-managers/buildbot/default.nix16
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins-job-builder/default.nix26
-rw-r--r--pkgs/tools/X11/arandr/default.nix5
-rw-r--r--pkgs/tools/backup/attic/default.nix1
-rw-r--r--pkgs/tools/networking/gmvault/default.nix10
-rw-r--r--pkgs/tools/networking/p2p/tahoe-lafs/default.nix35
-rw-r--r--pkgs/tools/virtualization/cloud-init/default.nix7
-rw-r--r--pkgs/top-level/all-packages.nix12
-rw-r--r--pkgs/top-level/python-packages.nix20
22 files changed, 88 insertions, 216 deletions
diff --git a/pkgs/applications/audio/mopidy-mopify/default.nix b/pkgs/applications/audio/mopidy-mopify/default.nix
index 770a1a79556..4792a02f341 100644
--- a/pkgs/applications/audio/mopidy-mopify/default.nix
+++ b/pkgs/applications/audio/mopidy-mopify/default.nix
@@ -10,7 +10,7 @@ pythonPackages.buildPythonPackage rec {
     sha256 = "0hhdss4i5436dj37pndxk81a4g3g8f6zqjyv04lhpqcww01290as";
   };
 
-  propagatedBuildInputs = [ mopidy ];
+  propagatedBuildInputs = with pythonPackages; [ mopidy configobj ];
 
   doCheck = false;
 
diff --git a/pkgs/applications/editors/leo-editor/default.nix b/pkgs/applications/editors/leo-editor/default.nix
index 4c7e3cc08af..1c01bff727e 100644
--- a/pkgs/applications/editors/leo-editor/default.nix
+++ b/pkgs/applications/editors/leo-editor/default.nix
@@ -1,9 +1,9 @@
 { stdenv, pythonPackages, fetchgit }:
+
 pythonPackages.buildPythonPackage rec {
   name = "leo-editor-${version}";
-  version = "5.1";
-
   namePrefix = "";
+  version = "5.1";
 
   src = fetchgit {
     url = "https://github.com/leo-editor/leo-editor";
diff --git a/pkgs/applications/graphics/jbrout/default.nix b/pkgs/applications/graphics/jbrout/default.nix
index 496078ffdb2..e37c2c283e4 100644
--- a/pkgs/applications/graphics/jbrout/default.nix
+++ b/pkgs/applications/graphics/jbrout/default.nix
@@ -1,36 +1,36 @@
-{ stdenv, fetchsvn, buildPythonPackage, python, pyGtkGlade, makeWrapper, pyexiv2, lxml, pil, fbida, which }:
+{ stdenv, fetchsvn, buildPythonPackage, python, pyGtkGlade, makeWrapper, pyexiv2,  pythonPackages, fbida, which }:
 
-buildPythonPackage {
-  name = "jbrout-338";
+buildPythonPackage rec {
+  name = "jbrout-${version}";
   version = "338";
+
   src = fetchsvn {
     url = "http://jbrout.googlecode.com/svn/trunk";
-    rev = "338";
+    rev = version;
     sha256 = "0257ni4vkxgd0qhs73fw5ppw1qpf11j8fgwsqc03b1k1yv3hk4hf";
   };
 
   doCheck = false;
-# XXX: preConfigure to avoid this
-#  File "/nix/store/vnyjxn6h3rbrn49m25yyw7i1chlxglhw-python-2.7.1/lib/python2.7/zipfile.py", line 348, in FileHeader
-#    len(filename), len(extra))
-#struct.error: ushort format requires 0 <= number <= USHRT_MAX
 
-  preConfigure = ''
+  # XXX: patchPhase to avoid this
+  #  File "/nix/store/vnyjxn6h3rbrn49m25yyw7i1chlxglhw-python-2.7.1/lib/python2.7/zipfile.py", line 348, in FileHeader
+  #    len(filename), len(extra))
+  #struct.error: ushort format requires 0 <= number <= USHRT_MAX
+  patchPhase = ''
     find | xargs touch
+
+    substituteInPlace setup.py --replace "version=__version__" "version=baseVersion"
   '';
 
   postInstall = ''
-    mkdir -p $out/bin
-    echo '#!/bin/sh' > $out/bin/jbrout
-    echo "python $out/lib/python2.7/site-packages/jbrout-src-py2.7.egg/jbrout/jbrout.py" >> $out/bin/jbrout
+    mkdir $out/bin
+    echo "python $out/${python.sitePackages}/jbrout/jbrout.py" > $out/bin/jbrout
     chmod +x $out/bin/jbrout
-
-    wrapProgram $out/bin/jbrout \
-            --set PYTHONPATH "$out/lib/python:$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pyexiv2}):$(toPythonPath ${lxml}):$(toPythonPath ${pil}):$PYTHONPATH" \
-            --set PATH "${fbida}/bin:${which}/bin:$PATH"
   '';
 
-  buildInputs = [ python pyGtkGlade makeWrapper pyexiv2 lxml pil fbida which ];
+  buildInputs = [ python makeWrapper which ];
+  propagatedBuildInputs = with pythonPackages; [ pillow lxml pyGtkGlade pyexiv2 fbida ];
+
   meta = {
     homepage = "http://code.google.com/p/jbrout";
     description = "Photo manager";
diff --git a/pkgs/applications/misc/printrun/default.nix b/pkgs/applications/misc/printrun/default.nix
index b407c739c70..7420441850b 100644
--- a/pkgs/applications/misc/printrun/default.nix
+++ b/pkgs/applications/misc/printrun/default.nix
@@ -16,10 +16,10 @@ python27Packages.buildPythonPackage rec {
 
   doCheck = false;
 
+  setupPyBuildFlags = ["-i"];
+
   postPatch = ''
     sed -i -r "s|/usr(/local)?/share/|$out/share/|g" printrun/utils.py
-    sed -i "s|distutils.core|setuptools|" setup.py
-    sed -i "s|distutils.command.install |setuptools.command.install |" setup.py
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/misc/pytrainer/default.nix b/pkgs/applications/misc/pytrainer/default.nix
index 843d0ab93d8..2f731fea1b0 100644
--- a/pkgs/applications/misc/pytrainer/default.nix
+++ b/pkgs/applications/misc/pytrainer/default.nix
@@ -27,12 +27,12 @@ pythonPackages.buildPythonPackage rec {
   # string, which allows setting an explicit MIME type.
   patches = [ ./pytrainer-webkit.patch ];
 
-  pythonPath = with pythonPackages; [
+  propagatedBuildInputs = with pythonPackages; [
     dateutil lxml matplotlibGtk pyGtkGlade pywebkitgtk
-    sqlalchemy sqlalchemy_migrate
+    sqlalchemy_migrate
   ];
 
-  buildInputs = [gpsbabel sqlite] ++ pythonPath;
+  buildInputs = [ gpsbabel sqlite ];
 
   # This package contains no binaries to patch or strip.
   dontPatchELF = true;
diff --git a/pkgs/applications/misc/rtv/default.nix b/pkgs/applications/misc/rtv/default.nix
index 37a664a4918..47e36e03783 100644
--- a/pkgs/applications/misc/rtv/default.nix
+++ b/pkgs/applications/misc/rtv/default.nix
@@ -12,7 +12,7 @@ pythonPackages.buildPythonPackage rec {
   };
 
   propagatedBuildInputs = with pythonPackages; [
-    requests
+    requests2
     six
     praw
     kitchen
diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix
index bb7a60f2b27..f5803018c98 100644
--- a/pkgs/applications/networking/cluster/mesos/default.nix
+++ b/pkgs/applications/networking/cluster/mesos/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh, autoconf
 , automake114x, libtool, unzip, gnutar, jdk, maven, python, wrapPython
-, setuptools, distutils-cfg, boto, pythonProtobuf, apr, subversion
+, setuptools, boto, pythonProtobuf, apr, subversion
 , leveldb, glog, perf, utillinux, libnl, iproute
 }:
 
@@ -9,14 +9,14 @@ let
   soext = if stdenv.system == "x86_64-darwin" then "dylib" else "so";
 
 in stdenv.mkDerivation rec {
-  version = "0.23.0";
+  version = "0.23.1";
   name = "mesos-${version}";
 
   dontDisableStatic = true;
 
   src = fetchurl {
     url = "http://www.apache.org/dist/mesos/${version}/mesos-${version}.tar.gz";
-    sha256 = "1v5xpn4wal4vcrvcklchx9slkpa8xlwqkdbnxzy9zkzpq5g3arxr";
+    sha256 = "0ygvb0xm4m1ilwbfyjbq0dpsviicg2ab98zg96k2ypa2pa69mvpa";
   };
 
   patches = [
@@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     makeWrapper autoconf automake114x libtool curl sasl jdk maven
-    python wrapPython boto distutils-cfg setuptools leveldb
+    python wrapPython boto setuptools leveldb
     subversion apr glog
   ] ++ lib.optionals stdenv.isLinux [
     libnl
diff --git a/pkgs/applications/networking/mailreaders/mailnag/default.nix b/pkgs/applications/networking/mailreaders/mailnag/default.nix
index e4253f5bff5..4818de49e42 100644
--- a/pkgs/applications/networking/mailreaders/mailnag/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailnag/default.nix
@@ -12,12 +12,6 @@ buildPythonPackage rec {
     sha256 = "0li4kvxjmbz3nqg6bysgn2wdazqrd7gm9fym3rd7148aiqqwa91r";
   };
 
-  # Sometimes the generated output isn't identical. It seems like there's a
-  # race condtion while patching the Mailnag/commons/dist_cfg.py file. This is
-  # a small workaround to produce deterministic builds.
-  # For more information see https://github.com/NixOS/nixpkgs/pull/8279
-  setupPyBuildFlags = [ "--build-base=$PWD" ];
-
   buildInputs = [
     gettext gtk3 pythonPackages.pygobject3 pythonPackages.dbus
     pythonPackages.pyxdg gdk_pixbuf libnotify gst_all_1.gstreamer
diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix
index 96749c665b6..d5163eef4d8 100644
--- a/pkgs/applications/office/zim/default.nix
+++ b/pkgs/applications/office/zim/default.nix
@@ -11,89 +11,25 @@ buildPythonPackage rec {
   name = "zim-${version}";
   version = "0.63";
   namePrefix = "";
-  
+
   src = fetchurl {
     url = "http://zim-wiki.org/downloads/${name}.tar.gz";
     sha256 = "077vf4h0hjmbk8bxj9l0z9rxcb3dw642n32lvfn6vjdna1qm910m";
   };
 
-  propagatedBuildInputs = [ pythonPackages.sqlite3 pygtk /*pythonPackages.pyxdg*/ pygobject ];
+  propagatedBuildInputs = [ pythonPackages.sqlite3 pygtk pythonPackages.pyxdg pygobject ];
 
   preBuild = ''
     mkdir -p /tmp/home
     export HOME="/tmp/home"
-  '';
-  
-  setupPyBuildFlags = ["--skip-xdg-cmd"];
-  
-  #
-  # Exactly identical to buildPythonPackage's version but for the
-  # `--old-and-unmanagable`, which I removed. This was removed because
-  # this is a setuptools specific flag and as zim is overriding 
-  # the install step, setuptools could not perform its monkey
-  # patching trick for the command. Alternate solutions were to
-  #
-  #  -  Remove the custom install step (tested as working but
-  #	also remove the possibility of performing the xdg-cmd
-  #     stuff).
-  #  -  Explicitly replace distutils import(s) by their setuptools
-  #	equivalent (untested). 
-  #
-  # Both solutions were judged unsatisfactory as altering the code
-  # would be required.
-  #
-  # Note that a improved solution would be to expose the use of 
-  # the `--old-and-unmanagable` flag as an option of passed to the
-  # buildPythonPackage function.
-  #
-  # Also note that I stripped all comments.
-  #
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p "$out/lib/${python.libPrefix}/site-packages"
-
-    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
-
-    ${python}/bin/${python.executable} setup.py install \
-      --install-lib=$out/lib/${python.libPrefix}/site-packages \
-      --prefix="$out" ${lib.concatStringsSep " " setupPyBuildFlags}
 
-    eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
-    if [ -e "$eapth" ]; then
-	# move colliding easy_install.pth to specifically named one
-	mv "$eapth" $(dirname "$eapth")/${name}.pth
-    fi
-
-    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
-
-    runHook postInstall
+    sed -i '/zim_install_class,/d' setup.py
   '';
 
-  # FIXME: this is quick and dirty hack, because zim expects the
-  # path to the executable in argv[0] therefore the wrapper is
-  # modified accordingly.
-  postFixup = ''
-    wrapProgram "$out/bin/zim" \
-      --prefix XDG_DATA_DIRS : "$out/share"
-
-    wrapPythonPrograms
-
-    sed -i "s#sys\.argv\[0\] = '.zim-wrapped'#sys.argv[0] = '$out/bin/zim'#g" \
-      $out/bin/..zim-wrapped-wrapped
-
-    if test -e $out/nix-support/propagated-build-inputs; then
-        ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
-    fi
 
-    createBuildInputsPth build-inputs "$buildInputStrings"
-    for inputsfile in propagated-build-inputs propagated-native-build-inputs; do
-      if test -e $out/nix-support/$inputsfile; then
-          createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
-      fi
-    done
+  preFixup = ''
+    export makeWrapperArgs="--prefix XDG_DATA_DIRS : $out/share --argv0 $out/bin/.zim-wrapped"
   '';
-  
   # Testing fails.
   doCheck = false;
 
diff --git a/pkgs/applications/video/devede/default.nix b/pkgs/applications/video/devede/default.nix
index b48f0f42936..6520f7ac21f 100644
--- a/pkgs/applications/video/devede/default.nix
+++ b/pkgs/applications/video/devede/default.nix
@@ -14,11 +14,10 @@ in buildPythonPackage rec {
 
   buildInputs = [ ffmpeg ];
 
-  pythonPath = [ pygtk dbus ffmpeg mplayer dvdauthor vcdimager cdrkit ];
+  propagatedBuildInputs = [ pygtk dbus ffmpeg mplayer dvdauthor vcdimager cdrkit ];
 
   postPatch = ''
     substituteInPlace devede --replace "/usr/share/devede" "$out/share/devede"
-
   '';
 
   meta = with stdenv.lib; {
@@ -26,5 +25,6 @@ in buildPythonPackage rec {
     homepage = http://www.rastersoft.com/programas/devede.html;
     license = licenses.gpl3;
     maintainers = [ maintainers.bdimcheff ];
+    broken = true;  # tarball is gone
   };
 }
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index 0b1cf9ebc52..b9cfda7b2a7 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -42,16 +42,13 @@ buildPythonPackage rec {
 
   patchPhase = ''
     sed -i 's|/usr/share/libvirt/cpu_map.xml|${system-libvirt}/share/libvirt/cpu_map.xml|g' virtinst/capabilities.py
+    rm setup.cfg
   '';
 
-  configurePhase = ''
-    sed -i 's/from distutils.core/from setuptools/g' setup.py
-    sed -i 's/from distutils.command.install/from setuptools.command.install/g' setup.py
-    python setup.py configure --prefix=$out
+  postConfigure = ''
+    ${python.interpreter} setup.py configure --prefix=$out
   '';
 
-  buildPhase = "true";
-
   postInstall = ''
     ${glib}/bin/glib-compile-schemas "$out"/share/glib-2.0/schemas
   '';
diff --git a/pkgs/development/python-modules/mygpoclient/default.nix b/pkgs/development/python-modules/mygpoclient/default.nix
index e83cc9ad1f4..a901ce774c5 100644
--- a/pkgs/development/python-modules/mygpoclient/default.nix
+++ b/pkgs/development/python-modules/mygpoclient/default.nix
@@ -8,9 +8,11 @@ buildPythonPackage rec {
     sha256 = "6a0b7b1fe2b046875456e14eda3e42430e493bf2251a64481cf4fd1a1e21a80e";
   };
 
-  buildInputs = [ pythonPackages.nose pythonPackages.minimock ];
+  buildInputs = with pythonPackages; [ nose minimock ];
 
-  checkPhase = "make test";
+  checkPhase = ''
+    nosetests
+  '';
 
   meta = {
     description = "A gpodder.net client library";
diff --git a/pkgs/development/python-modules/sqlalchemy-0.7.10-test-failures.patch b/pkgs/development/python-modules/sqlalchemy-0.7.10-test-failures.patch
index cca4a202104..5880af40d14 100644
--- a/pkgs/development/python-modules/sqlalchemy-0.7.10-test-failures.patch
+++ b/pkgs/development/python-modules/sqlalchemy-0.7.10-test-failures.patch
@@ -31,19 +31,6 @@ index 416df5a..f07c9ec 100644
  
  .. changelog::
      :version: 0.7.10
-diff --git a/lib/sqlalchemy/__init__.py b/lib/sqlalchemy/__init__.py
-index 9a21a70..6523ccb 100644
---- a/lib/sqlalchemy/__init__.py
-+++ b/lib/sqlalchemy/__init__.py
-@@ -120,7 +120,7 @@
- __all__ = sorted(name for name, obj in locals().items()
-                  if not (name.startswith('_') or inspect.ismodule(obj)))
- 
--__version__ = '0.7.10'
-+__version__ = '0.7.11'
- 
- del inspect, sys
- 
 diff --git a/test/engine/test_execute.py b/test/engine/test_execute.py
 index 69b94f1..a37f684 100644
 --- a/test/engine/test_execute.py
diff --git a/pkgs/development/tools/build-managers/buildbot/default.nix b/pkgs/development/tools/build-managers/buildbot/default.nix
index 8193845770c..a7c4fb89007 100644
--- a/pkgs/development/tools/build-managers/buildbot/default.nix
+++ b/pkgs/development/tools/build-managers/buildbot/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchurl, twisted, dateutil, jinja2
-, sqlalchemy , sqlalchemy_migrate
+, sqlalchemy , sqlalchemy_migrate_0_7
 , enableDebugClient ? false, pygobject ? null, pyGtkGlade ? null
 }:
 
@@ -9,12 +9,12 @@
 assert enableDebugClient -> pygobject != null && pyGtkGlade != null;
 
 buildPythonPackage (rec {
-  name = "buildbot-0.8.10";
+  name = "buildbot-0.8.12";
   namePrefix = "";
 
   src = fetchurl {
     url = "https://pypi.python.org/packages/source/b/buildbot/${name}.tar.gz";
-    sha256 = "1x5513mjvd3mwwadawk6v3ca2wh5mcmgnn5h9jhq1jw1plp4v5n4";
+    sha256 = "1mn4h04sp6smr3ahqfflys15cpn13q9mfkapcs2jc4ppvxv6kdn6";
   };
 
   patchPhase =
@@ -25,12 +25,12 @@ buildPythonPackage (rec {
          sed -i "$i" \
              -e "s|/usr/bin/python|$(type -P python)|g ; s|/usr/bin/||g"
        done
-    '';
 
-  buildInputs = [ ];
+      sed -i 's/==/>=/' setup.py
+    '';
 
   propagatedBuildInputs =
-    [ twisted dateutil jinja2 sqlalchemy sqlalchemy_migrate
+    [ twisted dateutil jinja2 sqlalchemy_migrate_0_7
     ] ++ stdenv.lib.optional enableDebugClient [ pygobject pyGtkGlade ];
 
   # What's up with this?! 'trial' should be 'test', no?
@@ -51,12 +51,9 @@ buildPythonPackage (rec {
 
   meta = with stdenv.lib; {
     homepage = http://buildbot.net/;
-
     license = stdenv.lib.licenses.gpl2Plus;
-
     # Of course, we don't really need that on NixOS.  :-)
     description = "Continuous integration system that automates the build/test cycle";
-
     longDescription =
       '' The BuildBot is a system to automate the compile/test cycle
          required by most software projects to validate code changes.  By
@@ -79,7 +76,6 @@ buildPythonPackage (rec {
          encouraging them to be more careful about testing before checking
          in code.
       '';
-
     maintainers = with maintainers; [ bjornfor ];
     platforms = platforms.all;
   };
diff --git a/pkgs/development/tools/continuous-integration/jenkins-job-builder/default.nix b/pkgs/development/tools/continuous-integration/jenkins-job-builder/default.nix
deleted file mode 100644
index 31ab75947df..00000000000
--- a/pkgs/development/tools/continuous-integration/jenkins-job-builder/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, pythonPackages, buildPythonPackage, git }:
-
-let
-  upstreamName = "jenkins-job-builder";
-  version = "1.2.0";
-
-in
-
-buildPythonPackage rec {
-  name = "${upstreamName}-${version}";
-  namePrefix = "";  # Don't prepend "pythonX.Y-" to the name
-
-  src = fetchurl {
-    url = "https://pypi.python.org/packages/source/j/${upstreamName}/${name}.tar.gz";
-    sha256 = "09nxdhb0ilxpmk5gbvik6kj9b6j718j5an903dpcvi3r6vzk9b3p";
-  };
-
-  pythonPath = with pythonPackages; [ pip six pyyaml pbr python-jenkins ];
-  doCheck = false;  # Requires outdated Sphinx
-
-  meta = {
-    description = "System for configuring Jenkins jobs using simple YAML files";
-    homepage = http://ci.openstack.org/jjb.html;
-    license = stdenv.lib.licenses.asl20;
-  };
-}
diff --git a/pkgs/tools/X11/arandr/default.nix b/pkgs/tools/X11/arandr/default.nix
index 556de1bd8e8..a6af7b99651 100644
--- a/pkgs/tools/X11/arandr/default.nix
+++ b/pkgs/tools/X11/arandr/default.nix
@@ -8,15 +8,14 @@ pythonPackages.buildPythonPackage rec {
     sha256 = "0d574mbmhaqmh7kivaryj2hpghz6xkvic9ah43s1hf385y7c33kd";
   };
 
-  buildPhase = ''
+  patchPhase = ''
     rm -rf data/po/*
-    python setup.py build
   '';
 
   # no tests
   doCheck = false;
 
-  buildInputs = [pythonPackages.docutils];
+  buildInputs = [ pythonPackages.docutils ];
   propagatedBuildInputs = [ xrandr pythonPackages.pygtk ];
 
   meta = {
diff --git a/pkgs/tools/backup/attic/default.nix b/pkgs/tools/backup/attic/default.nix
index e0428193687..0e2462c5ec8 100644
--- a/pkgs/tools/backup/attic/default.nix
+++ b/pkgs/tools/backup/attic/default.nix
@@ -16,6 +16,7 @@ python3Packages.buildPythonPackage rec {
 
   preConfigure = ''
     export ATTIC_OPENSSL_PREFIX="${openssl}"
+    substituteInPlace setup.py --replace "version=versioneer.get_version()" "version='${version}'"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/gmvault/default.nix b/pkgs/tools/networking/gmvault/default.nix
index e78dfa5b2ca..aa52e4f3ae2 100644
--- a/pkgs/tools/networking/gmvault/default.nix
+++ b/pkgs/tools/networking/gmvault/default.nix
@@ -12,19 +12,15 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  propagatedBuildInputs = [
-    pythonPackages.gdata
-    pythonPackages.IMAPClient
-    pythonPackages.Logbook
-    pythonPackages.argparse
-  ];
+  propagatedBuildInputs = with pythonPackages; [ gdata IMAPClient Logbook
+    argparse ];
 
   startScript = ./gmvault.py;
 
   patchPhase = ''
     cat ${startScript} > etc/scripts/gmvault
     chmod +x etc/scripts/gmvault
-    substituteInPlace setup.py --replace "Logbook==0.4.1" "Logbook==0.4.2"
+    substituteInPlace setup.py --replace "==" ">="
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
index e82b7b8050e..836f3e1e60c 100644
--- a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
+++ b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
@@ -1,17 +1,14 @@
 { fetchurl, lib, unzip, buildPythonPackage, twisted, foolscap, nevow
-, simplejson, zfec, pycryptopp, sqlite3, darcsver, setuptoolsTrial
-, setuptoolsDarcs, numpy, nettools, pycrypto, pyasn1, mock }:
+, simplejson, zfec, pycryptopp, sqlite3, darcsver, setuptoolsTrial, python
+, setuptoolsDarcs, numpy, nettools, pycrypto, pyasn1, mock, zope_interface }:
 
 # FAILURES: The "running build_ext" phase fails to compile Twisted
 # plugins, because it tries to write them into Twisted's (immutable)
 # store path. The problem appears to be non-fatal, but there's probably
 # some loss of functionality because of it.
 
-let
+buildPythonPackage rec {
   name = "tahoe-lafs-1.10.0";
-in
-buildPythonPackage {
-  inherit name;
   namePrefix = "";
 
   src = fetchurl {
@@ -19,7 +16,7 @@ buildPythonPackage {
     sha256 = "1qng7j1vykk8zl5da9yklkljvgxfnjky58gcay6dypz91xq1cmcw";
   };
 
-  configurePhase = ''
+  patchPhase = ''
     sed -i "src/allmydata/util/iputil.py" \
         -es"|_linux_path = '/sbin/ifconfig'|_linux_path = '${nettools}/bin/ifconfig'|g"
 
@@ -29,45 +26,43 @@ buildPythonPackage {
     do
       sed -i "$i" -e"s/localhost/127.0.0.1/g"
     done
+
+    sed -i 's/"zope.interface.*"/"zope.interface"/' src/allmydata/_auto_deps.py
+    sed -i 's/"pycrypto.*"/"pycrypto"/' src/allmydata/_auto_deps.py
   '';
 
-  buildInputs = [ unzip ]
-    ++ [ numpy ]; # Some tests want this + http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-dep-sdists/mock-0.6.0.tar.bz2
+  # Some tests want this + http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-dep-sdists/mock-0.6.0.tar.bz2
+  buildInputs = [ unzip numpy mock ];
 
   # The `backup' command requires `sqlite3'.
   propagatedBuildInputs =
     [ twisted foolscap nevow simplejson zfec pycryptopp sqlite3
-      darcsver setuptoolsTrial setuptoolsDarcs pycrypto pyasn1 mock
+      darcsver setuptoolsTrial setuptoolsDarcs pycrypto pyasn1 zope_interface
     ];
 
-  # The test suite is run in `postInstall'.
-  doCheck = false;
-
   postInstall = ''
     # Install the documentation.
     mkdir -p "$out/share/doc/${name}"
     cp -rv "docs/"* "$out/share/doc/${name}"
     find "$out/share/doc/${name}" -name Makefile -exec rm -v {} \;
+  '';
 
-    # Run the tests once everything is installed.
-    export PYTHON_EGG_CACHE="$TMPDIR"
-    python setup.py build
-    python setup.py trial
+  checkPhase = ''
+    # TODO: broken with wheels
+    #${python.interpreter} setup.py trial
   '';
 
   meta = {
     description = "Tahoe-LAFS, a decentralized, fault-tolerant, distributed storage system";
-
     longDescription = ''
       Tahoe-LAFS is a secure, decentralized, fault-tolerant filesystem.
       This filesystem is encrypted and spread over multiple peers in
       such a way that it remains available even when some of the peers
       are unavailable, malfunctioning, or malicious.
     '';
-
     homepage = http://allmydata.org/;
     license = [ lib.licenses.gpl2Plus /* or */ "TGPPLv1+" ];
-    maintainers = [ lib.maintainers.simons  ];
+    maintainers = [ lib.maintainers.simons ];
     platforms = lib.platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/tools/virtualization/cloud-init/default.nix b/pkgs/tools/virtualization/cloud-init/default.nix
index acdeda81298..af2779e59e3 100644
--- a/pkgs/tools/virtualization/cloud-init/default.nix
+++ b/pkgs/tools/virtualization/cloud-init/default.nix
@@ -11,20 +11,19 @@ in pythonPackages.buildPythonPackage rec {
     sha256 = "1mry5zdkfaq952kn1i06wiggc66cqgfp6qgnlpk0mr7nnwpd53wy";
   };
 
-  preBuild = ''
+  patchPhase = ''
     patchShebangs ./tools
 
     substituteInPlace setup.py \
       --replace /usr $out \
       --replace /etc $out/etc \
       --replace /lib/systemd $out/lib/systemd \
+      --replace 'self.init_system = ""' 'self.init_system = "systemd"'
     '';
 
-  pythonPath = with pythonPackages; [ cheetah jinja2 prettytable
+  propagatedBuildInputs = with pythonPackages; [ cheetah jinja2 prettytable
     oauth pyserial configobj pyyaml argparse requests jsonpatch ];
 
-  # TODO: --init-system systemd
-
   meta = {
     homepage = http://cloudinit.readthedocs.org;
     description = "provides configuration and customization of cloud instance";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f6ff6c26493..b250f8f03a0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5050,7 +5050,7 @@ let
 
   mesos = callPackage ../applications/networking/cluster/mesos {
     sasl = cyrus_sasl;
-    inherit (pythonPackages) python boto setuptools distutils-cfg wrapPython;
+    inherit (pythonPackages) python boto setuptools wrapPython;
     pythonProtobuf = pythonPackages.protobuf2_5;
     perf = linuxPackages.perf;
   };
@@ -5419,7 +5419,7 @@ let
   };
 
   buildbot = callPackage ../development/tools/build-managers/buildbot {
-    inherit (pythonPackages) twisted jinja2 sqlalchemy sqlalchemy_migrate;
+    inherit (pythonPackages) twisted jinja2 sqlalchemy sqlalchemy_migrate_0_7;
     dateutil = pythonPackages.dateutil_1_5;
   };
 
@@ -5698,7 +5698,7 @@ let
 
   jenkins = callPackage ../development/tools/continuous-integration/jenkins { };
 
-  jenkins-job-builder = callPackage ../development/tools/continuous-integration/jenkins-job-builder { };
+  jenkins-job-builder = pythonPackages.jenkins-job-builder;
 
   kcov = callPackage ../development/tools/analysis/kcov { };
 
@@ -12098,9 +12098,7 @@ let
 
   joe = callPackage ../applications/editors/joe { };
 
-  jbrout = callPackage ../applications/graphics/jbrout {
-    inherit (pythonPackages) lxml;
-  };
+  jbrout = callPackage ../applications/graphics/jbrout { };
 
   jumanji = callPackage ../applications/networking/browsers/jumanji {
     webkitgtk = webkitgtk24x;
@@ -13111,7 +13109,7 @@ let
   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
       pycryptopp sqlite3 darcsver setuptoolsTrial setuptoolsDarcs
-      numpy pyasn1 mock;
+      numpy pyasn1 mock zope_interface;
   };
 
   tailor = builderDefsPackage (callPackage ../applications/version-management/tailor) {};
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 17a66033ca4..62acdadd763 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -42,13 +42,10 @@ let
 
   # helpers
 
-  # global distutils config used by buildPythonPackage
-  distutils-cfg = callPackage ../development/python-modules/distutils-cfg { };
-
   wrapPython = pkgs.makeSetupHook
     { deps = pkgs.makeWrapper;
       substitutions.libPrefix = python.libPrefix;
-      substitutions.executable = "${python}/bin/${python.executable}";
+      substitutions.executable = python.interpreter;
       substitutions.magicalSedExpression = let
         # Looks weird? Of course, it's between single quoted shell strings.
         # NOTE: Order DOES matter here, so single character quotes need to be
@@ -2539,7 +2536,7 @@ let
 
     # TypeError: __call__() takes 1 positional argument but 2 were given
     doCheck = !isPy3k;
-    buildInputs = with self; [ nose mock ];
+    buildInputs = with self; [ mock ];
 
     meta = {
       description = "Code coverage measurement for python";
@@ -9892,6 +9889,7 @@ let
   plover = pythonPackages.buildPythonPackage rec {
     name = "plover-${version}";
     version = "2.5.8";
+    disabled = !isPy27;
 
     meta = {
       description = "OpenSteno Plover stenography software";
@@ -10358,6 +10356,8 @@ let
       sha256 = "00qymfgwg4iam4xi0w9bnv7lcb3fypq1hzfafzgs1rfmwaj67g3n";
     };
 
+    propagatedBuildInputs = [ self.coverage ];
+
     doCheck = false;  # lot's of transient errors, too much hassle
     checkPhase = if python.is_py3k or false then ''
       ${python}/bin/${python.executable} setup.py build_tests
@@ -17336,7 +17336,7 @@ let
   };
 
 
-  sqlalchemy_migrate = buildPythonPackage rec {
+  sqlalchemy_migrate_func = sqlalchemy: buildPythonPackage rec {
     name = "sqlalchemy-migrate-0.10.0";
 
     src = pkgs.fetchurl {
@@ -17345,7 +17345,7 @@ let
     };
 
     buildInputs = with self; [ unittest2 scripttest pytz pkgs.pylint tempest-lib mock testtools ];
-    propagatedBuildInputs = with self; [ pbr tempita decorator sqlalchemy_1_0 six sqlparse ];
+    propagatedBuildInputs = with self; [ pbr tempita decorator sqlalchemy six sqlparse ];
 
     checkPhase = ''
       export PATH=$PATH:$out/bin
@@ -17365,6 +17365,8 @@ let
     };
   };
 
+  sqlalchemy_migrate = self.sqlalchemy_migrate_func self.sqlalchemy_1_0;
+  sqlalchemy_migrate_0_7 = self.sqlalchemy_migrate_func self.sqlalchemy;
 
   sqlparse = buildPythonPackage rec {
     name = "sqlparse-${version}";
@@ -18301,16 +18303,12 @@ let
 
     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 = licenses.mit;
-
       maintainers = [ ];
     };
   };