mirror of
https://git.yoctoproject.org/poky
synced 2026-04-22 15:32:14 +02:00
classes/buildhistory: Add option to strip path prefix
Adds an option to strip a prefix from the paths reported in buildhistory. This makes it easier to compare task signatures in the build history when the builds were done from different directories. (From OE-Core rev: 194e7a29212c4a29222730f47d3133dfe92447c1) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
c26ea554a7
commit
ba491952ee
@@ -43,6 +43,7 @@ BUILDHISTORY_COMMIT ?= "1"
|
||||
BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>"
|
||||
BUILDHISTORY_PUSH_REPO ?= ""
|
||||
BUILDHISTORY_TAG ?= "build"
|
||||
BUILDHISTORY_PATH_PREFIX_STRIP ?= ""
|
||||
|
||||
SSTATEPOSTINSTFUNCS_append = " buildhistory_emit_pkghistory"
|
||||
# We want to avoid influencing the signatures of sstate tasks - first the function itself:
|
||||
@@ -697,7 +698,7 @@ python buildhistory_write_sigs() {
|
||||
if hasattr(bb.parse.siggen, 'dump_siglist'):
|
||||
taskoutdir = os.path.join(d.getVar('BUILDHISTORY_DIR'), 'task')
|
||||
bb.utils.mkdirhier(taskoutdir)
|
||||
bb.parse.siggen.dump_siglist(os.path.join(taskoutdir, 'tasksigs.txt'))
|
||||
bb.parse.siggen.dump_siglist(os.path.join(taskoutdir, 'tasksigs.txt'), d.getVar("BUILDHISTORY_PATH_PREFIX_STRIP"))
|
||||
}
|
||||
|
||||
def buildhistory_get_build_id(d):
|
||||
|
||||
@@ -248,13 +248,24 @@ class SignatureGeneratorOEBasicHashMixIn(object):
|
||||
f.write(' "\n')
|
||||
f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(l)))
|
||||
|
||||
def dump_siglist(self, sigfile):
|
||||
def dump_siglist(self, sigfile, path_prefix_strip=None):
|
||||
def strip_fn(fn):
|
||||
nonlocal path_prefix_strip
|
||||
if not path_prefix_strip:
|
||||
return fn
|
||||
|
||||
fn_exp = fn.split(":")
|
||||
if fn_exp[-1].startswith(path_prefix_strip):
|
||||
fn_exp[-1] = fn_exp[-1][len(path_prefix_strip):]
|
||||
|
||||
return ":".join(fn_exp)
|
||||
|
||||
with open(sigfile, "w") as f:
|
||||
tasks = []
|
||||
for taskitem in self.taskhash:
|
||||
(fn, task) = taskitem.rsplit(":", 1)
|
||||
pn = self.lockedpnmap[fn]
|
||||
tasks.append((pn, task, fn, self.taskhash[taskitem]))
|
||||
tasks.append((pn, task, strip_fn(fn), self.taskhash[taskitem]))
|
||||
for (pn, task, fn, taskhash) in sorted(tasks):
|
||||
f.write('%s:%s %s %s\n' % (pn, task, fn, taskhash))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user