[OE-core] [PATCH 1/3] license.bbclass: allow copying license not in common licenses
Paul Eggleton
paul.eggleton at linux.intel.com
Mon Apr 27 14:51:50 UTC 2015
Hi Jackie,
A couple of comments in-line below.
On Thursday 23 April 2015 17:38:15 jackie.huang at windriver.com wrote:
> From: Jackie Huang <jackie.huang at windriver.com>
>
> Some package like linux-firmware has many licenses that aren't in any
> way common, and new ones will be added from time to time, in order to
> avoid adding bunch of such common license files that are only applicable
> to a specific package, NO_GENERIC_LIC is added to allow copying license
> not in common licenses, it should be used in the recipe as:
>
> NO_GENERIC_LIC[<license_name>] = "<license file in fetched source>"
>
> e.g.
> NO_GENERIC_LIC[Firmware-Abilis] = "LICENCE.Abilis.txt"
Can we rename this to NO_GENERIC_LICENSE?
> Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
> ---
> meta/classes/license.bbclass | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
> index 73a0e97..990f704 100644
> --- a/meta/classes/license.bbclass
> +++ b/meta/classes/license.bbclass
> @@ -222,7 +222,9 @@ def find_license_files(d):
> pass
> spdx_generic = None
> license_source = None
> - # If the generic does not exist we need to check to see if there is
> an SPDX mapping to it
> + # If the generic does not exist we need to
> check to see if there is an SPDX mapping to it,
> + # unless NO_GENERIC_LIC is set.
> +
> for lic_dir in license_source_dirs:
> if not os.path.isfile(os.path.join(lic_dir, license_type)):
> if d.getVarFlag('SPDXLICENSEMAP', license_type) != None:
> @@ -241,6 +243,14 @@ def find_license_files(d):
> # audit up. This should be fixed in emit_pkgdata (or, we
> actually got and fix all the recipes)
>
> lic_files_paths.append(("generic_"
> + license_type, os.path.join(license_source, spdx_generic)))
> +
> + elif d.getVarFlag('NO_GENERIC_LIC', license_type):
> + # if NO_GENERIC_LIC is set, we copy the license files from the
> fetched source + # of the package rather than the
> license_source_dirs. + for (basename, path) in lic_files_paths:
> + if d.getVarFlag('NO_GENERIC_LIC', license_type) ==
> basename:
> + lic_files_paths.append(("generic_" +
> license_type, path))
> + break
> else:
> # And here is where we warn people that their licenses are
> lousy
> bb.warn("%s: No generic license file exists for: %s in any
> provider" % (pn, license_type))
Should we detect and warn when the user is attempting to override a common
license with this mechanism (which shouldn't be allowed)?
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
More information about the Openembedded-core
mailing list