diff -Nru dh-python-1.20141111/debian/changelog dh-python-1.20140128/debian/changelog --- dh-python-1.20141111/debian/changelog 2015-05-13 05:48:25.000000000 +0000 +++ dh-python-1.20140128/debian/changelog 2014-03-27 20:13:15.000000000 +0000 @@ -1,70 +1,103 @@ -dh-python (1.20141111-2~ubuntu12.04.1) precise; urgency=low +dh-python (1.20140128-1ubuntu8~ctools1) precise; urgency=medium - * No-change backport to precise + * Backport for Ubuntu Cloud Archive, based on Debian Wheezy backports: + - Replace libpython3-stdlib build dependency with python3.2 + - Update default/supported Python versions (in a fallback code, + if python_defaults missing) + - Use dpkg-divert to replace python3's dh_python3 and python's dh_python2 + and drop Breaks/Replaces + - Remove the diversions on removal. + - Patch rtupdate calls for compatibility with Ubuntu py3clean. + - d/p/align-12.04-python-versions.patch: Align python/python3 versions + with those in Ubuntu 12.04. - -- Pavel Sofishchenko Wed, 13 May 2015 10:48:25 +0500 + -- James Page Thu, 27 Mar 2014 14:51:17 +0000 -dh-python (1.20141111-2) unstable; urgency=medium +dh-python (1.20140128-1ubuntu8) trusty; urgency=medium - * Remove Multi-Arch change from previous upload (not accepted for Jessie by - release managers) + * Add no-python2.6.diff: Fix test failures on checking for python2.6 + specific bits. - -- Piotr Ożarowski Sat, 15 Nov 2014 12:48:23 +0100 + -- Martin Pitt Mon, 24 Mar 2014 17:36:23 +0100 -dh-python (1.20141111-1) unstable; urgency=medium +dh-python (1.20140128-1ubuntu7) trusty; urgency=medium - * Set dh-python's Multi-Arch to "foreign" (closes: 767339) - * dist_fallback files now contain list of all packages that provide Egg - metadata (i.e. not just packages that don't have sensible name) - * dh_python* no longer guesses dependency from requires.txt files nor Requires - fields. Dependencies are generated only if given requirement is available - in dist_fallback file (generated at dh-python's build time) or if it's - available at build time (hint: Build-Depends) + * Run tests with python3.4 instead of python3.3. - -- Piotr Ożarowski Tue, 11 Nov 2014 21:23:20 +0100 + -- Matthias Klose Mon, 24 Mar 2014 11:10:25 +0100 -dh-python (1.20141026-1) unstable; urgency=medium +dh-python (1.20140128-1ubuntu5) trusty; urgency=medium - [ Stefano Rivera ] - * Update supported (and default) PyPy version to 2.4. + * Drop Python 3.3 as a supported Python 3 version. - [ Piotr Ożarowski ] - * Remove "-p " from autoscripts if --compile-all option is set - * Add support for guessing dependencies from egg-info files (closes: 756378) - * Parse "!=" relationship in egg dependencies (closes: 754058, thanks to - Rafael Laboissiere for the patch) - * Improve handling pyinstall/pyremove files (leading slash no longer needed - for deprecated directories, manpages improved a bit) - closes: 741381 - * Suggest the right file name for dependency overrides (closes: 748296) - * Add argparse to Python 3.X's dist fallback (closes: 763200) - * Ensure that Depends and the likes are written in a stable - order (closes: 759231, thanks to Jérémy Bobbio for the patch) - * Remove dh_python2 diversions while upgrading from bpo package - * Standards-Version bumped to 3.9.6 (no changes needed) + -- Matthias Klose Sun, 23 Mar 2014 09:17:26 +0100 - -- Piotr Ożarowski Sun, 26 Oct 2014 23:32:57 +0100 +dh-python (1.20140128-1ubuntu4) trusty; urgency=medium -dh-python (1.20140511-1) unstable; urgency=medium + * Update supported Python 3 versions in tests, to fix autopkgtest + failure. - [ Piotr Ożarowski ] - * pybuild: do not invoke clean commands for missing interpreters - (and thus do not require all interpreter versions to be installed while - building source package outside build environment, closes: 737091) - * dh_python2: no longer moves files to /usr/share/pyshared if there's only - one supported Python 2.X version and doesn't create /usr/lib/pyshared - symlinks for extensions (as other helper tools are now deprecated) - * Show fix_shebang's error messages only in debug mode, closes: 745581 + -- Dmitry Shachnev Fri, 07 Mar 2014 22:53:55 +0400 + +dh-python (1.20140128-1ubuntu3) trusty; urgency=medium + + * Make dh-python autopkgtest depend on build-essential and fakeroot. + + -- Dmitry Shachnev Thu, 27 Feb 2014 11:56:50 +0400 + +dh-python (1.20140128-1ubuntu2~cloud0) precise-icehouse; urgency=medium + + * Backport for Ubuntu Cloud Archive, based on Debian Wheezy backports: + - Replace libpython3-stdlib build dependency with python3.2 + - Update default/supported Python versions (in a fallback code, + if python_defaults missing) + - Use dpkg-divert to replace python3's dh_python3 and python's dh_python2 + and drop Breaks/Replaces + - Remove the diversions on removal. + - Patch rtupdate calls for compatibility with Ubuntu py3clean. + - d/p/align-12.04-python-versions.patch: Align python/python3 versions + with those in Ubuntu 12.04. + + -- James Page Mon, 24 Feb 2014 10:57:21 +0000 + +dh-python (1.20140128-1ubuntu2) trusty; urgency=medium - [ Matthias Klose ] * Remove empty directories when moving files. - -- Piotr Ożarowski Sun, 11 May 2014 20:59:15 +0200 + -- Matthias Klose Wed, 12 Feb 2014 15:14:23 +0100 + +dh-python (1.20140128-1ubuntu1~cloud0) precise-icehouse; urgency=medium + + * Backport for Ubuntu Cloud Archive, based on Debian Wheezy backports: + - Replace libpython3-stdlib build dependency with python3.2 + - Update default/supported Python versions (in a fallback code, + if python_defaults missing) + - Use dpkg-divert to replace python3's dh_python3 and python's dh_python2 + and drop Breaks/Replaces + - Remove the diversions on removal. + - Patch rtupdate calls for compatibility with Ubuntu py3clean. + - d/p/align-12.04-python-versions.patch: Align python/python3 versions + with those in Ubuntu 12.04. + + -- James Page Mon, 10 Feb 2014 11:06:06 +0200 + +dh-python (1.20140128-1ubuntu1) trusty; urgency=medium + + * Merge with Debian unstable, remaining changes: + - debian/control: Make dh-python Multi-Arch: foreign. + - Add patch debian/patches/no-pyshare.diff: + + Don't move files to /usr/share/pyshared anymore. + + Don't create extension symlinks in /usr/lib/pyshared/pythonX.Y anymore. + - Add patch debian/patches/python3.4.diff: + + Add python3.4 as a supported version. + + -- Dmitry Shachnev Wed, 29 Jan 2014 17:24:45 +0400 dh-python (1.20140128-1) unstable; urgency=low * dh_python3, dh_pypy: add support for debian/package.pyremove files (closes: 730777) - * dh_python3: add multiarch tuples to all already tagged extensions + * dh_python3: add multiarch tuples to all already tagged extensions if when more than one Python 3 version is supported (closes: 733128) * Make sure only first line is taken into account while checking shebangs (closes: 732308) @@ -83,6 +116,91 @@ -- Piotr Ożarowski Tue, 28 Jan 2014 18:20:19 +0100 +dh-python (1.20131021-1ubuntu8) trusty; urgency=medium + + * Taken from upstream: + dh_python3: add multiarch tuples to all already tagged extensions if + when more than one Python 3 version is supported (closes: 733128). + + -- Matthias Klose Tue, 07 Jan 2014 23:11:01 +0100 + +dh-python (1.20131021-1ubuntu7~cloud0) precise-icehouse; urgency=medium + + * Backport for Ubuntu Cloud Archive, based on Debian Wheezy backports: + - Replace libpython3-stdlib build dependency with python3.2 + - Update default/supported Python versions (in a fallback code, + if python_defaults missing) + - Use dpkg-divert to replace python3's dh_python3 and python's dh_python2 + and drop Breaks/Replaces + - Remove the diversions on removal. + - Patch rtupdate calls for compatibility with Ubuntu py3clean. + - d/p/align-12.04-python-versions.patch: Align python/python3 versions + with those in Ubuntu 12.04. + + -- James Page Mon, 06 Jan 2014 14:23:02 +0000 + +dh-python (1.20131021-1ubuntu7) trusty; urgency=medium + + * Fix dhpython/_defaults.py. Still doesn't rename 3.4 extensions + to the multiarch name. + + -- Matthias Klose Mon, 30 Dec 2013 20:55:17 +0100 + +dh-python (1.20131021-1ubuntu6) trusty; urgency=medium + + * Disable the correct failing test. + + -- Matthias Klose Sat, 21 Dec 2013 17:15:02 +0100 + +dh-python (1.20131021-1ubuntu5) trusty; urgency=low + + * Don't create extension symlinks in /usr/lib/pyshared/pythonX.Y anymore. + * Disable nosetests in autopkg tests until these are fixed. + * dhpython/_defaults.py: Add python3.4 as a supported version. + + -- Matthias Klose Sat, 21 Dec 2013 14:50:06 +0100 + +dh-python (1.20131021-1ubuntu4) trusty; urgency=medium + + * Don't move files to /usr/share/pyshared anymore. + + -- Matthias Klose Fri, 20 Dec 2013 00:39:05 +0100 + +dh-python (1.20131021-1ubuntu3) trusty; urgency=medium + + * Make the package Multi-Arch: foreign. + + -- Matthias Klose Sat, 07 Dec 2013 19:32:35 +0100 + +dh-python (1.20131021-1ubuntu2~cloud0) precise-icehouse; urgency=low + + * Backport for Ubuntu Cloud Archive, based on Debian Wheezy backports: + - Replace libpython3-stdlib build dependency with python3.2 + - Update default/supported Python versions (in a fallback code, + if python_defaults missing) + - Use dpkg-divert to replace python3's dh_python3 and python's dh_python2 + and drop Breaks/Replaces + - Remove the diversions on removal. + - Patch rtupdate calls for compatibility with Ubuntu py3clean. + - d/p/align-12.04-python-versions.patch: Align python/python3 versions + with those in Ubuntu 12.04. + + -- James Page Mon, 09 Dec 2013 08:57:53 +0000 + +dh-python (1.20131021-1ubuntu2) trusty; urgency=low + + * Add drop_nonexisting_versions.patch: In tests/Makefile, drop Python 2.6 + and 3.2 as supported, we do not have them in Debian and Ubuntu any more. + (Closes: #727674) + + -- Martin Pitt Tue, 05 Nov 2013 08:52:12 +0100 + +dh-python (1.20131021-1ubuntu1) trusty; urgency=low + + * Add missing python3-all-dbg test dependency for debian/tests/nosetests. + + -- Martin Pitt Thu, 24 Oct 2013 09:44:27 +0200 + dh-python (1.20131021-1) unstable; urgency=low * dh_python2: fix renaming debug extensions with multiarch tuples @@ -109,6 +227,26 @@ -- Piotr Ożarowski Thu, 17 Oct 2013 22:24:25 +0200 +dh-python (1.20131003-1~cloud1) precise-icehouse; urgency=low + + * d/p/align-12.04-python-versions.patch: Align python/python3 versions + with those in Ubuntu 12.04. + + -- James Page Thu, 05 Dec 2013 10:25:52 +0000 + +dh-python (1.20131003-1~cloud0) precise-icehouse; urgency=low + + * Backport for Ubuntu Cloud Archive, based on Debian Wheezy backports. + - Replace libpython3-stdlib build dependency with python3.2 + - Update default/supported Python versions (in a fallback code, + if python_defaults missing) + - Use dpkg-divert to replace python3's dh_python3 and python's dh_python2 + and drop Breaks/Replaces + - Remove the diversions on removal. + - Patch rtupdate calls for compatibility with Ubuntu py3clean. + + -- James Page Wed, 04 Dec 2013 14:33:02 +0000 + dh-python (1.20131003-1) unstable; urgency=low * Revert python-docutils build dependency change (to avoid circular diff -Nru dh-python-1.20141111/debian/control dh-python-1.20140128/debian/control --- dh-python-1.20141111/debian/control 2014-11-15 11:52:06.000000000 +0000 +++ dh-python-1.20140128/debian/control 2014-03-27 20:04:47.000000000 +0000 @@ -1,25 +1,22 @@ Source: dh-python Section: python Priority: optional -Maintainer: Piotr Ożarowski +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Piotr Ożarowski Uploaders: Stefano Rivera , Barry Warsaw -Build-Depends: debhelper (>= 9), python3-minimal, libpython3-stdlib, +Build-Depends: debhelper (>= 9), python3-minimal, python3.2, # provides rst2man command (python3-docutils not used to avoid circular deps): python-docutils -Standards-Version: 3.9.6 +Standards-Version: 3.9.5 Vcs-Git: git://anonscm.debian.org/dh-python/dh-python.git -Vcs-Browser: http://anonscm.debian.org/cgit/dh-python/dh-python.git +Vcs-Browser: http://anonscm.debian.org/gitweb/?p=dh-python/dh-python.git X-Python3-Version: >= 3.2 XS-Testsuite: autopkgtest Package: dh-python Architecture: all -#Multi-Arch: foreign -Depends: ${misc:Depends}, ${python3:Depends} -Breaks: -# due to /usr/bin/dh_python3 and debhelper files - python3 (<< 3.3.2-4~) -Replaces: python3 (<< 3.3.2-4~) +Depends: ${misc:Depends}, ${python3:Depends}, python3 (>= 3.2.3-0~) +Multi-Arch: foreign Description: Debian helper tools for packaging Python libraries and applications This package contains: * pybuild - invokes various build systems for requested Python versions in diff -Nru dh-python-1.20141111/debian/links dh-python-1.20140128/debian/links --- dh-python-1.20141111/debian/links 2014-11-05 14:58:04.000000000 +0000 +++ dh-python-1.20140128/debian/links 2014-03-27 20:04:47.000000000 +0000 @@ -1,4 +1,4 @@ /usr/share/dh-python/pybuild /usr/bin/pybuild /usr/share/dh-python/dh_pypy /usr/bin/dh_pypy -#/usr/share/dh-python/dh_python2 /usr/bin/dh_python2 +/usr/share/dh-python/dh_python2 /usr/bin/dh_python2 /usr/share/dh-python/dh_python3 /usr/bin/dh_python3 diff -Nru dh-python-1.20141111/debian/manpages dh-python-1.20140128/debian/manpages --- dh-python-1.20141111/debian/manpages 2014-11-05 14:58:04.000000000 +0000 +++ dh-python-1.20140128/debian/manpages 2014-03-27 20:04:47.000000000 +0000 @@ -1,4 +1,4 @@ pybuild.1 dh_pypy.1 -#dh_python2.1 +dh_python2.1 dh_python3.1 diff -Nru dh-python-1.20141111/debian/patches/align-12.04-python-versions.patch dh-python-1.20140128/debian/patches/align-12.04-python-versions.patch --- dh-python-1.20141111/debian/patches/align-12.04-python-versions.patch 1970-01-01 00:00:00.000000000 +0000 +++ dh-python-1.20140128/debian/patches/align-12.04-python-versions.patch 2014-03-27 20:04:47.000000000 +0000 @@ -0,0 +1,13 @@ +--- a/dhpython/__init__.py ++++ b/dhpython/__init__.py +@@ -25,8 +25,8 @@ PKG_PREFIX_MAP = {'cpython2': 'python', + 'pypy': 'pypy'} + + # minimum version required for compile/clean scripts: +-MINPYCDEP = {'cpython2': 'python:any (>= 2.7.5-5~)', +- 'cpython3': 'python3:any (>= 3.3.2-2~)', ++MINPYCDEP = {'cpython2': 'python:any (>= 2.7.3-0ubuntu2~)', ++ 'cpython3': 'python3:any (>= 3.2.3-0ubuntu1~)', + 'pypy': 'pypy'} + + PUBLIC_DIR_RE = { diff -Nru dh-python-1.20141111/debian/patches/no-python2.6.diff dh-python-1.20140128/debian/patches/no-python2.6.diff --- dh-python-1.20141111/debian/patches/no-python2.6.diff 1970-01-01 00:00:00.000000000 +0000 +++ dh-python-1.20140128/debian/patches/no-python2.6.diff 2014-03-27 20:04:47.000000000 +0000 @@ -0,0 +1,39 @@ +Index: dh-python-1.20140128/tests/t202/Makefile +=================================================================== +--- dh-python-1.20140128.orig/tests/t202/Makefile 2014-01-28 18:20:25.000000000 +0100 ++++ dh-python-1.20140128/tests/t202/Makefile 2014-03-24 17:24:28.459439873 +0100 +@@ -4,7 +4,7 @@ + clean: clean-common + + check: +- test -f debian/python-foo/usr/lib/python2.6/dist-packages/foo.py +- test -f debian/python-foo/usr/lib/python2.6/dist-packages/bar/bar.py ++ test -f debian/python-foo/usr/lib/python2.7/dist-packages/foo.py ++ test -f debian/python-foo/usr/lib/python2.7/dist-packages/bar/bar.py + grep -q pycompile debian/python-foo/DEBIAN/postinst + grep -q pyclean debian/python-foo/DEBIAN/prerm +Index: dh-python-1.20140128/tests/t204/Makefile +=================================================================== +--- dh-python-1.20140128.orig/tests/t204/Makefile 2014-01-28 18:20:25.000000000 +0100 ++++ dh-python-1.20140128/tests/t204/Makefile 2014-03-24 17:32:41.815422300 +0100 +@@ -5,7 +5,7 @@ + + check: + grep -q python2.6 debian/foo/usr/share/foo/foo.py +- grep -q Depends:.*python2.6 debian/foo/DEBIAN/control ++ grep -q Depends:.*python debian/foo/DEBIAN/control + #grep -q python2.5 debian/foo/usr/share/bar/bar.py + #grep -q Depends:.*python2.5 debian/foo/DEBIAN/control + grep -q python2.4 debian/foo/usr/share/foo/baz.py +Index: dh-python-1.20140128/tests/t206/Makefile +=================================================================== +--- dh-python-1.20140128.orig/tests/t206/Makefile 2014-01-28 18:20:25.000000000 +0100 ++++ dh-python-1.20140128/tests/t206/Makefile 2014-03-24 17:34:39.211418118 +0100 +@@ -13,6 +13,6 @@ + grep -q '\-V 2.5 /usr/share/bar25' debian/foo/usr/share/python/runtime.d/foo.rtupdate + grep -q '/usr/share/bar25 \-V 2.5' debian/foo/DEBIAN/postinst + # python2.6 hardcoded via shebang +- grep -q Depends:.*python2.6 debian/foo/DEBIAN/control ++ #grep -q Depends:.*python2.6 debian/foo/DEBIAN/control + grep -q '\-V 2.6 /usr/share/foo' debian/foo/usr/share/python/runtime.d/foo.rtupdate + grep -q '/usr/share/foo \-V 2.6' debian/foo/DEBIAN/postinst diff -Nru dh-python-1.20141111/debian/patches/no-python3.3.diff dh-python-1.20140128/debian/patches/no-python3.3.diff --- dh-python-1.20141111/debian/patches/no-python3.3.diff 1970-01-01 00:00:00.000000000 +0000 +++ dh-python-1.20140128/debian/patches/no-python3.3.diff 2014-03-27 20:04:47.000000000 +0000 @@ -0,0 +1,147 @@ +Index: b/dhpython/interpreter.py +=================================================================== +--- a/dhpython/interpreter.py ++++ b/dhpython/interpreter.py +@@ -309,8 +309,8 @@ + >>> i = Interpreter('python') + >>> i.cache_file('foo.py', Version('3.1')) + 'foo.pyc' +- >>> i.cache_file('bar/foo.py', '3.3') +- 'bar/__pycache__/foo.cpython-33.pyc' ++ >>> i.cache_file('bar/foo.py', '3.4') ++ 'bar/__pycache__/foo.cpython-34.pyc' + """ + version = Version(version or self.version) + last_char = 'o' if '-O' in self.options else 'c' +@@ -335,8 +335,8 @@ + """Return Python magic tag (used in __pycache__ dir to tag files). + + >>> i = Interpreter('python') +- >>> i.magic_tag(version='3.3') +- 'cpython-33' ++ >>> i.magic_tag(version='3.4') ++ 'cpython-34' + """ + version = Version(version or self.version) + if self.impl.startswith('cpython') and version << Version('3.2'): +@@ -378,8 +378,8 @@ + + >>> Interpreter('python2.7').include_dir + '/usr/include/python2.7' +- >>> Interpreter('python3.3-dbg').include_dir +- '/usr/include/python3.3dm' ++ >>> Interpreter('python3.4-dbg').include_dir ++ '/usr/include/python3.4dm' + """ + if self.impl == 'pypy': + return '/usr/lib/pypy/include' +@@ -482,7 +482,7 @@ + + >>> Interpreter('python3.1').suggest_pkg_name('foo') + 'python3-foo' +- >>> Interpreter('python3.3').suggest_pkg_name('foo') ++ >>> Interpreter('python3.4').suggest_pkg_name('foo') + 'python3-foo' + >>> Interpreter('python2.7-dbg').suggest_pkg_name('bar') + 'python-bar-dbg' +Index: b/pybuild +=================================================================== +--- a/pybuild ++++ b/pybuild +@@ -102,7 +102,7 @@ + + def get_option(name, interpreter=None, version=None, default=None): + if interpreter: +- # try PYBUILD_NAME_python3.3-dbg (or hardcoded interpreter) ++ # try PYBUILD_NAME_python3.4-dbg (or hardcoded interpreter) + i = interpreter.format(version=version or '') + opt = "PYBUILD_{}_{}".format(name.upper(), i) + if opt in environ: +Index: b/pybuild.rst +=================================================================== +--- a/pybuild.rst ++++ b/pybuild.rst +@@ -191,8 +191,8 @@ + * `--disable test/python2.5-dbg` - disables tests for python2.5-dbg + * `--disable '2.4 2.7'` - disables all actions for version 2.4 and 2.7 + * `PYBUILD_DISABLE_python2=1` - disables all actions for Python 2.X +-* `PYBUILD_DISABLE_python3.3=test` - disables tests for Python 3.3 +-* `PYBUILD_DISABLE=test/python3.3` - same as above ++* `PYBUILD_DISABLE_python3.4=test` - disables tests for Python 3.3 ++* `PYBUILD_DISABLE=test/python3.4` - same as above + * `PYBUILD_DISABLE=configure/python3 2.4 pypy` - disables configure + action for all python3 interpreters, all actions for version 2.4, and + all actions for pypy +Index: b/tests/t304/Makefile +=================================================================== +--- a/tests/t304/Makefile ++++ b/tests/t304/Makefile +@@ -6,10 +6,10 @@ + check: + # python3.2 hardcoded via `dh_python3 --shebang ...python3.2` + grep -q '#! /usr/bin/python3.2 -OO' debian/foo/usr/share/baz32/baz.py +- # python3.3 hardcoded via shebang +- grep -q '/usr/share/foo \-V 3.3' debian/foo/DEBIAN/postinst ++ # python3.4 hardcoded via shebang ++ grep -q '/usr/share/foo \-V 3.4' debian/foo/DEBIAN/postinst + # /env removed from shebang + grep -q '#! /usr/bin/python3' debian/foo/usr/share/bar/bar.py + # /local removed from shebang + grep -q '#! /usr/bin/python3' debian/foo/usr/share/foo/baz.py +- grep -q '#! /usr/bin/python3.3' debian/foo/usr/share/foo/foo.py ++ grep -q '#! /usr/bin/python3.4' debian/foo/usr/share/foo/foo.py +Index: b/tests/t304/foo.py +=================================================================== +--- a/tests/t304/foo.py ++++ b/tests/t304/foo.py +@@ -1,2 +1,2 @@ +-#!/usr/local/bin/python3.3 +-"/usr/local/bin/python3.3 hardcoded in shebang" ++#!/usr/local/bin/python3.4 ++"/usr/local/bin/python3.4 hardcoded in shebang" +Index: b/tests/test_interpreter.py +=================================================================== +--- a/tests/test_interpreter.py ++++ b/tests/test_interpreter.py +@@ -93,26 +93,26 @@ + self.assertIsNone(i.check_extname('foo.abi3.so')) + self.assertEqual(i.check_extname('foo/bar/bazmodule.so'), r'foo/bar/bazmodule.cpython-32dmu.so') + +- @unittest.skipUnless(exists('/usr/bin/python3.3'), 'python3.3 is not installed') +- def test_python33(self): +- i = Interpreter('python3.3') +- self.assertEqual(i.soabi(), 'cpython-33m') +- self.assertEqual(i.check_extname('foo.so'), r'foo.cpython-33m-MYARCH.so') ++ @unittest.skipUnless(exists('/usr/bin/python3.4'), 'python3.4 is not installed') ++ def test_python34(self): ++ i = Interpreter('python3.4') ++ self.assertEqual(i.soabi(), 'cpython-34m') ++ self.assertEqual(i.check_extname('foo.so'), r'foo.cpython-34m-MYARCH.so') + self.assertIsNone(i.check_extname('foo.cpython-32m.so')) # different version +- self.assertIsNone(i.check_extname('foo.cpython-33m-OTHER.so')) # different architecture +- self.assertEqual(i.check_extname('foo.cpython-33m.so'), r'foo.cpython-33m-MYARCH.so') ++ self.assertIsNone(i.check_extname('foo.cpython-34m-OTHER.so')) # different architecture ++ self.assertEqual(i.check_extname('foo.cpython-34m.so'), r'foo.cpython-34m-MYARCH.so') + self.assertIsNone(i.check_extname('foo.abi3.so')) +- self.assertEqual(i.check_extname('foo/bar/bazmodule.so'), r'foo/bar/baz.cpython-33m-MYARCH.so') ++ self.assertEqual(i.check_extname('foo/bar/bazmodule.so'), r'foo/bar/baz.cpython-34m-MYARCH.so') + +- @unittest.skipUnless(exists('/usr/bin/python3.3-dbg'), 'python3.3-dbg is not installed') +- def test_python33dbg(self): +- i = Interpreter('python3.3-dbg') +- self.assertEqual(i.soabi(), 'cpython-33dm') +- self.assertEqual(i.check_extname('foo.so'), r'foo.cpython-33dm-MYARCH.so') ++ @unittest.skipUnless(exists('/usr/bin/python3.4-dbg'), 'python3.4-dbg is not installed') ++ def test_python34dbg(self): ++ i = Interpreter('python3.4-dbg') ++ self.assertEqual(i.soabi(), 'cpython-34dm') ++ self.assertEqual(i.check_extname('foo.so'), r'foo.cpython-34dm-MYARCH.so') + self.assertIsNone(i.check_extname('foo.cpython-32m.so')) # different version +- self.assertIsNone(i.check_extname('foo.cpython-33m-OTHER.so')) # different architecture ++ self.assertIsNone(i.check_extname('foo.cpython-34m-OTHER.so')) # different architecture + self.assertIsNone(i.check_extname('foo.abi3.so')) +- self.assertEqual(i.check_extname('foo/bar/bazmodule.so'), r'foo/bar/baz.cpython-33dm-MYARCH.so') ++ self.assertEqual(i.check_extname('foo/bar/bazmodule.so'), r'foo/bar/baz.cpython-34dm-MYARCH.so') + + def test_version(self): + i = Interpreter(impl='cpython2') diff -Nru dh-python-1.20141111/debian/patches/py3clean_compat.patch dh-python-1.20140128/debian/patches/py3clean_compat.patch --- dh-python-1.20141111/debian/patches/py3clean_compat.patch 1970-01-01 00:00:00.000000000 +0000 +++ dh-python-1.20140128/debian/patches/py3clean_compat.patch 2014-03-27 20:04:47.000000000 +0000 @@ -0,0 +1,11 @@ +--- a/dhpython/__init__.py ++++ b/dhpython/__init__.py +@@ -98,7 +98,7 @@ if [ "$1" = rtupdate ]; then + fi''', + 'cpython3': ''' + if [ "$1" = rtupdate ]; then +-\tpy3clean {pkg_arg} {dname} ++\tpy3clean {pkg_arg} + \tpy3compile {pkg_arg} {args} {dname} + fi''', + 'pypy': '' diff -Nru dh-python-1.20141111/debian/patches/python3.4.diff dh-python-1.20140128/debian/patches/python3.4.diff --- dh-python-1.20141111/debian/patches/python3.4.diff 1970-01-01 00:00:00.000000000 +0000 +++ dh-python-1.20140128/debian/patches/python3.4.diff 2014-03-27 20:04:47.000000000 +0000 @@ -0,0 +1,35 @@ +Index: b/dhpython/_defaults.py +=================================================================== +--- a/dhpython/_defaults.py ++++ b/dhpython/_defaults.py +@@ -27,11 +27,11 @@ + + SUPPORTED = { + 'cpython2': [(2, 7)], +- 'cpython3': [(3, 3)], ++ 'cpython3': [(3, 4)], + 'pypy': [(2, 0)]} + DEFAULT = { + 'cpython2': (2, 7), +- 'cpython3': (3, 3), ++ 'cpython3': (3, 4), + 'pypy': (2, 0)} + + log = logging.getLogger('dhpython') +Index: b/tests/Makefile +=================================================================== +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -3,9 +3,9 @@ + # hardcode default/supported Python versions to make tests more reliable + # Note that all these packages have to be installed during tests + export DEBPYTHON_DEFAULT=2.7 +-export DEBPYTHON_SUPPORTED=2.6,2.7 +-export DEBPYTHON3_DEFAULT=3.3 +-export DEBPYTHON3_SUPPORTED=3.2,3.3 ++export DEBPYTHON_SUPPORTED=2.7 ++export DEBPYTHON3_DEFAULT=3.4 ++export DEBPYTHON3_SUPPORTED=3.4 + + # enable or disable tests here: + TESTS := test101 test201 test202 test203 test204 test205 test206 test207 test301 test302 test303 test304 diff -Nru dh-python-1.20141111/debian/patches/rmdirs.diff dh-python-1.20140128/debian/patches/rmdirs.diff --- dh-python-1.20141111/debian/patches/rmdirs.diff 1970-01-01 00:00:00.000000000 +0000 +++ dh-python-1.20140128/debian/patches/rmdirs.diff 2014-03-27 20:04:47.000000000 +0000 @@ -0,0 +1,41 @@ +--- a/dhpython/fs.py ++++ b/dhpython/fs.py +@@ -22,7 +22,7 @@ + import os + import re + from filecmp import cmp as cmpfile +-from os.path import exists, isdir, islink, join, split, splitext ++from os.path import exists, dirname, isdir, islink, join, split, splitext + from shutil import rmtree + from stat import ST_MODE, S_IXUSR, S_IXGRP, S_IXOTH + from dhpython import MULTIARCH_DIR_TPL +@@ -47,8 +47,12 @@ + log.debug('moving files from %s to %s', srcdir, dstdir) + share_files(srcdir, dstdir, interpreter, options) + parent_dir = '/'.join(srcdir.split('/')[:-1]) +- if exists(parent_dir) and not os.listdir(parent_dir): +- os.rmdir(parent_dir) ++ while parent_dir: ++ if exists(parent_dir): ++ if os.listdir(parent_dir): ++ break ++ os.rmdir(parent_dir) ++ parent_dir = dirname(parent_dir) + + # do the same with debug locations + dstdir = interpreter.sitedir(package, gdb=True) +@@ -57,8 +61,12 @@ + log.debug('moving files from %s to %s', srcdir, dstdir) + share_files(srcdir, dstdir, interpreter, options) + parent_dir = '/'.join(srcdir.split('/')[:-1]) +- if exists(parent_dir) and not os.listdir(parent_dir): +- os.rmdir(parent_dir) ++ while parent_dir: ++ if exists(parent_dir): ++ if os.listdir(parent_dir): ++ break ++ os.rmdir(parent_dir) ++ parent_dir = dirname(parent_dir) + + + def share_files(srcdir, dstdir, interpreter, options): diff -Nru dh-python-1.20141111/debian/patches/series dh-python-1.20140128/debian/patches/series --- dh-python-1.20141111/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ dh-python-1.20140128/debian/patches/series 2014-03-27 20:04:47.000000000 +0000 @@ -0,0 +1,4 @@ +update_default_and_supported_python_versions.patch +py3clean_compat.patch +align-12.04-python-versions.patch +rmdirs.diff diff -Nru dh-python-1.20141111/debian/patches/update_default_and_supported_python_versions.patch dh-python-1.20140128/debian/patches/update_default_and_supported_python_versions.patch --- dh-python-1.20141111/debian/patches/update_default_and_supported_python_versions.patch 1970-01-01 00:00:00.000000000 +0000 +++ dh-python-1.20140128/debian/patches/update_default_and_supported_python_versions.patch 2014-03-27 20:04:47.000000000 +0000 @@ -0,0 +1,21 @@ +Description: update default/supported Python versions in fallback code +Author: Piotr Ozarowski + +--- dh-python-1.20130819.orig/dhpython/_defaults.py ++++ dh-python-1.20130819/dhpython/_defaults.py +@@ -25,12 +25,12 @@ from os import environ + from subprocess import Popen, PIPE + + SUPPORTED = { +- 'cpython2': [(2, 7)], +- 'cpython3': [(3, 3)], ++ 'cpython2': [(2, 7, 2, 6)], ++ 'cpython3': [(3, 2)], + 'pypy': [(2, 0)]} + DEFAULT = { + 'cpython2': (2, 7), +- 'cpython3': (3, 3), ++ 'cpython3': (3, 2), + 'pypy': (2, 0)} + + log = logging.getLogger('dhpython') diff -Nru dh-python-1.20141111/debian/postrm dh-python-1.20140128/debian/postrm --- dh-python-1.20141111/debian/postrm 1970-01-01 00:00:00.000000000 +0000 +++ dh-python-1.20140128/debian/postrm 2014-03-27 20:04:47.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh +set -e + +remove_divert() { + dpkg-divert --package dh-python --remove --rename \ + --divert /usr/bin/dh_python3.real /usr/bin/dh_python3 + dpkg-divert --package dh-python --remove --rename \ + --divert /usr/share/man/man1/dh_python3.real.1.gz /usr/share/man/man1/dh_python3.1.gz + dpkg-divert --package dh-python --remove --rename \ + --divert /usr/bin/dh_python2.real /usr/bin/dh_python2 + dpkg-divert --package dh-python --remove --rename \ + --divert /usr/share/man/man1/dh_python2.real.1.gz /usr/share/man/man1/dh_python2.1.gz +} + +if [ abort-upgrade = "$1" ] && dpkg --compare-versions "$2" lt '1.20131003-1~cloud0'; then + remove_divert +elif [ remove = "$1" -o abort-install = "$1" ]; then + remove_divert +fi + +#DEBHELPER# diff -Nru dh-python-1.20141111/debian/preinst dh-python-1.20140128/debian/preinst --- dh-python-1.20141111/debian/preinst 2014-11-05 14:58:04.000000000 +0000 +++ dh-python-1.20140128/debian/preinst 2014-03-27 20:04:47.000000000 +0000 @@ -1,14 +1,21 @@ #!/bin/sh set -e -# ugly hack, but dpkg-divert's manpage isn't clear enough to me -if [ -f /usr/bin/dh_python2.real ]; then - rm -f /usr/bin/dh_python2 - dpkg-divert --remove --rename --divert /usr/bin/dh_python2.real /usr/bin/dh_python2 -fi -if [ -f /usr/share/man/man1/dh_python2.real.1.gz ]; then - rm -f /usr/share/man/man1/dh_python2.1.gz - dpkg-divert --remove --rename --divert /usr/share/man/man1/dh_python2.real.1.gz /usr/share/man/man1/dh_python2.1.gz +divert() { + dpkg-divert --package dh-python --add --rename \ + --divert /usr/bin/dh_python3.real /usr/bin/dh_python3 + dpkg-divert --package dh-python --add --rename \ + --divert /usr/share/man/man1/dh_python3.real.1.gz /usr/share/man/man1/dh_python3.1.gz + dpkg-divert --package dh-python --add --rename \ + --divert /usr/bin/dh_python2.real /usr/bin/dh_python2 + dpkg-divert --package dh-python --add --rename \ + --divert /usr/share/man/man1/dh_python2.real.1.gz /usr/share/man/man1/dh_python2.1.gz +} + +if [ install = "$1" ]; then + divert +elif [ upgrade = "$1" ] && dpkg --compare-versions "$2" lt '1.20131003-1~cloud0'; then + divert fi #DEBHELPER# diff -Nru dh-python-1.20141111/debian/rules dh-python-1.20140128/debian/rules --- dh-python-1.20141111/debian/rules 2014-11-05 14:58:04.000000000 +0000 +++ dh-python-1.20140128/debian/rules 2014-03-27 20:04:47.000000000 +0000 @@ -16,5 +16,9 @@ rm debian/dh-python/usr/share/debhelper/autoscripts/postinst-pycompile rm debian/dh-python/usr/share/debhelper/autoscripts/prerm-pyclean rm debian/dh-python/usr/share/perl5/Debian/Debhelper/Sequence/python2.pm + # drop files shipped in python3 (and compatible with dh-python) + rm debian/dh-python/usr/share/debhelper/autoscripts/postinst-py3compile + rm debian/dh-python/usr/share/debhelper/autoscripts/prerm-py3clean + rm debian/dh-python/usr/share/perl5/Debian/Debhelper/Sequence/python3.pm # generate maintainer scripts, etc. ./dh_python3 diff -Nru dh-python-1.20141111/dhpython/build/plugin_distutils.py dh-python-1.20140128/dhpython/build/plugin_distutils.py --- dh-python-1.20141111/dhpython/build/plugin_distutils.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dhpython/build/plugin_distutils.py 2014-01-28 17:20:25.000000000 +0000 @@ -84,9 +84,7 @@ for fname in glob1(context['dir'], '*.egg-info'): fpath = join(context['dir'], fname) rmtree(fpath) if isdir(fpath) else remove(fpath) - if exists(args['interpreter'].binary()): - return '{interpreter} {setup_py} clean {args}' - return 0 # no need to invoke anything + return '{interpreter} {setup_py} clean {args}' @shell_command @create_pydistutils_cfg diff -Nru dh-python-1.20141111/dhpython/debhelper.py dh-python-1.20140128/dhpython/debhelper.py --- dh-python-1.20141111/dhpython/debhelper.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dhpython/debhelper.py 2014-01-28 17:20:25.000000000 +0000 @@ -135,7 +135,7 @@ tpl = tplfile.read() if self.options.compile_all and args: # TODO: should args be checked to contain dir name? - tpl = tpl.replace('-p #PACKAGE#', '') + tpl = tpl.replace('#PACKAGE#', '') else: tpl = tpl.replace('#PACKAGE#', package) tpl = tpl.replace('#ARGS#', i) diff -Nru dh-python-1.20141111/dhpython/_defaults.py dh-python-1.20140128/dhpython/_defaults.py --- dh-python-1.20141111/dhpython/_defaults.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dhpython/_defaults.py 2014-01-28 17:20:25.000000000 +0000 @@ -27,12 +27,12 @@ SUPPORTED = { 'cpython2': [(2, 7)], - 'cpython3': [(3, 4)], - 'pypy': [(2, 4)]} + 'cpython3': [(3, 3)], + 'pypy': [(2, 0)]} DEFAULT = { 'cpython2': (2, 7), - 'cpython3': (3, 4), - 'pypy': (2, 4)} + 'cpython3': (3, 3), + 'pypy': (2, 0)} log = logging.getLogger('dhpython') diff -Nru dh-python-1.20141111/dhpython/depends.py dh-python-1.20140128/dhpython/depends.py --- dh-python-1.20141111/dhpython/depends.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dhpython/depends.py 2014-01-28 17:20:25.000000000 +0000 @@ -61,17 +61,17 @@ def export_to(self, dh): """Fill in debhelper's substvars.""" prefix = PKG_PREFIX_MAP.get(self.impl, 'misc') - for i in sorted(self.depends): + for i in self.depends: dh.addsubstvar(self.package, '{}:Depends'.format(prefix), i) - for i in sorted(self.recommends): + for i in self.recommends: dh.addsubstvar(self.package, '{}:Recommends'.format(prefix), i) - for i in sorted(self.suggests): + for i in self.suggests: dh.addsubstvar(self.package, '{}:Suggests'.format(prefix), i) - for i in sorted(self.enhances): + for i in self.enhances: dh.addsubstvar(self.package, '{}:Enhances'.format(prefix), i) - for i in sorted(self.breaks): + for i in self.breaks: dh.addsubstvar(self.package, '{}:Breaks'.format(prefix), i) - for i in sorted(self.rtscripts): + for i in self.rtscripts: dh.add_rtupdate(self.package, i) def __str__(self): @@ -215,12 +215,6 @@ # removed from requires.txt? for i in parse_pydep(self.impl, fn): self.depend(i) - for fpath in stats['egg-info']: - with open(fpath, 'r', encoding='utf-8') as fp: - for line in fp: - if line.startswith('Requires: '): - req = line[10:].strip() - self.depend(guess_dependency(self.impl, req)) # add dependencies from --depends for item in options.depends or []: diff -Nru dh-python-1.20141111/dhpython/fs.py dh-python-1.20140128/dhpython/fs.py --- dh-python-1.20141111/dhpython/fs.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dhpython/fs.py 2014-01-28 17:20:25.000000000 +0000 @@ -22,7 +22,7 @@ import os import re from filecmp import cmp as cmpfile -from os.path import exists, dirname, isdir, islink, join, split, splitext +from os.path import exists, isdir, islink, join, split, splitext from shutil import rmtree from stat import ST_MODE, S_IXUSR, S_IXGRP, S_IXOTH from dhpython import MULTIARCH_DIR_TPL @@ -47,12 +47,8 @@ log.debug('moving files from %s to %s', srcdir, dstdir) share_files(srcdir, dstdir, interpreter, options) parent_dir = '/'.join(srcdir.split('/')[:-1]) - while parent_dir: - if exists(parent_dir): - if os.listdir(parent_dir): - break - os.rmdir(parent_dir) - parent_dir = dirname(parent_dir) + if exists(parent_dir) and not os.listdir(parent_dir): + os.rmdir(parent_dir) # do the same with debug locations dstdir = interpreter.sitedir(package, gdb=True) @@ -61,12 +57,8 @@ log.debug('moving files from %s to %s', srcdir, dstdir) share_files(srcdir, dstdir, interpreter, options) parent_dir = '/'.join(srcdir.split('/')[:-1]) - while parent_dir: - if exists(parent_dir): - if os.listdir(parent_dir): - break - os.rmdir(parent_dir) - parent_dir = dirname(parent_dir) + if exists(parent_dir) and not os.listdir(parent_dir): + os.rmdir(parent_dir) def share_files(srcdir, dstdir, interpreter, options): @@ -83,13 +75,13 @@ new_name = interpreter.check_extname(i, version) if new_name: fpath1 = join(srcdir, new_name) - if exists(fpath1): - log.warn('destination file exist, ' - 'cannot rename %s to %s', fpath1_orig, fpath1) - else: - log.info('renaming %s to %s', fpath1_orig, fpath1) - os.renames(fpath1_orig, fpath1) - i = new_name + if exists(fpath1): + log.warn('destination file exist, ' + 'cannot rename %s to %s', fpath1_orig, fpath1) + else: + log.info('renaming %s to %s', fpath1_orig, fpath1) + os.renames(fpath1_orig, fpath1) + i = new_name fpath2 = join(dstdir, i) if not isdir(fpath1) and not exists(fpath2): # do not rename directories here - all .so files have to be renamed first @@ -125,7 +117,6 @@ self.options = options self.result = {'requires.txt': set(), - 'egg-info': set(), 'nsp.txt': set(), 'shebangs': set(), 'public_vers': set(), @@ -374,7 +365,6 @@ else: log.info('renaming %s to %s', name, clean_name) os.rename(fpath, join(root, clean_name)) - self.result['egg-info'].add(join(root, clean_name)) def cleanup(self): if self.is_dbg_package and self.options.clean_dbg_pkg: diff -Nru dh-python-1.20141111/dhpython/interpreter.py dh-python-1.20140128/dhpython/interpreter.py --- dh-python-1.20141111/dhpython/interpreter.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dhpython/interpreter.py 2014-01-28 17:20:25.000000000 +0000 @@ -309,8 +309,8 @@ >>> i = Interpreter('python') >>> i.cache_file('foo.py', Version('3.1')) 'foo.pyc' - >>> i.cache_file('bar/foo.py', '3.4') - 'bar/__pycache__/foo.cpython-34.pyc' + >>> i.cache_file('bar/foo.py', '3.3') + 'bar/__pycache__/foo.cpython-33.pyc' """ version = Version(version or self.version) last_char = 'o' if '-O' in self.options else 'c' @@ -335,8 +335,8 @@ """Return Python magic tag (used in __pycache__ dir to tag files). >>> i = Interpreter('python') - >>> i.magic_tag(version='3.4') - 'cpython-34' + >>> i.magic_tag(version='3.3') + 'cpython-33' """ version = Version(version or self.version) if self.impl.startswith('cpython') and version << Version('3.2'): @@ -378,8 +378,8 @@ >>> Interpreter('python2.7').include_dir '/usr/include/python2.7' - >>> Interpreter('python3.4-dbg').include_dir - '/usr/include/python3.4dm' + >>> Interpreter('python3.3-dbg').include_dir + '/usr/include/python3.3dm' """ if self.impl == 'pypy': return '/usr/lib/pypy/include' @@ -482,7 +482,7 @@ >>> Interpreter('python3.1').suggest_pkg_name('foo') 'python3-foo' - >>> Interpreter('python3.4').suggest_pkg_name('foo') + >>> Interpreter('python3.3').suggest_pkg_name('foo') 'python3-foo' >>> Interpreter('python2.7-dbg').suggest_pkg_name('bar') 'python-bar-dbg' diff -Nru dh-python-1.20141111/dhpython/pydist.py dh-python-1.20140128/dhpython/pydist.py --- dh-python-1.20141111/dhpython/pydist.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dhpython/pydist.py 2014-01-28 17:20:25.000000000 +0000 @@ -49,13 +49,11 @@ \s* (?P(?:\[[^\]]*\])?) # ignored for now \s* - \(? # optional parenthesis (?: # optional minimum/maximum version (?P<=?|>=?|==|!=) \s* (?P(\w|[-.])+) )? - \)? # optional closing parenthesis ''', re.VERBOSE) @@ -117,14 +115,13 @@ def guess_dependency(impl, req, version=None): - log.debug('trying to find dependency for %s (python=%s)', + log.debug('trying to guess dependency for %s (python=%s)', req, version) if isinstance(version, str): version = Version(version) # some upstreams have weird ideas for distribution name... - name, rest = re.compile('([^!><= \(\)\[]+)(.*)').match(req).groups() - # TODO: check stdlib and dist-packaged for name.py and name.so files + name, rest = re.compile('([^><= \[]+)(.*)').match(req).groups() req = safe_name(name) + rest data = load(impl) @@ -155,7 +152,7 @@ else: return item['dependency'] - # search for Egg metadata file or directory (using dpkg -S) + # try dpkg -S query = PYDIST_DPKG_SEARCH_TPLS[impl].format(ci_regexp(safe_name(name))) log.debug("invoking dpkg -S %s", query) @@ -176,13 +173,13 @@ else: log.debug('dpkg -S did not find package for %s: %s', name, stderr) + # fall back to python-distname pname = sensible_pname(impl, name) - log.info('Cannot find package that provides %s. ' - 'Please add package that provides it to Build-Depends or ' - 'add "%s %s-fixme" line to %s or add proper ' - ' dependency to Depends by hand and ignore this info.', - name, safe_name(name), pname, PYDIST_OVERRIDES_FNAMES[impl]) - # return pname + log.info('Cannot find installed package that provides %s. ' + 'Using %s as package name. Please add "%s correct_package_name" ' + 'line to debian/py3dist-overrides to override it IF this is incorrect.', + name, pname, safe_name(name)) + return pname def parse_pydep(impl, fname): diff -Nru dh-python-1.20141111/dhpython/tools.py dh-python-1.20140128/dhpython/tools.py --- dh-python-1.20141111/dhpython/tools.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dhpython/tools.py 2014-01-28 17:20:25.000000000 +0000 @@ -90,7 +90,7 @@ try: interpreter = Interpreter.from_file(fpath) except Exception as err: - log.debug('fix_shebang (%s): %s', fpath, err) + log.error('fix_shebang (%s): %s', fpath, err) return None if not replacement and interpreter.path != '/usr/bin/': # f.e. /usr/local/* or */bin/env @@ -301,7 +301,7 @@ site_dirs = interpreter.old_sitedirs(package, version) site_dirs.append(interpreter.sitedir(package, version)) for sdir in site_dirs: - files = glob(sdir + '/' + details['pattern']) + files = glob(sdir + details['pattern']) for fpath in files: if isdir(fpath): rmtree(fpath) diff -Nru dh-python-1.20141111/dh_python2 dh-python-1.20140128/dh_python2 --- dh-python-1.20141111/dh_python2 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dh_python2 2014-01-28 17:20:25.000000000 +0000 @@ -83,10 +83,12 @@ dir2 = interpreter.sitedir(package, version2) dc = dircmp(dir1, dir2) share_2x(dir1, dir2, dc) -# elif len(pubvers) == 1: -# move_to_pyshared(interpreter.sitedir(package, pubvers[0])) -# for version in stats['ext_vers']: -# create_ext_links(interpreter.sitedir(package, version)) + elif len(pubvers) == 1: + # TODO: remove this once file conflicts will not be needed anymore + move_to_pyshared(interpreter.sitedir(package, pubvers[0])) + + for version in stats['ext_vers']: + create_ext_links(interpreter.sitedir(package, version)) if options.guess_versions and pubvers: for version in get_requested_versions('cpython2', options.vrange): @@ -113,60 +115,60 @@ stats['nsp.txt'] = set(realpath(i) for i in stats['nsp.txt']) -# def move_to_pyshared(dir1): -# # dir1 starts with debian/packagename/usr/lib/pythonX.Y/*-packages/ -# debian, package, path = dir1.split('/', 2) -# dstdir = join(debian, package, 'usr/share/pyshared/', -# '/'.join(dir1.split('/')[6:])) -# -# for i in os.listdir(dir1): -# fpath1 = join(dir1, i) -# if isdir(fpath1) and not islink(fpath1): -# if any(fn for fn in os.listdir(fpath1) if fext(fn) != 'so'): -# # at least one file that is not an extension -# move_to_pyshared(join(dir1, i)) -# else: -# if fext(i) == 'so': -# continue -# fpath2 = join(dstdir, i) -# if not exists(fpath2): -# if not exists(dstdir): -# os.makedirs(dstdir) -# if islink(fpath1): -# fpath1_target = os.readlink(fpath1) -# if isabs(fpath1_target): -# os.symlink(fpath1_target, fpath2) -# else: -# fpath1_target = normpath(join(dir1, fpath1_target)) -# relative_symlink(fpath1_target, fpath2) -# os.remove(fpath1) -# else: -# os.rename(fpath1, fpath2) -# relative_symlink(fpath2, fpath1) -# -# -# def create_ext_links(dir1): -# """Create extension symlinks in /usr/lib/pyshared/pythonX.Y. -# -# These symlinks are used to let dpkg detect file conflicts with -# python-support and python-central packages. -# """ -# -# debian, package, path = dir1.split('/', 2) -# python, _, module_subpath = path[8:].split('/', 2) -# dstdir = join(debian, package, 'usr/lib/pyshared/', python, module_subpath) -# -# for i in os.listdir(dir1): -# fpath1 = join(dir1, i) -# if isdir(fpath1): -# create_ext_links(fpath1) -# elif fext(i) == 'so': -# fpath2 = join(dstdir, i) -# if exists(fpath2): -# continue -# if not exists(dstdir): -# os.makedirs(dstdir) -# relative_symlink(fpath1, join(dstdir, i)) +def move_to_pyshared(dir1): + # dir1 starts with debian/packagename/usr/lib/pythonX.Y/*-packages/ + debian, package, path = dir1.split('/', 2) + dstdir = join(debian, package, 'usr/share/pyshared/', + '/'.join(dir1.split('/')[6:])) + + for i in os.listdir(dir1): + fpath1 = join(dir1, i) + if isdir(fpath1) and not islink(fpath1): + if any(fn for fn in os.listdir(fpath1) if fext(fn) != 'so'): + # at least one file that is not an extension + move_to_pyshared(join(dir1, i)) + else: + if fext(i) == 'so': + continue + fpath2 = join(dstdir, i) + if not exists(fpath2): + if not exists(dstdir): + os.makedirs(dstdir) + if islink(fpath1): + fpath1_target = os.readlink(fpath1) + if isabs(fpath1_target): + os.symlink(fpath1_target, fpath2) + else: + fpath1_target = normpath(join(dir1, fpath1_target)) + relative_symlink(fpath1_target, fpath2) + os.remove(fpath1) + else: + os.rename(fpath1, fpath2) + relative_symlink(fpath2, fpath1) + + +def create_ext_links(dir1): + """Create extension symlinks in /usr/lib/pyshared/pythonX.Y. + + These symlinks are used to let dpkg detect file conflicts with + python-support and python-central packages. + """ + + debian, package, path = dir1.split('/', 2) + python, _, module_subpath = path[8:].split('/', 2) + dstdir = join(debian, package, 'usr/lib/pyshared/', python, module_subpath) + + for i in os.listdir(dir1): + fpath1 = join(dir1, i) + if isdir(fpath1): + create_ext_links(fpath1) + elif fext(i) == 'so': + fpath2 = join(dstdir, i) + if exists(fpath2): + continue + if not exists(dstdir): + os.makedirs(dstdir) + relative_symlink(fpath1, join(dstdir, i)) def create_public_links(dir1, vrange, root=''): diff -Nru dh-python-1.20141111/dh_python2.rst dh-python-1.20140128/dh_python2.rst --- dh-python-1.20141111/dh_python2.rst 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dh_python2.rst 2014-01-28 17:20:25.000000000 +0000 @@ -85,8 +85,8 @@ pyinstall files ~~~~~~~~~~~~~~~ Files listed in debian/pkg.pyinstall file will be installed as public modules -(i.e. into .../dist-packages/ directory) for all requested Python versions -(dh_install doesn't know about python's site- vs. dist-packages issue). +for all requested Python versions (dh_install doesn't know about python's site- +vs. dist-packages issue). Syntax: ``path/to/file [VERSION_RANGE] [NAMESPACE]`` @@ -105,9 +105,9 @@ pyremove files ~~~~~~~~~~~~~~ -If you want to remove some public modules (i.e. files in .../dist-packages/ -directory) installed by build system (from all supported Python versions or -only from a subset of these versions), add them to debian/pkg.pyremove file. +If you want to remove some files installed by build system (from all supported +Python versions or only from a subset of these versions), add them to +debian/pkg.pyremove file. Examples: * ``*.pth`` removes .pth files from .../dist-packages/ diff -Nru dh-python-1.20141111/dh_python3.rst dh-python-1.20140128/dh_python3.rst --- dh-python-1.20141111/dh_python3.rst 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/dh_python3.rst 2014-01-28 17:20:25.000000000 +0000 @@ -66,36 +66,6 @@ that have extensions different than `so` or `h` are removed by default. Use --no-dbg-cleaning option to disable this feature. -pyinstall files -~~~~~~~~~~~~~~~ -Files listed in debian/pkg.pyinstall file will be installed as public modules -(i.e. into .../dist-packages/ directory) for all requested Python versions. - -Syntax: ``path/to/file [VERSION_RANGE] [NAMESPACE]`` - -debian directory is automatically removed from the path, so you can place your -files in debian/ directory and install them from this location (if you want to -install them in "debian" namespace, set NAMESPACE to debian). If NAMESPACE is -set, all listed files will be installed in .../dist-packages/NAMESPACE/ -directory. - -Examples: - * ``foo.py`` installs .../dist-packages/foo.py for all supported Python versions - * ``foo/bar.py 3.3-`` installs .../dist-packages/foo/bar.py for versions >= 3.3 - * ``foo/bar.py spam`` installs .../dist-packages/spam/bar.py - * ``debian/*.py spam.egg 3.2`` installs .../python3.2/dist-packages/spam/egg/\*.py - files - -pyremove files -~~~~~~~~~~~~~~ -If you want to remove some public modules (i.e. files in .../dist-packages/ -directory) installed by build system (from all supported Python versions or -only from a subset of these versions), add them to debian/pkg.pyremove file. - -Examples: - * ``*.pth`` removes .pth files from .../dist-packages/ - * ``bar/baz.py 3.2`` removes .../python3.2/dist-packages/bar/baz.py - overriding supported / default Python versions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you want to override system's list of supported Python versions or the diff -Nru dh-python-1.20141111/.gitignore dh-python-1.20140128/.gitignore --- dh-python-1.20141111/.gitignore 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/.gitignore 2014-01-28 17:20:25.000000000 +0000 @@ -5,7 +5,6 @@ pydist/cache/ *\.1 *\.pyc -*\.swp *\.deb *\.changes *\.log diff -Nru dh-python-1.20141111/pybuild dh-python-1.20140128/pybuild --- dh-python-1.20141111/pybuild 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/pybuild 2014-01-28 17:20:25.000000000 +0000 @@ -237,29 +237,29 @@ step = func.__func__.__name__ if step == 'test' and nocheck: exit(0) - for i in cfg.interpreter: + for interpreter in cfg.interpreter: iversions = versions - if '{version}' not in i and len(versions) > 1: + if '{version}' not in interpreter and len(versions) > 1: log.info('limiting Python versions to %s due to missing {version}' ' in interpreter string', str(versions[0])) iversions = versions[:1] # just the default or closest to default for version in iversions: - if is_disabled(step, i, version): + if is_disabled(step, interpreter, version): continue c = dict(context) - c['dir'] = get_option('dir', i, version, cfg.dir) - c['destdir'] = get_option('destdir', i, version, cfg.destdir) + c['dir'] = get_option('dir', interpreter, version, cfg.dir) + c['destdir'] = get_option('destdir', interpreter, version, cfg.destdir) try: - run(func, i, version, c) + run(func, interpreter, version, c) except Exception as err: log.error('%s: plugin %s failed with: %s', step, plugin.NAME, err, exc_info=cfg.verbose) exit(13) if step == 'install': - ext_destdir = get_option('ext_destdir', i, version) + ext_destdir = get_option('ext_destdir', interpreter, version) if ext_destdir: move_matching_files(c['destdir'], ext_destdir, - get_option('ext_pattern', i, version)) + get_option('ext_pattern', interpreter, version)) exit(0) ### all functions for interpreters in batches mode ### diff -Nru dh-python-1.20141111/pybuild.rst dh-python-1.20140128/pybuild.rst --- dh-python-1.20141111/pybuild.rst 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/pybuild.rst 2014-01-28 17:20:25.000000000 +0000 @@ -33,6 +33,12 @@ %: dh $@ --with python2,python3 --buildsystem=pybuild +overriding test command with custom build plugin example:: + + override_dh_auto_test: + PYBUILD_SYSTEM=custom \ + PYBUILD_TEST_ARGS="command --with --options {build_dir}/" dh_auto_test + OPTIONS ======= Most options can be set (in addition to command line) via environment @@ -178,7 +184,7 @@ --disable ITEMS disable action, interpreter, version or any mix of them. Note that f.e. python3 and python3-dbg are two different interpreters, - --disable test/python3 doesn't disable python3-dbg's tests. + --disable python3/test doesn't disable python3-dbg's tests. disable examples ~~~~~~~~~~~~~~~~ @@ -195,5 +201,4 @@ ======== * dh_python2(1) * dh_python3(1) -* https://wiki.debian.org/Python/Pybuild * http://deb.li/pybuild - most recent version of this document diff -Nru dh-python-1.20141111/pydist/cpython2_fallback dh-python-1.20140128/pydist/cpython2_fallback --- dh-python-1.20141111/pydist/cpython2_fallback 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/pydist/cpython2_fallback 2014-01-28 17:20:25.000000000 +0000 @@ -3,230 +3,88 @@ wsgiref python (>= 2.5) | python-wsgiref argparse python (>= 2.7) | python-argparse pil python-imaging -APScheduler python-apscheduler -APacheDEX apachedex -Arriero arriero -AuthKit python-authkit -Axiom python-axiom -Babel python-babel -Beaker python-beaker -BeautifulSoup python-beautifulsoup +BatchModify trac-batchmodify Bitten trac-bitten-slave Blogofile blogofile -Brlapi python-brlapi -Buffy python-buffy BzrPipeline bzr-pipeline BzrTools bzrtools CDApplet cairo-dock-dbus-plug-in-interface-python CDBashApplet cairo-dock-dbus-plug-in-interface-python -CMOR python-cmor -CairoSVG python-cairosvg Calendar_and_Contacts_Server calendarserver -Catwalk python-catwalk CedarBackup2 cedar-backup2 -Cerealizer python-cerealizer -Chameleon python-chameleon -Cheetah python-cheetah CherryPy python-cherrypy3 CherryTree cherrytree ClusterShell clustershell -Coffin python-coffin -Coherence python-coherence -CouchDB python-couchdb -Couchapp couchapp CoverageTestRunner python-coverage-test-runner -Creoleparser python-creoleparser Cython cython DITrack ditrack -DSV python-dsv DiaVisViewPlugin trac-diavisview -Django python-django Doconce doconce -EbookLib python-ebooklib -EditObj python-editobj +Dosage dosage Editra editra -Electrum python-electrum -Elixir python-elixir -EnthoughtBase python-enthoughtbase -Epsilon python-epsilon -ExifRead python-exif -Extractor python-extractor -FFC python-ffc -FIAT python-fiat Fabric fabric FeinCMS python-django-feincms -FibraNet python-fibranet -Flask python-flask -Flask_AutoIndex python-flask-autoindex -Flask_Babel python-flask-babel -Flask_HTTPAuth python-flask-httpauth -Flask_Jsonpify python-jsonpify -Flask_Login python-flask-login -Flask_Migrate python-flask-migrate -Flask_OpenID python-flask-openid -Flask_Principal python-flask-principal -Flask_SQLAlchemy python-flask-sqlalchemy -Flask_Script python-flask-script -Flask_Silk python-flask-silk Flask_WTF python-flaskext.wtf -FormAlchemy python-formalchemy -FormEncode python-formencode -GDAL python-gdal -GalleryRemote python-galleryremote GaussSum gausssum -Genetic python-genetic -GenomeTools python-genometools -Genshi python-genshi -GeoIP python-geoip GitPython python-git -GooCalendar python-goocalendar -GvGen python-gvgen -HTSeq python-htseq -IMDbPY python-imdbpy -IPy python-ipy +Glances glances ISO8583_Module python-iso8583 Ibid ibid -Isenkram isenkram-cli +Isenkram isenkram JCC jcc -JPype python-jpype -Jinja2 python-jinja2 -Kajiki python-kajiki -Kivy python-kivy -LEPL python-lepl -LibAppArmor python-libapparmor -Logbook python-logbook Loom bzr-loom -Louie python-louie -M2Crypto python-m2crypto MACS macs MAT mat -MIDIUtil python-midiutil -MMTK python-mmtk Magic_file_extensions python-magic -Mako python-mako -Markdown python-markdown -MarkupSafe python-markupsafe -MiniMock python-minimock -Mirage mirage Mnemosyne mnemosyne Model_Builder model-builder -ModestMaps python-modestmaps -Mopidy mopidy -MultipartPostHandler python-multipartposthandler MySQL_python python-mysqldb -NavAdd trac-navadd -Nevow python-nevow +Nautilus_scripts_manager nautilus-scripts-manager Nikola nikola -OERPLib python-oerplib -OWSLib python-owslib OdtExportPlugin trac-odtexport -PAM python-pam PIDA pida -Pafy python-pafy -Parsley python-parsley -Paste python-paste -PasteDeploy python-pastedeploy -PasteScript python-pastescript -PasteWebKit python-pastewebkit +Patool patool Photon photon Pillow python-pil -Pint python-pint -Pivy python-pivy -Pmw python-pmw -PocketSphinx python-pocketsphinx PreludeEasy python-prelude -PsychoPy psychopy Pwman3 pwman3 PyAIML python-aiml -PyAVM python-pyavm -PyAssimp python-pyassimp -PyAudio python-pyaudio PyBluez python-bluez PyCAPTCHA python-captcha -PyChef python-chef +PyCoCuMa pycocuma PyFFTW3 python-fftw PyFeed python-feed -PyFlot python-pyflot -PyGreSQL python-pygresql PyHamcrest python-hamcrest PyHoca_CLI pyhoca-cli PyHoca_GUI pyhoca-gui -PyICU python-pyicu -PyJWT python-jwt -PyLD python-pyld PyMca pymca -PyMetrics pymetrics -PyODE python-pyode +PyNAST pynast PyOpenGL python-opengl -PyPDF2 python-pypdf2 -PyPhantomJS python-pyphantomjs -PyProtocols python-protocols -PyPump python-pypump -PyRRD python-pyrrd -PyRSS2Gen python-pyrss2gen PyRoom pyroom -PySocks python-pysocks PyStemmer python-stemmer -PyTango python-pytango PyVISA pyvisa PyWavelets python-pywt PyWebDAV python-webdav -PyX python-pyx -PyXB python-pyxb PyYAML python-yaml Py_ python-py++ -Pyevolve python-pyevolve -Pygments python-pygments -Pykka python-pykka -Pylons python-pylons Pymacs pymacs -Pyrex python-pyrex Pyro4 python2-pyro4 -Pysolar python-pysolar Pyste libboost-python1.55-dev -Python_fontconfig python-fontconfig QuantLib_Python quantlib-python -RBTools python-rbtools -Radicale python-radicale -Recoll python-recoll -Ren_Py python-renpy Roadmap_Plugin trac-roadmap -Routes python-routes RunSnakeRun runsnakerun -SOAPpy python-soappy -SPARQLWrapper python-sparqlwrapper -SQLAlchemy python-sqlalchemy -SQLObject python-sqlobject -SciTools python-scitools ScientificPython python-scientific -SecretStorage python-secretstorage -SetupDocs python-setupdocs -Shapely python-shapely -Shinken shinken-common -SimPy python-simpy -SocksiPy_branch python-socksipy -SocksipyChain python-socksipychain -SoftLayer python-softlayer Sonata sonata South python-django-south -Soya python-soya -Sphinx python-sphinx -SphinxBase python-sphinxbase -SquareMap python-squaremap -Strongwind python-strongwind -TRML2PDF python-trml2pdf TaskCoach taskcoach TcosConfigurator tcos-configurator -Tempita python-tempita The_FreeSmartphone_Framework_Daemon fso-frameworkd TileStache tilestache -Tofu python-tofu -TornadIO2 python-tornadio2 -ToscaWidgets python-toscawidgets Trac trac TracAccountManager trac-accountmanager TracAnnouncer trac-announcer TracAuthOpenId trac-authopenid +TracBzr trac-bzr TracCodeComments trac-codecomments TracCustomFieldAdmin trac-customfieldadmin TracDateField trac-datefieldplugin @@ -235,9 +93,7 @@ TracIncludeMacro trac-includemacro TracMasterTickets trac-mastertickets TracMercurial trac-mercurial -TracSpamFilter trac-spamfilter TracSubTicketsPlugin trac-subtickets -TracSubcomponents trac-subcomponents TracTags trac-tags TracVirtualTicketPermissions trac-virtualticketpermissions TracWikiPrintPlugin trac-wikiprint @@ -245,87 +101,21 @@ TracXMLRPC trac-xmlrpc Trac_jsGantt trac-jsgantt TranslatedPages trac-translatedpages -TurboJson python-turbojson -Twisted python-twisted -Twisted_Conch python-twisted-conch -Twisted_Core python-twisted-core -Twisted_Lore python-twisted-lore -Twisted_Mail python-twisted-mail -Twisted_Names python-twisted-names -Twisted_News python-twisted-news -Twisted_Runner python-twisted-runner -Twisted_Web python-twisted-web -Twisted_Web2 python-twisted-web2 -Twisted_Words python-twisted-words -UFL python-ufl -URLObject python-urlobject -Unidecode python-unidecode -Unipath python-unipath UnknownHorizons unknown-horizons VMDKstream vmdk-stream-converter VirtualMailManager vmm -WSME python-wsme -WTForms python-wtforms -Wand python-wand -WebError python-weberror -WebFlash python-webflash -WebHelpers python-webhelpers -WebOb python-webob -WebTest python-webtest -Werkzeug python-werkzeug -Whoosh python-whoosh WikiTableMacro trac-wikitablemacro WordPress_Library python-wordpresslib -XStatic python-xstatic -XStatic_Angular python-xstatic-angular -XStatic_Angular_Cookies python-xstatic-angular-cookies -XStatic_Angular_Mock python-xstatic-angular-mock -XStatic_Bootstrap_Datepicker python-xstatic-bootstrap-datepicker -XStatic_Bootstrap_SCSS python-xstatic-bootstrap-scss -XStatic_D3 python-xstatic-d3 -XStatic_Font_Awesome python-xstatic-font-awesome -XStatic_Hogan python-xstatic-hogan -XStatic_JQuery.Bootstrap.Wizard python-xstatic-jquery.bootstrap.wizard -XStatic_JQuery.TableSorter python-xstatic-jquery.tablesorter -XStatic_JQuery.quicksearch python-xstatic-jquery.quicksearch -XStatic_JQuery_Migrate python-xstatic-jquery-migrate -XStatic_JSEncrypt python-xstatic-jsencrypt -XStatic_Jasmine python-xstatic-jasmine -XStatic_QUnit python-xstatic-qunit -XStatic_Rickshaw python-xstatic-rickshaw -XStatic_Spin python-xstatic-spin -XStatic_jQuery python-xstatic-jquery -XStatic_jquery_ui python-xstatic-jquery-ui X_Tile x-tile -XlsxWriter python-xlsxwriter -Yapsy python-yapsy -ZConfig python-zconfig ZODB3 python-zodb -ZooKeeper python-zookeeper _tifffile python-tifffile -actdiag python-actdiag -admesh python-admesh adns_python python-adns -affine python-affine -alabaster python-alabaster -albatross python-albatross -alembic python-alembic +alembic alembic allmydata_tahoe tahoe-lafs -amqp python-amqp -amqplib python-amqplib -aniso8601 python-aniso8601 ansible ansible -anyjson python-anyjson apache_libcloud python-libcloud -apipkg python-apipkg -apns_client python-apns-client -apparmor python-apparmor -appdirs python-appdirs -apptools python-apptools -apsw python-apsw +apparmor apparmor-easyprof apt_clone apt-clone -apt_p2p apt-p2p -apt_xapian_index apt-xapian-index aptfs aptfs aptoncd aptoncd arandr arandr @@ -344,1366 +134,355 @@ archipel_core archipel-core archivemail archivemail archmage archmage -argcomplete python-argcomplete -argh python-argh -args python-args -argvalidate python-argvalidate arista arista -arpy python-arpy -arrow python-arrow assword assword -astor python-astor -astroid python-astroid -astropy python-astropy -astropy_helpers python-astropy-helpers -async python-async atheist atheist -audioread python-audioread -authres python-authres -autobahn python-autobahn autokey autokey-common automx automx -autopep8 python-autopep8 -autoradio autoradio -avc python-avc -babelfish python-babelfish -backports.ssl_match_hostname python-backports.ssl-match-hostname -backup2swift python-backup2swift barman barman -bashate python-bashate -bcdoc python-bcdoc -beanstalkc python-beanstalkc beautifulsoup4 python-bs4 bicyclerepair bicyclerepair -billiard python-billiard -binaryornot python-binaryornot binwalk binwalk -biom_format python-biom-format -biopython python-biopython -biplist python-biplist -bitarray python-bitarray -bleach python-bleach -blessings python-blessings bley bley -blinker python-blinker -blist python-blist -blockdiag python-blockdiag bmap_tools bmap-tools -bobo python-bobo bookletimposer bookletimposer -bootstrap_vz bootstrap-vz -boto python-boto -botocore python-botocore -bottle python-bottle bpython bpython -braintree python-braintree -breadability python-breadability -breathe python-breathe -bsddb3 python-bsddb3 bugs_everywhere bugs-everywhere buildbot buildbot buildbot_slave buildbot-slave -bunch python-bunch burn burn -buzhug python-buzhug bzr python-bzrlib bzr_builddeb bzr-builddeb +bzr_cia cia-clients bzr_email bzr-email bzr_etckeeper etckeeper +bzr_fastimport bzr-fastimport +bzr_git bzr-git bzr_search bzr-search bzr_stats bzr-stats bzr_tweet bzr-tweet bzr_upload bzr-upload bzr_xmloutput bzr-xmloutput -cairocffi python-cairocffi -calabash python-calabash calypso calypso cappuccino cappuccino -capstone python-capstone carbon graphite-carbon cardstories cardstories -cclib python-cclib -cdo python-cdo cecilia cecilia -ceilometer python-ceilometer -celery python-celery -ceres python-ceres -cffi python-cffi -chaco python-chaco -changelog python-changelog -characteristic python-characteristic -chardet python-chardet -chemfp python-chemfp +cfget cfget chirp chirp chm2pdf chm2pdf -cigi python-cigi -cinder python-cinder -cinfony python-cinfony -circuits python-circuits -ckanclient python-ckanclient -cliapp python-cliapp -click python-click -cliff python-cliff cliff_tablib cliff-tablib -clint python-clint closure_linter closure-linter cloud_init cloud-init -cloud_sptheme python-cloud-sptheme -cluster python-cluster -cmd2 python-cmd2 cmdtest cmdtest -cobe python-cobe -cogent python-cogent -colander python-colander -colorama python-colorama -colorlog python-colorlog -commando python-commando -configglue python-configglue -configobj python-configobj -configparser python-configparser -construct python-construct -contextlib2 python-contextlib2 -contract python-contract -convoy python-convoy -cookiecutter python-cookiecutter core_python core-network-daemon core_python_netns core-network-daemon corens3_python core-network-daemon -couchdbkit python-couchdbkit -couleur python-couleur -cov_core python-cov-core -coverage python-coverage -cppman cppman -cpuset cpuset -cpyrit_opencl pyrit-opencl -cracklib python-cracklib -crcmod python-crcmod -croniter python-croniter -cryptography python-cryptography -cryptography_vectors python-cryptography-vectors -cs python-cs -csb python-csb cssmin cssmin -cssselect python-cssselect -cssutils python-cssutils -cubictemp python-cubictemp cvs2svn cvs2svn -cvxopt python-cvxopt cwm python-swap -cyclone python-cyclone -d2to1 python-d2to1 -dap python-dap -datanommer.commands python-datanommer.commands -datanommer.consumer python-datanommer.consumer -datanommer.models python-datanommer.models datapm datapm dblatex dblatex -ddt python-ddt -deap python-deap -debbindiff debbindiff -debiancontributors python-debiancontributors -debtagshw python-debtagshw -decorator python-decorator -defer python-defer -defusedxml python-defusedxml deluge deluge-common -demjson python-demjson -designate python-designate -dexml python-dexml dh_virtualenv dh-virtualenv -dhcpy6d dhcpy6d -dhm python-dhm -dib_utils python-dib-utils -dicoclient python-dicoclient -dictclient python-dictclient -dictdlib python-dictdlib -diff_match_patch python-diff-match-patch -dingus python-dingus -dirspec python-dirspec -diskimage_builder python-diskimage-builder +dicompyler dicompyler dispcalGUI dispcalgui dissy dissy -distorm3 python-distorm3 -distro_info python-distro-info -django_adminaudit python-django-adminaudit django_ajax_selects python-ajax-select django_appconf python-appconf -django_assets python-django-assets -django_auth_ldap python-django-auth-ldap -django_authority python-django-authority -django_bitfield python-django-bitfield django_bootstrap_form python-bootstrapform -django_braces python-django-braces -django_celery python-django-celery -django_classy_tags python-django-classy-tags django_compressor python-compressor -django_conneg python-django-conneg -django_contact_form python-django-contact-form -django_countries python-django-countries -django_crispy_forms python-django-crispy-forms -django_dajax python-django-dajax -django_dajaxice python-django-dajaxice -django_debug_toolbar python-django-debug-toolbar -django_discover_runner python-django-discover-runner -django_evolution python-django-evolution -django_extensions python-django-extensions django_filter python-django-filters -django_floppyforms python-django-floppyforms -django_formfieldset python-django-formfieldset -django_genshi python-django-genshi -django_guardian python-django-guardian -django_haystack python-django-haystack -django_jsonfield python-django-jsonfield -django_ldapdb python-django-ldapdb -django_macaddress python-django-macaddress -django_markupfield python-django-markupfield -django_model_utils python-django-model-utils -django_mptt python-django-mptt -django_nose python-django-nose -django_notification python-django-notification -django_oauth_plus python-django-oauth-plus -django_openid_auth python-django-auth-openid django_openstack_auth python-openstack-auth -django_pagination python-django-pagination -django_picklefield python-django-picklefield -django_pipeline python-django-pipeline -django_piston python-django-piston -django_polymorphic python-django-polymorphic -django_pyscss python-django-pyscss -django_ratelimit python-django-ratelimit -django_registration python-django-registration -django_rest_framework_nested_resource python-djangorestframework-nested-resource -django_restricted_resource python-django-restricted-resource -django_reversion python-django-reversion -django_sekizai python-django-sekizai -django_shorturls python-django-shorturls -django_shortuuidfield python-django-shortuuidfield -django_simple_captcha python-django-captcha -django_sitetree python-django-sitetree -django_social_auth python-django-social-auth -django_sortedm2m python-sortedm2m -django_tables2 python-django-tables2 -django_tagging python-django-tagging -django_taggit python-django-taggit -django_tastypie python-django-tastypie -django_testproject django-testproject -django_testscenarios django-testscenarios -django_threadedcomments python-django-threadedcomments -django_treebeard python-django-treebeard -django_uuidfield python-django-uuidfield -django_voting python-django-voting -django_websocket python-django-websocket -django_xmlrpc python-django-xmlrpc -djangorestframework python-djangorestframework -djangorestframework_gis python-djangorestframework-gis +django_tastypie python-tastypie djextdirect python-django-extdirect dkimpy python-dkim -dnspython python-dnspython -dnsq python-dnsq -docker_py python-docker -docopt python-docopt -docutils python-docutils -dogpile.cache python-dogpile.cache -dogpile.core python-dogpile.core -dogtail python-dogtail -doit python-doit -dosage dosage -doublex python-doublex doxyqml doxyqml -dput python-dput driconf driconf -drmaa python-drmaa -drslib python-drslib dtrx dtrx -dulwich python-dulwich -dumbnet python-dumbnet duplicity duplicity dvbobjects opencaster -easygui python-easygui -easyzone python-easyzone -ecdsa python-ecdsa eficas eficas -elasticsearch python-elasticsearch -empy python-empy -enable python-enable -enet python-enet ensymble ensymble -enum python-enum -enum34 python-enum34 -envisage python-envisage -enzyme python-enzyme epigrass epigrass epoptes epoptes -epydoc python-epydoc -ethtool python-ethtool -etk.docking python-etk.docking euca2ools euca2ools -eventlet python-eventlet -exabgp exabgp -execnet python-execnet -expeyes python-expeyes -expiringdict python-expiringdict explorer bzr-explorer -expyriment python-expyriment -extras python-extras -eyeD3 python-eyed3 -fabio python-fabio -fabulous python-fabulous -factory_boy python-factory-boy -falcon python-falcon -fastimport python-fastimport -faulthandler python-faulthandler -fdb python-fdb -fdroidserver fdroidserver -fdsend python-fdsend -fedmsg python-fedmsg -fedmsg_meta_debian python-fedmsg-meta-debian -fedmsg_meta_fedora_infrastructure python-fedmsg-meta-fedora-infrastructure -feedgenerator python-feedgenerator -feedparser python-feedparser -ferari python-ferari -first python-first -fitbit python-fitbit -fiu python-fiu -fixtures python-fixtures fko libfko-python -flake8 python-flake8 -flashproxy_common flashproxy-common -flexmock python-flexmock flickrfs flickrfs -flower python-flower -flufl.bounce python-flufl.bounce -flufl.enum python-flufl.enum -flufl.i18n python-flufl.i18n -flufl.lock python-flufl.lock -flufl.password python-flufl.password -flup python-flup -fmcs python-fmcs -fontforge python-fontforge fontypython fontypython -foolscap python-foolscap -freeipa python-freeipa -freevo python-freevo -freezegun python-freezegun frescobaldi frescobaldi -freshen python-freshen -fs python-fs -fswrap python-fswrap -ftp_cloudfs python-ftp-cloudfs fts fts fts_clacks fts-clacks fts_fai fts-fai-ldap fts_ltsp fts-ltsp-ldap fts_opsi fts-opsi -fudge python-fudge -funcparserlib python-funcparserlib funkload funkload fuse_python python-fuse -fusil fusil futures python-concurrent.futures -fysom python-fysom gameclock gameclock -gamera python-gamera -gaphas python-gaphas gaphor gaphor -gastables python-gastables gastablesgui gastables gbp git-buildpackage -gcm_client python-gcm-client -gcovr gcovr -gdata python-gdata gdmodule python-gd -gear python-gear -gearman python-gearman genbackupdata genbackupdata -geolinks python-geolinks -geopy python-geopy -germinate python-germinate -gertty gertty -getdns python-getdns getmail getmail4 -gevent python-gevent -gevent_socketio python-socketio -gevent_websocket python-gevent-websocket geximon geximon -ghp_import ghp-import git_review git-review -gitdb python-gitdb github_cli github-cli gjots2 gjots2 -glance python-glance -glance_store python-glance-store glipper glipper -glitch python-glitch globs globs -glpk python-glpk glue glue-sprite gmobilemedia gmobilemedia -gmpy python-gmpy -gmpy2 python-gmpy2 -gnatpython python-gnatpython gnome_app_install gnome-codec-install -gnome_gmail gnome-gmail gnomecatalog gnomecatalog gnuplot_py python-gnuplot go2 go2 google_api_python_client python-googleapi -google_apputils python-google-apputils googlecl googlecl -googlecloudapis python-googlecloudapis gourmet gourmet -gpodder gpodder -gps python-gps -gpyconf python-gpyconf gquilt gquilt -grapefruit python-grapefruit graphite_web graphite-web -greenio python-greenio -greenlet python-greenlet grokmirror grokmirror -gsw python-gsw -guessit python-guessit -guidata python-guidata -guiqwt python-guiqwt gunicorn gunicorn -guzzle_sphinx_theme python-guzzle-sphinx-theme +gvb gvb gyp gyp -h5py python-h5py -hachoir_core python-hachoir-core -hachoir_metadata python-hachoir-metadata -hachoir_parser python-hachoir-parser -hachoir_regex python-hachoir-regex -hachoir_subfile python-hachoir-subfile -hachoir_urwid python-hachoir-urwid -hachoir_wx python-hachoir-wx -hacking python-hacking -happybase python-happybase -healpy python-healpy -heat python-heat hgnested mercurial-nested -hgsubversion hgsubversion -hiredis python-hiredis -hl7 python-hl7 horizon python-django-horizon -hp3parclient python-hp3parclient -hplefthandclient python-hplefthandclient -html2text python-html2text -html5lib python-html5lib -http_parser python-http-parser httpcode httpcode httpie httpie -httplib2 python-httplib2 -httpretty python-httpretty -humanize python-humanize -hunspell python-hunspell -hurry.filesize python-hurry.filesize -hy python-hy hyde hyde -iapws python-iapws -ibm_db_sa python-ibm-db-sa -icalendar python-icalendar icalview trac-icalviewplugin -icinga2 python-icinga2 identicurse identicurse -impacket python-impacket -imposm python-imposm imposm.parser python-imposm-parser -influxdb python-influxdb -iniparse python-iniparse -inotifyx python-inotifyx -instant python-instant ioprofiler ioapps iotop iotop -iowait python-iowait -ipaddr python-ipaddr -ipaplatform python-freeipa -ipapython python-freeipa -ipatests freeipa-tests -ipdb python-ipdb ipython ipython -irc python-irc -ironic python-ironic -iso8601 python-iso8601 -isodate python-isodate -itsdangerous python-itsdangerous -jabberbot python-jabberbot -jedi python-jedi -jenkinsapi python-jenkinsapi -jingo python-jingo -jmespath python-jmespath -joblib python-joblib -jpylyzer python-jpylyzer -jsmin python-jsmin -json_schema_validator python-json-schema-validator -jsonpatch python-jsonpatch -jsonpath_rw python-jsonpath-rw -jsonpickle python-jsonpickle -jsonpipe python-jsonpipe +isoquery isoquery jsonpointer python-json-pointer -jsonrpc2 python-jsonrpc2 -jsonrpclib python-jsonrpclib -jsonschema python-jsonschema -junitxml python-junitxml -kaa_base python-kaa-base -kaa_imlib2 python-kaa-imlib2 -kaa_metadata python-kaa-metadata -kapidox kapidox -kazoo python-kazoo -kdtree python-kdtree kedpm kedpm keepnote keepnote key_mon key-mon keymapper keymapper -keyring python-keyring -keystone python-keystone -keystonemiddleware python-keystonemiddleware keysync keysync kiki kiki -kinterbasdb python-kinterbasdb -kitchen python-kitchen -kjbuckets python-kjbuckets -kmodpy python-kmodpy -kombu python-kombu -laditools python-laditools -landslide python-landslide -larch python-larch -launchpadlib python-launchpadlib -lava_coordinator lava-coordinator -lava_dispatcher lava-dispatcher -lava_server lava-server -lava_tool lava-tool -lavapdu lavapdu-daemon -lazr.config python-lazr.config -lazr.delegates python-lazr.delegates -lazr.restfulclient python-lazr.restfulclient -lazr.smtptest python-lazr.smtptest -lazr.uri python-lazr.uri -lazyarray python-lazyarray lazygal lazygal -ldappool python-ldappool legit legit -lesscpy python-lesscpy -leveldb python-leveldb -libLAS python-liblas -libconcord python-libconcord -liblarch python-liblarch -librabbitmq python-librabbitmq -libturpial python-libturpial libvirt_python python-libvirt -linop python-linop lio lio-utils -livereload python-livereload -livestreamer python-livestreamer -llfuse python-llfuse llnl_babel python-sidl llnl_babel_sidl_sidlx python-sidl llvmpy python-llvm -lmfit python-lmfit loggerhead loggerhead -logging_tree python-logging-tree -logilab_astng python-logilab-astng -logilab_common python-logilab-common -logilab_constraint python-logilab-constraint logster logster -logutils python-logutils -londonlaw londonlaw -loofah python-loofah -louis python-louis lptools lptools lshell lshell -lua python-lua -lucene python-lucene ludev_t ludevit -lxml python-lxml lybniz lybniz -lz4 python-lz4 -m2ext python-m2ext -macaron python-macaron -mailman_api mailman-api mailnag mailnag -mandrill python-mandrill -mapper python-libmapper -marisa python-marisa -matplotlib python-matplotlib mayavi mayavi2 -mccabe python-mccabe mcomix mcomix mecab_python python-mecab -mechanize python-mechanize -medusa python-medusa melange python-cream.melange -meld meld -meld3 python-meld3 -meliae python-meliae -memory_profiler python-memory-profiler -memprof python-memprof mercurial mercurial-common mercurial_keyring mercurial-keyring -metaconfig python-metaconfig metastudent metastudent -mididings python-mididings mingc python-ming -mini_buildd python-mini-buildd -mini_dinstall mini-dinstall -minieigen python-minieigen -miniupnpc python-miniupnpc -mipp python-mipp -misaka python-misaka mitmproxy mitmproxy -mlbviewer mlbviewer -mne python-mne -mock python-mock -mocker python-mocker -mockito python-mockito -mockldap python-mockldap mod_python libapache2-mod-python -mod_pywebsocket python-mod-pywebsocket -model_mommy python-model-mommy moin python-moinmoin -moksha.common python-moksha.common -moksha.hub python-moksha.hub -monajat python-monajat -mongoengine python-mongoengine monkeysign monkeysign moosic moosic -mox python-mox -mox3 python-mox3 mozilla_devscripts mozilla-devscripts -mpi4py python-mpi4py -mpld3 python-mpld3 -mplexporter python-mplexporter -mpmath python-mpmath -mpop python-mpop -mps_youtube mps-youtube -mrjob python-mrjob +mpDris mpdris msgpack_python python-msgpack -multicorn python-multicorn -multipletau python-multipletau -munkres python-munkres -museek_python_bindings python-museek -musicbrainzngs python-musicbrainzngs -mutagen python-mutagen -mygpoclient python-mygpoclient -mysql_connector_python python-mysql.connector mysql_utilities mysql-utilities -nagiosplugin python-nagiosplugin -natsort python-natsort -naturalsort python-naturalsort nautilus_pastebin nautilus-pastebin -nbxmpp python-nbxmpp -ncclient python-ncclient -nemu python-nemu -neo python-neo neso tryton-neso -netaddr python-netaddr -netifaces python-netifaces -netlib python-netlib netsnmp_python python-netsnmp -netsyslog python-netsyslog -networkx python-networkx -neuroshare python-neuroshare -neutron python-neutron -nine python-nine -nipy python-nipy -nipype python-nipype -nltk python-nltk nml nml -nose python-nose -nose2 python-nose2 -nose2_cov python-nose2-cov -nose_exclude python-nose-exclude -nose_parameterized python-nose-parameterized -nose_testconfig python-nose-testconfig -nose_timer python-nose-timer -nosehtmloutput python-nosehtmloutput -nosexcover python-nosexcover -notify2 python-notify2 -notmuch python-notmuch -nova python-nova -ntplib python-ntplib -numexpr python-numexpr -numm python-numm -numpy python-numpy -numpydoc python-numpydoc -nwdiag python-nwdiag -nwsclient python-nwsclient -nwsserver python-nwsserver nxt_python python-nxt -oauth python-oauth -oauth2 python-oauth2 -oauth2client python-oauth2client -oauthlib python-oauthlib -obexftp python-obexftp obfsproxy obfsproxy -objgraph python-objgraph obnam obnam oboinus oboinus -ocsmanager python-ocsmanager -odf python-odf odfpy python-odf offlineimap offlineimap -ofxclient python-ofxclient -ofxhome python-ofxhome -ofxparse python-ofxparse oidua oidua -ooniprobe ooniprobe ooo2dbk ooo2dbk ooolib_python python-ooolib -openbabel python-openbabel openbmap_logger openbmap-logger -openslide_python python-openslide -openstack.nose_plugin python-openstack.nose-plugin -openstack_doc_tools python-openstack-doc-tools -optcomplete python-optcomplete -os_apply_config python-os-apply-config -os_cloud_config python-os-cloud-config -os_collect_config python-os-collect-config -os_refresh_config python-os-refresh-config osc osc -oslo.config python-oslo.config -oslo.db python-oslo.db -oslo.i18n python-oslo.i18n -oslo.messaging python-oslo.messaging -oslo.rootwrap python-oslo.rootwrap -oslo.utils python-oslo.utils -oslo.vmware python-oslo.vmware -oslosphinx python-oslosphinx -oslotest python-oslotest -osprofiler python-osprofiler -ow python-ow -ownet python-ownet -pagekite pagekite -paisley python-paisley +pYsearch python-yahoo pam python-pampy -pandas python-pandas -pandocfilters python-pandocfilters -paramiko python-paramiko -park python-park -parse python-parse -parsedatetime python-parsedatetime -passlib python-passlib -pathtools python-pathtools -patool patool -patsy python-patsy -pbkdf2 python-pbkdf2 -pbr python-pbr -pcapy python-pcapy -pcp python-pcp -pcs python-pcs -pdfminer python-pdfminer -pdfrw python-pdfrw +pbundler pbundler pdfshuffler pdfshuffler -pecan python-pecan -pefile python-pefile -pelican python-pelican pep8 pep8 perroquet perroquet -persistent python-persistent -pexpect python-pexpect pg_activity pg-activity -pgmagick python-pgmagick -pgpdump python-pgpdump pgxnclient pgxnclient photo_uploader photo-uploader -pies python-pies -piggyphoto python-piggyphoto -pika python-pika -pip python-pip +photofilmstrip photofilmstrip pithos pithos -pkgconfig python-pkgconfig -pkginfo python-pkginfo -plotly python-plotly -plumbum python-plumbum -ply python-ply -polib python-polib pondus pondus -portalocker python-portalocker -posix_ipc python-posix-ipc -power python-power -powerline_status python-powerline -prelude python-prelude -preludedb python-preludedb preprocess preprocess presage_dbus_service presage-dbus -pretend python-pretend -prettytable python-prettytable prewikka prewikka -proboscis python-proboscis -profitbricks_client python-profitbricks-client -proteus tryton-proteus -protobuf python-protobuf -protobuf.socketrpc python-protobuf.socketrpc -protorpc_standalone python-protorpc-standalone -psphere python-psphere -pssh pssh -psutil python-psutil -psycopg2 python-psycopg2 ptex2tex ptex2tex -publicsuffix python-publicsuffix -pudb python-pudb purity_ng purity-ng -pushy python-pushy -py python-py -pyCardDAV python-pycarddav -pyClamd python-pyclamd -pyDoubles python-pydoubles pyExcelerator python-excelerator pyFAI pyfai -pyFFTW python-pyfftw pyLibravatar python-libravatar -pyNFFT python-pynfft -pyOpenSSL python-openssl pyOwnCloud python-owncloud -pyPortMidi python-pypm pySFML python-sfml -pyScss python-pyscss py_Asterisk python-asterisk py_bcrypt python-bcrypt -py_libmpdclient python-mpdclient py_pypcap python-pypcap py_rrdtool python-rrdtool pyacidobasic python-acidobasic pyacoustid python-acoustid -pyalsa python-pyalsa pyalsaaudio python-alsaaudio -pyapi_gitlab python-gitlab -pyasn1 python-pyasn1 -pyasn1_modules python-pyasn1-modules -pybloomfiltermmap python-pybloomfiltermmap pyblosxom pyblosxom pybridge pybridge -pybtex pybtex pybugz bugz -pycadf python-pycadf -pycalendar python-pycalendar -pycassa python-pycassa -pycha python-pycha pychecker pychecker pychess pychess -pychm python-chm -pyclamav python-pyclamav pyclips python-clips -pycoast python-pycoast pycollada python-collada -pycountry python-pycountry -pycparser python-pycparser pycrypto python-crypto -pycryptopp python-pycryptopp pycups python-cups -pycurl python-pycurl -pydds python-pydds -pydhcplib python-pydhcplib pydicom python-dicom pydns python-dns -pydoctor python-pydoctor -pydot python-pydot -pyds9 python-pyds9 -pyelliptic python-pyelliptic pyenchant python-enchant -pyepl python-pyepl pyepr python-epr -pyface python-pyface -pyfann python-pyfann -pyfiglet python-pyfiglet -pyfits python-pyfits pyflakes pyflakes -pyfribidi python-pyfribidi -pyftpdlib python-pyftpdlib -pygame python-pygame -pyghmi python-pyghmi pygmi wmii pygobject python-gi pygopherd pygopherd -pygpgme python-pyme +pygpgme python-gpgme pygpiv python-gpiv -pygrace python-pygrace -pygraphviz python-pygraphviz pygrib python-grib pygtkspellcheck python-gtkspellcheck pygts python-gts -pyhsm python-pyhsm -pyinotify python-pyinotify -pyip python-pyip -pykaraoke python-pykaraoke -pykdtree python-pykdtree -pyke python-pyke -pykerberos python-kerberos -pykickstart python-pykickstart -pyknon python-pyknon -pylast python-pylast -pylibacl python-pylibacl pyliblo python-liblo -pylibmc python-pylibmc pylibpcap python-libpcap pylibtiff python-libtiff pylint pylint -pylirc python-pylirc pylogsparser python-logsparser -pymad python-pymad pymecavideo python-mecavideo -pymemcache python-pymemcache -pymetar python-pymetar pymia python-mia pymilter python-milter -pymodbus python-pymodbus pymol pymol pymtbl python-mtbl -pymucipher python-museek -pymvpa2 python-mvpa2 -pynag python-pynag -pynast pynast pyneighborhood pyneighborhood -pynzb python-pynzb -pyo python-pyo -pyogg python-ogg -pyopencl python-pyopencl -pyoperators python-pyoperators -pyorbital python-pyorbital -pyosd python-pyosd pyp pyp pyparallel python-parallel -pyparsing python-pyparsing -pyparted python-parted -pyproj python-pyproj pyprompter pyprompter -pyptlib python-pyptlib -pypureomapi python-pypureomapi pyqi pyqi -pyqtgraph python-pyqtgraph -pyquery python-pyquery -pyrad python-pyrad -pyramid python-pyramid -pyramid_beaker python-pyramid-beaker -pyramid_tm python-pyramid-tm -pyramid_zcml python-pyramid-zcml pyremctl python-remctl -pyresample python-pyresample -pyrit pyrit -pyrite_publisher pyrite-publisher -pysam python-pysam -pysaml2 python-pysaml2 pysane python-sane pysatellites python-satellites -pyscanfcs pyscanfcs -pyscard python-pyscard -pyscript python-pyscript pyserial python-serial -pyshp python-pyshp -pysmbc python-smbc pysnmp python-pysnmp4 pysnmp_apps python-pysnmp4-apps pysnmp_mibs python-pysnmp4-mibs -pysolr python-pysolr pysparse python-sparse -pyspatialite python-pyspatialite pyspf python-spf pysqlite python-pysqlite2 -pysrs python-srs -pysrt python-pysrt -pyst python-pyst -pystache python-pystache pysubnettree python-subnettree -pysurfer python-surfer pytagsfs pytagsfs -pytc python-pytc pytcpwrap python-tcpwrap -pyte python-pyte -pytest python-pytest -pytest_cov python-pytest-cov -pytest_instafail python-pytest-instafail -pytest_xdist python-pytest-xdist -pyth python-pyth -python3_ldap python-ldap3 -python_Levenshtein python-levenshtein -python_aalib python-aalib -python_application python-application -python_apt python-apt -python_ase python-ase -python_augeas python-augeas -python_barbicanclient python-barbicanclient -python_bibtex python-bibtex -python_bitbucket python-bitbucket -python_catcher python-catcher -python_ceilometerclient python-ceilometerclient -python_cinderclient python-cinderclient -python_cloudfiles python-cloudfiles -python_corepywrap python-corepywrap -python_cpl python-cpl -python_cream python-cream -python_crontab python-crontab -python_dateutil python-dateutil -python_dbusmock python-dbusmock -python_debian python-debian -python_default_encoding python-freeipa -python_designateclient python-designateclient -python_distutils_extra python-distutils-extra -python_djvulibre python-djvu -python_espeak python-espeak -python_evtx python-evtx -python_exconsole python-exconsole -python_fcgi python-fcgi -python_fedora python-fedora -python_freecontact python-freecontact -python_geoclue python-geoclue -python_gflags python-gflags -python_glanceclient python-glanceclient -python_gnupg python-gnupg -python_gnutls python-gnutls -python_graph_core python-pygraph -python_graph_dot python-pygraph -python_heatclient python-heatclient -python_hglib python-hglib -python_igraph python-igraph -python_irclib python-irclib -python_ironicclient python-ironicclient -python_jenkins python-jenkins -python_jswebkit python-jswebkit -python_keyczar python-keyczar -python_keystoneclient python-keystoneclient -python_ldap python-ldap -python_libdiscid python-libdiscid python_libgearman python-gearman.libgearman -python_libguess python-libguess -python_libtorrent python-libtorrent python_logging_extra python-loggingx -python_lzo python-lzo python_memcached python-memcache -python_messaging python-messaging -python_mimeparse python-mimeparse -python_mk_livestatus python-mk-livestatus -python_mpd python-mpd -python_networkmanager python-networkmanager -python_neutronclient python-neutronclient -python_nmap python-nmap -python_novaclient python-novaclient -python_novnc python-novnc -python_nss python-nss -python_ntlm python-ntlm -python_openid python-openid -python_openstackclient python-openstackclient -python_passfd python-passfd -python_poppler_qt4 python-poppler-qt4 -python_potr python-potr -python_presage python-presage -python_pskc python-pskc -python_ptrace python-ptrace -python_saharaclient python-saharaclient -python_savannaclient python-savannaclient -python_seamicroclient python-seamicroclient -python_snappy python-snappy -python_social_auth python-social-auth -python_sql python-sql -python_stdnum python-stdnum -python_subunit python-subunit -python_svipc python-svipc -python_swiftclient python-swiftclient -python_termstyle python-termstyle -python_tldap python-tldap -python_troveclient python-troveclient -python_tuskarclient python-tuskarclient -python_tvrage python-tvrage -python_twitter python-twitter -python_unshare python-unshare -python_xmltv python-xmltv -python_xmp_toolkit python-libxmp pytidylib python-tidylib -pytils python-pytils pytimechart pytimechart -pytools python-pytools pytz python-tz -pyudev python-pyudev pyusb python-usb -pyviennacl python-pyviennacl -pyvmomi python-pyvmomi -pyvorbis python-pyvorbis -pywapi python-pywapi -pywbem python-pywbem -pywcs python-pywcs pyweblib python-weblib -pyxattr python-pyxattr pyxdg python-xdg -pyxenstore python-pyxenstore -pyxmpp python-pyxmpp -pyxnat python-pyxnat pyxp wmii pyzmq python-zmq qbzr qbzr -qcli python-qcli qct qct qmtest qmtest qpid_python python-qpid qpid_qmf python-qpid-extras-qmf qpid_tools qpid-tools -qrcode python-qrcode -qrencode python-qrencode -qrtools python-qrtools -qt4reactor python-qt4reactor -quantities python-quantities -queuelib python-queuelib quisk quisk quodlibet exfalso rabbitvcs rabbitvcs-core radiotray radiotray -radix python-radix -ranger ranger -rarfile python-rarfile -rawdog rawdog -rdflib python-rdflib +rapid_spring rapid-spring rdiff_backup rdiff-backup rebuildd rebuildd recaptcha_client python-recaptcha -reclass python-reclass -reconfigure python-reconfigure -redis python-redis -rednose python-rednose -regex python-regex -relatorio python-relatorio -releases python-releases remuco remuco-base -reportbug python-reportbug -reportlab python-reportlab -repoze.lru python-repoze.lru -repoze.sphinx.autointerface python-repoze.sphinx.autointerface -repoze.tm2 python-repoze.tm2 -repoze.what python-repoze.what -repoze.what.plugins.sql python-repoze.what-plugins -repoze.what.plugins.xml python-repoze.what-plugins -repoze.what_pylons python-repoze.what-plugins -repoze.what_quickstart python-repoze.what-plugins -repoze.who python-repoze.who -repoze.who.plugins.ldap python-repoze.who-plugins -repoze.who.plugins.openid python-repoze.who-plugins -repoze.who.plugins.sa python-repoze.who-plugins -repoze.who_friendlyform python-repoze.who-plugins -repoze.who_testutil python-repoze.who-plugins -requestbuilder python-requestbuilder -requests python-requests requests_aws python-awsauth -requests_kerberos python-requests-kerberos -requests_mock python-requests-mock -requests_oauthlib python-requests-oauthlib -responses python-responses -restkit python-restkit -retrying python-retrying -rfc3986 python-rfc3986 -rfoo python-rfoo -rgain python-rgain -rhn python-rhn -ricky python-ricky -roman python-roman -rope python-rope -ropemacs python-ropemacs -ropemode python-ropemode roundup roundup rpl rpl -rply python-rply -rpy python-rpy -rpy2 python-rpy2 -rsa python-rsa -rst2pdf rst2pdf -rtslib_fb python-rtslib-fb -rubber rubber -ryu python-ryu salt salt-common -sardana python-sardana -scapy python-scapy -scgi python-scgi -schroot python-schroot scikit_image python-skimage scikit_learn python-sklearn -scipy python-scipy -sclapp python-sclapp -scoop python-scoop screenkey screenkey -scripttest python-scripttest -scrypt python-scrypt -seaborn python-seaborn -securepass python-securepass seivot seivot -semver python-semver sensitivetickets trac-sensitivetickets -seqdiag python-seqdiag servefile servefile -service_identity python-service-identity -setproctitle python-setproctitle -setuptools_git python-setuptools-git sftp_cloudfs sftpcloudfs -sh python-sh -shadowsocks shadowsocks shedskin shedskin -shelltoolbox python-shelltoolbox -shortuuid python-shortuuid -simplegeneric python-simplegeneric -simplejson python-simplejson -simplemediawiki python-simplemediawiki -singledispatch python-singledispatch -sireader python-sireader -six python-six slapos.core slapos-client -sleekxmpp python-sleekxmpp -slides python-slides slimit slimit -slimmer python-slimmer -slip python-slip slip.dbus python-slip-dbus slip.gtk python-slip-gtk -slowaes python-slowaes smart python-smartpm -smartypants python-smartypants -smbus python-smbus -smmap python-smmap -smstrade python-smstrade snimpy snimpy snmpsim snmpsim -socketIO_client python-socketio-client -socketpool python-socketpool -sockjs_tornado python-sockjs-tornado -sorl_thumbnail python-sorl-thumbnail soundgrain soundgrain -sourcecodegen python-sourcecodegen spambayes spambayes -speaklater python-speaklater -spectacle spectacle specto specto -speedtest_cli speedtest-cli -sphere python-sphere -sphinx_paramlinks python-sphinx-paramlinks -sphinx_rtd_theme python-sphinx-rtd-theme -sphinx_testing python-sphinx-testing sphinxcontrib_actdiag python-sphinxcontrib.actdiag sphinxcontrib_blockdiag python-sphinxcontrib.blockdiag -sphinxcontrib_docbookrestapi python-sphinxcontrib.docbookrestapi -sphinxcontrib_httpdomain python-sphinxcontrib.httpdomain -sphinxcontrib_issuetracker python-sphinxcontrib.issuetracker sphinxcontrib_nwdiag python-sphinxcontrib.nwdiag -sphinxcontrib_pecanwsme python-sphinxcontrib-pecanwsme sphinxcontrib_phpdomain python-sphinxcontrib.phpdomain -sphinxcontrib_plantuml python-sphinxcontrib.plantuml -sphinxcontrib_programoutput python-sphinxcontrib.programoutput sphinxcontrib_seqdiag python-sphinxcontrib.seqdiag -sphinxcontrib_spelling python-sphinxcontrib.spelling -sphinxcontrib_youtube python-sphinxcontrib.youtube -springpython python-springpython -sprox python-sprox -sptest python-sptest spyder python-spyderlib -spykeutils python-spykeutils spykeviewer spykeviewer -spyne python-spyne sqlalchemy_migrate python-migrate -sqlkit python-sqlkit -sqlparse python-sqlparse -sqlsoup python-sqlsoup -srp python-srp -ssdeep python-ssdeep ssh_import_id ssh-import-id -stackapplet stackapplet -starpy python-starpy -statsd python-statsd -statsmodels python-statsmodels -stdeb python-stdeb -steadymark python-steadymark -stem python-stem -stepic python-stepic -stevedore python-stevedore -stgit stgit -stomper python-stomper -storm python-storm -stsci.distutils python-stsci.distutils -subliminal python-subliminal -subvertpy python-subvertpy -suds python-suds summain summain -sunlight python-sunlight supervisor supervisor -sure python-sure suricatasc suricata svnmailer svnmailer -swift python-swift swift3 swift-plugin-s3 -swiftsc python-swiftsc -sympy python-sympy synaptiks kde-config-touchpad system_storage_manager system-storage-manager -sysv_ipc python-sysv-ipc -tables python-tables -tablib python-tablib -tagpy python-tagpy targetcli targetcli -taskflow python-taskflow -taurus python-taurus -tblib python-tblib tcm lio-utils tcosconfig tcosconfig -templayer python-templayer -termcolor python-termcolor -testrepository python-testrepository -testresources python-testresources -testscenarios python-testscenarios -testtools python-testtools -textile python-textile -texttable python-texttable -tftpy python-tftpy -tg.devtools python-tg.devtools -tgext.admin python-tgext.admin -tgext.crud python-tgext.admin -thrift python-thrift tilelite tilelite -tkSnack python-tksnack -tnetstring python-tnetstring -tomahawk python-tomahawk -tooz python-tooz -topia.termextract python-topia.termextract -toposort python-toposort -tornado python-tornado tortoisehg tortoisehg totalopenstation totalopenstation -tracing python-tracing -traits python-traits -traitsui python-traitsui -transaction python-transaction transifex_client transifex-client translate_toolkit translate-toolkit -translationstring python-translationstring -translitcodec python-translitcodec -transmissionrpc python-transmissionrpc trash_cli trash-cli -tripleo_heat_templates python-tripleo-heat-templates -tripleo_image_elements python-tripleo-image-elements -trollius python-trollius -trove python-trove tryton tryton-client trytond tryton-server trytond_account tryton-modules-account -trytond_account_asset tryton-modules-account-asset trytond_account_be tryton-modules-account-be -trytond_account_credit_limit tryton-modules-account-credit-limit trytond_account_de_skr03 tryton-modules-account-de-skr03 -trytond_account_dunning tryton-modules-account-dunning -trytond_account_dunning_letter tryton-modules-account-dunning-letter -trytond_account_fr tryton-modules-account-fr trytond_account_invoice tryton-modules-account-invoice trytond_account_invoice_history tryton-modules-account-invoice-history trytond_account_invoice_line_standalone tryton-modules-account-invoice-line-standalone -trytond_account_invoice_stock tryton-modules-account-invoice-stock -trytond_account_payment tryton-modules-account-payment -trytond_account_payment_sepa tryton-modules-account-payment-sepa trytond_account_product tryton-modules-account-product trytond_account_statement tryton-modules-account-statement -trytond_account_stock_anglo_saxon tryton-modules-account-stock-anglo-saxon -trytond_account_stock_continental tryton-modules-account-stock-continental trytond_analytic_account tryton-modules-analytic-account trytond_analytic_invoice tryton-modules-analytic-invoice trytond_analytic_purchase tryton-modules-analytic-purchase trytond_analytic_sale tryton-modules-analytic-sale -trytond_bank tryton-modules-bank trytond_calendar tryton-modules-calendar trytond_calendar_classification tryton-modules-calendar-classification trytond_calendar_scheduling tryton-modules-calendar-scheduling trytond_calendar_todo tryton-modules-calendar-todo -trytond_carrier tryton-modules-carrier -trytond_carrier_percentage tryton-modules-carrier-percentage -trytond_carrier_weight tryton-modules-carrier-weight trytond_company tryton-modules-company trytond_company_work_time tryton-modules-company-work-time trytond_country tryton-modules-country @@ -1711,186 +490,66 @@ trytond_dashboard tryton-modules-dashboard trytond_google_maps tryton-modules-google-maps trytond_ldap_authentication tryton-modules-ldap-authentication +trytond_ldap_connection tryton-modules-ldap-connection trytond_party tryton-modules-party -trytond_party_relationship tryton-modules-party-relationship trytond_party_siret tryton-modules-party-siret trytond_party_vcarddav tryton-modules-party-vcarddav trytond_product tryton-modules-product -trytond_product_attribute tryton-modules-product-attribute trytond_product_cost_fifo tryton-modules-product-cost-fifo trytond_product_cost_history tryton-modules-product-cost-history -trytond_product_measurements tryton-modules-product-measurements trytond_product_price_list tryton-modules-product-price-list -trytond_production tryton-modules-production trytond_project tryton-modules-project -trytond_project_invoice tryton-modules-project-invoice trytond_project_plan tryton-modules-project-plan trytond_project_revenue tryton-modules-project-revenue trytond_purchase tryton-modules-purchase trytond_purchase_invoice_line_standalone tryton-modules-purchase-invoice-line-standalone -trytond_purchase_shipment_cost tryton-modules-purchase-shipment-cost trytond_sale tryton-modules-sale -trytond_sale_credit_limit tryton-modules-sale-credit-limit -trytond_sale_invoice_grouping tryton-modules-sale-invoice-grouping trytond_sale_opportunity tryton-modules-sale-opportunity trytond_sale_price_list tryton-modules-sale-price-list -trytond_sale_shipment_cost tryton-modules-sale-shipment-cost -trytond_sale_shipment_grouping tryton-modules-sale-shipment-grouping -trytond_sale_supply tryton-modules-sale-supply -trytond_sale_supply_drop_shipment tryton-modules-sale-supply-drop-shipment trytond_stock tryton-modules-stock trytond_stock_forecast tryton-modules-stock-forecast trytond_stock_inventory_location tryton-modules-stock-inventory-location trytond_stock_location_sequence tryton-modules-stock-location-sequence trytond_stock_lot tryton-modules-stock-lot -trytond_stock_package tryton-modules-stock-package trytond_stock_product_location tryton-modules-stock-product-location -trytond_stock_split tryton-modules-stock-split trytond_stock_supply tryton-modules-stock-supply trytond_stock_supply_day tryton-modules-stock-supply-day -trytond_stock_supply_forecast tryton-modules-stock-supply-forecast -trytond_stock_supply_production tryton-modules-stock-supply-production trytond_timesheet tryton-modules-timesheet -trytond_timesheet_cost tryton-modules-timesheet-cost ttb ttb -ttystatus python-ttystatus turpial turpial turses turses -tuskar python-tuskar -tuskar_ui python-tuskar-ui -tw.forms python-toscawidgets -tweepy python-tweepy -twill python-twill -twython python-twython -txAWS python-txaws -txLibravatar python-txlibravatar -txWS python-txws -txZMQ python-txzmq -txosc python-txosc -txsocksx python-txsocksx -txtorcon python-txtorcon -txzookeeper python-txzookeeper -typogrify python-typogrify -u1db python-u1db -uTidylib python-utidylib +typecatcher typecatcher ubuntu_dev_tools ubuntu-dev-tools -ucltip python-ucltip udev_discover udev-discover -ufw python-ufw -uncertainties python-uncertainties -unicodecsv python-unicodecsv unittest_xml_reporting python-xmlrunner -uritemplate python-uritemplate -urllib3 python-urllib3 urlscan urlscan -urwid python-urwid -urwid_satext python-urwid-satext -validictory python-validictory vamos undertaker -van.pydeb python-van.pydeb -vatnumber python-vatnumber -vcversioner python-vcversioner -venusian python-venusian -versiontools python-versiontools -versuchung python-versuchung -viper python-viper virtaal virtaal virtualbricks virtualbricks -virtualenv python-virtualenv virtualenv_clone virtualenv-clone virtualenvwrapper virtualenvwrapper -visionegg python-visionegg volatility volatility -voluptuous python-voluptuous -vsgui python-vsgui -w3lib python-w3lib -wadllib python-wadllib -waitress python-waitress wammu wammu -wapiti wapiti -warlock python-warlock -watchdog python-watchdog web.py python-webpy -webassets python-webassets -webcolors python-webcolors -weboob python-weboob +weboob python-weboob-core websocket_client python-websocket websockify websockify -whatmaps whatmaps -wheel python-wheel -whisper python-whisper -whois python-whois whyteboard whyteboard -wicd python-wicd wikipediafs wikipediafs winpdb winpdb -wit python-wit -withsqlite python-withsqlite -wokkel python-wokkel -wrapt python-wrapt -ws4py python-ws4py -wsgi_intercept python-wsgi-intercept -wsgilog python-wsgilog -wstools python-wstools -wxGlade python-wxglade wxPython_common python-wxgtk2.8 -wxmpl python-wxmpl -x2go python-x2go +wxgeometrie wxgeometrie xapers xapers -xappy python-xappy -xattr python-xattr -xdo python-xdo xdot xdot -xe python-xe xgflib xgridfit -xlrd python-xlrd -xlwt python-xlwt xmds2 xmds2 xml_marshaller python-xmlmarshaller -xmltodict python-xmltodict -xmms2tray xmms2tray -xpra xpra -xtermcolor python-xtermcolor -xvfbwrapper python-xvfbwrapper -xxdiff_scripts xxdiff-scripts -yaql python-yaql +xpra_all xpra yara_python python-yara -yenc python-yenc yokadi yokadi youtube_dl youtube-dl yum_metadata_parser python-sqlitecachec -zake python-zake -zc.buildout python-zc.buildout -zc.lockfile python-zc.lockfile -zdaemon python-zdaemon zeitgeist_explorer zeitgeist-explorer zenmap zenmap -zfec python-zfec +zeroinstall_injector zeroinstall-injector zim zim -zinnia_python python-zinnia -zope.authentication python-zope.authentication -zope.browser python-zope.browser -zope.cachedescriptors python-zope.cachedescriptors -zope.component python-zope.component -zope.configuration python-zope.configuration -zope.contenttype python-zope.contenttype -zope.copy python-zope.copy -zope.deprecation python-zope.deprecation -zope.dottedname python-zope.dottedname -zope.event python-zope.event -zope.exceptions python-zope.exceptions -zope.hookable python-zope.hookable -zope.i18n python-zope.i18n -zope.i18nmessageid python-zope.i18nmessageid -zope.interface python-zope.interface -zope.location python-zope.location -zope.proxy python-zope.proxy -zope.publisher python-zope.publisher -zope.schema python-zope.schema -zope.security python-zope.security -zope.sendmail python-zope.sendmail -zope.sqlalchemy python-zope.sqlalchemy -zope.testbrowser python-zope.testbrowser -zope.testing python-zope.testing -zope.testrunner python-zope.testrunner -zope.traversing python-zope.traversing diff -Nru dh-python-1.20141111/pydist/cpython3_fallback dh-python-1.20140128/pydist/cpython3_fallback --- dh-python-1.20141111/pydist/cpython3_fallback 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/pydist/cpython3_fallback 2014-01-28 17:20:25.000000000 +0000 @@ -1,679 +1,65 @@ setuptools python3-pkg-resources -argparse python3 (>= 3.2) Attic attic -Babel python3-babel -Beaker python3-beaker -Brlapi python3-brlapi CDApplet cairo-dock-dbus-plug-in-interface-python CDBashApplet cairo-dock-dbus-plug-in-interface-python -CairoSVG python3-cairosvg -Cerealizer python3-cerealizer -Chameleon python3-chameleon CherryPy python3-cherrypy3 -Coffin python3-coffin Cython cython3 -Django python3-django -EbookLib python3-ebooklib -ExifRead python3-exif -Fastaq fastaq -Flask python3-flask -Flask_OpenID python3-flask-openid -Flask_Principal python3-flask-principal -Flask_SQLAlchemy python3-flask-sqlalchemy -Flask_Script python3-flask-script -GDAL python3-gdal -Genshi python3-genshi -GeoIP python3-geoip -Glances glances -IPy python3-ipy -Jinja2 python3-jinja2 -Kajiki python3-kajiki -Kivy python3-kivy Kyoto_Cabinet python3-kyotocabinet -LEPL python3-lepl -LibAppArmor python3-libapparmor -Logbook python3-logbook Magic_file_extensions python3-magic -Mako python3-mako -Markdown python3-markdown -MarkupSafe python3-markupsafe -Markups python3-markups -Nautilus_scripts_manager nautilus-scripts-manager -Paste python3-paste -PasteDeploy python3-pastedeploy Pillow python3-pil -Pint python3-pint -Plinth plinth -PyAVM python3-pyavm -PyAudio python3-pyaudio PyHamcrest python3-hamcrest PyICU python3-icu -PyJWT python3-jwt -PyKCS11 python3-pykcs11 -PyLD python3-pyld PyOpenGL python3-opengl -PyPDF2 python3-pypdf2 -PyRSS2Gen python3-pyrss2gen -PySocks python3-pysocks PyStemmer python3-stemmer -PyTango python3-pytango -PyX python3-pyx -PyXB python3-pyxb PyYAML python3-yaml -Pygments python3-pygments -Pykka python3-pykka -Pyro4 python3-pyro4 -Pysolar python3-pysolar -Python_fontconfig python3-fontconfig -Routes python3-routes -SPARQLWrapper python3-sparqlwrapper -SQLAlchemy python3-sqlalchemy -SecretStorage python3-secretstorage -Shapely python3-shapely -SimPy python3-simpy -SocksiPy_branch python3-socksipy -SoftLayer python3-softlayer -Sphinx python3-sphinx -Tempita python3-tempita -TornadIO2 python3-tornadio2 -URLObject python3-urlobject -Unidecode python3-unidecode -WSME python3-wsme -Wand python3-wand -WebOb python3-webob -WebTest python3-webtest -Werkzeug python3-werkzeug -Whoosh python3-whoosh -XStatic python3-xstatic -XStatic_Angular python3-xstatic-angular -XStatic_Angular_Cookies python3-xstatic-angular-cookies -XStatic_Angular_Mock python3-xstatic-angular-mock -XStatic_Bootstrap_Datepicker python3-xstatic-bootstrap-datepicker -XStatic_Bootstrap_SCSS python3-xstatic-bootstrap-scss -XStatic_D3 python3-xstatic-d3 -XStatic_Font_Awesome python3-xstatic-font-awesome -XStatic_Hogan python3-xstatic-hogan -XStatic_JQuery.Bootstrap.Wizard python3-xstatic-jquery.bootstrap.wizard -XStatic_JQuery.TableSorter python3-xstatic-jquery.tablesorter -XStatic_JQuery.quicksearch python3-xstatic-jquery.quicksearch -XStatic_JQuery_Migrate python3-xstatic-jquery-migrate -XStatic_JSEncrypt python3-xstatic-jsencrypt -XStatic_Jasmine python3-xstatic-jasmine -XStatic_QUnit python3-xstatic-qunit -XStatic_Rickshaw python3-xstatic-rickshaw -XStatic_Spin python3-xstatic-spin -XStatic_jQuery python3-xstatic-jquery -XStatic_jquery_ui python3-xstatic-jquery-ui -XlsxWriter python3-xlsxwriter -Yapsy python3-yapsy -_lxc lxc -actdiag python3-actdiag -admesh python3-admesh -aeidon python3-aeidon -affine python3-affine -alabaster python3-alabaster -alembic python3-alembic -amqp python3-amqp -amqplib python3-amqplib -aniso8601 python3-aniso8601 -anyjson python3-anyjson -apache_libcloud python3-libcloud -apparmor python3-apparmor -appdirs python3-appdirs -apsw python3-apsw -apt_venv apt-venv -argcomplete python3-argcomplete -args python3-args -arpy python3-arpy -arrow python3-arrow -asciinema asciinema -astor python3-astor -astroid python3-astroid -astropy python3-astropy -astropy_helpers python3-astropy-helpers -audioread python3-audioread -authres python3-authres -babelfish python3-babelfish -backup2swift python3-backup2swift -bashate python3-bashate -bcdoc python3-bcdoc beautifulsoup4 python3-bs4 -billiard python3-billiard -binaryornot python3-binaryornot -biopython python3-biopython -bitarray python3-bitarray -bleach python3-bleach -blinker python3-blinker -blist python3-blist -blockdiag python3-blockdiag -boto python3-boto -botocore python3-botocore -bottle python3-bottle bpython bpython3 -braintree python3-braintree -breathe python3-breathe brebis brebis -bsddb3 python3-bsddb3 -cairocffi python3-cairocffi -cdo python3-cdo -celery python3-celery -cffi python3-cffi -changelog python3-changelog -characteristic python3-characteristic -chardet python3-chardet -checkbox_ng python3-checkbox-ng -checkbox_support python3-checkbox-support -cigi python3-cigi -circuits python3-circuits -click python3-click -cliff python3-cliff -clint python3-clint -cloud_sptheme python3-cloud-sptheme -cmd2 python3-cmd2 -colander python3-colander -colorama python3-colorama -colorlog python3-colorlog -configobj python3-configobj -construct python3-construct -cookiecutter python3-cookiecutter -cov_core python3-cov-core -coverage python3-coverage -cracklib python3-cracklib -crcmod python3-crcmod -croniter python3-croniter -cryptography python3-cryptography -cryptography_vectors python3-cryptography-vectors -cs python3-cs -csb python3-csb -cssselect python3-cssselect -cssutils python3-cssutils -d2to1 python3-d2to1 -deap python3-deap -debdry debdry debmake debmake -debtagshw python3-debtagshw -decorator python3-decorator -defer python3-defer -defusedxml python3-defusedxml -demjson python3-demjson devscripts devscripts -dexml python3-dexml -dib_utils python3-dib-utils -diff_match_patch python3-diff-match-patch -dirspec python3-dirspec -distro_info python3-distro-info -django_ajax_selects python3-ajax-select -django_appconf python3-appconf -django_assets python3-django-assets -django_bootstrap_form python3-bootstrapform -django_celery python3-django-celery -django_classy_tags python3-django-classy-tags -django_countries python3-django-countries -django_debug_toolbar python3-django-debug-toolbar -django_discover_runner python3-django-discover-runner -django_filter python3-django-filters -django_floppyforms python3-django-floppyforms -django_guardian python3-django-guardian -django_jsonfield python3-django-jsonfield -django_markupfield python3-django-markupfield -django_model_utils python3-django-model-utils -django_nose python3-django-nose -django_picklefield python3-django-picklefield -django_pipeline python3-django-pipeline -django_polymorphic python3-django-polymorphic -django_ratelimit python3-django-ratelimit -django_reversion python3-django-reversion -django_sekizai python3-django-sekizai -django_shortuuidfield python3-django-shortuuidfield -django_simple_captcha python3-django-captcha -django_sitetree python3-django-sitetree -django_sortedm2m python3-sortedm2m -django_tables2 python3-django-tables2 -django_tastypie python3-django-tastypie -django_xmlrpc python3-django-xmlrpc -djangorestframework python3-djangorestframework -djvubind djvubind dkimpy python3-dkim dnspython3 python3-dnspython -dnsq python3-dnsq -docker_py python3-docker -docopt python3-docopt -docutils python3-docutils -dogpile.cache python3-dogpile.cache -dogpile.core python3-dogpile.core -doit python3-doit -doublex python3-doublex -drslib python3-drslib -dugong python3-dugong -easygui python3-easygui -ecdsa python3-ecdsa -elasticsearch python3-elasticsearch -empy python3-empy -enum34 python3-enum34 -enzyme python3-enzyme -expiringdict python3-expiringdict -extras python3-extras -factory_boy python3-factory-boy -fail2ban fail2ban -falcon python3-falcon -fdb python3-fdb -feedparser python3-feedparser -first python3-first -fiu python3-fiu -fixtures python3-fixtures -flake8 python3-flake8 -flexmock python3-flexmock -flufl.bounce python3-flufl.bounce -flufl.enum python3-flufl.enum -flufl.i18n python3-flufl.i18n -flufl.lock python3-flufl.lock -flufl.password python3-flufl.password -freezegun python3-freezegun -fudge python3-fudge -funcparserlib python3-funcparserlib -fysom python3-fysom -geopy python3-geopy -germinate python3-germinate -gmpy2 python3-gmpy2 -google_api_python_client python3-googleapi -google_apputils python3-google-apputils -googlecloudapis python3-googlecloudapis -gramps gramps -greenio python3-greenio -greenlet python3-greenlet -gsw python3-gsw gtimelog gtimelog -guessit python3-guessit -gvb gvb -h5py python3-h5py -hacking python3-hacking -healpy python3-healpy -hplefthandclient python3-hplefthandclient -html2text python3-html2text -html5lib python3-html5lib -httplib2 python3-httplib2 -httpretty python3-httpretty -hunspell python3-hunspell -hurry.filesize python3-hurry.filesize -hy python3-hy -iapws python3-iapws -icalendar python3-icalendar -influxdb python3-influxdb -iowait python3-iowait -ipdb python3-ipdb ipython ipython3 -iso8601 python3-iso8601 -isodate python3-isodate -isort python3-isort -itsdangerous python3-itsdangerous -jedi python3-jedi -jingo python3-jingo -jmespath python3-jmespath -joblib python3-joblib -jsmin python3-jsmin -jsonpatch python3-jsonpatch -jsonpath_rw python3-jsonpath-rw -jsonpickle python3-jsonpickle jsonpointer python3-json-pointer -jsonschema python3-jsonschema -junitxml python3-junitxml kazam kazam -kazoo python3-kazoo -kdtree python3-kdtree -keyring python3-keyring -kombu python3-kombu -lazr.config python3-lazr.config -lazr.delegates python3-lazr.delegates -lazr.smtptest python3-lazr.smtptest -lazr.uri python3-lazr.uri -lesscpy python3-lesscpy -leveldb python3-leveldb -libvirt_python python3-libvirt -linop python3-linop -livereload python3-livereload -livestreamer python3-livestreamer -llfuse python3-llfuse -lmfit python3-lmfit -logging_tree python3-logging-tree -logilab_astng python3-logilab-astng -logilab_common python3-logilab-common -logutils python3-logutils -louis python3-louis -lxml python3-lxml -magcode_core python3-magcode-core -marisa python3-marisa -matplotlib python3-matplotlib -mccabe python3-mccabe -memory_profiler python3-memory-profiler -memprof python3-memprof menulibre menulibre -metaconfig python3-metaconfig -misaka python3-misaka -mock python3-mock -mockito python3-mockito -mockldap python3-mockldap -mox3 python3-mox3 -mpi4py python3-mpi4py -mpld3 python3-mpld3 -mplexporter python3-mplexporter -mpmath python3-mpmath msgpack_python python3-msgpack -mugshot mugshot -multicorn python3-multicorn -multipletau python3-multipletau -munkres python3-munkres -musicbrainzngs python3-musicbrainzngs -mutagen python3-mutagen -mysql_connector_python python3-mysql.connector -nagiosplugin python3-nagiosplugin -natsort python3-natsort -nbxmpp python3-nbxmpp -netaddr python3-netaddr -netifaces python3-netifaces -networkx python3-networkx -nine python3-nine -nltk python3-nltk -nose python3-nose -nose2 python3-nose2 -nose2_cov python3-nose2-cov -nose_exclude python3-nose-exclude -nose_parameterized python3-nose-parameterized -nose_timer python3-nose-timer -notify2 python3-notify2 -notmuch python3-notmuch -npm2deb npm2deb -numexpr python3-numexpr -numpy python3-numpy -nwdiag python3-nwdiag -oauth python3-oauth -oauth2client python3-oauth2client -oauthlib python3-oauthlib -objgraph python3-objgraph -odf python3-odf -odfpy python3-odf -ofxparse python3-ofxparse -openslide_python python3-openslide -openstack.nose_plugin python3-openstack.nose-plugin -oslo.config python3-oslo.config -oslo.i18n python3-oslo.i18n -oslo.rootwrap python3-oslo.rootwrap -oslo.utils python3-oslo.utils -oslotest python3-oslotest -osprofiler python3-osprofiler -pandas python3-pandas -pandocfilters python3-pandocfilters -paramiko python3-paramiko -passlib python3-passlib -patsy python3-patsy -pbkdf2 python3-pbkdf2 -pbr python3-pbr -pecan python3-pecan -pep8 python3-pep8 -persistent python3-persistent -pexpect python3-pexpect -pgpdump python3-pgpdump -pies python3-pies -pip python3-pip -pkgconfig python3-pkgconfig -pkginfo python3-pkginfo -plainbox python3-plainbox -plotly python3-plotly -plumbum python3-plumbum -ply python3-ply -polib python3-polib -portalocker python3-portalocker -posix_ipc python3-posix-ipc -power python3-power -pretend python3-pretend -prettytable python3-prettytable -proboscis python3-proboscis -progressbar python3-progressbar -protorpc_standalone python3-protorpc-standalone -psutil python3-psutil -psycopg2 python3-psycopg2 -pudb python3-pudb -py python3-py py3dns python3-dns -pyClamd python3-pyclamd -pyFFTW python3-pyfftw pyLibravatar python3-libravatar -pyNFFT python3-pynfft pyOpenSSL python3-openssl pySFML python3-sfml -pyScss python3-pyscss py_bcrypt python3-bcrypt py_postgresql python3-postgresql -pyacoustid python3-acoustid -pyapi_gitlab python3-gitlab -pyasn1 python3-pyasn1 -pyasn1_modules python3-pyasn1-modules -pycountry python3-pycountry -pycparser python3-pycparser pycrypto python3-crypto -pycurl python3-pycurl -pydot python3-pydot -pyelliptic python3-pyelliptic pyenchant python3-enchant pyepr python3-epr -pyfiglet python3-pyfiglet -pyfits python3-pyfits pyflakes pyflakes pygobject python3-gi -pygpgme python3-gpgme pygrib python3-grib pygtkspellcheck python3-gtkspellcheck -pyinotify python3-pyinotify -pykerberos python3-kerberos -pylast python3-pylast -pylibacl python3-pylibacl pyliblo python3-liblo -pymemcache python3-pymemcache pymia python3-mia -pyopencl python3-pyopencl -pyoperators python3-pyoperators -pyparsing python3-pyparsing -pyparted python3-parted pypolicyd_spf postfix-policyd-spf-python pyppd pyppd -pyproj python3-pyproj -pyqtgraph python3-pyqtgraph -pyramid python3-pyramid pysane python3-sane pyserial python3-serial -pyshp python3-pyshp pysnmp python3-pysnmp4 pyspf python3-spf -pysrt python3-pysrt -pystache python3-pystache pysubnettree python3-subnettree pytaglib python3-taglib -pyte python3-pyte -pytest python3-pytest -pytest_cov python3-pytest-cov -pytest_instafail python3-pytest-instafail -python3_ldap python3-ldap3 python3_libgearman python3-gearman.libgearman -python3_openid python3-openid -python_Levenshtein python3-levenshtein -python_aalib python3-aalib -python_apt python3-apt -python_crontab python3-crontab -python_dateutil python3-dateutil -python_dbusmock python3-dbusmock -python_debian python3-debian -python_distutils_extra python3-distutils-extra -python_djvulibre python3-djvu -python_dvdvideo python3-dvdvideo -python_espeak python3-espeak -python_gflags python3-gflags -python_gnupg python3-gnupg python_graph_core python3-pygraph python_graph_dot python3-pygraph -python_libdiscid python3-libdiscid -python_libguess python3-libguess -python_libtorrent python3-libtorrent -python_memcached python3-memcache -python_mimeparse python3-mimeparse -python_musicpd python3-musicpd -python_nmap python3-nmap -python_potr python3-potr -python_social_auth python3-social-auth -python_sql python3-sql -python_stdnum python3-stdnum -python_subunit python3-subunit -python_svipc python3-svipc -python_termstyle python3-termstyle -python_tldap python3-tldap -python_xmp_toolkit python3-libxmp -pythondialog python3-dialog -pytils python3-pytils -pytools python3-pytools pytz python3-tz -pyudev python3-pyudev -pyviennacl python3-pyviennacl -pyvmomi python3-pyvmomi -pywapi python3-pywapi -pyxattr python3-pyxattr pyxdg python3-xdg pyzmq python3-zmq -queuelib python3-queuelib -rarfile python3-rarfile -rdflib python3-rdflib -redis python3-redis -rednose python3-rednose -regex python3-regex -releases python3-releases -reportlab python3-reportlab -repoze.lru python3-repoze.lru -repoze.tm2 python3-repoze.tm2 -requests python3-requests requests_aws python3-awsauth -requests_kerberos python3-requests-kerberos -requests_mock python3-requests-mock -requests_oauthlib python3-requests-oauthlib -responses python3-responses -retrying python3-retrying -rfc3986 python3-rfc3986 rhythmbox_ampache rhythmbox-ampache -roman python3-roman -rply python3-rply -rsa python3-rsa -rss2email rss2email -rtslib_fb python3-rtslib-fb -schroot python3-schroot scikit_image python3-skimage -scipy python3-scipy -scripttest python3-scripttest -seaborn python3-seaborn -semver python3-semver -seqdiag python3-seqdiag -service_identity python3-service-identity -setproctitle python3-setproctitle -setuptools_git python3-setuptools-git -sh python3-sh shatag shatag -shortuuid python3-shortuuid -simplegeneric python3-simplegeneric -simplejson python3-simplejson -sireader python3-sireader -six python3-six -sleekxmpp python3-sleekxmpp -slimmer python3-slimmer -smartypants python3-smartypants -smstrade python3-smstrade -sockjs_tornado python3-sockjs-tornado -sphere python3-sphere -sphinx_paramlinks python3-sphinx-paramlinks -sphinx_rtd_theme python3-sphinx-rtd-theme -sphinx_testing python3-sphinx-testing -sphinxcontrib_actdiag python3-sphinxcontrib.actdiag -sphinxcontrib_blockdiag python3-sphinxcontrib.blockdiag -sphinxcontrib_httpdomain python3-sphinxcontrib.httpdomain -sphinxcontrib_nwdiag python3-sphinxcontrib.nwdiag -sphinxcontrib_plantuml python3-sphinxcontrib.plantuml -sphinxcontrib_programoutput python3-sphinxcontrib.programoutput -sphinxcontrib_seqdiag python3-sphinxcontrib.seqdiag -sphinxcontrib_spelling python3-sphinxcontrib.spelling -sphinxcontrib_youtube python3-sphinxcontrib.youtube -spyder python3-spyderlib -sqlparse python3-sqlparse -srp python3-srp -ssdeep python3-ssdeep -stdeb python3-stdeb -stem python3-stem -stevedore python3-stevedore -stsci.distutils python3-stsci.distutils -subliminal python3-subliminal -sunlight python3-sunlight -sure python3-sure -swiftsc python3-swiftsc -sysv_ipc python3-sysv-ipc -tables python3-tables -tblib python3-tblib -termcolor python3-termcolor -testrepository python3-testrepository -testresources python3-testresources -testscenarios python3-testscenarios -testtools python3-testtools -tomahawk python3-tomahawk -tooz python3-tooz -toposort python3-toposort -tornado python3-tornado -tox python-tox -transaction python3-transaction -translationstring python3-translationstring -transmissionrpc python3-transmissionrpc -trollius python3-trollius -twine twine -twython python3-twython -typecatcher typecatcher -typogrify python3-typogrify ufw ufw unattended_upgrades unattended-upgrades -uncertainties python3-uncertainties -uritemplate python3-uritemplate -urllib3 python3-urllib3 -urwid python3-urwid uucp_lmtp uucp-lmtp -validictory python3-validictory -vatnumber python3-vatnumber -vcversioner python3-vcversioner -venusian python3-venusian -versiontools python3-versiontools -virtualenv python3-virtualenv -voluptuous python3-voluptuous -w3lib python3-w3lib -wadllib python3-wadllib -waitress python3-waitress -warlock python3-warlock -webassets python3-webassets -webcolors python3-webcolors -websocket_client python3-websocket -wheel python3-wheel -whois python3-whois -wrapt python3-wrapt -ws4py python3-ws4py -wsgi_intercept python3-wsgi-intercept -xlrd python3-xlrd -xtermcolor python3-xtermcolor -xvfbwrapper python3-xvfbwrapper -yaql python3-yaql yara_python python3-yara -zake python3-zake -zope.browser python3-zope.browser -zope.component python3-zope.component -zope.configuration python3-zope.configuration -zope.contenttype python3-zope.contenttype -zope.deprecation python3-zope.deprecation -zope.event python3-zope.event -zope.exceptions python3-zope.exceptions -zope.fixers python3-zope.fixers -zope.hookable python3-zope.hookable -zope.i18nmessageid python3-zope.i18nmessageid -zope.interface python3-zope.interface -zope.location python3-zope.location -zope.proxy python3-zope.proxy -zope.schema python3-zope.schema -zope.security python3-zope.security -zope.testing python3-zope.testing -zope.testrunner python3-zope.testrunner +zeroinstall_injector zeroinstall-injector diff -Nru dh-python-1.20141111/pydist/generate_fallback_list.py dh-python-1.20140128/pydist/generate_fallback_list.py --- dh-python-1.20141111/pydist/generate_fallback_list.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/pydist/generate_fallback_list.py 2014-01-28 17:20:25.000000000 +0000 @@ -37,8 +37,7 @@ # not recognized due to .pth file (egg-info is in PIL/ and not in *-packages/) 'pil python-imaging\n'], 'cpython3': [ - 'setuptools python3-pkg-resources\n', - 'argparse python3 (>= 3.2)\n'], + 'setuptools python3-pkg-resources\n'], 'pypy': [] } diff -Nru dh-python-1.20141111/pydist/Makefile dh-python-1.20140128/pydist/Makefile --- dh-python-1.20141111/pydist/Makefile 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/pydist/Makefile 2014-01-28 17:20:25.000000000 +0000 @@ -6,7 +6,7 @@ rm -f README.PyDist.html dist_fallback: - python3 ./generate_fallback_list.py + python3 ./generate_fallback_list.py --skip-sensible-names README.PyDist.html: README.PyDist rst2html $< $@ diff -Nru dh-python-1.20141111/pydist/pypy_fallback dh-python-1.20140128/pydist/pypy_fallback --- dh-python-1.20141111/pydist/pypy_fallback 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/pydist/pypy_fallback 2014-01-28 17:20:25.000000000 +0000 @@ -1,9 +1,2 @@ -Unidecode pypy-unidecode -Wand pypy-wand beautifulsoup4 pypy-bs4 -mutagen pypy-mutagen -pretend pypy-pretend pyzmq pypy-zmq -rply pypy-rply -simplejson pypy-simplejson -sqlparse pypy-sqlparse diff -Nru dh-python-1.20141111/tests/Makefile dh-python-1.20140128/tests/Makefile --- dh-python-1.20141111/tests/Makefile 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/tests/Makefile 2014-01-28 17:20:25.000000000 +0000 @@ -4,8 +4,8 @@ # Note that all these packages have to be installed during tests export DEBPYTHON_DEFAULT=2.7 export DEBPYTHON_SUPPORTED=2.6,2.7 -export DEBPYTHON3_DEFAULT=3.4 -export DEBPYTHON3_SUPPORTED=3.4 +export DEBPYTHON3_DEFAULT=3.3 +export DEBPYTHON3_SUPPORTED=3.2,3.3 # enable or disable tests here: TESTS := test101 test201 test202 test203 test204 test205 test206 test207 test301 test302 test303 test304 diff -Nru dh-python-1.20141111/tests/t202/Makefile dh-python-1.20140128/tests/t202/Makefile --- dh-python-1.20141111/tests/t202/Makefile 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/tests/t202/Makefile 2014-01-28 17:20:25.000000000 +0000 @@ -4,7 +4,7 @@ clean: clean-common check: - test -f debian/python-foo/usr/lib/python2.7/dist-packages/foo.py - test -f debian/python-foo/usr/lib/python2.7/dist-packages/bar/bar.py + test -f debian/python-foo/usr/lib/python2.6/dist-packages/foo.py + test -f debian/python-foo/usr/lib/python2.6/dist-packages/bar/bar.py grep -q pycompile debian/python-foo/DEBIAN/postinst grep -q pyclean debian/python-foo/DEBIAN/prerm diff -Nru dh-python-1.20141111/tests/t204/Makefile dh-python-1.20140128/tests/t204/Makefile --- dh-python-1.20141111/tests/t204/Makefile 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/tests/t204/Makefile 2014-01-28 17:20:25.000000000 +0000 @@ -5,7 +5,7 @@ check: grep -q python2.6 debian/foo/usr/share/foo/foo.py - grep -q Depends:.*python debian/foo/DEBIAN/control + grep -q Depends:.*python2.6 debian/foo/DEBIAN/control #grep -q python2.5 debian/foo/usr/share/bar/bar.py #grep -q Depends:.*python2.5 debian/foo/DEBIAN/control grep -q python2.4 debian/foo/usr/share/foo/baz.py diff -Nru dh-python-1.20141111/tests/t206/Makefile dh-python-1.20140128/tests/t206/Makefile --- dh-python-1.20141111/tests/t206/Makefile 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/tests/t206/Makefile 2014-01-28 17:20:25.000000000 +0000 @@ -13,6 +13,6 @@ grep -q '\-V 2.5 /usr/share/bar25' debian/foo/usr/share/python/runtime.d/foo.rtupdate grep -q '/usr/share/bar25 \-V 2.5' debian/foo/DEBIAN/postinst # python2.6 hardcoded via shebang - #grep -q Depends:.*python2.6 debian/foo/DEBIAN/control + grep -q Depends:.*python2.6 debian/foo/DEBIAN/control grep -q '\-V 2.6 /usr/share/foo' debian/foo/usr/share/python/runtime.d/foo.rtupdate grep -q '/usr/share/foo \-V 2.6' debian/foo/DEBIAN/postinst diff -Nru dh-python-1.20141111/tests/t304/foo.py dh-python-1.20140128/tests/t304/foo.py --- dh-python-1.20141111/tests/t304/foo.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/tests/t304/foo.py 2014-01-28 17:20:25.000000000 +0000 @@ -1,2 +1,2 @@ -#!/usr/local/bin/python3.4 -"/usr/local/bin/python3.4 hardcoded in shebang" +#!/usr/local/bin/python3.3 +"/usr/local/bin/python3.3 hardcoded in shebang" diff -Nru dh-python-1.20141111/tests/t304/Makefile dh-python-1.20140128/tests/t304/Makefile --- dh-python-1.20141111/tests/t304/Makefile 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/tests/t304/Makefile 2014-01-28 17:20:25.000000000 +0000 @@ -6,10 +6,10 @@ check: # python3.2 hardcoded via `dh_python3 --shebang ...python3.2` grep -q '#! /usr/bin/python3.2 -OO' debian/foo/usr/share/baz32/baz.py - # python3.4 hardcoded via shebang - grep -q '/usr/share/foo \-V 3.4' debian/foo/DEBIAN/postinst + # python3.3 hardcoded via shebang + grep -q '/usr/share/foo \-V 3.3' debian/foo/DEBIAN/postinst # /env removed from shebang grep -q '#! /usr/bin/python3' debian/foo/usr/share/bar/bar.py # /local removed from shebang grep -q '#! /usr/bin/python3' debian/foo/usr/share/foo/baz.py - grep -q '#! /usr/bin/python3.4' debian/foo/usr/share/foo/foo.py + grep -q '#! /usr/bin/python3.3' debian/foo/usr/share/foo/foo.py diff -Nru dh-python-1.20141111/tests/test_interpreter.py dh-python-1.20140128/tests/test_interpreter.py --- dh-python-1.20141111/tests/test_interpreter.py 2014-11-11 20:23:41.000000000 +0000 +++ dh-python-1.20140128/tests/test_interpreter.py 2014-01-28 17:20:25.000000000 +0000 @@ -93,26 +93,26 @@ self.assertIsNone(i.check_extname('foo.abi3.so')) self.assertEqual(i.check_extname('foo/bar/bazmodule.so'), r'foo/bar/bazmodule.cpython-32dmu.so') - @unittest.skipUnless(exists('/usr/bin/python3.4'), 'python3.4 is not installed') - def test_python34(self): - i = Interpreter('python3.4') - self.assertEqual(i.soabi(), 'cpython-34m') - self.assertEqual(i.check_extname('foo.so'), r'foo.cpython-34m-MYARCH.so') + @unittest.skipUnless(exists('/usr/bin/python3.3'), 'python3.3 is not installed') + def test_python33(self): + i = Interpreter('python3.3') + self.assertEqual(i.soabi(), 'cpython-33m') + self.assertEqual(i.check_extname('foo.so'), r'foo.cpython-33m-MYARCH.so') self.assertIsNone(i.check_extname('foo.cpython-32m.so')) # different version - self.assertIsNone(i.check_extname('foo.cpython-34m-OTHER.so')) # different architecture - self.assertEqual(i.check_extname('foo.cpython-34m.so'), r'foo.cpython-34m-MYARCH.so') + self.assertIsNone(i.check_extname('foo.cpython-33m-OTHER.so')) # different architecture + self.assertEqual(i.check_extname('foo.cpython-33m.so'), r'foo.cpython-33m-MYARCH.so') self.assertIsNone(i.check_extname('foo.abi3.so')) - self.assertEqual(i.check_extname('foo/bar/bazmodule.so'), r'foo/bar/baz.cpython-34m-MYARCH.so') + self.assertEqual(i.check_extname('foo/bar/bazmodule.so'), r'foo/bar/baz.cpython-33m-MYARCH.so') - @unittest.skipUnless(exists('/usr/bin/python3.4-dbg'), 'python3.4-dbg is not installed') - def test_python34dbg(self): - i = Interpreter('python3.4-dbg') - self.assertEqual(i.soabi(), 'cpython-34dm') - self.assertEqual(i.check_extname('foo.so'), r'foo.cpython-34dm-MYARCH.so') + @unittest.skipUnless(exists('/usr/bin/python3.3-dbg'), 'python3.3-dbg is not installed') + def test_python33dbg(self): + i = Interpreter('python3.3-dbg') + self.assertEqual(i.soabi(), 'cpython-33dm') + self.assertEqual(i.check_extname('foo.so'), r'foo.cpython-33dm-MYARCH.so') self.assertIsNone(i.check_extname('foo.cpython-32m.so')) # different version - self.assertIsNone(i.check_extname('foo.cpython-34m-OTHER.so')) # different architecture + self.assertIsNone(i.check_extname('foo.cpython-33m-OTHER.so')) # different architecture self.assertIsNone(i.check_extname('foo.abi3.so')) - self.assertEqual(i.check_extname('foo/bar/bazmodule.so'), r'foo/bar/baz.cpython-34dm-MYARCH.so') + self.assertEqual(i.check_extname('foo/bar/bazmodule.so'), r'foo/bar/baz.cpython-33dm-MYARCH.so') def test_version(self): i = Interpreter(impl='cpython2')