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,6 +70,20 @@ 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}
''; '';
@ -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,7 +1409,7 @@ 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";
}; };
@ -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 = {