summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2013-08-10 17:19:30 -0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-08-13 23:06:03 +0100
commit9bb0b1c28578128a861dccf053ed611cd1c4b8bb (patch)
tree29a6628697071a7724ebd2bdef049ff3afb194b4
parent3aabe00df69f1a2aa7eff97e042ed0ce15613f0f (diff)
downloadpoky-9bb0b1c28578128a861dccf053ed611cd1c4b8bb.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. (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>
-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):
141def preferred_ml_updates(d): 141def preferred_ml_updates(d):
142 # If any PREFERRED_PROVIDER or PREFERRED_VERSION are set, 142 # If any PREFERRED_PROVIDER or PREFERRED_VERSION are set,
143 # we need to mirror these variables in the multilib case; 143 # we need to mirror these variables in the multilib case;
144 # likewise the PNBLACKLIST flags.
145 multilibs = d.getVar('MULTILIBS', True) or "" 144 multilibs = d.getVar('MULTILIBS', True) or ""
146 if not multilibs: 145 if not multilibs:
147 return 146 return
@@ -154,21 +153,12 @@ def preferred_ml_updates(d):
154 153
155 versions = [] 154 versions = []
156 providers = [] 155 providers = []
157 blacklists = d.getVarFlags('PNBLACKLIST') or {}
158 for v in d.keys(): 156 for v in d.keys():
159 if v.startswith("PREFERRED_VERSION_"): 157 if v.startswith("PREFERRED_VERSION_"):
160 versions.append(v) 158 versions.append(v)
161 if v.startswith("PREFERRED_PROVIDER_"): 159 if v.startswith("PREFERRED_PROVIDER_"):
162 providers.append(v) 160 providers.append(v)
163 161
164 for pkg, reason in blacklists.items():
165 if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith(("nativesdk-", "virtual/nativesdk-")) or 'cross-canadian' in pkg:
166 continue
167 for p in prefixes:
168 newpkg = p + "-" + pkg
169 if not d.getVarFlag('PNBLACKLIST', newpkg, True):
170 d.setVarFlag('PNBLACKLIST', newpkg, reason)
171
172 for v in versions: 162 for v in versions:
173 val = d.getVar(v, False) 163 val = d.getVar(v, False)
174 pkg = v.replace("PREFERRED_VERSION_", "") 164 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 @@
12# PNBLACKLIST[pn] = "message" 12# PNBLACKLIST[pn] = "message"
13# 13#
14 14
15# Cope with PNBLACKLIST flags for multilib case
16addhandler blacklist_multilib_eventhandler
17blacklist_multilib_eventhandler[eventmask] = "bb.event.ConfigParsed"
18python blacklist_multilib_eventhandler() {
19 multilibs = e.data.getVar('MULTILIBS', True)
20 if not multilibs:
21 return
22
23 # this block has been copied from base.bbclass so keep it in sync
24 prefixes = []
25 for ext in multilibs.split():
26 eext = ext.split(':')
27 if len(eext) > 1 and eext[0] == 'multilib':
28 prefixes.append(eext[1])
29
30 blacklists = e.data.getVarFlags('PNBLACKLIST') or {}
31 for pkg, reason in blacklists.items():
32 if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith(("nativesdk-", "virtual/nativesdk-")) or 'cross-canadian' in pkg:
33 continue
34 for p in prefixes:
35 newpkg = p + "-" + pkg
36 if not e.data.getVarFlag('PNBLACKLIST', newpkg, True):
37 e.data.setVarFlag('PNBLACKLIST', newpkg, reason)
38}
39
15python () { 40python () {
16 blacklist = d.getVarFlag('PNBLACKLIST', d.getVar('PN', True), True) 41 blacklist = d.getVarFlag('PNBLACKLIST', d.getVar('PN', True), True)
17 42