summaryrefslogtreecommitdiffstats
path: root/meta/classes/base.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/base.bbclass')
-rw-r--r--meta/classes/base.bbclass26
1 files changed, 16 insertions, 10 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index a3170d219c..145daea3ec 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -542,24 +542,30 @@ python () {
542 bb.note("Including %s as buildable despite it having an incompatible license because it has been whitelisted" % pn) 542 bb.note("Including %s as buildable despite it having an incompatible license because it has been whitelisted" % pn)
543 else: 543 else:
544 pkgs = d.getVar('PACKAGES').split() 544 pkgs = d.getVar('PACKAGES').split()
545 skipped_pkgs = [] 545 skipped_pkgs = {}
546 unskipped_pkgs = [] 546 unskipped_pkgs = []
547 for pkg in pkgs: 547 for pkg in pkgs:
548 if incompatible_license(d, bad_licenses, pkg): 548 incompatible_lic = incompatible_license(d, bad_licenses, pkg)
549 skipped_pkgs.append(pkg) 549 if incompatible_lic:
550 skipped_pkgs[pkg] = incompatible_lic
550 else: 551 else:
551 unskipped_pkgs.append(pkg) 552 unskipped_pkgs.append(pkg)
552 all_skipped = skipped_pkgs and not unskipped_pkgs
553 if unskipped_pkgs: 553 if unskipped_pkgs:
554 for pkg in skipped_pkgs: 554 for pkg in skipped_pkgs:
555 bb.debug(1, "SKIPPING the package " + pkg + " at do_rootfs because it's " + license) 555 bb.debug(1, "Skipping the package %s at do_rootfs because of incompatible license(s): %s" % (pkg, ' '.join(skipped_pkgs[pkg])))
556 mlprefix = d.getVar('MLPREFIX') 556 mlprefix = d.getVar('MLPREFIX')
557 d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, 1) 557 d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, ' '.join(skipped_pkgs[pkg]))
558 for pkg in unskipped_pkgs: 558 for pkg in unskipped_pkgs:
559 bb.debug(1, "INCLUDING the package " + pkg) 559 bb.debug(1, "Including the package %s" % pkg)
560 elif all_skipped or incompatible_license(d, bad_licenses): 560 else:
561 bb.debug(1, "SKIPPING recipe %s because it's %s" % (pn, license)) 561 incompatible_lic = incompatible_license(d, bad_licenses)
562 raise bb.parse.SkipRecipe("it has an incompatible license: %s" % license) 562 for pkg in skipped_pkgs:
563 incompatible_lic += skipped_pkgs[pkg]
564 incompatible_lic = sorted(list(set(incompatible_lic)))
565
566 if incompatible_lic:
567 bb.debug(1, "Skipping recipe %s because of incompatible license(s): %s" % (pn, ' '.join(incompatible_lic)))
568 raise bb.parse.SkipRecipe("it has incompatible license(s): %s" % ' '.join(incompatible_lic))
563 569
564 # Try to verify per-package (LICENSE_<pkg>) values. LICENSE should be a 570 # Try to verify per-package (LICENSE_<pkg>) values. LICENSE should be a
565 # superset of all per-package licenses. We do not do advanced (pattern) 571 # superset of all per-package licenses. We do not do advanced (pattern)