From: Mark Hatle <mark.hatle@windriver.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>,
Hongxu Jia <hongxu.jia@windriver.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/3] sstatesig: Only dump incremental locked signatures
Date: Thu, 18 Sep 2014 08:56:38 -0500 [thread overview]
Message-ID: <541AE496.3010502@windriver.com> (raw)
In-Reply-To: <1411048067.4736.8.camel@ted>
On 9/18/14, 8:47 AM, Richard Purdie wrote:
> On Thu, 2014-09-18 at 15:23 +0800, Hongxu Jia wrote:
>> The idea of incremental sig is:
>>
>> New sig file = Old sig file (if available) + New sig items in current build.
>>
>> The condition of incremental locked signature dump is an existed locked sig
>> file is required and it is also the dump sig file.
>>
>> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
>> ---
>> meta/lib/oe/sstatesig.py | 12 ++++++++----
>> 1 file changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
>> index af7617e..56fd953 100644
>> --- a/meta/lib/oe/sstatesig.py
>> +++ b/meta/lib/oe/sstatesig.py
>> @@ -151,19 +151,23 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash):
>> types[t] = []
>> types[t].append(k)
>>
>> - with open(sigfile, "w") as f:
>> + with open(sigfile, "a") as f:
>> for t in types:
>> - f.write('SIGGEN_LOCKEDSIGS_%s = "\\\n' % t)
>> + f.write('SIGGEN_LOCKEDSIGS_%s += "\\\n' % t)
>> types[t].sort()
>> sortedk = sorted(types[t], key=lambda k: self.lockedpnmap[k.rsplit(".",1)[0]])
>> for k in sortedk:
>> fn = k.rsplit(".",1)[0]
>> + pn = self.lockedpnmap[fn]
>> task = k.rsplit(".",1)[1]
>> if k not in self.taskhash:
>> continue
>> - f.write(" " + self.lockedpnmap[fn] + ":" + task + ":" + self.taskhash[k] + " \\\n")
>> + if pn in self.lockedsigs and task in self.lockedsigs[pn] and self.taskhash[k] == self.lockedsigs[pn][task]:
>> + continue
>> + sigentry = pn + ":" + task + ":" + self.taskhash[k]
>> + f.write(" " + sigentry + " \\\n")
>> f.write(' "\n')
>> - f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(types.keys())))
>> + f.write('SIGGEN_LOCKEDSIGS_TYPES_%s += "%s"\n' % (self.machine, " ".join(types.keys())))
>>
>> def checkhashes(self, missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d):
>> checklevel = d.getVar("SIGGEN_LOCKEDSIGS_CHECK_LEVEL", True)
>
> I'm afraid I'm starting to feel very strongly this is not a direction we
> should move in. Having the ability to write out a .inc file containing
> on a delta is one thing, writing out a file for automatic inclusion and
> trying to maintain that file is not something I feel comfortable with.
>
> I think that at some point there needs to be external tooling handling
> the inclusion and updating of this file and that the sigs code is not
> the place for this.
>
> For example, consider the case where you switch machines and want to
> share an include file between these machines. With the changes proposed
> in this patch series it will simply overwrite the file and remove the
> entries for the other machine.
>
> We could keep trying to patch up this code to cover every combination
> and eventuality but in the end, I believe the maintenance of this file
> should be something external, the sigs code should only be concerned
> with the generation of the core entries.
This is why I was originally advocating a whitelist/blacklist approach with the
read-only [or warn/error] sstate-cache approach. It really is different then
the locked signature.
The users want to use what they have that match the generated hashes, or get a
warning/error -- unless the item is whitelisted.
They only need to manage a small list of the "things they changed" to support
the white listing, and no complicated hashes are needed.
--Mark
> Cheers,
>
> Richard
>
>
>
>
next prev parent reply other threads:[~2014-09-18 13:56 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-18 7:23 [PATCH V3 0/3] sstatesig: add support to dump incremental locked signatures Hongxu Jia
2014-09-18 7:23 ` [PATCH 1/3] sstatesig: Only " Hongxu Jia
2014-09-18 13:47 ` Richard Purdie
2014-09-18 13:56 ` Mark Hatle [this message]
2014-09-18 15:10 ` Hongxu Jia
2014-09-18 16:47 ` Hongxu Jia
2014-09-18 7:23 ` [PATCH 2/3] sstatesig: add new item checking for locked signature dump Hongxu Jia
2014-09-18 7:23 ` [PATCH 3/3] sstatesig: fix to support unincremental " Hongxu Jia
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=541AE496.3010502@windriver.com \
--to=mark.hatle@windriver.com \
--cc=hongxu.jia@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox