[bitbake-devel] [PATCH] bitbake: layerindex: use branch when specified
Mark Hatle
mark.hatle at kernel.crashing.org
Thu Dec 19 16:18:09 UTC 2019
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.)
--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
>>
More information about the bitbake-devel
mailing list