Re: Force binary package install


Rudolf J Streif
 


On 6/7/22 4:36 PM, Chuck Wolber wrote:

>> Is there an elegant way around it?
>>
>>
>> Error:
>>    Problem: conflicting requests
>>     - nothing provides libdl.so.2 needed by
>> xxx-single-group-0.1-r0.cortexa53_crypto
>>     - nothing provides libdl.so.2(GLIBC_2.0) needed by

Could this be considered a bug in the package_rpm.bbclass? It seems to me that if you skip files-rdeps,
we might not want to be adding anything into splitpreinst. Otherwise it seems silly to tell insane.bbclass
to skip something that RPM is going to ding you on later anyway. Or maybe I am confused...

In any case, I believe what you may be seeing can be viewed as an RPM-ism, and not necessarily a
yocto-ism per se. So you might consider trying one of the following to work around the problem:

It's Yocto that creates the spec file for rpm. Apparently, besides relying on what is declared in RDEPENDS, it
actually iterates over the files and appends the dependencies (and their versions). It results in this:

Requires: libc.so.6
Requires: libc.so.6()(64bit)
Requires: libc.so.6(GLIBC_2.0)
Requires: libc.so.6(GLIBC_2.1)
Requires: libc.so.6(GLIBC_2.1.3)
Requires: libc.so.6(GLIBC_2.17)(64bit)
Requires: libc.so.6(GLIBC_2.2)
Requires: libc.so.6(GLIBC_2.28)(64bit)
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)

Removing anything but the first two lines would probably do the trick. So if file-rdeps is declared in INSANE_SKIP
it should simply only use the declared RDEPENDS and not analyze the files.

Experiment with using a virtual provider. It may be possible to just map the dependency manually to
what is already there.

If you _know_ that your dependency is truly isolated to your recipe, you may be able to set RPROVIDES
values in your recipe so the resulting RPM thinks the dependencies are met internally.

Patch package_rpm.bbclass to add a guard variable around the setting of splitpreinst. Add that
guard variable to your recipe so it selectively turns off the pre-install checks for that particular package.
Or just check for files-rdeps in INSANE_SKIP and do the same thing...
Yeah well, that's not really a good solution unless it's upstreameable.

Stop fighting RPM and switch to a different package type like IPK.
That would probably only work if the dependency mechanism is different for IPK. I have not checked that.

..Ch:W..

--
"Perfection must be reached by degrees; she requires the slow hand of time." - Voltaire
-- 
Rudolf J Streif
CEO/CTO ibeeto
+1.855.442.3386 x700

Join yocto@lists.yoctoproject.org to automatically receive all group messages.