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
I do not see which V introduced / deprecates .so library version 7.

So I would like to: Requires: librpm.so.7
But that does not work as I need there the '()(64bit)' suffix.

%{?_isa} suffix does not work, that is '(x86-64)' and not '()(64bit)'.

I could %ifarch explicitly all 64-bit Fedora archs to append '()(64bit)' for
them but isn't there some better way how to generate the '()(64bit)' suffix?

(2) The other possibility does work:

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

But
        https://fedoraproject.org/wiki/Packaging:Guidelines#File_Dependencies
says
        Whenever possible you should avoid file dependencies as they slow down
        dependency resolution and require the package manager to download file
        lists in addition to to regular dependency information.

From what I remember at least yum did not need the 'filelists' index for
/usr/bin/ files.  Is it still valid today and also for dnf?
And is 'filelists' required for /usr/lib{,64}/ or not?

I think Packaging Guidelines could list these few directories - at least
/usr/bin/ - for safe file dependencies.


Thanks,
Jan
-- 
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