[oe] e2fsprogs-libs build failure analysis
Khem Raj
raj.khem at gmail.com
Sun Jul 12 20:34:34 UTC 2009
Hi
Like many others I was also getting this problem reported on this mailing list in past
http://article.gmane.org/gmane.comp.handhelds.openembedded/24445/match=e2fsprogs+libs
I looked a bit into this and the problem is that PN gets overwritten when
do_package_write_ipk -> read_subpackage_metadata
this loop below reads the subpkgdata also reads PV PN and PR which are then overwritten
by bb.data.setVar(key, sdata[key], d)
for pkg in bb.data.getVar('PACKAGES', d, 1).split():
sdata = read_subpkgdata(pkg, d)
for key in sdata.keys():
bb.data.setVar(key, sdata[key], d)
when this loop exits the last subpackage it read is build/eglibc/omap5912osk/pkgdata/armv5te-angstrom-linux-gnueabi/runtime/libblkid
which says that PN is util-linux-ng
and this value of PN is updated last into the bb.data for e2fsprogs-libs
so when do_package_ipk () is called it wants to get WORKDIR
workdir = bb.data.getVar('WORKDIR', d, 1)
but WORKDIR consits of PN PV and PR so it calculates it wrongly
So I think problem is caused because of emitting PV, PN and PR into pkgdata files
which is then read and updated into bb.data
I added a workaround in base.bbclass
diff --git a/classes/base.bbclass b/classes/base.bbclass
index bc50c67..5eefdb7 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -1090,7 +1090,9 @@ def read_pkgdata(pn, d):
python read_subpackage_metadata () {
import bb
data = read_pkgdata(bb.data.getVar('PN', d, 1), d)
-
+ pn = bb.data.getVar('PN', d, 1)
+ pv = bb.data.getVar('PV', d, 1)
+ pr = bb.data.getVar('PR', d, 1)
for key in data.keys():
bb.data.setVar(key, data[key], d)
@@ -1098,6 +1100,9 @@ python read_subpackage_metadata () {
sdata = read_subpkgdata(pkg, d)
for key in sdata.keys():
bb.data.setVar(key, sdata[key], d)
+ bb.data.setVar('PN', pn, d)
+ bb.data.setVar('PV', pv, d)
+ bb.data.setVar('PR', pr, d)
}
and it works now but I feel this is not the right fix.
util-linux-ng.inc has
PACKAGES_DYNAMIC = "libblkid*"
and e2fsprogs-libs.inc has
do_stage () {
for i in libcom_err libss libuuid libblkid; do
oe_libinstall -a -C lib $i ${STAGING_LIBDIR}
.....
}
probably this also needs some thought.
Thanks
-Khem
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20090712/946f7fe0/attachment-0002.sig>
More information about the Openembedded-devel
mailing list