* [PATCH 0/1] base.bbclass: Check BuildStarted for HOSTTOOLS
@ 2019-02-14 2:58 Robert Yang
2019-02-14 2:58 ` [PATCH 1/1] " Robert Yang
0 siblings, 1 reply; 6+ messages in thread
From: Robert Yang @ 2019-02-14 2:58 UTC (permalink / raw)
To: openembedded-core
The following changes since commit 430bd28093fb743ba3bd032e11e40b4dd8e5bd1f:
linux-yocto: add baseline ARC support (2019-02-12 14:04:24 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib rbt/ht
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/ht
Robert Yang (1):
base.bbclass: Check BuildStarted for HOSTTOOLS
meta/classes/base.bbclass | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--
2.7.4
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/1] base.bbclass: Check BuildStarted for HOSTTOOLS
2019-02-14 2:58 [PATCH 0/1] base.bbclass: Check BuildStarted for HOSTTOOLS Robert Yang
@ 2019-02-14 2:58 ` Robert Yang
2019-02-14 3:05 ` Peter Kjellerstedt
0 siblings, 1 reply; 6+ messages in thread
From: Robert Yang @ 2019-02-14 2:58 UTC (permalink / raw)
To: openembedded-core
There might be no bb.event.ConfigParsed event bitbake server is running,
so check bb.event.BuildStarted to make sure HOSTTOOLS_DIR existed when
BuildStarted.
Fixed:
$ export BB_SERVER_TIMEOUT=-1
$ bitbake quilt-native
$ rm -fr tmp
$ bitbake quilt-native
ERROR: Error running gcc --version: /bin/sh: gcc: command not found
This error is caused by enable_uninative(), it runs twice (ConfigParsed and
BuildStarted), the error would happen when there is no ConfigParsed event
(no hosttools is created), but BuildStarted. This patch can fix the problem.
[YOCTO #13022]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
meta/classes/base.bbclass | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index f1a3c0e..283cb0f 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -224,7 +224,11 @@ base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.MultiConfigParsed
python base_eventhandler() {
import bb.runqueue
- if isinstance(e, bb.event.ConfigParsed):
+ # There might be no bb.event.ConfigParsed event bitbake server is running,
+ # so check bb.event.BuildStarted to make sure HOSTTOOLS_DIR existed when
+ # BuildStarted.
+ if isinstance(e, bb.event.ConfigParsed) or \
+ (isinstance(e, bb.event.BuildStarted) and not os.path.exists(d.getVar('HOSTTOOLS_DIR'))):
if not d.getVar("NATIVELSBSTRING", False):
d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d))
d.setVar('BB_VERSION', bb.__version__)
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] base.bbclass: Check BuildStarted for HOSTTOOLS
2019-02-14 2:58 ` [PATCH 1/1] " Robert Yang
@ 2019-02-14 3:05 ` Peter Kjellerstedt
2019-02-14 3:22 ` Robert Yang
0 siblings, 1 reply; 6+ messages in thread
From: Peter Kjellerstedt @ 2019-02-14 3:05 UTC (permalink / raw)
To: Robert Yang, openembedded-core@lists.openembedded.org
> -----Original Message-----
> From: openembedded-core-bounces@lists.openembedded.org <openembedded-
> core-bounces@lists.openembedded.org> On Behalf Of Robert Yang
> Sent: den 14 februari 2019 03:59
> To: openembedded-core@lists.openembedded.org
> Subject: [OE-core] [PATCH 1/1] base.bbclass: Check BuildStarted for
> HOSTTOOLS
>
> There might be no bb.event.ConfigParsed event bitbake server is
> running,
> so check bb.event.BuildStarted to make sure HOSTTOOLS_DIR existed when
> BuildStarted.
>
> Fixed:
> $ export BB_SERVER_TIMEOUT=-1
> $ bitbake quilt-native
> $ rm -fr tmp
> $ bitbake quilt-native
> ERROR: Error running gcc --version: /bin/sh: gcc: command not found
>
> This error is caused by enable_uninative(), it runs twice (ConfigParsed
> and
> BuildStarted), the error would happen when there is no ConfigParsed
> event
> (no hosttools is created), but BuildStarted. This patch can fix the
> problem.
>
> [YOCTO #13022]
>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
> meta/classes/base.bbclass | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index f1a3c0e..283cb0f 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -224,7 +224,11 @@ base_eventhandler[eventmask] =
> "bb.event.ConfigParsed bb.event.MultiConfigParsed
> python base_eventhandler() {
> import bb.runqueue
>
> - if isinstance(e, bb.event.ConfigParsed):
> + # There might be no bb.event.ConfigParsed event bitbake server is running,
> + # so check bb.event.BuildStarted to make sure HOSTTOOLS_DIR existed when
> + # BuildStarted.
> + if isinstance(e, bb.event.ConfigParsed) or \
> + (isinstance(e, bb.event.BuildStarted) and not os.path.exists(d.getVar('HOSTTOOLS_DIR'))):
I don't think you want to do this here since not all of this if statement
should be done for the BuildStarted event. I think it is better to add a
separate if statement just for the HOSTTOOLS part (see below). Also, I don't
think you should be checking if the HOSTTOOLS_DIR exists, because the
contents of ${HOSTTOOLS} and ${HOSTTOOLS_NONFATAL} may have changed, in
which case any new tools need to be added to the directory.
> if not d.getVar("NATIVELSBSTRING", False):
> d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d))
> d.setVar('BB_VERSION', bb.__version__)
> --
> 2.7.4
This is my suggestion for how to split the current handling of
bb.event.ConfigParsed (also note that I corrected the comment before the new
if statement):
if isinstance(e, bb.event.ConfigParsed):
if not d.getVar("NATIVELSBSTRING", False):
d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d))
d.setVar('BB_VERSION', bb.__version__)
# There might be no bb.event.ConfigParsed event if the bitbake server is
# running, so check bb.event.BuildStarted too to make sure ${HOSTTOOLS_DIR}
# exists.
if isinstance(e, bb.event.ConfigParsed) or isinstance(e, bb.event.BuildStarted):
# Works with the line in layer.conf which changes PATH to point here
setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS', d)
setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS_NONFATAL', d, fatal=False)
//Peter
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] base.bbclass: Check BuildStarted for HOSTTOOLS
2019-02-14 3:05 ` Peter Kjellerstedt
@ 2019-02-14 3:22 ` Robert Yang
2019-02-14 3:43 ` Peter Kjellerstedt
0 siblings, 1 reply; 6+ messages in thread
From: Robert Yang @ 2019-02-14 3:22 UTC (permalink / raw)
To: Peter Kjellerstedt, openembedded-core@lists.openembedded.org
On 2/14/19 11:05 AM, Peter Kjellerstedt wrote:
>> -----Original Message-----
>> From: openembedded-core-bounces@lists.openembedded.org <openembedded-
>> core-bounces@lists.openembedded.org> On Behalf Of Robert Yang
>> Sent: den 14 februari 2019 03:59
>> To: openembedded-core@lists.openembedded.org
>> Subject: [OE-core] [PATCH 1/1] base.bbclass: Check BuildStarted for
>> HOSTTOOLS
>>
>> There might be no bb.event.ConfigParsed event bitbake server is
>> running,
>> so check bb.event.BuildStarted to make sure HOSTTOOLS_DIR existed when
>> BuildStarted.
>>
>> Fixed:
>> $ export BB_SERVER_TIMEOUT=-1
>> $ bitbake quilt-native
>> $ rm -fr tmp
>> $ bitbake quilt-native
>> ERROR: Error running gcc --version: /bin/sh: gcc: command not found
>>
>> This error is caused by enable_uninative(), it runs twice (ConfigParsed
>> and
>> BuildStarted), the error would happen when there is no ConfigParsed
>> event
>> (no hosttools is created), but BuildStarted. This patch can fix the
>> problem.
>>
>> [YOCTO #13022]
>>
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>> meta/classes/base.bbclass | 6 +++++-
>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
>> index f1a3c0e..283cb0f 100644
>> --- a/meta/classes/base.bbclass
>> +++ b/meta/classes/base.bbclass
>> @@ -224,7 +224,11 @@ base_eventhandler[eventmask] =
>> "bb.event.ConfigParsed bb.event.MultiConfigParsed
>> python base_eventhandler() {
>> import bb.runqueue
>>
>> - if isinstance(e, bb.event.ConfigParsed):
>> + # There might be no bb.event.ConfigParsed event bitbake server is running,
>> + # so check bb.event.BuildStarted to make sure HOSTTOOLS_DIR existed when
>> + # BuildStarted.
>> + if isinstance(e, bb.event.ConfigParsed) or \
>> + (isinstance(e, bb.event.BuildStarted) and not os.path.exists(d.getVar('HOSTTOOLS_DIR'))):
>
> I don't think you want to do this here since not all of this if statement
That can make the code simple and avoid duplicated, the only code which
may run twice is "d.setVar('BB_VERSION', bb.__version__)", I don't think
it's a problem since it is very light.
> should be done for the BuildStarted event. I think it is better to add a
> separate if statement just for the HOSTTOOLS part (see below). Also, I don't
> think you should be checking if the HOSTTOOLS_DIR exists, because the
> contents of ${HOSTTOOLS} and ${HOSTTOOLS_NONFATAL} may have changed, in
> which case any new tools need to be added to the directory.
You don't have to worry about this since bitbake server can handle it when
HOSTTOOLS are changed in conf files, you can try this:
$ export BB_SERVER_TIMEOUT=-1
$ bitbake quilt-native
Add HOSTTOOLS += "passwd" to conf/local.conf, and:
$ bitbake quilt-native
$ ls tmp/hosttools/ | grep passwd
passwd
The passwd will be created.
>
>> if not d.getVar("NATIVELSBSTRING", False):
>> d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d))
>> d.setVar('BB_VERSION', bb.__version__)
>> --
>> 2.7.4
>
> This is my suggestion for how to split the current handling of
> bb.event.ConfigParsed (also note that I corrected the comment before the new
> if statement):
>
> if isinstance(e, bb.event.ConfigParsed):
> if not d.getVar("NATIVELSBSTRING", False):
> d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d))
> d.setVar('BB_VERSION', bb.__version__)
>
> # There might be no bb.event.ConfigParsed event if the bitbake server is
Thanks for the correction.
> # running, so check bb.event.BuildStarted too to make sure ${HOSTTOOLS_DIR}
> # exists.
> if isinstance(e, bb.event.ConfigParsed) or isinstance(e, bb.event.BuildStarted):
I'm afraid that it doesn't work since it would make hosttools generate
twice when bitbake sever is not running, which seems not a good idea.
// Robert
> # Works with the line in layer.conf which changes PATH to point here
> setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS', d)
> setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS_NONFATAL', d, fatal=False)
>
> //Peter
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] base.bbclass: Check BuildStarted for HOSTTOOLS
2019-02-14 3:22 ` Robert Yang
@ 2019-02-14 3:43 ` Peter Kjellerstedt
2019-02-14 6:11 ` Robert Yang
0 siblings, 1 reply; 6+ messages in thread
From: Peter Kjellerstedt @ 2019-02-14 3:43 UTC (permalink / raw)
To: Robert Yang, openembedded-core@lists.openembedded.org
> -----Original Message-----
> From: openembedded-core-bounces@lists.openembedded.org <openembedded-
> core-bounces@lists.openembedded.org> On Behalf Of Robert Yang
> Sent: den 14 februari 2019 04:22
> To: Peter Kjellerstedt <peter.kjellerstedt@axis.com>; openembedded-
> core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH 1/1] base.bbclass: Check BuildStarted for
> HOSTTOOLS
>
> On 2/14/19 11:05 AM, Peter Kjellerstedt wrote:
> >> -----Original Message-----
> >> From: openembedded-core-bounces@lists.openembedded.org
> <openembedded-
> >> core-bounces@lists.openembedded.org> On Behalf Of Robert Yang
> >> Sent: den 14 februari 2019 03:59
> >> To: openembedded-core@lists.openembedded.org
> >> Subject: [OE-core] [PATCH 1/1] base.bbclass: Check BuildStarted for
> >> HOSTTOOLS
> >>
> >> There might be no bb.event.ConfigParsed event bitbake server is
> >> running,
> >> so check bb.event.BuildStarted to make sure HOSTTOOLS_DIR existed
> when
> >> BuildStarted.
> >>
> >> Fixed:
> >> $ export BB_SERVER_TIMEOUT=-1
> >> $ bitbake quilt-native
> >> $ rm -fr tmp
> >> $ bitbake quilt-native
> >> ERROR: Error running gcc --version: /bin/sh: gcc: command not found
> >>
> >> This error is caused by enable_uninative(), it runs twice
> (ConfigParsed
> >> and
> >> BuildStarted), the error would happen when there is no ConfigParsed
> >> event
> >> (no hosttools is created), but BuildStarted. This patch can fix the
> >> problem.
> >>
> >> [YOCTO #13022]
> >>
> >> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> >> ---
> >> meta/classes/base.bbclass | 6 +++++-
> >> 1 file changed, 5 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> >> index f1a3c0e..283cb0f 100644
> >> --- a/meta/classes/base.bbclass
> >> +++ b/meta/classes/base.bbclass
> >> @@ -224,7 +224,11 @@ base_eventhandler[eventmask] =
> >> "bb.event.ConfigParsed bb.event.MultiConfigParsed
> >> python base_eventhandler() {
> >> import bb.runqueue
> >>
> >> - if isinstance(e, bb.event.ConfigParsed):
> >> + # There might be no bb.event.ConfigParsed event bitbake server
> is running,
> >> + # so check bb.event.BuildStarted to make sure HOSTTOOLS_DIR
> existed when
> >> + # BuildStarted.
> >> + if isinstance(e, bb.event.ConfigParsed) or \
> >> + (isinstance(e, bb.event.BuildStarted) and not
> os.path.exists(d.getVar('HOSTTOOLS_DIR'))):
> >
> > I don't think you want to do this here since not all of this if
> statement
>
> That can make the code simple and avoid duplicated, the only code which
> may run twice is "d.setVar('BB_VERSION', bb.__version__)", I don't
> think it's a problem since it is very light.
Well, true, but I still don't think you should mix them. Have one case
for what only needs to be done for bb.event.ConfigParsed, one for only
bb.event.BuildStarted and one for either.
> > should be done for the BuildStarted event. I think it is better to
> add a
> > separate if statement just for the HOSTTOOLS part (see below). Also,
> I don't
> > think you should be checking if the HOSTTOOLS_DIR exists, because the
> > contents of ${HOSTTOOLS} and ${HOSTTOOLS_NONFATAL} may have changed,
> in
> > which case any new tools need to be added to the directory.
>
> You don't have to worry about this since bitbake server can handle it
> when HOSTTOOLS are changed in conf files, you can try this:
>
> $ export BB_SERVER_TIMEOUT=-1
> $ bitbake quilt-native
>
> Add HOSTTOOLS += "passwd" to conf/local.conf, and:
>
> $ bitbake quilt-native
> $ ls tmp/hosttools/ | grep passwd
> passwd
>
> The passwd will be created.
>
> >
> >> if not d.getVar("NATIVELSBSTRING", False):
> >> d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d))
> >> d.setVar('BB_VERSION', bb.__version__)
> >> --
> >> 2.7.4
> >
> > This is my suggestion for how to split the current handling of
> > bb.event.ConfigParsed (also note that I corrected the comment before
> > the new if statement):
> >
> > if isinstance(e, bb.event.ConfigParsed):
> > if not d.getVar("NATIVELSBSTRING", False):
> > d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d))
> > d.setVar('BB_VERSION', bb.__version__)
> >
> > # There might be no bb.event.ConfigParsed event if the bitbake server is
>
> Thanks for the correction.
>
> > # running, so check bb.event.BuildStarted too to make sure ${HOSTTOOLS_DIR}
> > # exists.
> > if isinstance(e, bb.event.ConfigParsed) or isinstance(e, bb.event.BuildStarted):
>
> I'm afraid that it doesn't work since it would make hosttools generate
> twice when bitbake sever is not running, which seems not a good idea.
I don't think that's a problem in practice since the generation of
${HOSTTOLS_DIR} should be pretty fast if it is already populated, but I
guess you could use your original if statement to avoid that:
if isinstance(e, bb.event.ConfigParsed) or \
(isinstance(e, bb.event.BuildStarted) and not os.path.exists(d.getVar('HOSTTOOLS_DIR'))):
> // Robert
>
> > # Works with the line in layer.conf which changes PATH to point here
> > setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS', d)
> > setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS_NONFATAL', d, fatal=False)
> >
> > //Peter
> >
> >
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] base.bbclass: Check BuildStarted for HOSTTOOLS
2019-02-14 3:43 ` Peter Kjellerstedt
@ 2019-02-14 6:11 ` Robert Yang
0 siblings, 0 replies; 6+ messages in thread
From: Robert Yang @ 2019-02-14 6:11 UTC (permalink / raw)
To: Peter Kjellerstedt, openembedded-core@lists.openembedded.org
On 2/14/19 11:43 AM, Peter Kjellerstedt wrote:
>> -----Original Message-----
>> From: openembedded-core-bounces@lists.openembedded.org <openembedded-
>> core-bounces@lists.openembedded.org> On Behalf Of Robert Yang
>> Sent: den 14 februari 2019 04:22
>> To: Peter Kjellerstedt <peter.kjellerstedt@axis.com>; openembedded-
>> core@lists.openembedded.org
>> Subject: Re: [OE-core] [PATCH 1/1] base.bbclass: Check BuildStarted for
>> HOSTTOOLS
>>
>> On 2/14/19 11:05 AM, Peter Kjellerstedt wrote:
>>>> -----Original Message-----
>>>> From: openembedded-core-bounces@lists.openembedded.org
>> <openembedded-
>>>> core-bounces@lists.openembedded.org> On Behalf Of Robert Yang
>>>> Sent: den 14 februari 2019 03:59
>>>> To: openembedded-core@lists.openembedded.org
>>>> Subject: [OE-core] [PATCH 1/1] base.bbclass: Check BuildStarted for
>>>> HOSTTOOLS
>>>>
>>>> There might be no bb.event.ConfigParsed event bitbake server is
>>>> running,
>>>> so check bb.event.BuildStarted to make sure HOSTTOOLS_DIR existed
>> when
>>>> BuildStarted.
>>>>
>>>> Fixed:
>>>> $ export BB_SERVER_TIMEOUT=-1
>>>> $ bitbake quilt-native
>>>> $ rm -fr tmp
>>>> $ bitbake quilt-native
>>>> ERROR: Error running gcc --version: /bin/sh: gcc: command not found
>>>>
>>>> This error is caused by enable_uninative(), it runs twice
>> (ConfigParsed
>>>> and
>>>> BuildStarted), the error would happen when there is no ConfigParsed
>>>> event
>>>> (no hosttools is created), but BuildStarted. This patch can fix the
>>>> problem.
>>>>
>>>> [YOCTO #13022]
>>>>
>>>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>>>> ---
>>>> meta/classes/base.bbclass | 6 +++++-
>>>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
>>>> index f1a3c0e..283cb0f 100644
>>>> --- a/meta/classes/base.bbclass
>>>> +++ b/meta/classes/base.bbclass
>>>> @@ -224,7 +224,11 @@ base_eventhandler[eventmask] =
>>>> "bb.event.ConfigParsed bb.event.MultiConfigParsed
>>>> python base_eventhandler() {
>>>> import bb.runqueue
>>>>
>>>> - if isinstance(e, bb.event.ConfigParsed):
>>>> + # There might be no bb.event.ConfigParsed event bitbake server
>> is running,
>>>> + # so check bb.event.BuildStarted to make sure HOSTTOOLS_DIR
>> existed when
>>>> + # BuildStarted.
>>>> + if isinstance(e, bb.event.ConfigParsed) or \
>>>> + (isinstance(e, bb.event.BuildStarted) and not
>> os.path.exists(d.getVar('HOSTTOOLS_DIR'))):
>>>
>>> I don't think you want to do this here since not all of this if
>> statement
>>
>> That can make the code simple and avoid duplicated, the only code which
>> may run twice is "d.setVar('BB_VERSION', bb.__version__)", I don't
>> think it's a problem since it is very light.
>
> Well, true, but I still don't think you should mix them. Have one case
> for what only needs to be done for bb.event.ConfigParsed, one for only
> bb.event.BuildStarted and one for either.
Yeah, it's not a big problem, I will update it in V2.
>
>>> should be done for the BuildStarted event. I think it is better to
>> add a
>>> separate if statement just for the HOSTTOOLS part (see below). Also,
>> I don't
>>> think you should be checking if the HOSTTOOLS_DIR exists, because the
>>> contents of ${HOSTTOOLS} and ${HOSTTOOLS_NONFATAL} may have changed,
>> in
>>> which case any new tools need to be added to the directory.
>>
>> You don't have to worry about this since bitbake server can handle it
>> when HOSTTOOLS are changed in conf files, you can try this:
>>
>> $ export BB_SERVER_TIMEOUT=-1
>> $ bitbake quilt-native
>>
>> Add HOSTTOOLS += "passwd" to conf/local.conf, and:
>>
>> $ bitbake quilt-native
>> $ ls tmp/hosttools/ | grep passwd
>> passwd
>>
>> The passwd will be created.
>>
>>>
>>>> if not d.getVar("NATIVELSBSTRING", False):
>>>> d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d))
>>>> d.setVar('BB_VERSION', bb.__version__)
>>>> --
>>>> 2.7.4
>>>
>>> This is my suggestion for how to split the current handling of
>>> bb.event.ConfigParsed (also note that I corrected the comment before
>>> the new if statement):
>>>
>>> if isinstance(e, bb.event.ConfigParsed):
>>> if not d.getVar("NATIVELSBSTRING", False):
>>> d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d))
>>> d.setVar('BB_VERSION', bb.__version__)
>>>
>>> # There might be no bb.event.ConfigParsed event if the bitbake server is
>>
>> Thanks for the correction.
>>
>>> # running, so check bb.event.BuildStarted too to make sure ${HOSTTOOLS_DIR}
>>> # exists.
>>> if isinstance(e, bb.event.ConfigParsed) or isinstance(e, bb.event.BuildStarted):
>>
>> I'm afraid that it doesn't work since it would make hosttools generate
>> twice when bitbake sever is not running, which seems not a good idea.
>
> I don't think that's a problem in practice since the generation of
It may cause a race issue when tools in tmp/hosttools are being used, but
BuildStarted removes them at the same time.
// Robert
> ${HOSTTOLS_DIR} should be pretty fast if it is already populated, but I
> guess you could use your original if statement to avoid that:
>
> if isinstance(e, bb.event.ConfigParsed) or \
> (isinstance(e, bb.event.BuildStarted) and not os.path.exists(d.getVar('HOSTTOOLS_DIR'))):
>
>> // Robert
>>
>>> # Works with the line in layer.conf which changes PATH to point here
>>> setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS', d)
>>> setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS_NONFATAL', d, fatal=False)
>>>
>>> //Peter
>>>
>>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-02-14 6:07 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-14 2:58 [PATCH 0/1] base.bbclass: Check BuildStarted for HOSTTOOLS Robert Yang
2019-02-14 2:58 ` [PATCH 1/1] " Robert Yang
2019-02-14 3:05 ` Peter Kjellerstedt
2019-02-14 3:22 ` Robert Yang
2019-02-14 3:43 ` Peter Kjellerstedt
2019-02-14 6:11 ` Robert Yang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox