[Fedora-packaging] Review Guidelines on -devel packages

Michael Schwendt mschwendt at gmail.com
Thu Oct 6 21:21:45 UTC 2011


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?
> 
> https://fedoraproject.org/wiki/Devel_Packages%28draft%29

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_Requires
 -> 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


More information about the packaging mailing list