[Toaster] [v2 PATCH] toaster: buildinfohelper Add additional metadata to the built layer
Michael Wood
michael.g.wood at intel.com
Mon Mar 21 08:24:39 PDT 2016
On 21/03/16 14:58, Barros Pena, Belen wrote:
>
> On 17/03/2016 18:27, "toaster-bounces at yoctoproject.org on behalf of
> Michael Wood" <toaster-bounces at yoctoproject.org on behalf of
> michael.g.wood at intel.com> wrote:
>
>> Add additional metadata to the layer created for build history to be
>> able to identify the layer and recipe later on. Specifically this is the
>> branch and release to which the recipe and layer are associated with
>> enabling differentiation of two recipes which are local release and
>> master and 'master' release.
>>
>> [YOCTO #8528]
>> [YOCTO #8545]
> This totally works:
>
> * Images now come up in the image recipes page of local projects after you
> build them
> * The build information includes the layer branch
>
> But it prompts the question of why we are seeing different branches for
> the core layers: meta-poky and meta-yocto-bsp show master, but my
> openembedded-core shows a different brach (a development one I was using
> previously). I know this has nothing to do with this patch, but just
> wondering why this is happening, and whether is a toaster thing or a
> bitbake thing.
I guess you can check in the toaster cloned layers directory to see if
what it's reporting is correct first off. Secondly I suspect that this
is caused by cloning 'self', if you do a new poky git clone and switch
branches to contrib/catdog and then ask it to build something in
openembedded-core it will go 'oh I don't need to go and clone
openembedded-core from the internet because I know there is a copy in my
directory /meta/ so I will copy myself/this instead' and of course it
copies it as-is which probably means the git repo is still checked out
as contrib/catdog.
Michael
> Thanks!
>
> Belén
>
>> Signed-off-by: Michael Wood <michael.g.wood at intel.com>
>> ---
>> bitbake/lib/bb/ui/buildinfohelper.py | 34
>> +++++++++++++++++++++++-----------
>> 1 file changed, 23 insertions(+), 11 deletions(-)
>>
>> diff --git a/bitbake/lib/bb/ui/buildinfohelper.py
>> b/bitbake/lib/bb/ui/buildinfohelper.py
>> index 28c7353..80ac800 100644
>> --- a/bitbake/lib/bb/ui/buildinfohelper.py
>> +++ b/bitbake/lib/bb/ui/buildinfohelper.py
>> @@ -355,12 +355,17 @@ class ORMWrapper(object):
>>
>> # create a new copy of this layer version as a snapshot for
>> # historical purposes
>> - layer_copy, c =
>> Layer_Version.objects.get_or_create(build=build_obj,
>> - layer=layer_obj.layer,
>> - commit=layer_version_information['commit'],
>> - local_path =
>> layer_version_information['local_path'],
>> - )
>> - logger.info("created new historical layer version %d",
>> layer_copy.pk)
>> + layer_copy, c = Layer_Version.objects.get_or_create(
>> + build=build_obj,
>> + layer=layer_obj.layer,
>> + up_branch=layer_obj.up_branch,
>> + branch=layer_version_information['branch'],
>> + commit=layer_version_information['commit'],
>> + local_path=layer_version_information['local_path'],
>> + )
>> +
>> + logger.info("created new historical layer version %d",
>> + layer_copy.pk)
>>
>> self.layer_version_built.append(layer_copy)
>>
>> @@ -581,11 +586,15 @@ class ORMWrapper(object):
>>
>> packagedict[p]['object'].package_dependencies_target.all().delete()
>>
>> packagedict[p]['object'].package_dependencies_source.all().delete()
>> try:
>> - recipe = self._cached_get(Recipe,
>> - name=built_recipe.name,
>> - layer_version__build=None,
>> -
>> file_path=built_recipe.file_path,
>> -
>> version=built_recipe.version)
>> + recipe = self._cached_get(
>> + Recipe,
>> + name=built_recipe.name,
>> + layer_version__build=None,
>> + layer_version__up_branch=
>> + built_recipe.layer_version.up_branch,
>> + file_path=built_recipe.file_path,
>> + version=built_recipe.version
>> + )
>> except (Recipe.DoesNotExist,
>> Recipe.MultipleObjectsReturned) as e:
>> logger.info("We did not find one recipe for the"
>> @@ -1293,6 +1302,9 @@ class BuildInfoHelper(object):
>> for cls in event._depgraph['pn'][pn]['inherits']:
>> if cls.endswith('/image.bbclass'):
>> recipe.is_image = True
>> + recipe_info['is_image'] = True
>> + # Save the is_image state to the relevant recipe
>> objects
>> +
>> self.orm_wrapper.get_update_recipe_object(recipe_info)
>> break
>> if recipe.is_image:
>> for t in self.internal_state['targets']:
>> --
>> 2.1.4
>>
>> --
>> _______________________________________________
>> toaster mailing list
>> toaster at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/toaster
More information about the toaster
mailing list