[OE-core] [PATCH] buildhistory: record tag names and show warning when the same tag corresponds to different revision
Martin Jansa
martin.jansa at gmail.com
Wed Apr 3 08:24:50 UTC 2013
On Mon, Apr 01, 2013 at 02:50:44PM +0200, Martin Jansa wrote:
> * persistent cache records tag-srcrev mappings, but is not shared between builders
> * when tag is moved in remote repo, all builders should rebuild the component to
> use the same source, show warning when revision is different than what was used
> in last build
>
> Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
> ---
> meta/classes/buildhistory.bbclass | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
> index 82d0bf8..760075f 100644
> --- a/meta/classes/buildhistory.bbclass
> +++ b/meta/classes/buildhistory.bbclass
> @@ -546,6 +546,10 @@ def _get_srcrev_values(d):
> if rev.startswith(autoinc_templ):
> rev = rev[len(autoinc_templ):]
> dict[name] = rev
> + if 'tag' in ud.parm:
> + tag = ud.parm['tag'];
> + key = 'tag_'+name+'_'+tag
> + dict[key] = rev
> return dict
>
> python do_write_srcrev() {
> @@ -556,8 +560,18 @@ python do_write_srcrev() {
> if srcrevs:
> if not os.path.exists(pkghistdir):
> os.makedirs(pkghistdir)
> + data = {}
> + if os.path.exists(srcrevfile):
> + with open(srcrevfile) as f:
> + for line in f:
> + if line.startswith('# tag_'):
> + key, value = line.split("=", 1)
> + key = key.replace('# ', '').strip()
> + value = value.replace('"', '').strip()
> + data[key] = value
> with open(srcrevfile, 'w') as f:
> orig_srcrev = d.getVar('SRCREV', False) or 'INVALID'
> + pkg = d.getVar('PN', True)
> if orig_srcrev != 'INVALID':
> f.write('# SRCREV = "%s"\n' % orig_srcrev)
> if len(srcrevs) > 1:
Please hold this patch, this len(srcrevs) doesn't work anymore to detect
multiple names (when there is another line for tag-srcrev).
So it's causing changes like this for every recipe with 1 git repo in
SRC_URI with tag parameter:
-SRCREV = "594dbb8992b42a33f78b57c15f194fae0923a7f8"
+SRCREV_default = "594dbb8992b42a33f78b57c15f194fae0923a7f8"
> @@ -565,6 +579,12 @@ python do_write_srcrev() {
> orig_srcrev = d.getVar('SRCREV_%s' % name, False)
> if orig_srcrev:
> f.write('# SRCREV_%s = "%s"\n' % (name, orig_srcrev))
> + if name.startswith('tag_'):
> + f.write('# %s = "%s"\n' % (name, srcrev))
> + if name in data and data[name] != srcrev:
> + bb.warn("Revision for tag %s in package %s was changed since last build (from %s to %s)" % (name, pkg, data[name], srcrev))
> + continue
> +
> f.write('SRCREV_%s = "%s"\n' % (name, srcrev))
> else:
> f.write('SRCREV = "%s"\n' % srcrevs.itervalues().next())
> --
> 1.8.1.5
>
--
Martin 'JaMa' Jansa jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20130403/ebb322e7/attachment-0002.sig>
More information about the Openembedded-core
mailing list