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.