[ NB: I sent this to fedora-packaging as well as fedora-devel, and
it's probably better to follow up there because this thread is
shifting focus ... ]
On Mon, May 5, 2008 at 10:54 PM, Toshio Kuratomi <a.badger(a)gmail.com> wrote:
I took a closer look at Ice and I think there's a few things
that should
change.
1) AFAICS there's no reason for the python bindings to be part of the Ice
package. It comes in a separate tarball and appears to build on its own. I
can't find a mention of this in the review so I don't know if there's
something special about it that I'm missing. [1]_
Actually, upstream is very soon releasing a new version of Ice where
all of the language bindings are in a single tarball, so I think I'll
stick with the monolithic SRPM.
2) The .pth file looks like it's being used to compensate for
bad imports
and upstream packaging.
* There should be an __init__.py file in
%{_libdir}/pythonX.Y/site-packages/Ice
* The following files have imports that need to be changed:
IceBox/__init__.py
Glacier2/__init__.py
IceGrid/__init__.py
IceStorm/__init__.py
IcePatch2/__init__.py
change imports like::
import IceBox_IceBox_ice
to this::
from Ice import IceBox_IceBox_ice
The problem is, those files are automatically generated using other
parts of the Ice program (using slice2py, to be specific). There's a
documented way that slice2py deals with packages and modules
(
http://zeroc.com/doc/Ice-3.2.1/manual/Python.23.15.html#75777) that
I'm reluctant to touch.
I could remove the "Ice.pth" file and require people to set
PYTHONPATH, but unfortunately I don't think I can go changing the
actual (generated) __init__.py files. :(
3) Additionally, on x86_64, the python module is spread over two
directories: /usr/lib64/python2.5/site-packages/Ice and
/usr/lib/python2.5/site-packages/Ice. Python doesn't handle that very well.
All the files of a module should be in a single directory. Since this
module builds an ELF shared object (IcePy.so/IcePy.so.3.2.1) all files
should be installed into %{python_sitearch}/ (This is what lead to BZ
#392751).
Okay, sure, that's easy to fix. So I should put *.py* into site_arch
always, and put nothing into site_lib? The Python packaging guidelines
aren't amazingly clear on this point to a non-Python programmer like
me. :)
MEF
--
Mary Ellen Foster --
http://homepages.inf.ed.ac.uk/mef/
Informatik 6: Robotics and Embedded Systems, Technische Universität München
and ICCS, School of Informatics, University of Edinburgh