Merge pull request #206 from chaoflow/python-merge

python pureness, cleanup, and enable pth loaders (setuptoolsSite, recursivePthLoader)
This commit is contained in:
cillianderoiste 2012-12-05 14:28:09 -08:00
commit 5b0cd954f1
15 changed files with 408 additions and 156 deletions

View File

@ -17,8 +17,6 @@ stdenv.mkDerivation {
buildInputs = [ python makeWrapper docutils unzip ]; buildInputs = [ python makeWrapper docutils unzip ];
PYTHONPATH = "${python}/lib/python2.6/site-packages:${python}/lib/python2.7/site-packages:${docutils}/lib/python2.5/site-packages:${docutils}/lib/python2.6/site-packages:${docutils}/lib/python2.7/site-packages";
makeFlags = "PREFIX=$(out)"; makeFlags = "PREFIX=$(out)";
postInstall = (stdenv.lib.optionalString guiSupport postInstall = (stdenv.lib.optionalString guiSupport
@ -47,8 +45,6 @@ stdenv.mkDerivation {
chmod u+x $out/share/cgi-bin/hgweb.cgi chmod u+x $out/share/cgi-bin/hgweb.cgi
''; '';
doCheck = false; # The test suite fails, unfortunately. Not sure why.
meta = { meta = {
description = "A fast, lightweight SCM system for very large distributed projects"; description = "A fast, lightweight SCM system for very large distributed projects";
homepage = "http://www.selenic.com/mercurial/"; homepage = "http://www.selenic.com/mercurial/";

View File

@ -60,6 +60,8 @@ let
postInstall = postInstall =
'' ''
rm -rf "$out/lib/python${majorVersion}/test" rm -rf "$out/lib/python${majorVersion}/test"
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb${majorVersion}
''; '';
passthru = { passthru = {

View File

@ -74,6 +74,8 @@ let
postInstall = postInstall =
'' ''
rm -rf "$out/lib/python${majorVersion}/test" rm -rf "$out/lib/python${majorVersion}/test"
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb${majorVersion}
''; '';
passthru = { passthru = {

View File

@ -11,7 +11,7 @@ stdenv.mkDerivation {
unpackPhase = "true"; unpackPhase = "true";
installPhase = '' installPhase = ''
mkdir -p "$out/bin" mkdir -p "$out/bin"
for prg in 2to3 idle pydoc python python-config python${python.majorVersion} python${python.majorVersion}-config smtpd.py; do for prg in 2to3 idle pdb pdb${python.majorVersion} pydoc python python-config python${python.majorVersion} python${python.majorVersion}-config smtpd.py; do
makeWrapper "$python/bin/$prg" "$out/bin/$prg" --suffix PYTHONPATH : "$PYTHONPATH" makeWrapper "$python/bin/$prg" "$out/bin/$prg" --suffix PYTHONPATH : "$PYTHONPATH"
done done
ensureDir "$out/share" ensureDir "$out/share"

View File

@ -3,12 +3,14 @@
(http://pypi.python.org/pypi/setuptools/), which represents a large (http://pypi.python.org/pypi/setuptools/), which represents a large
number of Python packages nowadays. */ number of Python packages nowadays. */
{ python, setuptools, wrapPython, lib }: { python, setuptools, wrapPython, lib, offlineDistutils, setuptoolsSite }:
{ name, namePrefix ? "python-" { name, namePrefix ? "python-"
, buildInputs ? [] , buildInputs ? []
, propagatedBuildInputs ? []
, # List of packages that should be added to the PYTHONPATH , # List of packages that should be added to the PYTHONPATH
# environment variable in programs built by this function. Packages # environment variable in programs built by this function. Packages
# in the standard `propagatedBuildInputs' variable are also added. # in the standard `propagatedBuildInputs' variable are also added.
@ -19,9 +21,11 @@
, installCommand ? , installCommand ?
'' ''
easy_install --prefix="$out" . easy_install --always-unzip --prefix="$out" .
'' ''
, preConfigure ? "true"
, buildPhase ? "true" , buildPhase ? "true"
, doCheck ? true , doCheck ? true
@ -43,12 +47,22 @@ python.stdenv.mkDerivation (attrs // {
name = namePrefix + name; name = namePrefix + name;
phases = "unpackPhase patchPhase configurePhase buildPhase installPhase checkPhase fixupPhase distPhase";
buildInputs = [ python wrapPython setuptools ] ++ buildInputs ++ pythonPath; buildInputs = [ python wrapPython setuptools ] ++ buildInputs ++ pythonPath;
# setuptoolsSite is responsible for loading pth files
propagatedBuildInputs = propagatedBuildInputs ++ [ setuptoolsSite ];
buildInputStrings = map toString buildInputs;
pythonPath = [ setuptools] ++ pythonPath; pythonPath = [ setuptools] ++ pythonPath;
# XXX: Should we run `easy_install --always-unzip'? It doesn't seem preConfigure = ''
# to have a noticeable impact on small scripts. PYTHONPATH="${offlineDistutils}/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
${preConfigure}
'';
installPhase = '' installPhase = ''
mkdir -p "$out/lib/${python.libPrefix}/site-packages" mkdir -p "$out/lib/${python.libPrefix}/site-packages"
@ -56,13 +70,27 @@ python.stdenv.mkDerivation (attrs // {
export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH" export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
${installCommand} ${installCommand}
# A pth file might have been generated to load the package from
# within its own site-packages, rename this package not to
# collide with others.
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
# Remove any site.py files generated by easy_install as these
# cause collisions. If pth files are to be processed a
# corresponding site.py needs to be included in the PYTHONPATH.
rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
${postInstall} ${postInstall}
''; '';
postFixup = postFixup =
'' ''
wrapPythonPrograms wrapPythonPrograms
# If a user installs a Python package, she probably also wants its # If a user installs a Python package, she probably also wants its
# dependencies in the user environment (since Python modules don't # dependencies in the user environment (since Python modules don't
# have something like an RPATH, so the only way to find the # have something like an RPATH, so the only way to find the
@ -70,5 +98,12 @@ python.stdenv.mkDerivation (attrs // {
if test -e $out/nix-support/propagated-build-inputs; then 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 ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
fi fi
createBuildInputsPth build-inputs "$buildInputStrings"
for inputsfile in propagated-build-inputs propagated-build-native-inputs; do
if test -e $out/nix-support/$inputsfile; then
createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
fi
done
''; '';
}) })

View File

@ -45,3 +45,16 @@ _addToPythonPath() {
done done
fi fi
} }
createBuildInputsPth() {
local category="$1"
local inputs="$2"
if [ foo"$inputs" != foo ]; then
for x in $inputs; do
if test -d "$x"/lib/@libPrefix@/site-packages; then
echo $x/lib/@libPrefix@/site-packages \
>> "$out"/lib/@libPrefix@/site-packages/${name}-nix-python-$category.pth
fi
done
fi
}

View File

@ -0,0 +1,21 @@
# Used during module installation to prevent easy_install and python
# setup.py install/test from downloading
{ stdenv, python }:
stdenv.mkDerivation {
name = "python-offline-distutils-${python.version}";
buildInputs = [ python ];
unpackPhase = "true";
installPhase = ''
dst="$out/lib/${python.libPrefix}"
ensureDir $dst/distutils
ln -s ${python}/lib/${python.libPrefix}/distutils/* $dst/distutils/
cat <<EOF > $dst/distutils/distutils.cfg
[easy_install]
allow-hosts = None
EOF
'';
}

View File

@ -1,9 +1,9 @@
{ fetchurl, stdenv, python, libjpeg, zlib, freetype }: { fetchurl, stdenv, python, buildPythonPackage, libjpeg, zlib, freetype }:
let version = "1.1.7"; in let version = "1.1.7"; in
stdenv.mkDerivation { buildPythonPackage {
name = "python-imaging-${version}"; name = "imaging-${version}";
src = fetchurl { src = fetchurl {
url = "http://effbot.org/downloads/Imaging-${version}.tar.gz"; url = "http://effbot.org/downloads/Imaging-${version}.tar.gz";
@ -23,7 +23,7 @@ stdenv.mkDerivation {
buildPhase = "python setup.py build_ext -i"; buildPhase = "python setup.py build_ext -i";
checkPhase = "python selftest.py"; checkPhase = "python selftest.py";
installPhase = "python setup.py install --prefix=$out"; #installPhase = "python setup.py install --prefix=$out";
meta = { meta = {
homepage = http://www.pythonware.com/products/pil/; homepage = http://www.pythonware.com/products/pil/;

View File

@ -1,7 +1,8 @@
{ stdenv, fetchurl, python, gmp }: { stdenv, fetchurl, python, buildPythonPackage, gmp }:
stdenv.mkDerivation rec { buildPythonPackage rec {
name = "pycrypto-2.6"; name = "pycrypto-2.6";
namePrefix = "";
src = fetchurl { src = fetchurl {
url = "http://pypi.python.org/packages/source/p/pycrypto/${name}.tar.gz"; url = "http://pypi.python.org/packages/source/p/pycrypto/${name}.tar.gz";
@ -10,14 +11,16 @@ stdenv.mkDerivation rec {
buildInputs = [ python gmp ]; buildInputs = [ python gmp ];
buildPhase = "true"; buildPhase =
installPhase =
'' ''
python ./setup.py build_ext --library-dirs=${gmp}/lib python ./setup.py build_ext --library-dirs=${gmp}/lib
python ./setup.py install --prefix=$out
''; '';
# installPhase =
# ''
# python ./setup.py install --prefix=$out
# '';
meta = { meta = {
homepage = "http://www.pycrypto.org/"; homepage = "http://www.pycrypto.org/";
description = "Python Cryptography Toolkit"; description = "Python Cryptography Toolkit";

View File

@ -0,0 +1,20 @@
{ stdenv, python }:
stdenv.mkDerivation rec {
name = "resursive-pth-loader-1.0";
unpackPhase = "true";
buildInputs = [ python ];
installPhase =
''
dst=$out/lib/${python.libPrefix}/site-packages
mkdir -p $dst
cat ${./sitecustomize.py} >> $dst/sitecustomize.py
'';
meta = {
description = "Enable recursive processing of pth files anywhere in sys.path";
};
}

View File

@ -0,0 +1,46 @@
"""Recursively load pth files in site-packages of sys.path
- iterate over sys.path
- check for pth in dirs that end in site-packages
- ignore import statements in pth files
- add dirs listed in pth files right after current sys.path element,
they will be processed in next iteration
"""
import os
import site
import sys
for path_idx, sitedir in enumerate(sys.path):
# ignore non-site-packages
if not sitedir.endswith('site-packages'):
continue
# find pth files
try:
names = os.listdir(sitedir)
except os.error:
continue
dotpth = os.extsep + "pth"
pths = [name for name in names if name.endswith(dotpth)]
for pth in pths:
fullname = os.path.join(sitedir, pth)
try:
f = open(fullname, "rU")
except IOError:
continue
with f:
for n, line in enumerate(f):
if line.startswith("#"):
continue
if line.startswith(("import ", "import\t")):
continue
line = line.rstrip()
dir, dircase = site.makepath(sitedir, line)
if not dircase in sys.path:
sys.path.insert(path_idx+1, dir)

View File

@ -1,7 +1,9 @@
{ stdenv, fetchurl, python, wrapPython }: { stdenv, fetchurl, python, wrapPython }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "setuptools-0.6c11"; name = "setuptools-" + version;
version = "0.6c11";
src = fetchurl { src = fetchurl {
url = "http://pypi.python.org/packages/source/s/setuptools/${name}.tar.gz"; url = "http://pypi.python.org/packages/source/s/setuptools/${name}.tar.gz";

View File

@ -0,0 +1,16 @@
# Propagated by buildPythonPackge to process pth files
{ stdenv, python, setuptools }:
stdenv.mkDerivation {
name = "python-setuptools-site-${setuptools.version}";
buildInputs = [ python setuptools ];
unpackPhase = "true";
installPhase = ''
dst="$out/lib/${python.libPrefix}/site-packages"
ensureDir $dst
ln -s ${setuptools}/lib/${python.libPrefix}/site-packages/site.* $dst/
'';
}

View File

@ -5233,13 +5233,13 @@ let
numeric = callPackage ../development/python-modules/numeric { }; numeric = callPackage ../development/python-modules/numeric { };
pil = callPackage ../development/python-modules/pil { }; pil = python27Packages.pil;
psyco = callPackage ../development/python-modules/psyco { }; psyco = callPackage ../development/python-modules/psyco { };
pycairo = callPackage ../development/python-modules/pycairo { }; pycairo = callPackage ../development/python-modules/pycairo { };
pycrypto = callPackage ../development/python-modules/pycrypto { }; pycrypto = python27Packages.pycrypto;
pycups = callPackage ../development/python-modules/pycups { }; pycups = callPackage ../development/python-modules/pycups { };

View File

@ -9,7 +9,13 @@ let pythonPackages = python.modules // rec {
buildPythonPackage = import ../development/python-modules/generic { buildPythonPackage = import ../development/python-modules/generic {
inherit (pkgs) lib; inherit (pkgs) lib;
inherit python wrapPython setuptools; inherit python wrapPython setuptools setuptoolsSite offlineDistutils;
};
recursivePthLoader = import ../development/python-modules/recursive-pth-loader {
inherit (pkgs) stdenv;
inherit python;
}; };
@ -18,12 +24,30 @@ let pythonPackages = python.modules // rec {
inherit python wrapPython; inherit python wrapPython;
}; };
setuptoolsSite = import ../development/python-modules/setuptools/site.nix {
inherit (pkgs) stdenv;
inherit python setuptools;
};
offlineDistutils = import ../development/python-modules/offline-distutils {
inherit (pkgs) stdenv;
inherit python;
};
ipython = import ../shells/ipython { ipython = import ../shells/ipython {
inherit (pkgs) stdenv fetchurl; inherit (pkgs) stdenv fetchurl;
inherit buildPythonPackage pythonPackages; inherit buildPythonPackage pythonPackages;
}; };
pil = import ../development/python-modules/pil {
inherit (pkgs) fetchurl stdenv libjpeg zlib freetype;
inherit python buildPythonPackage;
};
pycrypto = import ../development/python-modules/pycrypto {
inherit (pkgs) fetchurl stdenv gmp;
inherit python buildPythonPackage;
};
wrapPython = pkgs.makeSetupHook wrapPython = pkgs.makeSetupHook
{ deps = pkgs.makeWrapper; { deps = pkgs.makeWrapper;
@ -44,6 +68,7 @@ let pythonPackages = python.modules // rec {
propagatedBuildInputs = [ notmuch pkgs.dbacl ]; propagatedBuildInputs = [ notmuch pkgs.dbacl ];
# error: invalid command 'test'
doCheck = false; doCheck = false;
postInstall = '' postInstall = ''
@ -70,6 +95,7 @@ let pythonPackages = python.modules // rec {
sha256 = "b5239c4dfcd9882608fb48ef80fe9ba9223949ab7e6a2c1abe970ac307ebcd4a"; sha256 = "b5239c4dfcd9882608fb48ef80fe9ba9223949ab7e6a2c1abe970ac307ebcd4a";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
propagatedBuildInputs = [ notmuch urwid twisted magic configobj pygpgme ]; propagatedBuildInputs = [ notmuch urwid twisted magic configobj pygpgme ];
@ -113,6 +139,7 @@ let pythonPackages = python.modules // rec {
sha1 = "f124e5e4a6644bf6d1734032a01ac44db1b25a29"; sha1 = "f124e5e4a6644bf6d1734032a01ac44db1b25a29";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -132,6 +159,7 @@ let pythonPackages = python.modules // rec {
buildInputs = [ pkgs.unzip pkgs.sqlite ]; buildInputs = [ pkgs.unzip pkgs.sqlite ];
# python: double free or corruption (fasttop): 0x0000000002fd4660 ***
doCheck = false; doCheck = false;
meta = { meta = {
@ -149,9 +177,14 @@ let pythonPackages = python.modules // rec {
rev = "b2c9cdcabd"; rev = "b2c9cdcabd";
sha256 = "b0c12b8c48ed9180c7475fab18de50d63e1b517cfb46da4d2c66fc406fe902bc"; sha256 = "b0c12b8c48ed9180c7475fab18de50d63e1b517cfb46da4d2c66fc406fe902bc";
}; };
installCommand = "python setup.py install --prefix=$out"; installCommand = "python setup.py install --prefix=$out";
# error: invalid command 'test'
doCheck = false; doCheck = false;
propagatedBuildInputs = [ boto ]; propagatedBuildInputs = [ boto ];
}); });
@ -165,7 +198,7 @@ let pythonPackages = python.modules // rec {
buildInputs = [ pkgs.unzip ]; buildInputs = [ pkgs.unzip ];
# How do we run the tests? # error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -206,7 +239,7 @@ let pythonPackages = python.modules // rec {
sha256 = "1gasiy5lwbhsxw27g36d88n36xbj52434klisvqhljgckd4xqcy7"; sha256 = "1gasiy5lwbhsxw27g36d88n36xbj52434klisvqhljgckd4xqcy7";
}; };
# No tests implemented # error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -272,23 +305,23 @@ let pythonPackages = python.modules // rec {
}; };
bugz = buildPythonPackage (rec { # bugz = buildPythonPackage (rec {
name = "bugz-0.9.3"; # name = "bugz-0.9.3";
#
src = fetchgit { # src = fetchgit {
url = "git://github.com/williamh/pybugz.git"; # url = "https://github.com/williamh/pybugz.git";
rev = "refs/tags/0.9.3"; # rev = "refs/tags/0.9.3";
}; # };
#
propagatedBuildInputs = [ argparse python.modules.ssl ]; # propagatedBuildInputs = [ argparse python.modules.ssl ];
#
doCheck = false; # doCheck = false;
#
meta = { # meta = {
homepage = http://www.liquidx.net/pybugz/; # homepage = http://www.liquidx.net/pybugz/;
description = "Command line interface for Bugzilla"; # description = "Command line interface for Bugzilla";
}; # };
}); # });
carrot = buildPythonPackage rec { carrot = buildPythonPackage rec {
@ -338,6 +371,7 @@ let pythonPackages = python.modules // rec {
sha256 = "1xlvanhnxgvwd7vvypbafyl6yqfkpnwa9rs9k3058z84gd86bz8d"; sha256 = "1xlvanhnxgvwd7vvypbafyl6yqfkpnwa9rs9k3058z84gd86bz8d";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -373,6 +407,8 @@ let pythonPackages = python.modules // rec {
propagatedBuildInputs = [ stompclient distribute ]; propagatedBuildInputs = [ stompclient distribute ];
#buildInputs = [ coverage ];
# needs coverage
doCheck = false; doCheck = false;
meta = { meta = {
@ -391,6 +427,7 @@ let pythonPackages = python.modules // rec {
md5 = "201dbaa732a9049c839f9bb6c27fc7b5"; md5 = "201dbaa732a9049c839f9bb6c27fc7b5";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -427,9 +464,9 @@ let pythonPackages = python.modules // rec {
sha256 = "139yfm9yz9k33kgqw4khsljs10rkhhxyywbq9i82bh2r31cil1pp"; sha256 = "139yfm9yz9k33kgqw4khsljs10rkhhxyywbq9i82bh2r31cil1pp";
}; };
buildInputs = [ pkgs.unzip ]; buildInputs = [ pkgs.unzip mock ];
# The tests fail - I don't know why # couple of failing tests
doCheck = false; doCheck = false;
meta = { meta = {
@ -456,7 +493,7 @@ let pythonPackages = python.modules // rec {
# http://thread.gmane.org/gmane.comp.file-systems.tahoe.devel/3200 for a # http://thread.gmane.org/gmane.comp.file-systems.tahoe.devel/3200 for a
# discussion. # discussion.
# Gives "ValueError: Empty module name" with no clue as to why. # AttributeError: 'module' object has no attribute 'test_darcsver'
doCheck = false; doCheck = false;
meta = { meta = {
@ -514,6 +551,8 @@ let pythonPackages = python.modules // rec {
# ehm, YES, the --verbose flags needs to be there, otherwise it tries to patch setuptools! # ehm, YES, the --verbose flags needs to be there, otherwise it tries to patch setuptools!
easy_install --verbose --prefix=$out . easy_install --verbose --prefix=$out .
''; '';
# test for 27 fails
doCheck = false; doCheck = false;
meta = { meta = {
@ -549,6 +588,7 @@ let pythonPackages = python.modules // rec {
sha256 = "16s0anvpaccbqmdrhl71z73k0dy2sl166nnc2fbd5lshlgmj13ad"; sha256 = "16s0anvpaccbqmdrhl71z73k0dy2sl166nnc2fbd5lshlgmj13ad";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -566,6 +606,7 @@ let pythonPackages = python.modules // rec {
sha256 = "0snlrcvk92qj1v0n9dpycn6sw56w4zns4mpc30837q6yi7ylrx4f"; sha256 = "0snlrcvk92qj1v0n9dpycn6sw56w4zns4mpc30837q6yi7ylrx4f";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -600,7 +641,7 @@ let pythonPackages = python.modules // rec {
sha256 = "1d8vg5a9q2ldnbxqap1893lqb66jwcsli2brbjx7mcnqrzcz449x"; sha256 = "1d8vg5a9q2ldnbxqap1893lqb66jwcsli2brbjx7mcnqrzcz449x";
}; };
propagatedBuildInputs = [ pkgs.pil django_1_3 ]; propagatedBuildInputs = [ pil django_1_3 ];
meta = { meta = {
description = "A collection of useful extensions for Django"; description = "A collection of useful extensions for Django";
@ -621,7 +662,10 @@ let pythonPackages = python.modules // rec {
installCommand = '' installCommand = ''
python setup.py install --prefix="$out" --root=/ --record="$out/lib/${python.libPrefix}/site-packages/dulwich/list.txt" --single-version-externally-managed python setup.py install --prefix="$out" --root=/ --record="$out/lib/${python.libPrefix}/site-packages/dulwich/list.txt" --single-version-externally-managed
''; '';
doCheck = false;
# For some reason "python setup.py test" doesn't work with Python 2.6.
# pretty sure that is about import behaviour.
doCheck = python.majorVersion != "2.6";
meta = { meta = {
description = "Simple Python implementation of the Git file formats and protocols."; description = "Simple Python implementation of the Git file formats and protocols.";
@ -655,6 +699,7 @@ let pythonPackages = python.modules // rec {
sha256 = "0wfz4nxl95jcr2f2mc5gijgighavcghg33plzbz5jyi531jpffss"; sha256 = "0wfz4nxl95jcr2f2mc5gijgighavcghg33plzbz5jyi531jpffss";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -729,6 +774,9 @@ let pythonPackages = python.modules // rec {
md5 = "abfdbb25d37c28e9da05f1b5c3596d1a"; md5 = "abfdbb25d37c28e9da05f1b5c3596d1a";
}; };
buildInputs = [ nose ];
# 3 failing tests
doCheck = false; doCheck = false;
meta = { meta = {
@ -784,9 +832,6 @@ let pythonPackages = python.modules // rec {
propagatedBuildInputs = [ twisted pkgs.pyopenssl ]; propagatedBuildInputs = [ twisted pkgs.pyopenssl ];
# For some reason "python setup.py test" doesn't work with Python 2.6.
doCheck = false;
meta = { meta = {
homepage = http://foolscap.lothar.com/; homepage = http://foolscap.lothar.com/;
@ -833,7 +878,8 @@ let pythonPackages = python.modules // rec {
sha256 = "0jrajyppdzb3swcxv3w1mpp88vcy7400gy1v2h2gm3pq0dmggaij"; sha256 = "0jrajyppdzb3swcxv3w1mpp88vcy7400gy1v2h2gm3pq0dmggaij";
}; };
# two tests fail on x86_64 at least. I don't know why. # FAIL: test_sanitize_remove_script_elem (genshi.filters.tests.html.HTMLSanitizerTestCase)
# FAIL: test_sanitize_remove_src_javascript (genshi.filters.tests.html.HTMLSanitizerTestCase)
doCheck = false; doCheck = false;
buildInputs = [ pkgs.setuptools ]; buildInputs = [ pkgs.setuptools ];
@ -859,7 +905,8 @@ let pythonPackages = python.modules // rec {
sha256 = "0bhiyx41kilvy04cgjbvjy2r4b6l7zz31fbrg3l6lvnqm26nihb0"; sha256 = "0bhiyx41kilvy04cgjbvjy2r4b6l7zz31fbrg3l6lvnqm26nihb0";
}; };
buildInputs = [ pkgs.setuptools ]; buildInputs = [ pkgs.setuptools ] ++
(if python.majorVersion == "2.6" then [ argparse ] else []);
meta = { meta = {
description = "automatically generated zsh completion function for Python's option parser modules"; description = "automatically generated zsh completion function for Python's option parser modules";
@ -895,6 +942,9 @@ let pythonPackages = python.modules // rec {
buildInputs = [ nose mox ]; buildInputs = [ nose mox ];
# tests fail for python2.6
doCheck = python.majorVersion != "2.6";
propagatedBuildInputs = [ gflags sqlalchemy webob routes eventlet ]; propagatedBuildInputs = [ gflags sqlalchemy webob routes eventlet ];
PYTHON_EGG_CACHE = "`pwd`/.egg-cache"; PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
@ -931,6 +981,7 @@ let pythonPackages = python.modules // rec {
sha256 = "1wmd1svx5344alb8ff9vzdam1ccqdl0h7shp1xnsk843hqwc0fz0"; sha256 = "1wmd1svx5344alb8ff9vzdam1ccqdl0h7shp1xnsk843hqwc0fz0";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
postUnpack = "find . -print0 | xargs -0 touch"; postUnpack = "find . -print0 | xargs -0 touch";
@ -950,8 +1001,6 @@ let pythonPackages = python.modules // rec {
sha256 = "2e2ce18092c32d1ec54f8a447e14e33585e30f240b883bfeeca65f12b3bcfaf6"; sha256 = "2e2ce18092c32d1ec54f8a447e14e33585e30f240b883bfeeca65f12b3bcfaf6";
}; };
doCheck = false; # doesn't have a test
meta = { meta = {
homepage = "http://code.google.com/p/httplib2"; homepage = "http://code.google.com/p/httplib2";
description = "A comprehensive HTTP client library"; description = "A comprehensive HTTP client library";
@ -987,6 +1036,7 @@ let pythonPackages = python.modules // rec {
md5 = "f4f7ddc7c5e55a47222a5cc6c0a87b6d"; md5 = "f4f7ddc7c5e55a47222a5cc6c0a87b6d";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -1026,6 +1076,7 @@ let pythonPackages = python.modules // rec {
md5 = "506cf1b13020b3ed2f3c845ea0c9830e"; md5 = "506cf1b13020b3ed2f3c845ea0c9830e";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -1044,10 +1095,13 @@ let pythonPackages = python.modules // rec {
sha256 = "11qilrs4sd4c1mkd64ikrjsc2vwrshhc54n5mh4xrark9c7ayp0y"; sha256 = "11qilrs4sd4c1mkd64ikrjsc2vwrshhc54n5mh4xrark9c7ayp0y";
}; };
buildInputs = [ zopeInterface ]; buildInputs = [ zopeInterface mock ];
preConfigure = "cp test/secrets.py-dist test/secrets.py"; preConfigure = "cp test/secrets.py-dist test/secrets.py";
# failing tests for 26 and 27
doCheck = false;
meta = { meta = {
description = "A unified interface to many cloud providers"; description = "A unified interface to many cloud providers";
homepage = http://incubator.apache.org/libcloud/; homepage = http://incubator.apache.org/libcloud/;
@ -1063,7 +1117,8 @@ let pythonPackages = python.modules // rec {
sha1 = "1eebaee375641c9f29aeb21768f917dd2b985752"; sha1 = "1eebaee375641c9f29aeb21768f917dd2b985752";
}; };
doCheck = false; # no tests # error: invalid command 'test'
doCheck = false;
meta = { meta = {
homepage = http://code.google.com/p/pylockfile/; homepage = http://code.google.com/p/pylockfile/;
@ -1154,6 +1209,7 @@ let pythonPackages = python.modules // rec {
md5 = "751e8055be2433dfd1a82e0fb1b12f13"; md5 = "751e8055be2433dfd1a82e0fb1b12f13";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -1169,6 +1225,7 @@ let pythonPackages = python.modules // rec {
sha256 = "be37e1d86c65ecacae6683f8805e051e9904e5f2e02bf2b7a34262c46a6d06a7"; sha256 = "be37e1d86c65ecacae6683f8805e051e9904e5f2e02bf2b7a34262c46a6d06a7";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
propagatedBuildInputs = [ dateutil numpy pkgs.freetype pkgs.libpng pkgs.pkgconfig pkgs.tcl pkgs.tk pkgs.xlibs.libX11 ]; propagatedBuildInputs = [ dateutil numpy pkgs.freetype pkgs.libpng pkgs.pkgconfig pkgs.tcl pkgs.tk pkgs.xlibs.libX11 ];
@ -1245,6 +1302,7 @@ let pythonPackages = python.modules // rec {
sha1 = "b71aeaacf31898c3b38d8b9ca5bcc0664499c0de"; sha1 = "b71aeaacf31898c3b38d8b9ca5bcc0664499c0de";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -1273,6 +1331,7 @@ let pythonPackages = python.modules // rec {
MySQL_python = buildPythonPackage { MySQL_python = buildPythonPackage {
name = "MySQL-python-1.2.3"; name = "MySQL-python-1.2.3";
# plenty of failing tests
doCheck = false; doCheck = false;
src = fetchurl { src = fetchurl {
@ -1280,7 +1339,9 @@ let pythonPackages = python.modules // rec {
sha256 = "0vkyg9dmj29hzk7fy77f42p7bfj28skyzsjsjry4wqr3z6xnzrkx"; sha256 = "0vkyg9dmj29hzk7fy77f42p7bfj28skyzsjsjry4wqr3z6xnzrkx";
}; };
propagatedBuildInputs = [ pkgs.mysql pkgs.zlib nose ]; buildInputs = [ nose ];
propagatedBuildInputs = [ pkgs.mysql pkgs.zlib ];
meta = { meta = {
description = "MySQL database binding for Python"; description = "MySQL database binding for Python";
@ -1300,6 +1361,7 @@ let pythonPackages = python.modules // rec {
# No support of GUI yet. # No support of GUI yet.
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -1332,7 +1394,8 @@ let pythonPackages = python.modules // rec {
sha256 = "0ssxic389rdc79zkz8dxcjpqdi5qs80h12khkag410cl9cwk11f2"; sha256 = "0ssxic389rdc79zkz8dxcjpqdi5qs80h12khkag410cl9cwk11f2";
}; };
doCheck = false; # there is no test command # error: invalid command 'test'
doCheck = false;
meta = { meta = {
homepage = https://github.com/drkjam/netaddr/; homepage = https://github.com/drkjam/netaddr/;
@ -1346,41 +1409,41 @@ let pythonPackages = python.modules // rec {
version = "0.10.0"; version = "0.10.0";
src = fetchurl { src = fetchurl {
url = "http://divmod.org/trac/attachment/wiki/SoftwareReleases/Nevow-${version}.tar.gz?format=raw"; url = "http://pypi.python.org/packages/source/N/Nevow/Nevow-${version}.tar.gz";
sha256 = "90631f68f626c8934984908d3df15e7c198939d36be7ead1305479dfc67ff6d0"; sha256 = "90631f68f626c8934984908d3df15e7c198939d36be7ead1305479dfc67ff6d0";
name = "${name}.tar.gz"; name = "${name}.tar.gz";
}; };
propagatedBuildInputs = [ twisted ]; propagatedBuildInputs = [ twisted ];
postInstall = "twistd --help > /dev/null"; postInstall = "twistd --help > /dev/null";
meta = { meta = {
description = "Nevow, a web application construction kit for Python"; description = "Nevow, a web application construction kit for Python";
longDescription = '' longDescription = ''
Nevow - Pronounced as the French "nouveau", or "noo-voh", Nevow Nevow - Pronounced as the French "nouveau", or "noo-voh", Nevow
is a web application construction kit written in Python. It is is a web application construction kit written in Python. It is
designed to allow the programmer to express as much of the view designed to allow the programmer to express as much of the view
logic as desired in Python, and includes a pure Python XML logic as desired in Python, and includes a pure Python XML
expression syntax named stan to facilitate this. However it expression syntax named stan to facilitate this. However it
also provides rich support for designer-edited templates, using also provides rich support for designer-edited templates, using
a very small XML attribute language to provide bi-directional a very small XML attribute language to provide bi-directional
template manipulation capability. template manipulation capability.
Nevow also includes formless, a declarative syntax for Nevow also includes formless, a declarative syntax for
specifying the types of method parameters and exposing these specifying the types of method parameters and exposing these
methods to the web. Forms can be rendered automatically, and methods to the web. Forms can be rendered automatically, and
form posts will be validated and input coerced, rendering error form posts will be validated and input coerced, rendering error
pages if appropriate. Once a form post has validated pages if appropriate. Once a form post has validated
successfully, the method will be called with the coerced values. successfully, the method will be called with the coerced values.
''; '';
homepage = http://divmod.org/trac/wiki/DivmodNevow; homepage = http://divmod.org/trac/wiki/DivmodNevow;
license = "BSD-style"; license = "BSD-style";
}; };
}); });
nose = buildPythonPackage rec { nose = buildPythonPackage rec {
name = "nose-1.2.1"; name = "nose-1.2.1";
@ -1451,6 +1514,8 @@ let pythonPackages = python.modules // rec {
python setup.py build --fcompiler="gnu95" python setup.py build --fcompiler="gnu95"
python setup.py install --prefix=$out python setup.py install --prefix=$out
''; '';
# error: invalid command 'test'
doCheck = false; doCheck = false;
buildInputs = [ pkgs.gfortran ]; buildInputs = [ pkgs.gfortran ];
@ -1463,7 +1528,7 @@ let pythonPackages = python.modules // rec {
}); });
oauth2 = buildPythonPackage (rec { oauth2 = buildPythonPackage (rec {
name = "auth2-1.5.211"; name = "oauth2-1.5.211";
src = fetchurl { src = fetchurl {
url = "http://pypi.python.org/packages/source/o/oauth2/oauth2-1.5.211.tar.gz"; url = "http://pypi.python.org/packages/source/o/oauth2/oauth2-1.5.211.tar.gz";
@ -1471,6 +1536,9 @@ let pythonPackages = python.modules // rec {
}; };
propagatedBuildInputs = [ httplib2 ]; propagatedBuildInputs = [ httplib2 ];
#buildInputs = [ mock coverage ];
# needs coverage
doCheck = false; doCheck = false;
meta = { meta = {
@ -1482,27 +1550,27 @@ let pythonPackages = python.modules // rec {
}; };
}); });
optfunc = buildPythonPackage ( rec { # optfunc = buildPythonPackage ( rec {
name = "optfunc-git"; # name = "optfunc-git";
#
src = pkgs.fetchgit { # src = pkgs.fetchgit {
url = "http://github.com/simonw/optfunc.git"; # url = "https://github.com/simonw/optfunc.git";
rev = "e3fa034a545ed94ac5a039cf5b170c7d0ee21b7b"; # rev = "e3fa034a545ed94ac5a039cf5b170c7d0ee21b7b";
}; # };
#
installCommand = '' # installCommand = ''
dest=$(toPythonPath $out)/optfunc # dest=$(toPythonPath $out)/optfunc
mkdir -p $dest # mkdir -p $dest
cp * $dest/ # cp * $dest/
''; # '';
#
doCheck = false; # doCheck = false;
#
meta = { # meta = {
description = "A new experimental interface to optparse which works by introspecting a function definition"; # description = "A new experimental interface to optparse which works by introspecting a function definition";
homepage = "http://simonwillison.net/2009/May/28/optfunc/"; # homepage = "http://simonwillison.net/2009/May/28/optfunc/";
}; # };
}); # });
ply = buildPythonPackage (rec { ply = buildPythonPackage (rec {
name = "ply-3.2"; name = "ply-3.2";
@ -1547,7 +1615,7 @@ let pythonPackages = python.modules // rec {
sha256 = "1bjy4jn51c50mpq51jbwk0glzd8bxz83gxdfkr9p95dmrd17c7hh"; sha256 = "1bjy4jn51c50mpq51jbwk0glzd8bxz83gxdfkr9p95dmrd17c7hh";
}; };
buildInputs = [ pkgs.pycrypto ]; buildInputs = [ pycrypto ];
meta = { meta = {
homepage = "http://www.lag.net/paramiko/"; homepage = "http://www.lag.net/paramiko/";
@ -1635,6 +1703,7 @@ let pythonPackages = python.modules // rec {
sha256 = "0x8bfjjqygriry1iyygm5048ykl5qpbpzqfp6i8dhkslm3ryf5fk"; sha256 = "0x8bfjjqygriry1iyygm5048ykl5qpbpzqfp6i8dhkslm3ryf5fk";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -1673,6 +1742,7 @@ let pythonPackages = python.modules // rec {
sha256 = "1sr2bb3g7rl7gr6156j5qv71kg06q1x01r1lbps9ksnyz37djn2q"; sha256 = "1sr2bb3g7rl7gr6156j5qv71kg06q1x01r1lbps9ksnyz37djn2q";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -1714,6 +1784,7 @@ let pythonPackages = python.modules // rec {
psycopg2 = buildPythonPackage rec { psycopg2 = buildPythonPackage rec {
name = "psycopg2-2.0.13"; name = "psycopg2-2.0.13";
# error: invalid command 'test'
doCheck = false; doCheck = false;
src = fetchurl { src = fetchurl {
@ -1782,8 +1853,6 @@ let pythonPackages = python.modules // rec {
python setup.py install --prefix=$out python setup.py install --prefix=$out
''; '';
doCheck = false;
meta = { meta = {
description = "Python bindings for PortAudio"; description = "Python bindings for PortAudio";
homepage = "http://people.csail.mit.edu/hubert/pyaudio/"; homepage = "http://people.csail.mit.edu/hubert/pyaudio/";
@ -1800,7 +1869,7 @@ let pythonPackages = python.modules // rec {
sha256 = "4a3a085ecf1fcd2736573538ffa114f1f4331b3bbbdd69381e6e172c49c9750f"; sha256 = "4a3a085ecf1fcd2736573538ffa114f1f4331b3bbbdd69381e6e172c49c9750f";
}; };
doCheck = false; buildInputs = [ pytz ];
meta = { meta = {
homepage = http://babel.edgewall.org; homepage = http://babel.edgewall.org;
@ -1849,14 +1918,13 @@ let pythonPackages = python.modules // rec {
buildInputs = [ pkgs.curl ]; buildInputs = [ pkgs.curl ];
# error: invalid command 'test'
doCheck = false; doCheck = false;
preConfigure = '' preConfigure = ''
substituteInPlace setup.py --replace '--static-libs' '--libs' substituteInPlace setup.py --replace '--static-libs' '--libs'
''; '';
installCommand = "python setup.py install --prefix=$out";
meta = { meta = {
homepage = http://pycurl.sourceforge.net/; homepage = http://pycurl.sourceforge.net/;
description = "Python wrapper for libcurl"; description = "Python wrapper for libcurl";
@ -1887,7 +1955,7 @@ let pythonPackages = python.modules // rec {
}; };
propagatedBuildInputs = [xe]; propagatedBuildInputs = [xe];
# tests not described in setup.py # error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -1920,6 +1988,7 @@ let pythonPackages = python.modules // rec {
sha256 = "5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1"; sha256 = "5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
propagatedBuildInputs = [ pkgs.gpgme ]; propagatedBuildInputs = [ pkgs.gpgme ];
@ -1965,7 +2034,10 @@ let pythonPackages = python.modules // rec {
url = "http://pypi.python.org/packages/source/p/pyparsing/${name}.tar.gz"; url = "http://pypi.python.org/packages/source/p/pyparsing/${name}.tar.gz";
md5 = "1e41cb219dae9fc353bd4cd47636b283"; md5 = "1e41cb219dae9fc353bd4cd47636b283";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
homepage = http://pyparsing.wikispaces.com/; homepage = http://pyparsing.wikispaces.com/;
description = "The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions."; description = "The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions.";
@ -1995,6 +2067,8 @@ let pythonPackages = python.modules // rec {
sha256 = "1idks7j9bn62xzsaxkvhl7bdq6ws8kv8aa0wahfh7724qlbbcf1k"; sha256 = "1idks7j9bn62xzsaxkvhl7bdq6ws8kv8aa0wahfh7724qlbbcf1k";
}; };
# ERROR: testExtended (tests.test_acls.AclExtensions)
# IOError: [Errno 0] Error
doCheck = false; doCheck = false;
buildInputs = [ pkgs.acl ]; buildInputs = [ pkgs.acl ];
@ -2090,6 +2164,7 @@ let pythonPackages = python.modules // rec {
md5 = "3076164a7079891d149a23f9435581db"; md5 = "3076164a7079891d149a23f9435581db";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -2119,7 +2194,7 @@ let pythonPackages = python.modules // rec {
--replace "/usr/local/lib" "${pkgs.sqlite}/lib" --replace "/usr/local/lib" "${pkgs.sqlite}/lib"
''; '';
# FIXME: How do we run the tests? # error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -2181,9 +2256,6 @@ let pythonPackages = python.modules // rec {
sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile
''); '');
# The regression test suite expects locale support, which our glibc
# doesn't have by default.
doCheck = false;
checkPhase = "make -C ../Tests"; checkPhase = "make -C ../Tests";
installPhase = '' installPhase = ''
@ -2260,6 +2332,7 @@ let pythonPackages = python.modules // rec {
sha256 = "0jmkffik6hdzs7ng8c65bggss2ai40nm59jykswdf5lpd36cxddq"; sha256 = "0jmkffik6hdzs7ng8c65bggss2ai40nm59jykswdf5lpd36cxddq";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
buildInputs = [ pkgs.attr ]; buildInputs = [ pkgs.attr ];
@ -2329,6 +2402,8 @@ let pythonPackages = python.modules // rec {
}; };
buildInputs = [freetype]; buildInputs = [freetype];
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -2348,8 +2423,8 @@ let pythonPackages = python.modules // rec {
propagatedBuildInputs = propagatedBuildInputs =
[ recaptcha_client pytz memcached dateutil paramiko flup pygments [ recaptcha_client pytz memcached dateutil paramiko flup pygments
djblets django_1_3 django_evolution pkgs.pycrypto python.modules.sqlite3 djblets django_1_3 django_evolution pycrypto python.modules.sqlite3
pysvn pkgs.pil psycopg2 pysvn pil psycopg2
]; ];
}; };
@ -2362,6 +2437,7 @@ let pythonPackages = python.modules // rec {
sha256 = "1c7ipk5vwqnln83rmai5jzyxkjdajdzbk5cgy1z83nyr5hbkgkqr"; sha256 = "1c7ipk5vwqnln83rmai5jzyxkjdajdzbk5cgy1z83nyr5hbkgkqr";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -2444,6 +2520,8 @@ let pythonPackages = python.modules // rec {
buildInputs = [pkgs.gfortran]; buildInputs = [pkgs.gfortran];
propagatedBuildInputs = [ numpy ]; propagatedBuildInputs = [ numpy ];
# error: invalid command 'test'
doCheck = false; doCheck = false;
# TODO: add ATLAS=${pkgs.atlas} # TODO: add ATLAS=${pkgs.atlas}
@ -2582,6 +2660,7 @@ let pythonPackages = python.modules // rec {
md5 = "9e8099b57cd27493a6988e9c9b313e23"; md5 = "9e8099b57cd27493a6988e9c9b313e23";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -2605,6 +2684,7 @@ let pythonPackages = python.modules // rec {
sourceRoot=`pwd`/`ls -d S*` sourceRoot=`pwd`/`ls -d S*`
''; '';
# error: invalid command 'test'
doCheck = false; doCheck = false;
propagatedBuildInputs = [ pkgs.xlibs.libX11 pkgs.pythonDBus pkgs.pygobject ]; propagatedBuildInputs = [ pkgs.xlibs.libX11 pkgs.pythonDBus pkgs.pygobject ];
@ -2694,7 +2774,9 @@ let pythonPackages = python.modules // rec {
md5 = "af0a314b6106dd80da24a918c24a1eab"; md5 = "af0a314b6106dd80da24a918c24a1eab";
}; };
doCheck = false; buildInputs = [ mock nose ];
# XXX: Ran 0 tests in 0.217s
meta = { meta = {
description = "Lightweight and extensible STOMP messaging client"; description = "Lightweight and extensible STOMP messaging client";
@ -2705,19 +2787,20 @@ let pythonPackages = python.modules // rec {
}); });
svneverever = buildPythonPackage rec { # XXX: ValueError: ZIP does not support timestamps before 1980
name = "svneverever-778489a8"; # svneverever = buildPythonPackage rec {
# name = "svneverever-778489a8";
src = pkgs.fetchgit { #
url = git://git.goodpoint.de/svneverever.git; # src = pkgs.fetchgit {
rev = "778489a8c6f07825fb18c9da3892a781c3d659ac"; # url = git://git.goodpoint.de/svneverever.git;
sha256 = "41c9da1dab2be7b60bff87e618befdf5da37c0a56287385cb0cbd3f91e452bb6"; # rev = "778489a8c6f07825fb18c9da3892a781c3d659ac";
}; # sha256 = "41c9da1dab2be7b60bff87e618befdf5da37c0a56287385cb0cbd3f91e452bb6";
# };
propagatedBuildInputs = [ pysvn argparse ]; #
# propagatedBuildInputs = [ pysvn argparse ];
doCheck = false; #
}; # doCheck = false;
# };
taskcoach = buildPythonPackage rec { taskcoach = buildPythonPackage rec {
name = "TaskCoach-1.3.8"; name = "TaskCoach-1.3.8";
@ -2737,6 +2820,7 @@ let pythonPackages = python.modules // rec {
--prefix LD_LIBRARY_PATH : $libspaths --prefix LD_LIBRARY_PATH : $libspaths
''; '';
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -2772,6 +2856,7 @@ let pythonPackages = python.modules // rec {
sha256 = "1ihf5031pc1wpwbxpfzzz2bcpwww795n5y22baglyim1lalivd65"; sha256 = "1ihf5031pc1wpwbxpfzzz2bcpwww795n5y22baglyim1lalivd65";
}; };
# couple of failing tests
doCheck = false; doCheck = false;
PYTHON_EGG_CACHE = "`pwd`/.egg-cache"; PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
@ -2793,7 +2878,12 @@ let pythonPackages = python.modules // rec {
sha256 = "c0f32fa31e2c5fa42f5cc19f3dba4e73f0438bf36bf756ba137f2423c0ac4637"; sha256 = "c0f32fa31e2c5fa42f5cc19f3dba4e73f0438bf36bf756ba137f2423c0ac4637";
}; };
propagatedBuildInputs = [ oauth2 urwid tweepy ]; propagatedBuildInputs = [ oauth2 urwid tweepy ] ++
(if python.majorVersion == "2.6" then [ argparse ]
else []);
#buildInputs = [ tox ];
# needs tox
doCheck = false; doCheck = false;
meta = { meta = {
@ -2813,8 +2903,6 @@ let pythonPackages = python.modules // rec {
sha256 = "66d728527ab3d5f5e4d6725654783f99169172678105f609d14353f6626c1315"; sha256 = "66d728527ab3d5f5e4d6725654783f99169172678105f609d14353f6626c1315";
}; };
doCheck = false;
meta = { meta = {
homepage = "https://github.com/tweepy/tweepy"; homepage = "https://github.com/tweepy/tweepy";
description = "Twitter library for python"; description = "Twitter library for python";
@ -2881,6 +2969,7 @@ let pythonPackages = python.modules // rec {
sha256 = "4437076c8708e5754ea04540e46c7f4f233734ee3590bb8a96389264fb0650d0"; sha256 = "4437076c8708e5754ea04540e46c7f4f233734ee3590bb8a96389264fb0650d0";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
propagatedBuildInputs = [ pycurl ]; propagatedBuildInputs = [ pycurl ];
@ -2897,6 +2986,7 @@ let pythonPackages = python.modules // rec {
urwid = buildPythonPackage (rec { urwid = buildPythonPackage (rec {
name = "urwid-1.1.1"; name = "urwid-1.1.1";
# multiple: NameError: name 'evl' is not defined
doCheck = false; doCheck = false;
src = fetchurl { src = fetchurl {
@ -2924,7 +3014,9 @@ let pythonPackages = python.modules // rec {
propagatedBuildInputs = [ python.modules.readline python.modules.sqlite3 ]; propagatedBuildInputs = [ python.modules.readline python.modules.sqlite3 ];
doCheck = false; buildInputs = [ mock nose ];
# XXX: Ran 0 tests in 0.003s
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "a tool to create isolated Python environments"; description = "a tool to create isolated Python environments";
@ -2943,6 +3035,7 @@ let pythonPackages = python.modules // rec {
md5 = "8492e46496e187b49fe5569b5639804e"; md5 = "8492e46496e187b49fe5569b5639804e";
}; };
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -3042,7 +3135,7 @@ let pythonPackages = python.modules // rec {
sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42"; sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42";
}; };
# tests not described in setup.py # error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -3131,8 +3224,6 @@ let pythonPackages = python.modules // rec {
sha256 = "294c3c0529e84169177bce78d616c768fa1c028a2fbc1854f615d32ed88dbc6c"; sha256 = "294c3c0529e84169177bce78d616c768fa1c028a2fbc1854f615d32ed88dbc6c";
}; };
doCheck = false;
meta = { meta = {
description = "Zope.Interface"; description = "Zope.Interface";
homepage = http://zope.org/Products/ZopeInterface; homepage = http://zope.org/Products/ZopeInterface;
@ -3140,22 +3231,23 @@ let pythonPackages = python.modules // rec {
}; };
}; };
hgsvn = buildPythonPackage rec { # XXX: link broken
name = "hgsvn-0.1.8"; # hgsvn = buildPythonPackage rec {
src = fetchurl rec { # name = "hgsvn-0.1.8";
name = "hgsvn-0.1.8.tar.gz"; # src = fetchurl rec {
url = "http://pypi.python.org/packages/source/h/hgsvn/${name}.tar.gz#md5=56209eae48b955754e09185712123428"; # name = "hgsvn-0.1.8.tar.gz";
sha256 = "18a7bj1i0m4shkxmdvw1ci5i0isq5vqf0bpwgrhnk305rijvbpch"; # url = "http://pypi.python.org/packages/source/h/hgsvn/${name}.tar.gz#md5=56209eae48b955754e09185712123428";
}; # sha256 = "18a7bj1i0m4shkxmdvw1ci5i0isq5vqf0bpwgrhnk305rijvbpch";
# };
buildInputs = [ pkgs.setuptools ]; #
doCheck = false; # buildInputs = [ pkgs.setuptools ];
# doCheck = false;
meta = { #
description = "HgSVN"; # meta = {
homepage = http://pypi.python.org/pypi/hgsvn; # description = "HgSVN";
}; # homepage = http://pypi.python.org/pypi/hgsvn;
}; # };
# };
cliapp = buildPythonPackage rec { cliapp = buildPythonPackage rec {
name = "cliapp-1.20120929"; name = "cliapp-1.20120929";
@ -3167,6 +3259,7 @@ let pythonPackages = python.modules // rec {
buildInputs = [ sphinx ]; buildInputs = [ sphinx ];
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -3187,6 +3280,7 @@ let pythonPackages = python.modules // rec {
buildInputs = [ sphinx ]; buildInputs = [ sphinx ];
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -3207,6 +3301,7 @@ let pythonPackages = python.modules // rec {
buildInputs = [ sphinx ]; buildInputs = [ sphinx ];
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {
@ -3228,6 +3323,7 @@ let pythonPackages = python.modules // rec {
buildInputs = [ sphinx ]; buildInputs = [ sphinx ];
propagatedBuildInputs = [ tracing ttystatus cliapp ]; propagatedBuildInputs = [ tracing ttystatus cliapp ];
# error: invalid command 'test'
doCheck = false; doCheck = false;
meta = { meta = {