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?