Can you please also add a function that tells if bitbake is in a separate repo, or bundled with poky? This would help various tooling that is being developed for setting up layers and builds, or creating configurations for those tasks out of pre-existing yocto setups.
Alex On Wed, 11 Sept 2024 at 15:13, Robert Yang via lists.openembedded.org <[email protected]> wrote: > > From: Robert Yang <[email protected]> > > There is no bitbake revision when it is in a separate repo, then we have no > way > to know which version of bitbake is used from the log, this patch always > prints > it. > > * console-latest.log > bitbake = "master:165368bad152a14b32b5216b938aa4b915d72a70" > meta > meta-poky > meta-yocto-bsp = "master:165368bad152a14b32b5216b938aa4b915d72a70" > > * buildhistory/metadata-revs > bitbake = master:165368bad152a14b32b5216b938aa4b915d72a70 -- > modified > [snip] > > * buildhistory/metadata-revs > ----------------------- > Build Configuration: | > ----------------------- > DISTRO = poky > DISTRO_VERSION = 5.0+snapshot-165368bad152a14b32b5216b938aa4b915d72a70 > ----------------------- > Bitbake Revision: | > ----------------------- > bitbake = master:165368bad152a14b32b5216b938aa4b915d72a70 -- > modified > ----------------------- > Layer Revisions: | > ----------------------- > [snip] > > Signed-off-by: Robert Yang <[email protected]> > --- > meta/classes-global/base.bbclass | 10 +++++++--- > meta/classes/buildhistory.bbclass | 5 +++-- > meta/classes/image-buildinfo.bbclass | 13 +++++++++++-- > meta/lib/oe/buildcfg.py | 13 +++++++++++++ > 4 files changed, 34 insertions(+), 7 deletions(-) > > diff --git a/meta/classes-global/base.bbclass > b/meta/classes-global/base.bbclass > index b6940bbb6f..85c7cb8c24 100644 > --- a/meta/classes-global/base.bbclass > +++ b/meta/classes-global/base.bbclass > @@ -226,9 +226,13 @@ do_unpack[postfuncs] += "create_source_date_epoch_stamp" > def get_source_date_epoch_value(d): > return oe.reproducible.epochfile_read(d.getVar('SDE_FILE'), d) > > +def get_bitbake_branch_rev(d): > + revisions = oe.buildcfg.get_bitbake_revision() > + return oe.buildcfg.get_branch_rev3(revisions) > + > def get_layers_branch_rev(d): > revisions = oe.buildcfg.get_layer_revisions(d) > - layers_branch_rev = ["%-20s = \"%s:%s\"" % (r[1], r[2], r[3]) for r in > revisions] > + layers_branch_rev = oe.buildcfg.get_branch_rev3(revisions) > i = len(layers_branch_rev)-1 > p1 = layers_branch_rev[i].find("=") > s1 = layers_branch_rev[i][p1:] > @@ -241,11 +245,11 @@ def get_layers_branch_rev(d): > else: > i -= 1 > p1 = layers_branch_rev[i].find("=") > - s1= layers_branch_rev[i][p1:] > + s1 = layers_branch_rev[i][p1:] > return layers_branch_rev > > > -BUILDCFG_FUNCS ??= "buildcfg_vars get_layers_branch_rev buildcfg_neededvars" > +BUILDCFG_FUNCS ??= "buildcfg_vars get_bitbake_branch_rev > get_layers_branch_rev buildcfg_neededvars" > BUILDCFG_FUNCS[type] = "list" > > def buildcfg_vars(d): > diff --git a/meta/classes/buildhistory.bbclass > b/meta/classes/buildhistory.bbclass > index ce3abaa69d..50516e6533 100644 > --- a/meta/classes/buildhistory.bbclass > +++ b/meta/classes/buildhistory.bbclass > @@ -764,8 +764,9 @@ def buildhistory_get_build_id(d): > > def buildhistory_get_metadata_revs(d): > # 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] > + revisions = oe.buildcfg.get_bitbake_revision() > + revisions.extend(oe.buildcfg.get_layer_revisions(d)) > + medadata_revs = oe.buildcfg.get_branch_rev4(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 b83ce650ad..7b5f84854c 100644 > --- a/meta/classes/image-buildinfo.bbclass > +++ b/meta/classes/image-buildinfo.bbclass > @@ -27,11 +27,14 @@ def image_buildinfo_outputvars(vars, d): > ret += "%s = %s\n" % (var, value) > return ret.rstrip('\n') > > +def get_bitbake_rev(d): > + revision = oe.buildcfg.get_bitbake_revision() > + return '\n'.join(oe.buildcfg.get_branch_rev4(revision)) > + > # Returns layer revisions along with their respective status > def get_layer_revs(d): > 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) > + return '\n'.join(oe.buildcfg.get_branch_rev4(revisions)) > > def buildinfo_target(d): > # Get context > @@ -55,6 +58,12 @@ Build Configuration: | > buildinfo_target(d), > ''' > ----------------------- > +Bitbake Revision: | > +----------------------- > +''', > + get_bitbake_rev(d), > + ''' > +----------------------- > Layer Revisions: | > ----------------------- > ''', > diff --git a/meta/lib/oe/buildcfg.py b/meta/lib/oe/buildcfg.py > index 4b22f18f36..dab4aa7831 100644 > --- a/meta/lib/oe/buildcfg.py > +++ b/meta/lib/oe/buildcfg.py > @@ -71,6 +71,19 @@ def is_layer_modified(path): > # output and a 129 return code when a layer isn't a git repo at all. > return " -- modified" > > +def get_branch_rev3(revisions): > + # Return 3 items for each revision > + return ["%-20s = \"%s:%s\"" % (r[1], r[2], r[3]) for r in revisions] > + > +def get_branch_rev4(revisions): > + # Return 4 items for each revision > + return ["%-17s = %s:%s%s" % (r[1], r[2], r[3], r[4]) for r in revisions] > + > +def get_bitbake_revision(): > + bbdir = bb.__file__.rsplit('/', 3)[0] > + return [(bbdir, os.path.basename(bbdir), > get_metadata_git_branch(bbdir).strip(), \ > + get_metadata_git_revision(bbdir), is_layer_modified(bbdir))] > + > def get_layer_revisions(d): > layers = (d.getVar("BBLAYERS") or "").split() > revisions = [] > -- > 2.44.1 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#204387): https://lists.openembedded.org/g/openembedded-core/message/204387 Mute This Topic: https://lists.openembedded.org/mt/108393122/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
