[OE-core] [PATCHv3 1/6] license.bbclass: Write recipeinfo file in license folder

Paul Eggleton paul.eggleton at linux.intel.com
Fri Nov 20 02:32:39 UTC 2015


Hi Mariano,

On Thursday 19 November 2015 14:25:14 mariano.lopez at linux.intel.com wrote:
> From: Mariano Lopez <mariano.lopez at linux.intel.com>
> 
> Currently there is no way to get the recipe version when
> creating the rootfs. It is needed because the manifest
> file for the image has to contain this important piece
> of information.
> 
> This change writes a new file in the license folder for
> every recipe. This file is called "recipeinfo" and have
> the information used to write the manifest file for the
> recipes deployed next to the image.
> 
> [YOCTO #6772]
> 
> Signed-off-by: Mariano Lopez <mariano.lopez at linux.intel.com>
> ---
>  meta/classes/license.bbclass | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
> index c616a20..7cf39e0 100644
> --- a/meta/classes/license.bbclass
> +++ b/meta/classes/license.bbclass
> @@ -142,6 +142,10 @@ python do_populate_lic() {
>      # The base directory we wrangle licenses to
>      destdir = os.path.join(d.getVar('LICSSTATEDIR', True), d.getVar('PN',
> True)) copy_license_files(lic_files_paths, destdir)
> +    info = get_recipe_info(d)
> +    with open(os.path.join(destdir, "recipeinfo"), "w") as f:
> +        for key in sorted(info.keys()):
> +            f.write("%s: %s\n" % (key, info[key]))
>  }
> 
>  # it would be better to copy them in do_install_append, but
> find_license_filesa is python @@ -156,6 +160,13 @@ python
> perform_packagecopy_prepend () {
>          add_package_and_files(d)
>  }
> 
> +def get_recipe_info(d):
> +    info = {}
> +    info["PV"] = d.getVar("PV", True)
> +    info["PR"] = d.getVar("PR", True)
> +    info["LICENSE"] = d.getVar("LICENSE")

This should be d.getVar("LICENSE", True) so that the value gets expanded 
(usually there aren't any variable references in LICENSE values but we can't 
discount it).

> +    return info
> +
>  def add_package_and_files(d):
>      packages = d.getVar('PACKAGES', True)
>      files = d.getVar('LICENSE_FILES_DIRECTORY', True)

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the Openembedded-core mailing list