On Sat, 01 Aug 2015 21:48:24 +0200, Igor Gnatenko wrote: > On Sat, Aug 1, 2015 at 10:25 PM, Jan Kratochvil > <jan.kratochvil@xxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct