On 08/01/2015 09:25 PM, Jan Kratochvil wrote:
Hi,

https://bugzilla.redhat.com/show_bug.cgi?id=1249325

GDB requires some library libXXX.so.3 by dlopen().  Therefore it is not found
by rpm automatic requires/provides from DT_NEEDED.  Therefore one has to add
the libXXX.so.3 by specific BuildRequires and Requires to the .spec file.

libXXX is librpm here but that is just a coincidence, it could be libz for
example.

(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


(2) The other possibility does work:

        BuildRequires: %{_libdir}/librpm.so.7

I guess you mean "Requires:" and not "BuildRequires:" ?

That's what I have been using on similar occasions.

Actually it's the only way I've found to handle situations, where packages dlopen libs from non-standard (often hard-coded) paths[1]:

R: %{_libdir}/<somewhere>/lib<xxxx>.so.<y>


Ralf

[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.

--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Reply via email to