[OE-core] [PATCH 4/4] sanity.bbclass: fix check_connectivity() for BB_NO_NETWORK = "0"
Christopher Larson
clarson at kergoth.com
Mon Nov 14 16:08:36 UTC 2016
On Mon, Nov 14, 2016 at 9:05 AM, Robert Yang <liezhi.yang at windriver.com>
wrote:
> On 11/14/2016 11:38 PM, Christopher Larson wrote:
>
>>
>> On Mon, Nov 14, 2016 at 8:37 AM, Robert Yang <liezhi.yang at windriver.com
>> <mailto:liezhi.yang at windriver.com>> wrote:
>>
>> On 11/14/2016 11:03 PM, Christopher Larson wrote:
>>
>>
>> On Mon, Nov 14, 2016 at 7:34 AM, Robert Yang <
>> liezhi.yang at windriver.com
>> <mailto:liezhi.yang at windriver.com>
>> <mailto:liezhi.yang at windriver.com <mailto:liezhi.yang at 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 <liezhi.yang at windriver.com
>> <mailto:liezhi.yang at windriver.com>
>> <mailto:liezhi.yang at windriver.com <mailto:
>> liezhi.yang at windriver.com>>>
>>
>> ---
>> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20161114/f2bbc181/attachment-0002.html>
More information about the Openembedded-core
mailing list