[Fedora-packaging] Re: python packaging - icons/desktop files and /usr/bin accessibility

Mary Ellen Foster foster at in.tum.de
Tue May 6 14:01:34 UTC 2008


[ 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 at 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




More information about the packaging mailing list