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 fedora-devel-list
mailing list