[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Some thoughts about py{support,central} -> dh_python2 conversion



* Jakub Wilk <jwilk@debian.org>, 2012-05-03, 21:41:
2) Do not skip the "Before you begin"[0] step. This is very important: if two packages share a namespace, either both or none of them must use python-support. Also, it's not enough just to convert them all to dh_python2: you must make sure (using Breaks or Depends relationships) that you cannot co-install an older python-support-based versions together with dh_python2-based ones.

An alternative might be using this trick:
http://docs.python.org/library/pkgutil.html#pkgutil.extend_path
(Though a convenient place to insert the code might not exist in some cases.)

This is what I did in my two packages:

http://anonscm.debian.org/viewvc/python-modules/packages/gamera/trunk/debian/patches/namespace-package.diff?revision=21262&view=markup
http://anonscm.debian.org/viewvc/python-modules/packages/sphinx/trunk/debian/patches/sphinxcontrib_namespace.diff?revision=20343&view=markup

I set up a page to track this kinds of issues in unstable[2] and testing[3]. Please note that I analyse only package contents, not relationships. The tracker is updated daily. (Any volunteers to file bugs?)

(Ping?)

The pages moved to:
[2] http://people.debian.org/~jwilk/python/namespace/conflicts-unstable.txt
[3] http://people.debian.org/~jwilk/python/namespace/conflicts-testing.txt

Here's how it looks today:

enthought:
 pymodules: [python-apptools]
 site-pkgs: [python-enthoughtbase]

This is a false-positive, and a weird one. "python-apptools" ships only one file in the "enthought" namespace:
/usr/share/pyshared/enthought/rst/sphinx_default/jquery.js
But there are no symlinks in /usr/lib/python2.X/ to that file, so don't know how's that supposed to work.

repoze:
 pymodules: [python-repoze.who, python-repoze.what-plugins, python-repoze.who-plugins, python-repoze.what, python-repoze.sphinx.autointerface]
 site-pkgs: [python-repoze.lru, python-repoze.tm2]

True positive. If you install one package from the "pymodules" set and one from the "site-pkgs" set, the former package doesn't work.

"python-repoze.who-plugins" is in the worst situation, as it transitively depends on "python-repoze.lru".

twisted:
 pymodules: [cpushare]
 site-pkgs: [python-axiom, python-twisted-news, python-twisted-lore, python-twisted-bin, calendarserver, ibid, python-twisted-runner-dbg, python-twisted-names, python-twisted-bin-dbg, python-twisted-words, python-cyclone, graphite-carbon, epoptes, python-twisted-core, python-twisted-web2, python-twisted-web, python-nevow, python-twisted-mail, python-twisted-runner, python-wokkel, python-twisted-conch]

"cpushare" ships (among other things) a twisted plugin that doesn't work. Not a regression; twisted has never used python-support.

mysql:
 pymodules: [python-mysql.connector]
 site-pkgs: [mysql-utilities]

Work-around implemented in mysql-utilities.

google:
 pymodules: [python-protobuf]
 site-pkgs: [python-google-apputils]

True positive. If you install both "python-protobuf" and "python-google-apputils", the former doesn't work.

pywcs:
 pymodules: [python-pywcs]
 site-pkgs: [python-astropy-legacy]

Not co-installable.

sphinxcontrib:
 pymodules: [python-sphinxcontrib.issuetracker, python-sphinxcontrib.spelling]
 site-pkgs: [python-sphinxcontrib.actdiag, python-sphinxcontrib-pecanwsme, python-sphinxcontrib.seqdiag, python-sphinxcontrib-programoutput, python-sphinxcontrib.blockdiag, python-sphinxcontrib.nwdiag, python-sphinxcontrib-httpdomain, python-sphinxcontrib.phpdomain]

Work-around implemented in python-sphinx.

cherrypy:
 pymodules: [python-cherrypy]
 site-pkgs: [python-cherrypy3]

Not co-installable.

DD-list of the affected packages is attached.

--
Jakub Wilk
Bernhard Reiter <ockham@raz.or.at>
   python-repoze.sphinx.autointerface (U)

Debian Cloud Team <cloud-packages@lists.alioth.debian.org>
   google-apputils-python

Debian Python Modules Team <python-modules-team@lists.alioth.debian.org>
   python-apptools
   python-repoze.lru
   python-repoze.sphinx.autointerface
   python-repoze.tm2
   python-repoze.what-plugins
   python-repoze.who-plugins

Debian QA Group <packages@qa.debian.org>
   python-repoze.what
   python-repoze.who

Debian Scientific Computing Team <pkg-scicomp-devel@lists.alioth.debian.org>
   cpushare

Iustin Pop <iustin@debian.org>
   protobuf

Jan Dittberner <jandd@debian.org>
   python-repoze.tm2 (U)

Piotr Ożarowski <piotr@debian.org>
   python-repoze.what-plugins (U)
   python-repoze.who-plugins (U)

Robert S. Edmonds <edmonds@debian.org>
   protobuf (U)

Sam Hocevar <sam+deb@zoy.org>
   cpushare (U)

Stefano Zacchiroli <zack@debian.org>
   python-repoze.what-plugins (U)
   python-repoze.who-plugins (U)

TANIGUCHI Takaki <takaki@debian.org>
   python-repoze.lru (U)

Varun Hiremath <varun@debian.org>
   python-apptools (U)

Vincent Bernat <bernat@debian.org>
   google-apputils-python (U)


Reply to: