On Wed, 5 Oct 2011 08:58:05 -0700, TK (Toshio) wrote:
> MUST: If a package contains library files with a numeric suffix
> (e.g. libfoo.so.1 or libfoo.so.1.1), extra care must be taken to
> distinguish between libraries needed at run-time and libraries
> needed only when compiling/building software. Library files needed
> only at build-time must be put into a -devel package. [19]
>
I'm not sure if this will clarify things for people making this mistake.
I think these people might not understand how to tell the difference between
a plugin and a library.
The big hammer "when in doubt, ask" then probably won't help either.
Well, one could try to explain that a symlink "libfoo.so" is what makes
the "-lfoo" linker argument work at build-time. And then expand on that
and on the exceptions, such as dlopen'ing or non-versioned libs... but
I'm not certain how much one can explain without reaching the size of
a book due to examples and growth in other sections of the documentation.
Too complicated IMO. It tries to cover all cases and still isn't
complete. Is the package collection free of library packages that
put non-versioned libfoo.so files into %_libdir? There have been
cases where these files have been duplicated in the -devel package
even. I'm sure we have/had also versioned plugin libs which were
put into %_libdir directly with the app loading the non-versioned
.so symlinks.
That's non-trivial to package also because of the following guidelines:
https://fedoraproject.org/wiki/Packaging:Guidelines#Filtering_Auto-Genera...
->
http://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering
A couple of MUST items on that page are violated by existing packages.
We've also had -devel packages that contained just .so files without any
API headers. And although some pedants will argue that this may be "possible",
it is unusual and ought to be explained/justified in the spec file.
--
Fedora release 16 (Verne) - Linux 3.1.0-0.rc8.git0.1.fc16.x86_64
loadavg: 0.09 0.13 0.10