[OE-core] Regression with RPM4 and unversioned DSOs

Peter Kjellerstedt peter.kjellerstedt at axis.com
Thu May 4 08:46:24 UTC 2017


There seems to be a serious regression with the introduction of RPM4 
and packages that install unversioned DSOs. We unfortunately have a 
lot of those, and after building one of our products with Pyro it is 
now missing almost 80 packages due to missing generated runtime 
dependencies. 

Previously the RPMs had dependencies on the required DSOs, but that 
no longer seems to be the case, and there are only dependencies on 
the packages providing the DSOs.

Here is an example for one of our packages. First the output from 
rpm -q --requires for the package built with Pyro:

$  rpm -q --requires -p tmp/deploy/rpm/mips32r2el_nf/apta-utility-1.3.0-r0.10.mips32r2el_nf.rpm
libc6 >= 2.25
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

And then the output for the same package built with Morty:

$ rpm -q  --requires -p tmp/deploy/rpm/mips32r2el_nf/apta-utility-1.3.0-r0.2.mips32r2el_nf.rpm
ld.so.1
ld.so.1(GLIBC_2.4)
libapta.so
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
libc.so.6(GLIBC_2.7)
libc6 >= 2.24
libubihelper.so

Please note the lack of dependencies on libapta and libubihelper in 
the package built with Pyro.

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.

//Peter




More information about the Openembedded-core mailing list