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