All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qing He <qing.he@intel.com>
To: Richard Purdie <rpurdie@linux.intel.com>
Cc: "poky@yoctoproject.org" <poky@yoctoproject.org>,
	Chris Larson <clarson@kergoth.com>
Subject: Re: [PATCH 1/1] curl: fix native dependency
Date: Wed, 8 Dec 2010 11:12:04 +0800	[thread overview]
Message-ID: <20101208031204.GA20033@qhe2-db> (raw)
In-Reply-To: <1291725455.11475.10.camel@rex>

On Tue, 2010-12-07 at 20:37 +0800, Richard Purdie wrote:
> On Tue, 2010-12-07 at 15:55 +0800, Tian, Kevin wrote:
> > >From: Richard Purdie [mailto:rpurdie@linux.intel.com]
> > >http://git.pokylinux.org/cgit.cgi/poky-contrib/commit/?h=rpurdie/bitbake&id=c77410305f
> > >e736aa195ce720c8317b39da057052
> > 
> > yes, that looks a clear fix.
> 
> In the absence of Chris saying no, I've merged this into Poky so it
> doesn't get lost.

Thank you for the fix, I've been looking the smart data section
recently, and the rationale becomes much clearer to me.


However, the following case still has some confusion:

FOO = "A"
FOO_append = "B"
FOO_virtclass-native = "C"

when in virtclass-native, the output is simply "C", instead of "CB"
as I expected

> 
> > Actually my original thought was a little bit different. Atm I thought that only one
> > appendix should take effect, i.e:
> > 
> > FOO = "A"
> > FOO_append_OVERA = "B"
> > FOO_append_OVERB = "C"
> > 
> > If OVERB is higher priority than OVERA, the result would be "AC" then.
> > 
> > Now obviously my earlier thought is wrong. Every _append appends a new
> > value if the override is valid. :-)
> 
> Right, there is just the question of ordering.
> 
> > I also thought that there's no ordering constraint in this design. either "A B C"
> > or "A C B" could work, unless the appendix itself has order constraint, say 
> > a patch sequence. But I'm not sure whether there's real usage and we need
> > to handle it or not.
> 
> I think its not something we should worry too much about, just something
> to be aware of.

There is some occasion where the ordering may matter, for example, CFLAGS
(and some other command line options). But even this may avoid the need of
predicatable order if we are careful.

> 
> I do still think we should support FOO_append_OVERA_OVERB_OVERC though
> perhaps we should leave a bug open on that?

This question also arose when I read the code, then I realize that
FOO_append_OVERA_OVERB_OVERC doesn't work in current design. Previously
I expected something like a staged handling, i.e. peeling off the
append/prepend first, and then handling override, but actually they are
not that loosely coupled.

That said, it seems supporting multiple overrides in append is still
ok, I tried to sketch a patch as follow, seems work for
FOO_append_virtclass-native_qemux86 = "C"

---
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py
index c8cd8f8..116ea10 100644
--- a/bitbake/lib/bb/data_smart.py
+++ b/bitbake/lib/bb/data_smart.py
@@ -160,9 +160,15 @@ class DataSmart:
                 for append in appends:
                     keep = []
                     for (a, o) in self.getVarFlag(append, op) or []:
-                        if o and not o in overrides:
-                            keep.append((a ,o))
-                            continue
+                        if o:
+                            applicable = 1
+                            for override in o.split('_'):
+                                if not override in overrides:
+                                    applicable = 0
+                                    break
+                            if not applicable:
+                                keep.append((a ,o))
+                                continue
 
                         if op is "_append":
                             sval = self.getVar(append, False) or ""
---


Thanks,
Qing


  reply	other threads:[~2010-12-08  3:17 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-17  8:32 [PATCH 0/1] curl-native build fix Qing He
2010-11-17  8:26 ` [PATCH 1/1] curl: fix native dependency Qing He
2010-11-28 14:22   ` Richard Purdie
2010-11-29  5:26     ` Tian, Kevin
2010-11-29  5:53       ` Chris Larson
2010-11-29  5:58         ` Tian, Kevin
2010-11-29 12:25         ` Richard Purdie
2010-11-29 13:04           ` Frans Meulenbroeks
2010-11-29 15:17             ` Richard Purdie
2010-12-05  9:48               ` Tian, Kevin
2010-11-29 15:24           ` Chris Larson
2010-12-05  9:32             ` Tian, Kevin
2010-12-06  1:04               ` Richard Purdie
2010-12-07  7:55                 ` Tian, Kevin
2010-12-07 12:37                   ` Richard Purdie
2010-12-08  3:12                     ` Qing He [this message]
2010-12-09 15:16                       ` Richard Purdie
2010-12-13  5:52                         ` Qing He
2010-12-13 10:48                           ` Qing He
2010-11-30  1:44           ` Qing He
2010-12-05  9:43             ` Tian, Kevin
2010-12-06  1:10               ` Richard Purdie
2010-12-07  7:56                 ` Tian, Kevin
2010-11-29  8:17     ` Qing He
2010-11-29 11:57       ` Richard Purdie
2010-11-17 18:21 ` [PATCH 0/1] curl-native build fix Saul Wold
2010-11-17 18:26   ` Scott Garman
2010-11-19 22:43     ` Saul Wold

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=20101208031204.GA20033@qhe2-db \
    --to=qing.he@intel.com \
    --cc=clarson@kergoth.com \
    --cc=poky@yoctoproject.org \
    --cc=rpurdie@linux.intel.com \
    /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.