On Mon, Nov 14, 2016 at 9:05 AM, Robert Yang <[email protected]> wrote:
> On 11/14/2016 11:38 PM, Christopher Larson wrote: > >> >> On Mon, Nov 14, 2016 at 8:37 AM, Robert Yang <[email protected] >> <mailto:[email protected]>> wrote: >> >> On 11/14/2016 11:03 PM, Christopher Larson wrote: >> >> >> On Mon, Nov 14, 2016 at 7:34 AM, Robert Yang < >> [email protected] >> <mailto:[email protected]> >> <mailto:[email protected] <mailto:liezhi.yang@windriver. >> com>>> >> wrote: >> >> The old code: >> network_enabled = not d.getVar('BB_NO_NETWORK', True) >> >> It is True only when BB_NO_NETWORK is not set (None), >> but BB_NO_NETWORK = "0" should also be True while "1" means >> no network, >> "0" means need network in a normal case. >> >> Signed-off-by: Robert Yang <[email protected] >> <mailto:[email protected]> >> <mailto:[email protected] <mailto: >> [email protected]>>> >> >> --- >> meta/classes/sanity.bbclass | 14 +++++++++----- >> 1 file changed, 9 insertions(+), 5 deletions(-) >> >> diff --git a/meta/classes/sanity.bbclass >> b/meta/classes/sanity.bbclass >> index 7e383f9..c5e3809 100644 >> --- a/meta/classes/sanity.bbclass >> +++ b/meta/classes/sanity.bbclass >> @@ -363,15 +363,19 @@ def check_connectivity(d): >> test_uris = (d.getVar('CONNECTIVITY_CHECK_URIS', True) >> or >> "").split() >> retval = "" >> >> + bbn = d.getVar('BB_NO_NETWORK', True) >> + if bbn not in (None, '0', '1'): >> + return 'BB_NO_NETWORK should be "0" or "1", but it >> is "%s"' >> % bbn >> >> >> Does this mirror the same logic used in bitbake? What’s the >> behavior if it’s >> set, but to the empty string? >> >> >> bitbake only checks whether it equals "1" or not. Without this patch, >> an empty >> string is the same as not set since it doesn't equal to "1". But if >> it is >> set to "0", bitbake uses it as enable network, sanity.bbclass uses it >> as disable netowrk, which are conflicted. We can add checking for >> empty string, >> but do we have to ? Limit it to "0" or "1" makes things clear. >> >> >> IMO if we’re going to change the semantics, we should do it in bitbake >> and then >> mirror that in the metadata. Sanity checking should mirror the actual >> variable >> behavior where it’s used. >> > > Sounds reasonable, but I'm not sure how to do it, ways I can think out: > 1) Handle "0" as enable network as bitbake does in sanity.bbclass > 2) If we want to limit its values, maybe we need check it in bitbake rather > than in sanity.bbclass, there are also other values have the similar > problems, I did a rough grep, such as BB_FETCH_PREMIRRORONLY: > > fetch2/__init__.py: premirroronly = > (self.d.getVar("BB_FETCH_PREMIRRORONLY", > True) == "1") > fetch2/git.py: if d.getVar("BB_FETCH_PREMIRRORONLY", True) is not > None: > > The __init__.py only checks whether it is "1" or not, but git.py checks if > it > is None, there would be confusions when it is "" or "0". Sounds like bb.utils.to_boolean() may be our friend for a number of these. -- Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics
-- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
