public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: "Meh Mbeh Ida Delphine" <idadelm@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: [poky-contrib][RFC PATCH 1/5] package: Remove false positive lic warnings
Date: Wed, 17 Feb 2021 05:00:29 +0100	[thread overview]
Message-ID: <20210217040033.21541-2-idadelm@gmail.com> (raw)
In-Reply-To: <20210217040033.21541-1-idadelm@gmail.com>

The recipe LICENSE strings are split into their individual license and the canonicalised to easy enable matching with licenses of sources.
License strings with "or-later" are replaced with "+" before comparism.
The warnings showup if and only if licenses in the sources don't match LICENSE value of the recipe.
Signed-off-by: Ida Delphine <idadelm@gmail.com>
---
 meta/classes/package.bbclass | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index ab96f141ae..c3259146b6 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1545,6 +1545,7 @@ PKGDESTWORK = "${WORKDIR}/pkgdata"
 PKGDATA_VARS = "PN PE PV PR PKGE PKGV PKGR LICENSE DESCRIPTION SUMMARY RDEPENDS RPROVIDES RRECOMMENDS RSUGGESTS RREPLACES RCONFLICTS SECTION PKG ALLOW_EMPTY FILES CONFFILES FILES_INFO PACKAGE_ADD_METADATA pkg_postinst pkg_postrm pkg_preinst pkg_prerm"
 
 python emit_pkgdata() {
+    import oe.license
     from glob import glob
     import json
     import subprocess
@@ -1762,7 +1763,21 @@ fi
             lic = d.getVar('LICENSE_%s' % (pkg))
             if not lic:
                 lic = d.getVar('LICENSE')
-            bb.warn("License for package %s is %s vs %s" % (pkg, computedpkglics[pkg], lic))
+
+            # Splits the LICENSE values and canonicalise each license
+            # in the set of split license(s)    
+            split_lic = oe.license.list_licenses(lic)
+            spdx_lic = set([canonical_license(d, l) for l in split_lic])
+            if computedpkglics[pkg]:
+                computedpkglicsperpkg = set([])
+                for l in computedpkglics[pkg]:
+                    if l.endswith('-or-later'):
+                        lic_ = l.replace('-or-later', '+')
+                        computedpkglicsperpkg.add(lic_)
+                    else:
+                        computedpkglicsperpkg.add(l)
+            if spdx_lic - computedpkglicsperpkg:
+                bb.warn("License for package %s is %s vs %s" % (pkg, computedpkglicsperpkg, spdx_lic))
 }
 emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime ${PKGDESTWORK}/runtime-reverse ${PKGDESTWORK}/runtime-rprovides"
 
-- 
2.25.1


  reply	other threads:[~2021-02-17  4:00 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-17  4:00 [poky-contrib][RFC PATCH 0/5] Suggestions for improvements? Meh Mbeh Ida Delphine
2021-02-17  4:00 ` Meh Mbeh Ida Delphine [this message]
2021-02-17 10:42   ` [OE-core] [poky-contrib][RFC PATCH 1/5] package: Remove false positive lic warnings Richard Purdie
2021-02-17  4:00 ` [poky-contrib][RFC PATCH 2/5] " Meh Mbeh Ida Delphine
2021-02-17 10:39   ` [OE-core] " Richard Purdie
2021-02-17 14:55     ` Peter Kjellerstedt
2021-02-17 15:04       ` Richard Purdie
2021-02-17  4:00 ` [poky-contrib][RFC PATCH 3/5] " Meh Mbeh Ida Delphine
2021-02-17  4:00 ` [poky-contrib][RFC PATCH 4/5] license.bbclass: Add functions to split and canonicalise license strings Meh Mbeh Ida Delphine
2021-02-17 10:45   ` [OE-core] " Richard Purdie
2021-02-17 15:04   ` Peter Kjellerstedt
2021-02-17 16:36     ` Richard Purdie
2021-02-17 16:55       ` Meh Mbeh Ida Delphine
2021-02-17 20:51         ` Richard Purdie
2021-02-21  3:04           ` Meh Mbeh Ida Delphine
2021-02-21 11:21             ` Richard Purdie
2021-02-17  4:00 ` [poky-contrib][RFC PATCH 5/5] package.bbclass: Remove false positive license warnings Meh Mbeh Ida Delphine
2021-02-17 15:50 ` [OE-core] [poky-contrib][RFC PATCH 0/5] Suggestions for improvements? Peter Kjellerstedt
2021-02-17 16:58   ` Meh Mbeh Ida Delphine
2021-02-18 11:17     ` Peter Kjellerstedt
2021-02-18 12:21       ` Meh Mbeh Ida Delphine

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210217040033.21541-2-idadelm@gmail.com \
    --to=idadelm@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox