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

python-central vs python-support



Hello,

now you know a bit better the policy (or at least the generic idea, feel
free to discuss details further), it's time to think about the
implementation (for modules and extensions).

References used:
- python-support source package in Debian
- python-central source package on http://people.debian.org/~doko/pycentral/

1/ Making modules available to several python versions can be done with
python-support or by python-central.

2/ Extensions can't be shared between several python versions so they need to
be compiled once for each. The packaging needs to be modified to do those
compilations. We really need a tool (maybe dh_python with a special flag)
to generate dynamically the list of python version that the package must
be compiled with. The .so files must be installed in /usr/lib/python2.X/
and the associated .py files may be moved to a shared directory (either
the python-support or python-central directory).

I agree with Matthias that it would be better to use only one "helper
tool" but I would favor python-support instead of python-central for the
reasons outlined below. Beware this is only *my* opinion. I'll gladly
follow the consensus and would even accept to let both tools coexist.

python-support:
* 247 lines of code
* maintained by Josselin Mouette (dh_python author)
* positive aspects
  * already in the archive, works, well tested
  * small, manageable
  * used by several packages in the python-modules team
* negative aspects
  * no control of which files is byte-compiled (compiles all .py files of
    a directory given as argument to a update-python-modules script)

pycentral:
* 1009 lines of code
* maintained by Matthias Klose (python maintainer)
* positive aspects
  * (more) fine-grained control of which file are byte-compiled
  * already integrated in the python packaging
* negative aspects
  * integrate too tightly with dpkg's database (needed a dpkg patch to
    make sure that the status file is up-to-date when pycentral was
    scanning it!)
  * more complicated code, less manageable
  * not yet widely tested

python-central does more than python-support however. But I'm not sure that
this "more" is useful. For example pycentral can check that all installed
packages have support of a specific python-version.

Now, I would like to hear the opinion of others. Please take some time to
check both tools and make your own opinion. Please tell here the
advantages/disadvantages that you find to each tool. My list is very
personal and certainly not exhaustive. 

In any case, the most important thing is that we need an updated dh_python
which generates the right python dependencies (and provides) based on the
new Python-version field, and which handles python-central and
python-support in a sane way. I think dh_python should (by default) not
move any file out of /usr/lib/python2.X/ but if it detects either
/usr/share/python-central or /usr/share/python-support, then it should add
the right postinst/postrm script snippet.

Josselin can you provide a dh_python following those rules? Would anyone
else be ready to write it? (I could do it, I told so to doko but in fact
my only interest here is to solve the current problems and not to stay
heavily involved in the long term, so if anyone else has the time that
would be great)

I also think that Josselin should provide the shell code that needs to be
added to python itself to immediately bytecompile all modules for any
newly installed python version.

Cheers,
-- 
Raphaël Hertzog

Premier livre français sur Debian GNU/Linux :
http://www.ouaza.com/livre/admin-debian/



Reply to: