[bitbake-devel] [PATCH] bitbake: layerindex: use branch when specified
Jon Mason
jdmason at kudzu.us
Thu Dec 19 17:02:05 UTC 2019
On Thu, Dec 19, 2019 at 11:18 AM Mark Hatle
<mark.hatle at kernel.crashing.org> wrote:
>
> I just realized I wasn't clear with my reply yesterday. I will start with Jon's
> patch, and make the change and test it and then send up a V2. (Since I was
> already working on that code.)
Oh, I was literally about to send out v2 with your fixup (sanity
testing it now). I'll nix that now.
Thanks,
Jon
>
> --Mark
>
> On 12/18/19 8:44 PM, Mark Hatle wrote:
> > I just found this same issue and was working on a fix. What you have below is
> > almsot correct, however the value of the branch is NOT args.branch.
> >
> > args.branch specifies the branch of the layerindex, but the layerindex
> > internally knows the name of the branch corresponding the release branch.
> >
> > You actually need to get the 'actual_branch' value from the layerBranch item.
> >
> > See below:
> >
> > On 12/18/19 12:45 PM, Jon Mason wrote:
> >> When currently specified, the branch is used to verify the versioning of
> >> the meta layer, but the master branch is checked out. This change
> >> allows for the branch to be specified. Now it is easy to specify all
> >> of the meta layers being added are of the same version, without having
> >> to do it in each individual git tree. Also, it will error if there are
> >> branches without a matching version. Finally, this allows for meta
> >> layer git trees without a master branch.
> >>
> >> Signed-off-by: Jon Mason <jdmason at kudzu.us>
> >> ---
> >> bitbake/lib/bblayers/layerindex.py | 9 ++++++---
> >> 1 file changed, 6 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/bitbake/lib/bblayers/layerindex.py b/bitbake/lib/bblayers/layerindex.py
> >> index 57cd9027f6..55029e0482 100644
> >> --- a/bitbake/lib/bblayers/layerindex.py
> >> +++ b/bitbake/lib/bblayers/layerindex.py
> >> @@ -24,7 +24,7 @@ class LayerIndexPlugin(ActionPlugin):
> >> This class inherits ActionPlugin to get do_add_layer.
> >> """
> >>
> >> - def get_fetch_layer(self, fetchdir, url, subdir, fetch_layer):
> >> + def get_fetch_layer(self, fetchdir, url, subdir, fetch_layer, branch):
> >> layername = self.get_layer_name(url)
> >> if os.path.splitext(layername)[1] == '.git':
> >> layername = os.path.splitext(layername)[0]
> >> @@ -32,7 +32,9 @@ class LayerIndexPlugin(ActionPlugin):
> >> layerdir = os.path.join(repodir, subdir)
> >> if not os.path.exists(repodir):
> >> if fetch_layer:
> >> - result = subprocess.call(['git', 'clone', url, repodir])
> >> + if not branch:
> >> + branch = "master"
> >> + result = subprocess.call(['git', 'clone', '-b' , branch, url, repodir])
> >> if result:
> >> logger.error("Failed to download %s" % url)
> >> return None, None, None
> >> @@ -171,7 +173,8 @@ class LayerIndexPlugin(ActionPlugin):
> >> subdir, name, layerdir = self.get_fetch_layer(fetchdir,
> >> layerBranch.layer.vcs_url,
> >> layerBranch.vcs_subdir,
> >> - not args.show_only)
> >> + not args.show_only,
> >> + args.branch)
> >
> > The above should be 'layerBranch.actual_branch', instead of args.branch.
> >
> > For example, in master -- "meta-gumstix" in master is set to the branch 'dora'.
> >
> > --Mark
> >
> >> if not name:
> >> # Error already shown
> >> return 1
> >>
> --
> _______________________________________________
> bitbake-devel mailing list
> bitbake-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/bitbake-devel
More information about the bitbake-devel
mailing list