summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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