From: Denys Dmytriyenko <denis@denix.org>
To: openembedded-devel@lists.openembedded.org
Subject: Re: e2fsprogs-libs build failure analysis
Date: Sun, 12 Jul 2009 23:57:13 -0400 [thread overview]
Message-ID: <20090713035713.GA21203@denix.org> (raw)
In-Reply-To: <200907121334.38852.raj.khem@gmail.com>
On Sun, Jul 12, 2009 at 01:34:34PM -0700, Khem Raj wrote:
> 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
Khem,
Have you seen this thread several months ago with the same analysis:
http://thread.gmane.org/gmane.comp.handhelds.openembedded/22376/focus=22556
As I said before, pkgdata/runtime handling needs fixing - if multiple recipes
(or even target vs. native/sdk of the same package, like it was with curl)
provide the identically named .so library (libblkid in this case) during the
build, there may be a conflict in the pkgdata/runtime files.
What are the pkgdata files are used for ultimately? Do they need to contain
PN/PV/PR? That was introduced by the commit mentioned in the thread above...
Should it be reverted?
Lets ask Richard - he made this change in Poky, maybe he has a better fix for
it... :)
--
Denys
> 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
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
next prev parent reply other threads:[~2009-07-13 4:10 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-12 20:34 e2fsprogs-libs build failure analysis Khem Raj
2009-07-13 3:57 ` Denys Dmytriyenko [this message]
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=20090713035713.GA21203@denix.org \
--to=denis@denix.org \
--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.