[oe] RFC: Record PE for shlib dependencies
Böszörményi Zoltán
zboszor at pr.hu
Thu Jan 11 14:07:41 UTC 2018
Hi,
I have been using Yocto since 1.6 and I have found a bug
in the automatic recording in the shlib dependencies.
The problem is that shlib dependencies are not recorded with PE+PV.
My use case was that I forked Angstrom into a custom distro layer
which at the time was based on Yocto 1.6.
Although I built the OS for x86-64, it was using libc6_linaro-2.19
from EGLIBC.
Now, as the time has passed, we had to add localization to the
systems and the old EGLIBC 2.19 was not good enough.
So, I have switched to Yocto 2.2 and rebased my custom layer on it.
You can already see my problem: linaro-2.19 > 2.24.
The obvious step was to add PE = "1" in a bbappend file for GLIBC.
This made the libc6 package upgradable, but the (>= 1:2.24) dependency
was not encoded in dependant packages, only (>= 2.24), which was
satisfied by linaro-2.19.
Because of this, many times a larger opkg upgrade was cut in the
middle because a post-install scriptlet died when it ran a newly
installed binary that needed the new libc6 and it crashed.
So, upgrades must have been carefully scripted in this and similar cases.
I have started moving to Yocto 2.4 about a week ago and I found
that this bug still exists.
Since my itch was too big now, I have proverbially scratched it.
I have created a PR against Rocko here:
https://github.com/openembedded/openembedded-core/pull/28/files
Please comment whether it's the right approach.
But it has already survived a large-ish bitbake session with
about 2000 runqueue tasks and all the right (>= PE:PV) are there
for shlib dependencies where the dependency has a PE value set.
Best regards,
Zoltán Böszörményi
More information about the Openembedded-devel
mailing list