From: Richard Purdie <richard.pur...@linuxfoundation.org> This code creates a list of SPDX headers found for the sources that make up a given set of binaries that make up an individual package.
This is then compared with the license field of the gven package containing those binaries. Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org> --- meta/classes/package.bbclass | 39 +++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 42bd38f948..ab96f141ae 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -1633,6 +1633,8 @@ fi workdir = d.getVar('WORKDIR') + filemap = {} + for pkg in packages.split(): pkgval = d.getVar('PKG_%s' % pkg) if pkgval is None: @@ -1645,6 +1647,9 @@ fi seen = set() for f in pkgfiles[pkg]: relpth = os.path.relpath(f, pkgdestpkg) + if not pkg in filemap: + filemap[pkg] = [] + filemap[pkg].append(os.sep + relpth) fstat = os.lstat(f) files[os.sep + relpth] = fstat.st_size if fstat.st_ino not in seen: @@ -1721,11 +1726,43 @@ fi bb.warn(str(l)) continue fn = "/" + l[0] - lic = l[2] + lic = l[2].strip() + if lic.endswith("*/"): + lic = lic[:-2] + lic = lic.strip() filelics[fn] = lic with open(data_file + ".filelics", 'w') as f: f.write(json.dumps(filelics, sort_keys=True)) + computedlics = {} + computedpkglics = {} + for r in sourceresult: + for subf in r[1]: + if subf in filelics: + if r[0] not in computedlics: + computedlics[r[0]] = set() + computedlics[r[0]].add(filelics[subf]) + #if computedlics: + # bb.warn(str(computedlics)) + dvar = d.getVar('PKGD') + for f in computedlics: + shortf = f.replace(dvar, "") + found = False + for pkg in filemap: + if shortf in filemap[pkg]: + found = True + if pkg not in computedpkglics: + computedpkglics[pkg] = set() + computedpkglics[pkg].update(computedlics[f]) + if not found: + bb.warn("%s not in %s" % (f, str(filemap))) + #if computedpkglics: + # bb.warn(str(computedpkglics)) + for pkg in computedpkglics: + 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)) } emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime ${PKGDESTWORK}/runtime-reverse ${PKGDESTWORK}/runtime-rprovides" -- 2.25.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#149555): https://lists.openembedded.org/g/openembedded-core/message/149555 Mute This Topic: https://lists.openembedded.org/mt/81371629/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-