[OE-core] Regression with RPM4 and unversioned DSOs

Peter Kjellerstedt peter.kjellerstedt at axis.com
Thu May 4 11:30:08 UTC 2017


> -----Original Message-----
> From: Alexander Kanavin [mailto:alexander.kanavin at linux.intel.com]
> Sent: den 4 maj 2017 11:54
> To: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
> Cc: OE Core (openembedded-core at lists.openembedded.org) <openembedded-
> core at lists.openembedded.org>
> Subject: Re: Regression with RPM4 and unversioned DSOs
> 
> On 05/04/2017 11:46 AM, Peter Kjellerstedt wrote:
> > Since I would very much like to avoid having to add explicit runtime
> > dependencies for all those dependencies that were previously
> automatically
> > detected, which would be a nightmare, I am now looking for any help
> as to
> > where to find the code that adds the dependencies on the packages
> providing
> > DSOs and to see if it is possible to change it to also detect
> dependencies
> > on unversioned DSOs.
> 
> I'm not sure such implicit dependency detection at rpm generation point
> is guaranteed to work in the first place. Don't we have a package_qa
> check for this that should be failing? Can you publish a minimal layer
> so I can reproduce locally?
> 
> If you want to poke in rpm4 source, I think grepping for
> use_internal_dependency_generator is a good starting point.

I was more thinking of the code in OE-core that generates the list of 
Requires that goes into the spec file. The matching sections from the 
spec files for the apta-utility package that I used as example in my 
first mail are (for Pyro):

Requires: libc6 >= 2.25

and (for Morty):

Requires: ld.so.1
Requires: ld.so.1(GLIBC_2.4)
Requires: libapta.so
Requires: libc.so.6
Requires: libc.so.6(GLIBC_2.0)
Requires: libc.so.6(GLIBC_2.2)
Requires: libc.so.6(GLIBC_2.3)
Requires: libc.so.6(GLIBC_2.3.4)
Requires: libc.so.6(GLIBC_2.4)
Requires: libc.so.6(GLIBC_2.7)
Requires: libc6 >= 2.24
Requires: libubihelper.so
Provides: elf(buildid) = 097a4862c4d6275838e8eb5759501630b7913485

So I think it is quite obvious that something has changed in OE-core in 
how these lists are generated... It is also apparent that the problem 
with lack of dependencies on packages with unversioned DSOs was already 
present in Morty. However, since it was hidden by the direct dependencies 
on the DSOs it was not apparent before.

Does RPM4 support dependencies on DSOs, or was that an RPM5 feature?
If RPM4 supports it, why was it removed when dnf was introduced?

> Alex

//Peter




More information about the Openembedded-core mailing list