generic-poky/meta/classes/blacklist.bbclass
Otavio Salvador 9bb0b1c285 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>
2013-08-13 23:06:03 +01:00

46 lines
1.5 KiB
Text

# anonymous support class from originally from angstrom
#
# To use the blacklist, a distribution should include this
# class in the INHERIT_DISTRO
#
# No longer use ANGSTROM_BLACKLIST, instead use a table of
# recipes in PNBLACKLIST
#
# Features:
#
# * To add a package to the blacklist, set:
# 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)
if blacklist:
raise bb.parse.SkipPackage("Recipe is blacklisted: %s" % (blacklist))
}