[oe] Usage of NATIVE_INSTALL_WORKS

Chris Larson clarson at kergoth.com
Tue Aug 17 18:17:05 UTC 2010


On Tue, Aug 17, 2010 at 10:48 AM, Tom Rini <tom_rini at mentor.com> wrote:

> Chris Larson wrote:
>
>> On Mon, Aug 16, 2010 at 4:37 AM, Enrico Scholz <
>> enrico.scholz at sigma-chemnitz.de> wrote:
>>
>>  Hi,
>>>
>>> http://wiki.openembedded.org/index.php/Legacy_staging states that
>>> NATIVE_INSTALL_WORKS must be set when there is a non trivial
>>> do_install() function and BBCLASSEXTEND is used.
>>>
>>> But
>>>
>>> | git grep NATIVE_INSTALL_WORKS conf/ classes/ lib/
>>>
>>> shows only one place where this variable is evaluated:
>>>
>>> | classes/staging.bbclass:    elif bb.data.getVar('NATIVE_INSTALL_WORKS',
>>> d, 1) == "1":
>>> | classes/staging.bbclass-        legacy = False
>>>
>>> And there, it is used only in the is_legacy_staging() function, to
>>> override legacy/non-legacy detection results.
>>>
>>>
>>> Is there still any use for this variable in modern staging?  Or shall it
>>> be purged from non-legacy recipes?
>>>
>>
>>
>> If you purge it from particular non-legacy recipes, the legacy detection
>> code will misidentify those as legacy and fail to do the correct thing.
>>
>
> Can we update the wiki page to expand on when this is needed a little bit
> more then?  My quick read of is_legacy_staging() says that if do_stage is
> empty (and it should be if you convert from do_stage to do_install right)
> NATIVE_INSTALL_WORKS shouldn't be needed.


Removing the do_stage function from the recipe doesn't necessarily result in
an empty do_stage.  If you look at native.bbclass, you'll see that do_stage
is do_stage_native.  If your do_stage is do_stage_native and you haven't set
AUTOTOOLS_NATIVE_STAGE_INSTALL, it'll fall back to legacy staging, at least
if I'm reading is_legacy_staging correctly.
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics



More information about the Openembedded-devel mailing list