https://fedoraproject.org/wiki/Packaging:ReviewGuidelines
| MUST: If a package contains library files with a suffix | (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) | must go in a -devel package. [19]
[19] https://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages
Based on just the ReviewGuidelines, some packagers and reviewers still get this wrong and create -devel packages for plugin .so libraries. In particular because it is a MUST. The linked Packaging Guidelines page on "Devel Packages" makes it a SHOULD and also mentions a rule of thumb, but apparently this is still not clear enough.
How about this?
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]
On Fri, Sep 30, 2011 at 12:44:31PM +0200, Michael Schwendt wrote:
https://fedoraproject.org/wiki/Packaging:ReviewGuidelines
| MUST: If a package contains library files with a suffix | (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) | must go in a -devel package. [19]
[19] https://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages
Based on just the ReviewGuidelines, some packagers and reviewers still get this wrong and create -devel packages for plugin .so libraries. In particular because it is a MUST. The linked Packaging Guidelines page on "Devel Packages" makes it a SHOULD and also mentions a rule of thumb, but apparently this is still not clear enough.
How about this?
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.
What do you think of this?
https://fedoraproject.org/wiki/Devel_Packages%28draft%29
-Toshio
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.
What do you think of this?
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-Generated... -> 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.
packaging@lists.fedoraproject.org