All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rich Pixley <rich.pixley@palm.com>
To: "openembedded-devel@openembedded.org"
	<openembedded-devel@openembedded.org>
Subject: Re: getVar. setVar, "d", etc.
Date: Tue, 05 Feb 2008 15:13:16 -0800	[thread overview]
Message-ID: <47A8ED8C.5040708@palm.com> (raw)
In-Reply-To: <1202248991.4619.5.camel@localhost.localdomain>

Richard Purdie wrote:
> On Mon, 2008-02-04 at 18:37 -0800, Rich Pixley wrote:
>   
>> Let me try this again.
>>
>> I have a class.  My class is listed in the INHERIT in my local.conf.
>>
>> My class intends to set a variable, SUBMISSION_busybox, which will be
>> used by a bb file as "PR = ${SUBMISSION_busybox}".
>>
>> I'm setting the variable via setVar, and pretty printing "d" shows me
>> that it's in p.dict.
>>
>> However, attempting to bitbake yields:
>>
>> NOTE: <type 'exceptions.SyntaxError'>:EOL while scanning single-quoted
>> string (<string>, line 1) while evaluating:
>> ${@base_set_filespath([
>> "/home/rich/projects/nova/oe-bom/nova/oe/packages/busybox/busybox-1.7.2-${SUBMISSION_busybox}",
>> "/home/rich/projects/nova/oe-bom/nova/oe/packages/busybox/busybox-1.7.2",
>> "/home/rich/projects/nova/oe-bom/nova/oe/packages/busybox/busybox",
>> "/home/rich/projects/nova/oe-bom/nova/oe/packages/busybox/files",
>> "/home/rich/projects/nova/oe-bom/nova/oe/packages/busybox" ], d)}
>> ERROR: Error in executing:
>> ERROR: Exception:<type 'exceptions.SyntaxError'> Message:EOL while
>> scanning single-quoted string (<string>, line 1)
>> ERROR: Printing the environment of the function
>>     
> The problem is the point at which some variables are accessed. How,
> where and when your class sets this variable SUBMISSION_busybox is very
> important.
>
> In this case bitbake is trying to evaluate FILESPATH set in
> base.bbclass. To do this it references the ${PF} variable which in turn
> contains ${PR} which in turn contains ${SUBMISSION_busybox}. At this
> point ${SUBMISSION_busybox} isn't set so it errors
>> And I'm totally confused.  It would appear to me as though
>> SUBMISSION_busybox isn't being found and thus isn't being expanded.  I'm
>> assuming that my understanding of the various "d"'s is my conceptual
>> weakness here.
>>     
> At the point in time where bitbake is trying to evaluate FILESPATH which
> indirectly includes SUBMISSION_busybox, SUBMISSION_busybox isn't in d.
Thank you for your analysis.  That's about the conclusion that I'd come 
to as well.

However, with judicious use of print commands I can see that 
SUBMISSION_busybox is indeed set in d at that time, even in d which has 
"${PN}" set to "busybox" but apparently either that's not the right d, 
or it's not set soon enough, or something else it going on that I don't 
understand.

Using:

def set_submissions(d):
    import bb
    import pprint   
    bb.data.setVar('SUBMISSION_busybox', '%s' % 1, d)
    print "d.dict is"
    pp = pprint.PrettyPrinter(indent=4);
    pp.pprint(d.dict)
    print "\n"
    return "garbage"

garbage := "${@set_submissions(d)}"

Before the FILESPATH assignment in base.bbclass, I can see that 
SUBMISSION_busybox is being set, and it's being set in the current d, 
but it's still not being expanded.

Any hints?

--rich


  reply	other threads:[~2008-02-05 23:13 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-04 22:05 getVar. setVar, "d", etc Rich Pixley
2008-02-04 23:05 ` Richard Purdie
2008-02-05  1:35   ` Rich Pixley
2008-02-05  2:37   ` Rich Pixley
2008-02-05 22:03     ` Richard Purdie
2008-02-05 23:13       ` Rich Pixley [this message]
2008-02-06  2:29       ` Rich Pixley
2008-02-06 12:18         ` Richard Purdie
2008-02-06 18:54           ` K. Richard Pixley
2008-02-07  0:54             ` Richard Purdie

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=47A8ED8C.5040708@palm.com \
    --to=rich.pixley@palm.com \
    --cc=openembedded-devel@lists.openembedded.org \
    --cc=openembedded-devel@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.