.so files in main package for python packages

Christopher Stone chris.stone at gmail.com
Sun Sep 10 18:17:35 UTC 2006


On 9/10/06, Mihai Ibanescu <misa at redhat.com> wrote:
> On Sun, Sep 10, 2006 at 02:41:34AM -0700, Christopher Stone wrote:
> > Upstream says there is a packaging error in one of my packages,
> > pypoker-eval-devel.
> >
> > Upstream claims that the .so file should not be in the devel package
> > but should be in the main package.
>
> Would you mind providing a bit more context about the package, maybe a source
> rpm?

This is a package that is in Fedora Extras and the source is located
in the Fedora Extras CVS under the pypoker-eval module.

>
> > I told upstream about our .so rule saying .so files should be in
> > -devel, but he said this is not the case for python packages, and
> > promptly demonstrated that the libxml2-python package is similar and
> > that this package puts the .so files in the main pacakge on Fedora as
> > well.
> >
> > So is libxml2-python package in error, or is upstream correct and
> > there are exceptions to the .so rule for python packages?
> >
> > Upstream informs me that my package will break unless I put the .so
> > file in the main package.
>
> Which .so file are you talking about?
> python will dlopen modules that are .so. In the case of libxml2-python, I see
> a libxml2mod.so. Well, that's a library that is directly imported by python,
> it is _not_ a library used by other binaries that would link against it.
> Here's the example:
>
> >>> import libxml2mod
> >>> libxml2mod
> <module 'libxml2mod' from '/usr/lib64/python2.4/site-packages/libxml2mod.so'>
>
> If that's the case with your .so file, then yes, upstream is right, it makes
> absolutely no sense to put the .so file in the -devel package, because it
> provides functionality required by that python module. In general, python
> modules don't have to have a -devel package (there may be exceptions to this
> rule but I can't think of one off the top of my head).

I believe this is the case for me:
>>> import _pokereval_2_4
>>> _pokereval_2_4
<module '_pokereval_2_4' from
'/usr/lib64/python2.4/site-packages/_pokereval_2_4.so'>

Then after "yum remove pypoker-eval-devel":
>>> import _pokereval_2_4
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: No module named _pokereval_2_4




More information about the Fedora-maintainers mailing list