FreeTDS

Michael Schwendt fedora at wir-sind-cool.org
Sat Dec 18 00:51:38 UTC 2004


On Fri, 17 Dec 2004 19:29:55 -0500, Richard June wrote:

> > Other packaging mistakes after a brief look. In random order:
> >
> >  * Main package must not contain files %_libdir/*.so
> >    All these belong into the -devel package. Same applies to the
> >    -unixodbc sub package. It must not include %_libdir/*.so either.
> >    These files are needed at build-time only.
>
> Uhm, please, correct me if I'm wrong, but I thought *.so files were shared 
> objects required by the binary, as such, shouldn't they be in the main or a 
> libs package, rather than a devel package? I thought .a files went in the 
> devel package.

*.so files usually are softlinks, which point to the actual library, so
the compile-time linker finds a library with -lfoo (where "foo" is the
library SONAME). *.so links are needed at compile-time only and point
to the specific version which you want to compile/link with.

Most likely you mean the versioned shared objects of the form *.so.*,
e.g. libfoo.so.2 or libfoo.so.2.1.4. Those are an application's
actual run-time dependencies.

There are probably only two exceptions when an application wants *.so
named files at run-time. (A) The library version is included in the
library SONAME, e.g. libfoo-1.0.so, and hence the application depends
on the specific libfoo-1.0.so. (B) The application dlopen's a shared
object named *.so at run-time. That's an application bug. It should
dlopen a specific API version *.so.* instead.




More information about the fedora-devel-list mailing list