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.

(From OE-Core rev: 04f0fefeccc1e7e3af8a1f741350492ae3f171fc)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Otavio Salvador 2013-08-10 17:19:30 -03:00 committed by Richard Purdie
parent 3aabe00df6
commit 9bb0b1c285
2 changed files with 25 additions and 10 deletions

View File

@ -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_", "")

View File

@ -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)