On Sun, 02 Aug 2015 08:35:46 +0200, Ralf Corsepius wrote:
On 08/01/2015 09:25 PM, Jan Kratochvil wrote:
>(1) How to make a dependency on librpm.so.7?
>
>librpm.so.7 is in rpm-libs-4.12.90-3.fc24.x86_64 which --provides:
> librpm.so.7()(64bit)
> librpmio.so.7()(64bit)
> rpm-libs = 4.12.90-3.fc24
> rpm-libs(x86-64) = 4.12.90-3.fc24
>So there is no easy way to Requires: rpm-libs = NVRA
How about:
R: rpm-libs%{?_isa} = NVRA
But NVRA is 4.12.90-3.fc24 while I want 7.
>(2) The other possibility does work:
>
> BuildRequires: %{_libdir}/librpm.so.7
I guess you mean "Requires:" and not "BuildRequires:" ?
Yes but that does not matter much here.
[1] IMO, dlopen'ing libs from standard paths is a very
questionable design,
IMO, because it doesn't provide many advantages over ordinary shared
linkage.
It was reworked from ordinary DT_NEEDED to this dlopen() approach because
librpm.so is (was) the only incompatible shared library dependency between
various versions of RHELs/CentOSes and Fedoras. So with dlopen()ed librpm one
can take latest Fedora Rawhide rpm build and run the GDB binary in
RHEL/CentOS. This makes sense for non-x86* archs where a rebuild of new GDB
from sources would take too much time.
At least this situation was in 2009. Since that non-x86* archs got faster,
there is also DTS (Developer ToolSet), I also currently do not maintain RHEL
GDB etc., maybe DT_NEEDED would be OK nowadays.
Jan