All of lore.kernel.org
 help / color / mirror / Atom feed
From: Khem Raj <raj.khem@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: e2fsprogs-libs build failure analysis
Date: Sun, 12 Jul 2009 13:34:34 -0700	[thread overview]
Message-ID: <200907121334.38852.raj.khem@gmail.com> (raw)

[-- 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 --]

             reply	other threads:[~2009-07-12 20:47 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-12 20:34 Khem Raj [this message]
2009-07-13  3:57 ` e2fsprogs-libs build failure analysis 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200907121334.38852.raj.khem@gmail.com \
    --to=raj.khem@gmail.com \
    --cc=openembedded-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.