diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/base.bbclass | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 192c77761e..840ddbcc93 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
@@ -161,7 +161,8 @@ def pkgarch_mapping(d): | |||
161 | 161 | ||
162 | def preferred_ml_updates(d): | 162 | def preferred_ml_updates(d): |
163 | # If any PREFERRED_PROVIDER or PREFERRED_VERSIONS are set, | 163 | # If any PREFERRED_PROVIDER or PREFERRED_VERSIONS are set, |
164 | # we need to mirror these variables in the multilib case | 164 | # we need to mirror these variables in the multilib case; |
165 | # likewise the PNBLACKLIST flags. | ||
165 | multilibs = d.getVar('MULTILIBS', True) or "" | 166 | multilibs = d.getVar('MULTILIBS', True) or "" |
166 | if not multilibs: | 167 | if not multilibs: |
167 | return | 168 | return |
@@ -174,12 +175,19 @@ def preferred_ml_updates(d): | |||
174 | 175 | ||
175 | versions = [] | 176 | versions = [] |
176 | providers = [] | 177 | providers = [] |
178 | blacklists = d.getVarFlags('PNBLACKLIST') or [] | ||
177 | for v in d.keys(): | 179 | for v in d.keys(): |
178 | if v.startswith("PREFERRED_VERSION_"): | 180 | if v.startswith("PREFERRED_VERSION_"): |
179 | versions.append(v) | 181 | versions.append(v) |
180 | if v.startswith("PREFERRED_PROVIDER_"): | 182 | if v.startswith("PREFERRED_PROVIDER_"): |
181 | providers.append(v) | 183 | providers.append(v) |
182 | 184 | ||
185 | for pkg, reason in blacklists.items(): | ||
186 | for p in prefixes: | ||
187 | newpkg = p + "-" + pkg | ||
188 | if not d.getVarFlag('PNBLACKLIST', newpkg, True): | ||
189 | d.setVarFlag('PNBLACKLIST', newpkg, reason) | ||
190 | |||
183 | for v in versions: | 191 | for v in versions: |
184 | val = d.getVar(v, False) | 192 | val = d.getVar(v, False) |
185 | pkg = v.replace("PREFERRED_VERSION_", "") | 193 | pkg = v.replace("PREFERRED_VERSION_", "") |