[Fedora-packaging] Shared libraries unversioned .so symlinks packaging

Michael Schwendt mschwendt at gmail.com
Mon Apr 27 21:42:31 UTC 2015


On Mon, 27 Apr 2015 19:18:15 +0300, Daniel Letai wrote:

> Hi,
> 
> When building gcc 5.1 rpm (based on f22 spec) to a different prefix I
> get a list of .so unpackaged files:

How did you modify the gcc.spec to relocate the files?
Where are those files installed without your modification?
You can use rpmls or repoquery to find out.
Perhaps your %files sections don't match the changed location?

> I know the usual solution is to place such symlinks in the <lib>-devel
> package,

There is _no_ such "solution". The guidelines have been updated a few
times, because some packagers have put all .so files into -devel packages
without a second thought.

There is only one real solution: Put .so files into the (sub-)packages
they belong into. Where they belong into depends on *when* they are
needed? At run-time? At build-time? Both?

> but for most of those libs there is no devel counterpart,

GCC is a development tool in a development package that doesn't have
-devel in its name. With a bit of fantasy one could make it depend on lots
of -devel packages just to be explicit for some of the libs, but some of
the build-time libs may be needed always, so they are not in separate
packages (except for runtime libs).

> so I'm wondering what are best practices in this case.

Put them where they belong.

> I figure I can
> 1. Just ignore them (I have %global _unpackaged_files_terminate_build 0)
> 2. Remove them in %install

That sounds much as if you don't know what you're doing.

> 3. Add them to their respective %files lib
> 4. Create an %files lib-devel for each one
> 
> Which is preferred, if at all?
> As a potential follow-up: If 1 or 3, why bother creating them in the
> first place?


More information about the packaging mailing list