All of lore.kernel.org
 help / color / mirror / Atom feed
* e2fsprogs-libs build failure analysis
@ 2009-07-12 20:34 Khem Raj
  2009-07-13  3:57 ` Denys Dmytriyenko
  0 siblings, 1 reply; 9+ messages in thread
From: Khem Raj @ 2009-07-12 20:34 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 2462 bytes --]

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



[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 204 bytes --]

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-07-15  7:23 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-12 20:34 e2fsprogs-libs build failure analysis Khem Raj
2009-07-13  3:57 ` Denys Dmytriyenko
2009-07-14 19:47   ` Richard Purdie
2009-07-14 20:33     ` Koen Kooi
2009-07-14 21:13       ` Leon Woestenberg
2009-07-15  1:43         ` Elvis Dowson
2009-07-15  7:10         ` Koen Kooi
2009-07-14 20:35     ` Khem Raj
2009-07-14 22:16       ` Denys Dmytriyenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.