[poky] [PATCH 2/3] bitbake: Introduce stamp-extra-info into build stamp file

Xu, Dongxiao dongxiao.xu at intel.com
Sun Jan 9 19:07:43 PST 2011


Richard Purdie wrote:
> On Sat, 2011-01-08 at 23:53 +0800, Dongxiao Xu wrote:
>> For certain tasks, we need additional information in build stamp file
>> except the task name and file name. stamp-extra-info is introduced as
>> an flag adding to the end of stamp file name.
>> 
>> We also implement a blacklist, in which extra stamp information will
>> not be added.
> 
> To be honest I much preferred the original version of this patch. The
> problem with this approach is that the data dictionary you're storing
> in the siggen code is just the global config data dict. This means
> that if any recipe customises BB_STAMP_EXTRA or the stamp-extra-into
> flag, those changes will not be seen by this code. This is why your
> original of extracting the flag at parse time and caching it was
> better.      

Hi Richard,

I used the new method to handle stamp in bitbake because I could not avoid adding extra info for native stamps with previous implementation.

I noticed an strange issue with the previous code that, if I set:

do_populate_sysroot[stamp-extra-info] = "${MACHINE}" in staging.bbclass.

and set:

do_populate_sysroot[stamp-extra-info] = "" in native.bbclass.

The above code will not work. For native recipes, what stored in the data cache was tagged with the "${MACHINE}" info.

Is it because the cache data parsing is handled before the inherit of native bbclass?

Thanks,
Dongxiao

> 
> I appreciate the code in those areas has changed but the original
> patch should translate relatively easily. 
> 
> Also note that re.compile is expensive so you'd do that at init time,
> not for each stampfile. 
> 
> Cheers,
> 
> Richard
> 
>> Signed-off-by: Dongxiao Xu <dongxiao.xu at intel.com>
>> ---
>>  bitbake/lib/bb/siggen.py |   14 +++++++++++++-
>>  1 files changed, 13 insertions(+), 1 deletions(-)
>> 
>> diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
>> index 4dc09b3..6c5a227 100644 --- a/bitbake/lib/bb/siggen.py
>> +++ b/bitbake/lib/bb/siggen.py
>> @@ -43,7 +43,17 @@ class SignatureGenerator(object):          return
>> 
>>      def stampfile(self, stampbase, file_name, taskname):
>> -        return "%s.%s" % (stampbase, taskname)
>> +        stamp_extra_info = (self.data.getVarFlag(taskname,
>> + 'stamp-extra-info', True) or self.data.getVar('BB_STAMP_EXTRA', +
>> True) or "") +
>> +        if self.stampblacklist:
>> +            self.sbl = re.compile(self.stampblacklist) +       
>> else: +            self.sbl = None
>> +
>> +        if self.sbl and self.sbl.search(file_name):
>> +            return "%s.%s" % (stampbase, taskname) +
>> +        return ("%s.%s.%s" % (stampbase, taskname,
>> + stamp_extra_info)).rstrip('.')
>> 
>>  class SignatureGeneratorBasic(SignatureGenerator):      """
>> @@ -59,6 +69,8 @@ class SignatureGeneratorBasic(SignatureGenerator):
>>          self.lookupcache = {}
>>          self.basewhitelist = (data.getVar("BB_HASHBASE_WHITELIST",
>>          True) or "").split() self.taskwhitelist =
>> data.getVar("BB_HASHTASK_WHITELIST", 
>> True) or None
>> +        self.stampblacklist = data.getVar("BB_STAMPTASK_BLACKLIST",
>> True) or None +        self.data = data 
>> 
>>          if self.taskwhitelist:
>>              self.twl = re.compile(self.taskwhitelist)




More information about the poky mailing list