summaryrefslogtreecommitdiff
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
parent3c6a8a39d820f14f9eb3df3d719cef2c469769da (diff)
downloadopenembedded-core-04f0fefeccc1e7e3af8a1f741350492ae3f171fc.tar.gz
openembedded-core-04f0fefeccc1e7e3af8a1f741350492ae3f171fc.tar.bz2
openembedded-core-04f0fefeccc1e7e3af8a1f741350492ae3f171fc.zip
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>
-rw-r--r--meta/classes/base.bbclass10
-rw-r--r--meta/classes/blacklist.bbclass25
2 files changed, 25 insertions, 10 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 99748796e6..98b823e7eb 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -141,7 +141,6 @@ def pkgarch_mapping(d):
def preferred_ml_updates(d):
# If any PREFERRED_PROVIDER or PREFERRED_VERSION are set,
# we need to mirror these variables in the multilib case;
- # likewise the PNBLACKLIST flags.
multilibs = d.getVar('MULTILIBS', True) or ""
if not multilibs:
return
@@ -154,21 +153,12 @@ def preferred_ml_updates(d):
versions = []
providers = []
- blacklists = d.getVarFlags('PNBLACKLIST') or {}
for v in d.keys():
if v.startswith("PREFERRED_VERSION_"):
versions.append(v)
if v.startswith("PREFERRED_PROVIDER_"):
providers.append(v)
- 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 d.getVarFlag('PNBLACKLIST', newpkg, True):
- d.setVarFlag('PNBLACKLIST', newpkg, reason)
-
for v in versions:
val = d.getVar(v, False)
pkg = v.replace("PREFERRED_VERSION_", "")
diff --git a/meta/classes/blacklist.bbclass b/meta/classes/blacklist.bbclass
index 75abd99c29..a0141a82c0 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)