On Sat, 01 Aug 2015 21:48:24 +0200, Igor Gnatenko wrote:
> On Sat, Aug 1, 2015 at 10:25 PM, Jan Kratochvil
> <jan.kratoch...@redhat.com> 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
> > 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.
> 
> I'd propose to add something like:
> %if %{__isa_bits} = 64
> Requires: libFOO.so.X()(64bit)
> %else
> Requires: libFOO.so.X
> %endif
This works for Requires (or Recommends) but not for BuildRequires:

I have found now by
        https://github.com/msimacek/koschei/issues/54
there exists
        
https://fedoraproject.org/wiki/Packaging:Guidelines#BuildRequires_and_.25.7B_isa.7D
        (I find this as a workaround of broken rpm/yum(/dnf?), this is why
        I was adding %{?_isa} to BuildRequires, but that is offtopic for this
        mail thread.)

which talks only about forbidden %{?_isa} in BuildRequires but apparently it
IMO applies also to ()(64bit) suffixes in BuildRequires.

But using
        BuildRequires: libFOO.so.X
without the ()(64bit) suffix does not work on 64-bit archs:
        error: Failed build dependencies:
                librpm.so.7 is needed by gdb-7.10-28.fc24.x86_64

So I can only remove such BuildRequires completely but then it may quietly
build a package (gdb) which has wrong librpm version dependency built in.
I will have to add a manual %build-time shell check instead.


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