aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/blacklist.bbclass
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2013-08-10 17:19:30 -0300
committerSaul Wold <sgw@linux.intel.com>2013-08-13 10:13:20 -0700
commit04f0fefeccc1e7e3af8a1f741350492ae3f171fc (patch)
treee1a5148ea6d7fa43304c2a0b53e22ba03d94f21a /meta/classes/blacklist.bbclass
parent3c6a8a39d820f14f9eb3df3d719cef2c469769da (diff)
downloadopenembedded-core-contrib-04f0fefeccc1e7e3af8a1f741350492ae3f171fc.tar.gz
blacklist.bbclass: Avoid blacklist specific handle in base.bbclass
base.bbclass had code which handled the PNBLACKLIST in case of multilib use. This is better to be done in the blacklist.bbclass so it has all logic in a single place. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/classes/blacklist.bbclass')
-rw-r--r--meta/classes/blacklist.bbclass25
1 files changed, 25 insertions, 0 deletions
diff --git a/meta/classes/blacklist.bbclass b/meta/classes/blacklist.bbclass
index 75abd99c29e..a0141a82c09 100644
--- a/meta/classes/blacklist.bbclass
+++ b/meta/classes/blacklist.bbclass
@@ -12,6 +12,31 @@
# PNBLACKLIST[pn] = "message"
#
+# Cope with PNBLACKLIST flags for multilib case
+addhandler blacklist_multilib_eventhandler
+blacklist_multilib_eventhandler[eventmask] = "bb.event.ConfigParsed"
+python blacklist_multilib_eventhandler() {
+ multilibs = e.data.getVar('MULTILIBS', True)
+ if not multilibs:
+ return
+
+ # this block has been copied from base.bbclass so keep it in sync
+ prefixes = []
+ for ext in multilibs.split():
+ eext = ext.split(':')
+ if len(eext) > 1 and eext[0] == 'multilib':
+ prefixes.append(eext[1])
+
+ blacklists = e.data.getVarFlags('PNBLACKLIST') or {}
+ for pkg, reason in blacklists.items():
+ if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith(("nativesdk-", "virtual/nativesdk-")) or 'cross-canadian' in pkg:
+ continue
+ for p in prefixes:
+ newpkg = p + "-" + pkg
+ if not e.data.getVarFlag('PNBLACKLIST', newpkg, True):
+ e.data.setVarFlag('PNBLACKLIST', newpkg, reason)
+}
+
python () {
blacklist = d.getVarFlag('PNBLACKLIST', d.getVar('PN', True), True)