.so files in main package for python packages

Mihai Ibanescu misa at redhat.com
Sun Sep 10 18:08:57 UTC 2006


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?

> 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).

Before you ask 'then why is there a libxml2-devel', that is for applications
linking against libxml2.so in /usr/lib, or including header files from the C
API, it has absolutely nothing to do with python.

HTH,
Misa





More information about the Fedora-maintainers mailing list