From: Robert Yang <liezhi.yang@windriver.com>
To: Christopher Larson <clarson@kergoth.com>
Cc: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 4/4] sanity.bbclass: fix check_connectivity() for BB_NO_NETWORK = "0"
Date: Tue, 15 Nov 2016 00:19:49 +0800 [thread overview]
Message-ID: <598edbbd-fd3d-2965-6369-7458f2273705@windriver.com> (raw)
In-Reply-To: <CABcZAN=v680FxZ5GHRN53hj3Rd5TnNhQxmVRMds0qZMW7Lc=bg@mail.gmail.com>
On 11/15/2016 12:08 AM, Christopher Larson wrote:
>
> On Mon, Nov 14, 2016 at 9:05 AM, Robert Yang <liezhi.yang@windriver.com
> <mailto:liezhi.yang@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@windriver.com
> <mailto:liezhi.yang@windriver.com>
> <mailto:liezhi.yang@windriver.com <mailto:liezhi.yang@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@windriver.com <mailto:liezhi.yang@windriver.com>
> <mailto:liezhi.yang@windriver.com
> <mailto:liezhi.yang@windriver.com>>
> <mailto:liezhi.yang@windriver.com
> <mailto:liezhi.yang@windriver.com> <mailto:liezhi.yang@windriver.com
> <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 <liezhi.yang@windriver.com
> <mailto:liezhi.yang@windriver.com>
> <mailto:liezhi.yang@windriver.com
> <mailto:liezhi.yang@windriver.com>>
> <mailto:liezhi.yang@windriver.com
> <mailto:liezhi.yang@windriver.com> <mailto:liezhi.yang@windriver.com
> <mailto:liezhi.yang@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
prev parent reply other threads:[~2016-11-14 16:19 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-14 14:34 [PATCH 0/4] Fixes for sanity.bbclass and sdk Robert Yang
2016-11-14 14:34 ` [PATCH 1/4] populate_sdk_ext.bbclass: use weak assignment for TOOLCHAINEXT_OUTPUTNAME Robert Yang
2016-11-14 14:34 ` [PATCH 2/4] testsdk.bbclass: print which file is not found Robert Yang
2016-11-14 14:34 ` [PATCH 3/4] sanity.bbclass:check_connectivity(): print more error messages Robert Yang
2016-11-14 14:34 ` [PATCH 4/4] sanity.bbclass: fix check_connectivity() for BB_NO_NETWORK = "0" Robert Yang
2016-11-14 15:03 ` Christopher Larson
2016-11-14 15:37 ` Robert Yang
2016-11-14 15:38 ` Christopher Larson
2016-11-14 16:05 ` Robert Yang
2016-11-14 16:08 ` Christopher Larson
2016-11-14 16:19 ` Robert Yang [this message]
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=598edbbd-fd3d-2965-6369-7458f2273705@windriver.com \
--to=liezhi.yang@windriver.com \
--cc=clarson@kergoth.com \
--cc=openembedded-core@lists.openembedded.org \
/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.