Ask Your Question

Install issue with a homemade package, nothing provides libXXX...

asked 2018-08-02 08:23:23 -0600

bioinfornatics gravatar image


After sucesfult build the rpm I tried to install it. But I fail to install the devel package for this reason:

 Problem: conflicting requests
  - nothing provides needed by stdx-allocator-devel-2.77.2-1.fc28.x86_64

What i do:

  1. build rhe rpm rpmbuild -ba stdx-allocator.spec
  2. Install main package

sudo dnf install ../RPMS/x8664/stdx-allocator-2.77.2-1.fc28.x8664.rpm

  1. Install devel package

    sudo dnf install ../RPMS/x8664/stdx-allocator-devel-2.77.2-1.fc28.x8664.rpm

It is strange as the main package own the requested file:

# rpm -ql stdx-allocator | grep

I checked the soname:

$ objdump -p | grep -i soname

It is the intended soname. I even try to put an explicit provides into the main package

Provides:   lib%{name}{major_version}%{?_isa} = %{version}-%{release}

After this the rpm queries:

$ rpm -q --provides ../RPMS/x86_64/stdx-allocator-2.77.2-1.fc28.x86_64.rpm
stdx-allocator = 2.77.2-1.fc28
stdx-allocator(x86-64) = 2.77.2-1.fc28
$ rpm -q --requires ../RPMS/x86_64/stdx-allocator-devel-2.77.2-1.fc28.x86_64.rpm
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
stdx-allocator(x86-64) = 2.77.2-1.fc28

I got always the same error message!

The spec file -> here

Thanks for your help

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2018-08-03 02:30:09 -0600

villykruse gravatar image

updated 2018-08-03 06:00:01 -0600

Your provides is

Your requires is

Try add a Provides: which is the normal form of provides and requires for libraries.

It probably makes it easer if you used the names libstdx-allocator-ldc and libstdx-allocator-ldc-devel. That is how most Fedora library packages are named.

edit flag offensive delete link more


Thanks villykruse for your help. I agree, the statement "provides", imply the required library is softly different. How should I rewrite: Provides: lib%{name}{major_version}%{?_isa} = %{version}-%{release} in order to get the same thing ? I could to do: Provides: lib%{name}{major_version}()(%{?__isa_bits:%{__isa_bits}bit}) = %{version}-%{release} but I do not knowk which variable should be between the empty parenthesis () ?

bioinfornatics gravatar imagebioinfornatics ( 2018-08-03 02:52:13 -0600 )edit

Try first with the exaxt text Provides:

villykruse gravatar imagevillykruse ( 2018-08-03 06:02:12 -0600 )edit

Question Tools

1 follower


Asked: 2018-08-02 07:06:49 -0600

Seen: 72 times

Last updated: Aug 03 '18