diff --git a/pkgs/applications/virtualization/nova/client.nix b/pkgs/applications/virtualization/nova/client.nix deleted file mode 100644 index bcc72d19bb39..000000000000 --- a/pkgs/applications/virtualization/nova/client.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ fetchurl, pythonPackages }: - -pythonPackages.buildPythonPackage rec { - name = "novaclient-2012.1"; - namePrefix = ""; - - src = fetchurl { - url = "http://pypi.python.org/packages/source/p/python-novaclient/python-${name}.tar.gz"; - md5 = "8f53a308e08b2af4645281917be77ffc"; - }; - - pythonPath = [ pythonPackages.prettytable pythonPackages.argparse pythonPackages.httplib2 ]; - - buildInputs = [ pythonPackages.mock pythonPackages.nose ]; - - meta = { - homepage = https://github.com/rackspace/python-novaclient; - description = "Client library and command line tool for the OpenStack Nova API"; - broken = true; - }; -} diff --git a/pkgs/applications/virtualization/nova/default.nix b/pkgs/applications/virtualization/nova/default.nix index 0023cf44f33b..5806be4e02a9 100644 --- a/pkgs/applications/virtualization/nova/default.nix +++ b/pkgs/applications/virtualization/nova/default.nix @@ -1,95 +1,63 @@ -{ stdenv, fetchurl, pythonPackages, intltool, libvirt, libxml2Python, curl, novaclient }: +{ stdenv, fetchurl, pythonPackages, intltool, libvirt, curl, openssl, openssh }: -with stdenv.lib; - -let version = "2011.2"; in - -stdenv.mkDerivation rec { +pythonPackages.buildPythonPackage rec { name = "nova-${version}"; + version = "12.0.0"; + namePrefix = ""; + + PBR_VERSION = "${version}"; src = fetchurl { - url = "http://launchpad.net/nova/cactus/${version}/+download/nova-${version}.tar.gz"; - sha256 = "1s2w0rm332y9x34ngjz8sys9sbldg857rx9d6r3nb1ik979fx8p7"; + url = "https://github.com/openstack/nova/archive/${version}.tar.gz"; + sha256 = "175n1znvmy8f5vqvabc2fa4qy8y17685z4gzpq8984mdsdnpv21w"; }; - patches = - [ ./convert.patch ]; + # https://github.com/openstack/nova/blob/stable/liberty/requirements.txt + propagatedBuildInputs = with pythonPackages; [ + pbr sqlalchemy_1_0 boto decorator eventlet jinja2 lxml routes cryptography + webob greenlet PasteDeploy paste prettytable sqlalchemy_migrate netaddr + netifaces paramiko Babel iso8601 jsonschema keystoneclient requests2 six + stevedore websockify rfc3986 os-brick psutil_1 alembic psycopg2 pymysql + keystonemiddleware - pythonPath = with pythonPackages; - [ setuptools eventlet greenlet gflags netaddr sqlalchemy carrot routes - paste_deploy m2crypto ipy twisted sqlalchemy_migrate - distutils_extra simplejson readline glance cheetah lockfile httplib2 - # !!! should libvirt be a build-time dependency? Note that - # libxml2Python is a dependency of libvirt.py. - libvirt libxml2Python - novaclient - ]; + # oslo components + oslo-rootwrap oslo-reports oslo-utils oslo-i18n oslo-config oslo-context + oslo-log oslo-serialization oslo-middleware oslo-db oslo-service oslo-messaging + oslo-concurrency oslo-versionedobjects - buildInputs = - [ pythonPackages.python - pythonPackages.wrapPython - pythonPackages.mox - intltool - ] ++ pythonPath; + # clients + cinderclient neutronclient glanceclient + ]; - PYTHON_EGG_CACHE = "`pwd`/.egg-cache"; + buildInputs = with pythonPackages; [ + coverage fixtures mock mox3 subunit requests-mock pillow oslosphinx + oslotest testrepository testresources testtools tempest-lib bandit + oslo-vmware pep8 barbicanclient ironicclient openssl openssh + ]; - preConfigure = - '' - # Set the built-in state location to something sensible. - sed -i nova/flags.py \ - -e "/DEFINE.*'state_path'/ s|../|/var/lib/nova|" + postInstall = '' + cp -prvd etc $out/etc - substituteInPlace nova/virt/images.py --replace /usr/bin/curl ${curl}/bin/curl + # check all binaries don't crash + for i in $out/bin/*; do + case "$i" in + *nova-dhcpbridge*) + : + ;; + *nova-rootwrap*) + : + ;; + *) + $i --help + ;; + esac + done + ''; - substituteInPlace nova/api/ec2/cloud.py \ - --replace 'sh genrootca.sh' $out/libexec/nova/genrootca.sh - ''; - - buildPhase = "python setup.py build"; - - installPhase = - '' - p=$(toPythonPath $out) - export PYTHONPATH=$p:$PYTHONPATH - mkdir -p $p - python setup.py install --prefix=$out - - # Nova doesn't like to be called ".nova-foo-wrapped" because it - # computes some stuff from its own argv[0]. So put the wrapped - # programs in $out/libexec under their original names. - mkdir -p $out/libexec/nova - - wrapProgram() { - local prog="$1" - local hidden=$out/libexec/nova/$(basename "$prog") - mv $prog $hidden - makeWrapper $hidden $prog "$@" - } - - wrapPythonPrograms - - cp -prvd etc $out/etc - - # Nova makes some weird assumptions about where to find its own - # programs relative to the Python directory. - ln -sfn $out/bin $out/lib/${pythonPackages.python.libPrefix}/site-packages/bin - - # Install the certificate generation script. - cp nova/CA/genrootca.sh $out/libexec/nova/ - cp nova/CA/openssl.cnf.tmpl $out/libexec/nova/ - - # Allow nova-manage etc. to find the proper configuration file. - ln -s /etc/nova/nova.conf $out/libexec/nova/nova.conf - ''; - - doCheck = false; # !!! fix - - checkPhase = "python setup.py test"; - - meta = { + meta = with stdenv.lib; { homepage = http://nova.openstack.org/; description = "OpenStack Compute (a.k.a. Nova), a cloud computing fabric controller"; - broken = true; + license = stdenv.lib.licenses.asl20; + platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix index e3172dcaa3e7..0b1cf9ebc527 100644 --- a/pkgs/applications/virtualization/virt-manager/default.nix +++ b/pkgs/applications/virtualization/virt-manager/default.nix @@ -19,7 +19,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ eventlet greenlet gflags netaddr sqlalchemy carrot routes - paste_deploy m2crypto ipy twisted sqlalchemy_migrate + PasteDeploy m2crypto ipy twisted sqlalchemy_migrate distutils_extra simplejson readline glance cheetah lockfile httplib2 urlgrabber virtinst pyGtkGlade pythonDBus gnome_python pygobject3 libvirt libxml2Python ipaddr vte libosinfo diff --git a/pkgs/applications/virtualization/virtinst/default.nix b/pkgs/applications/virtualization/virtinst/default.nix index 6441bb884234..adcefe6004ac 100644 --- a/pkgs/applications/virtualization/virtinst/default.nix +++ b/pkgs/applications/virtualization/virtinst/default.nix @@ -14,15 +14,15 @@ stdenv.mkDerivation rec { pythonPath = with pythonPackages; [ setuptools eventlet greenlet gflags netaddr sqlalchemy carrot routes - paste_deploy m2crypto ipy twisted sqlalchemy_migrate + PasteDeploy m2crypto ipy twisted sqlalchemy_migrate distutils_extra simplejson readline glance cheetah lockfile httplib2 # !!! should libvirt be a build-time dependency? Note that - # libxml2Python is a dependency of libvirt.py. + # libxml2Python is a dependency of libvirt.py. libvirt libxml2Python urlgrabber ]; buildInputs = - [ pythonPackages.python + [ pythonPackages.python pythonPackages.wrapPython pythonPackages.mox intltool diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix index 57c455f851c5..7fe50640188a 100644 --- a/pkgs/development/python-modules/setuptools/default.nix +++ b/pkgs/development/python-modules/setuptools/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { shortName = "setuptools-${version}"; name = "${python.executable}-${shortName}"; - version = "18.2"; + version = "18.4"; src = fetchurl { url = "http://pypi.python.org/packages/source/s/setuptools/${shortName}.tar.gz"; - sha256 = "07avbdc26yl2a46s76fc7m4vg611g8sh39l26x9dr9byya6sb509"; + sha256 = "07qigmdgm6pard6gwlgj5n7cm0f43nk271ymacsdhjhbwsc51snd"; }; buildInputs = [ python wrapPython distutils-cfg ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f056d4dbbf2b..a6b5f4a709ca 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12447,10 +12447,9 @@ let sphinx = pythonPackages.sphinx; }; + # Open Stack nova = callPackage ../applications/virtualization/nova { }; - novaclient = callPackage ../applications/virtualization/nova/client.nix { }; - nova-filters = callPackage ../applications/audio/nova-filters { }; nspluginwrapper = callPackage ../applications/networking/browsers/mozilla-plugins/nspluginwrapper {}; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 83fbde15057f..c4ad42456bf8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -301,15 +301,15 @@ let alembic = buildPythonPackage rec { - name = "alembic-0.7.6"; + name = "alembic-0.8.3"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/a/alembic/${name}.tar.gz"; - sha256 = "0qgglnxsn470ncyipm33j3d5nf5ny2g3wq7fxyy9fv2x4rhs8kw6"; + sha256 = "1sgwvwylzd5h14130mwr0cbyy0fil0a1bq0d0ki97wqvkic3db7f"; }; - buildInputs = with self; [ nose mock ]; - propagatedBuildInputs = with self; [ Mako sqlalchemy9 ]; + buildInputs = with self; [ pytest pytestcov mock coverage ]; + propagatedBuildInputs = with self; [ Mako sqlalchemy_1_0 python-editor ]; meta = { homepage = http://bitbucket.org/zzzeek/alembic; @@ -318,6 +318,20 @@ let }; }; + python-editor = buildPythonPackage rec { + name = "python-editor-${version}"; + version = "0.4"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/python-editor/${name}.tar.gz"; + sha256 = "1gykxn16anmsbcrwhx3rrhwjif95mmwvq9gjcrr9bbzkdc8sf8a4"; + }; + + meta = with stdenv.lib; { + description = "`python-editor` is a library that provides the `editor` module for programmatically"; + homepage = "https://github.com/fmoo/python-editor"; + }; + }; almir = buildPythonPackage rec { name = "almir-0.1.8"; @@ -426,13 +440,12 @@ let amqp = buildPythonPackage rec { name = "amqp-${version}"; - version = "1.4.6"; + version = "1.4.7"; disabled = pythonOlder "2.6"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/a/amqp/${name}.tar.gz"; - sha256 = "0h76dnqfbc6fslwr7lx86n2gyslfv2x1vl8lpbszjs2svrkwikzb"; - md5 = "a061581b6864f838bffd62b6a3d0fb9f"; + sha256 = "1nids25n6a17nrpxnklpi1h059zi87cs2g6irvp0j4p0ad5qi08p"; }; buildInputs = with self; [ mock coverage nose-cover3 unittest2 ]; @@ -545,7 +558,6 @@ let funcsigs = buildPythonPackage rec { name = "funcsigs-0.4"; - disabled = ! (isPy26 || isPy27 || isPy33 || isPyPy); src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/f/funcsigs/${name}.tar.gz"; @@ -698,23 +710,25 @@ let }; argparse = buildPythonPackage (rec { - name = "argparse-1.2.1"; + name = "argparse-1.4.0"; src = pkgs.fetchurl { - url = "http://argparse.googlecode.com/files/${name}.tar.gz"; - sha256 = "192174mys40m0bwk6l5jlfnzps0xi81sxm34cqms6dc3c454pbyx"; + url = "https://pypi.python.org/packages/source/a/argparse/${name}.tar.gz"; + sha256 = "1r6nznp64j68ih1k537wms7h57nvppq0szmwsaf99n71bfjqkc32"; }; - # error: invalid command 'test' - doCheck = false; + checkPhase = '' + export PYTHONPATH=`pwd`/build/lib:$PYTHONPATH + ${python.interpreter} test/test_argparse.py + ''; + + # ordering issues in tests + doCheck = !isPy3k; meta = { homepage = http://code.google.com/p/argparse/; - license = licenses.asl20; - description = "argparse: Python command line parser"; - longDescription = '' The argparse module makes writing command line tools in Python easy. Just briefly describe your command line interface and @@ -2288,13 +2302,15 @@ let }; coverage = buildPythonPackage rec { - name = "coverage-3.7.1"; + name = "coverage-4.0.1"; src = pkgs.fetchurl { url = "http://pypi.python.org/packages/source/c/coverage/${name}.tar.gz"; - sha256 = "0knlbq79g2ww6xzsyknj9rirrgrgc983dpa2d9nkdf31mb2a3bni"; + sha256 = "0nrd817pzjw1haaz6gambgwf4jdjnh9kyxkgj6l8qgl6hdxga45w"; }; + buildInputs = with self; [ nose mock ]; + meta = { description = "Code coverage measurement for python"; homepage = http://nedbatchelder.com/code/coverage/; @@ -2386,20 +2402,147 @@ let }; cryptography = buildPythonPackage rec { - name = "cryptography-1.0"; + # also bump cryptography_vectors + name = "cryptography-1.0.2"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/c/cryptography/${name}.tar.gz"; - sha256 = "008hq9s4z7y17yjxh1aycvddas320hfbl9vj8gydg4fpfzz04711"; + sha256 = "1jmcidddbbgdavvnvjjc0pda4b9a5i9idsivchn69pqxx68x8k6n"; }; buildInputs = [ pkgs.openssl self.pretend self.cryptography_vectors self.iso8601 self.pyasn1 self.pytest self.py ]; - propagatedBuildInputs = [ self.six self.idna self.ipaddress ] + propagatedBuildInputs = [ self.six self.idna self.ipaddress self.pyasn1 ] ++ optional (!isPyPy) self.cffi ++ optional (pythonOlder "3.4") self.enum34; }; + cryptography_vectors = buildPythonPackage rec { + # also bump cryptography + name = "cryptography_vectors-1.0.2"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/c/cryptography-vectors/${name}.tar.gz"; + sha256 = "0dx98kcypmarwwhi6rjwy30ridys2ja6mc6mjf0svd4nllkaljdq"; + }; + }; + + oslo-vmware = buildPythonPackage rec { + name = "oslo.vmware-${version}"; + version = "1.22.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.vmware/${name}.tar.gz"; + sha256 = "1119q3x2y3hjz3p784byr13aqay75pbj4cb8v43gjq5piqlpp16x"; + }; + + propagatedBuildInputs = with self; [ + pbr stevedore netaddr iso8601 six oslo-i18n oslo-utils Babel pyyaml eventlet + requests2 urllib3 oslo-concurrency suds-jurko + ]; + buildInputs = with self; [ + bandit oslosphinx coverage testtools testscenarios testrepository mock + + ]; + }; + + barbicanclient = buildPythonPackage rec { + name = "barbicanclient-${version}"; + version = "3.3.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/python-barbicanclient/python-barbicanclient-${version}.tar.gz"; + sha256 = "1kxnxiijvkkc8ahlfbkslpzxcbah7y5pi86hvkyac62xzda87inm"; + }; + + propagatedBuildInputs = with self; [ + pbr argparse requests2 six keystoneclient cliff oslo-i18n oslo-serialization + oslo-utils + ]; + buildInputs = with self; [ + oslosphinx oslotest requests-mock + ]; + }; + + + ironicclient = buildPythonPackage rec { + name = "ironicclient-${version}"; + version = "0.9.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/python-ironicclient/python-ironicclient-${version}.tar.gz"; + sha256 = "16kaixrmnx6a32mfv281w22h8lavjh0k9yiqikmwc986ydh85s4d"; + }; + + propagatedBuildInputs = with self; [ + six keystoneclient prettytable oslo-utils oslo-i18n lxml httplib2 cliff + dogpile_cache appdirs anyjson pbr openstackclient + ]; + buildInputs = with self; [ + httpretty + ]; + + meta = with stdenv.lib; { + description = "Python bindings for the Ironic API"; + homepage = "http://www.openstack.org/"; + }; + }; + + novaclient = buildPythonPackage rec { + name = "novaclient-${version}"; + version = "2.31.0"; + + src = pkgs.fetchurl { + url = "https://github.com/openstack/python-novaclient/archive/${version}.tar.gz"; + sha256 = "0cd49yz9qhpv1srg6wwjnivyb3i8zjxda0h439158qv9w6bfqhdf"; + }; + + PBR_VERSION = "${version}"; + + buildInputs = with self; [ + pbr testtools testscenarios testrepository requests-mock fixtures ]; + propagatedBuildInputs = with self; [ + Babel argparse prettytable requests2 simplejson six iso8601 + keystoneclient tempest-lib ]; + + # TODO: check if removing this test is really harmless + preCheck = '' + substituteInPlace novaclient/tests/unit/v2/test_servers.py --replace "test_get_password" "noop" + ''; + + meta = { + homepage = https://github.com/openstack/python-novaclient/; + description = "Client library and command line tool for the OpenStack Nova API"; + license = stdenv.lib.licenses.asl20; + platforms = stdenv.lib.platforms.linux; + }; + }; + + openstackclient = buildPythonPackage rec { + name = "openstackclient-${version}"; + version = "1.7.1"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/python-openstackclient/python-openstackclient-${version}.tar.gz"; + sha256 = "0h1jkrwx06l32k50zq5gs9iba132q2x2jjb3z5gkxxlcd3apk8y9"; + }; + + propagatedBuildInputs = with self; [ + pbr six Babel cliff os-client-config oslo-config oslo-i18n oslo-utils + glanceclient keystoneclient novaclient cinderclient neutronclient requests2 + stevedore + ]; + buildInputs = with self; [ + requests-mock + ]; + + meta = with stdenv.lib; { + homepage = "http://wiki.openstack.org/OpenStackClient"; + }; + }; + + + idna = buildPythonPackage rec { name = "idna-2.0"; @@ -2415,15 +2558,6 @@ let }; }; - cryptography_vectors = buildPythonPackage rec { - name = "cryptography_vectors-1.0"; - - src = pkgs.fetchurl { - url = "https://pypi.python.org/packages/source/c/cryptography-vectors/${name}.tar.gz"; - sha256 = "0d02x93vk0b1fla914bij71pfma0p7sprlvrxq1bb6dxnwc7h9z7"; - }; - }; - pkginfo = buildPythonPackage rec { version = "1.2.1"; name = "pkginfo-${version}"; @@ -2714,20 +2848,18 @@ let }; pytestcov = buildPythonPackage (rec { - name = "pytest-cov-1.8.1"; + name = "pytest-cov-2.2.0"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/p/pytest-cov/${name}.tar.gz"; - md5 = "76c778afa2494088270348be42d759fc"; + sha256 = "1lf9jsmhqk5nc4w3kzwglmdzjvmi7ajvrsnwv826j3bn0wzx8c92"; }; buildInputs = with self; [ covCore pytest ]; meta = { - description = "py.test plugin for coverage reporting with support for both centralised and distributed testing, including subprocesses and multiprocessing"; - + description = "plugin for coverage reporting with support for both centralised and distributed testing, including subprocesses and multiprocessing"; homepage = https://github.com/schlamar/pytest-cov; - license = licenses.mit; }; }); @@ -3338,17 +3470,22 @@ let }; urllib3 = buildPythonPackage rec { - name = "urllib3-1.8"; + name = "urllib3-1.12"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/u/urllib3/${name}.tar.gz"; - sha256 = "0pdigfxkq8mhzxxsn6isx8c4h9azqywr1k18yanwyxyj8cdzm28s"; + sha256 = "1ikj72kd4cdcq7pmmcd5p6s9dvp7wi0zw01635v4xzkid5vi598f"; }; preConfigure = '' substituteInPlace test-requirements.txt --replace 'nose==1.3' 'nose' ''; + # since Nix uses a proxy, we get a different error + preBuild = '' + substituteInPlace test/with_dummyserver/test_proxy_poolmanager.py \ + --replace "ConnectTimeoutError" "ProxyError" + ''; checkPhase = '' nosetests --cover-min-percentage 70 ''; @@ -4733,7 +4870,7 @@ let ] ++ optional isPy26 unittest2; propagatedBuildInputs = with self; [ - paste_deploy + PasteDeploy repoze_lru repoze_sphinx_autointerface translationstring @@ -6102,11 +6239,11 @@ let }; eventlet = buildPythonPackage rec { - name = "eventlet-0.16.1"; + name = "eventlet-0.17.4"; src = pkgs.fetchurl { url = "http://pypi.python.org/packages/source/e/eventlet/${name}.tar.gz"; - md5 = "58f6e5cd1bcd8ab78e32a2594aa0abad"; + sha256 = "0vam0qfm8p5jkpp2cv12r5bnpnv902ld7q074h7x5y5g9rqyj8c7"; }; buildInputs = with self; [ nose httplib2 pyopenssl ]; @@ -6254,18 +6391,15 @@ let }; flake8 = buildPythonPackage (rec { - name = "flake8-2.3.0"; + name = "flake8-2.4.1"; src = pkgs.fetchurl { url = "http://pypi.python.org/packages/source/f/flake8/${name}.tar.gz"; - md5 = "488d6166f6b9ef9fe9d433b95e77dc07"; + sha256 = "0dvmrpv7x98xkzffjz1z7lqr90sp5zdz16bdwckfd1cckpjvnzif"; }; buildInputs = with self; [ nose mock ]; - propagatedBuildInputs = with self; [ pyflakes_0_8 pep8 mccabe ]; - - # 3 failing tests - #doCheck = false; + propagatedBuildInputs = with self; [ pyflakes pep8 mccabe ]; meta = { description = "Code checking using pep8 and pyflakes"; @@ -6275,7 +6409,6 @@ let }; }); - flask = buildPythonPackage { name = "flask-0.10.1"; @@ -7635,6 +7768,8 @@ let sha256 = "1qf01afxh7j4gja71vxv345if8avg6nnm0ry0zsk6j3030xgy4p7"; }; + buildInputs = [ self.pytest ]; + meta = { homepage = https://bitbucket.org/micktwomey/pyiso8601/; description = "Simple module to parse ISO 8601 dates"; @@ -7897,19 +8032,18 @@ let kombu = buildPythonPackage rec { name = "kombu-${version}"; - version = "3.0.24"; + version = "3.0.28"; disabled = pythonOlder "2.6"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/k/kombu/${name}.tar.gz"; - sha256 = "13dzybciispin9c4znpiyvgha354mz124lgx06ksw4vic0vh9zxr"; - md5 = "37c8b5084ac83b8a6f5ff9f157cac0e9"; + sha256 = "1c8sdgfbv1gscc5d14xa3r48qfpppb0vifc9nx0p9fvv9rfg6an2"; }; buildInputs = with self; optionals (!isPy3k) [ anyjson mock unittest2 nose ]; - propagatedBuildInputs = with self; [ amqp ] ++ + propagatedBuildInputs = with self; [ amqp anyjson ] ++ (optionals (pythonOlder "2.7") [ importlib ordereddict ]); # tests broken on python 2.6? https://github.com/nose-devs/nose/issues/806 @@ -8660,21 +8794,21 @@ let }; mock = buildPythonPackage (rec { - name = "mock-1.0.1"; + name = "mock-1.3.0"; + disabled = isPy35; src = pkgs.fetchurl { url = "http://pypi.python.org/packages/source/m/mock/${name}.tar.gz"; - md5 = "c3971991738caa55ec7c356bbc154ee2"; + sha256 = "1xm0xkaz8d8d26kdk09f2n9vn543ssd03vmpkqlmgq3crjz7s90y"; }; buildInputs = with self; [ unittest2 ]; + propagatedBuildInputs = with self; [ funcsigs six pbr ]; meta = { description = "Mock objects for Python"; - homepage = http://python-mock.sourceforge.net/; - - license = "mBSD"; + license = stdenv.lib.licenses.bsd2; }; }); @@ -9006,6 +9140,15 @@ let }; }; + monotonic = buildPythonPackage rec { + name = "monotonic-0.4"; + + src = pkgs.fetchurl { + url = "http://pypi.python.org/packages/source/m/monotonic/${name}.tar.gz"; + sha256 = "1diab6hfh3jpa1f0scpqaqrawk4g97ss4v7gkn2yw8znvdm6abw5"; + }; + }; + MySQL_python = buildPythonPackage rec { name = "MySQL-python-1.2.5"; @@ -9201,15 +9344,14 @@ let }; netaddr = buildPythonPackage rec { - name = "netaddr-0.7.5"; + name = "netaddr-0.7.18"; src = pkgs.fetchurl { - url = "https://github.com/downloads/drkjam/netaddr/${name}.tar.gz"; - sha256 = "0ssxic389rdc79zkz8dxcjpqdi5qs80h12khkag410cl9cwk11f2"; + url = "https://pypi.python.org/packages/source/n/netaddr/${name}.tar.gz"; + sha256 = "06dxjlbcicq7q3vqy8agq11ra01kvvd47j4mk6dmghjsyzyckxd1"; }; - # error: invalid command 'test' - doCheck = false; + doCheck = "${python.executable} runtests.py"; meta = { homepage = https://github.com/drkjam/netaddr/; @@ -9373,8 +9515,6 @@ let sha256 = "00qymfgwg4iam4xi0w9bnv7lcb3fypq1hzfafzgs1rfmwaj67g3n"; }; - buildInputs = with 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 @@ -10035,7 +10175,7 @@ let doCheck = false; - buildInputs = with self; [ + propagatedBuildInputs = with self; [ pbr requests2 (sphinx.override {src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/s/sphinx/sphinx-1.2.3.tar.gz"; @@ -10044,6 +10184,712 @@ let ]; }; + tempest-lib = buildPythonPackage rec { + name = "tempest-lib-${version}"; + version = "0.10.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/t/tempest-lib/${name}.tar.gz"; + sha256 = "0x842a67k9f7yk3zr6755s4qldkfngljqy5whd4jb553y4hn5lyj"; + }; + + patchPhase = '' + substituteInPlace tempest_lib/tests/cli/test_execute.py --replace "/bin/ls" "${pkgs.coreutils}/bin/ls" + ''; + + buildInputs = with self; [ testtools testrepository subunit oslotest ]; + propagatedBuildInputs = with self; [ + pbr six paramiko httplib2 jsonschema iso8601 fixtures Babel oslo-log + os-testr ]; + + }; + + os-testr = buildPythonPackage rec { + name = "os-testr-${version}"; + version = "0.4.2"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/os-testr/${name}.tar.gz"; + sha256 = "0474z0mxb7y3vfk4s097wf1mzji5d135vh27cvlh9q17rq3x9r3w"; + }; + + # since tests depend on install results, let's do it so + doInstallCheck = true; + doCheck = false; + installCheckPhase = '' + export PATH=$PATH:$out/bin + ${python.interpreter} setup.py test + ''; + + propagatedBuildInputs = with self; [ pbr Babel testrepository subunit testtools ]; + buildInputs = with self; [ coverage oslosphinx oslotest testscenarios six ddt ]; + }; + + bandit = buildPythonPackage rec { + name = "bandit-${version}"; + version = "0.14.1"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/b/bandit/${name}.tar.gz"; + sha256 = "1hsc3qn3srzx76zl8z3hg0vjp8m6mk9ylfhhgw5bcwbjz3x82ifl"; + }; + + propagatedBuildInputs = with self; [ pbr six pyyaml appdirs stevedore ]; + buildInputs = with self; [ beautifulsoup4 oslosphinx testtools testscenarios + testrepository fixtures mock ]; + }; + + oslo-serialization = buildPythonPackage rec { + name = "oslo.serialization-${version}"; + version = "1.10.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.serialization/${name}.tar.gz"; + sha256 = "15k8aql2rx5jzv3hfvmd48vsyw172qa64bs3fmsyx25p37zyfy8a"; + }; + + propagatedBuildInputs = with self; [ pbr Babel six iso8601 pytz oslo-utils msgpack netaddr ]; + buildInputs = with self; [ oslotest mock coverage simplejson oslo-i18n ]; + }; + + rfc3986 = buildPythonPackage rec { + name = "rfc3986-${version}"; + version = "0.2.2"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/r/rfc3986/rfc3986-0.2.2.tar.gz"; + sha256 = "0yvzz7gp84qqdadbjdh9ch7dz4w19nmhwa704s9m11bljgp3hqmn"; + }; + + meta = with stdenv.lib; { + description = "rfc3986"; + homepage = https://rfc3986.rtfd.org; + }; + }; + + pycadf = buildPythonPackage rec { + name = "pycadf-${version}"; + version = "1.1.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/pycadf/pycadf-1.1.0.tar.gz"; + sha256 = "0lv9nhbvj1pa8qgn3qvyk9k4q8f7w541074n1rhdjnjkinh4n4dg"; + }; + + propagatedBuildInputs = with self; [ + oslo-i18n argparse six wrapt oslo-utils pbr oslo-config Babel netaddr + monotonic iso8601 pytz stevedore oslo-serialization msgpack + debtcollector netifaces + ]; + buildInputs = with self; [ + oslosphinx testtools testrepository oslotest + ]; + + meta = with stdenv.lib; { + homepage = https://launchpad.net/pycadf; + }; + }; + + + oslo-utils = buildPythonPackage rec { + name = "oslo.utils-${version}"; + version = "2.6.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.utils/${name}.tar.gz"; + sha256 = "1prgi03nxkcykyja821qkycsqlnpyzw17mpvj8qf3pjmgb9gv1fy"; + }; + + propagatedBuildInputs = with self; [ pbr Babel six iso8601 pytz netaddr netifaces + monotonic oslo-i18n wrapt debtcollector ]; + buildInputs = with self; [ oslotest mock coverage oslosphinx ]; + }; + + oslo-middleware = buildPythonPackage rec { + name = "oslo.middleware-${version}"; + version = "2.9.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.middleware/${name}.tar.gz"; + sha256 = "14acinchdpmc1in39mz9kh1h2rd1ygwg3zdhbwzrlhy8wbzzi4w9"; + }; + + propagatedBuildInputs = with self; [ + oslo-i18n six oslo-utils pbr oslo-config Babel oslo-context stevedore + jinja2 webob debtcollector + ]; + buildInputs = with self; [ + coverage testtools oslosphinx oslotest + ]; + preBuild = '' + sed -i '/ordereddict/d' requirements.txt + ''; + + meta = with stdenv.lib; { + homepage = "http://wiki.openstack.org/wiki/Oslo#oslo.middleware"; + }; + }; + + oslo-versionedobjects = buildPythonPackage rec { + name = "oslo.versionedobjects-${version}"; + version = "0.11.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.versionedobjects/${name}.tar.gz"; + sha256 = "1ddcb2zf7a3544ay4sxw200a4mz7p0n1f7826h3vibfdqjlc80y7"; + }; + + propagatedBuildInputs = with self; [ + six Babel oslo-concurrency oslo-config oslo-context oslo-messaging + oslo-serialization oslo-utils iso8601 oslo-log oslo-i18n webob + ]; + buildInputs = with self; [ + oslo-middleware cachetools oslo-service futurist anyjson oslosphinx + testtools oslotest + ]; + + meta = with stdenv.lib; { + homepage = "http://launchpad.net/oslo"; + }; + }; + + cachetools = buildPythonPackage rec { + name = "cachetools-${version}"; + version = "1.1.3"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/c/cachetools/${name}.tar.gz"; + sha256 = "0js7qx5pa8ibr8487lcf0x3a7w0xml0wa17snd6hjs0857kqhn20"; + }; + + meta = with stdenv.lib; { + homepage = "https://github.com/tkem/cachetools"; + }; + }; + + futurist = buildPythonPackage rec { + name = "futurist-${version}"; + version = "0.7.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/f/futurist/${name}.tar.gz"; + sha256 = "0wf0k9xf5xzmi79418xq8zxwr7w7a4g4alv3dds9afb2l8bh9crg"; + }; + + propagatedBuildInputs = with self; [ + contextlib2 pbr six monotonic futures eventlet + ]; + buildInputs = with self; [ + testtools testscenarios testrepository oslotest subunit + ]; + + }; + + oslo-messaging = buildPythonPackage rec { + name = "oslo.messaging-${version}"; + version = "2.6.1"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.messaging/${name}.tar.gz"; + sha256 = "047jz3k5dk5n8nx68f5v9pkf5bvz183rq9mnp0b9rqbi2p49cjz9"; + }; + + propagatedBuildInputs = with self; [ + pbr oslo-config oslo-context oslo-log oslo-utils oslo-serialization + oslo-i18n stevedore six eventlet greenlet webob pyyaml kombu trollius + aioeventlet cachetools oslo-middleware futurist redis oslo-service + eventlet pyzmq + ]; + + buildInputs = with self; [ + oslotest mock mox3 subunit testtools testscenarios testrepository + fixtures oslosphinx + ]; + }; + + os-brick = buildPythonPackage rec { + name = "os-brick-${version}"; + version = "0.5.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/os-brick/${name}.tar.gz"; + sha256 = "1q05yk5hada470rwsv3hfjn7pdp9n7pprmnslm723l7cfhf7cgm6"; + }; + + propagatedBuildInputs = with self; [ + six retrying oslo-utils oslo-service oslo-i18n oslo-serialization oslo-log + oslo-concurrency eventlet Babel pbr + ]; + buildInputs = with self; [ + testtools testscenarios testrepository requests + ]; + + checkPhase = '' + python -m subunit.run discover -t ./ . + ''; + + meta = with stdenv.lib; { + homepage = "http://www.openstack.org/"; + }; + }; + + oslo-reports = buildPythonPackage rec { + name = "oslo.reports-${version}"; + version = "0.6.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.reports/${name}.tar.gz"; + sha256 = "0j27mbsa5y1fn9lxn98xs7p9vipcig47srm5sgbgma0ilv125b65"; + }; + + propagatedBuildInputs = with self; [ + oslo-i18n oslo-utils oslo-serialization six psutil_1 Babel jinja2 pbr psutil_1 + ]; + buildInputs = with self; [ + coverage greenlet eventlet oslosphinx oslotest + ]; + }; + + cinderclient = buildPythonPackage rec { + name = "cinderclient-${version}"; + version = "1.4.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/python-cinderclient/python-cinderclient-${version}.tar.gz"; + sha256 = "1vfcjljfad3034bfhfcrfhphym1ik6qk42nrxzl0gqb9408n6k3l"; + }; + + propagatedBuildInputs = with self; [ + six Babel simplejson requests keystoneclient prettytable argparse pbr + ]; + buildInputs = with self; [ + testrepository requests-mock + ]; + + meta = with stdenv.lib; { + description = "Python bindings to the OpenStack Cinder API"; + homepage = "http://www.openstack.org/"; + }; + }; + + neutronclient = buildPythonPackage rec { + name = "neutronclient-${version}"; + version = "3.1.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/python-neutronclient/python-neutronclient-${version}.tar.gz"; + sha256 = "0g96x5b8lz407in70j6v7jbj613y6sd61b21j1y03x06b2rk5i02"; + }; + + propagatedBuildInputs = with self; [ + pbr six simplejson keystoneclient requests2 oslo-utils oslo-serialization + oslo-i18n netaddr iso8601 cliff argparse + ]; + buildInputs = with self; [ + tempest-lib mox3 oslotest requests-mock + ]; + + meta = with stdenv.lib; { + description = "Python bindings to the Neutron API"; + homepage = "http://www.openstack.org/"; + }; + }; + + cliff = buildPythonPackage rec { + name = "cliff-${version}"; + version = "1.15.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/c/cliff/${name}.tar.gz"; + sha256 = "1rrbq1nvc84x417hbfm9sc1scia16nilr8nm8ycm8iq5jkh6zfpm"; + }; + + propagatedBuildInputs = with self; [ + argparse pyyaml pbr six cmd2 stevedore unicodecsv prettytable pyparsing + ]; + buildInputs = with self; [ + httplib2 oslosphinx coverage mock nose tempest-lib + ]; + + meta = with stdenv.lib; { + homepage = "https://launchpad.net/python-cliff"; + }; + }; + + cmd2 = buildPythonPackage rec { + name = "cmd2-${version}"; + version = "0.6.8"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/c/cmd2/${name}.tar.gz"; + sha256 = "1a346zcd46c8gwbbp2cxsmvgfkyy26kwxjzdnkv7n47w6660sy5c"; + }; + + propagatedBuildInputs = with self; [ + pyparsing + ]; + + meta = with stdenv.lib; { + description = "Enhancements for standard library's cmd module."; + homepage = "http://packages.python.org/cmd2/"; + }; + }; + + + oslo-db = buildPythonPackage rec { + name = "oslo.db-${version}"; + version = "3.0.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.db/${name}.tar.gz"; + sha256 = "0jjimsfl53wigzf92dhns813n65qcwilcqlj32m86rxrcz0pjgph"; + }; + + propagatedBuildInputs = with self; [ + six stevedore sqlalchemy_migrate sqlalchemy_1_0 oslo-utils oslo-context + oslo-config oslo-i18n iso8601 Babel alembic pbr psycopg2 + ]; + buildInputs = with self; [ + tempest-lib testresources mock oslotest + ]; + }; + + oslo-rootwrap = buildPythonPackage rec { + name = "oslo.rootwrap-${version}"; + version = "2.4.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.rootwrap/${name}.tar.gz"; + sha256 = "1711rlmykizw675ihbaqmk3ph6ah0njbygxr9lrdnacy6yrlmbd5"; + }; + + buildInputs = with self; [ eventlet mock oslotest ]; + propagatedBuildInputs = with self; [ + six pbr + ]; + + # way too many assumptions + doCheck = false; + }; + + glanceclient = buildPythonPackage rec { + name = "glanceclient-${version}"; + version = "1.1.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/python-glanceclient/python-glanceclient-${version}.tar.gz"; + sha256 = "0ppjafsmf29ps23jsw6g2xm66pdi5jdzpywglqqm28b8fj931zsr"; + }; + + propagatedBuildInputs = with self; [ + oslo-i18n oslo-utils six requests2 keystoneclient prettytable Babel pbr + argparse warlock + ]; + buildInputs = with self; [ + tempest-lib requests-mock + ]; + + checkPhase = '' + python -m subunit.run discover -t ./ . + ''; + + meta = with stdenv.lib; { + description = "Python bindings to the OpenStack Images API"; + homepage = "http://www.openstack.org/"; + }; + }; + + warlock = buildPythonPackage rec { + name = "warlock-${version}"; + version = "1.2.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/w/warlock/${name}.tar.gz"; + sha256 = "0npgi4ks0nww2d6ci791iayab0j6kz6dx3jr7bhpgkql3s4if3bw"; + }; + + propagatedBuildInputs = with self; [ + six jsonpatch jsonschema jsonpointer + ]; + buildInputs = with self; [ + + ]; + + meta = with stdenv.lib; { + homepage = "http://github.com/bcwaldon/warlock"; + }; + }; + + + oslo-service = buildPythonPackage rec { + name = "oslo.service-${version}"; + version = "0.10.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.service/oslo.service-0.10.0.tar.gz"; + sha256 = "1pcnimc2a50arcgq355ad9lramf6y1yv974swgfj6w90v5c6p9gz"; + }; + + propagatedBuildInputs = with self; [ + repoze_lru PasteDeploy Babel oslo-context debtcollector + oslo-concurrency wrapt eventlet six oslo-serialization greenlet paste + oslo-config monotonic iso8601 oslo-log pytz routes msgpack + oslo-i18n argparse oslo-utils pbr enum34 netaddr stevedore netifaces + pyinotify webob retrying pyinotify ]; + buildInputs = with self; [ + oslosphinx oslotest pkgs.procps mock mox3 fixtures subunit testrepository + testtools testscenarios + ]; + + # failing tests + preCheck = '' + rm oslo_service/tests/test_service.py + ''; + + meta = with stdenv.lib; { + homepage = "http://wiki.openstack.org/wiki/Oslo#oslo.service"; + }; + }; + + oslo-concurrency = buildPythonPackage rec { + name = "oslo-concurrency-${version}"; + version = "2.7.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.concurrency/oslo.concurrency-2.7.0.tar.gz"; + sha256 = "1yp8c87yi6fx1qbq4y1xkx47iiifg7jqzpcghivhxqra8vna185d"; + }; + + propagatedBuildInputs = with self; [ + oslo-i18n argparse six wrapt oslo-utils pbr enum34 Babel netaddr monotonic + iso8601 oslo-config pytz netifaces stevedore debtcollector retrying fasteners + eventlet + ]; + buildInputs = with self; [ + oslosphinx fixtures futures coverage oslotest + ]; + + # too much magic in tests + doCheck = false; + + meta = with stdenv.lib; { + homepage = http://launchpad.net/oslo; + }; + }; + + retrying = buildPythonPackage rec { + name = "retrying-${version}"; + version = "1.3.3"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/r/retrying/retrying-1.3.3.tar.gz"; + sha256 = "0fwp86xv0rvkncjdvy2mwcvbglw4w9k0fva25i7zx8kd19b3kh08"; + }; + + propagatedBuildInputs = with self; [ six ]; + + # doesn't ship tests in tarball + doCheck = false; + + meta = with stdenv.lib; { + homepage = https://github.com/rholder/retrying; + }; + }; + + fasteners = buildPythonPackage rec { + name = "fasteners-${version}"; + version = "0.13.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/f/fasteners/fasteners-0.13.0.tar.gz"; + sha256 = "0nghdq3zihiqg10dp76ls7yn44m5wjncyz7fk8isagkrspkh9a3n"; + }; + + propagatedBuildInputs = with self; [ six monotonic ]; + + meta = with stdenv.lib; { + description = "Fasteners"; + homepage = https://github.com/harlowja/fasteners; + }; + }; + + aioeventlet = buildPythonPackage rec { + name = "aioeventlet-${version}"; + version = "0.4"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/a/aioeventlet/aioeventlet-0.4.tar.gz"; + sha256 = "19krvycaiximchhv1hcfhz81249m3w3jrbp2h4apn1yf4yrc4y7y"; + }; + + propagatedBuildInputs = with self; [ eventlet trollius ]; + buildInputs = with self; [ mock ]; + + # 2 tests error out + doCheck = false; + checkPhase = '' + ${python.interpreter} runtests.py + ''; + + meta = with stdenv.lib; { + description = "aioeventlet implements the asyncio API (PEP 3156) on top of eventlet. It makes"; + homepage = http://aioeventlet.readthedocs.org/; + }; + }; + + oslo-log = buildPythonPackage rec { + name = "oslo.log-${version}"; + version = "1.12.1"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.log/${name}.tar.gz"; + sha256 = "10x596r19zjla5n1bf04j5vncx0c9gpc5wc2jlmgjbl3cyx3vgsv"; + }; + + propagatedBuildInputs = with self; [ + pbr Babel six iso8601 debtcollector pyinotify + oslo-utils oslo-i18n oslo-config oslo-serialization oslo-context + ]; + buildInputs = with self; [ oslotest oslosphinx ]; + }; + + oslo-context = buildPythonPackage rec { + name = "oslo.context-${version}"; + version = "0.7.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.context/${name}.tar.gz"; + sha256 = "18fmg9dhgngshk63wfb3ddrgx5br8jxkk3x30z40741mslp1fdjy"; + }; + + propagatedBuildInputs = with self; [ pbr Babel ]; + buildInputs = with self; [ oslotest coverage oslosphinx ]; + }; + + oslo-i18n = buildPythonPackage rec { + name = "oslo.i18n-${version}"; + version = "2.7.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.i18n/${name}.tar.gz"; + sha256 = "11jgcvj36g97awh7fpar4xxgwrvzfahq6rw7xxqac32ia790ylcz"; + }; + + propagatedBuildInputs = with self; [ pbr Babel six oslo-config ]; + buildInputs = with self; [ mock coverage oslotest ]; + }; + + oslo-config = buildPythonPackage rec { + name = "oslo.config-${version}"; + version = "2.5.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslo.config/${name}.tar.gz"; + sha256 = "043mavrzj7vjn7kh1dddci4sf67qwqnnn6cm0k1d19alks9hismz"; + }; + + propagatedBuildInputs = with self; [ argparse pbr six netaddr stevedore ]; + buildInputs = [ self.mock ]; + + # TODO: circular import on oslo-i18n + doCheck = false; + }; + + oslotest = buildPythonPackage rec { + name = "oslotest-${version}"; + version = "1.12.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/oslotest/${name}.tar.gz"; + sha256 = "17i92hymw1dwmmb5yv90m2gam2x21mc960q1pr7bly93x49h8666"; + }; + + propagatedBuildInputs = with self; [ pbr fixtures subunit six testrepository + testscenarios testtools mock mox3 oslo-config os-client-config ]; + }; + + os-client-config = buildPythonPackage rec { + name = "os-client-config-${version}"; + version = "1.8.1"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/o/os-client-config/${name}.tar.gz"; + sha256 = "10hz4yp594mi1p7v1pvgsmx5w2rnb9y8d0jvb2lfv03ljnwzv8jz"; + }; + + buildInputs = with self; [ pbr testtools testscenarios testrepository fixtures ]; + propagatedBuildInputs = with self; [ appdirs pyyaml keystoneauth1 ]; + + # TODO: circular import on oslotest + preCheck = '' + rm os_client_config/tests/{test_config,test_cloud_config,test_environ}.py + ''; + }; + + keystoneauth1 = buildPythonPackage rec { + name = "keystoneauth1-${version}"; + version = "1.1.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/k/keystoneauth1/${name}.tar.gz"; + sha256 = "05fc6xsp5mal52ijvj84sf7mrw706ihadfdf5mnq9zxn7pfl4118"; + }; + + buildInputs = with self; [ pbr testtools testresources testrepository mock + pep8 fixtures mox3 requests-mock ]; + propagatedBuildInputs = with self; [ argparse iso8601 requests2 six stevedore + webob oslo-config ]; + }; + + requests-mock = buildPythonPackage rec { + name = "requests-mock-${version}"; + version = "0.6.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/r/requests-mock/${name}.tar.gz"; + sha256 = "0gmd88c224y53b1ai8cfsrcxm9kw3gdqzysclmnaqspg7zjhxwd1"; + }; + + buildInputs = with self; [ pbr testtools testrepository mock ]; + propagatedBuildInputs = with self; [ six requests2 ]; + }; + + mox3 = buildPythonPackage rec { + name = "mox3-${version}"; + version = "0.11.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/m/mox3/${name}.tar.gz"; + sha256 = "09dkgki21v5zqrx575h1aazxsq5akkv0a90z644bk1ry9a4zg1pn"; + }; + + buildInputs = with self; [ subunit testrepository testtools six ]; + propagatedBuildInputs = with self; [ pbr fixtures ]; + }; + + debtcollector = buildPythonPackage rec { + name = "debtcollector-${version}"; + version = "0.9.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/d/debtcollector/${name}.tar.gz"; + sha256 = "1mvdxdrnwlgfqg26s5himkjq6f06r2khlrignx36kkbyaix6j9xb"; + }; + + buildInputs = with self; [ pbr Babel six wrapt testtools testscenarios + testrepository subunit coverage oslotest ]; + }; + + wrapt = buildPythonPackage rec { + name = "wrapt-${version}"; + version = "1.10.5"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/w/wrapt/${name}.tar.gz"; + sha256 = "0cq8rlpzkxzk48b50yrfhzn1d1hrq4gjcdqlrgq4v5palgiv9jwr"; + }; + }; + pagerduty = buildPythonPackage rec { name = "pagerduty-${version}"; version = "0.2.1"; @@ -10217,7 +11063,7 @@ let }; - paste_deploy = buildPythonPackage rec { + PasteDeploy = buildPythonPackage rec { version = "1.5.2"; name = "paste-deploy-${version}"; @@ -10246,7 +11092,7 @@ let doCheck = false; buildInputs = with self; [ nose ]; - propagatedBuildInputs = with self; [ paste paste_deploy cheetah argparse ]; + propagatedBuildInputs = with self; [ paste PasteDeploy cheetah argparse ]; meta = { description = "A pluggable command-line frontend, including commands to setup package file layouts"; @@ -10314,18 +11160,18 @@ let }; pbr = buildPythonPackage rec { - name = "pbr-1.6.0"; + name = "pbr-${version}"; + version = "1.8.1"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/p/pbr/${name}.tar.gz"; - sha256 = "1lg1klrczvzfan89y3bl9ykrknl3nb01vvai37fkww24apzyibjf"; + sha256 = "0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2"; }; + # circular dependencies with fixtures doCheck = false; - - propagatedBuildInputs = with self; [ pip ]; - buildInputs = with self; [ virtualenv ] - ++ stdenv.lib.optional doCheck testtools; + #buildInputs = with self; [ testtools testscenarios testresources + # testrepository fixtures ]; meta = { description = "Python Build Reasonableness"; @@ -10334,6 +11180,23 @@ let }; }; + fixtures = buildPythonPackage rec { + name = "fixtures-1.4.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/f/fixtures/${name}.tar.gz"; + sha256 = "0djxvdwm8s60dbfn7bhf40x6g818p3b3mlwijm1c3bqg7msn271y"; + }; + + buildInputs = with self; [ pbr testtools mock ]; + + meta = { + description = "Reusable state for writing clean tests and more"; + homepage = "https://pypi.python.org/pypi/fixtures"; + license = licenses.asl20; + }; + }; + pelican = buildPythonPackage rec { name = "pelican-${version}"; version = "3.6.3"; @@ -10381,13 +11244,14 @@ let pep8 = buildPythonPackage rec { name = "pep8-${version}"; - version = "1.6.2"; + # 1.6.0 and higher are blocked by flake8 + version = "1.5.7"; disabled = isPy35; # Not yet supported src = pkgs.fetchurl { url = "http://pypi.python.org/packages/source/p/pep8/${name}.tar.gz"; - sha256 = "1zybkcdw1sx84dvkfss96nhykqg9bc0cdpwpl4k9wlxm61bf7dxq"; + sha256 = "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m"; }; meta = { @@ -10575,12 +11439,14 @@ let }; pip = buildPythonPackage rec { - version = "1.5.6"; + version = "7.1.2"; name = "pip-${version}"; + src = pkgs.fetchurl { url = "http://pypi.python.org/packages/source/p/pip/pip-${version}.tar.gz"; - md5 = "01026f87978932060cc86c1dc527903e"; + sha256 = "0xx4aypfgchxdknxq7gyqghd8wb221zrzyqlbabzm32jy237j16a"; }; + buildInputs = with self; [ mock scripttest virtualenv pytest ]; }; @@ -11016,6 +11882,13 @@ let }; }; + psutil_1 = self.psutil.overrideDerivation (self: rec { + name = "psutil-1.2.1"; + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/psutil/${name}.tar.gz"; + sha256 = "0ibclqy6a4qmkjhlk3g8jhpvnk0v9aywknc61xm3hfi5r124m3jh"; + }; + }); psycopg2 = buildPythonPackage rec { name = "psycopg2-2.5.4"; @@ -11063,6 +11936,9 @@ let md5 = "a904aabfe4765cb754f2db84ec7bb03a"; }; + # some weird errors with paths + doCheck = !isPy3k; + meta = { description = "Library with cross-python path, ini-parsing, io, code, log facilities"; homepage = http://pylib.readthedocs.org/; @@ -11272,13 +12148,14 @@ let Babel = buildPythonPackage (rec { - name = "Babel-1.3"; + name = "Babel-2.1.1"; src = pkgs.fetchurl { url = "http://pypi.python.org/packages/source/B/Babel/${name}.tar.gz"; - sha256 = "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz"; + sha256 = "0j2jgfzj1a2m39pm2qc36fzr7a6p5ybwndi0xdzhi2p8zw7dbdkz"; }; + buildInputs = with self; [ pytest ]; propagatedBuildInputs = with self; [ pytz ]; meta = { @@ -11658,30 +12535,6 @@ let }; }; - pyflakes_0_8 = buildPythonPackage rec { - # Pyflakes 0.8 is needed for flake8, which is needed for OpenStack Nova - # https://github.com/NixOS/nixpkgs/pull/10399 - name = "pyflakes-${version}"; - version = "0.8.1"; - - src = pkgs.fetchurl { - url = "http://pypi.python.org/packages/source/p/pyflakes/${name}.tar.gz"; - sha256 = "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z"; - }; - - buildInputs = with self; [ unittest2 ]; - - doCheck = !isPyPy; - - disabled = isPy35; # Not supported - - meta = { - homepage = https://launchpad.net/pyflakes; - description = "A simple program which checks Python source files for errors"; - license = licenses.mit; - }; - }; - pygeoip = pythonPackages.buildPythonPackage rec { name = "pygeoip-0.3.2"; @@ -11875,11 +12728,11 @@ let pyinotify = buildPythonPackage rec { name = "pyinotify"; - version = "0.9.5"; + version = "0.9.6"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/p/${name}/${name}-${version}.tar.gz"; - sha256 = "06yblnif9v05xwsbs089n0bj60ndb4lzkv1i15fprqnf6sgjmig7"; + sha256 = "1x3i9wmzw33fpkis203alygfnrkcmq9w1aydcm887jh6frfqm6cw"; }; meta = { @@ -12977,6 +13830,8 @@ let sha256 = "0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir"; }; + buildInputs = [ self.pytest ]; + meta = { description = "An Apache2 licensed HTTP library, written in Python, for human beings"; homepage = http://docs.python-requests.org/en/latest/; @@ -14690,24 +15545,27 @@ let sqlalchemy_migrate = buildPythonPackage rec { - name = "sqlalchemy-migrate-0.6.1"; + name = "sqlalchemy-migrate-0.10.0"; src = pkgs.fetchurl { - url = "http://sqlalchemy-migrate.googlecode.com/files/${name}.tar.gz"; - sha1 = "17168b5fa066bd56fd93f26345525377e8a83d8a"; + url = "https://pypi.python.org/packages/source/s/sqlalchemy-migrate/${name}.tar.gz"; + sha256 = "00z0lzjs4ksr9yr31zs26csyacjvavhpz6r74xaw1r89kk75qg7q"; }; - buildInputs = with self; [ nose unittest2 scripttest ]; + 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; [ tempita decorator sqlalchemy ]; - - preCheck = - '' - echo sqlite:///__tmp__ > test_db.cfg - ''; - - # Some tests fail with "unexpected keyword argument 'script_path'". + doInstallCheck = true; doCheck = false; + installCheckPhase = '' + export PATH=$PATH:$out/bin + echo sqlite:///__tmp__ > test_db.cfg + # depends on ibm_db_sa + rm migrate/tests/changeset/databases/test_ibmdb2.py + # wants very old testtools + rm migrate/tests/versioning/test_schema.py + ${python.interpreter} setup.py test + ''; meta = { homepage = http://code.google.com/p/sqlalchemy-migrate/; @@ -14842,25 +15700,26 @@ let propagatedBuildInputs = with self; [ testtools testscenarios ]; + # we need to run configure so version number is picked up from Makefile + preConfigure = "./configure"; + buildInputs = [ pkgs.pkgconfig pkgs.check pkgs.cppunit ]; + meta = pkgs.subunit.meta; }; - sure = buildPythonPackage rec { name = "sure-${version}"; - version = "1.2.8"; + version = "1.2.24"; preBuild = '' export LC_ALL="en_US.UTF-8" ''; - # https://github.com/gabrielfalcao/sure/issues/71 - doCheck = !isPy3k; disabled = isPyPy; src = pkgs.fetchurl { url = "http://pypi.python.org/packages/source/s/sure/${name}.tar.gz"; - sha256 = "0pgi9xg00wcw0m1pv5qp7jv53q38yffcmkf2fj1zlfi2b9c3njid"; + sha256 = "1lyjq0rvkbv585dppjdq90lbkm6gyvag3wgrggjzyh7cpyh5c12w"; }; buildInputs = with self; [ nose pkgs.glibcLocales ]; @@ -15072,6 +15931,61 @@ let }; }; + keystoneclient = buildPythonPackage rec { + name = "keystoneclient-${version}"; + version = "1.8.1"; + + src = pkgs.fetchurl { + url = "https://github.com/openstack/python-keystoneclient/archive/${version}.tar.gz"; + sha256 = "0lijri0xa5fvmynvq148z13kw4xd3bam4zrfd8aj0gb3lnzh9y6v"; + }; + + PBR_VERSION = "${version}"; + + buildInputs = with self; [ + pbr testtools testresources testrepository requests-mock fixtures pkgs.openssl + oslotest pep8 ]; + propagatedBuildInputs = with self; [ + oslo-serialization oslo-config oslo-i18n oslo-utils + Babel argparse prettytable requests2 six iso8601 stevedore + netaddr debtcollector bandit webob mock pycrypto ]; + + doCheck = '' + patchShebangs run_tests.sh + ./run_tests.sh + ''; + + meta = { + homepage = https://github.com/openstack/python-novaclient/; + description = "Client library and command line tool for the OpenStack Nova API"; + license = stdenv.lib.licenses.asl20; + platforms = stdenv.lib.platforms.linux; + }; + }; + + keystonemiddleware = buildPythonPackage rec { + name = "keystonemiddleware-${version}"; + version = "2.4.1"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/k/keystonemiddleware/${name}.tar.gz"; + sha256 = "0avrn1f897rnam9wfdanpdwsmn8is3ncfh3nnzq3d1m31b1yqqr6"; + }; + + buildInputs = with self; [ + fixtures mock pycrypto oslosphinx oslotest stevedore testrepository + testresources testtools bandit requests-mock memcached + pkgs.openssl + ]; + propagatedBuildInputs = with self; [ + pbr Babel oslo-config oslo-context oslo-i18n oslo-serialization oslo-utils + requests2 six webob keystoneclient pycadf oslo-messaging + ]; + + # lots of "unhashable type" errors + doCheck = false; + }; + testscenarios = buildPythonPackage rec { name = "testscenarios-${version}"; version = "0.4"; @@ -15090,17 +16004,56 @@ let }; }; + testrepository = buildPythonPackage rec { + name = "testrepository-${version}"; + version = "0.0.20"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/t/testrepository/${name}.tar.gz"; + sha256 = "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m"; + }; + + buildInputs = with self; [ testtools testresources ]; + propagatedBuildInputs = with self; [ pbr subunit fixtures ]; + + checkPhase = '' + ${python.interpreter} ./testr + ''; + + meta = { + description = "A database of test results which can be used as part of developer workflow"; + homepage = https://pypi.python.org/pypi/testrepository; + license = licenses.bsd2; + }; + }; + + testresources = buildPythonPackage rec { + name = "testresources-${version}"; + version = "0.2.7"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/t/testresources/${name}.tar.gz"; + sha256 = "0cbj3plbllyz42c4b5xxgwaa7mml54lakslrn4kkhinxhdri22md"; + }; + + meta = { + description = "Pyunit extension for managing expensive test resources"; + homepage = https://pypi.python.org/pypi/testresources/; + license = licenses.bsd2; + }; + }; testtools = buildPythonPackage rec { name = "testtools-${version}"; - version = "0.9.34"; + version = "1.8.0"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/t/testtools/${name}.tar.gz"; - sha256 = "0s6sn9h26dif2c9sayf875x622kq8jb2f4qbc6if7gwh2sssgicn"; + sha256 = "15yxz8d70iy1b1x6gd7spvblq0mjxjardl4vnaqasxafzc069zca"; }; - propagatedBuildInputs = with self; [ self.python_mimeparse self.extras lxml ]; + propagatedBuildInputs = with self; [ pbr python_mimeparse extras lxml unittest2 ]; + buildInputs = with self; [ traceback2 ]; meta = { description = "A set of extensions to the Python standard library's unit testing framework"; @@ -15547,29 +16500,63 @@ let }; unittest2 = buildPythonPackage rec { - version = "0.5.1"; + version = "1.1.0"; name = "unittest2-${version}"; - src = if python.is_py3k or false - then pkgs.fetchurl { - url = "http://pypi.python.org/packages/source/u/unittest2py3k/unittest2py3k-${version}.tar.gz"; - sha256 = "00yl6lskygcrddx5zspkhr0ibgvpknl4678kkm6s626539grq93q"; - } - else pkgs.fetchurl { - url = "http://pypi.python.org/packages/source/u/unittest2/unittest2-${version}.tar.gz"; - md5 = "a0af5cac92bbbfa0c3b0e99571390e0f"; - }; + src = pkgs.fetchurl { + url = "http://pypi.python.org/packages/source/u/unittest2/unittest2-${version}.tar.gz"; + sha256 = "0y855kmx7a8rnf81d3lh5lyxai1908xjp0laf4glwa4c8472m212"; + }; - preConfigure = '' - sed -i 's/unittest2py3k/unittest2/' setup.py - ''; + # # 1.0.0 and up create a circle dependency with traceback2/pbr + doCheck = false; + + propagatedBuildInputs = with self; [ six argparse traceback2 ]; meta = { - description = "A backport of the new features added to the unittest testing framework in Python 2.7"; + description = "A backport of the new features added to the unittest testing framework"; homepage = http://pypi.python.org/pypi/unittest2; }; }; + traceback2 = buildPythonPackage rec { + version = "1.4.0"; + name = "traceback2-${version}"; + + src = pkgs.fetchurl { + url = "http://pypi.python.org/packages/source/t/traceback2/traceback2-${version}.tar.gz"; + sha256 = "0c1h3jas1jp1fdbn9z2mrgn3jj0hw1x3yhnkxp7jw34q15xcdb05"; + }; + + propagatedBuildInputs = with self; [ pbr linecache2 ]; + # circular dependencies for tests + doCheck = false; + + meta = { + description = "A backport of traceback to older supported Pythons."; + homepage = https://pypi.python.org/pypi/traceback2/; + }; + }; + + linecache2 = buildPythonPackage rec { + name = "linecache2-${version}"; + version = "1.0.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/l/linecache2/${name}.tar.gz"; + sha256 = "0z79g3ds5wk2lvnqw0y2jpakjf32h95bd9zmnvp7dnqhf57gy9jb"; + }; + + buildInputs = with self; [ pbr ]; + # circular dependencies for tests + doCheck = false; + + meta = with stdenv.lib; { + description = "A backport of linecache to older supported Pythons."; + homepage = "https://github.com/testing-cabal/linecache2"; + }; + }; + upass = buildPythonPackage rec { version = "0.1.4"; name = "upass-${version}"; @@ -15953,12 +16940,12 @@ let websockify = buildPythonPackage rec { - version = "0.3.0"; + version = "0.7.0"; name = "websockify-${version}"; src = pkgs.fetchurl { url = "http://pypi.python.org/packages/source/w/websockify/websockify-${version}.tar.gz"; - md5 = "29b6549d3421907de4bbd881ecc2e1b1"; + sha256 = "1v6pmamjprv2x55fvbdaml26ppxdw8v6xz8p0sav3368ajwwgcqc"; }; propagatedBuildInputs = with self; [ numpy ]; @@ -15997,7 +16984,7 @@ let mock pyquery wsgiproxy2 - paste_deploy + PasteDeploy coverage ]; @@ -18818,6 +19805,30 @@ let }; }; + suds-jurko = buildPythonPackage rec { + name = "suds-jurko-${version}"; + version = "0.6"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/s/suds-jurko/${name}.zip"; + sha256 = "1s4radwf38kdh3jrn5acbidqlr66sx786fkwi0rgq61hn4n2bdqw"; + }; + + buildInputs = [ self.pytest ]; + + preBuild = '' + # fails + substituteInPlace tests/test_transport_http.py \ + --replace "test_sending_unicode_data" "noop" + ''; + + meta = with stdenv.lib; { + description = "Lightweight SOAP client (Jurko's fork)"; + homepage = "http://bitbucket.org/jurko/suds"; + }; + }; + + mps-youtube = buildPythonPackage rec { name = "mps-youtube-${version}"; version = "0.2.5";