[OE-core] [PATCH 4/4] sanity.bbclass: fix check_connectivity() for BB_NO_NETWORK = "0"
Robert Yang
liezhi.yang at windriver.com
Mon Nov 14 16:19:49 UTC 2016
On 11/15/2016 12:08 AM, Christopher Larson wrote:
>
> On Mon, Nov 14, 2016 at 9:05 AM, Robert Yang <liezhi.yang at windriver.com
> <mailto: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>
> <mailto: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>>
> <mailto: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>>
> <mailto: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.
Thanks, sounds good to me, let's see others comments, and I will work on that
later if no objections (maybe 1 month later). Currently I will simply make
sanity.bbclass handle "0" as bitbake does.
Have good day. I have to go to sleep now.
// Robert
> --
> Christopher Larson
> clarson at kergoth dot com
> Founder - BitBake, OpenEmbedded, OpenZaurus
> Maintainer - Tslib
> Senior Software Engineer, Mentor Graphics
More information about the Openembedded-core
mailing list