From: Richard Purdie Date: Thu, 9 Jun 2022 10:52:14 +0000 (+0100) Subject: base/buildhistory/image-buildinfo: Use common buildcfg function X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~3880 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b191a1df4c3722defb09dde0c16b1d9e7fe7ef6;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git base/buildhistory/image-buildinfo: Use common buildcfg function Reduce code duplication to a common function in oe.buildcfg. Signed-off-by: Richard Purdie --- diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index f59e95fef06..20968a50766 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -218,11 +218,8 @@ def get_source_date_epoch_value(d): return oe.reproducible.epochfile_read(d.getVar('SDE_FILE'), d) def get_layers_branch_rev(d): - layers = (d.getVar("BBLAYERS") or "").split() - layers_branch_rev = ["%-20s = \"%s:%s\"" % (os.path.basename(i), \ - oe.buildcfg.get_metadata_git_branch(i, None).strip(), \ - oe.buildcfg.get_metadata_git_revision(i, None)) \ - for i in layers] + revisions = oe.buildcfg.get_layer_revisions(d) + layers_branch_rev = ["%-20s = \"%s:%s\"" % (r[1], r[2], r[3]) for r in revisions] i = len(layers_branch_rev)-1 p1 = layers_branch_rev[i].find("=") s1 = layers_branch_rev[i][p1:] diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass index 6fffd471896..4ba9ec8f25d 100644 --- a/meta/classes/buildhistory.bbclass +++ b/meta/classes/buildhistory.bbclass @@ -742,13 +742,9 @@ def buildhistory_get_build_id(d): return('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines))) def buildhistory_get_metadata_revs(d): - # We want an easily machine-readable format here, so get_layers_branch_rev isn't quite what we want - layers = (d.getVar("BBLAYERS") or "").split() - medadata_revs = ["%-17s = %s:%s%s" % (os.path.basename(i), \ - oe.buildcfg.get_metadata_git_branch(i, None).strip(), \ - oe.buildcfg.get_metadata_git_revision(i, None), \ - oe.buildcfg.is_layer_modified(i)) \ - for i in layers] + # We want an easily machine-readable format here + revisions = oe.buildcfg.get_layer_revisions(d) + medadata_revs = ["%-17s = %s:%s%s" % (r[1], r[2], r[3], r[4]) for r in revisions] return '\n'.join(medadata_revs) def outputvars(vars, listvars, d): diff --git a/meta/classes/image-buildinfo.bbclass b/meta/classes/image-buildinfo.bbclass index c149660f31a..d4a12b5e102 100644 --- a/meta/classes/image-buildinfo.bbclass +++ b/meta/classes/image-buildinfo.bbclass @@ -28,12 +28,8 @@ def image_buildinfo_outputvars(vars, d): # Returns layer revisions along with their respective status def get_layer_revs(d): - layers = (d.getVar("BBLAYERS") or "").split() - medadata_revs = ["%-17s = %s:%s %s" % (os.path.basename(i), \ - oe.buildcfg.get_metadata_git_branch(i, None).strip(), \ - oe.buildcfg.get_metadata_git_revision(i, None), \ - oe.buildcfg.is_layer_modified(i)) \ - for i in layers] + revisions = oe.buildcfg.get_layer_revisions(d) + medadata_revs = ["%-17s = %s:%s%s" % (r[1], r[2], r[3], r[4]) for r in revisions] return '\n'.join(medadata_revs) def buildinfo_target(d): diff --git a/meta/lib/oe/buildcfg.py b/meta/lib/oe/buildcfg.py index 364c40a2f02..90f5e057153 100644 --- a/meta/lib/oe/buildcfg.py +++ b/meta/lib/oe/buildcfg.py @@ -40,3 +40,10 @@ def is_layer_modified(path): # (expected) return code 1 in a modified git repo. For example, we get # output and a 129 return code when a layer isn't a git repo at all. return " -- modified" + +def get_layer_revisions(d): + layers = (d.getVar("BBLAYERS") or "").split() + revisions = [] + for i in layers: + revisions.append((i, os.path.basename(i), get_metadata_git_branch(i, None).strip(), get_metadata_git_revision(i, None), is_layer_modified(i))) + return revisions