> -----Original Message-----
> From: [email protected] <openembedded-
> [email protected]> On Behalf Of Meh Mbeh Ida Delphine
> Sent: den 17 februari 2021 05:01
> To: [email protected]
> Subject: [OE-core] [poky-contrib][RFC PATCH 4/5] license.bbclass: Add
> functions to split and canonicalise license strings
>
> These functions that will later be used in package.bbclass simply make the
> source and recipe licenses in the same format so that they can easily be
> compared and the ouput warnings filtered accordingly.
> split_spdx_lic() splits the license strings and returns a set of the
> canonicalised licenses.
> rem_false_lics() does two things:
> - Converts '-or-later' licenses to their canonicalised form
> - Gets rid of "WITH Linux-syscall-note" from license string if specified
> in local.conf
>
> Signed-off-by: Ida Delphine <[email protected]>
> ---
> meta/classes/license.bbclass | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
> index dc91118340..576464cb26 100644
> --- a/meta/classes/license.bbclass
> +++ b/meta/classes/license.bbclass
> @@ -435,3 +435,30 @@ python do_populate_lic_setscene () {
> sstate_setscene(d)
> }
> addtask do_populate_lic_setscene
> +
> +
> +def split_spdx_lic(d, licensestr):
> + """
> + Split the license strings and returns a set of the
> + canonicalised licenses.
> + """
> + import oe.license
> + split_lic = oe.license.list_licenses(licensestr)
> + spdx_lic = set([canonical_license(d, l) for l in split_lic])
> + return spdx_lic
> +
> +def rem_false_lics(d, pkglic):
> + pkglicsperpkg = set([])
> + for l in pkglic:
> + if l.endswith('-or-later'):
> + # Converts '-or-later' licenses to their canonicalised form
> + lic_ = l.replace('-or-later', '+')
Given that licenses such as "GPL-2.0+" are deprecated by SPDX, shouldn't we
instead introduce the canonical "GPL-2.0-only" and "GPL-2.0-or-later"?
And then add mappings for, e.g., "GPL-2.0" to "GPL-2.0-only" and "GPL-2.0+"
to "GPL-2.0-or-later".
> + pkglicsperpkg.add(lic_)
> + elif l.endswith(' WITH Linux-syscall-note'):
> + # Gets rid of "WITH Linux-syscall-note from license sring"
> + if d.getVar("LICENSE_WITH_LINUX_SYS") == "1":
> + lic_ = l.replace(' WITH Linux-syscall-note', '')
Looking at https://spdx.org/licenses/exceptions-index.html, there is a long
list of predefined exceptions and "Linux-syscall-note" is just one of them.
We probably want a more generic solution for how to handle exceptions.
> + pkglicsperpkg.add(lic_)
> + else:
> + pkglicsperpkg.add(l)
> + return pkglicsperpkg
> \ No newline at end of file
> --
> 2.25.1
//Peter
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#148239):
https://lists.openembedded.org/g/openembedded-core/message/148239
Mute This Topic: https://lists.openembedded.org/mt/80697040/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-