[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